Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(91)

Side by Side Diff: cc/trees/single_thread_proxy.cc

Issue 485043003: cc: Use correct message loop proxy in BlockingTaskRunner (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Nits. Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « cc/trees/proxy.cc ('k') | cc/trees/thread_proxy.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2011 The Chromium Authors. All rights reserved. 1 // Copyright 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "cc/trees/single_thread_proxy.h" 5 #include "cc/trees/single_thread_proxy.h"
6 6
7 #include "base/auto_reset.h" 7 #include "base/auto_reset.h"
8 #include "base/debug/trace_event.h" 8 #include "base/debug/trace_event.h"
9 #include "cc/debug/benchmark_instrumentation.h" 9 #include "cc/debug/benchmark_instrumentation.h"
10 #include "cc/output/context_provider.h" 10 #include "cc/output/context_provider.h"
(...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after
185 layer_tree_host_->WillCommit(); 185 layer_tree_host_->WillCommit();
186 186
187 // Commit immediately. 187 // Commit immediately.
188 { 188 {
189 DebugScopedSetMainThreadBlocked main_thread_blocked(this); 189 DebugScopedSetMainThreadBlocked main_thread_blocked(this);
190 DebugScopedSetImplThread impl(this); 190 DebugScopedSetImplThread impl(this);
191 191
192 // This CapturePostTasks should be destroyed before CommitComplete() is 192 // This CapturePostTasks should be destroyed before CommitComplete() is
193 // called since that goes out to the embedder, and we want the embedder 193 // called since that goes out to the embedder, and we want the embedder
194 // to receive its callbacks before that. 194 // to receive its callbacks before that.
195 BlockingTaskRunner::CapturePostTasks blocked; 195 BlockingTaskRunner::CapturePostTasks blocked(
196 blocking_main_thread_task_runner());
196 197
197 layer_tree_host_impl_->BeginCommit(); 198 layer_tree_host_impl_->BeginCommit();
198 199
199 if (PrioritizedResourceManager* contents_texture_manager = 200 if (PrioritizedResourceManager* contents_texture_manager =
200 layer_tree_host_->contents_texture_manager()) { 201 layer_tree_host_->contents_texture_manager()) {
201 contents_texture_manager->PushTexturePrioritiesToBackings(); 202 contents_texture_manager->PushTexturePrioritiesToBackings();
202 } 203 }
203 layer_tree_host_->BeginCommitOnImplThread(layer_tree_host_impl_.get()); 204 layer_tree_host_->BeginCommitOnImplThread(layer_tree_host_impl_.get());
204 205
205 scoped_ptr<ResourceUpdateController> update_controller = 206 scoped_ptr<ResourceUpdateController> update_controller =
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
301 return std::numeric_limits<size_t>::max(); 302 return std::numeric_limits<size_t>::max();
302 } 303 }
303 304
304 void SingleThreadProxy::Stop() { 305 void SingleThreadProxy::Stop() {
305 TRACE_EVENT0("cc", "SingleThreadProxy::stop"); 306 TRACE_EVENT0("cc", "SingleThreadProxy::stop");
306 DCHECK(Proxy::IsMainThread()); 307 DCHECK(Proxy::IsMainThread());
307 { 308 {
308 DebugScopedSetMainThreadBlocked main_thread_blocked(this); 309 DebugScopedSetMainThreadBlocked main_thread_blocked(this);
309 DebugScopedSetImplThread impl(this); 310 DebugScopedSetImplThread impl(this);
310 311
311 BlockingTaskRunner::CapturePostTasks blocked; 312 BlockingTaskRunner::CapturePostTasks blocked(
313 blocking_main_thread_task_runner());
312 layer_tree_host_->DeleteContentsTexturesOnImplThread( 314 layer_tree_host_->DeleteContentsTexturesOnImplThread(
313 layer_tree_host_impl_->resource_provider()); 315 layer_tree_host_impl_->resource_provider());
314 scheduler_on_impl_thread_.reset(); 316 scheduler_on_impl_thread_.reset();
315 layer_tree_host_impl_.reset(); 317 layer_tree_host_impl_.reset();
316 } 318 }
317 layer_tree_host_ = NULL; 319 layer_tree_host_ = NULL;
318 } 320 }
319 321
320 void SingleThreadProxy::OnCanDrawStateChanged(bool can_draw) { 322 void SingleThreadProxy::OnCanDrawStateChanged(bool can_draw) {
321 TRACE_EVENT1( 323 TRACE_EVENT1(
(...skipping 205 matching lines...) Expand 10 before | Expand all | Expand 10 after
527 // This CapturePostTasks should be destroyed before 529 // This CapturePostTasks should be destroyed before
528 // DidCommitAndDrawFrame() is called since that goes out to the 530 // DidCommitAndDrawFrame() is called since that goes out to the
529 // embedder, 531 // embedder,
530 // and we want the embedder to receive its callbacks before that. 532 // and we want the embedder to receive its callbacks before that.
531 // NOTE: This maintains consistent ordering with the ThreadProxy since 533 // NOTE: This maintains consistent ordering with the ThreadProxy since
532 // the DidCommitAndDrawFrame() must be post-tasked from the impl thread 534 // the DidCommitAndDrawFrame() must be post-tasked from the impl thread
533 // there as the main thread is not blocked, so any posted tasks inside 535 // there as the main thread is not blocked, so any posted tasks inside
534 // the swap buffers will execute first. 536 // the swap buffers will execute first.
535 DebugScopedSetMainThreadBlocked main_thread_blocked(this); 537 DebugScopedSetMainThreadBlocked main_thread_blocked(this);
536 538
537 BlockingTaskRunner::CapturePostTasks blocked; 539 BlockingTaskRunner::CapturePostTasks blocked(
540 blocking_main_thread_task_runner());
538 layer_tree_host_impl_->SwapBuffers(*frame); 541 layer_tree_host_impl_->SwapBuffers(*frame);
539 } 542 }
540 DidCommitAndDrawFrame(); 543 DidCommitAndDrawFrame();
541 544
542 return DRAW_SUCCESS; 545 return DRAW_SUCCESS;
543 } 546 }
544 547
545 void SingleThreadProxy::DidCommitAndDrawFrame() { 548 void SingleThreadProxy::DidCommitAndDrawFrame() {
546 if (next_frame_is_newly_committed_frame_) { 549 if (next_frame_is_newly_committed_frame_) {
547 DebugScopedSetMainThread main(this); 550 DebugScopedSetMainThread main(this);
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
686 689
687 base::TimeDelta SingleThreadProxy::CommitToActivateDurationEstimate() { 690 base::TimeDelta SingleThreadProxy::CommitToActivateDurationEstimate() {
688 return timing_history_.CommitToActivateDurationEstimate(); 691 return timing_history_.CommitToActivateDurationEstimate();
689 } 692 }
690 693
691 void SingleThreadProxy::DidBeginImplFrameDeadline() { 694 void SingleThreadProxy::DidBeginImplFrameDeadline() {
692 layer_tree_host_impl_->ResetCurrentBeginFrameArgsForNextFrame(); 695 layer_tree_host_impl_->ResetCurrentBeginFrameArgsForNextFrame();
693 } 696 }
694 697
695 } // namespace cc 698 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/proxy.cc ('k') | cc/trees/thread_proxy.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698