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 89e509ec6aba62eaaf3d2d76138f4980c65a30c6..cf491383f4d52bd58fdb1bc91e430f3180053a30 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,30 +20,23 @@ |
namespace cronet { |
// Common configuration parameters used by Cronet to configure |
-// URLRequestContext. |
+// URLRequestContext. Can be parsed from JSON string passed through JNI. |
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(const std::string& host, int port, int alternate_port); |
+ QuicHint(); |
~QuicHint(); |
+ // Register |converter| for use in converter.Convert(). |
+ static void RegisterJSONConverter( |
+ base::JSONValueConverter<QuicHint>* converter); |
+ |
// Host name of the server that supports QUIC. |
- const std::string host; |
+ std::string host; |
// Port of the server that supports QUIC. |
- const int port; |
+ int port; |
// Alternate protocol port. |
- const int alternate_port; |
+ int alternate_port; |
private: |
DISALLOW_COPY_AND_ASSIGN(QuicHint); |
@@ -51,98 +44,76 @@ |
// Public-Key-Pinning configuration structure. |
struct Pkp { |
- Pkp(const std::string& host, |
- bool include_subdomains, |
- const base::Time& expiration_date); |
+ Pkp(); |
~Pkp(); |
+ // Register |converter| for use in converter.Convert(). |
+ static void RegisterJSONConverter(base::JSONValueConverter<Pkp>* converter); |
+ |
// Host name. |
- const std::string host; |
+ std::string host; |
// Pin hashes (currently SHA256 only). |
- net::HashValueVector pin_hashes; |
+ ScopedVector<std::string> pin_hashes; |
// Indicates whether the pinning should apply to the pinned host subdomains. |
- const bool include_subdomains; |
+ bool include_subdomains; |
// Expiration date for the pins. |
- const base::Time expiration_date; |
+ base::Time expiration_date; |
private: |
DISALLOW_COPY_AND_ASSIGN(Pkp); |
}; |
- 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(); |
~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. |
- const bool enable_quic; |
+ bool enable_quic; |
// Enable SPDY. |
- const bool enable_spdy; |
+ bool enable_spdy; |
// Enable SDCH. |
- const bool enable_sdch; |
- // Type of http cache. |
- const HttpCacheType http_cache; |
+ bool enable_sdch; |
+ // Type of http cache: "HTTP_CACHE_DISABLED", "HTTP_CACHE_DISK" or |
+ // "HTTP_CACHE_IN_MEMORY". |
+ std::string http_cache; |
// Max size of http cache in bytes. |
- const int http_cache_max_size; |
+ int http_cache_max_size; |
// Disable caching for HTTP responses. Other information may be stored in |
// the cache. |
- const bool load_disable_cache; |
+ bool load_disable_cache; |
// Storage path for http cache and cookie storage. |
- const std::string storage_path; |
+ std::string storage_path; |
// User-Agent request header field. |
- const std::string user_agent; |
+ std::string user_agent; |
+ // App-provided list of servers that support QUIC. |
+ ScopedVector<QuicHint> quic_hints; |
// 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", ...}, ...} |
- const std::string experimental_options; |
+ std::string experimental_options; |
// Enable Data Reduction Proxy with authentication key. |
- 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; |
+ 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; |
// 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); |