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

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

Issue 6773006: Add enableReferrers and enableHyperlinkAuditing to contentSettings.misc API. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix Created 9 years, 9 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>
(...skipping 394 matching lines...) Expand 10 before | Expand all | Expand 10 after
405 if (HandleExternalProtocol(request_id, child_id, route_id, 405 if (HandleExternalProtocol(request_id, child_id, route_id,
406 request_data.url, request_data.resource_type, 406 request_data.url, request_data.resource_type,
407 handler)) { 407 handler)) {
408 return; 408 return;
409 } 409 }
410 410
411 // Construct the request. 411 // Construct the request.
412 net::URLRequest* request = new net::URLRequest(request_data.url, this); 412 net::URLRequest* request = new net::URLRequest(request_data.url, this);
413 request->set_method(request_data.method); 413 request->set_method(request_data.method);
414 request->set_first_party_for_cookies(request_data.first_party_for_cookies); 414 request->set_first_party_for_cookies(request_data.first_party_for_cookies);
415 request->set_referrer(CommandLine::ForCurrentProcess()->HasSwitch( 415 request->set_referrer(ReferrersEnabled() ? request_data.referrer.spec()
416 switches::kNoReferrers) ? std::string() : request_data.referrer.spec()); 416 : std::string());
417 net::HttpRequestHeaders headers; 417 net::HttpRequestHeaders headers;
418 headers.AddHeadersFromString(request_data.headers); 418 headers.AddHeadersFromString(request_data.headers);
419 request->SetExtraRequestHeaders(headers); 419 request->SetExtraRequestHeaders(headers);
420 420
421 int load_flags = request_data.load_flags; 421 int load_flags = request_data.load_flags;
422 // Although EV status is irrelevant to sub-frames and sub-resources, we have 422 // Although EV status is irrelevant to sub-frames and sub-resources, we have
423 // to perform EV certificate verification on all resources because an HTTP 423 // to perform EV certificate verification on all resources because an HTTP
424 // keep-alive connection created to load a sub-frame or a sub-resource could 424 // keep-alive connection created to load a sub-frame or a sub-resource could
425 // be reused to load a main frame. 425 // be reused to load a main frame.
426 load_flags |= net::LOAD_VERIFY_EV_CERT; 426 load_flags |= net::LOAD_VERIFY_EV_CERT;
(...skipping 288 matching lines...) Expand 10 before | Expand all | Expand 10 after
715 ResourceType::MAIN_FRAME); 715 ResourceType::MAIN_FRAME);
716 } 716 }
717 717
718 if (!net::URLRequest::IsHandledURL(url)) { 718 if (!net::URLRequest::IsHandledURL(url)) {
719 VLOG(1) << "Download request for unsupported protocol: " 719 VLOG(1) << "Download request for unsupported protocol: "
720 << url.possibly_invalid_spec(); 720 << url.possibly_invalid_spec();
721 return; 721 return;
722 } 722 }
723 723
724 request->set_method("GET"); 724 request->set_method("GET");
725 request->set_referrer(CommandLine::ForCurrentProcess()->HasSwitch( 725 request->set_referrer(ReferrersEnabled() ? referrer.spec()
726 switches::kNoReferrers) ? std::string() : referrer.spec()); 726 : std::string());
727 request->set_context(request_context); 727 request->set_context(request_context);
728 request->set_load_flags(request->load_flags() | 728 request->set_load_flags(request->load_flags() |
729 net::LOAD_IS_DOWNLOAD); 729 net::LOAD_IS_DOWNLOAD);
730 730
731 ResourceDispatcherHostRequestInfo* extra_info = 731 ResourceDispatcherHostRequestInfo* extra_info =
732 CreateRequestInfoForBrowserRequest(handler, child_id, route_id, true); 732 CreateRequestInfoForBrowserRequest(handler, child_id, route_id, true);
733 SetRequestInfo(request, extra_info); // Request takes ownership. 733 SetRequestInfo(request, extra_info); // Request takes ownership.
734 734
735 BeginRequestInternal(request); 735 BeginRequestInternal(request);
736 } 736 }
(...skipping 19 matching lines...) Expand all
756 if (!known_proto) { 756 if (!known_proto) {
757 // Since any URLs which have non-standard scheme have been filtered 757 // Since any URLs which have non-standard scheme have been filtered
758 // by save manager(see GURL::SchemeIsStandard). This situation 758 // by save manager(see GURL::SchemeIsStandard). This situation
759 // should not happen. 759 // should not happen.
760 NOTREACHED(); 760 NOTREACHED();
761 return; 761 return;
762 } 762 }
763 763
764 net::URLRequest* request = new net::URLRequest(url, this); 764 net::URLRequest* request = new net::URLRequest(url, this);
765 request->set_method("GET"); 765 request->set_method("GET");
766 request->set_referrer(CommandLine::ForCurrentProcess()->HasSwitch( 766 request->set_referrer(ReferrersEnabled() ? referrer.spec()
767 switches::kNoReferrers) ? std::string() : referrer.spec()); 767 : std::string());
768 // So far, for saving page, we need fetch content from cache, in the 768 // So far, for saving page, we need fetch content from cache, in the
769 // future, maybe we can use a configuration to configure this behavior. 769 // future, maybe we can use a configuration to configure this behavior.
770 request->set_load_flags(net::LOAD_PREFERRING_CACHE); 770 request->set_load_flags(net::LOAD_PREFERRING_CACHE);
771 request->set_context(request_context); 771 request->set_context(request_context);
772 772
773 // Since we're just saving some resources we need, disallow downloading. 773 // Since we're just saving some resources we need, disallow downloading.
774 ResourceDispatcherHostRequestInfo* extra_info = 774 ResourceDispatcherHostRequestInfo* extra_info =
775 CreateRequestInfoForBrowserRequest(handler, child_id, route_id, false); 775 CreateRequestInfoForBrowserRequest(handler, child_id, route_id, false);
776 SetRequestInfo(request, extra_info); // Request takes ownership. 776 SetRequestInfo(request, extra_info); // Request takes ownership.
777 777
(...skipping 1160 matching lines...) Expand 10 before | Expand all | Expand 10 after
1938 1938
1939 bool ResourceDispatcherHost::IsPrerenderingChildRoutePair(int child_id, 1939 bool ResourceDispatcherHost::IsPrerenderingChildRoutePair(int child_id,
1940 int route_id) const { 1940 int route_id) const {
1941 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); 1941 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
1942 std::pair<int, int> c_r_pair = std::make_pair(child_id, route_id); 1942 std::pair<int, int> c_r_pair = std::make_pair(child_id, route_id);
1943 return (prerender_child_route_pairs_.find(c_r_pair) != 1943 return (prerender_child_route_pairs_.find(c_r_pair) !=
1944 prerender_child_route_pairs_.end()); 1944 prerender_child_route_pairs_.end());
1945 } 1945 }
1946 1946
1947 1947
1948 bool ResourceDispatcherHost::ReferrersEnabled() {
1949 // If we're not being called through the ResourceMessageFilter, referrers
1950 // should have been stripped beforehand.
1951 if (!filter_)
1952 return true;
1953 return filter_->referrers_enabled();
1954 }
1955
1948 // static 1956 // static
1949 bool ResourceDispatcherHost::is_prefetch_enabled() { 1957 bool ResourceDispatcherHost::is_prefetch_enabled() {
1950 return is_prefetch_enabled_; 1958 return is_prefetch_enabled_;
1951 } 1959 }
1952 1960
1953 // static 1961 // static
1954 void ResourceDispatcherHost::set_is_prefetch_enabled(bool value) { 1962 void ResourceDispatcherHost::set_is_prefetch_enabled(bool value) {
1955 is_prefetch_enabled_ = value; 1963 is_prefetch_enabled_ = value;
1956 } 1964 }
1957 1965
1958 // static 1966 // static
1959 bool ResourceDispatcherHost::is_prefetch_enabled_ = false; 1967 bool ResourceDispatcherHost::is_prefetch_enabled_ = false;
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698