| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 // This class is useful for building a simple URLRequestContext. Most creators | 5 // This class is useful for building a simple URLRequestContext. Most creators |
| 6 // of new URLRequestContexts should use this helper class to construct it. Call | 6 // of new URLRequestContexts should use this helper class to construct it. Call |
| 7 // any configuration params, and when done, invoke Build() to construct the | 7 // any configuration params, and when done, invoke Build() to construct the |
| 8 // URLRequestContext. This URLRequestContext will own all its own storage. | 8 // URLRequestContext. This URLRequestContext will own all its own storage. |
| 9 // | 9 // |
| 10 // URLRequestContextBuilder and its associated params classes are initially | 10 // URLRequestContextBuilder and its associated params classes are initially |
| 11 // populated with "sane" default values. Read through the comments to figure out | 11 // populated with "sane" default values. Read through the comments to figure out |
| 12 // what these are. | 12 // what these are. |
| 13 | 13 |
| 14 #ifndef NET_URL_REQUEST_URL_REQUEST_CONTEXT_BUILDER_H_ | 14 #ifndef NET_URL_REQUEST_URL_REQUEST_CONTEXT_BUILDER_H_ |
| 15 #define NET_URL_REQUEST_URL_REQUEST_CONTEXT_BUILDER_H_ | 15 #define NET_URL_REQUEST_URL_REQUEST_CONTEXT_BUILDER_H_ |
| 16 | 16 |
| 17 #include <string> | 17 #include <string> |
| 18 | 18 |
| 19 #include "base/basictypes.h" | 19 #include "base/basictypes.h" |
| 20 #include "base/files/file_path.h" | 20 #include "base/files/file_path.h" |
| 21 #include "base/memory/ref_counted.h" | 21 #include "base/memory/ref_counted.h" |
| 22 #include "base/memory/scoped_ptr.h" | 22 #include "base/memory/scoped_ptr.h" |
| 23 #include "build/build_config.h" | 23 #include "build/build_config.h" |
| 24 #include "net/base/net_export.h" | 24 #include "net/base/net_export.h" |
| 25 | 25 |
| 26 namespace net { | 26 namespace net { |
| 27 | 27 |
| 28 class FtpTransactionFactory; | |
| 29 class HostMappingRules; | 28 class HostMappingRules; |
| 30 class ProxyConfigService; | 29 class ProxyConfigService; |
| 31 class URLRequestContext; | 30 class URLRequestContext; |
| 32 class NetworkDelegate; | 31 class NetworkDelegate; |
| 33 | 32 |
| 34 class NET_EXPORT URLRequestContextBuilder { | 33 class NET_EXPORT URLRequestContextBuilder { |
| 35 public: | 34 public: |
| 36 struct NET_EXPORT HttpCacheParams { | 35 struct NET_EXPORT HttpCacheParams { |
| 37 enum Type { | 36 enum Type { |
| 38 IN_MEMORY, | 37 IN_MEMORY, |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 76 // Call these functions to specify hard-coded Accept-Language | 75 // Call these functions to specify hard-coded Accept-Language |
| 77 // or User-Agent header values for all requests that don't | 76 // or User-Agent header values for all requests that don't |
| 78 // have the headers already set. | 77 // have the headers already set. |
| 79 void set_accept_language(const std::string& accept_language) { | 78 void set_accept_language(const std::string& accept_language) { |
| 80 accept_language_ = accept_language; | 79 accept_language_ = accept_language; |
| 81 } | 80 } |
| 82 void set_user_agent(const std::string& user_agent) { | 81 void set_user_agent(const std::string& user_agent) { |
| 83 user_agent_ = user_agent; | 82 user_agent_ = user_agent; |
| 84 } | 83 } |
| 85 | 84 |
| 86 // Control support for data:// requests. By default it's disabled. | 85 // By default it's disabled. |
| 87 void set_data_enabled(bool enable) { | |
| 88 data_enabled_ = enable; | |
| 89 } | |
| 90 | |
| 91 // Control support for file:// requests. By default it's disabled. | |
| 92 void set_file_enabled(bool enable) { | |
| 93 file_enabled_ = enable; | |
| 94 } | |
| 95 | |
| 96 #if !defined(DISABLE_FTP_SUPPORT) | |
| 97 // Control support for ftp:// requests. By default it's disabled. | |
| 98 void set_ftp_enabled(bool enable) { | 86 void set_ftp_enabled(bool enable) { |
| 99 ftp_enabled_ = enable; | 87 ftp_enabled_ = enable; |
| 100 } | 88 } |
| 101 #endif | |
| 102 | 89 |
| 103 // Uses BasicNetworkDelegate by default. Note that calling Build will unset | 90 // Uses BasicNetworkDelegate by default. Note that calling Build will unset |
| 104 // any custom delegate in builder, so this must be called each time before | 91 // any custom delegate in builder, so this must be called each time before |
| 105 // Build is called. | 92 // Build is called. |
| 106 void set_network_delegate(NetworkDelegate* delegate) { | 93 void set_network_delegate(NetworkDelegate* delegate) { |
| 107 network_delegate_.reset(delegate); | 94 network_delegate_.reset(delegate); |
| 108 } | 95 } |
| 109 | 96 |
| 110 // By default HttpCache is enabled with a default constructed HttpCacheParams. | 97 // By default HttpCache is enabled with a default constructed HttpCacheParams. |
| 111 void EnableHttpCache(const HttpCacheParams& params) { | 98 void EnableHttpCache(const HttpCacheParams& params) { |
| 112 http_cache_params_ = params; | 99 http_cache_params_ = params; |
| 113 } | 100 } |
| 114 | 101 |
| 115 void DisableHttpCache() { | 102 void DisableHttpCache() { |
| 116 http_cache_params_ = HttpCacheParams(); | 103 http_cache_params_ = HttpCacheParams(); |
| 117 } | 104 } |
| 118 | 105 |
| 119 // Override default net::HttpNetworkSession::Params settings. | 106 // Override default net::HttpNetworkSession::Params settings. |
| 120 void set_http_network_session_params( | 107 void set_http_network_session_params( |
| 121 const HttpNetworkSessionParams& http_network_session_params) { | 108 const HttpNetworkSessionParams& http_network_session_params) { |
| 122 http_network_session_params_ = http_network_session_params; | 109 http_network_session_params_ = http_network_session_params; |
| 123 } | 110 } |
| 124 | 111 |
| 125 URLRequestContext* Build(); | 112 URLRequestContext* Build(); |
| 126 | 113 |
| 127 private: | 114 private: |
| 128 std::string accept_language_; | 115 std::string accept_language_; |
| 129 std::string user_agent_; | 116 std::string user_agent_; |
| 130 // Include support for data:// requests. | |
| 131 bool data_enabled_; | |
| 132 // Include support for file:// requests. | |
| 133 bool file_enabled_; | |
| 134 #if !defined(DISABLE_FTP_SUPPORT) | |
| 135 // Include support for ftp:// requests. | |
| 136 bool ftp_enabled_; | 117 bool ftp_enabled_; |
| 137 #endif | |
| 138 bool http_cache_enabled_; | 118 bool http_cache_enabled_; |
| 139 HttpCacheParams http_cache_params_; | 119 HttpCacheParams http_cache_params_; |
| 140 HttpNetworkSessionParams http_network_session_params_; | 120 HttpNetworkSessionParams http_network_session_params_; |
| 141 #if defined(OS_LINUX) || defined(OS_ANDROID) | 121 #if defined(OS_LINUX) || defined(OS_ANDROID) |
| 142 scoped_ptr<ProxyConfigService> proxy_config_service_; | 122 scoped_ptr<ProxyConfigService> proxy_config_service_; |
| 143 #endif // defined(OS_LINUX) || defined(OS_ANDROID) | 123 #endif // defined(OS_LINUX) || defined(OS_ANDROID) |
| 144 scoped_ptr<NetworkDelegate> network_delegate_; | 124 scoped_ptr<NetworkDelegate> network_delegate_; |
| 145 scoped_ptr<FtpTransactionFactory> ftp_transaction_factory_; | |
| 146 | 125 |
| 147 DISALLOW_COPY_AND_ASSIGN(URLRequestContextBuilder); | 126 DISALLOW_COPY_AND_ASSIGN(URLRequestContextBuilder); |
| 148 }; | 127 }; |
| 149 | 128 |
| 150 } // namespace net | 129 } // namespace net |
| 151 | 130 |
| 152 #endif // NET_URL_REQUEST_URL_REQUEST_CONTEXT_BUILDER_H_ | 131 #endif // NET_URL_REQUEST_URL_REQUEST_CONTEXT_BUILDER_H_ |
| OLD | NEW |