Home | History | Annotate | Download | only in cronet
      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