| Index: cc/raster/bitmap_tile_task_worker_pool.cc
 | 
| diff --git a/cc/raster/bitmap_tile_task_worker_pool.cc b/cc/raster/bitmap_tile_task_worker_pool.cc
 | 
| index 39524ac73a12da6b35c4b087696701fc7b600919..88c7c0da09afd718023c0fb6c97da2f958c72425 100644
 | 
| --- a/cc/raster/bitmap_tile_task_worker_pool.cc
 | 
| +++ b/cc/raster/bitmap_tile_task_worker_pool.cc
 | 
| @@ -77,9 +77,7 @@ BitmapTileTaskWorkerPool::BitmapTileTaskWorkerPool(
 | 
|      : task_runner_(task_runner),
 | 
|        task_graph_runner_(task_graph_runner),
 | 
|        namespace_token_(task_graph_runner->GetNamespaceToken()),
 | 
| -      resource_provider_(resource_provider),
 | 
| -      task_set_finished_weak_ptr_factory_(this) {
 | 
| -}
 | 
| +      resource_provider_(resource_provider) {}
 | 
|  
 | 
|  BitmapTileTaskWorkerPool::~BitmapTileTaskWorkerPool() {
 | 
|  }
 | 
| @@ -88,10 +86,6 @@ TileTaskRunner* BitmapTileTaskWorkerPool::AsTileTaskRunner() {
 | 
|    return this;
 | 
|  }
 | 
|  
 | 
| -void BitmapTileTaskWorkerPool::SetClient(TileTaskRunnerClient* client) {
 | 
| -  client_ = client;
 | 
| -}
 | 
| -
 | 
|  void BitmapTileTaskWorkerPool::Shutdown() {
 | 
|    TRACE_EVENT0("cc", "BitmapTileTaskWorkerPool::Shutdown");
 | 
|  
 | 
| @@ -100,67 +94,13 @@ void BitmapTileTaskWorkerPool::Shutdown() {
 | 
|    task_graph_runner_->WaitForTasksToFinishRunning(namespace_token_);
 | 
|  }
 | 
|  
 | 
| -void BitmapTileTaskWorkerPool::ScheduleTasks(TileTaskQueue* queue) {
 | 
| +void BitmapTileTaskWorkerPool::ScheduleTasks(TaskGraph* graph) {
 | 
|    TRACE_EVENT0("cc", "BitmapTileTaskWorkerPool::ScheduleTasks");
 | 
|  
 | 
| -  if (tasks_pending_.none())
 | 
| -    TRACE_EVENT_ASYNC_BEGIN0("cc", "ScheduledTasks", this);
 | 
| -
 | 
| -  // Mark all task sets as pending.
 | 
| -  tasks_pending_.set();
 | 
| -
 | 
| -  size_t priority = kTileTaskPriorityBase;
 | 
| -
 | 
| -  graph_.Reset();
 | 
| -
 | 
| -  // Cancel existing OnTaskSetFinished callbacks.
 | 
| -  task_set_finished_weak_ptr_factory_.InvalidateWeakPtrs();
 | 
| -
 | 
| -  scoped_refptr<TileTask> new_task_set_finished_tasks[kNumberOfTaskSets];
 | 
| -
 | 
| -  size_t task_count[kNumberOfTaskSets] = {0};
 | 
| -
 | 
| -  for (TaskSet task_set = 0; task_set < kNumberOfTaskSets; ++task_set) {
 | 
| -    new_task_set_finished_tasks[task_set] = CreateTaskSetFinishedTask(
 | 
| -        task_runner_.get(),
 | 
| -        base::Bind(&BitmapTileTaskWorkerPool::OnTaskSetFinished,
 | 
| -                   task_set_finished_weak_ptr_factory_.GetWeakPtr(), task_set));
 | 
| -  }
 | 
| -
 | 
| -  for (TileTaskQueue::Item::Vector::const_iterator it = queue->items.begin();
 | 
| -       it != queue->items.end(); ++it) {
 | 
| -    const TileTaskQueue::Item& item = *it;
 | 
| -    RasterTask* task = item.task;
 | 
| -    DCHECK(!task->HasCompleted());
 | 
| -
 | 
| -    for (TaskSet task_set = 0; task_set < kNumberOfTaskSets; ++task_set) {
 | 
| -      if (!item.task_sets[task_set])
 | 
| -        continue;
 | 
| -
 | 
| -      ++task_count[task_set];
 | 
| +  graph_ = graph;
 | 
|  
 | 
| -      graph_.edges.push_back(
 | 
| -          TaskGraph::Edge(task, new_task_set_finished_tasks[task_set].get()));
 | 
| -    }
 | 
| -
 | 
| -    InsertNodesForRasterTask(&graph_, task, task->dependencies(), priority++);
 | 
| -  }
 | 
| -
 | 
| -  for (TaskSet task_set = 0; task_set < kNumberOfTaskSets; ++task_set) {
 | 
| -    InsertNodeForTask(&graph_, new_task_set_finished_tasks[task_set].get(),
 | 
| -                      kTaskSetFinishedTaskPriorityBase + task_set,
 | 
| -                      task_count[task_set]);
 | 
| -  }
 | 
| -
 | 
| -  ScheduleTasksOnOriginThread(this, &graph_);
 | 
| -  task_graph_runner_->ScheduleTasks(namespace_token_, &graph_);
 | 
| -
 | 
| -  std::copy(new_task_set_finished_tasks,
 | 
| -            new_task_set_finished_tasks + kNumberOfTaskSets,
 | 
| -            task_set_finished_tasks_);
 | 
| -
 | 
| -  TRACE_EVENT_ASYNC_STEP_INTO1("cc", "ScheduledTasks", this, "running", "state",
 | 
| -                               StateAsValue());
 | 
| +  ScheduleTasksOnOriginThread(this, graph_);
 | 
| +  task_graph_runner_->ScheduleTasks(namespace_token_, graph_);
 | 
|  }
 | 
|  
 | 
|  void BitmapTileTaskWorkerPool::CheckForCompletedTasks() {
 | 
| @@ -203,31 +143,4 @@ void BitmapTileTaskWorkerPool::ReleaseBufferForRaster(
 | 
|    // Nothing to do here. RasterBufferImpl destructor cleans up after itself.
 | 
|  }
 | 
|  
 | 
| -void BitmapTileTaskWorkerPool::OnTaskSetFinished(TaskSet task_set) {
 | 
| -  TRACE_EVENT1("cc", "BitmapTileTaskWorkerPool::OnTaskSetFinished", "task_set",
 | 
| -               task_set);
 | 
| -
 | 
| -  DCHECK(tasks_pending_[task_set]);
 | 
| -  tasks_pending_[task_set] = false;
 | 
| -  if (tasks_pending_.any()) {
 | 
| -    TRACE_EVENT_ASYNC_STEP_INTO1("cc", "ScheduledTasks", this, "running",
 | 
| -                                 "state", StateAsValue());
 | 
| -  } else {
 | 
| -    TRACE_EVENT_ASYNC_END0("cc", "ScheduledTasks", this);
 | 
| -  }
 | 
| -  client_->DidFinishRunningTileTasks(task_set);
 | 
| -}
 | 
| -
 | 
| -scoped_refptr<base::trace_event::ConvertableToTraceFormat>
 | 
| -BitmapTileTaskWorkerPool::StateAsValue() const {
 | 
| -  scoped_refptr<base::trace_event::TracedValue> state =
 | 
| -      new base::trace_event::TracedValue();
 | 
| -
 | 
| -  state->BeginArray("tasks_pending");
 | 
| -  for (TaskSet task_set = 0; task_set < kNumberOfTaskSets; ++task_set)
 | 
| -    state->AppendBoolean(tasks_pending_[task_set]);
 | 
| -  state->EndArray();
 | 
| -  return state;
 | 
| -}
 | 
| -
 | 
|  }  // namespace cc
 | 
| 
 |