| Index: cc/tiles/gpu_image_decode_controller_unittest.cc
 | 
| diff --git a/cc/tiles/gpu_image_decode_controller_unittest.cc b/cc/tiles/gpu_image_decode_controller_unittest.cc
 | 
| index fef46e98dccf01c3c3c03c16df8f79be96ed8e9f..71bc0630400feb379d5b5c5d296a39369313129e 100644
 | 
| --- a/cc/tiles/gpu_image_decode_controller_unittest.cc
 | 
| +++ b/cc/tiles/gpu_image_decode_controller_unittest.cc
 | 
| @@ -31,25 +31,25 @@ SkMatrix CreateMatrix(const SkSize& scale, bool is_decomposable) {
 | 
|    return matrix;
 | 
|  }
 | 
|  
 | 
| -void ScheduleTask(ImageDecodeTask* task) {
 | 
| +void ScheduleTask(TileTask* task) {
 | 
|    task->WillSchedule();
 | 
|    task->ScheduleOnOriginThread(nullptr);
 | 
|    task->DidSchedule();
 | 
|  }
 | 
|  
 | 
| -void RunTask(ImageDecodeTask* task) {
 | 
| +void RunTask(TileTask* task) {
 | 
|    task->WillRun();
 | 
|    task->RunOnWorkerThread();
 | 
|    task->DidRun();
 | 
|  }
 | 
|  
 | 
| -void CompleteTask(ImageDecodeTask* task) {
 | 
| +void CompleteTask(TileTask* task) {
 | 
|    task->WillComplete();
 | 
|    task->CompleteOnOriginThread(nullptr);
 | 
|    task->DidComplete();
 | 
|  }
 | 
|  
 | 
| -void ProcessTask(ImageDecodeTask* task) {
 | 
| +void ProcessTask(TileTask* task) {
 | 
|    ScheduleTask(task);
 | 
|    RunTask(task);
 | 
|    CompleteTask(task);
 | 
| @@ -68,7 +68,7 @@ TEST(GpuImageDecodeControllerTest, GetTaskForImageSameImage) {
 | 
|    DrawImage draw_image(
 | 
|        image.get(), SkIRect::MakeWH(image->width(), image->height()), quality,
 | 
|        CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable));
 | 
| -  scoped_refptr<ImageDecodeTask> task;
 | 
| +  scoped_refptr<TileTask> task;
 | 
|    bool need_unref =
 | 
|        controller.GetTaskForImageAndRef(draw_image, prepare_tiles_id, &task);
 | 
|    EXPECT_TRUE(need_unref);
 | 
| @@ -77,13 +77,13 @@ TEST(GpuImageDecodeControllerTest, GetTaskForImageSameImage) {
 | 
|    DrawImage another_draw_image(
 | 
|        image.get(), SkIRect::MakeWH(image->width(), image->height()), quality,
 | 
|        CreateMatrix(SkSize::Make(1.5f, 1.5f), is_decomposable));
 | 
| -  scoped_refptr<ImageDecodeTask> another_task;
 | 
| +  scoped_refptr<TileTask> another_task;
 | 
|    need_unref = controller.GetTaskForImageAndRef(
 | 
|        another_draw_image, prepare_tiles_id, &another_task);
 | 
|    EXPECT_TRUE(need_unref);
 | 
|    EXPECT_TRUE(task.get() == another_task.get());
 | 
|  
 | 
| -  ProcessTask(task->dependency().get());
 | 
| +  ProcessTask(task->dependencies()[0].get());
 | 
|    ProcessTask(task.get());
 | 
|  
 | 
|    controller.UnrefImage(draw_image);
 | 
| @@ -104,7 +104,7 @@ TEST(GpuImageDecodeControllerTest, GetTaskForImageDifferentImage) {
 | 
|        first_image.get(),
 | 
|        SkIRect::MakeWH(first_image->width(), first_image->height()), quality,
 | 
|        CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable));
 | 
| -  scoped_refptr<ImageDecodeTask> first_task;
 | 
| +  scoped_refptr<TileTask> first_task;
 | 
|    bool need_unref = controller.GetTaskForImageAndRef(
 | 
|        first_draw_image, prepare_tiles_id, &first_task);
 | 
|    EXPECT_TRUE(need_unref);
 | 
| @@ -115,16 +115,16 @@ TEST(GpuImageDecodeControllerTest, GetTaskForImageDifferentImage) {
 | 
|        second_image.get(),
 | 
|        SkIRect::MakeWH(second_image->width(), second_image->height()), quality,
 | 
|        CreateMatrix(SkSize::Make(0.25f, 0.25f), is_decomposable));
 | 
| -  scoped_refptr<ImageDecodeTask> second_task;
 | 
| +  scoped_refptr<TileTask> second_task;
 | 
|    need_unref = controller.GetTaskForImageAndRef(second_draw_image,
 | 
|                                                  prepare_tiles_id, &second_task);
 | 
|    EXPECT_TRUE(need_unref);
 | 
|    EXPECT_TRUE(second_task);
 | 
|    EXPECT_TRUE(first_task.get() != second_task.get());
 | 
|  
 | 
| -  ProcessTask(first_task->dependency().get());
 | 
| +  ProcessTask(first_task->dependencies()[0].get());
 | 
|    ProcessTask(first_task.get());
 | 
| -  ProcessTask(second_task->dependency().get());
 | 
| +  ProcessTask(second_task->dependencies()[0].get());
 | 
|    ProcessTask(second_task.get());
 | 
|  
 | 
|    controller.UnrefImage(first_draw_image);
 | 
| @@ -144,18 +144,19 @@ TEST(GpuImageDecodeControllerTest, GetTaskForImageAlreadyDecoded) {
 | 
|    DrawImage draw_image(
 | 
|        image.get(), SkIRect::MakeWH(image->width(), image->height()), quality,
 | 
|        CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable));
 | 
| -  scoped_refptr<ImageDecodeTask> task;
 | 
| +  scoped_refptr<TileTask> task;
 | 
|    bool need_unref =
 | 
|        controller.GetTaskForImageAndRef(draw_image, prepare_tiles_id, &task);
 | 
|    EXPECT_TRUE(need_unref);
 | 
|    EXPECT_TRUE(task);
 | 
| -  EXPECT_TRUE(task->dependency());
 | 
| +  EXPECT_EQ(task->dependencies().size(), 1u);
 | 
| +  EXPECT_TRUE(task->dependencies()[0]);
 | 
|  
 | 
| -  ProcessTask(task->dependency().get());
 | 
| +  ProcessTask(task->dependencies()[0].get());
 | 
|    ScheduleTask(task.get());
 | 
|    RunTask(task.get());
 | 
|  
 | 
| -  scoped_refptr<ImageDecodeTask> another_task;
 | 
| +  scoped_refptr<TileTask> another_task;
 | 
|    need_unref = controller.GetTaskForImageAndRef(draw_image, prepare_tiles_id,
 | 
|                                                  &another_task);
 | 
|    EXPECT_TRUE(need_unref);
 | 
| @@ -180,16 +181,16 @@ TEST(GpuImageDecodeControllerTest, GetTaskForImageCanceledGetsNewTask) {
 | 
|    DrawImage draw_image(
 | 
|        image.get(), SkIRect::MakeWH(image->width(), image->height()), quality,
 | 
|        CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable));
 | 
| -  scoped_refptr<ImageDecodeTask> task;
 | 
| +  scoped_refptr<TileTask> task;
 | 
|    bool need_unref =
 | 
|        controller.GetTaskForImageAndRef(draw_image, prepare_tiles_id, &task);
 | 
|    EXPECT_TRUE(need_unref);
 | 
|    EXPECT_TRUE(task);
 | 
|  
 | 
| -  ProcessTask(task->dependency().get());
 | 
| +  ProcessTask(task->dependencies()[0].get());
 | 
|    ScheduleTask(task.get());
 | 
|  
 | 
| -  scoped_refptr<ImageDecodeTask> another_task;
 | 
| +  scoped_refptr<TileTask> another_task;
 | 
|    need_unref = controller.GetTaskForImageAndRef(draw_image, prepare_tiles_id,
 | 
|                                                  &another_task);
 | 
|    EXPECT_TRUE(need_unref);
 | 
| @@ -203,14 +204,14 @@ TEST(GpuImageDecodeControllerTest, GetTaskForImageCanceledGetsNewTask) {
 | 
|    controller.UnrefImage(draw_image);
 | 
|  
 | 
|    // Here a new task is created.
 | 
| -  scoped_refptr<ImageDecodeTask> third_task;
 | 
| +  scoped_refptr<TileTask> third_task;
 | 
|    need_unref = controller.GetTaskForImageAndRef(draw_image, prepare_tiles_id,
 | 
|                                                  &third_task);
 | 
|    EXPECT_TRUE(need_unref);
 | 
|    EXPECT_TRUE(third_task);
 | 
|    EXPECT_FALSE(third_task.get() == task.get());
 | 
|  
 | 
| -  ProcessTask(third_task->dependency().get());
 | 
| +  ProcessTask(third_task->dependencies()[0].get());
 | 
|    ProcessTask(third_task.get());
 | 
|  
 | 
|    controller.UnrefImage(draw_image);
 | 
| @@ -230,16 +231,16 @@ TEST(GpuImageDecodeControllerTest,
 | 
|    DrawImage draw_image(
 | 
|        image.get(), SkIRect::MakeWH(image->width(), image->height()), quality,
 | 
|        CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable));
 | 
| -  scoped_refptr<ImageDecodeTask> task;
 | 
| +  scoped_refptr<TileTask> task;
 | 
|    bool need_unref =
 | 
|        controller.GetTaskForImageAndRef(draw_image, prepare_tiles_id, &task);
 | 
|    EXPECT_TRUE(need_unref);
 | 
|    EXPECT_TRUE(task);
 | 
|  
 | 
| -  ProcessTask(task->dependency().get());
 | 
| +  ProcessTask(task->dependencies()[0].get());
 | 
|    ScheduleTask(task.get());
 | 
|  
 | 
| -  scoped_refptr<ImageDecodeTask> another_task;
 | 
| +  scoped_refptr<TileTask> another_task;
 | 
|    need_unref = controller.GetTaskForImageAndRef(draw_image, prepare_tiles_id,
 | 
|                                                  &another_task);
 | 
|    EXPECT_TRUE(need_unref);
 | 
| @@ -250,14 +251,14 @@ TEST(GpuImageDecodeControllerTest,
 | 
|  
 | 
|    // Note that here, everything is reffed, but a new task is created. This is
 | 
|    // possible with repeated schedule/cancel operations.
 | 
| -  scoped_refptr<ImageDecodeTask> third_task;
 | 
| +  scoped_refptr<TileTask> third_task;
 | 
|    need_unref = controller.GetTaskForImageAndRef(draw_image, prepare_tiles_id,
 | 
|                                                  &third_task);
 | 
|    EXPECT_TRUE(need_unref);
 | 
|    EXPECT_TRUE(third_task);
 | 
|    EXPECT_FALSE(third_task.get() == task.get());
 | 
|  
 | 
| -  ProcessTask(third_task->dependency().get());
 | 
| +  ProcessTask(third_task->dependencies()[0].get());
 | 
|    ProcessTask(third_task.get());
 | 
|  
 | 
|    // 3 Unrefs!
 | 
| @@ -279,13 +280,13 @@ TEST(GpuImageDecodeControllerTest, GetDecodedImageForDraw) {
 | 
|    DrawImage draw_image(
 | 
|        image.get(), SkIRect::MakeWH(image->width(), image->height()), quality,
 | 
|        CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable));
 | 
| -  scoped_refptr<ImageDecodeTask> task;
 | 
| +  scoped_refptr<TileTask> task;
 | 
|    bool need_unref =
 | 
|        controller.GetTaskForImageAndRef(draw_image, prepare_tiles_id, &task);
 | 
|    EXPECT_TRUE(need_unref);
 | 
|    EXPECT_TRUE(task);
 | 
|  
 | 
| -  ProcessTask(task->dependency().get());
 | 
| +  ProcessTask(task->dependencies()[0].get());
 | 
|    ProcessTask(task.get());
 | 
|  
 | 
|    // Must hold context lock before calling GetDecodedImageForDraw /
 | 
| @@ -314,13 +315,13 @@ TEST(GpuImageDecodeControllerTest, GetLargeDecodedImageForDraw) {
 | 
|    DrawImage draw_image(
 | 
|        image.get(), SkIRect::MakeWH(image->width(), image->height()), quality,
 | 
|        CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable));
 | 
| -  scoped_refptr<ImageDecodeTask> task;
 | 
| +  scoped_refptr<TileTask> task;
 | 
|    bool need_unref =
 | 
|        controller.GetTaskForImageAndRef(draw_image, prepare_tiles_id, &task);
 | 
|    EXPECT_TRUE(need_unref);
 | 
|    EXPECT_TRUE(task);
 | 
|  
 | 
| -  ProcessTask(task->dependency().get());
 | 
| +  ProcessTask(task->dependencies()[0].get());
 | 
|    ProcessTask(task.get());
 | 
|  
 | 
|    // Must hold context lock before calling GetDecodedImageForDraw /
 | 
| @@ -353,7 +354,7 @@ TEST(GpuImageDecodeControllerTest, GetDecodedImageForDrawAtRasterDecode) {
 | 
|        image.get(), SkIRect::MakeWH(image->width(), image->height()), quality,
 | 
|        CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable));
 | 
|  
 | 
| -  scoped_refptr<ImageDecodeTask> task;
 | 
| +  scoped_refptr<TileTask> task;
 | 
|    bool need_unref =
 | 
|        controller.GetTaskForImageAndRef(draw_image, prepare_tiles_id, &task);
 | 
|    EXPECT_FALSE(need_unref);
 | 
| @@ -388,7 +389,7 @@ TEST(GpuImageDecodeControllerTest, AtRasterUsedDirectlyIfSpaceAllows) {
 | 
|        image.get(), SkIRect::MakeWH(image->width(), image->height()), quality,
 | 
|        CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable));
 | 
|  
 | 
| -  scoped_refptr<ImageDecodeTask> task;
 | 
| +  scoped_refptr<TileTask> task;
 | 
|    bool need_unref =
 | 
|        controller.GetTaskForImageAndRef(draw_image, prepare_tiles_id, &task);
 | 
|    EXPECT_FALSE(need_unref);
 | 
| @@ -410,7 +411,7 @@ TEST(GpuImageDecodeControllerTest, AtRasterUsedDirectlyIfSpaceAllows) {
 | 
|    // cache.
 | 
|    controller.DrawWithImageFinished(draw_image, decoded_draw_image);
 | 
|  
 | 
| -  scoped_refptr<ImageDecodeTask> another_task;
 | 
| +  scoped_refptr<TileTask> another_task;
 | 
|    bool another_task_needs_unref =
 | 
|        controller.GetTaskForImageAndRef(draw_image, prepare_tiles_id, &task);
 | 
|    EXPECT_TRUE(another_task_needs_unref);
 | 
| @@ -467,7 +468,7 @@ TEST(GpuImageDecodeControllerTest, ZeroSizedImagesAreSkipped) {
 | 
|        image.get(), SkIRect::MakeWH(image->width(), image->height()), quality,
 | 
|        CreateMatrix(SkSize::Make(0.f, 0.f), is_decomposable));
 | 
|  
 | 
| -  scoped_refptr<ImageDecodeTask> task;
 | 
| +  scoped_refptr<TileTask> task;
 | 
|    bool need_unref =
 | 
|        controller.GetTaskForImageAndRef(draw_image, prepare_tiles_id, &task);
 | 
|    EXPECT_FALSE(task);
 | 
| @@ -497,7 +498,7 @@ TEST(GpuImageDecodeControllerTest, NonOverlappingSrcRectImagesAreSkipped) {
 | 
|        image.get(), SkIRect::MakeXYWH(150, 150, image->width(), image->height()),
 | 
|        quality, CreateMatrix(SkSize::Make(1.f, 1.f), is_decomposable));
 | 
|  
 | 
| -  scoped_refptr<ImageDecodeTask> task;
 | 
| +  scoped_refptr<TileTask> task;
 | 
|    bool need_unref =
 | 
|        controller.GetTaskForImageAndRef(draw_image, prepare_tiles_id, &task);
 | 
|    EXPECT_FALSE(task);
 | 
| @@ -527,15 +528,15 @@ TEST(GpuImageDecodeControllerTest, CanceledTasksDoNotCountAgainstBudget) {
 | 
|        image.get(), SkIRect::MakeXYWH(0, 0, image->width(), image->height()),
 | 
|        quality, CreateMatrix(SkSize::Make(1.f, 1.f), is_decomposable));
 | 
|  
 | 
| -  scoped_refptr<ImageDecodeTask> task;
 | 
| +  scoped_refptr<TileTask> task;
 | 
|    bool need_unref =
 | 
|        controller.GetTaskForImageAndRef(draw_image, prepare_tiles_id, &task);
 | 
|    EXPECT_NE(0u, controller.GetBytesUsedForTesting());
 | 
|    EXPECT_TRUE(task);
 | 
|    EXPECT_TRUE(need_unref);
 | 
|  
 | 
| -  ScheduleTask(task->dependency().get());
 | 
| -  CompleteTask(task->dependency().get());
 | 
| +  ScheduleTask(task->dependencies()[0].get());
 | 
| +  CompleteTask(task->dependencies()[0].get());
 | 
|    ScheduleTask(task.get());
 | 
|    CompleteTask(task.get());
 | 
|  
 | 
| @@ -556,7 +557,7 @@ TEST(GpuImageDecodeControllerTest, ShouldAggressivelyFreeResources) {
 | 
|    DrawImage draw_image(
 | 
|        image.get(), SkIRect::MakeWH(image->width(), image->height()), quality,
 | 
|        CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable));
 | 
| -  scoped_refptr<ImageDecodeTask> task;
 | 
| +  scoped_refptr<TileTask> task;
 | 
|    {
 | 
|      bool need_unref =
 | 
|          controller.GetTaskForImageAndRef(draw_image, prepare_tiles_id, &task);
 | 
| @@ -564,7 +565,7 @@ TEST(GpuImageDecodeControllerTest, ShouldAggressivelyFreeResources) {
 | 
|      EXPECT_TRUE(task);
 | 
|    }
 | 
|  
 | 
| -  ProcessTask(task->dependency().get());
 | 
| +  ProcessTask(task->dependencies()[0].get());
 | 
|    ProcessTask(task.get());
 | 
|  
 | 
|    controller.UnrefImage(draw_image);
 | 
| @@ -594,7 +595,7 @@ TEST(GpuImageDecodeControllerTest, ShouldAggressivelyFreeResources) {
 | 
|      EXPECT_TRUE(task);
 | 
|    }
 | 
|  
 | 
| -  ProcessTask(task->dependency().get());
 | 
| +  ProcessTask(task->dependencies()[0].get());
 | 
|    ProcessTask(task.get());
 | 
|  
 | 
|    // The image should be in our cache after un-ref.
 | 
| 
 |