| Index: net/url_request/url_request.cc
|
| diff --git a/net/url_request/url_request.cc b/net/url_request/url_request.cc
|
| index 5d3e26b47fedbce7b639f88bab9879b91e1a9667..ea55d98749dbfffe3b2caa8c4561deec4024e250 100644
|
| --- a/net/url_request/url_request.cc
|
| +++ b/net/url_request/url_request.cc
|
| @@ -426,23 +426,21 @@ void URLRequest::set_method(const std::string& method) {
|
| method_ = method;
|
| }
|
|
|
| -void URLRequest::set_referrer(const std::string& referrer) {
|
| +void URLRequest::SetReferrer(const std::string& referrer) {
|
| DCHECK(!is_pending_);
|
| referrer_ = referrer;
|
| -}
|
| -
|
| -GURL URLRequest::GetSanitizedReferrer() const {
|
| - GURL ret(referrer());
|
| -
|
| - // Ensure that we do not send username and password fields in the referrer.
|
| - if (ret.has_username() || ret.has_password()) {
|
| + // Ensure that we do not send url fragment,
|
| + // username and password fields in the referrer.
|
| + GURL referrer_url(referrer);
|
| + if (referrer_url.is_valid() && (referrer_url.has_ref() ||
|
| + referrer_url.has_username() || referrer_url.has_password())) {
|
| GURL::Replacements referrer_mods;
|
| + referrer_mods.ClearRef();
|
| referrer_mods.ClearUsername();
|
| referrer_mods.ClearPassword();
|
| - ret = ret.ReplaceComponents(referrer_mods);
|
| + referrer_url = referrer_url.ReplaceComponents(referrer_mods);
|
| + referrer_ = referrer_url.spec();
|
| }
|
| -
|
| - return ret;
|
| }
|
|
|
| void URLRequest::set_referrer_policy(ReferrerPolicy referrer_policy) {
|
|
|