diff --git a/atom/browser/api/atom_api_web_contents.cc b/atom/browser/api/atom_api_web_contents.cc index a45e166c92d..a3753a6d8f0 100644 --- a/atom/browser/api/atom_api_web_contents.cc +++ b/atom/browser/api/atom_api_web_contents.cc @@ -613,6 +613,14 @@ void WebContents::BeforeUnloadFired(const base::TimeTicks& proceed_time) { // there are two virtual functions named BeforeUnloadFired. } +void WebContents::RenderViewCreated(content::RenderViewHost* render_view_host) { + const auto impl = content::RenderWidgetHostImpl::FromID( + render_view_host->GetProcess()->GetID(), + render_view_host->GetRoutingID()); + if (impl) + impl->disable_hidden_ = !background_throttling_; +} + void WebContents::RenderViewDeleted(content::RenderViewHost* render_view_host) { Emit("render-view-deleted", render_view_host->GetProcess()->GetID()); } @@ -897,11 +905,6 @@ void WebContents::LoadURL(const GURL& url, const mate::Dictionary& options) { } else { view->SetBackgroundColor(SK_ColorTRANSPARENT); } - - // For the same reason we can only disable hidden here. - const auto host = static_cast( - view->GetRenderWidgetHost()); - host->disable_hidden_ = !background_throttling_; } void WebContents::DownloadURL(const GURL& url) { diff --git a/atom/browser/api/atom_api_web_contents.h b/atom/browser/api/atom_api_web_contents.h index 68669e7f4b1..22f6b8775f9 100644 --- a/atom/browser/api/atom_api_web_contents.h +++ b/atom/browser/api/atom_api_web_contents.h @@ -278,6 +278,7 @@ class WebContents : public mate::TrackableObject, // content::WebContentsObserver: void BeforeUnloadFired(const base::TimeTicks& proceed_time) override; + void RenderViewCreated(content::RenderViewHost*) override; void RenderViewDeleted(content::RenderViewHost*) override; void RenderProcessGone(base::TerminationStatus status) override; void DocumentLoadedInFrame(