summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--base/memory/ref_counted.h4
-rw-r--r--chrome/browser/net/load_timing_observer.cc6
-rw-r--r--content/browser/debugger/devtools_netlog_observer.cc2
-rw-r--r--content/browser/download/download_resource_handler.cc15
-rw-r--r--content/browser/renderer_host/async_resource_handler.cc12
-rw-r--r--content/browser/renderer_host/buffered_resource_handler.cc18
-rw-r--r--content/browser/renderer_host/cross_site_resource_handler.cc3
-rw-r--r--content/browser/renderer_host/redirect_to_file_resource_handler.cc4
-rw-r--r--content/browser/renderer_host/resource_loader.cc31
-rw-r--r--content/browser/renderer_host/sync_resource_handler.cc20
-rw-r--r--content/browser/renderer_host/x509_user_cert_resource_handler.cc2
-rw-r--r--content/public/common/resource_response.h9
12 files changed, 66 insertions, 60 deletions
diff --git a/base/memory/ref_counted.h b/base/memory/ref_counted.h
index 64615f1..858ed2b 100644
--- a/base/memory/ref_counted.h
+++ b/base/memory/ref_counted.h
@@ -164,6 +164,10 @@ class RefCountedData : public base::RefCounted< base::RefCountedData<T> > {
RefCountedData(const T& in_value) : data(in_value) {}
T data;
+
+ private:
+ friend class base::RefCounted<base::RefCountedData<T> >;
+ ~RefCountedData() {}
};
} // namespace base
diff --git a/chrome/browser/net/load_timing_observer.cc b/chrome/browser/net/load_timing_observer.cc
index e50fb05..3eb1ad8 100644
--- a/chrome/browser/net/load_timing_observer.cc
+++ b/chrome/browser/net/load_timing_observer.cc
@@ -115,9 +115,9 @@ void LoadTimingObserver::PopulateTimingInfo(
LoadTimingObserver::URLRequestRecord* record =
observer->GetURLRequestRecord(source_id);
if (record) {
- response->connection_id = record->socket_log_id;
- response->connection_reused = record->socket_reused;
- response->load_timing = record->timing;
+ response->head.connection_id = record->socket_log_id;
+ response->head.connection_reused = record->socket_reused;
+ response->head.load_timing = record->timing;
}
}
diff --git a/content/browser/debugger/devtools_netlog_observer.cc b/content/browser/debugger/devtools_netlog_observer.cc
index 31fb9d7..f48e22c 100644
--- a/content/browser/debugger/devtools_netlog_observer.cc
+++ b/content/browser/debugger/devtools_netlog_observer.cc
@@ -280,7 +280,7 @@ void DevToolsNetLogObserver::PopulateResponseInfo(
DevToolsNetLogObserver::GetInstance();
if (dev_tools_net_log_observer == NULL)
return;
- response->devtools_info =
+ response->head.devtools_info =
dev_tools_net_log_observer->GetResourceInfo(source_id);
}
diff --git a/content/browser/download/download_resource_handler.cc b/content/browser/download/download_resource_handler.cc
index 2e4f6f0..eda416f 100644
--- a/content/browser/download/download_resource_handler.cc
+++ b/content/browser/download/download_resource_handler.cc
@@ -136,7 +136,7 @@ bool DownloadResourceHandler::OnResponseStarted(
request_->GetResponseHeaderByName("content-disposition",
&content_disposition);
SetContentDisposition(content_disposition);
- SetContentLength(response->content_length);
+ SetContentLength(response->head.content_length);
const ResourceRequestInfoImpl* request_info =
ResourceRequestInfoImpl::ForRequest(request_);
@@ -164,7 +164,7 @@ bool DownloadResourceHandler::OnResponseStarted(
info->state = DownloadItem::IN_PROGRESS;
info->has_user_gesture = request_info->HasUserGesture();
info->content_disposition = content_disposition_;
- info->mime_type = response->mime_type;
+ info->mime_type = response->head.mime_type;
info->remote_address = request_->GetSocketAddress().host();
download_stats::RecordDownloadMimeType(info->mime_type);
@@ -184,15 +184,14 @@ bool DownloadResourceHandler::OnResponseStarted(
}
std::string content_type_header;
- if (!response->headers ||
- !response->headers->GetMimeType(&content_type_header))
+ if (!response->head.headers ||
+ !response->head.headers->GetMimeType(&content_type_header))
content_type_header = "";
info->original_mime_type = content_type_header;
- if (!response->headers ||
- !response->headers->EnumerateHeader(NULL,
- "Accept-Ranges",
- &accept_ranges_)) {
+ if (!response->head.headers ||
+ !response->head.headers->EnumerateHeader(
+ NULL, "Accept-Ranges", &accept_ranges_)) {
accept_ranges_ = "";
}
diff --git a/content/browser/renderer_host/async_resource_handler.cc b/content/browser/renderer_host/async_resource_handler.cc
index 8177a5a..e37724d 100644
--- a/content/browser/renderer_host/async_resource_handler.cc
+++ b/content/browser/renderer_host/async_resource_handler.cc
@@ -148,10 +148,10 @@ bool AsyncResourceHandler::OnRequestRedirected(int request_id,
rdh_->delegate()->OnRequestRedirected(request_, response);
DevToolsNetLogObserver::PopulateResponseInfo(request_, response);
- response->request_start = request_->creation_time();
- response->response_start = TimeTicks::Now();
+ response->head.request_start = request_->creation_time();
+ response->head.response_start = TimeTicks::Now();
return filter_->Send(new ResourceMsg_ReceivedRedirect(
- routing_id_, request_id, new_url, *response));
+ routing_id_, request_id, new_url, response->head));
}
bool AsyncResourceHandler::OnResponseStarted(int request_id,
@@ -181,10 +181,10 @@ bool AsyncResourceHandler::OnResponseStarted(int request_id,
request_url))));
}
- response->request_start = request_->creation_time();
- response->response_start = TimeTicks::Now();
+ response->head.request_start = request_->creation_time();
+ response->head.response_start = TimeTicks::Now();
filter_->Send(new ResourceMsg_ReceivedResponse(
- routing_id_, request_id, *response));
+ routing_id_, request_id, response->head));
if (request_->response_info().metadata) {
std::vector<char> copy(request_->response_info().metadata->data(),
diff --git a/content/browser/renderer_host/buffered_resource_handler.cc b/content/browser/renderer_host/buffered_resource_handler.cc
index 11db2df..fab935b 100644
--- a/content/browser/renderer_host/buffered_resource_handler.cc
+++ b/content/browser/renderer_host/buffered_resource_handler.cc
@@ -164,7 +164,8 @@ bool BufferedResourceHandler::DelayResponse() {
const bool sniffing_blocked =
LowerCaseEqualsASCII(content_type_options, "nosniff");
const bool not_modified_status =
- response_->headers && response_->headers->response_code() == 304;
+ (response_->head.headers &&
+ response_->head.headers->response_code() == 304);
const bool we_would_like_to_sniff = not_modified_status ?
false : net::ShouldSniffMimeType(request_->url(), mime_type);
@@ -184,7 +185,7 @@ bool BufferedResourceHandler::DelayResponse() {
// mime type. What's a browser to do? Turns out, we're supposed to treat
// the response as "text/plain". This is the most secure option.
mime_type.assign("text/plain");
- response_->mime_type.assign(mime_type);
+ response_->head.mime_type.assign(mime_type);
}
if (!not_modified_status && ShouldWaitForPlugins()) {
@@ -231,7 +232,7 @@ bool BufferedResourceHandler::KeepBuffering(int bytes_read) {
}
}
sniff_content_ = false;
- response_->mime_type.assign(new_type);
+ response_->head.mime_type.assign(new_type);
// We just sniffed the mime type, maybe there is a doctype to process.
if (ShouldWaitForPlugins())
@@ -260,8 +261,8 @@ bool BufferedResourceHandler::CompleteResponseStarted(int request_id,
// are doing it for an X.509 client certificates.
// TODO(darin): This does not belong here!
- if (response_->headers && // Can be NULL if FTP.
- response_->headers->response_code() / 100 != 2) {
+ if (response_->head.headers && // Can be NULL if FTP.
+ response_->head.headers->response_code() / 100 != 2) {
// The response code indicates that this is an error page, but we are
// expecting an X.509 user certificate. We follow Firefox here and show
// our own error page instead of handling the error page as a
@@ -282,9 +283,8 @@ bool BufferedResourceHandler::CompleteResponseStarted(int request_id,
if (info->allow_download() && ShouldDownload(NULL)) {
// Forward the data to the download thread.
-
- if (response_->headers && // Can be NULL if FTP.
- response_->headers->response_code() / 100 != 2) {
+ if (response_->head.headers && // Can be NULL if FTP.
+ response_->head.headers->response_code() / 100 != 2) {
// The response code indicates that this is an error page, but we don't
// know how to display the content. We follow Firefox here and show our
// own error page instead of triggering a download.
@@ -328,7 +328,7 @@ bool BufferedResourceHandler::ShouldWaitForPlugins() {
bool BufferedResourceHandler::ShouldDownload(bool* need_plugin_list) {
if (need_plugin_list)
*need_plugin_list = false;
- std::string type = StringToLowerASCII(response_->mime_type);
+ std::string type = StringToLowerASCII(response_->head.mime_type);
// First, examine Content-Disposition.
std::string disposition;
diff --git a/content/browser/renderer_host/cross_site_resource_handler.cc b/content/browser/renderer_host/cross_site_resource_handler.cc
index 7527401..9073f6e 100644
--- a/content/browser/renderer_host/cross_site_resource_handler.cc
+++ b/content/browser/renderer_host/cross_site_resource_handler.cc
@@ -92,7 +92,8 @@ bool CrossSiteResourceHandler::OnResponseStarted(
// cross-site navigation, since we are unable to tell when to destroy it.
// See RenderViewHostManager::RendererAbortedProvisionalLoad.
if (info->is_download() ||
- (response->headers && response->headers->response_code() == 204)) {
+ (response->head.headers &&
+ response->head.headers->response_code() == 204)) {
return next_handler_->OnResponseStarted(request_id, response, defer);
}
diff --git a/content/browser/renderer_host/redirect_to_file_resource_handler.cc b/content/browser/renderer_host/redirect_to_file_resource_handler.cc
index c1cf187..78a5933 100644
--- a/content/browser/renderer_host/redirect_to_file_resource_handler.cc
+++ b/content/browser/renderer_host/redirect_to_file_resource_handler.cc
@@ -60,9 +60,9 @@ bool RedirectToFileResourceHandler::OnResponseStarted(
int request_id,
ResourceResponse* response,
bool* defer) {
- if (response->status.is_success()) {
+ if (response->head.status.is_success()) {
DCHECK(deletable_file_ && !deletable_file_->path().empty());
- response->download_file_path = deletable_file_->path();
+ response->head.download_file_path = deletable_file_->path();
}
return next_handler_->OnResponseStarted(request_id, response, defer);
}
diff --git a/content/browser/renderer_host/resource_loader.cc b/content/browser/renderer_host/resource_loader.cc
index a1baea5..be923ca 100644
--- a/content/browser/renderer_host/resource_loader.cc
+++ b/content/browser/renderer_host/resource_loader.cc
@@ -28,23 +28,24 @@ namespace {
void PopulateResourceResponse(net::URLRequest* request,
ResourceResponse* response) {
- response->status = request->status();
- response->request_time = request->request_time();
- response->response_time = request->response_time();
- response->headers = request->response_headers();
- request->GetCharset(&response->charset);
- response->content_length = request->GetExpectedContentSize();
- request->GetMimeType(&response->mime_type);
+ response->head.status = request->status();
+ response->head.request_time = request->request_time();
+ response->head.response_time = request->response_time();
+ response->head.headers = request->response_headers();
+ request->GetCharset(&response->head.charset);
+ response->head.content_length = request->GetExpectedContentSize();
+ request->GetMimeType(&response->head.mime_type);
net::HttpResponseInfo response_info = request->response_info();
- response->was_fetched_via_spdy = response_info.was_fetched_via_spdy;
- response->was_npn_negotiated = response_info.was_npn_negotiated;
- response->npn_negotiated_protocol = response_info.npn_negotiated_protocol;
- response->was_fetched_via_proxy = request->was_fetched_via_proxy();
- response->socket_address = request->GetSocketAddress();
+ response->head.was_fetched_via_spdy = response_info.was_fetched_via_spdy;
+ response->head.was_npn_negotiated = response_info.was_npn_negotiated;
+ response->head.npn_negotiated_protocol =
+ response_info.npn_negotiated_protocol;
+ response->head.was_fetched_via_proxy = request->was_fetched_via_proxy();
+ response->head.socket_address = request->GetSocketAddress();
appcache::AppCacheInterceptor::GetExtraResponseInfo(
request,
- &response->appcache_id,
- &response->appcache_manifest_url);
+ &response->head.appcache_id,
+ &response->head.appcache_manifest_url);
}
} // namespace
@@ -491,7 +492,7 @@ bool ResourceLoader::CompleteResponseStarted() {
int cert_id =
CertStore::GetInstance()->StoreCert(request_->ssl_info().cert,
info->GetChildID());
- response->security_info = SerializeSecurityInfo(
+ response->head.security_info = SerializeSecurityInfo(
cert_id,
request_->ssl_info().cert_status,
request_->ssl_info().security_bits,
diff --git a/content/browser/renderer_host/sync_resource_handler.cc b/content/browser/renderer_host/sync_resource_handler.cc
index 90a098e..4b77096 100644
--- a/content/browser/renderer_host/sync_resource_handler.cc
+++ b/content/browser/renderer_host/sync_resource_handler.cc
@@ -72,16 +72,16 @@ bool SyncResourceHandler::OnResponseStarted(
DevToolsNetLogObserver::PopulateResponseInfo(request_, response);
// We don't care about copying the status here.
- result_.headers = response->headers;
- result_.mime_type = response->mime_type;
- result_.charset = response->charset;
- result_.download_file_path = response->download_file_path;
- result_.request_time = response->request_time;
- result_.response_time = response->response_time;
- result_.connection_id = response->connection_id;
- result_.connection_reused = response->connection_reused;
- result_.load_timing = response->load_timing;
- result_.devtools_info = response->devtools_info;
+ result_.headers = response->head.headers;
+ result_.mime_type = response->head.mime_type;
+ result_.charset = response->head.charset;
+ result_.download_file_path = response->head.download_file_path;
+ result_.request_time = response->head.request_time;
+ result_.response_time = response->head.response_time;
+ result_.connection_id = response->head.connection_id;
+ result_.connection_reused = response->head.connection_reused;
+ result_.load_timing = response->head.load_timing;
+ result_.devtools_info = response->head.devtools_info;
return true;
}
diff --git a/content/browser/renderer_host/x509_user_cert_resource_handler.cc b/content/browser/renderer_host/x509_user_cert_resource_handler.cc
index f66fdb6..5132f97 100644
--- a/content/browser/renderer_host/x509_user_cert_resource_handler.cc
+++ b/content/browser/renderer_host/x509_user_cert_resource_handler.cc
@@ -50,7 +50,7 @@ bool X509UserCertResourceHandler::OnRequestRedirected(int request_id,
bool X509UserCertResourceHandler::OnResponseStarted(int request_id,
ResourceResponse* resp,
bool* defer) {
- return (resp->mime_type == "application/x-x509-user-cert");
+ return (resp->head.mime_type == "application/x-x509-user-cert");
}
bool X509UserCertResourceHandler::OnWillStart(int request_id,
diff --git a/content/public/common/resource_response.h b/content/public/common/resource_response.h
index 9a8e3a8..b6c4eaa 100644
--- a/content/public/common/resource_response.h
+++ b/content/public/common/resource_response.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.
@@ -39,13 +39,14 @@ struct SyncLoadResult : ResourceResponseHead {
};
// Simple wrapper that refcounts ResourceResponseHead.
+// Inherited, rather than typedef'd, to allow forward declarations.
struct CONTENT_EXPORT ResourceResponse
- : public NON_EXPORTED_BASE(ResourceResponseHead),
- public base::RefCounted<ResourceResponse> {
+ : public base::RefCounted<ResourceResponse> {
+ public:
+ ResourceResponseHead head;
private:
friend class base::RefCounted<ResourceResponse>;
-
~ResourceResponse() {}
};