Index: cc/resources/raster_worker_pool.h |
diff --git a/cc/resources/raster_worker_pool.h b/cc/resources/raster_worker_pool.h |
index c868be757903354a754900206cfab8e503970dcf..4e628c4aa5c140f44839d17f6900258d06f32a8d 100644 |
--- a/cc/resources/raster_worker_pool.h |
+++ b/cc/resources/raster_worker_pool.h |
@@ -102,6 +102,8 @@ struct RasterTaskMetadata { |
class CC_EXPORT RasterWorkerPoolClient { |
public: |
virtual bool ShouldForceTasksRequiredForActivationToComplete() const = 0; |
+ virtual void DidFinishedRunningTasks() = 0; |
+ virtual void DidFinishedRunningTasksRequiredForActivation() = 0; |
protected: |
virtual ~RasterWorkerPoolClient() {} |
@@ -235,14 +237,15 @@ class CC_EXPORT RasterWorkerPool : public WorkerPool { |
~RasterTaskGraph(); |
void InsertRasterTask(internal::WorkerPoolTask* raster_task, |
- const TaskVector& decode_tasks); |
+ const TaskVector& decode_tasks, |
+ bool required_for_activation); |
private: |
friend class RasterWorkerPool; |
TaskGraph graph_; |
- scoped_refptr<internal::WorkerPoolTask> raster_finished_task_; |
scoped_ptr<GraphNode> raster_finished_node_; |
+ scoped_ptr<GraphNode> raster_required_for_activation_finished_node_; |
unsigned next_priority_; |
DISALLOW_COPY_AND_ASSIGN(RasterTaskGraph); |
@@ -250,7 +253,8 @@ class CC_EXPORT RasterWorkerPool : public WorkerPool { |
RasterWorkerPool(ResourceProvider* resource_provider, size_t num_threads); |
- virtual void OnRasterTasksFinished() {} |
+ virtual void OnRasterTasksFinished() = 0; |
+ virtual void OnRasterTasksRequiredForActivationFinished() = 0; |
void SetRasterTasks(RasterTask::Queue* queue); |
void SetRasterTaskGraph(RasterTaskGraph* graph); |
@@ -265,6 +269,8 @@ class CC_EXPORT RasterWorkerPool : public WorkerPool { |
private: |
void OnRasterFinished(int64 schedule_raster_tasks_count); |
+ void OnRasterRequiredForActivationFinished( |
+ int64 schedule_raster_tasks_count); |
RasterWorkerPoolClient* client_; |
ResourceProvider* resource_provider_; |
@@ -273,6 +279,8 @@ class CC_EXPORT RasterWorkerPool : public WorkerPool { |
base::WeakPtrFactory<RasterWorkerPool> weak_ptr_factory_; |
scoped_refptr<internal::WorkerPoolTask> raster_finished_task_; |
+ scoped_refptr<internal::WorkerPoolTask> |
+ raster_required_for_activation_finished_task_; |
int64 schedule_raster_tasks_count_; |
}; |