diff --git a/cc/tiles/image_manager.cc b/cc/tiles/image_manager.cc index bec8ca2061ea08..04d4e61a9bbd3f 100644 --- a/cc/tiles/image_manager.cc +++ b/cc/tiles/image_manager.cc @@ -11,14 +11,17 @@ 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_); + // CHECK to debug crbug.com/650234. + CHECK(controller || controller_); + CHECK(!controller || !controller_); if (!controller) { SetPredecodeImages(std::vector(), ImageDecodeController::TracingInfo()); } controller_ = controller; + // Debugging information for crbug.com/650234. + ++num_times_controller_was_set_; } void ImageManager::GetTasksForImagesAndRef( @@ -41,7 +44,8 @@ void ImageManager::GetTasksForImagesAndRef( } void ImageManager::UnrefImages(const std::vector& images) { - DCHECK(controller_); + // Debugging information for crbug.com/650234. + CHECK(controller_) << num_times_controller_was_set_; for (auto image : images) controller_->UnrefImage(image); } diff --git a/cc/tiles/image_manager.h b/cc/tiles/image_manager.h index 046e0948e8bda2..13940a81d3fbe6 100644 --- a/cc/tiles/image_manager.h +++ b/cc/tiles/image_manager.h @@ -36,6 +36,9 @@ class CC_EXPORT ImageManager { ImageDecodeController* controller_ = nullptr; std::vector predecode_locked_images_; + // Debugging information for crbug.com/650234. + size_t num_times_controller_was_set_ = 0; + DISALLOW_COPY_AND_ASSIGN(ImageManager); }; diff --git a/cc/tiles/tile_manager.cc b/cc/tiles/tile_manager.cc index 6388c8877b7cd8..ea9b32c3523f66 100644 --- a/cc/tiles/tile_manager.cc +++ b/cc/tiles/tile_manager.cc @@ -346,11 +346,11 @@ void TileManager::FinishTasksAndCleanUp() { raster_buffer_provider_->Shutdown(); + tile_task_manager_->CheckForCompletedTasks(); + // Now that all tasks have been finished, we can clear any |orphan_tasks_|. orphan_tasks_.clear(); - tile_task_manager_->CheckForCompletedTasks(); - FreeResourcesForReleasedTiles(); CleanUpReleasedTiles();