Index: cc/debug/frame_viewer_instrumentation.cc |
diff --git a/cc/debug/frame_viewer_instrumentation.cc b/cc/debug/frame_viewer_instrumentation.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..faade1ac2e05b8be1eb866e3d44dae250ecca89b |
--- /dev/null |
+++ b/cc/debug/frame_viewer_instrumentation.cc |
@@ -0,0 +1,66 @@ |
+// Copyright 2014 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "cc/debug/frame_viewer_instrumentation.h" |
+ |
+namespace cc { |
+namespace frame_viewer_instrumentation { |
+namespace internal { |
+ |
+const char kCategory[] = "cc"; |
+const char kTileData[] = "tileData"; |
+const char kLayerId[] = "layerId"; |
+const char kTileId[] = "tileId"; |
+const char kTileResolution[] = "tileResolution"; |
+const char kSourceFrameNumber[] = "sourceFrameNumber"; |
+ |
+const char kAnalyzeTask[] = "AnalyzeTask"; |
+const char kRasterTask[] = "RasterTask"; |
+ |
+scoped_refptr<base::debug::ConvertableToTraceFormat> TileDataAsValue( |
+ const void* tile_id, |
+ TileResolution tile_resolution, |
+ int source_frame_number, |
+ int layer_id) { |
+ scoped_refptr<base::debug::TracedValue> res(new base::debug::TracedValue()); |
+ TracedValue::SetIDRef(tile_id, res.get(), internal::kTileId); |
+ res->SetString(internal::kTileResolution, |
+ TileResolutionToString(tile_resolution)); |
+ res->SetInteger(internal::kSourceFrameNumber, source_frame_number); |
+ res->SetInteger(internal::kLayerId, layer_id); |
+ return res; |
+} |
+ |
+} // namespace internal |
+ |
+ScopedAnalyzeTask::ScopedAnalyzeTask(const void* tile_id, |
+ TileResolution tile_resolution, |
+ int source_frame_number, |
+ int layer_id) { |
+ TRACE_EVENT_BEGIN1(internal::kCategory, internal::kAnalyzeTask, |
+ internal::kTileData, |
+ internal::TileDataAsValue(tile_id, tile_resolution, |
+ source_frame_number, layer_id)); |
+} |
+ |
+ScopedAnalyzeTask::~ScopedAnalyzeTask() { |
+ TRACE_EVENT_END0(internal::kCategory, internal::kAnalyzeTask); |
+} |
+ |
+ScopedRasterTask::ScopedRasterTask(const void* tile_id, |
+ TileResolution tile_resolution, |
+ int source_frame_number, |
+ int layer_id) { |
+ TRACE_EVENT_BEGIN1(internal::kCategory, internal::kRasterTask, |
+ internal::kTileData, |
+ internal::TileDataAsValue(tile_id, tile_resolution, |
+ source_frame_number, layer_id)); |
+} |
+ |
+ScopedRasterTask::~ScopedRasterTask() { |
+ TRACE_EVENT_END0(internal::kCategory, internal::kRasterTask); |
+} |
+ |
+} // namespace frame_viewer_instrumentation |
+} // namespace cc |