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

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

Issue 2188093002: cc: Complete swap promise for aborted commit after pending activation. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: post rebase fix Created 4 years, 4 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
« no previous file with comments | « cc/trees/threaded_channel.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
OLDNEW
« no previous file with comments | « cc/trees/threaded_channel.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698