| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "components/cronet/url_request_context_config.h" | 5 #include "components/cronet/url_request_context_config.h" |
| 6 | 6 |
| 7 #include "base/json/json_reader.h" |
| 8 #include "base/values.h" |
| 7 #include "net/url_request/url_request_context_builder.h" | 9 #include "net/url_request/url_request_context_builder.h" |
| 8 | 10 |
| 9 namespace cronet { | 11 namespace cronet { |
| 10 | 12 |
| 11 #define DEFINE_CONTEXT_CONFIG(x) const char REQUEST_CONTEXT_CONFIG_##x[] = #x; | 13 #define DEFINE_CONTEXT_CONFIG(x) const char REQUEST_CONTEXT_CONFIG_##x[] = #x; |
| 12 #include "components/cronet/url_request_context_config_list.h" | 14 #include "components/cronet/url_request_context_config_list.h" |
| 13 #undef DEFINE_CONTEXT_CONFIG | 15 #undef DEFINE_CONTEXT_CONFIG |
| 14 | 16 |
| 15 URLRequestContextConfig::QuicHint::QuicHint() { | 17 URLRequestContextConfig::QuicHint::QuicHint() { |
| 16 } | 18 } |
| (...skipping 13 matching lines...) Expand all Loading... |
| 30 REQUEST_CONTEXT_CONFIG_QUIC_HINT_ALT_PORT, | 32 REQUEST_CONTEXT_CONFIG_QUIC_HINT_ALT_PORT, |
| 31 &URLRequestContextConfig::QuicHint::alternate_port); | 33 &URLRequestContextConfig::QuicHint::alternate_port); |
| 32 } | 34 } |
| 33 | 35 |
| 34 URLRequestContextConfig::URLRequestContextConfig() { | 36 URLRequestContextConfig::URLRequestContextConfig() { |
| 35 } | 37 } |
| 36 | 38 |
| 37 URLRequestContextConfig::~URLRequestContextConfig() { | 39 URLRequestContextConfig::~URLRequestContextConfig() { |
| 38 } | 40 } |
| 39 | 41 |
| 42 bool URLRequestContextConfig::LoadFromJSON(const std::string& config_string) { |
| 43 scoped_ptr<base::Value> config_value(base::JSONReader::Read(config_string)); |
| 44 if (!config_value || !config_value->IsType(base::Value::TYPE_DICTIONARY)) { |
| 45 DLOG(ERROR) << "Bad JSON: " << config_string; |
| 46 return false; |
| 47 } |
| 48 |
| 49 base::JSONValueConverter<URLRequestContextConfig> converter; |
| 50 if (!converter.Convert(*config_value, this)) { |
| 51 DLOG(ERROR) << "Bad Config: " << config_value; |
| 52 return false; |
| 53 } |
| 54 return true; |
| 55 } |
| 56 |
| 40 void URLRequestContextConfig::ConfigureURLRequestContextBuilder( | 57 void URLRequestContextConfig::ConfigureURLRequestContextBuilder( |
| 41 net::URLRequestContextBuilder* context_builder) { | 58 net::URLRequestContextBuilder* context_builder) { |
| 42 std::string config_cache; | 59 std::string config_cache; |
| 43 if (http_cache != REQUEST_CONTEXT_CONFIG_HTTP_CACHE_DISABLED) { | 60 if (http_cache != REQUEST_CONTEXT_CONFIG_HTTP_CACHE_DISABLED) { |
| 44 net::URLRequestContextBuilder::HttpCacheParams cache_params; | 61 net::URLRequestContextBuilder::HttpCacheParams cache_params; |
| 45 if (http_cache == REQUEST_CONTEXT_CONFIG_HTTP_CACHE_DISK && | 62 if (http_cache == REQUEST_CONTEXT_CONFIG_HTTP_CACHE_DISK && |
| 46 !storage_path.empty()) { | 63 !storage_path.empty()) { |
| 47 cache_params.type = net::URLRequestContextBuilder::HttpCacheParams::DISK; | 64 cache_params.type = net::URLRequestContextBuilder::HttpCacheParams::DISK; |
| 48 cache_params.path = base::FilePath(storage_path); | 65 cache_params.path = base::FilePath(storage_path); |
| 49 } else { | 66 } else { |
| 50 cache_params.type = | 67 cache_params.type = |
| 51 net::URLRequestContextBuilder::HttpCacheParams::IN_MEMORY; | 68 net::URLRequestContextBuilder::HttpCacheParams::IN_MEMORY; |
| 52 } | 69 } |
| 53 cache_params.max_size = http_cache_max_size; | 70 cache_params.max_size = http_cache_max_size; |
| 54 context_builder->EnableHttpCache(cache_params); | 71 context_builder->EnableHttpCache(cache_params); |
| 55 } else { | 72 } else { |
| 56 context_builder->DisableHttpCache(); | 73 context_builder->DisableHttpCache(); |
| 57 } | 74 } |
| 58 | 75 context_builder->set_user_agent(user_agent); |
| 59 context_builder->SetSpdyAndQuicEnabled(enable_spdy, enable_quic); | 76 context_builder->SetSpdyAndQuicEnabled(enable_spdy, enable_quic); |
| 60 // TODO(mef): Use |config| to set cookies. | 77 // TODO(mef): Use |config| to set cookies. |
| 61 } | 78 } |
| 62 | 79 |
| 63 // static | 80 // static |
| 64 void URLRequestContextConfig::RegisterJSONConverter( | 81 void URLRequestContextConfig::RegisterJSONConverter( |
| 65 base::JSONValueConverter<URLRequestContextConfig>* converter) { | 82 base::JSONValueConverter<URLRequestContextConfig>* converter) { |
| 83 converter->RegisterStringField(REQUEST_CONTEXT_CONFIG_USER_AGENT, |
| 84 &URLRequestContextConfig::user_agent); |
| 85 converter->RegisterStringField(REQUEST_CONTEXT_CONFIG_STORAGE_PATH, |
| 86 &URLRequestContextConfig::storage_path); |
| 66 converter->RegisterBoolField(REQUEST_CONTEXT_CONFIG_ENABLE_QUIC, | 87 converter->RegisterBoolField(REQUEST_CONTEXT_CONFIG_ENABLE_QUIC, |
| 67 &URLRequestContextConfig::enable_quic); | 88 &URLRequestContextConfig::enable_quic); |
| 68 converter->RegisterBoolField(REQUEST_CONTEXT_CONFIG_ENABLE_SPDY, | 89 converter->RegisterBoolField(REQUEST_CONTEXT_CONFIG_ENABLE_SPDY, |
| 69 &URLRequestContextConfig::enable_spdy); | 90 &URLRequestContextConfig::enable_spdy); |
| 70 converter->RegisterStringField(REQUEST_CONTEXT_CONFIG_HTTP_CACHE, | 91 converter->RegisterStringField(REQUEST_CONTEXT_CONFIG_HTTP_CACHE, |
| 71 &URLRequestContextConfig::http_cache); | 92 &URLRequestContextConfig::http_cache); |
| 72 converter->RegisterIntField(REQUEST_CONTEXT_CONFIG_HTTP_CACHE_MAX_SIZE, | 93 converter->RegisterIntField(REQUEST_CONTEXT_CONFIG_HTTP_CACHE_MAX_SIZE, |
| 73 &URLRequestContextConfig::http_cache_max_size); | 94 &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, | 95 converter->RegisterRepeatedMessage(REQUEST_CONTEXT_CONFIG_QUIC_HINTS, |
| 77 &URLRequestContextConfig::quic_hints); | 96 &URLRequestContextConfig::quic_hints); |
| 78 } | 97 } |
| 79 | 98 |
| 80 } // namespace cronet | 99 } // namespace cronet |
| OLD | NEW |