| Index: cc/tiles/image_manager.cc
|
| diff --git a/cc/tiles/image_manager.cc b/cc/tiles/image_manager.cc
|
| index cb11e9ec19266ae01c1577b07fb3b2dfe7e13996..bec8ca2061ea084d92011d83ff288683883c92d1 100644
|
| --- a/cc/tiles/image_manager.cc
|
| +++ b/cc/tiles/image_manager.cc
|
| @@ -10,6 +10,14 @@ ImageManager::ImageManager() = default;
|
| ImageManager::~ImageManager() = default;
|
|
|
| void ImageManager::SetImageDecodeController(ImageDecodeController* controller) {
|
| + // We can only switch from null to non-null and back.
|
| + DCHECK(controller || controller_);
|
| + DCHECK(!controller || !controller_);
|
| +
|
| + if (!controller) {
|
| + SetPredecodeImages(std::vector<DrawImage>(),
|
| + ImageDecodeController::TracingInfo());
|
| + }
|
| controller_ = controller;
|
| }
|
|
|
| @@ -43,4 +51,14 @@ void ImageManager::ReduceMemoryUsage() {
|
| controller_->ReduceCacheUsage();
|
| }
|
|
|
| +std::vector<scoped_refptr<TileTask>> ImageManager::SetPredecodeImages(
|
| + std::vector<DrawImage> images,
|
| + const ImageDecodeController::TracingInfo& tracing_info) {
|
| + std::vector<scoped_refptr<TileTask>> new_tasks;
|
| + GetTasksForImagesAndRef(&images, &new_tasks, tracing_info);
|
| + UnrefImages(predecode_locked_images_);
|
| + predecode_locked_images_ = std::move(images);
|
| + return new_tasks;
|
| +}
|
| +
|
| } // namespace cc
|
|
|