| 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 #include "android_webview/browser/net/aw_url_request_context_getter.h" | 5 #include "android_webview/browser/net/aw_url_request_context_getter.h" |
| 6 | 6 |
| 7 #include <vector> | 7 #include <vector> |
| 8 | 8 |
| 9 #include "android_webview/browser/aw_browser_context.h" | 9 #include "android_webview/browser/aw_browser_context.h" |
| 10 #include "android_webview/browser/aw_content_browser_client.h" | 10 #include "android_webview/browser/aw_content_browser_client.h" |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 57 *base::CommandLine::ForCurrentProcess(); | 57 *base::CommandLine::ForCurrentProcess(); |
| 58 if (command_line.HasSwitch(switches::kHostResolverRules)) { | 58 if (command_line.HasSwitch(switches::kHostResolverRules)) { |
| 59 // If hostname remappings were specified on the command-line, layer these | 59 // If hostname remappings were specified on the command-line, layer these |
| 60 // rules on top of the real host resolver. This allows forwarding all | 60 // rules on top of the real host resolver. This allows forwarding all |
| 61 // requests through a designated test server. | 61 // requests through a designated test server. |
| 62 scoped_ptr<net::MappedHostResolver> host_resolver( | 62 scoped_ptr<net::MappedHostResolver> host_resolver( |
| 63 new net::MappedHostResolver( | 63 new net::MappedHostResolver( |
| 64 net::HostResolver::CreateDefaultResolver(NULL))); | 64 net::HostResolver::CreateDefaultResolver(NULL))); |
| 65 host_resolver->SetRulesFromString( | 65 host_resolver->SetRulesFromString( |
| 66 command_line.GetSwitchValueASCII(switches::kHostResolverRules)); | 66 command_line.GetSwitchValueASCII(switches::kHostResolverRules)); |
| 67 builder->set_host_resolver(host_resolver.release()); | 67 builder->set_host_resolver(host_resolver.Pass()); |
| 68 } | 68 } |
| 69 } | 69 } |
| 70 | 70 |
| 71 void ApplyCmdlineOverridesToNetworkSessionParams( | 71 void ApplyCmdlineOverridesToNetworkSessionParams( |
| 72 net::HttpNetworkSession::Params* params) { | 72 net::HttpNetworkSession::Params* params) { |
| 73 int value; | 73 int value; |
| 74 const base::CommandLine& command_line = | 74 const base::CommandLine& command_line = |
| 75 *base::CommandLine::ForCurrentProcess(); | 75 *base::CommandLine::ForCurrentProcess(); |
| 76 if (command_line.HasSwitch(switches::kTestingFixedHttpPort)) { | 76 if (command_line.HasSwitch(switches::kTestingFixedHttpPort)) { |
| 77 base::StringToInt(command_line.GetSwitchValueASCII( | 77 base::StringToInt(command_line.GetSwitchValueASCII( |
| (...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 196 DCHECK_CURRENTLY_ON(BrowserThread::IO); | 196 DCHECK_CURRENTLY_ON(BrowserThread::IO); |
| 197 DCHECK(!url_request_context_); | 197 DCHECK(!url_request_context_); |
| 198 | 198 |
| 199 net::URLRequestContextBuilder builder; | 199 net::URLRequestContextBuilder builder; |
| 200 scoped_ptr<AwNetworkDelegate> aw_network_delegate(new AwNetworkDelegate()); | 200 scoped_ptr<AwNetworkDelegate> aw_network_delegate(new AwNetworkDelegate()); |
| 201 | 201 |
| 202 AwBrowserContext* browser_context = AwBrowserContext::GetDefault(); | 202 AwBrowserContext* browser_context = AwBrowserContext::GetDefault(); |
| 203 DCHECK(browser_context); | 203 DCHECK(browser_context); |
| 204 | 204 |
| 205 builder.set_network_delegate( | 205 builder.set_network_delegate( |
| 206 browser_context->GetDataReductionProxyIOData()->CreateNetworkDelegate( | 206 browser_context->GetDataReductionProxyIOData() |
| 207 aw_network_delegate.Pass(), | 207 ->CreateNetworkDelegate( |
| 208 false /* No UMA is produced to track bypasses. */ ).release()); | 208 aw_network_delegate.Pass(), |
| 209 false /* No UMA is produced to track bypasses. */) |
| 210 .Pass()); |
| 209 #if !defined(DISABLE_FTP_SUPPORT) | 211 #if !defined(DISABLE_FTP_SUPPORT) |
| 210 builder.set_ftp_enabled(false); // Android WebView does not support ftp yet. | 212 builder.set_ftp_enabled(false); // Android WebView does not support ftp yet. |
| 211 #endif | 213 #endif |
| 212 DCHECK(proxy_config_service_.get()); | 214 DCHECK(proxy_config_service_.get()); |
| 213 // Android provides a local HTTP proxy that handles all the proxying. | 215 // Android provides a local HTTP proxy that handles all the proxying. |
| 214 // Create the proxy without a resolver since we rely on this local HTTP proxy. | 216 // Create the proxy without a resolver since we rely on this local HTTP proxy. |
| 215 // TODO(sgurun) is this behavior guaranteed through SDK? | 217 // TODO(sgurun) is this behavior guaranteed through SDK? |
| 216 builder.set_proxy_service( | 218 builder.set_proxy_service( |
| 217 net::ProxyService::CreateWithoutProxyResolver( | 219 make_scoped_ptr(net::ProxyService::CreateWithoutProxyResolver( |
| 218 proxy_config_service_.release(), | 220 proxy_config_service_.release(), net_log_.get()))); |
| 219 net_log_.get())); | |
| 220 builder.set_net_log(net_log_.get()); | 221 builder.set_net_log(net_log_.get()); |
| 221 builder.SetCookieAndChannelIdStores(cookie_store_, NULL); | 222 builder.SetCookieAndChannelIdStores(cookie_store_, NULL); |
| 222 ApplyCmdlineOverridesToURLRequestContextBuilder(&builder); | 223 ApplyCmdlineOverridesToURLRequestContextBuilder(&builder); |
| 223 | 224 |
| 224 url_request_context_.reset(builder.Build()); | 225 url_request_context_ = builder.Build().Pass(); |
| 225 // TODO(mnaganov): Fix URLRequestContextBuilder to use proper threads. | 226 // TODO(mnaganov): Fix URLRequestContextBuilder to use proper threads. |
| 226 net::HttpNetworkSession::Params network_session_params; | 227 net::HttpNetworkSession::Params network_session_params; |
| 227 | 228 |
| 228 PopulateNetworkSessionParams(url_request_context_.get(), | 229 PopulateNetworkSessionParams(url_request_context_.get(), |
| 229 &network_session_params); | 230 &network_session_params); |
| 230 | 231 |
| 231 net::HttpCache* main_cache = new net::HttpCache( | 232 net::HttpCache* main_cache = new net::HttpCache( |
| 232 network_session_params, | 233 network_session_params, |
| 233 new net::HttpCache::DefaultBackend( | 234 new net::HttpCache::DefaultBackend( |
| 234 net::DISK_CACHE, | 235 net::DISK_CACHE, |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 275 return net_log_.get(); | 276 return net_log_.get(); |
| 276 } | 277 } |
| 277 | 278 |
| 278 void AwURLRequestContextGetter::SetKeyOnIO(const std::string& key) { | 279 void AwURLRequestContextGetter::SetKeyOnIO(const std::string& key) { |
| 279 DCHECK(AwBrowserContext::GetDefault()->GetDataReductionProxyIOData()); | 280 DCHECK(AwBrowserContext::GetDefault()->GetDataReductionProxyIOData()); |
| 280 AwBrowserContext::GetDefault()->GetDataReductionProxyIOData()-> | 281 AwBrowserContext::GetDefault()->GetDataReductionProxyIOData()-> |
| 281 request_options()->SetKeyOnIO(key); | 282 request_options()->SetKeyOnIO(key); |
| 282 } | 283 } |
| 283 | 284 |
| 284 } // namespace android_webview | 285 } // namespace android_webview |
| OLD | NEW |