Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(160)

Unified Diff: content/browser/renderer_host/render_widget_host_view_mac.mm

Issue 996453002: Allow ui::Compositor to disable commits during tab-switch (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Use DeferCommits instead Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 7f3cb354dc05c946fc6ce1534b5eb6a1ebcd1fea..af770742e77a00eb78df7cd135afad3fc0bc4dee 100644
--- a/content/browser/renderer_host/render_widget_host_view_mac.mm
+++ b/content/browser/renderer_host/render_widget_host_view_mac.mm
@@ -615,6 +615,7 @@ void RenderWidgetHostViewMac::EnsureBrowserCompositorView() {
if (browser_compositor_state_ == BrowserCompositorSuspended) {
delegated_frame_host_->SetCompositor(browser_compositor_->compositor());
delegated_frame_host_->WasShown(ui::LatencyInfo());
+ browser_compositor_->compositor()->SetDeferCommits(false);
browser_compositor_state_ = BrowserCompositorActive;
}
}
@@ -625,6 +626,10 @@ void RenderWidgetHostViewMac::SuspendBrowserCompositorView() {
// Hide the DelegatedFrameHost to transition from Active -> Suspended.
if (browser_compositor_state_ == BrowserCompositorActive) {
+ // Ensure that any changes made to the ui::Compositor do not result in new
+ // frames being produced. Note that this does not ensure that
+ // already-in-flight frames will be aborted.
+ browser_compositor_->compositor()->SetDeferCommits(true);
// Marking the DelegatedFrameHost as removed from the window hierarchy is
// necessary to remove all connections to its old ui::Compositor.
delegated_frame_host_->WasHidden();

Powered by Google App Engine
This is Rietveld 408576698