| Index: content/browser/renderer_host/render_widget_host_view_mac.mm
|
| diff --git a/content/browser/renderer_host/render_widget_host_view_mac.mm b/content/browser/renderer_host/render_widget_host_view_mac.mm
|
| index c91614f5c60f505661f68f3390315a215913abfc..cf1874923c999d9fea8c4c1bbe48ae7c60d64efe 100644
|
| --- a/content/browser/renderer_host/render_widget_host_view_mac.mm
|
| +++ b/content/browser/renderer_host/render_widget_host_view_mac.mm
|
| @@ -468,8 +468,23 @@ RenderWidgetHostViewMac::RenderWidgetHostViewMac(RenderWidgetHost* widget,
|
| [cocoa_view_ setLayer:background_layer_];
|
| [cocoa_view_ setWantsLayer:YES];
|
|
|
| - browser_compositor_.reset(new BrowserCompositorMac(
|
| - this, this, render_widget_host_->is_hidden(), [cocoa_view_ window]));
|
| + // GuestViews have two RenderWidgetHostViews and so we need to make sure
|
| + // we don't have FrameSinkId collisions.
|
| + // The FrameSinkId generated here must be unique with FrameSinkId allocated
|
| + // in ContextFactoryPrivate.
|
| + // TODO(crbug.com/685777): Centralize allocation in one place for easier
|
| + // maintenance.
|
| + ImageTransportFactory* factory = ImageTransportFactory::GetInstance();
|
| + cc::FrameSinkId frame_sink_id =
|
| + is_guest_view_hack_
|
| + ? factory->GetContextFactoryPrivate()->AllocateFrameSinkId()
|
| + : cc::FrameSinkId(base::checked_cast<uint32_t>(
|
| + render_widget_host_->GetProcess()->GetID()),
|
| + base::checked_cast<uint32_t>(
|
| + render_widget_host_->GetRoutingID()));
|
| + browser_compositor_.reset(
|
| + new BrowserCompositorMac(this, this, render_widget_host_->is_hidden(),
|
| + [cocoa_view_ window], frame_sink_id));
|
|
|
| display::Screen::GetScreen()->AddObserver(this);
|
|
|
|
|