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

Unified Diff: cc/tiles/image_controller.cc

Issue 2904743002: cc: Add UMA for tracking decode duration for out of raster decodes. (Closed)
Patch Set: .. Created 3 years, 7 months 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 side-by-side diff with in-line comments
Download patch
Index: cc/tiles/image_controller.cc
diff --git a/cc/tiles/image_controller.cc b/cc/tiles/image_controller.cc
index e8021e4264e0f41845b646f9fa974b3c3c4910d2..a46211dfa6325e7ce7ede8bd6680bbf464398244 100644
--- a/cc/tiles/image_controller.cc
+++ b/cc/tiles/image_controller.cc
@@ -179,7 +179,8 @@ std::vector<scoped_refptr<TileTask>> ImageController::SetPredecodeImages(
ImageController::ImageDecodeRequestId ImageController::QueueImageDecode(
sk_sp<const SkImage> image,
- const ImageDecodedCallback& callback) {
+ const ImageDecodedCallback& callback,
+ ImageDecodeCache::ImageDecodeType type) {
// We must not receive any image requests if we have no worker.
CHECK(worker_task_runner_);
@@ -207,15 +208,15 @@ ImageController::ImageDecodeRequestId ImageController::QueueImageDecode(
bool need_unref = false;
if (is_image_lazy) {
need_unref =
- cache_->GetOutOfRasterDecodeTaskForImageAndRef(draw_image, &task);
+ cache_->GetOutOfRasterDecodeTaskForImageAndRef(draw_image, type, &task);
}
// If we don't need to unref this, we don't actually have a task.
DCHECK(need_unref || !task);
// Schedule the task and signal that there is more work.
base::AutoLock hold(lock_);
- image_decode_queue_[id] =
- ImageDecodeRequest(id, draw_image, callback, std::move(task), need_unref);
+ image_decode_queue_[id] = ImageDecodeRequest(
+ id, draw_image, callback, std::move(task), need_unref, type);
// If this is the only image decode request, schedule a task to run.
// Otherwise, the task will be scheduled in the previou task's completion.
@@ -346,7 +347,7 @@ void ImageController::GenerateTasksForOrphanedRequests() {
if (request.draw_image.image()->isLazyGenerated()) {
// Get the task for this decode.
request.need_unref = cache_->GetOutOfRasterDecodeTaskForImageAndRef(
- request.draw_image, &request.task);
+ request.draw_image, request.decode_type, &request.task);
}
image_decode_queue_[request.id] = std::move(request);
}
@@ -367,12 +368,14 @@ ImageController::ImageDecodeRequest::ImageDecodeRequest(
const DrawImage& draw_image,
const ImageDecodedCallback& callback,
scoped_refptr<TileTask> task,
- bool need_unref)
+ bool need_unref,
+ ImageDecodeCache::ImageDecodeType decode_type)
: id(id),
draw_image(draw_image),
callback(callback),
task(std::move(task)),
- need_unref(need_unref) {}
+ need_unref(need_unref),
+ decode_type(decode_type) {}
ImageController::ImageDecodeRequest::ImageDecodeRequest(
ImageDecodeRequest&& other) = default;
ImageController::ImageDecodeRequest::ImageDecodeRequest(

Powered by Google App Engine
This is Rietveld 408576698