diff options
author | tonyg@chromium.org <tonyg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-05-18 17:09:33 +0000 |
---|---|---|
committer | tonyg@chromium.org <tonyg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-05-18 17:09:33 +0000 |
commit | b808eb6f0f47a7c4ad15dd8ec115404ce14b47b6 (patch) | |
tree | 8315454562119f7591028e5f13bb528abb1dc9ef /chrome/common/resource_dispatcher.cc | |
parent | cadf9b3f3fc8844f95b467afd40a2abf3cd615f9 (diff) | |
download | chromium_src-b808eb6f0f47a7c4ad15dd8ec115404ce14b47b6.zip chromium_src-b808eb6f0f47a7c4ad15dd8ec115404ce14b47b6.tar.gz chromium_src-b808eb6f0f47a7c4ad15dd8ec115404ce14b47b6.tar.bz2 |
Wire sending/receiving cacheable metadata from the renderer
to the disk cache.
BUG=32407
TEST=None
Review URL: http://codereview.chromium.org/1698001
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@47522 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/common/resource_dispatcher.cc')
-rw-r--r-- | chrome/common/resource_dispatcher.cc | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/chrome/common/resource_dispatcher.cc b/chrome/common/resource_dispatcher.cc index b0d2918..b8f306c 100644 --- a/chrome/common/resource_dispatcher.cc +++ b/chrome/common/resource_dispatcher.cc @@ -367,6 +367,24 @@ void ResourceDispatcher::OnReceivedResponse( peer->OnReceivedResponse(response_head, false); } +void ResourceDispatcher::OnReceivedCachedMetadata( + int request_id, const std::vector<char>& data) { + PendingRequestList::iterator it = pending_requests_.find(request_id); + if (it == pending_requests_.end()) { + // this might happen for kill()ed requests on the webkit end, so perhaps + // it shouldn't be a warning... + DLOG(WARNING) << "Got metadata for a nonexistant or finished request"; + return; + } + + if (data.size()) { + PendingRequestInfo& request_info = it->second; + RESOURCE_LOG("Dispatching " << data.size() << " metadata bytes for " << + request_info.peer->GetURLForDebugging().possibly_invalid_spec()); + request_info.peer->OnReceivedCachedMetadata(&data.front(), data.size()); + } +} + void ResourceDispatcher::OnReceivedData(const IPC::Message& message, int request_id, base::SharedMemoryHandle shm_handle, @@ -528,6 +546,8 @@ void ResourceDispatcher::DispatchMessage(const IPC::Message& message) { IPC_BEGIN_MESSAGE_MAP(ResourceDispatcher, message) IPC_MESSAGE_HANDLER(ViewMsg_Resource_UploadProgress, OnUploadProgress) IPC_MESSAGE_HANDLER(ViewMsg_Resource_ReceivedResponse, OnReceivedResponse) + IPC_MESSAGE_HANDLER( + ViewMsg_Resource_ReceivedCachedMetadata, OnReceivedCachedMetadata) IPC_MESSAGE_HANDLER(ViewMsg_Resource_ReceivedRedirect, OnReceivedRedirect) IPC_MESSAGE_HANDLER(ViewMsg_Resource_DataReceived, OnReceivedData) IPC_MESSAGE_HANDLER(ViewMsg_Resource_RequestComplete, OnRequestComplete) @@ -579,6 +599,7 @@ bool ResourceDispatcher::IsResourceDispatcherMessage( switch (message.type()) { case ViewMsg_Resource_UploadProgress::ID: case ViewMsg_Resource_ReceivedResponse::ID: + case ViewMsg_Resource_ReceivedCachedMetadata::ID: case ViewMsg_Resource_ReceivedRedirect::ID: case ViewMsg_Resource_DataReceived::ID: case ViewMsg_Resource_RequestComplete::ID: |