Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4172)

Unified Diff: content/browser/renderer_host/resource_dispatcher_host.cc

Issue 7847027: DownloadId (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: merge Created 9 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/browser/renderer_host/resource_dispatcher_host.cc
diff --git a/content/browser/renderer_host/resource_dispatcher_host.cc b/content/browser/renderer_host/resource_dispatcher_host.cc
index 381378582d08afc9f4ecc86f0e5dc3b05700b7d5..064bc0cef2bca9c134a54c8dfb27b8d804fbeee1 100644
--- a/content/browser/renderer_host/resource_dispatcher_host.cc
+++ b/content/browser/renderer_host/resource_dispatcher_host.cc
@@ -33,7 +33,6 @@
#include "content/browser/download/save_file_resource_handler.h"
#include "content/browser/in_process_webkit/webkit_thread.h"
#include "content/browser/plugin_service.h"
-#include "content/browser/resource_context.h"
#include "content/browser/renderer_host/async_resource_handler.h"
#include "content/browser/renderer_host/buffered_resource_handler.h"
#include "content/browser/renderer_host/cross_site_resource_handler.h"
@@ -49,6 +48,7 @@
#include "content/browser/renderer_host/resource_queue.h"
#include "content/browser/renderer_host/resource_request_details.h"
#include "content/browser/renderer_host/sync_resource_handler.h"
+#include "content/browser/resource_context.h"
#include "content/browser/ssl/ssl_client_auth_handler.h"
#include "content/browser/ssl/ssl_manager.h"
#include "content/browser/worker_host/worker_service.h"
@@ -801,18 +801,22 @@ void ResourceDispatcherHost::BeginDownload(
int child_id,
int route_id,
const content::ResourceContext& context) {
- static const int kInvalidDownloadId = -1;
scoped_ptr<net::URLRequest> delete_request(request);
// If DownloadResourceHandler is not begun, then started_cb must be called
// here in order to satisfy its semantics.
if (is_shutdown_) {
if (!started_cb.is_null())
- started_cb.Run(kInvalidDownloadId, net::ERR_INSUFFICIENT_RESOURCES);
+ started_cb.Run(DownloadId::Invalid(), net::ERR_INSUFFICIENT_RESOURCES);
// Time and RDH are resources that are running out.
return;
}
const GURL& url = request->original_url();
+ const net::URLRequestContext* request_context = context.request_context();
request->set_referrer(MaybeStripReferrer(GURL(request->referrer())).spec());
+ request->set_method("GET");
+ request->set_context(request_context);
+ request->set_load_flags(request->load_flags() |
+ net::LOAD_IS_DOWNLOAD);
// Check if the renderer is permitted to request the requested URL.
if (!ChildProcessSecurityPolicy::GetInstance()->
@@ -820,18 +824,21 @@ void ResourceDispatcherHost::BeginDownload(
VLOG(1) << "Denied unauthorized download request for "
<< url.possibly_invalid_spec();
if (!started_cb.is_null())
- started_cb.Run(kInvalidDownloadId, net::ERR_ACCESS_DENIED);
+ started_cb.Run(DownloadId::Invalid(), net::ERR_ACCESS_DENIED);
return;
}
request_id_--;
+ DownloadId dl_id = context.next_download_id_thunk().Run();
+
scoped_refptr<ResourceHandler> handler(
new DownloadResourceHandler(this,
child_id,
route_id,
request_id_,
url,
+ dl_id,
download_file_manager_.get(),
request,
prompt_for_save_location,
@@ -844,19 +851,14 @@ void ResourceDispatcherHost::BeginDownload(
false);
}
- const net::URLRequestContext* request_context = context.request_context();
if (!request_context->job_factory()->IsHandledURL(url)) {
VLOG(1) << "Download request for unsupported protocol: "
<< url.possibly_invalid_spec();
if (!started_cb.is_null())
- started_cb.Run(kInvalidDownloadId, net::ERR_ACCESS_DENIED);
+ started_cb.Run(DownloadId::Invalid(), net::ERR_ACCESS_DENIED);
return;
}
- request->set_context(context.request_context());
- request->set_load_flags(request->load_flags() |
- net::LOAD_IS_DOWNLOAD);
-
ResourceDispatcherHostRequestInfo* extra_info =
CreateRequestInfo(handler, child_id, route_id, true, context);
SetRequestInfo(request, extra_info); // Request takes ownership.

Powered by Google App Engine
This is Rietveld 408576698