Index: content/browser/loader/async_resource_handler.cc |
diff --git a/content/browser/loader/async_resource_handler.cc b/content/browser/loader/async_resource_handler.cc |
index 2c5badcd5e11c2ca7f1a71ae40b66e60ddf8f82b..4e1a0314324144deb0f9af4643bbf6c484dcc211 100644 |
--- a/content/browser/loader/async_resource_handler.cc |
+++ b/content/browser/loader/async_resource_handler.cc |
@@ -20,11 +20,11 @@ |
#include "content/browser/loader/netlog_observer.h" |
#include "content/browser/loader/resource_buffer.h" |
#include "content/browser/loader/resource_dispatcher_host_impl.h" |
-#include "content/browser/loader/resource_message_filter.h" |
#include "content/browser/loader/resource_request_info_impl.h" |
#include "content/common/resource_messages.h" |
#include "content/common/resource_request_completion_status.h" |
#include "content/common/view_messages.h" |
+#include "content/public/browser/browser_message_filter.h" |
#include "content/public/browser/resource_dispatcher_host_delegate.h" |
#include "content/public/common/content_features.h" |
#include "content/public/common/resource_response.h" |
@@ -216,6 +216,7 @@ AsyncResourceHandler::AsyncResourceHandler( |
waiting_for_upload_progress_ack_(false), |
reported_transfer_size_(0), |
reported_encoded_body_length_(0) { |
+ DCHECK(GetRequestInfo()->requester_info().IsRenderer()); |
InitializeResourceBufferConstants(); |
} |
@@ -260,6 +261,7 @@ void AsyncResourceHandler::OnUploadProgressACK(int request_id) { |
void AsyncResourceHandler::ReportUploadProgress() { |
DCHECK(GetRequestInfo()->is_upload_progress_enabled()); |
+ DCHECK(GetRequestInfo()->requester_info().IsRenderer()); |
if (waiting_for_upload_progress_ack_) |
return; // Send one progress event at a time. |
@@ -282,7 +284,7 @@ void AsyncResourceHandler::ReportUploadProgress() { |
bool too_much_time_passed = time_since_last > kOneSecond; |
if (is_finished || enough_new_progress || too_much_time_passed) { |
- ResourceMessageFilter* filter = GetFilter(); |
+ BrowserMessageFilter* filter = GetFilter(); |
if (filter) { |
filter->Send( |
new ResourceMsg_UploadProgress(GetRequestID(), |
@@ -299,8 +301,9 @@ bool AsyncResourceHandler::OnRequestRedirected( |
const net::RedirectInfo& redirect_info, |
ResourceResponse* response, |
bool* defer) { |
- const ResourceRequestInfoImpl* info = GetRequestInfo(); |
- if (!info->filter()) |
+ DCHECK(GetRequestInfo()->requester_info().IsRenderer()); |
+ BrowserMessageFilter* filter = GetFilter(); |
+ if (!filter) |
return false; |
*defer = did_defer_ = true; |
@@ -315,12 +318,13 @@ bool AsyncResourceHandler::OnRequestRedirected( |
// cookies? The only case where it can change is top-level navigation requests |
// and hopefully those will eventually all be owned by the browser. It's |
// possible this is still needed while renderer-owned ones exist. |
- return info->filter()->Send(new ResourceMsg_ReceivedRedirect( |
+ return filter->Send(new ResourceMsg_ReceivedRedirect( |
GetRequestID(), redirect_info, response->head)); |
} |
bool AsyncResourceHandler::OnResponseStarted(ResourceResponse* response, |
bool* defer) { |
+ DCHECK(GetRequestInfo()->requester_info().IsRenderer()); |
// For changes to the main frame, inform the renderer of the new URL's |
// per-host settings before the request actually commits. This way the |
// renderer will be able to set these precisely at the time the |
@@ -331,7 +335,8 @@ bool AsyncResourceHandler::OnResponseStarted(ResourceResponse* response, |
progress_timer_.Stop(); |
const ResourceRequestInfoImpl* info = GetRequestInfo(); |
- if (!info->filter()) |
+ BrowserMessageFilter* filter = GetFilter(); |
+ if (!filter) |
return false; |
// We want to send a final upload progress message prior to sending the |
@@ -360,16 +365,15 @@ bool AsyncResourceHandler::OnResponseStarted(ResourceResponse* response, |
response->head.request_start = request()->creation_time(); |
response->head.response_start = TimeTicks::Now(); |
- info->filter()->Send(new ResourceMsg_ReceivedResponse(GetRequestID(), |
- response->head)); |
+ filter->Send( |
+ new ResourceMsg_ReceivedResponse(GetRequestID(), response->head)); |
sent_received_response_msg_ = true; |
if (request()->response_info().metadata.get()) { |
std::vector<char> copy(request()->response_info().metadata->data(), |
request()->response_info().metadata->data() + |
request()->response_info().metadata->size()); |
- info->filter()->Send(new ResourceMsg_ReceivedCachedMetadata(GetRequestID(), |
- copy)); |
+ filter->Send(new ResourceMsg_ReceivedCachedMetadata(GetRequestID(), copy)); |
} |
inlining_helper_->OnResponseReceived(*response); |
@@ -377,6 +381,7 @@ bool AsyncResourceHandler::OnResponseStarted(ResourceResponse* response, |
} |
bool AsyncResourceHandler::OnWillStart(const GURL& url, bool* defer) { |
+ DCHECK(GetRequestInfo()->requester_info().IsRenderer()); |
if (GetRequestInfo()->is_upload_progress_enabled() && |
request()->has_upload()) { |
ReportUploadProgress(); |
@@ -392,6 +397,7 @@ bool AsyncResourceHandler::OnWillStart(const GURL& url, bool* defer) { |
bool AsyncResourceHandler::OnWillRead(scoped_refptr<net::IOBuffer>* buf, |
int* buf_size, |
int min_size) { |
+ DCHECK(GetRequestInfo()->requester_info().IsRenderer()); |
DCHECK_EQ(-1, min_size); |
if (!CheckForSufficientResource()) |
@@ -416,12 +422,13 @@ bool AsyncResourceHandler::OnWillRead(scoped_refptr<net::IOBuffer>* buf, |
} |
bool AsyncResourceHandler::OnReadCompleted(int bytes_read, bool* defer) { |
+ DCHECK(GetRequestInfo()->requester_info().IsRenderer()); |
DCHECK_GE(bytes_read, 0); |
if (!bytes_read) |
return true; |
- ResourceMessageFilter* filter = GetFilter(); |
+ BrowserMessageFilter* filter = GetFilter(); |
if (!filter) |
return false; |
@@ -467,9 +474,10 @@ bool AsyncResourceHandler::OnReadCompleted(int bytes_read, bool* defer) { |
} |
void AsyncResourceHandler::OnDataDownloaded(int bytes_downloaded) { |
+ DCHECK(GetRequestInfo()->requester_info().IsRenderer()); |
int encoded_data_length = CalculateEncodedDataLengthToReport(); |
- ResourceMessageFilter* filter = GetFilter(); |
+ BrowserMessageFilter* filter = GetFilter(); |
if (filter) { |
filter->Send(new ResourceMsg_DataDownloaded( |
GetRequestID(), bytes_downloaded, encoded_data_length)); |
@@ -479,8 +487,10 @@ void AsyncResourceHandler::OnDataDownloaded(int bytes_downloaded) { |
void AsyncResourceHandler::OnResponseCompleted( |
const net::URLRequestStatus& status, |
bool* defer) { |
+ DCHECK(GetRequestInfo()->requester_info().IsRenderer()); |
const ResourceRequestInfoImpl* info = GetRequestInfo(); |
- if (!info->filter()) |
+ BrowserMessageFilter* filter = GetFilter(); |
+ if (!filter) |
return; |
// If we crash here, figure out what URL the renderer was requesting. |
@@ -513,7 +523,7 @@ void AsyncResourceHandler::OnResponseCompleted( |
request_complete_data.completion_time = TimeTicks::Now(); |
request_complete_data.encoded_data_length = |
request()->GetTotalReceivedBytes(); |
- info->filter()->Send( |
+ filter->Send( |
new ResourceMsg_RequestComplete(GetRequestID(), request_complete_data)); |
if (status.is_success()) |