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

Side by Side Diff: content/browser/renderer_host/render_message_filter.cc

Issue 2485623002: discardable_memory: Using mojo IPC to replace Chrome IPC (Closed)
Patch Set: Update Created 4 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/browser/renderer_host/render_message_filter.h" 5 #include "content/browser/renderer_host/render_message_filter.h"
6 6
7 #include <errno.h> 7 #include <errno.h>
8 #include <string.h> 8 #include <string.h>
9 9
10 #include <map> 10 #include <map>
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after
155 render_widget_helper_->Init(render_process_id_, resource_dispatcher_host_); 155 render_widget_helper_->Init(render_process_id_, resource_dispatcher_host_);
156 } 156 }
157 157
158 RenderMessageFilter::~RenderMessageFilter() { 158 RenderMessageFilter::~RenderMessageFilter() {
159 // This function should be called on the IO thread. 159 // This function should be called on the IO thread.
160 DCHECK_CURRENTLY_ON(BrowserThread::IO); 160 DCHECK_CURRENTLY_ON(BrowserThread::IO);
161 BrowserGpuMemoryBufferManager* gpu_memory_buffer_manager = 161 BrowserGpuMemoryBufferManager* gpu_memory_buffer_manager =
162 BrowserGpuMemoryBufferManager::current(); 162 BrowserGpuMemoryBufferManager::current();
163 if (gpu_memory_buffer_manager) 163 if (gpu_memory_buffer_manager)
164 gpu_memory_buffer_manager->ProcessRemoved(PeerHandle(), render_process_id_); 164 gpu_memory_buffer_manager->ProcessRemoved(PeerHandle(), render_process_id_);
165 discardable_memory::DiscardableSharedMemoryManager::current()->ClientRemoved(
166 render_process_id_);
167 } 165 }
168 166
169 bool RenderMessageFilter::OnMessageReceived(const IPC::Message& message) { 167 bool RenderMessageFilter::OnMessageReceived(const IPC::Message& message) {
170 bool handled = true; 168 bool handled = true;
171 IPC_BEGIN_MESSAGE_MAP(RenderMessageFilter, message) 169 IPC_BEGIN_MESSAGE_MAP(RenderMessageFilter, message)
172 #if defined(OS_MACOSX) 170 #if defined(OS_MACOSX)
173 // On Mac, the IPCs ViewHostMsg_SwapCompositorFrame, ViewHostMsg_UpdateRect, 171 // On Mac, the IPCs ViewHostMsg_SwapCompositorFrame, ViewHostMsg_UpdateRect,
174 // and GpuCommandBufferMsg_SwapBuffersCompleted need to be handled in a 172 // and GpuCommandBufferMsg_SwapBuffersCompleted need to be handled in a
175 // nested message loop during resize. 173 // nested message loop during resize.
176 IPC_MESSAGE_HANDLER_GENERIC( 174 IPC_MESSAGE_HANDLER_GENERIC(
(...skipping 19 matching lines...) Expand all
196 IPC_MESSAGE_HANDLER_DELAY_REPLY(ChildProcessHostMsg_EstablishGpuChannel, 194 IPC_MESSAGE_HANDLER_DELAY_REPLY(ChildProcessHostMsg_EstablishGpuChannel,
197 OnEstablishGpuChannel) 195 OnEstablishGpuChannel)
198 IPC_MESSAGE_HANDLER_DELAY_REPLY(ChildProcessHostMsg_HasGpuProcess, 196 IPC_MESSAGE_HANDLER_DELAY_REPLY(ChildProcessHostMsg_HasGpuProcess,
199 OnHasGpuProcess) 197 OnHasGpuProcess)
200 IPC_MESSAGE_HANDLER(ChildProcessHostMsg_DeletedGpuMemoryBuffer, 198 IPC_MESSAGE_HANDLER(ChildProcessHostMsg_DeletedGpuMemoryBuffer,
201 OnDeletedGpuMemoryBuffer) 199 OnDeletedGpuMemoryBuffer)
202 IPC_MESSAGE_HANDLER(ChildProcessHostMsg_AllocatedSharedBitmap, 200 IPC_MESSAGE_HANDLER(ChildProcessHostMsg_AllocatedSharedBitmap,
203 OnAllocatedSharedBitmap) 201 OnAllocatedSharedBitmap)
204 IPC_MESSAGE_HANDLER(ChildProcessHostMsg_DeletedSharedBitmap, 202 IPC_MESSAGE_HANDLER(ChildProcessHostMsg_DeletedSharedBitmap,
205 OnDeletedSharedBitmap) 203 OnDeletedSharedBitmap)
206 IPC_MESSAGE_HANDLER_DELAY_REPLY( 204
207 ChildProcessHostMsg_SyncAllocateLockedDiscardableSharedMemory,
208 OnAllocateLockedDiscardableSharedMemory)
209 IPC_MESSAGE_HANDLER(ChildProcessHostMsg_DeletedDiscardableSharedMemory,
210 OnDeletedDiscardableSharedMemory)
211 #if defined(OS_LINUX) 205 #if defined(OS_LINUX)
212 IPC_MESSAGE_HANDLER(ChildProcessHostMsg_SetThreadPriority, 206 IPC_MESSAGE_HANDLER(ChildProcessHostMsg_SetThreadPriority,
213 OnSetThreadPriority) 207 OnSetThreadPriority)
214 #endif 208 #endif
215 IPC_MESSAGE_HANDLER_DELAY_REPLY(RenderProcessHostMsg_Keygen, OnKeygen) 209 IPC_MESSAGE_HANDLER_DELAY_REPLY(RenderProcessHostMsg_Keygen, OnKeygen)
216 IPC_MESSAGE_HANDLER(RenderProcessHostMsg_DidGenerateCacheableMetadata, 210 IPC_MESSAGE_HANDLER(RenderProcessHostMsg_DidGenerateCacheableMetadata,
217 OnCacheableMetadataAvailable) 211 OnCacheableMetadataAvailable)
218 IPC_MESSAGE_HANDLER( 212 IPC_MESSAGE_HANDLER(
219 RenderProcessHostMsg_DidGenerateCacheableMetadataInCacheStorage, 213 RenderProcessHostMsg_DidGenerateCacheableMetadataInCacheStorage,
220 OnCacheableMetadataAvailableForCacheStorage) 214 OnCacheableMetadataAvailableForCacheStorage)
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after
384 size_t buffer_size, 378 size_t buffer_size,
385 const base::SharedMemoryHandle& handle, 379 const base::SharedMemoryHandle& handle,
386 const cc::SharedBitmapId& id) { 380 const cc::SharedBitmapId& id) {
387 bitmap_manager_client_.ChildAllocatedSharedBitmap(buffer_size, handle, id); 381 bitmap_manager_client_.ChildAllocatedSharedBitmap(buffer_size, handle, id);
388 } 382 }
389 383
390 void RenderMessageFilter::OnDeletedSharedBitmap(const cc::SharedBitmapId& id) { 384 void RenderMessageFilter::OnDeletedSharedBitmap(const cc::SharedBitmapId& id) {
391 bitmap_manager_client_.ChildDeletedSharedBitmap(id); 385 bitmap_manager_client_.ChildDeletedSharedBitmap(id);
392 } 386 }
393 387
394 void RenderMessageFilter::AllocateLockedDiscardableSharedMemoryOnFileThread(
395 uint32_t size,
396 discardable_memory::DiscardableSharedMemoryId id,
397 IPC::Message* reply_msg) {
398 base::SharedMemoryHandle handle;
399 discardable_memory::DiscardableSharedMemoryManager::current()
400 ->AllocateLockedDiscardableSharedMemoryForClient(
401 PeerHandle(), render_process_id_, size, id, &handle);
402 ChildProcessHostMsg_SyncAllocateLockedDiscardableSharedMemory::
403 WriteReplyParams(reply_msg, handle);
404 Send(reply_msg);
405 }
406
407 void RenderMessageFilter::OnAllocateLockedDiscardableSharedMemory(
408 uint32_t size,
409 discardable_memory::DiscardableSharedMemoryId id,
410 IPC::Message* reply_msg) {
411 BrowserThread::PostTask(
412 BrowserThread::FILE_USER_BLOCKING, FROM_HERE,
413 base::Bind(&RenderMessageFilter::
414 AllocateLockedDiscardableSharedMemoryOnFileThread,
415 this, size, id, reply_msg));
416 }
417
418 void RenderMessageFilter::DeletedDiscardableSharedMemoryOnFileThread(
419 discardable_memory::DiscardableSharedMemoryId id) {
420 discardable_memory::DiscardableSharedMemoryManager::current()
421 ->ClientDeletedDiscardableSharedMemory(id, render_process_id_);
422 }
423
424 void RenderMessageFilter::OnDeletedDiscardableSharedMemory(
425 discardable_memory::DiscardableSharedMemoryId id) {
426 BrowserThread::PostTask(
427 BrowserThread::FILE_USER_BLOCKING, FROM_HERE,
428 base::Bind(
429 &RenderMessageFilter::DeletedDiscardableSharedMemoryOnFileThread,
430 this, id));
431 }
432
433 #if defined(OS_LINUX) 388 #if defined(OS_LINUX)
434 void RenderMessageFilter::SetThreadPriorityOnFileThread( 389 void RenderMessageFilter::SetThreadPriorityOnFileThread(
435 base::PlatformThreadId ns_tid, 390 base::PlatformThreadId ns_tid,
436 base::ThreadPriority priority) { 391 base::ThreadPriority priority) {
437 bool ns_pid_supported = false; 392 bool ns_pid_supported = false;
438 pid_t peer_tid = base::FindThreadID(peer_pid(), ns_tid, &ns_pid_supported); 393 pid_t peer_tid = base::FindThreadID(peer_pid(), ns_tid, &ns_pid_supported);
439 if (peer_tid == -1) { 394 if (peer_tid == -1) {
440 if (ns_pid_supported) 395 if (ns_pid_supported)
441 DLOG(WARNING) << "Could not find tid"; 396 DLOG(WARNING) << "Could not find tid";
442 return; 397 return;
(...skipping 242 matching lines...) Expand 10 before | Expand all | Expand 10 after
685 void RenderMessageFilter::OnDeletedGpuMemoryBuffer( 640 void RenderMessageFilter::OnDeletedGpuMemoryBuffer(
686 gfx::GpuMemoryBufferId id, 641 gfx::GpuMemoryBufferId id,
687 const gpu::SyncToken& sync_token) { 642 const gpu::SyncToken& sync_token) {
688 DCHECK(BrowserGpuMemoryBufferManager::current()); 643 DCHECK(BrowserGpuMemoryBufferManager::current());
689 644
690 BrowserGpuMemoryBufferManager::current()->ChildProcessDeletedGpuMemoryBuffer( 645 BrowserGpuMemoryBufferManager::current()->ChildProcessDeletedGpuMemoryBuffer(
691 id, PeerHandle(), render_process_id_, sync_token); 646 id, PeerHandle(), render_process_id_, sync_token);
692 } 647 }
693 648
694 } // namespace content 649 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698