• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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.
4 
5 #ifndef COMPONENTS_CRONET_URL_REQUEST_CONTEXT_CONFIG_H_
6 #define COMPONENTS_CRONET_URL_REQUEST_CONTEXT_CONFIG_H_
7 
8 #include <string>
9 
10 #include "base/json/json_value_converter.h"
11 
12 namespace net {
13 class URLRequestContextBuilder;
14 }  // namespace net
15 
16 namespace cronet {
17 
18 // Common configuration parameters used by Cronet to configure
19 // URLRequestContext. Can be parsed from JSON string passed through JNI.
20 struct URLRequestContextConfig {
21   URLRequestContextConfig();
22   ~URLRequestContextConfig();
23 
24   // Configure |context_builder| based on |this|.
25   void ConfigureURLRequestContextBuilder(
26       net::URLRequestContextBuilder* context_builder);
27 
28   // Register |converter| for use in converter.Convert().
29   static void RegisterJSONConverter(
30       base::JSONValueConverter<URLRequestContextConfig>* converter);
31 
32   // Enable QUIC.
33   bool enable_quic;
34   // Enable SPDY.
35   bool enable_spdy;
36   // Type of http cache: "HTTP_CACHE_DISABLED", "HTTP_CACHE_DISK" or
37   // "HTTP_CACHE_IN_MEMORY".
38   std::string http_cache;
39   // Max size of http cache in bytes.
40   int http_cache_max_size;
41   // Storage path for http cache and cookie storage.
42   std::string storage_path;
43 };
44 
45 }  // namespace cronet
46 
47 #endif  // COMPONENTS_CRONET_URL_REQUEST_CONTEXT_CONFIG_H_
48