diff options
Diffstat (limited to 'chromium/components/domain_reliability/config.h')
-rw-r--r-- | chromium/components/domain_reliability/config.h | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/chromium/components/domain_reliability/config.h b/chromium/components/domain_reliability/config.h new file mode 100644 index 00000000000..605bd583b82 --- /dev/null +++ b/chromium/components/domain_reliability/config.h @@ -0,0 +1,57 @@ +// Copyright 2014 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef COMPONENTS_DOMAIN_RELIABILITY_CONFIG_H_ +#define COMPONENTS_DOMAIN_RELIABILITY_CONFIG_H_ + +#include <string> +#include <vector> + +#include "base/json/json_value_converter.h" +#include "base/macros.h" +#include "base/memory/scoped_ptr.h" +#include "base/strings/string_piece.h" +#include "base/time/time.h" +#include "base/values.h" +#include "components/domain_reliability/domain_reliability_export.h" +#include "url/gurl.h" + +namespace domain_reliability { + +// The per-origin configuration that controls which requests are measured and +// reported, with what frequency, and where the beacons are uploaded. +struct DOMAIN_RELIABILITY_EXPORT DomainReliabilityConfig { + public: + DomainReliabilityConfig(); + ~DomainReliabilityConfig(); + + // Uses the JSONValueConverter to parse the JSON for a config into a struct. + static scoped_ptr<const DomainReliabilityConfig> FromJSON( + const base::StringPiece& json); + + bool IsValid() const; + bool Equals(const DomainReliabilityConfig& other) const; + + double GetSampleRate(bool request_successful) const; + + // Registers with the JSONValueConverter so it will know how to convert the + // JSON for a config into the struct. + static void RegisterJSONConverter( + base::JSONValueConverter<DomainReliabilityConfig>* converter); + + GURL origin; + bool include_subdomains; + ScopedVector<GURL> collectors; + + double success_sample_rate; + double failure_sample_rate; + ScopedVector<std::string> path_prefixes; + + private: + DISALLOW_COPY_AND_ASSIGN(DomainReliabilityConfig); +}; + +} // namespace domain_reliability + +#endif // COMPONENTS_DOMAIN_RELIABILITY_CONFIG_H_ |