| Index: net/url_request/url_request.cc
|
| diff --git a/net/url_request/url_request.cc b/net/url_request/url_request.cc
|
| index 7fac9c77caf2a50c1052cc72ac4880ea96dbac05..0c1d5f4c197b9ffb799fff6bb274909163fd406d 100644
|
| --- a/net/url_request/url_request.cc
|
| +++ b/net/url_request/url_request.cc
|
| @@ -479,6 +479,15 @@ void URLRequest::SetReferrer(const std::string& referrer) {
|
|
|
| void URLRequest::set_referrer_policy(ReferrerPolicy referrer_policy) {
|
| DCHECK(!is_pending_);
|
| + // External callers shouldn't be setting NO_REFERRER or
|
| + // ORIGIN. |referrer_policy_| is only applied during server redirects,
|
| + // so external callers must set the referrer themselves using
|
| + // SetReferrer() for the initial request. Once the referrer has been
|
| + // set to an origin or to an empty string, there is no point in
|
| + // setting the policy to NO_REFERRER or ORIGIN as it would have the
|
| + // same effect as using NEVER_CLEAR_REFERRER across redirects.
|
| + DCHECK_NE(referrer_policy, NO_REFERRER);
|
| + DCHECK_NE(referrer_policy, ORIGIN);
|
| referrer_policy_ = referrer_policy;
|
| }
|
|
|
| @@ -978,6 +987,7 @@ int URLRequest::Redirect(const RedirectInfo& redirect_info) {
|
| }
|
|
|
| referrer_ = redirect_info.new_referrer;
|
| + referrer_policy_ = redirect_info.new_referrer_policy;
|
| first_party_for_cookies_ = redirect_info.new_first_party_for_cookies;
|
| token_binding_referrer_ = redirect_info.referred_token_binding_host;
|
|
|
|
|