Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(107)

Unified Diff: net/base/sdch_manager.cc

Issue 414563002: Added stats on why blacklisted requests were blacklisted. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: net/base/sdch_manager.cc
diff --git a/net/base/sdch_manager.cc b/net/base/sdch_manager.cc
index 8892c13a7c46013467b1b249515a8157bab7ed9f..104d2e69146dc648c1c211d8c5ca0b5e8d4f8042 100644
--- a/net/base/sdch_manager.cc
+++ b/net/base/sdch_manager.cc
@@ -232,7 +232,6 @@ SdchManager::~SdchManager() {
void SdchManager::ClearData() {
blacklisted_domains_.clear();
- exponential_blacklist_count_.clear();
allow_latency_experiment_.clear();
if (fetcher_.get())
fetcher_->Cancel();
@@ -264,51 +263,62 @@ void SdchManager::EnableSecureSchemeSupport(bool enabled) {
g_secure_scheme_supported_ = enabled;
}
-void SdchManager::BlacklistDomain(const GURL& url) {
+void SdchManager::BlacklistDomain(const GURL& url,
+ ProblemCodes blacklist_reason) {
SetAllowLatencyExperiment(url, false);
std::string domain(StringToLowerASCII(url.host()));
- int count = blacklisted_domains_[domain];
- if (count > 0)
+ BlacklistInfo* blacklist_info = &blacklisted_domains_[domain];
+
+ if (blacklist_info->count > 0)
return; // Domain is already blacklisted.
- count = 1 + 2 * exponential_blacklist_count_[domain];
+ int count = 1 + 2 * blacklist_info->exponential_count;
if (count > 0)
- exponential_blacklist_count_[domain] = count;
+ blacklist_info->exponential_count = count;
else
- count = INT_MAX;
+ blacklist_info->exponential_count = INT_MAX;
- blacklisted_domains_[domain] = count;
+ blacklist_info->count = blacklist_info->exponential_count;
+ blacklist_info->reason = blacklist_reason;
}
-void SdchManager::BlacklistDomainForever(const GURL& url) {
+void SdchManager::BlacklistDomainForever(const GURL& url,
+ ProblemCodes blacklist_reason) {
SetAllowLatencyExperiment(url, false);
std::string domain(StringToLowerASCII(url.host()));
- exponential_blacklist_count_[domain] = INT_MAX;
- blacklisted_domains_[domain] = INT_MAX;
+ BlacklistInfo* blacklist_info = &blacklisted_domains_[domain];
+ blacklist_info->count = INT_MAX;
+ blacklist_info->exponential_count = INT_MAX;
+ blacklist_info->reason = blacklist_reason;
}
void SdchManager::ClearBlacklistings() {
blacklisted_domains_.clear();
- exponential_blacklist_count_.clear();
}
void SdchManager::ClearDomainBlacklisting(const std::string& domain) {
- blacklisted_domains_.erase(StringToLowerASCII(domain));
+ BlacklistInfo* blacklist_info = &blacklisted_domains_[
+ StringToLowerASCII(domain)];
+ blacklist_info->count = 0;
+ blacklist_info->reason = MIN_PROBLEM_CODE;
jar (doing other things) 2014/08/05 23:33:30 Why did you change to leaving the entry in the map
Randy Smith (Not in Mondays) 2014/08/11 20:46:39 Because the map now contains the exponential backo
}
int SdchManager::BlackListDomainCount(const std::string& domain) {
- if (blacklisted_domains_.end() == blacklisted_domains_.find(domain))
+ std::string domain_lower(StringToLowerASCII(domain));
jar (doing other things) 2014/08/05 23:33:30 Good bug fix! Old code assumed it was already lowe
Randy Smith (Not in Mondays) 2014/08/11 20:46:39 Done (or got rid of any variable at all), everywhe
+
+ if (blacklisted_domains_.end() == blacklisted_domains_.find(domain_lower))
return 0;
- return blacklisted_domains_[StringToLowerASCII(domain)];
+ return blacklisted_domains_[domain_lower].count;
}
int SdchManager::BlacklistDomainExponential(const std::string& domain) {
- if (exponential_blacklist_count_.end() ==
- exponential_blacklist_count_.find(domain))
+ std::string domain_lower(StringToLowerASCII(domain));
+
+ if (blacklisted_domains_.end() == blacklisted_domains_.find(domain_lower))
return 0;
- return exponential_blacklist_count_[StringToLowerASCII(domain)];
+ return blacklisted_domains_[domain_lower].exponential_count;
}
bool SdchManager::IsInSupportedDomain(const GURL& url) {
@@ -323,15 +333,20 @@ bool SdchManager::IsInSupportedDomain(const GURL& url) {
return true;
std::string domain(StringToLowerASCII(url.host()));
- DomainCounter::iterator it = blacklisted_domains_.find(domain);
- if (blacklisted_domains_.end() == it)
+ DomainBlacklistInfo::iterator it = blacklisted_domains_.find(domain);
+ if (blacklisted_domains_.end() == it || it->second.count == 0)
return true;
- int count = it->second - 1;
- if (count > 0)
- blacklisted_domains_[domain] = count;
- else
- blacklisted_domains_.erase(domain);
+ int count = it->second.count - 1;
+ if (count > 0) {
+ it->second.count = count;
+ } else {
+ it->second.count = 0;
+ it->second.reason = MIN_PROBLEM_CODE;
+ }
+
+ UMA_HISTOGRAM_ENUMERATION("Sdch3.BlacklistReason", it->second.reason,
jar (doing other things) 2014/08/05 23:33:30 Maybe this should go before line 343, since it may
Randy Smith (Not in Mondays) 2014/08/11 20:46:39 Ooops; thanks for the catch. No, I think we still
+ MAX_PROBLEM_CODE);
SdchErrorRecovery(DOMAIN_BLACKLIST_INCLUDES_TARGET);
return false;
}

Powered by Google App Engine
This is Rietveld 408576698