Index: content/common/gpu/gpu_channel_manager.cc |
diff --git a/content/common/gpu/gpu_channel_manager.cc b/content/common/gpu/gpu_channel_manager.cc |
index a073e20151edce4dc033a6d9e54bf3c0196b214a..57fbcd9b35306d3126969229237f82d0258954e1 100644 |
--- a/content/common/gpu/gpu_channel_manager.cc |
+++ b/content/common/gpu/gpu_channel_manager.cc |
@@ -103,10 +103,7 @@ GpuChannelManager::GpuChannelManager(MessageRouter* router, |
GpuChannelManager::~GpuChannelManager() { |
gpu_channels_.clear(); |
- if (default_offscreen_surface_.get()) { |
- default_offscreen_surface_->Destroy(); |
- default_offscreen_surface_ = NULL; |
- } |
+ OnDeleteDefaultOffscreenSurface(); |
} |
gpu::gles2::ProgramCache* GpuChannelManager::program_cache() { |
@@ -162,6 +159,8 @@ bool GpuChannelManager::OnMessageReceived(const IPC::Message& msg) { |
OnCreateViewCommandBuffer) |
IPC_MESSAGE_HANDLER(GpuMsg_DestroyGpuMemoryBuffer, OnDestroyGpuMemoryBuffer) |
IPC_MESSAGE_HANDLER(GpuMsg_LoadedShader, OnLoadedShader) |
+ IPC_MESSAGE_HANDLER(GpuMsg_DeleteDefaultOffscreenSurface, |
+ OnDeleteDefaultOffscreenSurface) |
IPC_MESSAGE_UNHANDLED(handled = false) |
IPC_END_MESSAGE_MAP() |
return handled; |
@@ -323,4 +322,11 @@ gfx::GLSurface* GpuChannelManager::GetDefaultOffscreenSurface() { |
return default_offscreen_surface_.get(); |
} |
+void GpuChannelManager::OnDeleteDefaultOffscreenSurface() { |
+ if (default_offscreen_surface_.get()) { |
+ default_offscreen_surface_->Destroy(); |
+ default_offscreen_surface_ = NULL; |
+ } |
+} |
+ |
} // namespace content |