| Index: content/browser/renderer_host/render_process_host_impl.cc
|
| diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc
|
| index 7b2634a34b76e32bc6387bf4daef0522318ca11c..0e919f849d85f2740b444b227ed906ba6f1e8f38 100644
|
| --- a/content/browser/renderer_host/render_process_host_impl.cc
|
| +++ b/content/browser/renderer_host/render_process_host_impl.cc
|
| @@ -427,6 +427,7 @@ RenderProcessHostImpl::RenderProcessHostImpl(
|
| RenderProcessHostImpl::~RenderProcessHostImpl() {
|
| DCHECK(!run_renderer_in_process());
|
| ChildProcessSecurityPolicyImpl::GetInstance()->Remove(GetID());
|
| + GpuDataManagerImpl::GetInstance()->RemoveObserver(this);
|
|
|
| // We may have some unsent messages at this point, but that's OK.
|
| channel_.reset();
|
| @@ -551,6 +552,8 @@ bool RenderProcessHostImpl::Init() {
|
| fast_shutdown_started_ = false;
|
| }
|
|
|
| + GpuDataManagerImpl::GetInstance()->AddObserver(this);
|
| +
|
| is_initialized_ = true;
|
| return true;
|
| }
|
| @@ -1761,4 +1764,20 @@ void RenderProcessHostImpl::OnCompositorSurfaceBuffersSwappedNoHost(
|
| ack_params);
|
| }
|
|
|
| +void RenderProcessHostImpl::OnGpuSwitching() {
|
| + for (RenderWidgetHostsIterator iter = GetRenderWidgetHostsIterator();
|
| + !iter.IsAtEnd();
|
| + iter.Advance()) {
|
| + const RenderWidgetHost* widget = iter.GetCurrentValue();
|
| + DCHECK(widget);
|
| + if (!widget || !widget->IsRenderView())
|
| + continue;
|
| +
|
| + RenderViewHost* rvh =
|
| + RenderViewHost::From(const_cast<RenderWidgetHost*>(widget));
|
| +
|
| + rvh->UpdateWebkitPreferences(rvh->GetWebkitPreferences());
|
| + }
|
| +}
|
| +
|
| } // namespace content
|
|
|