OLD | NEW |
---|---|
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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 "chrome/browser/renderer_host/resource_dispatcher_host.h" | 7 #include "chrome/browser/renderer_host/resource_dispatcher_host.h" |
8 | 8 |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
11 #include "base/command_line.h" | 11 #include "base/command_line.h" |
(...skipping 360 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
372 if (HandleExternalProtocol(request_id, child_id, route_id, | 372 if (HandleExternalProtocol(request_id, child_id, route_id, |
373 request_data.url, request_data.resource_type, | 373 request_data.url, request_data.resource_type, |
374 handler)) { | 374 handler)) { |
375 return; | 375 return; |
376 } | 376 } |
377 | 377 |
378 // Construct the request. | 378 // Construct the request. |
379 URLRequest* request = new URLRequest(request_data.url, this); | 379 URLRequest* request = new URLRequest(request_data.url, this); |
380 request->set_method(request_data.method); | 380 request->set_method(request_data.method); |
381 request->set_first_party_for_cookies(request_data.first_party_for_cookies); | 381 request->set_first_party_for_cookies(request_data.first_party_for_cookies); |
382 request->set_referrer(request_data.referrer.spec()); | 382 request->set_referrer(CommandLine::ForCurrentProcess()->HasSwitch( |
383 switches::kNoReferrers) ? std::string() : request_data.referrer.spec()); | |
383 request->SetExtraRequestHeaders(request_data.headers); | 384 request->SetExtraRequestHeaders(request_data.headers); |
384 | 385 |
385 int load_flags = request_data.load_flags; | 386 int load_flags = request_data.load_flags; |
386 // EV certificate verification could be expensive. We don't want to spend | 387 // EV certificate verification could be expensive. We don't want to spend |
387 // time performing EV certificate verification on all resources because | 388 // time performing EV certificate verification on all resources because |
388 // EV status is irrelevant to sub-frames and sub-resources. | 389 // EV status is irrelevant to sub-frames and sub-resources. |
389 if (request_data.resource_type == ResourceType::MAIN_FRAME) | 390 if (request_data.resource_type == ResourceType::MAIN_FRAME) |
390 load_flags |= net::LOAD_VERIFY_EV_CERT; | 391 load_flags |= net::LOAD_VERIFY_EV_CERT; |
391 request->set_load_flags(load_flags); | 392 request->set_load_flags(load_flags); |
392 request->set_context(context); | 393 request->set_context(context); |
(...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
608 receiver_); | 609 receiver_); |
609 } | 610 } |
610 | 611 |
611 if (!URLRequest::IsHandledURL(url)) { | 612 if (!URLRequest::IsHandledURL(url)) { |
612 LOG(INFO) << "Download request for unsupported protocol: " << | 613 LOG(INFO) << "Download request for unsupported protocol: " << |
613 url.possibly_invalid_spec(); | 614 url.possibly_invalid_spec(); |
614 return; | 615 return; |
615 } | 616 } |
616 | 617 |
617 request->set_method("GET"); | 618 request->set_method("GET"); |
618 request->set_referrer(referrer.spec()); | 619 request->set_referrer(CommandLine::ForCurrentProcess()->HasSwitch( |
darin (slow to review)
2010/02/10 07:20:41
i think this duplication of code is unfortunate.
| |
620 switches::kNoReferrers) ? std::string() : referrer.spec()); | |
619 request->set_context(request_context); | 621 request->set_context(request_context); |
620 request->set_load_flags(request->load_flags() | | 622 request->set_load_flags(request->load_flags() | |
621 net::LOAD_IS_DOWNLOAD); | 623 net::LOAD_IS_DOWNLOAD); |
622 | 624 |
623 ResourceDispatcherHostRequestInfo* extra_info = | 625 ResourceDispatcherHostRequestInfo* extra_info = |
624 new ResourceDispatcherHostRequestInfo(handler, | 626 new ResourceDispatcherHostRequestInfo(handler, |
625 ChildProcessInfo::RENDER_PROCESS, | 627 ChildProcessInfo::RENDER_PROCESS, |
626 child_id, | 628 child_id, |
627 route_id, | 629 route_id, |
628 request_id_, | 630 request_id_, |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
664 if (!known_proto) { | 666 if (!known_proto) { |
665 // Since any URLs which have non-standard scheme have been filtered | 667 // Since any URLs which have non-standard scheme have been filtered |
666 // by save manager(see GURL::SchemeIsStandard). This situation | 668 // by save manager(see GURL::SchemeIsStandard). This situation |
667 // should not happen. | 669 // should not happen. |
668 NOTREACHED(); | 670 NOTREACHED(); |
669 return; | 671 return; |
670 } | 672 } |
671 | 673 |
672 URLRequest* request = new URLRequest(url, this); | 674 URLRequest* request = new URLRequest(url, this); |
673 request->set_method("GET"); | 675 request->set_method("GET"); |
674 request->set_referrer(referrer.spec()); | 676 request->set_referrer(CommandLine::ForCurrentProcess()->HasSwitch( |
677 switches::kNoReferrers) ? std::string() : referrer.spec()); | |
675 // So far, for saving page, we need fetch content from cache, in the | 678 // So far, for saving page, we need fetch content from cache, in the |
676 // future, maybe we can use a configuration to configure this behavior. | 679 // future, maybe we can use a configuration to configure this behavior. |
677 request->set_load_flags(net::LOAD_PREFERRING_CACHE); | 680 request->set_load_flags(net::LOAD_PREFERRING_CACHE); |
678 request->set_context(request_context); | 681 request->set_context(request_context); |
679 | 682 |
680 // Since we're just saving some resources we need, disallow downloading. | 683 // Since we're just saving some resources we need, disallow downloading. |
681 ResourceDispatcherHostRequestInfo* extra_info = | 684 ResourceDispatcherHostRequestInfo* extra_info = |
682 new ResourceDispatcherHostRequestInfo(handler, | 685 new ResourceDispatcherHostRequestInfo(handler, |
683 ChildProcessInfo::RENDER_PROCESS, | 686 ChildProcessInfo::RENDER_PROCESS, |
684 child_id, | 687 child_id, |
(...skipping 1013 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1698 case ViewHostMsg_UploadProgress_ACK::ID: | 1701 case ViewHostMsg_UploadProgress_ACK::ID: |
1699 case ViewHostMsg_SyncLoad::ID: | 1702 case ViewHostMsg_SyncLoad::ID: |
1700 return true; | 1703 return true; |
1701 | 1704 |
1702 default: | 1705 default: |
1703 break; | 1706 break; |
1704 } | 1707 } |
1705 | 1708 |
1706 return false; | 1709 return false; |
1707 } | 1710 } |
OLD | NEW |