diff options
author | mmocny@chromium.org <mmocny@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-06-22 15:04:39 +0000 |
---|---|---|
committer | mmocny@chromium.org <mmocny@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-06-22 15:04:39 +0000 |
commit | e1912900343026500db1192f6e9c05d43798a1df (patch) | |
tree | fb80c9fd8dcd31f59b7142e9092c3c89a3f22ef1 /content/public | |
parent | 8a197f26faebaf68cb484596ccf970b1ab1fe779 (diff) | |
download | chromium_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.cc | 4 | ||||
-rw-r--r-- | content/public/common/content_switches.h | 1 |
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[]; |