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

Side by Side Diff: chrome/browser/renderer_host/chrome_resource_dispatcher_host_delegate.cc

Issue 10381122: Add flag to specify if explicitly requested download is from web. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Sync'd to LKGR and integrated into DownloadUrlParams. Created 8 years, 7 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) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 #include "chrome/browser/renderer_host/chrome_resource_dispatcher_host_delegate. h" 5 #include "chrome/browser/renderer_host/chrome_resource_dispatcher_host_delegate. h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/base64.h" 9 #include "base/base64.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after
196 resource_type, 196 resource_type,
197 throttles); 197 throttles);
198 } 198 }
199 199
200 void ChromeResourceDispatcherHostDelegate::DownloadStarting( 200 void ChromeResourceDispatcherHostDelegate::DownloadStarting(
201 net::URLRequest* request, 201 net::URLRequest* request,
202 content::ResourceContext* resource_context, 202 content::ResourceContext* resource_context,
203 int child_id, 203 int child_id,
204 int route_id, 204 int route_id,
205 int request_id, 205 int request_id,
206 bool is_new_request, 206 bool is_content_initiated,
207 ScopedVector<content::ResourceThrottle>* throttles) { 207 ScopedVector<content::ResourceThrottle>* throttles) {
208 BrowserThread::PostTask( 208 BrowserThread::PostTask(
209 BrowserThread::UI, FROM_HERE, 209 BrowserThread::UI, FROM_HERE,
210 base::Bind(&NotifyDownloadInitiatedOnUI, child_id, route_id)); 210 base::Bind(&NotifyDownloadInitiatedOnUI, child_id, route_id));
211 211
212 // If this isn't a new request, we've seen this before and added the safe 212 // If it's from the web, we don't trust it, so we push the throttle on.
213 // browsing resource throttle already so no need to add it again. This code 213 if (is_content_initiated) {
214 // path is only hit for requests initiated through the browser, and not the 214 throttles->push_back(new DownloadResourceThrottle(
215 // web, so no need to add the download throttle. 215 download_request_limiter_, child_id, route_id, request_id,
216 if (is_new_request) { 216 request->method()));
217 }
218
219 // If this isn't a new request, we've seen this before and added the standard
220 // resource throttles already so no need to add it again.
221 if (!request->is_pending()) {
217 AppendStandardResourceThrottles(request, 222 AppendStandardResourceThrottles(request,
218 resource_context, 223 resource_context,
219 child_id, 224 child_id,
220 route_id, 225 route_id,
221 ResourceType::MAIN_FRAME, 226 ResourceType::MAIN_FRAME,
222 throttles); 227 throttles);
223 } else {
224 throttles->push_back(new DownloadResourceThrottle(
225 download_request_limiter_, child_id, route_id, request_id,
226 request->method()));
227 } 228 }
228 } 229 }
229 230
230 bool ChromeResourceDispatcherHostDelegate::AcceptSSLClientCertificateRequest( 231 bool ChromeResourceDispatcherHostDelegate::AcceptSSLClientCertificateRequest(
231 net::URLRequest* request, net::SSLCertRequestInfo* cert_request_info) { 232 net::URLRequest* request, net::SSLCertRequestInfo* cert_request_info) {
232 if (request->load_flags() & net::LOAD_PREFETCH) 233 if (request->load_flags() & net::LOAD_PREFETCH)
233 return false; 234 return false;
234 235
235 ChromeURLRequestUserData* user_data = ChromeURLRequestUserData::Get(request); 236 ChromeURLRequestUserData* user_data = ChromeURLRequestUserData::Get(request);
236 if (user_data && user_data->is_prerender()) { 237 if (user_data && user_data->is_prerender()) {
(...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after
455 if (base::Base64Encode(serialized, &hashed)) { 456 if (base::Base64Encode(serialized, &hashed)) {
456 // If successful, swap the header value with the new one. 457 // If successful, swap the header value with the new one.
457 // Note that the list of IDs and the header could be temporarily out of sync 458 // Note that the list of IDs and the header could be temporarily out of sync
458 // if IDs are added as we are recreating the header, but we're OK with those 459 // if IDs are added as we are recreating the header, but we're OK with those
459 // descrepancies. 460 // descrepancies.
460 variation_ids_header_ = hashed; 461 variation_ids_header_ = hashed;
461 } else { 462 } else {
462 DVLOG(1) << "Failed to base64 encode Variation IDs value: " << serialized; 463 DVLOG(1) << "Failed to base64 encode Variation IDs value: " << serialized;
463 } 464 }
464 } 465 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698