OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 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 | 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 #ifndef CC_DEBUG_DEVTOOLS_INSTRUMENTATION_H_ | 5 #ifndef CC_DEBUG_DEVTOOLS_INSTRUMENTATION_H_ |
6 #define CC_DEBUG_DEVTOOLS_INSTRUMENTATION_H_ | 6 #define CC_DEBUG_DEVTOOLS_INSTRUMENTATION_H_ |
7 | 7 |
8 #include "base/trace_event/trace_event.h" | 8 #include "base/trace_event/trace_event.h" |
| 9 #include "base/trace_event/trace_event_argument.h" |
9 | 10 |
10 namespace cc { | 11 namespace cc { |
11 namespace devtools_instrumentation { | 12 namespace devtools_instrumentation { |
12 | 13 |
13 namespace internal { | 14 namespace internal { |
14 const char kCategory[] = TRACE_DISABLED_BY_DEFAULT("devtools.timeline"); | 15 const char kCategory[] = TRACE_DISABLED_BY_DEFAULT("devtools.timeline"); |
15 const char kCategoryFrame[] = | 16 const char kCategoryFrame[] = |
16 TRACE_DISABLED_BY_DEFAULT("devtools.timeline.frame"); | 17 TRACE_DISABLED_BY_DEFAULT("devtools.timeline.frame"); |
| 18 const char kData[] = "data"; |
17 const char kFrameId[] = "frameId"; | 19 const char kFrameId[] = "frameId"; |
18 const char kLayerId[] = "layerId"; | 20 const char kLayerId[] = "layerId"; |
19 const char kLayerTreeId[] = "layerTreeId"; | 21 const char kLayerTreeId[] = "layerTreeId"; |
20 const char kPixelRefId[] = "pixelRefId"; | 22 const char kPixelRefId[] = "pixelRefId"; |
21 | 23 |
22 const char kImageDecodeTask[] = "ImageDecodeTask"; | 24 const char kImageDecodeTask[] = "ImageDecodeTask"; |
23 const char kBeginFrame[] = "BeginFrame"; | 25 const char kBeginFrame[] = "BeginFrame"; |
24 const char kActivateLayerTree[] = "ActivateLayerTree"; | 26 const char kActivateLayerTree[] = "ActivateLayerTree"; |
25 const char kRequestMainThreadFrame[] = "RequestMainThreadFrame"; | 27 const char kRequestMainThreadFrame[] = "RequestMainThreadFrame"; |
| 28 const char kBeginMainThreadFrame[] = "BeginMainThreadFrame"; |
26 const char kDrawFrame[] = "DrawFrame"; | 29 const char kDrawFrame[] = "DrawFrame"; |
| 30 const char kCompositeLayers[] = "CompositeLayers"; |
27 } // namespace internal | 31 } // namespace internal |
28 | 32 |
29 const char kPaintSetup[] = "PaintSetup"; | 33 const char kPaintSetup[] = "PaintSetup"; |
30 const char kUpdateLayer[] = "UpdateLayer"; | 34 const char kUpdateLayer[] = "UpdateLayer"; |
31 | 35 |
32 class ScopedLayerTask { | 36 class ScopedLayerTask { |
33 public: | 37 public: |
34 ScopedLayerTask(const char* event_name, int layer_id) | 38 ScopedLayerTask(const char* event_name, int layer_id) |
35 : event_name_(event_name) { | 39 : event_name_(event_name) { |
36 TRACE_EVENT_BEGIN1(internal::kCategory, event_name_, | 40 TRACE_EVENT_BEGIN1(internal::kCategory, event_name_, |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
70 } | 74 } |
71 ~ScopedLayerTreeTask() { | 75 ~ScopedLayerTreeTask() { |
72 TRACE_EVENT_END0(internal::kCategory, event_name_); | 76 TRACE_EVENT_END0(internal::kCategory, event_name_); |
73 } | 77 } |
74 private: | 78 private: |
75 const char* event_name_; | 79 const char* event_name_; |
76 | 80 |
77 DISALLOW_COPY_AND_ASSIGN(ScopedLayerTreeTask); | 81 DISALLOW_COPY_AND_ASSIGN(ScopedLayerTreeTask); |
78 }; | 82 }; |
79 | 83 |
| 84 struct ScopedCommitTrace { |
| 85 public: |
| 86 explicit ScopedCommitTrace(int layer_tree_host_id) { |
| 87 TRACE_EVENT_BEGIN1(internal::kCategory, internal::kCompositeLayers, |
| 88 internal::kLayerTreeId, layer_tree_host_id); |
| 89 } |
| 90 ~ScopedCommitTrace() { |
| 91 TRACE_EVENT_END0(internal::kCategory, internal::kCompositeLayers); |
| 92 } |
| 93 |
| 94 private: |
| 95 DISALLOW_COPY_AND_ASSIGN(ScopedCommitTrace); |
| 96 }; |
| 97 |
80 struct ScopedLayerObjectTracker | 98 struct ScopedLayerObjectTracker |
81 : public base::debug::TraceScopedTrackableObject<int> { | 99 : public base::debug::TraceScopedTrackableObject<int> { |
82 explicit ScopedLayerObjectTracker(int layer_id) | 100 explicit ScopedLayerObjectTracker(int layer_id) |
83 : base::debug::TraceScopedTrackableObject<int>( | 101 : base::debug::TraceScopedTrackableObject<int>( |
84 internal::kCategory, | 102 internal::kCategory, |
85 internal::kLayerId, | 103 internal::kLayerId, |
86 layer_id) { | 104 layer_id) { |
87 } | 105 } |
88 | 106 |
89 private: | 107 private: |
(...skipping 27 matching lines...) Expand all Loading... |
117 } | 135 } |
118 | 136 |
119 inline void DidRequestMainThreadFrame(int layer_tree_host_id) { | 137 inline void DidRequestMainThreadFrame(int layer_tree_host_id) { |
120 TRACE_EVENT_INSTANT1(internal::kCategoryFrame, | 138 TRACE_EVENT_INSTANT1(internal::kCategoryFrame, |
121 internal::kRequestMainThreadFrame, | 139 internal::kRequestMainThreadFrame, |
122 TRACE_EVENT_SCOPE_THREAD, | 140 TRACE_EVENT_SCOPE_THREAD, |
123 internal::kLayerTreeId, | 141 internal::kLayerTreeId, |
124 layer_tree_host_id); | 142 layer_tree_host_id); |
125 } | 143 } |
126 | 144 |
| 145 inline scoped_refptr<base::debug::ConvertableToTraceFormat> |
| 146 BeginMainThreadFrameData(int frame_id) { |
| 147 scoped_refptr<base::debug::TracedValue> value = |
| 148 new base::debug::TracedValue(); |
| 149 value->SetInteger("frameId", frame_id); |
| 150 return value; |
| 151 } |
| 152 |
| 153 inline void WillBeginMainThreadFrame(int layer_tree_host_id, int frame_id) { |
| 154 TRACE_EVENT_INSTANT2( |
| 155 internal::kCategoryFrame, internal::kBeginMainThreadFrame, |
| 156 TRACE_EVENT_SCOPE_THREAD, internal::kLayerTreeId, layer_tree_host_id, |
| 157 internal::kData, BeginMainThreadFrameData(frame_id)); |
| 158 } |
| 159 |
127 } // namespace devtools_instrumentation | 160 } // namespace devtools_instrumentation |
128 } // namespace cc | 161 } // namespace cc |
129 | 162 |
130 #endif // CC_DEBUG_DEVTOOLS_INSTRUMENTATION_H_ | 163 #endif // CC_DEBUG_DEVTOOLS_INSTRUMENTATION_H_ |
OLD | NEW |