diff --git a/atom/common/api/remote_object_freer.cc b/atom/common/api/remote_object_freer.cc index 1762f1d1e0..b136f05449 100644 --- a/atom/common/api/remote_object_freer.cc +++ b/atom/common/api/remote_object_freer.cc @@ -41,14 +41,20 @@ void RemoteObjectFreer::BindTo( RemoteObjectFreer::RemoteObjectFreer( v8::Isolate* isolate, v8::Local target, int object_id) : ObjectLifeMonitor(isolate, target), - object_id_(object_id) { + object_id_(object_id), + routing_id_(MSG_ROUTING_NONE) { + content::RenderView* render_view = GetCurrentRenderView(); + if (render_view) { + routing_id_ = render_view->GetRoutingID(); + } } RemoteObjectFreer::~RemoteObjectFreer() { } void RemoteObjectFreer::RunDestructor() { - content::RenderView* render_view = GetCurrentRenderView(); + content::RenderView* render_view = + content::RenderView::FromRoutingID(routing_id_); if (!render_view) return; diff --git a/atom/common/api/remote_object_freer.h b/atom/common/api/remote_object_freer.h index c2b5d8b7d3..f99c09537a 100644 --- a/atom/common/api/remote_object_freer.h +++ b/atom/common/api/remote_object_freer.h @@ -23,6 +23,7 @@ class RemoteObjectFreer : public ObjectLifeMonitor { private: int object_id_; + int routing_id_; DISALLOW_COPY_AND_ASSIGN(RemoteObjectFreer); };