summaryrefslogtreecommitdiffstats
path: root/content/public
diff options
context:
space:
mode:
authormmocny@chromium.org <mmocny@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-06-22 15:04:39 +0000
committermmocny@chromium.org <mmocny@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-06-22 15:04:39 +0000
commite1912900343026500db1192f6e9c05d43798a1df (patch)
treefb80c9fd8dcd31f59b7142e9092c3c89a3f22ef1 /content/public
parent8a197f26faebaf68cb484596ccf970b1ab1fe779 (diff)
downloadchromium_src-e1912900343026500db1192f6e9c05d43798a1df.zip
chromium_src-e1912900343026500db1192f6e9c05d43798a1df.tar.gz
chromium_src-e1912900343026500db1192f6e9c05d43798a1df.tar.bz2
Drop frontbuffers with ui-use-gpu-process, synchronized with browser, decoupled from backbuffer drop.
On Aura, every time a tab is backgrounded, RenderWidgetHostViewAura will reset its handle to the front surface. If that tab is foregrounded again, that front surface will not be used until synchronizing with the gpu process to make sure that surface is still available. By doing this, the gpu process knows when it is safe to discard the front surface. RWHVA sends a FrontSurfaceIsProtected(bool, int) message to the gpu process to keep it informed about front surface protection. The int is a state-of-the-world identifier to protect from ABA issues. RWHVA delays sending FrontSurfaceIsProtected(false) until after the current surface is certain to not be in use, namely after the compositor finishes the current frame and the browser thumbnailer is complete. BUG=112842 TEST=Manual Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=142408 Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=142541 Review URL: https://chromiumcodereview.appspot.com/10052018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@143590 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/public')
-rw-r--r--content/public/common/content_switches.cc4
-rw-r--r--content/public/common/content_switches.h1
2 files changed, 5 insertions, 0 deletions
diff --git a/content/public/common/content_switches.cc b/content/public/common/content_switches.cc
index 177813b..b0dadc7 100644
--- a/content/public/common/content_switches.cc
+++ b/content/public/common/content_switches.cc
@@ -294,6 +294,10 @@ const char kEnableOriginBoundCerts[] = "enable-origin-bound-certs";
// Enables partial swaps in the WK compositor on platforms that support it.
const char kEnablePartialSwap[] = "enable-partial-swap";
+// Enables UI releasing handle to front surface for background tabs on platforms
+// that support it.
+const char kEnableUIReleaseFrontSurface[] = "enable-ui-release-front-surface";
+
// Enables touch-screen pinch gestures.
const char kEnablePinch[] = "enable-pinch";
diff --git a/content/public/common/content_switches.h b/content/public/common/content_switches.h
index 4b25727..a876146 100644
--- a/content/public/common/content_switches.h
+++ b/content/public/common/content_switches.h
@@ -100,6 +100,7 @@ extern const char kEnablePeerConnection[];
extern const char kEnableMonitorProfile[];
extern const char kEnableOriginBoundCerts[];
extern const char kEnablePartialSwap[];
+extern const char kEnableUIReleaseFrontSurface[];
extern const char kEnablePinch[];
extern const char kEnablePreparsedJsCaching[];
CONTENT_EXPORT extern const char kEnablePrivilegedWebGLExtensions[];