| Index: gpu/command_buffer/service/gles2_cmd_decoder.cc
 | 
| diff --git a/gpu/command_buffer/service/gles2_cmd_decoder.cc b/gpu/command_buffer/service/gles2_cmd_decoder.cc
 | 
| index ace0b153fffaacc9b1d6f81ffbe5a990095eb732..c0243eaa59d179cb0167380d1b9d5e7dffd86f8e 100644
 | 
| --- a/gpu/command_buffer/service/gles2_cmd_decoder.cc
 | 
| +++ b/gpu/command_buffer/service/gles2_cmd_decoder.cc
 | 
| @@ -595,6 +595,7 @@ class GLES2DecoderImpl : public GLES2Decoder, public ErrorStateClient {
 | 
|                    const std::vector<int32_t>& attribs) override;
 | 
|    void Destroy(bool have_context) override;
 | 
|    void SetSurface(const scoped_refptr<gfx::GLSurface>& surface) override;
 | 
| +  void ReleaseSurface() override;
 | 
|    void ProduceFrontBuffer(const Mailbox& mailbox) override;
 | 
|    bool ResizeOffscreenFrameBuffer(const gfx::Size& size) override;
 | 
|    void UpdateParentTextureInfo();
 | 
| @@ -3771,6 +3772,7 @@ void GLES2DecoderImpl::DeleteTransformFeedbacksHelper(
 | 
|  }
 | 
|  
 | 
|  bool GLES2DecoderImpl::MakeCurrent() {
 | 
| +  DCHECK(surface_);
 | 
|    if (!context_.get())
 | 
|      return false;
 | 
|  
 | 
| @@ -4339,11 +4341,22 @@ void GLES2DecoderImpl::Destroy(bool have_context) {
 | 
|  void GLES2DecoderImpl::SetSurface(
 | 
|      const scoped_refptr<gfx::GLSurface>& surface) {
 | 
|    DCHECK(context_->IsCurrent(NULL));
 | 
| -  DCHECK(surface_.get());
 | 
| +  DCHECK(surface);
 | 
|    surface_ = surface;
 | 
|    RestoreCurrentFramebufferBindings();
 | 
|  }
 | 
|  
 | 
| +void GLES2DecoderImpl::ReleaseSurface() {
 | 
| +  if (!context_.get())
 | 
| +    return;
 | 
| +  if (WasContextLost()) {
 | 
| +    DLOG(ERROR) << "  GLES2DecoderImpl: Trying to release lost context.";
 | 
| +    return;
 | 
| +  }
 | 
| +  context_->ReleaseCurrent(surface_.get());
 | 
| +  surface_ = nullptr;
 | 
| +}
 | 
| +
 | 
|  void GLES2DecoderImpl::ProduceFrontBuffer(const Mailbox& mailbox) {
 | 
|    if (!offscreen_saved_color_texture_.get()) {
 | 
|      LOG(ERROR) << "Called ProduceFrontBuffer on a non-offscreen context";
 | 
| 
 |