| 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 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 109 } | 109 } |
| 110 | 110 |
| 111 scoped_ptr<net::URLRequestJobFactory> CreateJobFactory( | 111 scoped_ptr<net::URLRequestJobFactory> CreateJobFactory( |
| 112 content::ProtocolHandlerMap* protocol_handlers, | 112 content::ProtocolHandlerMap* protocol_handlers, |
| 113 content::URLRequestInterceptorScopedVector request_interceptors) { | 113 content::URLRequestInterceptorScopedVector request_interceptors) { |
| 114 scoped_ptr<AwURLRequestJobFactory> aw_job_factory(new AwURLRequestJobFactory); | 114 scoped_ptr<AwURLRequestJobFactory> aw_job_factory(new AwURLRequestJobFactory); |
| 115 // Note that the registered schemes must also be specified in | 115 // Note that the registered schemes must also be specified in |
| 116 // AwContentBrowserClient::IsHandledURL. | 116 // AwContentBrowserClient::IsHandledURL. |
| 117 bool set_protocol = aw_job_factory->SetProtocolHandler( | 117 bool set_protocol = aw_job_factory->SetProtocolHandler( |
| 118 url::kFileScheme, | 118 url::kFileScheme, |
| 119 new net::FileProtocolHandler( | 119 make_scoped_ptr(new net::FileProtocolHandler( |
| 120 content::BrowserThread::GetBlockingPool()-> | 120 content::BrowserThread::GetBlockingPool() |
| 121 GetTaskRunnerWithShutdownBehavior( | 121 ->GetTaskRunnerWithShutdownBehavior( |
| 122 base::SequencedWorkerPool::SKIP_ON_SHUTDOWN))); | 122 base::SequencedWorkerPool::SKIP_ON_SHUTDOWN)))); |
| 123 DCHECK(set_protocol); | 123 DCHECK(set_protocol); |
| 124 set_protocol = aw_job_factory->SetProtocolHandler( | 124 set_protocol = aw_job_factory->SetProtocolHandler( |
| 125 url::kDataScheme, new net::DataProtocolHandler()); | 125 url::kDataScheme, make_scoped_ptr(new net::DataProtocolHandler())); |
| 126 DCHECK(set_protocol); | 126 DCHECK(set_protocol); |
| 127 set_protocol = aw_job_factory->SetProtocolHandler( | 127 set_protocol = aw_job_factory->SetProtocolHandler( |
| 128 url::kBlobScheme, | 128 url::kBlobScheme, |
| 129 (*protocol_handlers)[url::kBlobScheme].release()); | 129 make_scoped_ptr((*protocol_handlers)[url::kBlobScheme].release())); |
| 130 DCHECK(set_protocol); | 130 DCHECK(set_protocol); |
| 131 set_protocol = aw_job_factory->SetProtocolHandler( | 131 set_protocol = aw_job_factory->SetProtocolHandler( |
| 132 url::kFileSystemScheme, | 132 url::kFileSystemScheme, |
| 133 (*protocol_handlers)[url::kFileSystemScheme].release()); | 133 make_scoped_ptr((*protocol_handlers)[url::kFileSystemScheme].release())); |
| 134 DCHECK(set_protocol); | 134 DCHECK(set_protocol); |
| 135 set_protocol = aw_job_factory->SetProtocolHandler( | 135 set_protocol = aw_job_factory->SetProtocolHandler( |
| 136 content::kChromeUIScheme, | 136 content::kChromeUIScheme, |
| 137 (*protocol_handlers)[content::kChromeUIScheme].release()); | 137 make_scoped_ptr( |
| 138 (*protocol_handlers)[content::kChromeUIScheme].release())); |
| 138 DCHECK(set_protocol); | 139 DCHECK(set_protocol); |
| 139 set_protocol = aw_job_factory->SetProtocolHandler( | 140 set_protocol = aw_job_factory->SetProtocolHandler( |
| 140 content::kChromeDevToolsScheme, | 141 content::kChromeDevToolsScheme, |
| 141 (*protocol_handlers)[content::kChromeDevToolsScheme].release()); | 142 make_scoped_ptr( |
| 143 (*protocol_handlers)[content::kChromeDevToolsScheme].release())); |
| 142 DCHECK(set_protocol); | 144 DCHECK(set_protocol); |
| 143 protocol_handlers->clear(); | 145 protocol_handlers->clear(); |
| 144 | 146 |
| 145 // Note that even though the content:// scheme handler is created here, | 147 // Note that even though the content:// scheme handler is created here, |
| 146 // it cannot be used by child processes until access to it is granted via | 148 // it cannot be used by child processes until access to it is granted via |
| 147 // ChildProcessSecurityPolicy::GrantScheme(). This is done in | 149 // ChildProcessSecurityPolicy::GrantScheme(). This is done in |
| 148 // AwContentBrowserClient. | 150 // AwContentBrowserClient. |
| 149 request_interceptors.push_back( | 151 request_interceptors.push_back( |
| 150 CreateAndroidContentRequestInterceptor().release()); | 152 CreateAndroidContentRequestInterceptor().release()); |
| 151 request_interceptors.push_back( | 153 request_interceptors.push_back( |
| (...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 275 return net_log_.get(); | 277 return net_log_.get(); |
| 276 } | 278 } |
| 277 | 279 |
| 278 void AwURLRequestContextGetter::SetKeyOnIO(const std::string& key) { | 280 void AwURLRequestContextGetter::SetKeyOnIO(const std::string& key) { |
| 279 DCHECK(AwBrowserContext::GetDefault()->GetDataReductionProxyIOData()); | 281 DCHECK(AwBrowserContext::GetDefault()->GetDataReductionProxyIOData()); |
| 280 AwBrowserContext::GetDefault()->GetDataReductionProxyIOData()-> | 282 AwBrowserContext::GetDefault()->GetDataReductionProxyIOData()-> |
| 281 request_options()->SetKeyOnIO(key); | 283 request_options()->SetKeyOnIO(key); |
| 282 } | 284 } |
| 283 | 285 |
| 284 } // namespace android_webview | 286 } // namespace android_webview |
| OLD | NEW |