Index: ui/compositor/compositor.cc |
diff --git a/ui/compositor/compositor.cc b/ui/compositor/compositor.cc |
index 2a2dd0342dee12f52473cb2060acf35497aabfb7..b4a51d6ac8a05b07f4f0ec677d57097e439c42e7 100644 |
--- a/ui/compositor/compositor.cc |
+++ b/ui/compositor/compositor.cc |
@@ -359,6 +359,14 @@ void CompositorLock::CancelLock() { |
// static |
void DrawWaiterForTest::Wait(Compositor* compositor) { |
DrawWaiterForTest waiter; |
+ waiter.wait_for_commit_ = false; |
+ waiter.WaitImpl(compositor); |
+} |
+ |
+// static |
+void DrawWaiterForTest::WaitForCommit(Compositor* compositor) { |
+ DrawWaiterForTest waiter; |
+ waiter.wait_for_commit_ = true; |
waiter.WaitImpl(compositor); |
} |
@@ -376,6 +384,8 @@ void DrawWaiterForTest::WaitImpl(Compositor* compositor) { |
} |
void DrawWaiterForTest::OnCompositingDidCommit(Compositor* compositor) { |
+ if (wait_for_commit_) |
+ wait_run_loop_->Quit(); |
} |
void DrawWaiterForTest::OnCompositingStarted(Compositor* compositor, |
@@ -383,7 +393,8 @@ void DrawWaiterForTest::OnCompositingStarted(Compositor* compositor, |
} |
void DrawWaiterForTest::OnCompositingEnded(Compositor* compositor) { |
- wait_run_loop_->Quit(); |
+ if (!wait_for_commit_) |
+ wait_run_loop_->Quit(); |
} |
void DrawWaiterForTest::OnCompositingAborted(Compositor* compositor) { |
@@ -758,11 +769,6 @@ void Compositor::DidCommitAndDrawFrame() { |
FOR_EACH_OBSERVER(CompositorObserver, |
observer_list_, |
OnCompositingStarted(this, start_time)); |
- // If we're threaded without a swap complete callback, we have to |
- // call DidCompleteSwapBuffersManually. |
- if (g_compositor_thread && |
- !host_->GetRendererCapabilities().using_swap_complete_callback) |
- DidCompleteSwapBuffers(); |
} |
void Compositor::DidCompleteSwapBuffers() { |