| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "net/url_request/url_request_job.h" | 5 #include "net/url_request/url_request_job.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/compiler_specific.h" | 8 #include "base/compiler_specific.h" |
| 9 #include "base/message_loop/message_loop.h" | 9 #include "base/message_loop/message_loop.h" |
| 10 #include "base/power_monitor/power_monitor.h" | 10 #include "base/power_monitor/power_monitor.h" |
| (...skipping 262 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 273 void URLRequestJob::NotifyURLRequestDestroyed() { | 273 void URLRequestJob::NotifyURLRequestDestroyed() { |
| 274 } | 274 } |
| 275 | 275 |
| 276 // static | 276 // static |
| 277 GURL URLRequestJob::ComputeReferrerForRedirect( | 277 GURL URLRequestJob::ComputeReferrerForRedirect( |
| 278 URLRequest::ReferrerPolicy policy, | 278 URLRequest::ReferrerPolicy policy, |
| 279 const std::string& referrer, | 279 const std::string& referrer, |
| 280 const GURL& redirect_destination) { | 280 const GURL& redirect_destination) { |
| 281 GURL original_referrer(referrer); | 281 GURL original_referrer(referrer); |
| 282 bool secure_referrer_but_insecure_destination = | 282 bool secure_referrer_but_insecure_destination = |
| 283 original_referrer.SchemeIsSecure() && | 283 original_referrer.SchemeIsCryptographic() && |
| 284 !redirect_destination.SchemeIsSecure(); | 284 !redirect_destination.SchemeIsCryptographic(); |
| 285 bool same_origin = | 285 bool same_origin = |
| 286 original_referrer.GetOrigin() == redirect_destination.GetOrigin(); | 286 original_referrer.GetOrigin() == redirect_destination.GetOrigin(); |
| 287 switch (policy) { | 287 switch (policy) { |
| 288 case URLRequest::CLEAR_REFERRER_ON_TRANSITION_FROM_SECURE_TO_INSECURE: | 288 case URLRequest::CLEAR_REFERRER_ON_TRANSITION_FROM_SECURE_TO_INSECURE: |
| 289 return secure_referrer_but_insecure_destination ? GURL() | 289 return secure_referrer_but_insecure_destination ? GURL() |
| 290 : original_referrer; | 290 : original_referrer; |
| 291 | 291 |
| 292 case URLRequest::REDUCE_REFERRER_GRANULARITY_ON_TRANSITION_CROSS_ORIGIN: | 292 case URLRequest::REDUCE_REFERRER_GRANULARITY_ON_TRANSITION_CROSS_ORIGIN: |
| 293 if (same_origin) { | 293 if (same_origin) { |
| 294 return original_referrer; | 294 return original_referrer; |
| (...skipping 566 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 861 // Alter the referrer if redirecting cross-origin (especially HTTP->HTTPS). | 861 // Alter the referrer if redirecting cross-origin (especially HTTP->HTTPS). |
| 862 redirect_info.new_referrer = | 862 redirect_info.new_referrer = |
| 863 ComputeReferrerForRedirect(request_->referrer_policy(), | 863 ComputeReferrerForRedirect(request_->referrer_policy(), |
| 864 request_->referrer(), | 864 request_->referrer(), |
| 865 redirect_info.new_url).spec(); | 865 redirect_info.new_url).spec(); |
| 866 | 866 |
| 867 return redirect_info; | 867 return redirect_info; |
| 868 } | 868 } |
| 869 | 869 |
| 870 } // namespace net | 870 } // namespace net |
| OLD | NEW |