diff options
author | creis@chromium.org <creis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-09-25 22:05:14 +0000 |
---|---|---|
committer | creis@chromium.org <creis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-09-25 22:05:14 +0000 |
commit | 1f291cd57a56e70369dc2e47e3d4be6102254102 (patch) | |
tree | 39f02a836e501f01967e46917303af0fbe785ae0 /content/browser/download/download_resource_handler.cc | |
parent | 0cb485cc68f91d337534372ebfd5d3a6b24ce7c3 (diff) | |
download | chromium_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.cc | 26 |
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() { |