Simplify RemoteCallbackFreer
authorCheng Zhao <zcbenz@gmail.com>
Tue, 26 Apr 2016 07:37:46 +0000 (16:37 +0900)
committerCheng Zhao <zcbenz@gmail.com>
Tue, 26 Apr 2016 07:37:46 +0000 (16:37 +0900)
atom/common/api/remote_callback_freer.cc
atom/common/api/remote_callback_freer.h

index 917128b..7bc377e 100644 (file)
@@ -7,8 +7,6 @@
 #include "atom/common/api/api_messages.h"
 #include "base/strings/utf_string_conversions.h"
 #include "base/values.h"
-#include "content/public/browser/render_process_host.h"
-#include "content/public/browser/web_contents.h"
 
 namespace atom {
 
@@ -26,8 +24,6 @@ RemoteCallbackFreer::RemoteCallbackFreer(v8::Isolate* isolate,
                                          content::WebContents* web_contents)
     : ObjectLifeMonitor(isolate, target),
       content::WebContentsObserver(web_contents),
-      web_contents_(web_contents),
-      renderer_process_id_(GetRendererProcessID()),
       object_id_(object_id) {
 }
 
@@ -35,36 +31,17 @@ RemoteCallbackFreer::~RemoteCallbackFreer() {
 }
 
 void RemoteCallbackFreer::RunDestructor() {
-  if (!web_contents_)
-    return;
+  base::string16 channel =
+      base::ASCIIToUTF16("ELECTRON_RENDERER_RELEASE_CALLBACK");
+  base::ListValue args;
+  args.AppendInteger(object_id_);
+  Send(new AtomViewMsg_Message(routing_id(), channel, args));
 
-  if (renderer_process_id_ == GetRendererProcessID()) {
-    base::string16 channel =
-        base::ASCIIToUTF16("ELECTRON_RENDERER_RELEASE_CALLBACK");
-    base::ListValue args;
-    args.AppendInteger(object_id_);
-    Send(new AtomViewMsg_Message(routing_id(), channel, args));
-  }
-  web_contents_ = nullptr;
+  Observe(nullptr);
 }
 
 void RemoteCallbackFreer::RenderViewDeleted(content::RenderViewHost*) {
-  if (!web_contents_)
-    return;
-
-  web_contents_ = nullptr;
   delete this;
 }
 
-int RemoteCallbackFreer::GetRendererProcessID() {
-  if (!web_contents_)
-    return -1;
-
-  auto process = web_contents()->GetRenderProcessHost();
-  if (!process)
-    return -1;
-
-  return process->GetID();
-}
-
 }  // namespace atom
index 43a4a21..8fe80c8 100644 (file)
@@ -30,10 +30,6 @@ class RemoteCallbackFreer : public ObjectLifeMonitor,
   void RenderViewDeleted(content::RenderViewHost*) override;
 
  private:
-  int GetRendererProcessID();
-
-  content::WebContents* web_contents_;
-  int renderer_process_id_;
   int object_id_;
 
   DISALLOW_COPY_AND_ASSIGN(RemoteCallbackFreer);