| Index: cc/base/devtools_instrumentation.cc
|
| diff --git a/cc/base/devtools_instrumentation.cc b/cc/base/devtools_instrumentation.cc
|
| index 010b16149f1459263c3938514eddacda4b1dd75d..cbf47b35d4f5d796172527648188fc494e43319e 100644
|
| --- a/cc/base/devtools_instrumentation.cc
|
| +++ b/cc/base/devtools_instrumentation.cc
|
| @@ -30,5 +30,50 @@ extern const char kCompositeLayers[] = "CompositeLayers";
|
| extern const char kPaintSetup[] = "PaintSetup";
|
| extern const char kUpdateLayer[] = "UpdateLayer";
|
|
|
| +ScopedImageDecodeTask::ScopedImageDecodeTask(const void* image_ptr,
|
| + DecodeType decode_type,
|
| + TaskType task_type)
|
| + : decode_type_(decode_type),
|
| + task_type_(task_type),
|
| + start_time_(base::TimeTicks::Now()) {
|
| + TRACE_EVENT_BEGIN1(internal::kCategory, internal::kImageDecodeTask,
|
| + internal::kPixelRefId,
|
| + reinterpret_cast<uint64_t>(image_ptr));
|
| +}
|
| +
|
| +ScopedImageDecodeTask::~ScopedImageDecodeTask() {
|
| + TRACE_EVENT_END0(internal::kCategory, internal::kImageDecodeTask);
|
| + base::TimeDelta duration = base::TimeTicks::Now() - start_time_;
|
| + switch (task_type_) {
|
| + case kInRaster:
|
| + switch (decode_type_) {
|
| + case kSoftware:
|
| + UMA_HISTOGRAM_COUNTS_1M(
|
| + "Renderer4.ImageDecodeTaskDurationUs.Software",
|
| + duration.InMicroseconds());
|
| + break;
|
| + case kGpu:
|
| + UMA_HISTOGRAM_COUNTS_1M("Renderer4.ImageDecodeTaskDurationUs.Gpu",
|
| + duration.InMicroseconds());
|
| + break;
|
| + }
|
| + break;
|
| + case kOutOfRaster:
|
| + switch (decode_type_) {
|
| + case kSoftware:
|
| + UMA_HISTOGRAM_COUNTS_1M(
|
| + "Renderer4.ImageDecodeTaskDurationUs.OutOfRaster.Software",
|
| + duration.InMicroseconds());
|
| + break;
|
| + case kGpu:
|
| + UMA_HISTOGRAM_COUNTS_1M(
|
| + "Renderer4.ImageDecodeTaskDurationUs.OutOfRaster.Gpu",
|
| + duration.InMicroseconds());
|
| + break;
|
| + }
|
| + break;
|
| + }
|
| +}
|
| +
|
| } // namespace devtools_instrumentation
|
| } // namespace cc
|
|
|