OLD | NEW |
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 Loading... |
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 Loading... |
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 |
OLD | NEW |