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

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

Issue 400773002: cc: Parameterize the main thread task runner (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: WebView fix. Created 6 years, 5 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/thread_proxy.h ('k') | content/browser/renderer_host/compositor_impl_android.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/thread_proxy.h" 5 #include "cc/trees/thread_proxy.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <string> 8 #include <string>
9 9
10 #include "base/auto_reset.h" 10 #include "base/auto_reset.h"
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
57 bool commit_pending; 57 bool commit_pending;
58 }; 58 };
59 59
60 struct ThreadProxy::SchedulerStateRequest { 60 struct ThreadProxy::SchedulerStateRequest {
61 CompletionEvent completion; 61 CompletionEvent completion;
62 scoped_ptr<base::Value> state; 62 scoped_ptr<base::Value> state;
63 }; 63 };
64 64
65 scoped_ptr<Proxy> ThreadProxy::Create( 65 scoped_ptr<Proxy> ThreadProxy::Create(
66 LayerTreeHost* layer_tree_host, 66 LayerTreeHost* layer_tree_host,
67 scoped_refptr<base::SingleThreadTaskRunner> main_task_runner,
67 scoped_refptr<base::SingleThreadTaskRunner> impl_task_runner) { 68 scoped_refptr<base::SingleThreadTaskRunner> impl_task_runner) {
68 return make_scoped_ptr(new ThreadProxy(layer_tree_host, impl_task_runner)) 69 return make_scoped_ptr(new ThreadProxy(layer_tree_host,
69 .PassAs<Proxy>(); 70 main_task_runner,
71 impl_task_runner)).PassAs<Proxy>();
70 } 72 }
71 73
72 ThreadProxy::ThreadProxy( 74 ThreadProxy::ThreadProxy(
73 LayerTreeHost* layer_tree_host, 75 LayerTreeHost* layer_tree_host,
76 scoped_refptr<base::SingleThreadTaskRunner> main_task_runner,
74 scoped_refptr<base::SingleThreadTaskRunner> impl_task_runner) 77 scoped_refptr<base::SingleThreadTaskRunner> impl_task_runner)
75 : Proxy(impl_task_runner), 78 : Proxy(main_task_runner, impl_task_runner),
76 main_thread_only_vars_unsafe_(this, layer_tree_host->id()), 79 main_thread_only_vars_unsafe_(this, layer_tree_host->id()),
77 main_thread_or_blocked_vars_unsafe_(layer_tree_host), 80 main_thread_or_blocked_vars_unsafe_(layer_tree_host),
78 compositor_thread_vars_unsafe_(this, layer_tree_host->id()) { 81 compositor_thread_vars_unsafe_(this, layer_tree_host->id()) {
79 TRACE_EVENT0("cc", "ThreadProxy::ThreadProxy"); 82 TRACE_EVENT0("cc", "ThreadProxy::ThreadProxy");
80 DCHECK(IsMainThread()); 83 DCHECK(IsMainThread());
81 DCHECK(this->layer_tree_host()); 84 DCHECK(this->layer_tree_host());
82 } 85 }
83 86
84 ThreadProxy::MainThreadOnly::MainThreadOnly(ThreadProxy* proxy, 87 ThreadProxy::MainThreadOnly::MainThreadOnly(ThreadProxy* proxy,
85 int layer_tree_host_id) 88 int layer_tree_host_id)
(...skipping 372 matching lines...) Expand 10 before | Expand all | Expand 10 after
458 void ThreadProxy::SetDeferCommits(bool defer_commits) { 461 void ThreadProxy::SetDeferCommits(bool defer_commits) {
459 DCHECK(IsMainThread()); 462 DCHECK(IsMainThread());
460 DCHECK_NE(main().defer_commits, defer_commits); 463 DCHECK_NE(main().defer_commits, defer_commits);
461 main().defer_commits = defer_commits; 464 main().defer_commits = defer_commits;
462 465
463 if (main().defer_commits) 466 if (main().defer_commits)
464 TRACE_EVENT_ASYNC_BEGIN0("cc", "ThreadProxy::SetDeferCommits", this); 467 TRACE_EVENT_ASYNC_BEGIN0("cc", "ThreadProxy::SetDeferCommits", this);
465 else 468 else
466 TRACE_EVENT_ASYNC_END0("cc", "ThreadProxy::SetDeferCommits", this); 469 TRACE_EVENT_ASYNC_END0("cc", "ThreadProxy::SetDeferCommits", this);
467 470
468 if (!main().defer_commits && main().pending_deferred_commit) 471 if (!main().defer_commits && main().pending_deferred_commit) {
469 Proxy::MainThreadTaskRunner()->PostTask( 472 Proxy::MainThreadTaskRunner()->PostTask(
470 FROM_HERE, 473 FROM_HERE,
471 base::Bind(&ThreadProxy::BeginMainFrame, 474 base::Bind(&ThreadProxy::BeginMainFrame,
472 main_thread_weak_ptr_, 475 main_thread_weak_ptr_,
473 base::Passed(&main().pending_deferred_commit))); 476 base::Passed(&main().pending_deferred_commit)));
477 }
474 } 478 }
475 479
476 bool ThreadProxy::CommitRequested() const { 480 bool ThreadProxy::CommitRequested() const {
477 DCHECK(IsMainThread()); 481 DCHECK(IsMainThread());
478 return main().commit_requested; 482 return main().commit_requested;
479 } 483 }
480 484
481 bool ThreadProxy::BeginMainFrameRequested() const { 485 bool ThreadProxy::BeginMainFrameRequested() const {
482 DCHECK(IsMainThread()); 486 DCHECK(IsMainThread());
483 return main().commit_request_sent_to_impl_thread; 487 return main().commit_request_sent_to_impl_thread;
(...skipping 966 matching lines...) Expand 10 before | Expand all | Expand 10 after
1450 1454
1451 impl().timing_history.DidActivateSyncTree(); 1455 impl().timing_history.DidActivateSyncTree();
1452 } 1456 }
1453 1457
1454 void ThreadProxy::DidManageTiles() { 1458 void ThreadProxy::DidManageTiles() {
1455 DCHECK(IsImplThread()); 1459 DCHECK(IsImplThread());
1456 impl().scheduler->DidManageTiles(); 1460 impl().scheduler->DidManageTiles();
1457 } 1461 }
1458 1462
1459 } // namespace cc 1463 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/thread_proxy.h ('k') | content/browser/renderer_host/compositor_impl_android.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698