| Index: third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.h | 
| diff --git a/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.h b/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.h | 
| index 73bbe090b2905cdcdd281d491ed3868cd1b65a02..ce173d6047db2043831716021f2c0bc1048be620 100644 | 
| --- a/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.h | 
| +++ b/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.h | 
| @@ -132,7 +132,8 @@ class ScopedRGBEmulationColorMask { | 
| const bool m_requiresEmulation; | 
| }; | 
|  | 
| -class MODULES_EXPORT WebGLRenderingContextBase : public CanvasRenderingContext { | 
| +class MODULES_EXPORT WebGLRenderingContextBase : public CanvasRenderingContext, | 
| +                                                 public DrawingBuffer::Client { | 
| WTF_MAKE_NONCOPYABLE(WebGLRenderingContextBase); | 
|  | 
| public: | 
| @@ -545,11 +546,7 @@ class MODULES_EXPORT WebGLRenderingContextBase : public CanvasRenderingContext { | 
| void restoreScissorEnabled(); | 
| void restoreScissorBox(); | 
| void restoreClearColor(); | 
| -  void restoreClearDepthf(); | 
| -  void restoreClearStencil(); | 
| -  void restoreStencilMaskSeparate(); | 
| void restoreColorMask(); | 
| -  void restoreDepthMask(); | 
|  | 
| gpu::gles2::GLES2Interface* contextGL() const { | 
| DrawingBuffer* d = drawingBuffer(); | 
| @@ -619,6 +616,7 @@ class MODULES_EXPORT WebGLRenderingContextBase : public CanvasRenderingContext { | 
| friend class WebGLCompressedTextureS3TCsRGB; | 
| friend class WebGLRenderingContextErrorMessageCallback; | 
| friend class WebGLVertexArrayObjectBase; | 
| +  friend class ScopedDrawingBufferBinder; | 
| friend class ScopedTexture2DRestorer; | 
| friend class ScopedFramebufferRestorer; | 
| // To allow V8WebGL[2]RenderingContext to call visitChildDOMWrappers. | 
| @@ -645,6 +643,16 @@ class MODULES_EXPORT WebGLRenderingContextBase : public CanvasRenderingContext { | 
| WebLayer* platformLayer() const override; | 
| void stop() override; | 
|  | 
| +  // DrawingBuffer::Client implementation. | 
| +  bool DrawingBufferClientIsBoundForDraw() override; | 
| +  void DrawingBufferClientRestoreScissorTest() override; | 
| +  void DrawingBufferClientRestoreMaskAndClearValues() override; | 
| +  void DrawingBufferClientRestorePixelPackAlignment() override; | 
| +  void DrawingBufferClientRestoreTexture2DBinding() override; | 
| +  void DrawingBufferClientRestoreRenderbufferBinding() override; | 
| +  void DrawingBufferClientRestoreFramebufferBinding() override; | 
| +  void DrawingBufferClientRestorePixelUnpackBufferBinding() override; | 
| + | 
| void addSharedObject(WebGLSharedObject*); | 
| void addContextObject(WebGLContextObject*); | 
| void detachAndRemoveAllObjects(); | 
| @@ -915,7 +923,7 @@ class MODULES_EXPORT WebGLRenderingContextBase : public CanvasRenderingContext { | 
| m_readFramebufferBinding(framebufferBinding) { | 
| // Commit DrawingBuffer if needed (e.g., for multisampling) | 
| if (!m_readFramebufferBinding && m_drawingBuffer) | 
| -        m_drawingBuffer->commit(); | 
| +        m_drawingBuffer->resolveAndBindForReadAndDraw(); | 
| } | 
|  | 
| ~ScopedDrawingBufferBinder() { | 
| @@ -975,9 +983,6 @@ class MODULES_EXPORT WebGLRenderingContextBase : public CanvasRenderingContext { | 
| }; | 
| HowToClear clearIfComposited(GLbitfield clearMask = 0); | 
|  | 
| -  // Helper to restore state that clearing the framebuffer may destroy. | 
| -  void restoreStateAfterClear(); | 
| - | 
| // Convert texture internal format. | 
| GLenum convertTexInternalFormat(GLenum internalformat, GLenum type); | 
|  | 
|  |