diff --git content/browser/renderer_host/browser_compositor_view_mac.h content/browser/renderer_host/browser_compositor_view_mac.h index 3ed8b18dfabd..f0c30a60376a 100644 --- content/browser/renderer_host/browser_compositor_view_mac.h +++ content/browser/renderer_host/browser_compositor_view_mac.h @@ -53,6 +53,7 @@ class CONTENT_EXPORT BrowserCompositorMac : public DelegatedFrameHostClient { // These will not return nullptr until Destroy is called. DelegatedFrameHost* GetDelegatedFrameHost(); + ui::Layer* GetRootLayer() { return root_layer_.get(); } // Ensure that the currect compositor frame be cleared (even if it is // potentially visible). @@ -60,6 +61,7 @@ class CONTENT_EXPORT BrowserCompositorMac : public DelegatedFrameHostClient { // This may return nullptr, if this has detached itself from its // ui::Compositor. + ui::Compositor* GetCompositor(); ui::AcceleratedWidgetMac* GetAcceleratedWidgetMac(); void DidCreateNewRendererCompositorFrameSink( diff --git content/browser/renderer_host/browser_compositor_view_mac.mm content/browser/renderer_host/browser_compositor_view_mac.mm index 00169dea145c..cb3d2b3175b1 100644 --- content/browser/renderer_host/browser_compositor_view_mac.mm +++ content/browser/renderer_host/browser_compositor_view_mac.mm @@ -211,6 +211,12 @@ BrowserCompositorMac::~BrowserCompositorMac() { g_spare_recyclable_compositors.Get().clear(); } +ui::Compositor* BrowserCompositorMac::GetCompositor() { + if (recyclable_compositor_) + return recyclable_compositor_->compositor(); + return nullptr; +} + ui::AcceleratedWidgetMac* BrowserCompositorMac::GetAcceleratedWidgetMac() { if (recyclable_compositor_) return recyclable_compositor_->accelerated_widget_mac(); @@ -441,8 +447,13 @@ SkColor BrowserCompositorMac::DelegatedFrameHostGetGutterColor( } gfx::Size BrowserCompositorMac::DelegatedFrameHostDesiredSizeInDIP() const { - NSRect bounds = [client_->BrowserCompositorMacGetNSView() bounds]; - return gfx::Size(bounds.size.width, bounds.size.height); + // View will be nil with CEF OSR. + NSView* view = client_->BrowserCompositorMacGetNSView(); + if (view) { + NSRect bounds = [view bounds]; + return gfx::Size(bounds.size.width, bounds.size.height); + } + return root_layer_->bounds().size(); } bool BrowserCompositorMac::DelegatedFrameCanCreateResizeLock() const {