diff options
author | kbr@chromium.org <kbr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-10-15 08:24:56 +0000 |
---|---|---|
committer | kbr@chromium.org <kbr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-10-15 08:24:56 +0000 |
commit | 7d08a93537fedd6c349f2194d7e2ba0d22b39e35 (patch) | |
tree | e68f1d4985f2334e54dc8dd412c0200ab2f7963a /cc/test/layer_tree_test.cc | |
parent | 0d30d93182920e565fa76eaf49053fd9ac07cc6f (diff) | |
download | chromium_src-7d08a93537fedd6c349f2194d7e2ba0d22b39e35.zip chromium_src-7d08a93537fedd6c349f2194d7e2ba0d22b39e35.tar.gz chromium_src-7d08a93537fedd6c349f2194d7e2ba0d22b39e35.tar.bz2 |
Fix race conditions in window snapshot code.
Use LatencyInfo to track when a rendered frame reaches the screen.
Only tested so far on Linux with single-threaded compositor. Must be
tested with Telemetry's GpuTabTest.testScreenshot test on all of
Windows, Mac and Linux with the compositor disabled, enabled and
single-threaded, and enabled and multi-threaded.
BUG=256848
Review URL: https://codereview.chromium.org/23694031
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@228652 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'cc/test/layer_tree_test.cc')
-rw-r--r-- | cc/test/layer_tree_test.cc | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/cc/test/layer_tree_test.cc b/cc/test/layer_tree_test.cc index 87fcb54..6a7cf50 100644 --- a/cc/test/layer_tree_test.cc +++ b/cc/test/layer_tree_test.cc @@ -414,6 +414,13 @@ void LayerTreeTest::PostSetVisibleToMainThread(bool visible) { visible)); } +void LayerTreeTest::PostSetNextCommitForcesRedrawToMainThread() { + proxy()->MainThreadTaskRunner()->PostTask( + FROM_HERE, + base::Bind(&LayerTreeTest::DispatchSetNextCommitForcesRedraw, + main_thread_weak_ptr_)); +} + void LayerTreeTest::DoBeginTest() { client_ = LayerTreeHostClientForTesting::Create(this); @@ -558,6 +565,13 @@ void LayerTreeTest::DispatchSetVisible(bool visible) { ScheduleComposite(); } +void LayerTreeTest::DispatchSetNextCommitForcesRedraw() { + DCHECK(!proxy() || proxy()->IsMainThread()); + + if (layer_tree_host_) + layer_tree_host_->SetNextCommitForcesRedraw(); +} + void LayerTreeTest::DispatchComposite() { scheduled_ = false; |