| Index: content/renderer/gpu/render_widget_compositor.cc
|
| diff --git a/content/renderer/gpu/render_widget_compositor.cc b/content/renderer/gpu/render_widget_compositor.cc
|
| index 4eb81d9d52744bbd1286918bb28c0b2c6b05a6c3..8bcc8e208b39f97232653bfc45dea941c3b2f650 100644
|
| --- a/content/renderer/gpu/render_widget_compositor.cc
|
| +++ b/content/renderer/gpu/render_widget_compositor.cc
|
| @@ -470,10 +470,14 @@ RenderWidgetCompositor::OffscreenContextProviderForMainThread() {
|
| class RenderWidgetCompositor::CompositorThreadContextProvider
|
| : public cc::ContextProvider {
|
| public:
|
| - CompositorThreadContextProvider() : destroyed_(false) {}
|
| + CompositorThreadContextProvider() : initialized_(false), destroyed_(false) {}
|
|
|
| virtual bool InitializeOnMainThread() OVERRIDE {
|
| - return WebKit::WebSharedGraphicsContext3D::createCompositorThreadContext();
|
| + if (!initialized_) {
|
| + initialized_ =
|
| + WebKit::WebSharedGraphicsContext3D::createCompositorThreadContext();
|
| + }
|
| + return initialized_;
|
| }
|
| virtual bool BindToCurrentThread() OVERRIDE {
|
| return Context3d()->makeContextCurrent();
|
| @@ -501,6 +505,8 @@ class RenderWidgetCompositor::CompositorThreadContextProvider
|
| virtual ~CompositorThreadContextProvider() {}
|
|
|
| private:
|
| + bool initialized_;
|
| +
|
| base::Lock destroyed_lock_;
|
| bool destroyed_;
|
| };
|
|
|