| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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/threaded_channel.h" | 5 #include "cc/trees/threaded_channel.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/bind_helpers.h" |
| 8 #include "base/memory/ptr_util.h" | 9 #include "base/memory/ptr_util.h" |
| 9 #include "base/single_thread_task_runner.h" | 10 #include "base/single_thread_task_runner.h" |
| 10 #include "base/trace_event/trace_event.h" | 11 #include "base/trace_event/trace_event.h" |
| 11 #include "cc/animation/animation_events.h" | 12 #include "cc/animation/animation_events.h" |
| 12 #include "cc/animation/layer_tree_mutator.h" | 13 #include "cc/animation/layer_tree_mutator.h" |
| 13 #include "cc/trees/layer_tree_host.h" | 14 #include "cc/trees/layer_tree_host.h" |
| 14 | 15 |
| 15 namespace cc { | 16 namespace cc { |
| 16 | 17 |
| 17 std::unique_ptr<ThreadedChannel> ThreadedChannel::Create( | 18 std::unique_ptr<ThreadedChannel> ThreadedChannel::Create( |
| 18 ProxyMain* proxy_main, | 19 ProxyMain* proxy_main, |
| 19 TaskRunnerProvider* task_runner_provider) { | 20 TaskRunnerProvider* task_runner_provider) { |
| 20 return base::WrapUnique( | 21 return base::WrapUnique( |
| 21 new ThreadedChannel(proxy_main, task_runner_provider)); | 22 new ThreadedChannel(proxy_main, task_runner_provider)); |
| 22 } | 23 } |
| 23 | 24 |
| 24 ThreadedChannel::ThreadedChannel(ProxyMain* proxy_main, | 25 ThreadedChannel::ThreadedChannel(ProxyMain* proxy_main, |
| 25 TaskRunnerProvider* task_runner_provider) | 26 TaskRunnerProvider* task_runner_provider) |
| 26 : task_runner_provider_(task_runner_provider), | 27 : task_runner_provider_(task_runner_provider), |
| 27 main_thread_only_vars_unsafe_(proxy_main), | 28 main_thread_only_vars_unsafe_(proxy_main), |
| 28 compositor_thread_vars_unsafe_( | 29 compositor_thread_vars_unsafe_( |
| 29 main() | 30 main().proxy_main_weak_factory.GetWeakPtr()) { |
| 30 .proxy_main_weak_factory.GetWeakPtr()) { | |
| 31 DCHECK(IsMainThread()); | 31 DCHECK(IsMainThread()); |
| 32 } | 32 } |
| 33 | 33 |
| 34 ThreadedChannel::~ThreadedChannel() { | 34 ThreadedChannel::~ThreadedChannel() { |
| 35 TRACE_EVENT0("cc", "ThreadChannel::~ThreadChannel"); | 35 TRACE_EVENT0("cc", "ThreadChannel::~ThreadChannel"); |
| 36 DCHECK(IsMainThread()); | 36 DCHECK(IsMainThread()); |
| 37 DCHECK(!IsInitialized()); | 37 DCHECK(!IsInitialized()); |
| 38 } | 38 } |
| 39 | 39 |
| 40 void ThreadedChannel::UpdateTopControlsStateOnImpl(TopControlsState constraints, | 40 void ThreadedChannel::UpdateTopControlsStateOnImpl(TopControlsState constraints, |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 86 | 86 |
| 87 void ThreadedChannel::SetNeedsCommitOnImpl() { | 87 void ThreadedChannel::SetNeedsCommitOnImpl() { |
| 88 DCHECK(IsMainThread()); | 88 DCHECK(IsMainThread()); |
| 89 ImplThreadTaskRunner()->PostTask( | 89 ImplThreadTaskRunner()->PostTask( |
| 90 FROM_HERE, | 90 FROM_HERE, |
| 91 base::Bind(&ProxyImpl::SetNeedsCommitOnImpl, proxy_impl_weak_ptr_)); | 91 base::Bind(&ProxyImpl::SetNeedsCommitOnImpl, proxy_impl_weak_ptr_)); |
| 92 } | 92 } |
| 93 | 93 |
| 94 void ThreadedChannel::BeginMainFrameAbortedOnImpl( | 94 void ThreadedChannel::BeginMainFrameAbortedOnImpl( |
| 95 CommitEarlyOutReason reason, | 95 CommitEarlyOutReason reason, |
| 96 base::TimeTicks main_thread_start_time) { | 96 base::TimeTicks main_thread_start_time, |
| 97 std::vector<std::unique_ptr<SwapPromise>> swap_promises) { |
| 97 DCHECK(IsMainThread()); | 98 DCHECK(IsMainThread()); |
| 98 ImplThreadTaskRunner()->PostTask( | 99 ImplThreadTaskRunner()->PostTask( |
| 99 FROM_HERE, | 100 FROM_HERE, |
| 100 base::Bind(&ProxyImpl::BeginMainFrameAbortedOnImpl, proxy_impl_weak_ptr_, | 101 base::Bind(&ProxyImpl::BeginMainFrameAbortedOnImpl, proxy_impl_weak_ptr_, |
| 101 reason, main_thread_start_time)); | 102 reason, main_thread_start_time, base::Passed(&swap_promises))); |
| 102 } | 103 } |
| 103 | 104 |
| 104 void ThreadedChannel::SetNeedsRedrawOnImpl(const gfx::Rect& damage_rect) { | 105 void ThreadedChannel::SetNeedsRedrawOnImpl(const gfx::Rect& damage_rect) { |
| 105 DCHECK(IsMainThread()); | 106 DCHECK(IsMainThread()); |
| 106 ImplThreadTaskRunner()->PostTask( | 107 ImplThreadTaskRunner()->PostTask( |
| 107 FROM_HERE, base::Bind(&ProxyImpl::SetNeedsRedrawOnImpl, | 108 FROM_HERE, base::Bind(&ProxyImpl::SetNeedsRedrawOnImpl, |
| 108 proxy_impl_weak_ptr_, damage_rect)); | 109 proxy_impl_weak_ptr_, damage_rect)); |
| 109 } | 110 } |
| 110 | 111 |
| 111 void ThreadedChannel::SetVisibleOnImpl(bool visible) { | 112 void ThreadedChannel::SetVisibleOnImpl(bool visible) { |
| (...skipping 243 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 355 | 356 |
| 356 ThreadedChannel::MainThreadOnly::~MainThreadOnly() {} | 357 ThreadedChannel::MainThreadOnly::~MainThreadOnly() {} |
| 357 | 358 |
| 358 ThreadedChannel::CompositorThreadOnly::CompositorThreadOnly( | 359 ThreadedChannel::CompositorThreadOnly::CompositorThreadOnly( |
| 359 base::WeakPtr<ProxyMain> proxy_main_weak_ptr) | 360 base::WeakPtr<ProxyMain> proxy_main_weak_ptr) |
| 360 : proxy_main_weak_ptr(proxy_main_weak_ptr) {} | 361 : proxy_main_weak_ptr(proxy_main_weak_ptr) {} |
| 361 | 362 |
| 362 ThreadedChannel::CompositorThreadOnly::~CompositorThreadOnly() {} | 363 ThreadedChannel::CompositorThreadOnly::~CompositorThreadOnly() {} |
| 363 | 364 |
| 364 } // namespace cc | 365 } // namespace cc |
| OLD | NEW |