| 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(
|
|
|