| Index: cc/tiles/software_image_decode_controller_unittest.cc
 | 
| diff --git a/cc/tiles/software_image_decode_controller_unittest.cc b/cc/tiles/software_image_decode_controller_unittest.cc
 | 
| index 68a5a4f0d4da2ed5c7d5bfa6146742e29a4bcd78..08648c0ffb79d3500bed16602e6186c3c8d5ae2f 100644
 | 
| --- a/cc/tiles/software_image_decode_controller_unittest.cc
 | 
| +++ b/cc/tiles/software_image_decode_controller_unittest.cc
 | 
| @@ -504,9 +504,7 @@ TEST(SoftwareImageDecodeControllerTest, GetTaskForImageAlreadyDecoded) {
 | 
|    EXPECT_TRUE(need_unref);
 | 
|    EXPECT_TRUE(task);
 | 
|  
 | 
| -  task->WillSchedule();
 | 
| -  task->ScheduleOnOriginThread(nullptr);
 | 
| -  task->DidSchedule();
 | 
| +  // TODO(prashant.n): Implement proper task life cycle. crbug.com/599863.
 | 
|    task->RunOnWorkerThread();
 | 
|  
 | 
|    scoped_refptr<TileTask> another_task;
 | 
| @@ -515,9 +513,7 @@ TEST(SoftwareImageDecodeControllerTest, GetTaskForImageAlreadyDecoded) {
 | 
|    EXPECT_TRUE(need_unref);
 | 
|    EXPECT_FALSE(another_task);
 | 
|  
 | 
| -  task->WillComplete();
 | 
| -  task->CompleteOnOriginThread(nullptr);
 | 
| -  task->DidComplete();
 | 
| +  controller.OnImageDecodeTaskCompleted(task.get());
 | 
|  
 | 
|    controller.UnrefImage(draw_image);
 | 
|    controller.UnrefImage(draw_image);
 | 
| @@ -538,9 +534,6 @@ TEST(SoftwareImageDecodeControllerTest, GetTaskForImageAlreadyPrerolled) {
 | 
|    EXPECT_TRUE(need_unref);
 | 
|    EXPECT_TRUE(task);
 | 
|  
 | 
| -  task->WillSchedule();
 | 
| -  task->ScheduleOnOriginThread(nullptr);
 | 
| -  task->DidSchedule();
 | 
|    task->RunOnWorkerThread();
 | 
|  
 | 
|    scoped_refptr<TileTask> another_task;
 | 
| @@ -549,9 +542,7 @@ TEST(SoftwareImageDecodeControllerTest, GetTaskForImageAlreadyPrerolled) {
 | 
|    EXPECT_TRUE(need_unref);
 | 
|    EXPECT_FALSE(another_task);
 | 
|  
 | 
| -  task->WillComplete();
 | 
| -  task->CompleteOnOriginThread(nullptr);
 | 
| -  task->DidComplete();
 | 
| +  controller.OnImageDecodeTaskCompleted(task.get());
 | 
|  
 | 
|    scoped_refptr<TileTask> third_task;
 | 
|    need_unref = controller.GetTaskForImageAndRef(
 | 
| @@ -579,10 +570,6 @@ TEST(SoftwareImageDecodeControllerTest, GetTaskForImageCanceledGetsNewTask) {
 | 
|    EXPECT_TRUE(need_unref);
 | 
|    EXPECT_TRUE(task);
 | 
|  
 | 
| -  task->WillSchedule();
 | 
| -  task->ScheduleOnOriginThread(nullptr);
 | 
| -  task->DidSchedule();
 | 
| -
 | 
|    scoped_refptr<TileTask> another_task;
 | 
|    need_unref = controller.GetTaskForImageAndRef(
 | 
|        draw_image, ImageDecodeController::TracingInfo(), &another_task);
 | 
| @@ -590,9 +577,7 @@ TEST(SoftwareImageDecodeControllerTest, GetTaskForImageCanceledGetsNewTask) {
 | 
|    EXPECT_TRUE(another_task.get() == task.get());
 | 
|  
 | 
|    // Didn't run the task, complete it (it was canceled).
 | 
| -  task->WillComplete();
 | 
| -  task->CompleteOnOriginThread(nullptr);
 | 
| -  task->DidComplete();
 | 
| +  controller.OnImageDecodeTaskCompleted(task.get());
 | 
|  
 | 
|    // Fully cancel everything (so the raster would unref things).
 | 
|    controller.UnrefImage(draw_image);
 | 
| @@ -625,10 +610,6 @@ TEST(SoftwareImageDecodeControllerTest,
 | 
|    EXPECT_TRUE(need_unref);
 | 
|    EXPECT_TRUE(task);
 | 
|  
 | 
| -  task->WillSchedule();
 | 
| -  task->ScheduleOnOriginThread(nullptr);
 | 
| -  task->DidSchedule();
 | 
| -
 | 
|    scoped_refptr<TileTask> another_task;
 | 
|    need_unref = controller.GetTaskForImageAndRef(
 | 
|        draw_image, ImageDecodeController::TracingInfo(), &another_task);
 | 
| @@ -636,9 +617,7 @@ TEST(SoftwareImageDecodeControllerTest,
 | 
|    EXPECT_TRUE(another_task.get() == task.get());
 | 
|  
 | 
|    // Didn't run the task, complete it (it was canceled).
 | 
| -  task->WillComplete();
 | 
| -  task->CompleteOnOriginThread(nullptr);
 | 
| -  task->DidComplete();
 | 
| +  controller.OnImageDecodeTaskCompleted(task.get());
 | 
|  
 | 
|    // Note that here, everything is reffed, but a new task is created. This is
 | 
|    // possible with repeated schedule/cancel operations.
 | 
| @@ -670,15 +649,9 @@ TEST(SoftwareImageDecodeControllerTest, GetDecodedImageForDraw) {
 | 
|    EXPECT_TRUE(need_unref);
 | 
|    EXPECT_TRUE(task);
 | 
|  
 | 
| -  task->WillSchedule();
 | 
| -  task->ScheduleOnOriginThread(nullptr);
 | 
| -  task->DidSchedule();
 | 
| -
 | 
|    task->RunOnWorkerThread();
 | 
|  
 | 
| -  task->WillComplete();
 | 
| -  task->CompleteOnOriginThread(nullptr);
 | 
| -  task->DidComplete();
 | 
| +  controller.OnImageDecodeTaskCompleted(task.get());
 | 
|  
 | 
|    DecodedDrawImage decoded_draw_image =
 | 
|        controller.GetDecodedImageForDraw(draw_image);
 | 
| @@ -711,15 +684,9 @@ TEST(SoftwareImageDecodeControllerTest,
 | 
|    EXPECT_TRUE(need_unref);
 | 
|    EXPECT_TRUE(task);
 | 
|  
 | 
| -  task->WillSchedule();
 | 
| -  task->ScheduleOnOriginThread(nullptr);
 | 
| -  task->DidSchedule();
 | 
| -
 | 
|    task->RunOnWorkerThread();
 | 
|  
 | 
| -  task->WillComplete();
 | 
| -  task->CompleteOnOriginThread(nullptr);
 | 
| -  task->DidComplete();
 | 
| +  controller.OnImageDecodeTaskCompleted(task.get());
 | 
|  
 | 
|    DecodedDrawImage decoded_draw_image =
 | 
|        controller.GetDecodedImageForDraw(draw_image);
 | 
| @@ -819,15 +786,9 @@ TEST(SoftwareImageDecodeControllerTest,
 | 
|    EXPECT_TRUE(need_unref);
 | 
|    EXPECT_TRUE(task);
 | 
|  
 | 
| -  task->WillSchedule();
 | 
| -  task->ScheduleOnOriginThread(nullptr);
 | 
| -  task->DidSchedule();
 | 
| -
 | 
|    task->RunOnWorkerThread();
 | 
|  
 | 
| -  task->WillComplete();
 | 
| -  task->CompleteOnOriginThread(nullptr);
 | 
| -  task->DidComplete();
 | 
| +  controller.OnImageDecodeTaskCompleted(task.get());
 | 
|  
 | 
|    DecodedDrawImage another_decoded_draw_image =
 | 
|        controller.GetDecodedImageForDraw(draw_image);
 | 
| @@ -872,19 +833,13 @@ TEST(SoftwareImageDecodeControllerTest,
 | 
|    EXPECT_TRUE(need_unref);
 | 
|    EXPECT_TRUE(task);
 | 
|  
 | 
| -  task->WillSchedule();
 | 
| -  task->ScheduleOnOriginThread(nullptr);
 | 
| -  task->DidSchedule();
 | 
| -
 | 
|    // If we finish the draw here, then we will use it for the locked decode
 | 
|    // instead of decoding again.
 | 
|    controller.DrawWithImageFinished(draw_image, decoded_draw_image);
 | 
|  
 | 
|    task->RunOnWorkerThread();
 | 
|  
 | 
| -  task->WillComplete();
 | 
| -  task->CompleteOnOriginThread(nullptr);
 | 
| -  task->DidComplete();
 | 
| +  controller.OnImageDecodeTaskCompleted(task.get());
 | 
|  
 | 
|    DecodedDrawImage another_decoded_draw_image =
 | 
|        controller.GetDecodedImageForDraw(draw_image);
 | 
| 
 |