Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1352)

Unified Diff: content/browser/renderer_host/render_message_filter.cc

Issue 703463005: Re-land: content: Cleanup GpuMemoryBuffers when child process is removed. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@gpu-memory-buffer-id-refactor
Patch Set: add manager null check to ~RenderMessageFilter Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/browser/renderer_host/render_message_filter.cc
diff --git a/content/browser/renderer_host/render_message_filter.cc b/content/browser/renderer_host/render_message_filter.cc
index b218da885612c4fe06e6e7d5e07c8ebdfa9f0ad1..27ad9c839a49f6880b2828a8f3a18a3e02d1c1a6 100644
--- a/content/browser/renderer_host/render_message_filter.cc
+++ b/content/browser/renderer_host/render_message_filter.cc
@@ -326,7 +326,10 @@ RenderMessageFilter::~RenderMessageFilter() {
DCHECK_CURRENTLY_ON(BrowserThread::IO);
DCHECK(plugin_host_clients_.empty());
HostSharedBitmapManager::current()->ProcessRemoved(PeerHandle());
- BrowserGpuMemoryBufferManager::current()->ProcessRemoved(PeerHandle());
+ BrowserGpuMemoryBufferManager* gpu_memory_buffer_manager =
+ BrowserGpuMemoryBufferManager::current();
+ if (gpu_memory_buffer_manager)
+ gpu_memory_buffer_manager->ProcessRemoved(PeerHandle(), render_process_id_);
HostDiscardableSharedMemoryManager::current()->ProcessRemoved(PeerHandle());
}
@@ -1243,6 +1246,8 @@ void RenderMessageFilter::OnAllocateGpuMemoryBuffer(
gfx::GpuMemoryBuffer::Format format,
gfx::GpuMemoryBuffer::Usage usage,
IPC::Message* reply) {
+ DCHECK(BrowserGpuMemoryBufferManager::current());
+
base::CheckedNumeric<int> size = width;
size *= height;
if (!size.IsValid()) {
@@ -1271,11 +1276,12 @@ void RenderMessageFilter::GpuMemoryBufferAllocated(
}
void RenderMessageFilter::OnDeletedGpuMemoryBuffer(
- gfx::GpuMemoryBufferType type,
gfx::GpuMemoryBufferId id,
uint32 sync_point) {
+ DCHECK(BrowserGpuMemoryBufferManager::current());
+
BrowserGpuMemoryBufferManager::current()->ChildProcessDeletedGpuMemoryBuffer(
- type, id, PeerHandle(), render_process_id_, sync_point);
+ id, PeerHandle(), render_process_id_, sync_point);
}
} // namespace content
« no previous file with comments | « content/browser/renderer_host/render_message_filter.h ('k') | content/child/child_gpu_memory_buffer_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698