Passing mime type in DidLoadResourceFromMemoryCache and more info in LoadFromMemoryCacheDetails.
The mime_type is needed for speculative resource prefetching.
BUG=None
TEST=None
Review URL: https://chromiumcodereview.appspot.com/10413064
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@138638 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/content/browser/load_from_memory_cache_details.cc b/content/browser/load_from_memory_cache_details.cc
index ed80587..e78171f 100644
--- a/content/browser/load_from_memory_cache_details.cc
+++ b/content/browser/load_from_memory_cache_details.cc
@@ -1,4 +1,4 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
@@ -8,11 +8,17 @@
const GURL& url,
int pid,
int cert_id,
- net::CertStatus cert_status)
+ net::CertStatus cert_status,
+ std::string http_method,
+ std::string mime_type,
+ ResourceType::Type resource_type)
: url_(url),
pid_(pid),
cert_id_(cert_id),
- cert_status_(cert_status) {
+ cert_status_(cert_status),
+ http_method_(http_method),
+ mime_type_(mime_type),
+ resource_type_(resource_type) {
}
LoadFromMemoryCacheDetails::~LoadFromMemoryCacheDetails() {
diff --git a/content/browser/load_from_memory_cache_details.h b/content/browser/load_from_memory_cache_details.h
index 4524014..b17f06e 100644
--- a/content/browser/load_from_memory_cache_details.h
+++ b/content/browser/load_from_memory_cache_details.h
@@ -1,4 +1,4 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
@@ -6,9 +6,11 @@
#define CONTENT_BROWSER_LOAD_FROM_MEMORY_CACHE_DETAILS_H_
#pragma once
+#include <string>
#include "base/basictypes.h"
#include "googleurl/src/gurl.h"
#include "net/base/cert_status_flags.h"
+#include "webkit/glue/resource_type.h"
class LoadFromMemoryCacheDetails {
public:
@@ -16,19 +18,28 @@
const GURL& url,
int pid,
int cert_id,
- net::CertStatus cert_status);
+ net::CertStatus cert_status,
+ std::string http_method,
+ std::string mime_type,
+ ResourceType::Type resource_type);
~LoadFromMemoryCacheDetails();
const GURL& url() const { return url_; }
int pid() const { return pid_; }
int ssl_cert_id() const { return cert_id_; }
net::CertStatus ssl_cert_status() const { return cert_status_; }
+ const std::string& http_method() const { return http_method_; }
+ const std::string& mime_type() const { return mime_type_; }
+ ResourceType::Type resource_type() const { return resource_type_; }
private:
GURL url_;
int pid_;
int cert_id_;
net::CertStatus cert_status_;
+ std::string http_method_;
+ std::string mime_type_;
+ ResourceType::Type resource_type_;
DISALLOW_COPY_AND_ASSIGN(LoadFromMemoryCacheDetails);
};
diff --git a/content/browser/renderer_host/resource_dispatcher_host_impl.cc b/content/browser/renderer_host/resource_dispatcher_host_impl.cc
index 0fbfe14..b7fcc24 100644
--- a/content/browser/renderer_host/resource_dispatcher_host_impl.cc
+++ b/content/browser/renderer_host/resource_dispatcher_host_impl.cc
@@ -1127,6 +1127,7 @@
const GURL& url,
const std::string& security_info,
const std::string& http_method,
+ const std::string& mime_type,
ResourceType::Type resource_type) {
if (!url.is_valid() || !(url.SchemeIs("http") || url.SchemeIs("https")))
return;
diff --git a/content/browser/renderer_host/resource_dispatcher_host_impl.h b/content/browser/renderer_host/resource_dispatcher_host_impl.h
index 0202cf65..803295f6 100644
--- a/content/browser/renderer_host/resource_dispatcher_host_impl.h
+++ b/content/browser/renderer_host/resource_dispatcher_host_impl.h
@@ -180,6 +180,7 @@
void OnDidLoadResourceFromMemoryCache(const GURL& url,
const std::string& security_info,
const std::string& http_method,
+ const std::string& mime_type,
ResourceType::Type resource_type);
// Force cancels any pending requests for the given process.
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
index 063275e..a73713f 100644
--- a/content/browser/web_contents/web_contents_impl.cc
+++ b/content/browser/web_contents/web_contents_impl.cc
@@ -1690,6 +1690,7 @@
const GURL& url,
const std::string& security_info,
const std::string& http_method,
+ const std::string& mime_type,
ResourceType::Type resource_type) {
base::StatsCounter cache("WebKit.CacheHit");
cache.Increment();
@@ -1702,7 +1703,8 @@
content::DeserializeSecurityInfo(security_info, &cert_id, &cert_status,
&security_bits, &connection_status);
LoadFromMemoryCacheDetails details(url, GetRenderProcessHost()->GetID(),
- cert_id, cert_status);
+ cert_id, cert_status, http_method,
+ mime_type, resource_type);
content::NotificationService::current()->Notify(
content::NOTIFICATION_LOAD_FROM_MEMORY_CACHE,
diff --git a/content/browser/web_contents/web_contents_impl.h b/content/browser/web_contents/web_contents_impl.h
index c92899b..cf15cf9 100644
--- a/content/browser/web_contents/web_contents_impl.h
+++ b/content/browser/web_contents/web_contents_impl.h
@@ -453,6 +453,7 @@
void OnDidLoadResourceFromMemoryCache(const GURL& url,
const std::string& security_info,
const std::string& http_request,
+ const std::string& mime_type,
ResourceType::Type resource_type);
void OnDidDisplayInsecureContent();
void OnDidRunInsecureContent(const std::string& security_origin,
diff --git a/content/common/view_messages.h b/content/common/view_messages.h
index 42babd7..d64536b0 100644
--- a/content/common/view_messages.h
+++ b/content/common/view_messages.h
@@ -1435,10 +1435,11 @@
// The security info is non empty if the resource was originally loaded over
// a secure connection.
// Note: May only be sent once per URL per frame per committed load.
-IPC_MESSAGE_ROUTED4(ViewHostMsg_DidLoadResourceFromMemoryCache,
+IPC_MESSAGE_ROUTED5(ViewHostMsg_DidLoadResourceFromMemoryCache,
GURL /* url */,
std::string /* security info */,
std::string /* http method */,
+ std::string /* mime type */,
ResourceType::Type /* resource type */)
// Sent when the renderer displays insecure content in a secure page.
diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc
index 1bb2373..2bb8d166 100644
--- a/content/renderer/render_view_impl.cc
+++ b/content/renderer/render_view_impl.cc
@@ -3323,6 +3323,7 @@
url,
response.securityInfo(),
request.httpMethod().utf8(),
+ response.mimeType().utf8(),
ResourceType::FromTargetType(request.targetType())));
}