Index: content/renderer/gpu/compositor_output_surface.cc |
diff --git a/content/renderer/gpu/compositor_output_surface.cc b/content/renderer/gpu/compositor_output_surface.cc |
index 1f1257ebd612ddc75dc02560bf43563d461d3f62..41da0d2a3568298fd1a6c0c73f97dccf0bea3d77 100644 |
--- a/content/renderer/gpu/compositor_output_surface.cc |
+++ b/content/renderer/gpu/compositor_output_surface.cc |
@@ -13,6 +13,7 @@ |
#include "third_party/WebKit/Source/Platform/chromium/public/WebGraphicsContext3D.h" |
using WebKit::WebGraphicsContext3D; |
+using WebKit::WebCompositorOutputCanvas2D; |
//------------------------------------------------------------------------------ |
@@ -28,12 +29,14 @@ IPC::ForwardingMessageFilter* CompositorOutputSurface::CreateFilter( |
CompositorOutputSurface::CompositorOutputSurface( |
int32 routing_id, |
- WebGraphicsContext3D* context3D) |
+ WebGraphicsContext3D* context3D, |
+ WebCompositorOutputCanvas2D* canvas2D) |
: output_surface_filter_( |
RenderThreadImpl::current()->compositor_output_surface_filter()) |
, client_(NULL) |
, routing_id_(routing_id) |
- , context3D_(context3D) { |
+ , context3D_(context3D) |
+ , canvas2D_(canvas2D) { |
DCHECK(output_surface_filter_); |
capabilities_.hasParentCompositor = false; |
DetachFromThread(); |
@@ -56,8 +59,10 @@ bool CompositorOutputSurface::bindToClient( |
WebKit::WebCompositorOutputSurfaceClient* client) { |
DCHECK(CalledOnValidThread()); |
DCHECK(!client_); |
- if (!context3D_->makeContextCurrent()) |
- return false; |
+ if (context3D_.get()) { |
+ if (!context3D_->makeContextCurrent()) |
+ return false; |
+ } |
client_ = client; |
@@ -74,6 +79,10 @@ WebGraphicsContext3D* CompositorOutputSurface::context3D() const { |
return context3D_.get(); |
} |
+WebCompositorOutputCanvas2D* CompositorOutputSurface::canvas2D() { |
+ return canvas2D_.get(); |
+} |
+ |
void CompositorOutputSurface::sendFrameToParentCompositor( |
const WebKit::WebCompositorFrame&) { |
DCHECK(CalledOnValidThread()); |