| 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 |