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

Unified Diff: components/cronet/url_request_context_config.h

Issue 2567093002: [cronet] Add a Builder class for UrlRequestContextConfig (Closed)
Patch Set: try fixing build (per #19) Created 3 years, 11 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 | « components/cronet/ios/cronet_environment.mm ('k') | components/cronet/url_request_context_config.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 f01564e2094b7cbfb9e1adc6bdf1949f63ec0045..3ef5159a37480df1548faa822d191593c2486cc8 100644
--- a/components/cronet/url_request_context_config.h
+++ b/components/cronet/url_request_context_config.h
@@ -13,6 +13,7 @@
#include "base/memory/scoped_vector.h"
#include "base/time/time.h"
#include "net/base/hash_value.h"
+#include "net/cert/cert_verifier.h"
namespace base {
class SequencedTaskRunner;
@@ -176,6 +177,67 @@ struct URLRequestContextConfig {
DISALLOW_COPY_AND_ASSIGN(URLRequestContextConfig);
};
+// Stores intermediate state for URLRequestContextConfig. Initializes with
+// (mostly) sane defaults, then the appropriate member variables can be
+// modified, and it can be finalized with Build().
+struct URLRequestContextConfigBuilder {
+ URLRequestContextConfigBuilder();
+ ~URLRequestContextConfigBuilder();
+
+ // Finalize state into a URLRequestContextConfig. Must only be called once,
+ // as once |mock_cert_verifier| is moved into a URLRequestContextConfig, it
+ // cannot be used again.
+ std::unique_ptr<URLRequestContextConfig> Build();
+
+ // Enable QUIC.
+ bool enable_quic = false;
+ // QUIC User Agent ID.
+ std::string quic_user_agent_id = "";
+ // Enable SPDY.
+ bool enable_spdy = true;
+ // Enable SDCH.
+ bool enable_sdch = false;
+ // Type of http cache.
+ URLRequestContextConfig::HttpCacheType http_cache =
+ URLRequestContextConfig::DISABLED;
+ // Max size of http cache in bytes.
+ int http_cache_max_size = 0;
+ // Disable caching for HTTP responses. Other information may be stored in
+ // the cache.
+ bool load_disable_cache = false;
+ // Storage path for http cache and cookie storage.
+ std::string storage_path = "";
+ // User-Agent request header field.
+ 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 = "{}";
+ // 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 = "";
+
+ // Certificate verifier for testing.
+ std::unique_ptr<net::CertVerifier> mock_cert_verifier = nullptr;
+
+ // Enable network quality estimator.
+ bool enable_network_quality_estimator = false;
+
+ // Enable public key pinning bypass for local trust anchors.
+ bool bypass_public_key_pinning_for_local_trust_anchors = true;
+
+ // Data to populate CertVerifierCache.
+ std::string cert_verifier_data = "";
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(URLRequestContextConfigBuilder);
+};
+
} // namespace cronet
#endif // COMPONENTS_CRONET_URL_REQUEST_CONTEXT_CONFIG_H_
« no previous file with comments | « components/cronet/ios/cronet_environment.mm ('k') | components/cronet/url_request_context_config.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698