| 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 f0704ffb7c6cf2457fec02bd4771a01fa66f6a18..e50a1e93aa420458328ac9fa3628bb0006a3db65 100644
 | 
| --- a/content/renderer/gpu/compositor_output_surface.cc
 | 
| +++ b/content/renderer/gpu/compositor_output_surface.cc
 | 
| @@ -46,6 +46,7 @@ CompositorOutputSurface::~CompositorOutputSurface() {
 | 
|    DCHECK(CalledOnValidThread());
 | 
|    if (!client_)
 | 
|      return;
 | 
| +  output_surface_proxy_->ClearOutputSurface();
 | 
|    output_surface_filter_->RemoveRoute(routing_id_);
 | 
|  }
 | 
|  
 | 
| @@ -66,10 +67,11 @@ bool CompositorOutputSurface::bindToClient(
 | 
|  
 | 
|    client_ = client;
 | 
|  
 | 
| +  output_surface_proxy_ = new CompositorOutputSurfaceProxy(this);
 | 
|    output_surface_filter_->AddRoute(
 | 
|        routing_id_,
 | 
| -      base::Bind(&CompositorOutputSurface::OnMessageReceived,
 | 
| -                 base::Unretained(this)));
 | 
| +      base::Bind(&CompositorOutputSurfaceProxy::OnMessageReceived,
 | 
| +                 output_surface_proxy_));
 | 
|  
 | 
|    return true;
 | 
|  }
 | 
| 
 |