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 "chrome/browser/profiles/profile_impl_io_data.h" | 5 #include "chrome/browser/profiles/profile_impl_io_data.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/command_line.h" | 8 #include "base/command_line.h" |
9 #include "base/logging.h" | 9 #include "base/logging.h" |
10 #include "base/metrics/field_trial.h" | 10 #include "base/metrics/field_trial.h" |
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
154 return io_data_->GetResourceContext(); | 154 return io_data_->GetResourceContext(); |
155 } | 155 } |
156 | 156 |
157 scoped_refptr<ChromeURLRequestContextGetter> | 157 scoped_refptr<ChromeURLRequestContextGetter> |
158 ProfileImplIOData::Handle::CreateMainRequestContextGetter( | 158 ProfileImplIOData::Handle::CreateMainRequestContextGetter( |
159 content::ProtocolHandlerMap* protocol_handlers, | 159 content::ProtocolHandlerMap* protocol_handlers, |
160 PrefService* local_state, | 160 PrefService* local_state, |
161 IOThread* io_thread) const { | 161 IOThread* io_thread) const { |
162 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 162 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
163 LazyInitialize(); | 163 LazyInitialize(); |
164 DCHECK(!main_request_context_getter_); | 164 DCHECK(!main_request_context_getter_.get()); |
165 main_request_context_getter_ = ChromeURLRequestContextGetter::CreateOriginal( | 165 main_request_context_getter_ = ChromeURLRequestContextGetter::CreateOriginal( |
166 profile_, io_data_, protocol_handlers); | 166 profile_, io_data_, protocol_handlers); |
167 | 167 |
168 io_data_->predictor_->InitNetworkPredictor(profile_->GetPrefs(), | 168 io_data_->predictor_ |
169 local_state, | 169 ->InitNetworkPredictor(profile_->GetPrefs(), |
170 io_thread, | 170 local_state, |
171 main_request_context_getter_); | 171 io_thread, |
| 172 main_request_context_getter_.get()); |
172 | 173 |
173 content::NotificationService::current()->Notify( | 174 content::NotificationService::current()->Notify( |
174 chrome::NOTIFICATION_PROFILE_URL_REQUEST_CONTEXT_GETTER_INITIALIZED, | 175 chrome::NOTIFICATION_PROFILE_URL_REQUEST_CONTEXT_GETTER_INITIALIZED, |
175 content::Source<Profile>(profile_), | 176 content::Source<Profile>(profile_), |
176 content::NotificationService::NoDetails()); | 177 content::NotificationService::NoDetails()); |
177 return main_request_context_getter_; | 178 return main_request_context_getter_; |
178 } | 179 } |
179 | 180 |
180 scoped_refptr<ChromeURLRequestContextGetter> | 181 scoped_refptr<ChromeURLRequestContextGetter> |
181 ProfileImplIOData::Handle::GetMediaRequestContextGetter() const { | 182 ProfileImplIOData::Handle::GetMediaRequestContextGetter() const { |
182 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 183 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
183 LazyInitialize(); | 184 LazyInitialize(); |
184 if (!media_request_context_getter_) { | 185 if (!media_request_context_getter_.get()) { |
185 media_request_context_getter_ = | 186 media_request_context_getter_ = |
186 ChromeURLRequestContextGetter::CreateOriginalForMedia( | 187 ChromeURLRequestContextGetter::CreateOriginalForMedia(profile_, |
187 profile_, io_data_); | 188 io_data_); |
188 } | 189 } |
189 return media_request_context_getter_; | 190 return media_request_context_getter_; |
190 } | 191 } |
191 | 192 |
192 scoped_refptr<ChromeURLRequestContextGetter> | 193 scoped_refptr<ChromeURLRequestContextGetter> |
193 ProfileImplIOData::Handle::GetExtensionsRequestContextGetter() const { | 194 ProfileImplIOData::Handle::GetExtensionsRequestContextGetter() const { |
194 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 195 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
195 LazyInitialize(); | 196 LazyInitialize(); |
196 if (!extensions_request_context_getter_) { | 197 if (!extensions_request_context_getter_.get()) { |
197 extensions_request_context_getter_ = | 198 extensions_request_context_getter_ = |
198 ChromeURLRequestContextGetter::CreateOriginalForExtensions( | 199 ChromeURLRequestContextGetter::CreateOriginalForExtensions(profile_, |
199 profile_, io_data_); | 200 io_data_); |
200 } | 201 } |
201 return extensions_request_context_getter_; | 202 return extensions_request_context_getter_; |
202 } | 203 } |
203 | 204 |
204 scoped_refptr<ChromeURLRequestContextGetter> | 205 scoped_refptr<ChromeURLRequestContextGetter> |
205 ProfileImplIOData::Handle::CreateIsolatedAppRequestContextGetter( | 206 ProfileImplIOData::Handle::CreateIsolatedAppRequestContextGetter( |
206 const base::FilePath& partition_path, | 207 const base::FilePath& partition_path, |
207 bool in_memory, | 208 bool in_memory, |
208 content::ProtocolHandlerMap* protocol_handlers) const { | 209 content::ProtocolHandlerMap* protocol_handlers) const { |
209 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 210 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
248 ChromeURLRequestContextGetterMap::iterator iter = | 249 ChromeURLRequestContextGetterMap::iterator iter = |
249 isolated_media_request_context_getter_map_.find(descriptor); | 250 isolated_media_request_context_getter_map_.find(descriptor); |
250 if (iter != isolated_media_request_context_getter_map_.end()) | 251 if (iter != isolated_media_request_context_getter_map_.end()) |
251 return iter->second; | 252 return iter->second; |
252 | 253 |
253 // Get the app context as the starting point for the media context, so that | 254 // Get the app context as the starting point for the media context, so that |
254 // it uses the app's cookie store. | 255 // it uses the app's cookie store. |
255 ChromeURLRequestContextGetterMap::const_iterator app_iter = | 256 ChromeURLRequestContextGetterMap::const_iterator app_iter = |
256 app_request_context_getter_map_.find(descriptor); | 257 app_request_context_getter_map_.find(descriptor); |
257 DCHECK(app_iter != app_request_context_getter_map_.end()); | 258 DCHECK(app_iter != app_request_context_getter_map_.end()); |
258 ChromeURLRequestContextGetter* app_context = app_iter->second; | 259 ChromeURLRequestContextGetter* app_context = app_iter->second.get(); |
259 ChromeURLRequestContextGetter* context = | 260 ChromeURLRequestContextGetter* context = |
260 ChromeURLRequestContextGetter::CreateOriginalForIsolatedMedia( | 261 ChromeURLRequestContextGetter::CreateOriginalForIsolatedMedia( |
261 profile_, app_context, io_data_, descriptor); | 262 profile_, app_context, io_data_, descriptor); |
262 isolated_media_request_context_getter_map_[descriptor] = context; | 263 isolated_media_request_context_getter_map_[descriptor] = context; |
263 | 264 |
264 return context; | 265 return context; |
265 } | 266 } |
266 | 267 |
267 void ProfileImplIOData::Handle::ClearNetworkingHistorySince( | 268 void ProfileImplIOData::Handle::ClearNetworkingHistorySince( |
268 base::Time time, | 269 base::Time time, |
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
364 main_context->set_throttler_manager( | 365 main_context->set_throttler_manager( |
365 io_thread_globals->throttler_manager.get()); | 366 io_thread_globals->throttler_manager.get()); |
366 | 367 |
367 main_context->set_proxy_service(proxy_service()); | 368 main_context->set_proxy_service(proxy_service()); |
368 | 369 |
369 scoped_refptr<net::CookieStore> cookie_store = NULL; | 370 scoped_refptr<net::CookieStore> cookie_store = NULL; |
370 net::ServerBoundCertService* server_bound_cert_service = NULL; | 371 net::ServerBoundCertService* server_bound_cert_service = NULL; |
371 if (record_mode || playback_mode) { | 372 if (record_mode || playback_mode) { |
372 // Don't use existing cookies and use an in-memory store. | 373 // Don't use existing cookies and use an in-memory store. |
373 cookie_store = new net::CookieMonster( | 374 cookie_store = new net::CookieMonster( |
374 NULL, profile_params->cookie_monster_delegate); | 375 NULL, profile_params->cookie_monster_delegate.get()); |
375 // Don't use existing server-bound certs and use an in-memory store. | 376 // Don't use existing server-bound certs and use an in-memory store. |
376 server_bound_cert_service = new net::ServerBoundCertService( | 377 server_bound_cert_service = new net::ServerBoundCertService( |
377 new net::DefaultServerBoundCertStore(NULL), | 378 new net::DefaultServerBoundCertStore(NULL), |
378 base::WorkerPool::GetTaskRunner(true)); | 379 base::WorkerPool::GetTaskRunner(true)); |
379 } | 380 } |
380 | 381 |
381 // setup cookie store | 382 // setup cookie store |
382 if (!cookie_store) { | 383 if (!cookie_store.get()) { |
383 DCHECK(!lazy_params_->cookie_path.empty()); | 384 DCHECK(!lazy_params_->cookie_path.empty()); |
384 | 385 |
385 cookie_store = content::CreatePersistentCookieStore( | 386 cookie_store = content::CreatePersistentCookieStore( |
386 lazy_params_->cookie_path, | 387 lazy_params_->cookie_path, |
387 lazy_params_->restore_old_session_cookies, | 388 lazy_params_->restore_old_session_cookies, |
388 lazy_params_->special_storage_policy, | 389 lazy_params_->special_storage_policy.get(), |
389 profile_params->cookie_monster_delegate); | 390 profile_params->cookie_monster_delegate.get()); |
390 cookie_store->GetCookieMonster()->SetPersistSessionCookies(true); | 391 cookie_store->GetCookieMonster()->SetPersistSessionCookies(true); |
391 } | 392 } |
392 | 393 |
393 main_context->set_cookie_store(cookie_store); | 394 main_context->set_cookie_store(cookie_store.get()); |
394 | 395 |
395 // Setup server bound cert service. | 396 // Setup server bound cert service. |
396 if (!server_bound_cert_service) { | 397 if (!server_bound_cert_service) { |
397 DCHECK(!lazy_params_->server_bound_cert_path.empty()); | 398 DCHECK(!lazy_params_->server_bound_cert_path.empty()); |
398 | 399 |
399 scoped_refptr<SQLiteServerBoundCertStore> server_bound_cert_db = | 400 scoped_refptr<SQLiteServerBoundCertStore> server_bound_cert_db = |
400 new SQLiteServerBoundCertStore( | 401 new SQLiteServerBoundCertStore( |
401 lazy_params_->server_bound_cert_path, | 402 lazy_params_->server_bound_cert_path, |
402 lazy_params_->special_storage_policy); | 403 lazy_params_->special_storage_policy.get()); |
403 server_bound_cert_service = new net::ServerBoundCertService( | 404 server_bound_cert_service = new net::ServerBoundCertService( |
404 new net::DefaultServerBoundCertStore(server_bound_cert_db.get()), | 405 new net::DefaultServerBoundCertStore(server_bound_cert_db.get()), |
405 base::WorkerPool::GetTaskRunner(true)); | 406 base::WorkerPool::GetTaskRunner(true)); |
406 } | 407 } |
407 | 408 |
408 set_server_bound_cert_service(server_bound_cert_service); | 409 set_server_bound_cert_service(server_bound_cert_service); |
409 main_context->set_server_bound_cert_service(server_bound_cert_service); | 410 main_context->set_server_bound_cert_service(server_bound_cert_service); |
410 | 411 |
411 net::HttpCache::DefaultBackend* main_backend = | 412 net::HttpCache::DefaultBackend* main_backend = |
412 new net::HttpCache::DefaultBackend( | 413 new net::HttpCache::DefaultBackend( |
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
551 // Don't use existing cookies and use an in-memory store. | 552 // Don't use existing cookies and use an in-memory store. |
552 // TODO(creis): We should have a cookie delegate for notifying the cookie | 553 // TODO(creis): We should have a cookie delegate for notifying the cookie |
553 // extensions API, but we need to update it to understand isolated apps | 554 // extensions API, but we need to update it to understand isolated apps |
554 // first. | 555 // first. |
555 cookie_store = new net::CookieMonster(NULL, NULL); | 556 cookie_store = new net::CookieMonster(NULL, NULL); |
556 app_http_cache->set_mode( | 557 app_http_cache->set_mode( |
557 record_mode ? net::HttpCache::RECORD : net::HttpCache::PLAYBACK); | 558 record_mode ? net::HttpCache::RECORD : net::HttpCache::PLAYBACK); |
558 } | 559 } |
559 | 560 |
560 // Use an app-specific cookie store. | 561 // Use an app-specific cookie store. |
561 if (!cookie_store) { | 562 if (!cookie_store.get()) { |
562 DCHECK(!cookie_path.empty()); | 563 DCHECK(!cookie_path.empty()); |
563 | 564 |
564 // TODO(creis): We should have a cookie delegate for notifying the cookie | 565 // TODO(creis): We should have a cookie delegate for notifying the cookie |
565 // extensions API, but we need to update it to understand isolated apps | 566 // extensions API, but we need to update it to understand isolated apps |
566 // first. | 567 // first. |
567 cookie_store = content::CreatePersistentCookieStore( | 568 cookie_store = content::CreatePersistentCookieStore( |
568 cookie_path, | 569 cookie_path, |
569 false, | 570 false, |
570 NULL, | 571 NULL, |
571 NULL); | 572 NULL); |
572 } | 573 } |
573 | 574 |
574 // Transfer ownership of the cookies and cache to AppRequestContext. | 575 // Transfer ownership of the cookies and cache to AppRequestContext. |
575 context->SetCookieStore(cookie_store); | 576 context->SetCookieStore(cookie_store.get()); |
576 context->SetHttpTransactionFactory( | 577 context->SetHttpTransactionFactory( |
577 scoped_ptr<net::HttpTransactionFactory>(app_http_cache)); | 578 scoped_ptr<net::HttpTransactionFactory>(app_http_cache)); |
578 | 579 |
579 scoped_ptr<net::URLRequestJobFactoryImpl> job_factory( | 580 scoped_ptr<net::URLRequestJobFactoryImpl> job_factory( |
580 new net::URLRequestJobFactoryImpl()); | 581 new net::URLRequestJobFactoryImpl()); |
581 InstallProtocolHandlers(job_factory.get(), protocol_handlers); | 582 InstallProtocolHandlers(job_factory.get(), protocol_handlers); |
582 scoped_ptr<net::URLRequestJobFactory> top_job_factory; | 583 scoped_ptr<net::URLRequestJobFactory> top_job_factory; |
583 // Overwrite the job factory that we inherit from the main context so | 584 // Overwrite the job factory that we inherit from the main context so |
584 // that we can later provide our own handlers for storage related protocols. | 585 // that we can later provide our own handlers for storage related protocols. |
585 // Install all the usual protocol handlers unless we are in a browser plugin | 586 // Install all the usual protocol handlers unless we are in a browser plugin |
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
689 const base::Closure& completion) { | 690 const base::Closure& completion) { |
690 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); | 691 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
691 DCHECK(initialized()); | 692 DCHECK(initialized()); |
692 | 693 |
693 DCHECK(transport_security_state()); | 694 DCHECK(transport_security_state()); |
694 // Completes synchronously. | 695 // Completes synchronously. |
695 transport_security_state()->DeleteAllDynamicDataSince(time); | 696 transport_security_state()->DeleteAllDynamicDataSince(time); |
696 DCHECK(http_server_properties_manager_); | 697 DCHECK(http_server_properties_manager_); |
697 http_server_properties_manager_->Clear(completion); | 698 http_server_properties_manager_->Clear(completion); |
698 } | 699 } |
OLD | NEW |