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

Side by Side Diff: cc/base/swap_promise.cc

Issue 81533002: Use LatencyInfoSwapPromise to track LatencyInfo through compositor (Closed) Base URL: http://git.chromium.org/chromium/src.git@swap_promise_2
Patch Set: rebase Created 7 years 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
OLDNEW
(Empty)
1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "base/logging.h"
6 #include "cc/base/swap_promise.h"
7
8 namespace {
9 ui::LatencyComponentType DidNotSwapReasonToLatencyComponentType(
10 cc::SwapPromise::DidNotSwapReason reason) {
11 switch (reason) {
12 case cc::SwapPromise::DID_NOT_SWAP_UNKNOWN:
13 case cc::SwapPromise::SWAP_FAILS:
14 return ui::INPUT_EVENT_LATENCY_TERMINATED_SWAP_FAILED_COMPONENT;
15 break;
16 case cc::SwapPromise::COMMIT_FAILS:
17 return ui::INPUT_EVENT_LATENCY_TERMINATED_COMMIT_FAILED_COMPONENT;
18 break;
19 case cc::SwapPromise::SWAP_PROMISE_LIST_OVERFLOW:
20 return ui::LATENCY_INFO_LIST_TERMINATED_OVERFLOW_COMPONENT;
21 break;
22 default:
23 DLOG(WARNING) << "Unhandled DidNotSwapReason.\n";
24 break;
25 }
26 return ui::INPUT_EVENT_LATENCY_TERMINATED_SWAP_FAILED_COMPONENT;
27 }
28 } // namespace
29
30 namespace cc {
31
32 SwapPromise::SwapPromise(SwapPromiseType type) : type_(type) {
33 }
34
35 SwapPromise::~SwapPromise() {}
36
37 SwapPromise::SwapPromiseType SwapPromise::type() {
38 return type_;
39 }
40
41 LatencyInfoSwapPromise::LatencyInfoSwapPromise(const ui::LatencyInfo& latency)
42 : SwapPromise(SWAP_PROMISE_LATENCY_INFO),
43 latency_(latency) {
44 }
45
46 LatencyInfoSwapPromise::~LatencyInfoSwapPromise() {
47 }
48
49 void LatencyInfoSwapPromise::DidSwap() {
50 CHECK(!latency_.terminated);
51 }
52
53 void LatencyInfoSwapPromise::DidNotSwap(DidNotSwapReason reason) {
54 latency_.AddLatencyNumber(DidNotSwapReasonToLatencyComponentType(reason),
danakj 2013/11/26 19:17:53 these methods can be called on either thread. you
Yufeng Shen (Slow to review) 2013/11/27 20:05:33 But one SwapPromise can only live either on impl o
55 0, 0);
56 CHECK(latency_.terminated);
57 }
58
59 const ui::LatencyInfo& LatencyInfoSwapPromise::GetLatencyInfo() {
60 return latency_;
61 }
62
63 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698