mac: Eliminate remaining flashes during navigation
During navigation, in RenderFrameHostManager::CommitPending, when the navigation results in creation of a new RenderWidgetHostView, the sequence of events in that function is that - the old RenderWidgetHostView is hidden - the new RenderWidgetHostView takes content from the old one - the new RenderWidgetHostView is shown On macOS, this can result in a one-frame flicker where there is no content present (between the hide and the show). Fix this by adding a ScopedCocoaDisableScreenUpdates for the duration of CommitPending. This will make all Cocoa changes in the function be atomic. In order to include ScopedCocoaDisableScreenUpdates in a non-objective-C file, move its ScopedCocoaDisableScreenUpdates implementation out of the header file. Bug: 829523 Change-Id: If541ef8985cf7990d63a79435b179f84339a9372 Reviewed-on: https://chromium-review.googlesource.com/1024968Reviewed-by:ccameron <ccameron@chromium.org> Reviewed-by:
Saman Sami <samans@chromium.org> Reviewed-by:
Antoine Labour <piman@chromium.org> Commit-Queue: ccameron <ccameron@chromium.org> Cr-Commit-Position: refs/heads/master@{#553628}
Showing
Please register or sign in to comment