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) {
OnAllocatedSharedBitmap)
IPC_MESSAGE_HANDLER(ChildProcessHostMsg_DeletedSharedBitmap,
OnDeletedSharedBitmap)
IPC_MESSAGE_HANDLER(
IPC_MESSAGE_HANDLER_DELAY_REPLY(
ChildProcessHostMsg_SyncAllocateLockedDiscardableSharedMemory,
OnAllocateLockedDiscardableSharedMemory)
IPC_MESSAGE_HANDLER(ChildProcessHostMsg_DeletedDiscardableSharedMemory,
......@@ -965,21 +965,45 @@ void RenderMessageFilter::OnDeletedSharedBitmap(const cc::SharedBitmapId& id) {
bitmap_manager_client_.ChildDeletedSharedBitmap(id);
}
void RenderMessageFilter::OnAllocateLockedDiscardableSharedMemory(
void RenderMessageFilter::AllocateLockedDiscardableSharedMemoryOnFileThread(
uint32 size,
DiscardableSharedMemoryId id,
base::SharedMemoryHandle* handle) {
IPC::Message* reply_msg) {
base::SharedMemoryHandle handle;
HostDiscardableSharedMemoryManager::current()
->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) {
HostDiscardableSharedMemoryManager::current()
->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(
const GURL& url) {
DCHECK_CURRENTLY_ON(BrowserThread::IO);
......
......@@ -245,10 +245,14 @@ class CONTENT_EXPORT RenderMessageFilter : public BrowserMessageFilter {
void OnResolveProxy(const GURL& url, IPC::Message* reply_msg);
// Browser side discardable shared memory allocation.
void OnAllocateLockedDiscardableSharedMemory(
void AllocateLockedDiscardableSharedMemoryOnFileThread(
uint32 size,
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 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