| 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())
|
|
|