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

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: Rebase 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(render_process_id_); 164 gpu_memory_buffer_manager->ProcessRemoved(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 17 matching lines...) Expand all
194 IPC_MESSAGE_HANDLER_DELAY_REPLY(ChildProcessHostMsg_EstablishGpuChannel, 192 IPC_MESSAGE_HANDLER_DELAY_REPLY(ChildProcessHostMsg_EstablishGpuChannel,
195 OnEstablishGpuChannel) 193 OnEstablishGpuChannel)
196 IPC_MESSAGE_HANDLER_DELAY_REPLY(ChildProcessHostMsg_HasGpuProcess, 194 IPC_MESSAGE_HANDLER_DELAY_REPLY(ChildProcessHostMsg_HasGpuProcess,
197 OnHasGpuProcess) 195 OnHasGpuProcess)
198 IPC_MESSAGE_HANDLER(ChildProcessHostMsg_DeletedGpuMemoryBuffer, 196 IPC_MESSAGE_HANDLER(ChildProcessHostMsg_DeletedGpuMemoryBuffer,
199 OnDeletedGpuMemoryBuffer) 197 OnDeletedGpuMemoryBuffer)
200 IPC_MESSAGE_HANDLER(ChildProcessHostMsg_AllocatedSharedBitmap, 198 IPC_MESSAGE_HANDLER(ChildProcessHostMsg_AllocatedSharedBitmap,
201 OnAllocatedSharedBitmap) 199 OnAllocatedSharedBitmap)
202 IPC_MESSAGE_HANDLER(ChildProcessHostMsg_DeletedSharedBitmap, 200 IPC_MESSAGE_HANDLER(ChildProcessHostMsg_DeletedSharedBitmap,
203 OnDeletedSharedBitmap) 201 OnDeletedSharedBitmap)
204 IPC_MESSAGE_HANDLER_DELAY_REPLY( 202
205 ChildProcessHostMsg_SyncAllocateLockedDiscardableSharedMemory,
206 OnAllocateLockedDiscardableSharedMemory)
207 IPC_MESSAGE_HANDLER(ChildProcessHostMsg_DeletedDiscardableSharedMemory,
208 OnDeletedDiscardableSharedMemory)
209 #if defined(OS_LINUX) 203 #if defined(OS_LINUX)
210 IPC_MESSAGE_HANDLER(ChildProcessHostMsg_SetThreadPriority, 204 IPC_MESSAGE_HANDLER(ChildProcessHostMsg_SetThreadPriority,
211 OnSetThreadPriority) 205 OnSetThreadPriority)
212 #endif 206 #endif
213 IPC_MESSAGE_HANDLER_DELAY_REPLY(RenderProcessHostMsg_Keygen, OnKeygen) 207 IPC_MESSAGE_HANDLER_DELAY_REPLY(RenderProcessHostMsg_Keygen, OnKeygen)
214 IPC_MESSAGE_HANDLER(RenderProcessHostMsg_DidGenerateCacheableMetadata, 208 IPC_MESSAGE_HANDLER(RenderProcessHostMsg_DidGenerateCacheableMetadata,
215 OnCacheableMetadataAvailable) 209 OnCacheableMetadataAvailable)
216 IPC_MESSAGE_HANDLER( 210 IPC_MESSAGE_HANDLER(
217 RenderProcessHostMsg_DidGenerateCacheableMetadataInCacheStorage, 211 RenderProcessHostMsg_DidGenerateCacheableMetadataInCacheStorage,
218 OnCacheableMetadataAvailableForCacheStorage) 212 OnCacheableMetadataAvailableForCacheStorage)
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after
363 size_t buffer_size, 357 size_t buffer_size,
364 const base::SharedMemoryHandle& handle, 358 const base::SharedMemoryHandle& handle,
365 const cc::SharedBitmapId& id) { 359 const cc::SharedBitmapId& id) {
366 bitmap_manager_client_.ChildAllocatedSharedBitmap(buffer_size, handle, id); 360 bitmap_manager_client_.ChildAllocatedSharedBitmap(buffer_size, handle, id);
367 } 361 }
368 362
369 void RenderMessageFilter::OnDeletedSharedBitmap(const cc::SharedBitmapId& id) { 363 void RenderMessageFilter::OnDeletedSharedBitmap(const cc::SharedBitmapId& id) {
370 bitmap_manager_client_.ChildDeletedSharedBitmap(id); 364 bitmap_manager_client_.ChildDeletedSharedBitmap(id);
371 } 365 }
372 366
373 void RenderMessageFilter::AllocateLockedDiscardableSharedMemoryOnFileThread(
374 uint32_t size,
375 discardable_memory::DiscardableSharedMemoryId id,
376 IPC::Message* reply_msg) {
377 base::SharedMemoryHandle handle;
378 discardable_memory::DiscardableSharedMemoryManager::current()
379 ->AllocateLockedDiscardableSharedMemoryForClient(
380 PeerHandle(), render_process_id_, size, id, &handle);
381 ChildProcessHostMsg_SyncAllocateLockedDiscardableSharedMemory::
382 WriteReplyParams(reply_msg, handle);
383 Send(reply_msg);
384 }
385
386 void RenderMessageFilter::OnAllocateLockedDiscardableSharedMemory(
387 uint32_t size,
388 discardable_memory::DiscardableSharedMemoryId id,
389 IPC::Message* reply_msg) {
390 BrowserThread::PostTask(
391 BrowserThread::FILE_USER_BLOCKING, FROM_HERE,
392 base::Bind(&RenderMessageFilter::
393 AllocateLockedDiscardableSharedMemoryOnFileThread,
394 this, size, id, reply_msg));
395 }
396
397 void RenderMessageFilter::DeletedDiscardableSharedMemoryOnFileThread(
398 discardable_memory::DiscardableSharedMemoryId id) {
399 discardable_memory::DiscardableSharedMemoryManager::current()
400 ->ClientDeletedDiscardableSharedMemory(id, render_process_id_);
401 }
402
403 void RenderMessageFilter::OnDeletedDiscardableSharedMemory(
404 discardable_memory::DiscardableSharedMemoryId id) {
405 BrowserThread::PostTask(
406 BrowserThread::FILE_USER_BLOCKING, FROM_HERE,
407 base::Bind(
408 &RenderMessageFilter::DeletedDiscardableSharedMemoryOnFileThread,
409 this, id));
410 }
411
412 #if defined(OS_LINUX) 367 #if defined(OS_LINUX)
413 void RenderMessageFilter::SetThreadPriorityOnFileThread( 368 void RenderMessageFilter::SetThreadPriorityOnFileThread(
414 base::PlatformThreadId ns_tid, 369 base::PlatformThreadId ns_tid,
415 base::ThreadPriority priority) { 370 base::ThreadPriority priority) {
416 bool ns_pid_supported = false; 371 bool ns_pid_supported = false;
417 pid_t peer_tid = base::FindThreadID(peer_pid(), ns_tid, &ns_pid_supported); 372 pid_t peer_tid = base::FindThreadID(peer_pid(), ns_tid, &ns_pid_supported);
418 if (peer_tid == -1) { 373 if (peer_tid == -1) {
419 if (ns_pid_supported) 374 if (ns_pid_supported)
420 DLOG(WARNING) << "Could not find tid"; 375 DLOG(WARNING) << "Could not find tid";
421 return; 376 return;
(...skipping 241 matching lines...) Expand 10 before | Expand all | Expand 10 after
663 void RenderMessageFilter::OnDeletedGpuMemoryBuffer( 618 void RenderMessageFilter::OnDeletedGpuMemoryBuffer(
664 gfx::GpuMemoryBufferId id, 619 gfx::GpuMemoryBufferId id,
665 const gpu::SyncToken& sync_token) { 620 const gpu::SyncToken& sync_token) {
666 DCHECK(BrowserGpuMemoryBufferManager::current()); 621 DCHECK(BrowserGpuMemoryBufferManager::current());
667 622
668 BrowserGpuMemoryBufferManager::current()->ChildProcessDeletedGpuMemoryBuffer( 623 BrowserGpuMemoryBufferManager::current()->ChildProcessDeletedGpuMemoryBuffer(
669 id, render_process_id_, sync_token); 624 id, render_process_id_, sync_token);
670 } 625 }
671 626
672 } // namespace content 627 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698