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

Side by Side Diff: content/browser/renderer_host/resource_dispatcher_host.cc

Issue 7660007: Factor out dependncy on download throttling from core download code. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years, 4 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // See http://dev.chromium.org/developers/design-documents/multi-process-resourc e-loading 5 // See http://dev.chromium.org/developers/design-documents/multi-process-resourc e-loading
6 6
7 #include "content/browser/renderer_host/resource_dispatcher_host.h" 7 #include "content/browser/renderer_host/resource_dispatcher_host.h"
8 8
9 #include <set> 9 #include <set>
10 #include <vector> 10 #include <vector>
11 11
12 #include "base/bind.h" 12 #include "base/bind.h"
13 #include "base/command_line.h" 13 #include "base/command_line.h"
14 #include "base/compiler_specific.h" 14 #include "base/compiler_specific.h"
15 #include "base/logging.h" 15 #include "base/logging.h"
16 #include "base/memory/scoped_ptr.h" 16 #include "base/memory/scoped_ptr.h"
17 #include "base/message_loop.h" 17 #include "base/message_loop.h"
18 #include "base/metrics/histogram.h" 18 #include "base/metrics/histogram.h"
19 #include "base/shared_memory.h" 19 #include "base/shared_memory.h"
20 #include "base/stl_util.h" 20 #include "base/stl_util.h"
21 #include "chrome/browser/download/download_request_limiter.h"
22 #include "chrome/browser/download/download_util.h" 21 #include "chrome/browser/download/download_util.h"
23 #include "content/browser/appcache/chrome_appcache_service.h" 22 #include "content/browser/appcache/chrome_appcache_service.h"
24 #include "content/browser/cert_store.h" 23 #include "content/browser/cert_store.h"
25 #include "content/browser/child_process_security_policy.h" 24 #include "content/browser/child_process_security_policy.h"
26 #include "content/browser/chrome_blob_storage_context.h" 25 #include "content/browser/chrome_blob_storage_context.h"
27 #include "content/browser/content_browser_client.h" 26 #include "content/browser/content_browser_client.h"
28 #include "content/browser/cross_site_request_manager.h" 27 #include "content/browser/cross_site_request_manager.h"
29 #include "content/browser/download/download_file_manager.h" 28 #include "content/browser/download/download_file_manager.h"
30 #include "content/browser/download/download_manager.h" 29 #include "content/browser/download/download_manager.h"
31 #include "content/browser/download/download_resource_handler.h" 30 #include "content/browser/download/download_resource_handler.h"
(...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after
234 #pragma optimize("", on) 233 #pragma optimize("", on)
235 #pragma warning(default: 4748) 234 #pragma warning(default: 4748)
236 #endif 235 #endif
237 236
238 } // namespace 237 } // namespace
239 238
240 ResourceDispatcherHost::ResourceDispatcherHost( 239 ResourceDispatcherHost::ResourceDispatcherHost(
241 const ResourceQueue::DelegateSet& resource_queue_delegates) 240 const ResourceQueue::DelegateSet& resource_queue_delegates)
242 : ALLOW_THIS_IN_INITIALIZER_LIST( 241 : ALLOW_THIS_IN_INITIALIZER_LIST(
243 download_file_manager_(new DownloadFileManager(this))), 242 download_file_manager_(new DownloadFileManager(this))),
244 download_request_limiter_(new DownloadRequestLimiter()),
245 ALLOW_THIS_IN_INITIALIZER_LIST( 243 ALLOW_THIS_IN_INITIALIZER_LIST(
246 save_file_manager_(new SaveFileManager(this))), 244 save_file_manager_(new SaveFileManager(this))),
247 webkit_thread_(new WebKitThread), 245 webkit_thread_(new WebKitThread),
248 request_id_(-1), 246 request_id_(-1),
249 ALLOW_THIS_IN_INITIALIZER_LIST(method_runner_(this)), 247 ALLOW_THIS_IN_INITIALIZER_LIST(method_runner_(this)),
250 is_shutdown_(false), 248 is_shutdown_(false),
251 max_outstanding_requests_cost_per_process_( 249 max_outstanding_requests_cost_per_process_(
252 kMaxOutstandingRequestsCostPerProcess), 250 kMaxOutstandingRequestsCostPerProcess),
253 filter_(NULL), 251 filter_(NULL),
254 delegate_(NULL), 252 delegate_(NULL),
(...skipping 483 matching lines...) Expand 10 before | Expand all | Expand 10 after
738 child_id, 736 child_id,
739 route_id, 737 route_id,
740 request_id_, 738 request_id_,
741 url, 739 url,
742 download_file_manager_.get(), 740 download_file_manager_.get(),
743 request, 741 request,
744 prompt_for_save_location, 742 prompt_for_save_location,
745 save_info)); 743 save_info));
746 744
747 if (delegate_) { 745 if (delegate_) {
748 handler = delegate_->DownloadStarting(handler, context, child_id, 746 handler = delegate_->DownloadStarting(
749 route_id); 747 handler, context, request, child_id, route_id, request_id_, true,
748 false);
750 } 749 }
751 750
752 const net::URLRequestContext* request_context = context.request_context(); 751 const net::URLRequestContext* request_context = context.request_context();
753 752
754 if (!request_context->job_factory()->IsHandledURL(url)) { 753 if (!request_context->job_factory()->IsHandledURL(url)) {
755 VLOG(1) << "Download request for unsupported protocol: " 754 VLOG(1) << "Download request for unsupported protocol: "
756 << url.possibly_invalid_spec(); 755 << url.possibly_invalid_spec();
757 return; 756 return;
758 } 757 }
759 758
(...skipping 921 matching lines...) Expand 10 before | Expand all | Expand 10 after
1681 security_info)) { 1680 security_info)) {
1682 1681
1683 // The request is complete so we can remove it. 1682 // The request is complete so we can remove it.
1684 RemovePendingRequest(info->child_id(), info->request_id()); 1683 RemovePendingRequest(info->child_id(), info->request_id());
1685 } 1684 }
1686 // If the handler's OnResponseCompleted returns false, we are deferring the 1685 // If the handler's OnResponseCompleted returns false, we are deferring the
1687 // call until later. We will notify the world and clean up when we resume. 1686 // call until later. We will notify the world and clean up when we resume.
1688 } 1687 }
1689 1688
1690 void ResourceDispatcherHost::OnUserGesture(TabContents* tab) { 1689 void ResourceDispatcherHost::OnUserGesture(TabContents* tab) {
1691 download_request_limiter()->OnUserGesture(tab);
1692
1693 last_user_gesture_time_ = TimeTicks::Now(); 1690 last_user_gesture_time_ = TimeTicks::Now();
1694 } 1691 }
1695 1692
1696 // static 1693 // static
1697 ResourceDispatcherHostRequestInfo* ResourceDispatcherHost::InfoForRequest( 1694 ResourceDispatcherHostRequestInfo* ResourceDispatcherHost::InfoForRequest(
1698 net::URLRequest* request) { 1695 net::URLRequest* request) {
1699 // Avoid writing this function twice by casting the const version. 1696 // Avoid writing this function twice by casting the const version.
1700 const net::URLRequest* const_request = request; 1697 const net::URLRequest* const_request = request;
1701 return const_cast<ResourceDispatcherHostRequestInfo*>( 1698 return const_cast<ResourceDispatcherHostRequestInfo*>(
1702 InfoForRequest(const_request)); 1699 InfoForRequest(const_request));
(...skipping 413 matching lines...) Expand 10 before | Expand all | Expand 10 after
2116 return HTTP_AUTH_RESOURCE_BLOCKED_CROSS; 2113 return HTTP_AUTH_RESOURCE_BLOCKED_CROSS;
2117 } 2114 }
2118 2115
2119 bool ResourceDispatcherHost::allow_cross_origin_auth_prompt() { 2116 bool ResourceDispatcherHost::allow_cross_origin_auth_prompt() {
2120 return allow_cross_origin_auth_prompt_; 2117 return allow_cross_origin_auth_prompt_;
2121 } 2118 }
2122 2119
2123 void ResourceDispatcherHost::set_allow_cross_origin_auth_prompt(bool value) { 2120 void ResourceDispatcherHost::set_allow_cross_origin_auth_prompt(bool value) {
2124 allow_cross_origin_auth_prompt_ = value; 2121 allow_cross_origin_auth_prompt_ = value;
2125 } 2122 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698