| Index: cc/output/context_provider.h
 | 
| diff --git a/cc/output/context_provider.h b/cc/output/context_provider.h
 | 
| index 7362e8b55aa9acffd62060af1ed08c766581c4f2..71d06bd7591d22f180f7a395b5be412d733b03bb 100644
 | 
| --- a/cc/output/context_provider.h
 | 
| +++ b/cc/output/context_provider.h
 | 
| @@ -12,6 +12,10 @@
 | 
|  
 | 
|  class GrContext;
 | 
|  
 | 
| +namespace base {
 | 
| +class Lock;
 | 
| +}
 | 
| +
 | 
|  namespace gpu {
 | 
|  class ContextSupport;
 | 
|  namespace gles2 { class GLES2Interface; }
 | 
| @@ -27,6 +31,7 @@ class ContextProvider : public base::RefCountedThreadSafe<ContextProvider> {
 | 
|    // Once this function has been called, the class should only be accessed
 | 
|    // from the same thread.
 | 
|    virtual bool BindToCurrentThread() = 0;
 | 
| +  virtual void DetachFromThread() {}
 | 
|  
 | 
|    virtual gpu::gles2::GLES2Interface* ContextGL() = 0;
 | 
|    virtual gpu::ContextSupport* ContextSupport() = 0;
 | 
| @@ -39,6 +44,13 @@ class ContextProvider : public base::RefCountedThreadSafe<ContextProvider> {
 | 
|      CC_EXPORT Capabilities();
 | 
|    };
 | 
|  
 | 
| +  // Sets up a lock so this context can be used from multiple threads.
 | 
| +  virtual void SetupLock() = 0;
 | 
| +
 | 
| +  // Returns the lock that should be held if using this context from multiple
 | 
| +  // threads.
 | 
| +  virtual base::Lock* GetLock() = 0;
 | 
| +
 | 
|    // Returns the capabilities of the currently bound 3d context.
 | 
|    virtual Capabilities ContextCapabilities() = 0;
 | 
|  
 | 
| 
 |