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/file_path.h" | 20 #include "base/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; | |
28 class HostMappingRules; | 29 class HostMappingRules; |
29 class ProxyConfigService; | 30 class ProxyConfigService; |
30 class URLRequestContext; | 31 class URLRequestContext; |
31 class NetworkDelegate; | 32 class NetworkDelegate; |
32 | 33 |
33 class NET_EXPORT URLRequestContextBuilder { | 34 class NET_EXPORT URLRequestContextBuilder { |
34 public: | 35 public: |
35 struct NET_EXPORT HttpCacheParams { | 36 struct NET_EXPORT HttpCacheParams { |
36 enum Type { | 37 enum Type { |
37 IN_MEMORY, | 38 IN_MEMORY, |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
78 void set_accept_language(const std::string& accept_language) { | 79 void set_accept_language(const std::string& accept_language) { |
79 accept_language_ = accept_language; | 80 accept_language_ = accept_language; |
80 } | 81 } |
81 void set_accept_charset(const std::string& accept_charset) { | 82 void set_accept_charset(const std::string& accept_charset) { |
82 accept_charset_ = accept_charset; | 83 accept_charset_ = accept_charset; |
83 } | 84 } |
84 void set_user_agent(const std::string& user_agent) { | 85 void set_user_agent(const std::string& user_agent) { |
85 user_agent_ = user_agent; | 86 user_agent_ = user_agent; |
86 } | 87 } |
87 | 88 |
88 // By default it's disabled. | 89 // Control support for data:// requests. By default it's disabled. |
90 void set_data_enabled(bool enable) { | |
91 data_enabled_ = enable; | |
92 } | |
93 | |
94 // Control support for file:// requests. By default it's disabled. | |
95 void set_file_enabled(bool enable) { | |
96 file_enabled_ = enable; | |
97 } | |
98 | |
99 // Control support for ftp:// requests. By default it's disabled. | |
89 void set_ftp_enabled(bool enable) { | 100 void set_ftp_enabled(bool enable) { |
90 ftp_enabled_ = enable; | 101 ftp_enabled_ = enable; |
91 } | 102 } |
mmenke
2013/02/19 17:26:15
There's a compile flag to disable ftp support. Sh
pauljensen
2013/02/20 15:13:27
Done.
| |
92 | 103 |
93 // Uses BasicNetworkDelegate by default. Note that calling Build will unset | 104 // Uses BasicNetworkDelegate by default. Note that calling Build will unset |
94 // any custom delegate in builder, so this must be called each time before | 105 // any custom delegate in builder, so this must be called each time before |
95 // Build is called. | 106 // Build is called. |
96 void set_network_delegate(NetworkDelegate* delegate) { | 107 void set_network_delegate(NetworkDelegate* delegate) { |
97 network_delegate_.reset(delegate); | 108 network_delegate_.reset(delegate); |
98 } | 109 } |
99 | 110 |
100 // By default HttpCache is enabled with a default constructed HttpCacheParams. | 111 // By default HttpCache is enabled with a default constructed HttpCacheParams. |
101 void EnableHttpCache(const HttpCacheParams& params) { | 112 void EnableHttpCache(const HttpCacheParams& params) { |
102 http_cache_params_ = params; | 113 http_cache_params_ = params; |
103 } | 114 } |
104 | 115 |
105 void DisableHttpCache() { | 116 void DisableHttpCache() { |
106 http_cache_params_ = HttpCacheParams(); | 117 http_cache_params_ = HttpCacheParams(); |
107 } | 118 } |
108 | 119 |
109 // Override default net::HttpNetworkSession::Params settings. | 120 // Override default net::HttpNetworkSession::Params settings. |
110 void set_http_network_session_params( | 121 void set_http_network_session_params( |
111 const HttpNetworkSessionParams& http_network_session_params) { | 122 const HttpNetworkSessionParams& http_network_session_params) { |
112 http_network_session_params_ = http_network_session_params; | 123 http_network_session_params_ = http_network_session_params; |
113 } | 124 } |
114 | 125 |
115 URLRequestContext* Build(); | 126 URLRequestContext* Build(); |
116 | 127 |
117 private: | 128 private: |
118 std::string accept_language_; | 129 std::string accept_language_; |
119 std::string accept_charset_; | 130 std::string accept_charset_; |
120 std::string user_agent_; | 131 std::string user_agent_; |
132 // Include support for data:// requests. | |
133 bool data_enabled_; | |
134 // Include support for file:// requests. | |
135 bool file_enabled_; | |
136 // Include support for ftp:// requests. | |
121 bool ftp_enabled_; | 137 bool ftp_enabled_; |
122 bool http_cache_enabled_; | 138 bool http_cache_enabled_; |
123 HttpCacheParams http_cache_params_; | 139 HttpCacheParams http_cache_params_; |
124 HttpNetworkSessionParams http_network_session_params_; | 140 HttpNetworkSessionParams http_network_session_params_; |
125 #if defined(OS_LINUX) || defined(OS_ANDROID) | 141 #if defined(OS_LINUX) || defined(OS_ANDROID) |
126 scoped_ptr<ProxyConfigService> proxy_config_service_; | 142 scoped_ptr<ProxyConfigService> proxy_config_service_; |
127 #endif // defined(OS_LINUX) || defined(OS_ANDROID) | 143 #endif // defined(OS_LINUX) || defined(OS_ANDROID) |
128 scoped_ptr<NetworkDelegate> network_delegate_; | 144 scoped_ptr<NetworkDelegate> network_delegate_; |
145 scoped_ptr<FtpTransactionFactory> ftp_transaction_factory_; | |
129 | 146 |
130 DISALLOW_COPY_AND_ASSIGN(URLRequestContextBuilder); | 147 DISALLOW_COPY_AND_ASSIGN(URLRequestContextBuilder); |
131 }; | 148 }; |
132 | 149 |
133 } // namespace net | 150 } // namespace net |
134 | 151 |
135 #endif // NET_URL_REQUEST_URL_REQUEST_CONTEXT_BUILDER_H_ | 152 #endif // NET_URL_REQUEST_URL_REQUEST_CONTEXT_BUILDER_H_ |
OLD | NEW |