Fix Mac ContextLost Surface Sync Crash
On Mac there is a race between the Browser resizing and a Renderer reconnecting to a frame sink. Due to this the Browser can end up sending a merge LocalSurfaceId to the Renderer, which it already used for a previous size. This is in part because on Mac we are currently accepting all resize requests from child Renderers. Which is not what we do on other platforms. This change updates BrowserCompositorViewMac to only merge LocalSurfaceIds, and to not change the sizes, when requested. Unless auto_resize is enabled on the RenderWidgetHostImpl. This is also inline with RenderWidgetHostViewMac::UpdateNSViewAndDisplayProperties TEST= ContextLost_WebGLContextLostFromGPUProcessExit ContextLost_WebGLUnblockedAfterUserInitiatedReload GpuCrash_GPUProcessCrashesExactlyOncePerVisitToAboutGpuCrash Bug: 1031095 Change-Id: Ie8ef6283ec36169f422af10831001b7c0ee757f5 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1975014Reviewed-by:Yuly Novikov <ynovikov@chromium.org> Reviewed-by:
Saman Sami <samans@chromium.org> Reviewed-by:
ccameron <ccameron@chromium.org> Commit-Queue: Jonathan Ross <jonross@chromium.org> Cr-Commit-Position: refs/heads/master@{#728629}
Showing
Please register or sign in to comment