Chromium Code Reviews| 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..985770c5a183bbfd7ad1c185e87c3f699f99a777 100644 |
| --- a/net/url_request/url_request.cc |
| +++ b/net/url_request/url_request.cc |
| @@ -12,6 +12,7 @@ |
| #include "base/lazy_instance.h" |
| #include "base/memory/singleton.h" |
| #include "base/message_loop.h" |
| +#include "base/metrics/histogram.h" |
| #include "base/metrics/stats_counters.h" |
| #include "base/stl_util.h" |
| #include "base/synchronization/lock.h" |
| @@ -426,23 +427,23 @@ 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); |
| + UMA_HISTOGRAM_BOOLEAN("Net.URLRequest_SetReferrer_IsValid", |
| + referrer_url.is_valid()); |
|
mmenke
2013/03/19 19:01:09
An empty referrer URL is presumably not a valid GU
mmenke
2013/03/19 19:01:09
What's the motivation for gathering this informati
mef
2013/03/19 21:40:29
Done.
mef
2013/03/19 21:40:29
The idea is to see how often are invalid urls seen
mmenke
2013/03/20 16:33:51
Sounds reasonable to me.
|
| + 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) { |