Index: cc/raster/gpu_tile_task_worker_pool.cc |
diff --git a/cc/raster/gpu_tile_task_worker_pool.cc b/cc/raster/gpu_tile_task_worker_pool.cc |
index aac2bd37fabc0f235a84f4199c85fcfbfc631cc9..c070390e2c4e3fd1ab7b9a7b3d65ee24e1aa912a 100644 |
--- a/cc/raster/gpu_tile_task_worker_pool.cc |
+++ b/cc/raster/gpu_tile_task_worker_pool.cc |
@@ -43,13 +43,9 @@ class RasterBufferImpl : public RasterBuffer { |
ContextProvider* context_provider = rasterizer_->resource_provider() |
->output_surface() |
->worker_context_provider(); |
+ DCHECK(context_provider); |
- // The context lock must be held while accessing the context on a |
- // worker thread. |
- base::AutoLock context_lock(*context_provider->GetLock()); |
- |
- // Allow this worker thread to bind to context_provider. |
- context_provider->DetachFromThread(); |
+ ContextProvider::ScopedContextLock scoped_context(context_provider); |
gfx::Rect playback_rect = raster_full_rect; |
if (resource_has_previous_content_) { |
@@ -64,10 +60,7 @@ class RasterBufferImpl : public RasterBuffer { |
playback_rect, scale); |
// Barrier to sync worker context output to cc context. |
- context_provider->ContextGL()->OrderingBarrierCHROMIUM(); |
- |
- // Allow compositor thread to bind to context_provider. |
- context_provider->DetachFromThread(); |
+ scoped_context.ContextGL()->OrderingBarrierCHROMIUM(); |
} |
private: |