summaryrefslogtreecommitdiffstats
path: root/content/browser/download/download_resource_handler.cc
diff options
context:
space:
mode:
authorcreis@chromium.org <creis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-09-25 22:05:14 +0000
committercreis@chromium.org <creis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-09-25 22:05:14 +0000
commit1f291cd57a56e70369dc2e47e3d4be6102254102 (patch)
tree39f02a836e501f01967e46917303af0fbe785ae0 /content/browser/download/download_resource_handler.cc
parent0cb485cc68f91d337534372ebfd5d3a6b24ce7c3 (diff)
downloadchromium_src-1f291cd57a56e70369dc2e47e3d4be6102254102.zip
chromium_src-1f291cd57a56e70369dc2e47e3d4be6102254102.tar.gz
chromium_src-1f291cd57a56e70369dc2e47e3d4be6102254102.tar.bz2
Make ResourceHandlers stateless with respect to child/routing/request IDs.
This lets us transfer an existing handler chain to a new process. BUG=238331 TEST=Follow a link that redirects to the Chrome Web Store. R=ajwong@chromium.org, darin@chromium.org, mpcomplete@chromium.org Review URL: https://codereview.chromium.org/23180005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@225263 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/browser/download/download_resource_handler.cc')
-rw-r--r--content/browser/download/download_resource_handler.cc26
1 files changed, 12 insertions, 14 deletions
diff --git a/content/browser/download/download_resource_handler.cc b/content/browser/download/download_resource_handler.cc
index ed4edff..6fae0c7 100644
--- a/content/browser/download/download_resource_handler.cc
+++ b/content/browser/download/download_resource_handler.cc
@@ -75,7 +75,6 @@ DownloadResourceHandler::DownloadResourceHandler(
const DownloadUrlParameters::OnStartedCallback& started_cb,
scoped_ptr<DownloadSaveInfo> save_info)
: download_id_(id),
- render_view_id_(0), // Actually initialized below.
content_length_(0),
request_(request),
started_cb_(started_cb),
@@ -85,10 +84,6 @@ DownloadResourceHandler::DownloadResourceHandler(
pause_count_(0),
was_deferred_(false),
on_response_started_called_(false) {
- ResourceRequestInfoImpl* info(ResourceRequestInfoImpl::ForRequest(request));
- global_id_ = info->GetGlobalRequestID();
- render_view_id_ = info->GetRouteID();
-
RecordDownloadCount(UNTHROTTLED_COUNT);
}
@@ -167,8 +162,9 @@ bool DownloadResourceHandler::OnResponseStarted(
RecordDownloadContentDisposition(info->content_disposition);
info->request_handle =
- DownloadRequestHandle(AsWeakPtr(), global_id_.child_id,
- render_view_id_, global_id_.request_id);
+ DownloadRequestHandle(AsWeakPtr(), request_info->GetChildID(),
+ request_info->GetRouteID(),
+ request_info->GetRequestID());
// Get the last modified time and etag.
const net::HttpResponseHeaders* headers = request_->response_headers();
@@ -451,27 +447,29 @@ void DownloadResourceHandler::ResumeRequest() {
void DownloadResourceHandler::CancelRequest() {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
+ const ResourceRequestInfo* info = ResourceRequestInfo::ForRequest(request_);
ResourceDispatcherHostImpl::Get()->CancelRequest(
- global_id_.child_id,
- global_id_.request_id,
+ info->GetChildID(),
+ info->GetRequestID(),
false);
}
std::string DownloadResourceHandler::DebugString() const {
+ const ResourceRequestInfo* info = ResourceRequestInfo::ForRequest(request_);
return base::StringPrintf("{"
" url_ = " "\"%s\""
- " global_id_ = {"
+ " info = {"
" child_id = " "%d"
" request_id = " "%d"
+ " route_id = " "%d"
" }"
- " render_view_id_ = " "%d"
" }",
request_ ?
request_->url().spec().c_str() :
"<NULL request>",
- global_id_.child_id,
- global_id_.request_id,
- render_view_id_);
+ info->GetChildID(),
+ info->GetRequestID(),
+ info->GetRouteID());
}
DownloadResourceHandler::~DownloadResourceHandler() {