| Index: content/browser/renderer_host/render_message_filter.cc
|
| diff --git a/content/browser/renderer_host/render_message_filter.cc b/content/browser/renderer_host/render_message_filter.cc
|
| index c208323a63c578146f321da8d4863186311f198e..2cd35a1c7adf88a9ef1250ed81a9b890bcf5d378 100644
|
| --- a/content/browser/renderer_host/render_message_filter.cc
|
| +++ b/content/browser/renderer_host/render_message_filter.cc
|
| @@ -422,6 +422,9 @@ bool RenderMessageFilter::OnMessageReceived(const IPC::Message& message) {
|
| OnAllocateLockedDiscardableSharedMemory)
|
| IPC_MESSAGE_HANDLER(ViewHostMsg_DidGenerateCacheableMetadata,
|
| OnCacheableMetadataAvailable)
|
| + IPC_MESSAGE_HANDLER(
|
| + ViewHostMsg_DidGenerateCacheableMetadataOriginalResponseTime,
|
| + OnCacheableMetadataAvailableOriginalResponseTime)
|
| IPC_MESSAGE_HANDLER_DELAY_REPLY(ViewHostMsg_Keygen, OnKeygen)
|
| IPC_MESSAGE_HANDLER(ViewHostMsg_GetAudioHardwareConfig,
|
| OnGetAudioHardwareConfig)
|
| @@ -991,8 +994,33 @@ void RenderMessageFilter::OnCacheableMetadataAvailable(
|
| const net::RequestPriority kPriority = net::LOW;
|
| scoped_refptr<net::IOBuffer> buf(new net::IOBuffer(data.size()));
|
| memcpy(buf->data(), &data.front(), data.size());
|
| - cache->WriteMetadata(url, kPriority, expected_response_time, buf.get(),
|
| - data.size());
|
| + // TODO(yangguo): issue 453298. The time conversion is lossy. Use
|
| + // OnCacheableMetadataAvailableOriginalResponseTime instead.
|
| + cache->WriteMetadata(url, kPriority,
|
| + base::Time::FromDoubleT(expected_response_time),
|
| + buf.get(), data.size());
|
| +}
|
| +
|
| +void RenderMessageFilter::OnCacheableMetadataAvailableOriginalResponseTime(
|
| + const GURL& url,
|
| + int64 expected_response_time,
|
| + const std::vector<char>& data) {
|
| + net::HttpCache* cache = request_context_->GetURLRequestContext()
|
| + ->http_transaction_factory()
|
| + ->GetCache();
|
| + DCHECK(cache);
|
| +
|
| + // Use the same priority for the metadata write as for script
|
| + // resources (see defaultPriorityForResourceType() in WebKit's
|
| + // CachedResource.cpp). Note that WebURLRequest::PriorityMedium
|
| + // corresponds to net::LOW (see ConvertWebKitPriorityToNetPriority()
|
| + // in weburlloader_impl.cc).
|
| + const net::RequestPriority kPriority = net::LOW;
|
| + scoped_refptr<net::IOBuffer> buf(new net::IOBuffer(data.size()));
|
| + memcpy(buf->data(), &data.front(), data.size());
|
| + cache->WriteMetadata(url, kPriority,
|
| + base::Time::FromInternalValue(expected_response_time),
|
| + buf.get(), data.size());
|
| }
|
|
|
| void RenderMessageFilter::OnKeygen(uint32 key_size_index,
|
|
|