| Index: cc/trees/thread_proxy.cc
|
| diff --git a/cc/trees/thread_proxy.cc b/cc/trees/thread_proxy.cc
|
| index b18b93a63518f976b00ff36c570f4b5ae57c7346..9fa3ecee5d6b5720a7b2637ecd8879cbfd516b78 100644
|
| --- a/cc/trees/thread_proxy.cc
|
| +++ b/cc/trees/thread_proxy.cc
|
| @@ -25,6 +25,7 @@
|
| #include "cc/trees/blocking_task_runner.h"
|
| #include "cc/trees/layer_tree_host.h"
|
| #include "cc/trees/layer_tree_impl.h"
|
| +#include "cc/trees/scoped_swap_promise_checker.h"
|
| #include "gpu/command_buffer/client/gles2_interface.h"
|
| #include "ui/gfx/frame_time.h"
|
|
|
| @@ -37,19 +38,6 @@ const double kSmoothnessTakesPriorityExpirationDelay = 0.25;
|
|
|
| unsigned int nextBeginFrameId = 0;
|
|
|
| -class SwapPromiseChecker {
|
| - public:
|
| - explicit SwapPromiseChecker(LayerTreeHost* layer_tree_host)
|
| - : layer_tree_host_(layer_tree_host) {}
|
| -
|
| - ~SwapPromiseChecker() {
|
| - layer_tree_host_->BreakSwapPromises(SwapPromise::COMMIT_FAILS);
|
| - }
|
| -
|
| - private:
|
| - LayerTreeHost* layer_tree_host_;
|
| -};
|
| -
|
| } // namespace
|
|
|
| struct ThreadProxy::CommitPendingRequest {
|
| @@ -466,9 +454,10 @@ void ThreadProxy::SetNextCommitWaitsForActivation() {
|
|
|
| void ThreadProxy::SetDeferCommits(bool defer_commits) {
|
| DCHECK(IsMainThread());
|
| - DCHECK_NE(main().defer_commits, defer_commits);
|
| - main().defer_commits = defer_commits;
|
| + if (main().defer_commits == defer_commits)
|
| + return;
|
|
|
| + main().defer_commits = defer_commits;
|
| if (main().defer_commits)
|
| TRACE_EVENT_ASYNC_BEGIN0("cc", "ThreadProxy::SetDeferCommits", this);
|
| else
|
| @@ -748,9 +737,9 @@ void ThreadProxy::BeginMainFrame(
|
| }
|
|
|
| // If the commit finishes, LayerTreeHost will transfer its swap promises to
|
| - // LayerTreeImpl. The destructor of SwapPromiseChecker checks LayerTressHost's
|
| - // swap promises.
|
| - SwapPromiseChecker swap_promise_checker(layer_tree_host());
|
| + // LayerTreeImpl. The destructor of ScopedSwapPromiseChecker aborts the
|
| + // remaining swap promises.
|
| + ScopedSwapPromiseChecker swap_promise_checker(layer_tree_host());
|
|
|
| main().commit_requested = false;
|
| main().commit_request_sent_to_impl_thread = false;
|
|
|