Commit 4ae512e3 authored by jbauman's avatar jbauman Committed by Commit bot

Run...

Run HostDiscardableSharedMemoryManager::AllocateLockedDiscardableSharedMemoryForChild on FILE_USER_BLOCKING thread

Should prevent some jank on OS X (and Linux), as allocating shared memory is a filesystem operation there.

BUG=467781,466405

Review URL: https://codereview.chromium.org/1007323005

Cr-Commit-Position: refs/heads/master@{#321279}
parent ce6beecc
...@@ -418,7 +418,7 @@ bool RenderMessageFilter::OnMessageReceived(const IPC::Message& message) { ...@@ -418,7 +418,7 @@ bool RenderMessageFilter::OnMessageReceived(const IPC::Message& message) {
OnAllocatedSharedBitmap) OnAllocatedSharedBitmap)
IPC_MESSAGE_HANDLER(ChildProcessHostMsg_DeletedSharedBitmap, IPC_MESSAGE_HANDLER(ChildProcessHostMsg_DeletedSharedBitmap,
OnDeletedSharedBitmap) OnDeletedSharedBitmap)
IPC_MESSAGE_HANDLER( IPC_MESSAGE_HANDLER_DELAY_REPLY(
ChildProcessHostMsg_SyncAllocateLockedDiscardableSharedMemory, ChildProcessHostMsg_SyncAllocateLockedDiscardableSharedMemory,
OnAllocateLockedDiscardableSharedMemory) OnAllocateLockedDiscardableSharedMemory)
IPC_MESSAGE_HANDLER(ChildProcessHostMsg_DeletedDiscardableSharedMemory, IPC_MESSAGE_HANDLER(ChildProcessHostMsg_DeletedDiscardableSharedMemory,
...@@ -965,21 +965,45 @@ void RenderMessageFilter::OnDeletedSharedBitmap(const cc::SharedBitmapId& id) { ...@@ -965,21 +965,45 @@ void RenderMessageFilter::OnDeletedSharedBitmap(const cc::SharedBitmapId& id) {
bitmap_manager_client_.ChildDeletedSharedBitmap(id); bitmap_manager_client_.ChildDeletedSharedBitmap(id);
} }
void RenderMessageFilter::OnAllocateLockedDiscardableSharedMemory( void RenderMessageFilter::AllocateLockedDiscardableSharedMemoryOnFileThread(
uint32 size, uint32 size,
DiscardableSharedMemoryId id, DiscardableSharedMemoryId id,
base::SharedMemoryHandle* handle) { IPC::Message* reply_msg) {
base::SharedMemoryHandle handle;
HostDiscardableSharedMemoryManager::current() HostDiscardableSharedMemoryManager::current()
->AllocateLockedDiscardableSharedMemoryForChild(PeerHandle(), size, id, ->AllocateLockedDiscardableSharedMemoryForChild(PeerHandle(), size, id,
handle); &handle);
ChildProcessHostMsg_SyncAllocateLockedDiscardableSharedMemory::
WriteReplyParams(reply_msg, handle);
Send(reply_msg);
} }
void RenderMessageFilter::OnDeletedDiscardableSharedMemory( void RenderMessageFilter::OnAllocateLockedDiscardableSharedMemory(
uint32 size,
DiscardableSharedMemoryId id,
IPC::Message* reply_msg) {
BrowserThread::PostTask(
BrowserThread::FILE_USER_BLOCKING, FROM_HERE,
base::Bind(&RenderMessageFilter::
AllocateLockedDiscardableSharedMemoryOnFileThread,
this, size, id, reply_msg));
}
void RenderMessageFilter::DeletedDiscardableSharedMemoryOnFileThread(
DiscardableSharedMemoryId id) { DiscardableSharedMemoryId id) {
HostDiscardableSharedMemoryManager::current() HostDiscardableSharedMemoryManager::current()
->ChildDeletedDiscardableSharedMemory(id, PeerHandle()); ->ChildDeletedDiscardableSharedMemory(id, PeerHandle());
} }
void RenderMessageFilter::OnDeletedDiscardableSharedMemory(
DiscardableSharedMemoryId id) {
BrowserThread::PostTask(
BrowserThread::FILE_USER_BLOCKING, FROM_HERE,
base::Bind(
&RenderMessageFilter::DeletedDiscardableSharedMemoryOnFileThread,
this, id));
}
net::CookieStore* RenderMessageFilter::GetCookieStoreForURL( net::CookieStore* RenderMessageFilter::GetCookieStoreForURL(
const GURL& url) { const GURL& url) {
DCHECK_CURRENTLY_ON(BrowserThread::IO); DCHECK_CURRENTLY_ON(BrowserThread::IO);
......
...@@ -245,10 +245,14 @@ class CONTENT_EXPORT RenderMessageFilter : public BrowserMessageFilter { ...@@ -245,10 +245,14 @@ class CONTENT_EXPORT RenderMessageFilter : public BrowserMessageFilter {
void OnResolveProxy(const GURL& url, IPC::Message* reply_msg); void OnResolveProxy(const GURL& url, IPC::Message* reply_msg);
// Browser side discardable shared memory allocation. // Browser side discardable shared memory allocation.
void OnAllocateLockedDiscardableSharedMemory( void AllocateLockedDiscardableSharedMemoryOnFileThread(
uint32 size, uint32 size,
DiscardableSharedMemoryId id, DiscardableSharedMemoryId id,
base::SharedMemoryHandle* handle); IPC::Message* reply_message);
void OnAllocateLockedDiscardableSharedMemory(uint32 size,
DiscardableSharedMemoryId id,
IPC::Message* reply_message);
void DeletedDiscardableSharedMemoryOnFileThread(DiscardableSharedMemoryId id);
void OnDeletedDiscardableSharedMemory(DiscardableSharedMemoryId id); void OnDeletedDiscardableSharedMemory(DiscardableSharedMemoryId id);
void OnCacheableMetadataAvailable(const GURL& url, void OnCacheableMetadataAvailable(const GURL& url,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment