Use ContextProvider subclass to provide WGC3D pointers

Some cc::ContextProvider instances will also need to provide WebGraphicsContext3D*
interfaces to the underlying GL context, but not all. This adds a subclass of ContextProvider
in content:: to use for these users. The compositor itself doesn't need the WGC3D
accessor so it just uses the base class.

BUG=181120

Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=244383

Review URL: https://codereview.chromium.org/126093010

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@244697 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/content/renderer/render_thread_impl.h b/content/renderer/render_thread_impl.h
index c9e4142..c16fc65a 100644
--- a/content/renderer/render_thread_impl.h
+++ b/content/renderer/render_thread_impl.h
@@ -59,6 +59,7 @@
 
 namespace webkit {
 namespace gpu {
+class ContextProviderWebContext;
 class GrContextForWebGraphicsContext3D;
 }
 }
@@ -263,7 +264,8 @@
   scoped_refptr<RendererGpuVideoAcceleratorFactories> GetGpuFactories();
 
   scoped_refptr<cc::ContextProvider> OffscreenCompositorContextProvider();
-  scoped_refptr<cc::ContextProvider> SharedMainThreadContextProvider();
+  scoped_refptr<webkit::gpu::ContextProviderWebContext>
+      SharedMainThreadContextProvider();
 
   // AudioRendererMixerManager instance which manages renderer side mixer
   // instances shared based on configured audio parameters.  Lazily created on