From 76a954077d7ed12592c0a8dc62093212dfddfac8 Mon Sep 17 00:00:00 2001 From: Cheng Zhao Date: Tue, 26 Apr 2016 16:37:46 +0900 Subject: [PATCH] Simplify RemoteCallbackFreer --- atom/common/api/remote_callback_freer.cc | 35 ++++++-------------------------- atom/common/api/remote_callback_freer.h | 4 ---- 2 files changed, 6 insertions(+), 33 deletions(-) diff --git a/atom/common/api/remote_callback_freer.cc b/atom/common/api/remote_callback_freer.cc index 917128b..7bc377e 100644 --- a/atom/common/api/remote_callback_freer.cc +++ b/atom/common/api/remote_callback_freer.cc @@ -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 diff --git a/atom/common/api/remote_callback_freer.h b/atom/common/api/remote_callback_freer.h index 43a4a21..8fe80c8 100644 --- a/atom/common/api/remote_callback_freer.h +++ b/atom/common/api/remote_callback_freer.h @@ -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); -- 2.7.4