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

Side by Side Diff: content/public/common/referrer.cc

Issue 2682313002: Introduce NavigationSimulator to use in unit tests (Closed)
Patch Set: Addressed comments Created 3 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
« no previous file with comments | « content/public/common/referrer.h ('k') | content/public/test/navigation_simulator.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "content/public/common/referrer.h" 5 #include "content/public/common/referrer.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "content/public/common/content_switches.h" 10 #include "content/public/common/content_switches.h"
11 #include "net/url_request/url_request.h"
12 11
13 namespace content { 12 namespace content {
14 13
15 // static 14 // static
16 Referrer Referrer::SanitizeForRequest(const GURL& request, 15 Referrer Referrer::SanitizeForRequest(const GURL& request,
17 const Referrer& referrer) { 16 const Referrer& referrer) {
18 Referrer sanitized_referrer(referrer.url.GetAsReferrer(), referrer.policy); 17 Referrer sanitized_referrer(referrer.url.GetAsReferrer(), referrer.policy);
19 if (sanitized_referrer.policy == blink::WebReferrerPolicyDefault) { 18 if (sanitized_referrer.policy == blink::WebReferrerPolicyDefault) {
20 if (base::CommandLine::ForCurrentProcess()->HasSwitch( 19 if (base::CommandLine::ForCurrentProcess()->HasSwitch(
21 switches::kReducedReferrerGranularity)) { 20 switches::kReducedReferrerGranularity)) {
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
77 void Referrer::SetReferrerForRequest(net::URLRequest* request, 76 void Referrer::SetReferrerForRequest(net::URLRequest* request,
78 const Referrer& referrer) { 77 const Referrer& referrer) {
79 base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); 78 base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
80 if (!referrer.url.is_valid() || 79 if (!referrer.url.is_valid() ||
81 command_line->HasSwitch(switches::kNoReferrers)) { 80 command_line->HasSwitch(switches::kNoReferrers)) {
82 request->SetReferrer(std::string()); 81 request->SetReferrer(std::string());
83 } else { 82 } else {
84 request->SetReferrer(referrer.url.spec()); 83 request->SetReferrer(referrer.url.spec());
85 } 84 }
86 85
87 net::URLRequest::ReferrerPolicy net_referrer_policy = 86 request->set_referrer_policy(ReferrerPolicyForUrlRequest(referrer));
88 net::URLRequest::CLEAR_REFERRER_ON_TRANSITION_FROM_SECURE_TO_INSECURE; 87 }
88
89 // static
90 net::URLRequest::ReferrerPolicy Referrer::ReferrerPolicyForUrlRequest(
91 const Referrer& referrer) {
89 switch (referrer.policy) { 92 switch (referrer.policy) {
90 case blink::WebReferrerPolicyAlways: 93 case blink::WebReferrerPolicyAlways:
91 net_referrer_policy = net::URLRequest::NEVER_CLEAR_REFERRER; 94 return net::URLRequest::NEVER_CLEAR_REFERRER;
92 break;
93 case blink::WebReferrerPolicyNever: 95 case blink::WebReferrerPolicyNever:
94 net_referrer_policy = net::URLRequest::NO_REFERRER; 96 return net::URLRequest::NO_REFERRER;
95 break;
96 case blink::WebReferrerPolicyOrigin: 97 case blink::WebReferrerPolicyOrigin:
97 net_referrer_policy = net::URLRequest::ORIGIN; 98 return net::URLRequest::ORIGIN;
98 break;
99 case blink::WebReferrerPolicyNoReferrerWhenDowngrade: 99 case blink::WebReferrerPolicyNoReferrerWhenDowngrade:
100 net_referrer_policy = 100 return net::URLRequest::
101 net::URLRequest::CLEAR_REFERRER_ON_TRANSITION_FROM_SECURE_TO_INSECURE; 101 CLEAR_REFERRER_ON_TRANSITION_FROM_SECURE_TO_INSECURE;
102 break;
103 case blink::WebReferrerPolicyOriginWhenCrossOrigin: 102 case blink::WebReferrerPolicyOriginWhenCrossOrigin:
104 net_referrer_policy = 103 return net::URLRequest::ORIGIN_ONLY_ON_TRANSITION_CROSS_ORIGIN;
105 net::URLRequest::ORIGIN_ONLY_ON_TRANSITION_CROSS_ORIGIN;
106 break;
107 case blink::WebReferrerPolicyDefault: 104 case blink::WebReferrerPolicyDefault:
108 net_referrer_policy = 105 if (base::CommandLine::ForCurrentProcess()->HasSwitch(
109 command_line->HasSwitch(switches::kReducedReferrerGranularity) 106 switches::kReducedReferrerGranularity)) {
110 ? net::URLRequest:: 107 return net::URLRequest::
111 REDUCE_REFERRER_GRANULARITY_ON_TRANSITION_CROSS_ORIGIN 108 REDUCE_REFERRER_GRANULARITY_ON_TRANSITION_CROSS_ORIGIN;
112 : net::URLRequest:: 109 }
113 CLEAR_REFERRER_ON_TRANSITION_FROM_SECURE_TO_INSECURE; 110 return net::URLRequest::
114 break; 111 CLEAR_REFERRER_ON_TRANSITION_FROM_SECURE_TO_INSECURE;
115 case blink::WebReferrerPolicyNoReferrerWhenDowngradeOriginWhenCrossOrigin: 112 case blink::WebReferrerPolicyNoReferrerWhenDowngradeOriginWhenCrossOrigin:
116 net_referrer_policy = net::URLRequest:: 113 return net::URLRequest::
117 REDUCE_REFERRER_GRANULARITY_ON_TRANSITION_CROSS_ORIGIN; 114 REDUCE_REFERRER_GRANULARITY_ON_TRANSITION_CROSS_ORIGIN;
118 break;
119 } 115 }
120 request->set_referrer_policy(net_referrer_policy); 116 return net::URLRequest::CLEAR_REFERRER_ON_TRANSITION_FROM_SECURE_TO_INSECURE;
121 } 117 }
122 118
123 } // namespace content 119 } // namespace content
OLDNEW
« no previous file with comments | « content/public/common/referrer.h ('k') | content/public/test/navigation_simulator.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698