From c4284b29384fa2ed0bad3fdd668f76add189b685 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Riku=20Palom=C3=A4ki?= Date: Tue, 26 Nov 2019 18:42:34 +0000 Subject: [PATCH] Fix crash when resizing an OSR browser window (fixes issue #2614) (cherry picked from commit feffedbae999031505b2bbe0224c622df7c3f76e) --- libcef/browser/osr/render_widget_host_view_osr.cc | 11 +++++++++++ libcef/browser/osr/render_widget_host_view_osr.h | 6 ++++++ 2 files changed, 17 insertions(+) diff --git a/libcef/browser/osr/render_widget_host_view_osr.cc b/libcef/browser/osr/render_widget_host_view_osr.cc index d989c0a0d..a9dbf5d3e 100644 --- a/libcef/browser/osr/render_widget_host_view_osr.cc +++ b/libcef/browser/osr/render_widget_host_view_osr.cc @@ -691,6 +691,17 @@ gfx::Rect CefRenderWidgetHostViewOSR::GetBoundsInRootWindow() { return GetViewBounds(); } +#if !defined(OS_MACOSX) +viz::ScopedSurfaceIdAllocator +CefRenderWidgetHostViewOSR::DidUpdateVisualProperties( + const cc::RenderFrameMetadata& metadata) { + base::OnceCallback allocation_task = + base::BindOnce(&CefRenderWidgetHostViewOSR::SynchronizeVisualProperties, + weak_ptr_factory_.GetWeakPtr(), false); + return viz::ScopedSurfaceIdAllocator(std::move(allocation_task)); +} +#endif + viz::SurfaceId CefRenderWidgetHostViewOSR::GetCurrentSurfaceId() const { return GetDelegatedFrameHost() ? GetDelegatedFrameHost()->GetCurrentSurfaceId() diff --git a/libcef/browser/osr/render_widget_host_view_osr.h b/libcef/browser/osr/render_widget_host_view_osr.h index 32a3e3c96..ec6d7c548 100644 --- a/libcef/browser/osr/render_widget_host_view_osr.h +++ b/libcef/browser/osr/render_widget_host_view_osr.h @@ -163,6 +163,12 @@ class CefRenderWidgetHostViewOSR : public content::RenderWidgetHostViewBase, void GetScreenInfo(content::ScreenInfo* results) override; void TransformPointToRootSurface(gfx::PointF* point) override; gfx::Rect GetBoundsInRootWindow() override; + +#if !defined(OS_MACOSX) + viz::ScopedSurfaceIdAllocator DidUpdateVisualProperties( + const cc::RenderFrameMetadata& metadata) override; +#endif + viz::SurfaceId GetCurrentSurfaceId() const override; content::BrowserAccessibilityManager* CreateBrowserAccessibilityManager( content::BrowserAccessibilityDelegate* delegate,