Index: cc/debug/devtools_instrumentation.h |
diff --git a/cc/debug/devtools_instrumentation.h b/cc/debug/devtools_instrumentation.h |
index cfe3e5a2f004e39895a85cd3e0d9da79736ec38f..73788a528af41faeaa85123c81eb51117d46032a 100644 |
--- a/cc/debug/devtools_instrumentation.h |
+++ b/cc/debug/devtools_instrumentation.h |
@@ -6,6 +6,7 @@ |
#define CC_DEBUG_DEVTOOLS_INSTRUMENTATION_H_ |
#include "base/trace_event/trace_event.h" |
+#include "base/trace_event/trace_event_argument.h" |
namespace cc { |
namespace devtools_instrumentation { |
@@ -14,6 +15,7 @@ namespace internal { |
const char kCategory[] = TRACE_DISABLED_BY_DEFAULT("devtools.timeline"); |
const char kCategoryFrame[] = |
TRACE_DISABLED_BY_DEFAULT("devtools.timeline.frame"); |
+const char kData[] = "data"; |
const char kFrameId[] = "frameId"; |
const char kLayerId[] = "layerId"; |
const char kLayerTreeId[] = "layerTreeId"; |
@@ -23,7 +25,9 @@ const char kImageDecodeTask[] = "ImageDecodeTask"; |
const char kBeginFrame[] = "BeginFrame"; |
const char kActivateLayerTree[] = "ActivateLayerTree"; |
const char kRequestMainThreadFrame[] = "RequestMainThreadFrame"; |
+const char kBeginMainThreadFrame[] = "BeginMainThreadFrame"; |
const char kDrawFrame[] = "DrawFrame"; |
+const char kCompositeLayers[] = "CompositeLayers"; |
} // namespace internal |
const char kPaintSetup[] = "PaintSetup"; |
@@ -77,6 +81,20 @@ class ScopedLayerTreeTask { |
DISALLOW_COPY_AND_ASSIGN(ScopedLayerTreeTask); |
}; |
+struct ScopedCommitTrace { |
+ public: |
+ explicit ScopedCommitTrace(int layer_tree_host_id) { |
+ TRACE_EVENT_BEGIN1(internal::kCategory, internal::kCompositeLayers, |
+ internal::kLayerTreeId, layer_tree_host_id); |
+ } |
+ ~ScopedCommitTrace() { |
+ TRACE_EVENT_END0(internal::kCategory, internal::kCompositeLayers); |
+ } |
+ |
+ private: |
+ DISALLOW_COPY_AND_ASSIGN(ScopedCommitTrace); |
+}; |
+ |
struct ScopedLayerObjectTracker |
: public base::debug::TraceScopedTrackableObject<int> { |
explicit ScopedLayerObjectTracker(int layer_id) |
@@ -124,6 +142,21 @@ inline void DidRequestMainThreadFrame(int layer_tree_host_id) { |
layer_tree_host_id); |
} |
+inline scoped_refptr<base::debug::ConvertableToTraceFormat> |
+BeginMainThreadFrameData(int frame_id) { |
+ scoped_refptr<base::debug::TracedValue> value = |
+ new base::debug::TracedValue(); |
+ value->SetInteger("frameId", frame_id); |
+ return value; |
+} |
+ |
+inline void WillBeginMainThreadFrame(int layer_tree_host_id, int frame_id) { |
+ TRACE_EVENT_INSTANT2( |
+ internal::kCategoryFrame, internal::kBeginMainThreadFrame, |
+ TRACE_EVENT_SCOPE_THREAD, internal::kLayerTreeId, layer_tree_host_id, |
+ internal::kData, BeginMainThreadFrameData(frame_id)); |
+} |
+ |
} // namespace devtools_instrumentation |
} // namespace cc |