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

Unified Diff: components/domain_reliability/config.cc

Issue 1180223006: Domain Reliability: Simplify configs and reports (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Make requested changes Created 5 years, 1 month 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: components/domain_reliability/config.cc
diff --git a/components/domain_reliability/config.cc b/components/domain_reliability/config.cc
index 8653cbb6615792faac74e6214a6ad03987278d97..154280f69cc8ead3119bf4bf8a1863773b77965f 100644
--- a/components/domain_reliability/config.cc
+++ b/components/domain_reliability/config.cc
@@ -20,74 +20,31 @@
namespace {
-bool ConvertURL(const base::StringPiece& string_piece, GURL* url) {
- *url = GURL(string_piece.as_string());
+bool ConvertURL(const base::Value* value, GURL* url) {
+ std::string url_string;
+ if (!value->GetAsString(&url_string))
+ return false;
+ *url = GURL(url_string);
return url->is_valid();
}
-bool IsValidSampleRate(double p) { return p >= 0.0 && p <= 1.0; }
-
-} // namespace
-
-namespace domain_reliability {
-
-// static
-const size_t DomainReliabilityConfig::kInvalidResourceIndex = SIZE_MAX;
-
-DomainReliabilityConfig::Resource::Resource() {
-}
-DomainReliabilityConfig::Resource::~Resource() {}
-
-bool DomainReliabilityConfig::Resource::MatchesUrl(const GURL& url) const {
- const std::string& spec = url.spec();
-
- for (const auto& url_pattern : url_patterns) {
- if (base::MatchPattern(spec, *url_pattern))
- return true;
- }
-
- return false;
-}
-
-bool DomainReliabilityConfig::Resource::DecideIfShouldReportRequest(
- bool success) const {
- double sample_rate = success ? success_sample_rate : failure_sample_rate;
- DCHECK(IsValidSampleRate(sample_rate));
- return base::RandDouble() < sample_rate;
-}
-
-// static
-void DomainReliabilityConfig::Resource::RegisterJSONConverter(
- base::JSONValueConverter<DomainReliabilityConfig::Resource>* converter) {
- converter->RegisterStringField("resource_name", &Resource::name);
- converter->RegisterRepeatedString("url_patterns", &Resource::url_patterns);
- converter->RegisterDoubleField("success_sample_rate",
- &Resource::success_sample_rate);
- converter->RegisterDoubleField("failure_sample_rate",
- &Resource::failure_sample_rate);
+bool ConvertOrigin(const base::Value* value, GURL* url) {
+ return ConvertURL(value, url) && !url->has_username() &&
+ !url->has_password() && url->SchemeIs("https") &&
+ url->path_piece() == "/" && !url->has_query() && !url->has_ref();
}
-bool DomainReliabilityConfig::Resource::IsValid() const {
- return !name.empty() && !url_patterns.empty() &&
- IsValidSampleRate(success_sample_rate) &&
- IsValidSampleRate(failure_sample_rate);
+bool IsValidSampleRate(double p) {
+ return p >= 0.0 && p <= 1.0;
}
-DomainReliabilityConfig::Collector::Collector() {}
-DomainReliabilityConfig::Collector::~Collector() {}
+} // namespace
-// static
-void DomainReliabilityConfig::Collector::RegisterJSONConverter(
- base::JSONValueConverter<DomainReliabilityConfig::Collector>* converter) {
- converter->RegisterCustomField<GURL>("upload_url", &Collector::upload_url,
- &ConvertURL);
-}
+namespace domain_reliability {
-bool DomainReliabilityConfig::Collector::IsValid() const {
- return upload_url.is_valid();
+DomainReliabilityConfig::DomainReliabilityConfig()
+ : success_sample_rate(-1.0), failure_sample_rate(-1.0) {
Randy Smith (Not in Mondays) 2015/11/03 21:48:12 Shouldn't this also initialize the bool include_su
Deprecated (see juliatuttle) 2015/11/06 17:22:29 No need, but I'll set it to false just to be safe.
}
-
-DomainReliabilityConfig::DomainReliabilityConfig() {}
DomainReliabilityConfig::~DomainReliabilityConfig() {}
// static
@@ -108,45 +65,40 @@ scoped_ptr<const DomainReliabilityConfig> DomainReliabilityConfig::FromJSON(
}
bool DomainReliabilityConfig::IsValid() const {
- if (domain.empty() || resources.empty() || collectors.empty())
+ if (!origin.is_valid() || collectors.empty() ||
+ !IsValidSampleRate(success_sample_rate) ||
+ !IsValidSampleRate(failure_sample_rate)) {
return false;
-
- for (auto& resource : resources) {
- if (!resource->IsValid())
- return false;
}
- for (auto& collector : collectors) {
- if (!collector->IsValid())
+ for (const auto& url : collectors) {
+ if (!url->is_valid())
return false;
}
return true;
}
-size_t DomainReliabilityConfig::GetResourceIndexForUrl(const GURL& url) const {
- // Removes username, password, and fragment.
- GURL sanitized_url = url.GetAsReferrer();
-
- for (size_t i = 0; i < resources.size(); ++i) {
- if (resources[i]->MatchesUrl(sanitized_url))
- return i;
- }
-
- return kInvalidResourceIndex;
+bool DomainReliabilityConfig::DecideIfShouldReportRequest(bool success) const {
+ double sample_rate = success ? success_sample_rate : failure_sample_rate;
+ return base::RandDouble() < sample_rate;
}
// static
void DomainReliabilityConfig::RegisterJSONConverter(
base::JSONValueConverter<DomainReliabilityConfig>* converter) {
- converter->RegisterStringField("config_version",
- &DomainReliabilityConfig::version);
- converter->RegisterStringField("monitored_domain",
- &DomainReliabilityConfig::domain);
- converter->RegisterRepeatedMessage("monitored_resources",
- &DomainReliabilityConfig::resources);
- converter->RegisterRepeatedMessage("collectors",
- &DomainReliabilityConfig::collectors);
+ converter->RegisterCustomValueField<GURL>(
+ "origin", &DomainReliabilityConfig::origin, &ConvertOrigin);
+ converter->RegisterBoolField("include_subdomains",
+ &DomainReliabilityConfig::include_subdomains);
+ converter->RegisterRepeatedCustomValue(
+ "collectors", &DomainReliabilityConfig::collectors, &ConvertURL);
+ converter->RegisterRepeatedString("path_prefixes",
+ &DomainReliabilityConfig::path_prefixes);
+ converter->RegisterDoubleField("success_sample_rate",
+ &DomainReliabilityConfig::success_sample_rate);
+ converter->RegisterDoubleField("failure_sample_rate",
+ &DomainReliabilityConfig::failure_sample_rate);
}
} // namespace domain_reliability

Powered by Google App Engine
This is Rietveld 408576698