Index: trunk/src/content/browser/loader/async_resource_handler.cc |
=================================================================== |
--- trunk/src/content/browser/loader/async_resource_handler.cc (revision 227593) |
+++ trunk/src/content/browser/loader/async_resource_handler.cc (working copy) |
@@ -79,8 +79,8 @@ |
AsyncResourceHandler::AsyncResourceHandler( |
net::URLRequest* request, |
ResourceDispatcherHostImpl* rdh) |
- : ResourceHandler(request), |
- ResourceMessageDelegate(request), |
+ : ResourceMessageDelegate(request), |
+ request_(request), |
rdh_(rdh), |
pending_data_count_(0), |
allocation_size_(0), |
@@ -93,7 +93,7 @@ |
AsyncResourceHandler::~AsyncResourceHandler() { |
if (has_checked_for_sufficient_resources_) |
- rdh_->FinishedWithResourcesForRequest(request()); |
+ rdh_->FinishedWithResourcesForRequest(request_); |
} |
bool AsyncResourceHandler::OnMessageReceived(const IPC::Message& message, |
@@ -111,13 +111,13 @@ |
int request_id, |
bool has_new_first_party_for_cookies, |
const GURL& new_first_party_for_cookies) { |
- if (!request()->status().is_success()) { |
+ if (!request_->status().is_success()) { |
DVLOG(1) << "OnFollowRedirect for invalid request"; |
return; |
} |
if (has_new_first_party_for_cookies) |
- request()->set_first_party_for_cookies(new_first_party_for_cookies); |
+ request_->set_first_party_for_cookies(new_first_party_for_cookies); |
ResumeIfDeferred(); |
} |
@@ -135,10 +135,11 @@ |
bool AsyncResourceHandler::OnUploadProgress(int request_id, |
uint64 position, |
uint64 size) { |
- ResourceMessageFilter* filter = GetFilter(); |
- if (!filter) |
+ const ResourceRequestInfoImpl* info = |
+ ResourceRequestInfoImpl::ForRequest(request_); |
+ if (!info->filter()) |
return false; |
- return filter->Send( |
+ return info->filter()->Send( |
new ResourceMsg_UploadProgress(request_id, position, size)); |
} |
@@ -146,7 +147,8 @@ |
const GURL& new_url, |
ResourceResponse* response, |
bool* defer) { |
- const ResourceRequestInfoImpl* info = GetRequestInfo(); |
+ const ResourceRequestInfoImpl* info = |
+ ResourceRequestInfoImpl::ForRequest(request_); |
if (!info->filter()) |
return false; |
@@ -154,11 +156,11 @@ |
if (rdh_->delegate()) { |
rdh_->delegate()->OnRequestRedirected( |
- new_url, request(), info->GetContext(), response); |
+ new_url, request_, info->GetContext(), response); |
} |
- DevToolsNetLogObserver::PopulateResponseInfo(request(), response); |
- response->head.request_start = request()->creation_time(); |
+ DevToolsNetLogObserver::PopulateResponseInfo(request_, response); |
+ response->head.request_start = request_->creation_time(); |
response->head.response_start = TimeTicks::Now(); |
return info->filter()->Send(new ResourceMsg_ReceivedRedirect( |
request_id, new_url, response->head)); |
@@ -173,22 +175,23 @@ |
// request commits, avoiding the possibility of e.g. zooming the old content |
// or of having to layout the new content twice. |
- const ResourceRequestInfoImpl* info = GetRequestInfo(); |
+ const ResourceRequestInfoImpl* info = |
+ ResourceRequestInfoImpl::ForRequest(request_); |
if (!info->filter()) |
return false; |
if (rdh_->delegate()) { |
rdh_->delegate()->OnResponseStarted( |
- request(), info->GetContext(), response, info->filter()); |
+ request_, info->GetContext(), response, info->filter()); |
} |
- DevToolsNetLogObserver::PopulateResponseInfo(request(), response); |
+ DevToolsNetLogObserver::PopulateResponseInfo(request_, response); |
HostZoomMap* host_zoom_map = |
GetHostZoomMapForResourceContext(info->GetContext()); |
if (info->GetResourceType() == ResourceType::MAIN_FRAME && host_zoom_map) { |
- const GURL& request_url = request()->url(); |
+ const GURL& request_url = request_->url(); |
info->filter()->Send(new ViewMsg_SetZoomLevelForLoadingURL( |
info->GetRouteID(), |
request_url, host_zoom_map->GetZoomLevelForHostAndScheme( |
@@ -196,16 +199,16 @@ |
net::GetHostOrSpecFromURL(request_url)))); |
} |
- response->head.request_start = request()->creation_time(); |
+ response->head.request_start = request_->creation_time(); |
response->head.response_start = TimeTicks::Now(); |
info->filter()->Send(new ResourceMsg_ReceivedResponse(request_id, |
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()); |
+ 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(request_id, |
copy)); |
} |
@@ -219,10 +222,8 @@ |
return true; |
} |
-bool AsyncResourceHandler::OnWillRead(int request_id, |
- scoped_refptr<net::IOBuffer>* buf, |
- int* buf_size, |
- int min_size) { |
+bool AsyncResourceHandler::OnWillRead(int request_id, net::IOBuffer** buf, |
+ int* buf_size, int min_size) { |
DCHECK_EQ(-1, min_size); |
if (!EnsureResourceBufferIsInitialized()) |
@@ -246,8 +247,9 @@ |
if (!bytes_read) |
return true; |
- ResourceMessageFilter* filter = GetFilter(); |
- if (!filter) |
+ const ResourceRequestInfoImpl* info = |
+ ResourceRequestInfoImpl::ForRequest(request_); |
+ if (!info->filter()) |
return false; |
buffer_->ShrinkLastAllocation(bytes_read); |
@@ -262,18 +264,18 @@ |
if (!sent_first_data_msg_) { |
base::SharedMemoryHandle handle; |
int size; |
- if (!buffer_->ShareToProcess(filter->PeerHandle(), &handle, &size)) |
+ if (!buffer_->ShareToProcess(info->filter()->PeerHandle(), &handle, &size)) |
return false; |
- filter->Send(new ResourceMsg_SetDataBuffer( |
- request_id, handle, size, filter->peer_pid())); |
+ info->filter()->Send(new ResourceMsg_SetDataBuffer( |
+ request_id, handle, size, info->filter()->peer_pid())); |
sent_first_data_msg_ = true; |
} |
int data_offset = buffer_->GetLastAllocationOffset(); |
int encoded_data_length = |
- DevToolsNetLogObserver::GetAndResetEncodedDataLength(request()); |
+ DevToolsNetLogObserver::GetAndResetEncodedDataLength(request_); |
- filter->Send(new ResourceMsg_DataReceived( |
+ info->filter()->Send(new ResourceMsg_DataReceived( |
request_id, data_offset, bytes_read, encoded_data_length)); |
++pending_data_count_; |
UMA_HISTOGRAM_CUSTOM_COUNTS( |
@@ -293,11 +295,12 @@ |
void AsyncResourceHandler::OnDataDownloaded( |
int request_id, int bytes_downloaded) { |
int encoded_data_length = |
- DevToolsNetLogObserver::GetAndResetEncodedDataLength(request()); |
+ DevToolsNetLogObserver::GetAndResetEncodedDataLength(request_); |
- ResourceMessageFilter* filter = GetFilter(); |
- if (filter) { |
- filter->Send(new ResourceMsg_DataDownloaded( |
+ const ResourceRequestInfoImpl* info = |
+ ResourceRequestInfoImpl::ForRequest(request_); |
+ if (info->filter()) { |
+ info->filter()->Send(new ResourceMsg_DataDownloaded( |
request_id, bytes_downloaded, encoded_data_length)); |
} |
} |
@@ -306,14 +309,15 @@ |
int request_id, |
const net::URLRequestStatus& status, |
const std::string& security_info) { |
- const ResourceRequestInfoImpl* info = GetRequestInfo(); |
+ const ResourceRequestInfoImpl* info = |
+ ResourceRequestInfoImpl::ForRequest(request_); |
if (!info->filter()) |
return false; |
// If we crash here, figure out what URL the renderer was requesting. |
// http://crbug.com/107692 |
char url_buf[128]; |
- base::strlcpy(url_buf, request()->url().spec().c_str(), arraysize(url_buf)); |
+ base::strlcpy(url_buf, request_->url().spec().c_str(), arraysize(url_buf)); |
base::debug::Alias(url_buf); |
// TODO(gavinp): Remove this CHECK when we figure out the cause of |
@@ -327,7 +331,8 @@ |
TimeTicks completion_time = TimeTicks::Now(); |
int error_code = status.error(); |
- bool was_ignored_by_handler = info->WasIgnoredByHandler(); |
+ bool was_ignored_by_handler = |
+ ResourceRequestInfoImpl::ForRequest(request_)->WasIgnoredByHandler(); |
DCHECK(status.status() != net::URLRequestStatus::IO_PENDING); |
// If this check fails, then we're in an inconsistent state because all |
@@ -360,7 +365,7 @@ |
if (!has_checked_for_sufficient_resources_) { |
has_checked_for_sufficient_resources_ = true; |
- if (!rdh_->HasSufficientResourcesForRequest(request())) { |
+ if (!rdh_->HasSufficientResourcesForRequest(request_)) { |
controller()->CancelWithError(net::ERR_INSUFFICIENT_RESOURCES); |
return false; |
} |