ProjectingObserverChromeos: Drop DBusThreadManager dependency for better testing.
[chromium-blink-merge.git] / components / cronet / url_request_context_config.cc
blobe76bba3b1bb6168fc3b0c5df5811f0e3bb46151c
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "components/cronet/url_request_context_config.h"
7 #include "net/url_request/url_request_context_builder.h"
9 namespace cronet {
11 #define DEFINE_CONTEXT_CONFIG(x) const char REQUEST_CONTEXT_CONFIG_##x[] = #x;
12 #include "components/cronet/url_request_context_config_list.h"
13 #undef DEFINE_CONTEXT_CONFIG
15 URLRequestContextConfig::QuicHint::QuicHint() {
18 URLRequestContextConfig::QuicHint::~QuicHint() {
21 // static
22 void URLRequestContextConfig::QuicHint::RegisterJSONConverter(
23 base::JSONValueConverter<URLRequestContextConfig::QuicHint>* converter) {
24 converter->RegisterStringField(REQUEST_CONTEXT_CONFIG_QUIC_HINT_HOST,
25 &URLRequestContextConfig::QuicHint::host);
26 converter->RegisterIntField(
27 REQUEST_CONTEXT_CONFIG_QUIC_HINT_PORT,
28 &URLRequestContextConfig::QuicHint::port);
29 converter->RegisterIntField(
30 REQUEST_CONTEXT_CONFIG_QUIC_HINT_ALT_PORT,
31 &URLRequestContextConfig::QuicHint::alternate_port);
34 URLRequestContextConfig::URLRequestContextConfig() {
37 URLRequestContextConfig::~URLRequestContextConfig() {
40 void URLRequestContextConfig::ConfigureURLRequestContextBuilder(
41 net::URLRequestContextBuilder* context_builder) {
42 std::string config_cache;
43 if (http_cache != REQUEST_CONTEXT_CONFIG_HTTP_CACHE_DISABLED) {
44 net::URLRequestContextBuilder::HttpCacheParams cache_params;
45 if (http_cache == REQUEST_CONTEXT_CONFIG_HTTP_CACHE_DISK &&
46 !storage_path.empty()) {
47 cache_params.type = net::URLRequestContextBuilder::HttpCacheParams::DISK;
48 cache_params.path = base::FilePath(storage_path);
49 } else {
50 cache_params.type =
51 net::URLRequestContextBuilder::HttpCacheParams::IN_MEMORY;
53 cache_params.max_size = http_cache_max_size;
54 context_builder->EnableHttpCache(cache_params);
55 } else {
56 context_builder->DisableHttpCache();
59 context_builder->SetSpdyAndQuicEnabled(enable_spdy, enable_quic);
60 // TODO(mef): Use |config| to set cookies.
63 // static
64 void URLRequestContextConfig::RegisterJSONConverter(
65 base::JSONValueConverter<URLRequestContextConfig>* converter) {
66 converter->RegisterBoolField(REQUEST_CONTEXT_CONFIG_ENABLE_QUIC,
67 &URLRequestContextConfig::enable_quic);
68 converter->RegisterBoolField(REQUEST_CONTEXT_CONFIG_ENABLE_SPDY,
69 &URLRequestContextConfig::enable_spdy);
70 converter->RegisterStringField(REQUEST_CONTEXT_CONFIG_HTTP_CACHE,
71 &URLRequestContextConfig::http_cache);
72 converter->RegisterIntField(REQUEST_CONTEXT_CONFIG_HTTP_CACHE_MAX_SIZE,
73 &URLRequestContextConfig::http_cache_max_size);
74 converter->RegisterStringField(REQUEST_CONTEXT_CONFIG_STORAGE_PATH,
75 &URLRequestContextConfig::storage_path);
76 converter->RegisterRepeatedMessage(REQUEST_CONTEXT_CONFIG_QUIC_HINTS,
77 &URLRequestContextConfig::quic_hints);
80 } // namespace cronet