| Index: components/cronet/url_request_context_config.h
|
| diff --git a/components/cronet/url_request_context_config.h b/components/cronet/url_request_context_config.h
|
| index cf491383f4d52bd58fdb1bc91e430f3180053a30..89e509ec6aba62eaaf3d2d76138f4980c65a30c6 100644
|
| --- a/components/cronet/url_request_context_config.h
|
| +++ b/components/cronet/url_request_context_config.h
|
| @@ -7,10 +7,10 @@
|
|
|
| #include <string>
|
|
|
| -#include "base/json/json_value_converter.h"
|
| #include "base/macros.h"
|
| #include "base/memory/scoped_vector.h"
|
| #include "base/time/time.h"
|
| +#include "net/base/hash_value.h"
|
|
|
| namespace net {
|
| class CertVerifier;
|
| @@ -20,23 +20,30 @@ class URLRequestContextBuilder;
|
| namespace cronet {
|
|
|
| // Common configuration parameters used by Cronet to configure
|
| -// URLRequestContext. Can be parsed from JSON string passed through JNI.
|
| +// URLRequestContext.
|
| struct URLRequestContextConfig {
|
| + // Type of HTTP cache.
|
| + // GENERATED_JAVA_ENUM_PACKAGE: org.chromium.net
|
| + enum HttpCacheType {
|
| + // No HTTP cache.
|
| + DISABLED,
|
| + // HTTP cache persisted to disk.
|
| + DISK,
|
| + // HTTP cache kept in memory.
|
| + MEMORY,
|
| + };
|
| +
|
| // App-provided hint that server supports QUIC.
|
| struct QuicHint {
|
| - QuicHint();
|
| + QuicHint(const std::string& host, int port, int alternate_port);
|
| ~QuicHint();
|
|
|
| - // Register |converter| for use in converter.Convert().
|
| - static void RegisterJSONConverter(
|
| - base::JSONValueConverter<QuicHint>* converter);
|
| -
|
| // Host name of the server that supports QUIC.
|
| - std::string host;
|
| + const std::string host;
|
| // Port of the server that supports QUIC.
|
| - int port;
|
| + const int port;
|
| // Alternate protocol port.
|
| - int alternate_port;
|
| + const int alternate_port;
|
|
|
| private:
|
| DISALLOW_COPY_AND_ASSIGN(QuicHint);
|
| @@ -44,77 +51,99 @@ struct URLRequestContextConfig {
|
|
|
| // Public-Key-Pinning configuration structure.
|
| struct Pkp {
|
| - Pkp();
|
| + Pkp(const std::string& host,
|
| + bool include_subdomains,
|
| + const base::Time& expiration_date);
|
| ~Pkp();
|
|
|
| - // Register |converter| for use in converter.Convert().
|
| - static void RegisterJSONConverter(base::JSONValueConverter<Pkp>* converter);
|
| -
|
| // Host name.
|
| - std::string host;
|
| + const std::string host;
|
| // Pin hashes (currently SHA256 only).
|
| - ScopedVector<std::string> pin_hashes;
|
| + net::HashValueVector pin_hashes;
|
| // Indicates whether the pinning should apply to the pinned host subdomains.
|
| - bool include_subdomains;
|
| + const bool include_subdomains;
|
| // Expiration date for the pins.
|
| - base::Time expiration_date;
|
| + const base::Time expiration_date;
|
|
|
| private:
|
| DISALLOW_COPY_AND_ASSIGN(Pkp);
|
| };
|
|
|
| - URLRequestContextConfig();
|
| + URLRequestContextConfig(
|
| + // Enable QUIC.
|
| + bool enable_quic,
|
| + // Enable SPDY.
|
| + bool enable_spdy,
|
| + // Enable SDCH.
|
| + bool enable_sdch,
|
| + // Type of http cache.
|
| + HttpCacheType http_cache,
|
| + // Max size of http cache in bytes.
|
| + int http_cache_max_size,
|
| + // Disable caching for HTTP responses. Other information may be stored in
|
| + // the cache.
|
| + bool load_disable_cache,
|
| + // Storage path for http cache and cookie storage.
|
| + const std::string& storage_path,
|
| + // User-Agent request header field.
|
| + const std::string& user_agent,
|
| + // JSON encoded experimental options.
|
| + const std::string& experimental_options,
|
| + // Data reduction proxy key.
|
| + const std::string& data_reduction_proxy_key,
|
| + // Data reduction proxy.
|
| + const std::string& data_reduction_primary_proxy,
|
| + // Fallback data reduction proxy.
|
| + const std::string& data_reduction_fallback_proxy,
|
| + // Data reduction proxy secure proxy check URL.
|
| + const std::string& data_reduction_secure_proxy_check_url,
|
| + // MockCertVerifier to use for testing purposes.
|
| + scoped_ptr<net::CertVerifier> mock_cert_verifier);
|
| ~URLRequestContextConfig();
|
|
|
| - // Load config values from JSON format.
|
| - bool LoadFromJSON(const std::string& config_string);
|
| -
|
| // Configure |context_builder| based on |this|.
|
| void ConfigureURLRequestContextBuilder(
|
| net::URLRequestContextBuilder* context_builder);
|
|
|
| - // Register |converter| for use in converter.Convert().
|
| - static void RegisterJSONConverter(
|
| - base::JSONValueConverter<URLRequestContextConfig>* converter);
|
| -
|
| // Enable QUIC.
|
| - bool enable_quic;
|
| + const bool enable_quic;
|
| // Enable SPDY.
|
| - bool enable_spdy;
|
| + const bool enable_spdy;
|
| // Enable SDCH.
|
| - bool enable_sdch;
|
| - // Type of http cache: "HTTP_CACHE_DISABLED", "HTTP_CACHE_DISK" or
|
| - // "HTTP_CACHE_IN_MEMORY".
|
| - std::string http_cache;
|
| + const bool enable_sdch;
|
| + // Type of http cache.
|
| + const HttpCacheType http_cache;
|
| // Max size of http cache in bytes.
|
| - int http_cache_max_size;
|
| + const int http_cache_max_size;
|
| // Disable caching for HTTP responses. Other information may be stored in
|
| // the cache.
|
| - bool load_disable_cache;
|
| + const bool load_disable_cache;
|
| // Storage path for http cache and cookie storage.
|
| - std::string storage_path;
|
| + const std::string storage_path;
|
| // User-Agent request header field.
|
| - std::string user_agent;
|
| - // App-provided list of servers that support QUIC.
|
| - ScopedVector<QuicHint> quic_hints;
|
| + const std::string user_agent;
|
| // Experimental options encoded as a string in a JSON format containing
|
| // experiments and their corresponding configuration options. The format
|
| // is a JSON object with the name of the experiment as the key, and the
|
| // configuration options as the value. An example:
|
| // {"experiment1": {"option1": "option_value1", "option2": "option_value2",
|
| // ...}, "experiment2: {"option3", "option_value3", ...}, ...}
|
| - std::string experimental_options;
|
| + const std::string experimental_options;
|
| // Enable Data Reduction Proxy with authentication key.
|
| - std::string data_reduction_proxy_key;
|
| - std::string data_reduction_primary_proxy;
|
| - std::string data_reduction_fallback_proxy;
|
| - std::string data_reduction_secure_proxy_check_url;
|
| - // The list of public key pins.
|
| - ScopedVector<Pkp> pkp_list;
|
| + const std::string data_reduction_proxy_key;
|
| + const std::string data_reduction_primary_proxy;
|
| + const std::string data_reduction_fallback_proxy;
|
| + const std::string data_reduction_secure_proxy_check_url;
|
|
|
| // Certificate verifier for testing.
|
| scoped_ptr<net::CertVerifier> mock_cert_verifier;
|
|
|
| + // App-provided list of servers that support QUIC.
|
| + ScopedVector<QuicHint> quic_hints;
|
| +
|
| + // The list of public key pins.
|
| + ScopedVector<Pkp> pkp_list;
|
| +
|
| private:
|
| DISALLOW_COPY_AND_ASSIGN(URLRequestContextConfig);
|
| };
|
|
|