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

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: Sync'd to r288872 Created 6 years, 4 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
« no previous file with comments | « net/base/sdch_manager.h ('k') | net/base/sdch_manager_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/base/sdch_manager.cc
diff --git a/net/base/sdch_manager.cc b/net/base/sdch_manager.cc
index 8b7481b50b582b80829ac0f2b1b928333c1b1a38..4e7884f3ff466619778997d0f23c063dd1186cea 100644
--- a/net/base/sdch_manager.cc
+++ b/net/base/sdch_manager.cc
@@ -234,7 +234,6 @@ SdchManager::~SdchManager() {
void SdchManager::ClearData() {
blacklisted_domains_.clear();
- exponential_blacklist_count_.clear();
allow_latency_experiment_.clear();
if (fetcher_.get())
fetcher_->Cancel();
@@ -266,51 +265,63 @@ 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(base::StringToLowerASCII(url.host()));
- int count = blacklisted_domains_[domain];
- if (count > 0)
+ BlacklistInfo* blacklist_info =
+ &blacklisted_domains_[base::StringToLowerASCII(url.host())];
+
+ if (blacklist_info->count > 0)
return; // Domain is already blacklisted.
- count = 1 + 2 * exponential_blacklist_count_[domain];
- if (count > 0)
- exponential_blacklist_count_[domain] = count;
- else
- count = INT_MAX;
+ if (blacklist_info->exponential_count > (INT_MAX - 1) / 2) {
+ blacklist_info->exponential_count = INT_MAX;
+ } else {
+ blacklist_info->exponential_count =
+ blacklist_info->exponential_count * 2 + 1;
+ }
- 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(base::StringToLowerASCII(url.host()));
- exponential_blacklist_count_[domain] = INT_MAX;
- blacklisted_domains_[domain] = INT_MAX;
+ BlacklistInfo* blacklist_info =
+ &blacklisted_domains_[base::StringToLowerASCII(url.host())];
+ 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(base::StringToLowerASCII(domain));
+ BlacklistInfo* blacklist_info = &blacklisted_domains_[
+ base::StringToLowerASCII(domain)];
+ blacklist_info->count = 0;
+ blacklist_info->reason = MIN_PROBLEM_CODE;
}
int SdchManager::BlackListDomainCount(const std::string& domain) {
- if (blacklisted_domains_.end() == blacklisted_domains_.find(domain))
+ std::string domain_lower(base::StringToLowerASCII(domain));
+
+ if (blacklisted_domains_.end() == blacklisted_domains_.find(domain_lower))
return 0;
- return blacklisted_domains_[base::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(base::StringToLowerASCII(domain));
+
+ if (blacklisted_domains_.end() == blacklisted_domains_.find(domain_lower))
return 0;
- return exponential_blacklist_count_[base::StringToLowerASCII(domain)];
+ return blacklisted_domains_[domain_lower].exponential_count;
}
bool SdchManager::IsInSupportedDomain(const GURL& url) {
@@ -324,17 +335,23 @@ bool SdchManager::IsInSupportedDomain(const GURL& url) {
if (blacklisted_domains_.empty())
return true;
- std::string domain(base::StringToLowerASCII(url.host()));
- DomainCounter::iterator it = blacklisted_domains_.find(domain);
- if (blacklisted_domains_.end() == it)
+ DomainBlacklistInfo::iterator it =
+ blacklisted_domains_.find(base::StringToLowerASCII(url.host()));
+ 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);
+ UMA_HISTOGRAM_ENUMERATION("Sdch3.BlacklistReason", it->second.reason,
+ MAX_PROBLEM_CODE);
SdchErrorRecovery(DOMAIN_BLACKLIST_INCLUDES_TARGET);
+
+ int count = it->second.count - 1;
+ if (count > 0) {
+ it->second.count = count;
+ } else {
+ it->second.count = 0;
+ it->second.reason = MIN_PROBLEM_CODE;
+ }
+
return false;
}
« no previous file with comments | « net/base/sdch_manager.h ('k') | net/base/sdch_manager_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698