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

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

Issue 2918313002: Implement new referrer policies (Closed)
Patch Set: update public/platform/OWNERS per presubmit Created 3 years, 6 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/child/web_url_loader_impl.cc ('k') | content/renderer/render_frame_impl.cc » ('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"
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
54 case blink::kWebReferrerPolicyNever: 54 case blink::kWebReferrerPolicyNever:
55 sanitized_referrer.url = GURL(); 55 sanitized_referrer.url = GURL();
56 break; 56 break;
57 case blink::kWebReferrerPolicyOrigin: 57 case blink::kWebReferrerPolicyOrigin:
58 sanitized_referrer.url = sanitized_referrer.url.GetOrigin(); 58 sanitized_referrer.url = sanitized_referrer.url.GetOrigin();
59 break; 59 break;
60 case blink::kWebReferrerPolicyOriginWhenCrossOrigin: 60 case blink::kWebReferrerPolicyOriginWhenCrossOrigin:
61 if (request.GetOrigin() != sanitized_referrer.url.GetOrigin()) 61 if (request.GetOrigin() != sanitized_referrer.url.GetOrigin())
62 sanitized_referrer.url = sanitized_referrer.url.GetOrigin(); 62 sanitized_referrer.url = sanitized_referrer.url.GetOrigin();
63 break; 63 break;
64 case blink::kWebReferrerPolicyStrictOrigin:
65 if (is_downgrade) {
66 sanitized_referrer.url = GURL();
67 } else {
68 sanitized_referrer.url = sanitized_referrer.url.GetOrigin();
69 }
70 break;
71 case blink::kWebReferrerPolicySameOrigin:
72 if (request.GetOrigin() != sanitized_referrer.url.GetOrigin())
73 sanitized_referrer.url = GURL();
74 break;
64 case blink::kWebReferrerPolicyNoReferrerWhenDowngradeOriginWhenCrossOrigin: 75 case blink::kWebReferrerPolicyNoReferrerWhenDowngradeOriginWhenCrossOrigin:
65 if (is_downgrade) { 76 if (is_downgrade) {
66 sanitized_referrer.url = GURL(); 77 sanitized_referrer.url = GURL();
67 } else if (request.GetOrigin() != sanitized_referrer.url.GetOrigin()) { 78 } else if (request.GetOrigin() != sanitized_referrer.url.GetOrigin()) {
68 sanitized_referrer.url = sanitized_referrer.url.GetOrigin(); 79 sanitized_referrer.url = sanitized_referrer.url.GetOrigin();
69 } 80 }
70 break; 81 break;
71 } 82 }
72 return sanitized_referrer; 83 return sanitized_referrer;
73 } 84 }
(...skipping 20 matching lines...) Expand all
94 return net::URLRequest::NEVER_CLEAR_REFERRER; 105 return net::URLRequest::NEVER_CLEAR_REFERRER;
95 case blink::kWebReferrerPolicyNever: 106 case blink::kWebReferrerPolicyNever:
96 return net::URLRequest::NO_REFERRER; 107 return net::URLRequest::NO_REFERRER;
97 case blink::kWebReferrerPolicyOrigin: 108 case blink::kWebReferrerPolicyOrigin:
98 return net::URLRequest::ORIGIN; 109 return net::URLRequest::ORIGIN;
99 case blink::kWebReferrerPolicyNoReferrerWhenDowngrade: 110 case blink::kWebReferrerPolicyNoReferrerWhenDowngrade:
100 return net::URLRequest:: 111 return net::URLRequest::
101 CLEAR_REFERRER_ON_TRANSITION_FROM_SECURE_TO_INSECURE; 112 CLEAR_REFERRER_ON_TRANSITION_FROM_SECURE_TO_INSECURE;
102 case blink::kWebReferrerPolicyOriginWhenCrossOrigin: 113 case blink::kWebReferrerPolicyOriginWhenCrossOrigin:
103 return net::URLRequest::ORIGIN_ONLY_ON_TRANSITION_CROSS_ORIGIN; 114 return net::URLRequest::ORIGIN_ONLY_ON_TRANSITION_CROSS_ORIGIN;
115 case blink::kWebReferrerPolicySameOrigin:
116 return net::URLRequest::CLEAR_REFERRER_ON_TRANSITION_CROSS_ORIGIN;
117 case blink::kWebReferrerPolicyStrictOrigin:
118 return net::URLRequest::
119 ORIGIN_CLEAR_ON_TRANSITION_FROM_SECURE_TO_INSECURE;
104 case blink::kWebReferrerPolicyDefault: 120 case blink::kWebReferrerPolicyDefault:
105 if (base::CommandLine::ForCurrentProcess()->HasSwitch( 121 if (base::CommandLine::ForCurrentProcess()->HasSwitch(
106 switches::kReducedReferrerGranularity)) { 122 switches::kReducedReferrerGranularity)) {
107 return net::URLRequest:: 123 return net::URLRequest::
108 REDUCE_REFERRER_GRANULARITY_ON_TRANSITION_CROSS_ORIGIN; 124 REDUCE_REFERRER_GRANULARITY_ON_TRANSITION_CROSS_ORIGIN;
109 } 125 }
110 return net::URLRequest:: 126 return net::URLRequest::
111 CLEAR_REFERRER_ON_TRANSITION_FROM_SECURE_TO_INSECURE; 127 CLEAR_REFERRER_ON_TRANSITION_FROM_SECURE_TO_INSECURE;
112 case blink::kWebReferrerPolicyNoReferrerWhenDowngradeOriginWhenCrossOrigin: 128 case blink::kWebReferrerPolicyNoReferrerWhenDowngradeOriginWhenCrossOrigin:
113 return net::URLRequest:: 129 return net::URLRequest::
114 REDUCE_REFERRER_GRANULARITY_ON_TRANSITION_CROSS_ORIGIN; 130 REDUCE_REFERRER_GRANULARITY_ON_TRANSITION_CROSS_ORIGIN;
115 } 131 }
116 return net::URLRequest::CLEAR_REFERRER_ON_TRANSITION_FROM_SECURE_TO_INSECURE; 132 return net::URLRequest::CLEAR_REFERRER_ON_TRANSITION_FROM_SECURE_TO_INSECURE;
117 } 133 }
118 134
119 } // namespace content 135 } // namespace content
OLDNEW
« no previous file with comments | « content/child/web_url_loader_impl.cc ('k') | content/renderer/render_frame_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698