OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 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 | 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 "chromecast/browser/url_request_context_factory.h" | 5 #include "chromecast/browser/url_request_context_factory.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 | 8 |
9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
10 #include "base/files/file_path.h" | 10 #include "base/files/file_path.h" |
11 #include "base/macros.h" | 11 #include "base/macros.h" |
| 12 #include "base/memory/ptr_util.h" |
12 #include "base/threading/worker_pool.h" | 13 #include "base/threading/worker_pool.h" |
13 #include "chromecast/base/chromecast_switches.h" | 14 #include "chromecast/base/chromecast_switches.h" |
14 #include "chromecast/browser/cast_http_user_agent_settings.h" | 15 #include "chromecast/browser/cast_http_user_agent_settings.h" |
15 #include "chromecast/browser/cast_network_delegate.h" | 16 #include "chromecast/browser/cast_network_delegate.h" |
16 #include "content/public/browser/browser_context.h" | 17 #include "content/public/browser/browser_context.h" |
17 #include "content/public/browser/browser_thread.h" | 18 #include "content/public/browser/browser_thread.h" |
18 #include "content/public/browser/cookie_store_factory.h" | 19 #include "content/public/browser/cookie_store_factory.h" |
19 #include "content/public/common/content_switches.h" | 20 #include "content/public/common/content_switches.h" |
20 #include "content/public/common/url_constants.h" | 21 #include "content/public/common/url_constants.h" |
21 #include "net/cert/cert_verifier.h" | 22 #include "net/cert/cert_verifier.h" |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
78 GetNetworkTaskRunner() const override { | 79 GetNetworkTaskRunner() const override { |
79 return content::BrowserThread::GetMessageLoopProxyForThread( | 80 return content::BrowserThread::GetMessageLoopProxyForThread( |
80 content::BrowserThread::IO); | 81 content::BrowserThread::IO); |
81 } | 82 } |
82 | 83 |
83 private: | 84 private: |
84 ~URLRequestContextGetter() override {} | 85 ~URLRequestContextGetter() override {} |
85 | 86 |
86 const bool is_media_; | 87 const bool is_media_; |
87 URLRequestContextFactory* const factory_; | 88 URLRequestContextFactory* const factory_; |
88 scoped_ptr<net::URLRequestContext> request_context_; | 89 std::unique_ptr<net::URLRequestContext> request_context_; |
89 | 90 |
90 DISALLOW_COPY_AND_ASSIGN(URLRequestContextGetter); | 91 DISALLOW_COPY_AND_ASSIGN(URLRequestContextGetter); |
91 }; | 92 }; |
92 | 93 |
93 // The URLRequestContextFactory::MainURLRequestContextGetter class is used for | 94 // The URLRequestContextFactory::MainURLRequestContextGetter class is used for |
94 // the main URLRequestContext. | 95 // the main URLRequestContext. |
95 class URLRequestContextFactory::MainURLRequestContextGetter | 96 class URLRequestContextFactory::MainURLRequestContextGetter |
96 : public net::URLRequestContextGetter { | 97 : public net::URLRequestContextGetter { |
97 public: | 98 public: |
98 MainURLRequestContextGetter( | 99 MainURLRequestContextGetter( |
(...skipping 23 matching lines...) Expand all Loading... |
122 content::BrowserThread::IO); | 123 content::BrowserThread::IO); |
123 } | 124 } |
124 | 125 |
125 private: | 126 private: |
126 ~MainURLRequestContextGetter() override {} | 127 ~MainURLRequestContextGetter() override {} |
127 | 128 |
128 content::BrowserContext* const browser_context_; | 129 content::BrowserContext* const browser_context_; |
129 URLRequestContextFactory* const factory_; | 130 URLRequestContextFactory* const factory_; |
130 content::ProtocolHandlerMap protocol_handlers_; | 131 content::ProtocolHandlerMap protocol_handlers_; |
131 content::URLRequestInterceptorScopedVector request_interceptors_; | 132 content::URLRequestInterceptorScopedVector request_interceptors_; |
132 scoped_ptr<net::URLRequestContext> request_context_; | 133 std::unique_ptr<net::URLRequestContext> request_context_; |
133 | 134 |
134 DISALLOW_COPY_AND_ASSIGN(MainURLRequestContextGetter); | 135 DISALLOW_COPY_AND_ASSIGN(MainURLRequestContextGetter); |
135 }; | 136 }; |
136 | 137 |
137 URLRequestContextFactory::URLRequestContextFactory() | 138 URLRequestContextFactory::URLRequestContextFactory() |
138 : app_network_delegate_(CastNetworkDelegate::Create()), | 139 : app_network_delegate_(CastNetworkDelegate::Create()), |
139 system_network_delegate_(CastNetworkDelegate::Create()), | 140 system_network_delegate_(CastNetworkDelegate::Create()), |
140 system_dependencies_initialized_(false), | 141 system_dependencies_initialized_(false), |
141 main_dependencies_initialized_(false), | 142 main_dependencies_initialized_(false), |
142 media_dependencies_initialized_(false) { | 143 media_dependencies_initialized_(false) { |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
219 } | 220 } |
220 | 221 |
221 void URLRequestContextFactory::InitializeMainContextDependencies( | 222 void URLRequestContextFactory::InitializeMainContextDependencies( |
222 net::HttpTransactionFactory* transaction_factory, | 223 net::HttpTransactionFactory* transaction_factory, |
223 content::ProtocolHandlerMap* protocol_handlers, | 224 content::ProtocolHandlerMap* protocol_handlers, |
224 content::URLRequestInterceptorScopedVector request_interceptors) { | 225 content::URLRequestInterceptorScopedVector request_interceptors) { |
225 if (main_dependencies_initialized_) | 226 if (main_dependencies_initialized_) |
226 return; | 227 return; |
227 | 228 |
228 main_transaction_factory_.reset(transaction_factory); | 229 main_transaction_factory_.reset(transaction_factory); |
229 scoped_ptr<net::URLRequestJobFactoryImpl> job_factory( | 230 std::unique_ptr<net::URLRequestJobFactoryImpl> job_factory( |
230 new net::URLRequestJobFactoryImpl()); | 231 new net::URLRequestJobFactoryImpl()); |
231 // Keep ProtocolHandlers added in sync with | 232 // Keep ProtocolHandlers added in sync with |
232 // CastContentBrowserClient::IsHandledURL(). | 233 // CastContentBrowserClient::IsHandledURL(). |
233 bool set_protocol = false; | 234 bool set_protocol = false; |
234 for (content::ProtocolHandlerMap::iterator it = protocol_handlers->begin(); | 235 for (content::ProtocolHandlerMap::iterator it = protocol_handlers->begin(); |
235 it != protocol_handlers->end(); | 236 it != protocol_handlers->end(); |
236 ++it) { | 237 ++it) { |
237 set_protocol = job_factory->SetProtocolHandler( | 238 set_protocol = job_factory->SetProtocolHandler( |
238 it->first, make_scoped_ptr(it->second.release())); | 239 it->first, base::WrapUnique(it->second.release())); |
239 DCHECK(set_protocol); | 240 DCHECK(set_protocol); |
240 } | 241 } |
241 set_protocol = job_factory->SetProtocolHandler( | 242 set_protocol = job_factory->SetProtocolHandler( |
242 url::kDataScheme, make_scoped_ptr(new net::DataProtocolHandler)); | 243 url::kDataScheme, base::WrapUnique(new net::DataProtocolHandler)); |
243 DCHECK(set_protocol); | 244 DCHECK(set_protocol); |
244 | 245 |
245 if (base::CommandLine::ForCurrentProcess()->HasSwitch( | 246 if (base::CommandLine::ForCurrentProcess()->HasSwitch( |
246 switches::kEnableLocalFileAccesses)) { | 247 switches::kEnableLocalFileAccesses)) { |
247 set_protocol = job_factory->SetProtocolHandler( | 248 set_protocol = job_factory->SetProtocolHandler( |
248 url::kFileScheme, | 249 url::kFileScheme, |
249 make_scoped_ptr(new net::FileProtocolHandler( | 250 base::WrapUnique(new net::FileProtocolHandler( |
250 content::BrowserThread::GetBlockingPool() | 251 content::BrowserThread::GetBlockingPool() |
251 ->GetTaskRunnerWithShutdownBehavior( | 252 ->GetTaskRunnerWithShutdownBehavior( |
252 base::SequencedWorkerPool::SKIP_ON_SHUTDOWN)))); | 253 base::SequencedWorkerPool::SKIP_ON_SHUTDOWN)))); |
253 DCHECK(set_protocol); | 254 DCHECK(set_protocol); |
254 } | 255 } |
255 | 256 |
256 // Set up interceptors in the reverse order. | 257 // Set up interceptors in the reverse order. |
257 scoped_ptr<net::URLRequestJobFactory> top_job_factory = | 258 std::unique_ptr<net::URLRequestJobFactory> top_job_factory = |
258 std::move(job_factory); | 259 std::move(job_factory); |
259 for (content::URLRequestInterceptorScopedVector::reverse_iterator i = | 260 for (content::URLRequestInterceptorScopedVector::reverse_iterator i = |
260 request_interceptors.rbegin(); | 261 request_interceptors.rbegin(); |
261 i != request_interceptors.rend(); | 262 i != request_interceptors.rend(); |
262 ++i) { | 263 ++i) { |
263 top_job_factory.reset(new net::URLRequestInterceptingJobFactory( | 264 top_job_factory.reset(new net::URLRequestInterceptingJobFactory( |
264 std::move(top_job_factory), make_scoped_ptr(*i))); | 265 std::move(top_job_factory), base::WrapUnique(*i))); |
265 } | 266 } |
266 request_interceptors.weak_clear(); | 267 request_interceptors.weak_clear(); |
267 | 268 |
268 main_job_factory_.reset(top_job_factory.release()); | 269 main_job_factory_.reset(top_job_factory.release()); |
269 | 270 |
270 main_dependencies_initialized_ = true; | 271 main_dependencies_initialized_ = true; |
271 } | 272 } |
272 | 273 |
273 void URLRequestContextFactory::InitializeMediaContextDependencies( | 274 void URLRequestContextFactory::InitializeMediaContextDependencies( |
274 net::HttpTransactionFactory* transaction_factory) { | 275 net::HttpTransactionFactory* transaction_factory) { |
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
397 | 398 |
398 void URLRequestContextFactory::InitializeNetworkDelegates() { | 399 void URLRequestContextFactory::InitializeNetworkDelegates() { |
399 app_network_delegate_->Initialize(false); | 400 app_network_delegate_->Initialize(false); |
400 LOG(INFO) << "Initialized app network delegate."; | 401 LOG(INFO) << "Initialized app network delegate."; |
401 system_network_delegate_->Initialize(false); | 402 system_network_delegate_->Initialize(false); |
402 LOG(INFO) << "Initialized system network delegate."; | 403 LOG(INFO) << "Initialized system network delegate."; |
403 } | 404 } |
404 | 405 |
405 } // namespace shell | 406 } // namespace shell |
406 } // namespace chromecast | 407 } // namespace chromecast |
OLD | NEW |