Chromium Code Reviews| Index: cc/output/output_surface.cc |
| diff --git a/cc/output/output_surface.cc b/cc/output/output_surface.cc |
| index a597a87d8456bc65f3ce763d469db9e7e776ed7f..f0a1faf6f813bb1a11173f635c92fef80b9c455d 100644 |
| --- a/cc/output/output_surface.cc |
| +++ b/cc/output/output_surface.cc |
| @@ -107,10 +107,6 @@ OutputSurface::~OutputSurface() { |
| context_provider_->SetMemoryPolicyChangedCallback( |
| ContextProvider::MemoryPolicyChangedCallback()); |
| } |
| - if (worker_context_provider_.get()) { |
| - worker_context_provider_->SetLostContextCallback( |
| - ContextProvider::LostContextCallback()); |
| - } |
| } |
| bool OutputSurface::HasExternalStencilTest() const { |
| @@ -132,17 +128,8 @@ bool OutputSurface::BindToClient(OutputSurfaceClient* client) { |
| } |
| } |
| - if (success && worker_context_provider_.get()) { |
| + if (success && worker_context_provider_.get()) |
| success = worker_context_provider_->BindToCurrentThread(); |
| - if (success) { |
| - worker_context_provider_->SetupLock(); |
| - // The destructor resets the context lost callback, so base::Unretained |
| - // is safe, as long as the worker threads stop using the context before |
| - // the output surface is destroyed. |
| - worker_context_provider_->SetLostContextCallback(base::Bind( |
| - &OutputSurface::DidLoseOutputSurface, base::Unretained(this))); |
|
reveman
2015/07/24 22:53:54
I had to remove this to be able to share worker co
|
| - } |
| - } |
| if (!success) |
| client_ = NULL; |
| @@ -217,11 +204,7 @@ void OutputSurface::SetWorkerContextShouldAggressivelyFreeResources( |
| "OutputSurface::SetWorkerContextShouldAggressivelyFreeResources", |
| "aggressively_free_resources", aggressively_free_resources); |
| if (auto* context_provider = worker_context_provider()) { |
| - // The context lock must be held while accessing the worker context. |
| - base::AutoLock context_lock(*context_provider->GetLock()); |
| - |
| - // Allow context to bind to current thread. |
| - context_provider->DetachFromThread(); |
| + ContextProvider::ScopedContextLock scoped_context(context_provider); |
| if (aggressively_free_resources) { |
| context_provider->DeleteCachedResources(); |
| @@ -231,9 +214,6 @@ void OutputSurface::SetWorkerContextShouldAggressivelyFreeResources( |
| context_support->SetAggressivelyFreeResources( |
| aggressively_free_resources); |
| } |
| - |
| - // Allow context to bind to other threads. |
| - context_provider->DetachFromThread(); |
| } |
| } |