| 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_io_data.h" | 5 #include "chrome/browser/profiles/profile_io_data.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 | 8 |
| 9 #include "base/basictypes.h" | 9 #include "base/basictypes.h" |
| 10 #include "base/bind.h" | 10 #include "base/bind.h" |
| (...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 117 #include "chrome/browser/chromeos/profiles/profile_helper.h" | 117 #include "chrome/browser/chromeos/profiles/profile_helper.h" |
| 118 #include "chrome/browser/chromeos/settings/cros_settings.h" | 118 #include "chrome/browser/chromeos/settings/cros_settings.h" |
| 119 #include "chrome/browser/net/nss_context.h" | 119 #include "chrome/browser/net/nss_context.h" |
| 120 #include "chromeos/dbus/cryptohome_client.h" | 120 #include "chromeos/dbus/cryptohome_client.h" |
| 121 #include "chromeos/dbus/dbus_thread_manager.h" | 121 #include "chromeos/dbus/dbus_thread_manager.h" |
| 122 #include "chromeos/settings/cros_settings_names.h" | 122 #include "chromeos/settings/cros_settings_names.h" |
| 123 #include "components/user_manager/user.h" | 123 #include "components/user_manager/user.h" |
| 124 #include "components/user_manager/user_manager.h" | 124 #include "components/user_manager/user_manager.h" |
| 125 #include "crypto/nss_util.h" | 125 #include "crypto/nss_util.h" |
| 126 #include "crypto/nss_util_internal.h" | 126 #include "crypto/nss_util_internal.h" |
| 127 #include "net/cert/cert_verifier.h" |
| 127 #include "net/cert/multi_threaded_cert_verifier.h" | 128 #include "net/cert/multi_threaded_cert_verifier.h" |
| 128 #include "net/ssl/client_cert_store_chromeos.h" | 129 #include "net/ssl/client_cert_store_chromeos.h" |
| 129 #endif // defined(OS_CHROMEOS) | 130 #endif // defined(OS_CHROMEOS) |
| 130 | 131 |
| 131 #if defined(USE_NSS) | 132 #if defined(USE_NSS) |
| 132 #include "chrome/browser/ui/crypto_module_delegate_nss.h" | 133 #include "chrome/browser/ui/crypto_module_delegate_nss.h" |
| 133 #include "net/ssl/client_cert_store_nss.h" | 134 #include "net/ssl/client_cert_store_nss.h" |
| 134 #endif | 135 #endif |
| 135 | 136 |
| 136 #if defined(OS_WIN) | 137 #if defined(OS_WIN) |
| (...skipping 331 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 468 network_prediction_enabled_.Init(prefs::kNetworkPredictionEnabled, | 469 network_prediction_enabled_.Init(prefs::kNetworkPredictionEnabled, |
| 469 pref_service); | 470 pref_service); |
| 470 network_prediction_enabled_.MoveToThread(io_message_loop_proxy); | 471 network_prediction_enabled_.MoveToThread(io_message_loop_proxy); |
| 471 | 472 |
| 472 network_prediction_options_.Init(prefs::kNetworkPredictionOptions, | 473 network_prediction_options_.Init(prefs::kNetworkPredictionOptions, |
| 473 pref_service); | 474 pref_service); |
| 474 | 475 |
| 475 network_prediction_options_.MoveToThread(io_message_loop_proxy); | 476 network_prediction_options_.MoveToThread(io_message_loop_proxy); |
| 476 | 477 |
| 477 #if defined(OS_CHROMEOS) | 478 #if defined(OS_CHROMEOS) |
| 478 cert_verifier_ = policy::PolicyCertServiceFactory::CreateForProfile(profile); | 479 scoped_ptr<policy::PolicyCertVerifier> verifier = |
| 480 policy::PolicyCertServiceFactory::CreateForProfile(profile); |
| 481 policy_cert_verifier_ = verifier.get(); |
| 482 cert_verifier_ = verifier.Pass(); |
| 479 #endif | 483 #endif |
| 480 // The URLBlacklistManager has to be created on the UI thread to register | 484 // The URLBlacklistManager has to be created on the UI thread to register |
| 481 // observers of |pref_service|, and it also has to clean up on | 485 // observers of |pref_service|, and it also has to clean up on |
| 482 // ShutdownOnUIThread to release these observers on the right thread. | 486 // ShutdownOnUIThread to release these observers on the right thread. |
| 483 // Don't pass it in |profile_params_| to make sure it is correctly cleaned up, | 487 // Don't pass it in |profile_params_| to make sure it is correctly cleaned up, |
| 484 // in particular when this ProfileIOData isn't |initialized_| during deletion. | 488 // in particular when this ProfileIOData isn't |initialized_| during deletion. |
| 485 #if defined(ENABLE_CONFIGURATION_POLICY) | 489 #if defined(ENABLE_CONFIGURATION_POLICY) |
| 486 policy::URLBlacklist::SegmentURLCallback callback = | 490 policy::URLBlacklist::SegmentURLCallback callback = |
| 487 static_cast<policy::URLBlacklist::SegmentURLCallback>( | 491 static_cast<policy::URLBlacklist::SegmentURLCallback>( |
| 488 url_fixer::SegmentURL); | 492 url_fixer::SegmentURL); |
| (...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 564 use_system_key_slot(false), | 568 use_system_key_slot(false), |
| 565 #endif | 569 #endif |
| 566 profile(NULL) { | 570 profile(NULL) { |
| 567 } | 571 } |
| 568 | 572 |
| 569 ProfileIOData::ProfileParams::~ProfileParams() {} | 573 ProfileIOData::ProfileParams::~ProfileParams() {} |
| 570 | 574 |
| 571 ProfileIOData::ProfileIOData(Profile::ProfileType profile_type) | 575 ProfileIOData::ProfileIOData(Profile::ProfileType profile_type) |
| 572 : initialized_(false), | 576 : initialized_(false), |
| 573 #if defined(OS_CHROMEOS) | 577 #if defined(OS_CHROMEOS) |
| 578 policy_cert_verifier_(NULL), |
| 574 use_system_key_slot_(false), | 579 use_system_key_slot_(false), |
| 575 #endif | 580 #endif |
| 576 resource_context_(new ResourceContext(this)), | 581 resource_context_(new ResourceContext(this)), |
| 577 initialized_on_UI_thread_(false), | 582 initialized_on_UI_thread_(false), |
| 578 profile_type_(profile_type) { | 583 profile_type_(profile_type) { |
| 579 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 584 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 580 } | 585 } |
| 581 | 586 |
| 582 ProfileIOData::~ProfileIOData() { | 587 ProfileIOData::~ProfileIOData() { |
| 583 if (BrowserThread::IsMessageLoopValid(BrowserThread::IO)) | 588 if (BrowserThread::IsMessageLoopValid(BrowserThread::IO)) |
| (...skipping 490 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1074 #if defined(ENABLE_MANAGED_USERS) | 1079 #if defined(ENABLE_MANAGED_USERS) |
| 1075 supervised_user_url_filter_ = profile_params_->supervised_user_url_filter; | 1080 supervised_user_url_filter_ = profile_params_->supervised_user_url_filter; |
| 1076 #endif | 1081 #endif |
| 1077 | 1082 |
| 1078 #if defined(OS_CHROMEOS) | 1083 #if defined(OS_CHROMEOS) |
| 1079 username_hash_ = profile_params_->username_hash; | 1084 username_hash_ = profile_params_->username_hash; |
| 1080 use_system_key_slot_ = profile_params_->use_system_key_slot; | 1085 use_system_key_slot_ = profile_params_->use_system_key_slot; |
| 1081 if (use_system_key_slot_) | 1086 if (use_system_key_slot_) |
| 1082 EnableNSSSystemKeySlotForResourceContext(resource_context_.get()); | 1087 EnableNSSSystemKeySlotForResourceContext(resource_context_.get()); |
| 1083 | 1088 |
| 1084 scoped_refptr<net::CertVerifyProc> verify_proc; | |
| 1085 crypto::ScopedPK11Slot public_slot = | 1089 crypto::ScopedPK11Slot public_slot = |
| 1086 crypto::GetPublicSlotForChromeOSUser(username_hash_); | 1090 crypto::GetPublicSlotForChromeOSUser(username_hash_); |
| 1087 // The private slot won't be ready by this point. It shouldn't be necessary | 1091 // The private slot won't be ready by this point. It shouldn't be necessary |
| 1088 // for cert trust purposes anyway. | 1092 // for cert trust purposes anyway. |
| 1089 verify_proc = new chromeos::CertVerifyProcChromeOS(public_slot.Pass()); | 1093 scoped_refptr<net::CertVerifyProc> verify_proc( |
| 1090 if (cert_verifier_) { | 1094 new chromeos::CertVerifyProcChromeOS(public_slot.Pass())); |
| 1091 cert_verifier_->InitializeOnIOThread(verify_proc); | 1095 if (policy_cert_verifier_) { |
| 1092 main_request_context_->set_cert_verifier(cert_verifier_.get()); | 1096 DCHECK_EQ(policy_cert_verifier_, cert_verifier_.get()); |
| 1097 policy_cert_verifier_->InitializeOnIOThread(verify_proc); |
| 1093 } else { | 1098 } else { |
| 1094 main_request_context_->set_cert_verifier( | 1099 cert_verifier_.reset(new net::MultiThreadedCertVerifier(verify_proc.get())); |
| 1095 new net::MultiThreadedCertVerifier(verify_proc.get())); | |
| 1096 } | 1100 } |
| 1101 main_request_context_->set_cert_verifier(cert_verifier_.get()); |
| 1097 #else | 1102 #else |
| 1098 main_request_context_->set_cert_verifier( | 1103 main_request_context_->set_cert_verifier( |
| 1099 io_thread_globals->cert_verifier.get()); | 1104 io_thread_globals->cert_verifier.get()); |
| 1100 #endif | 1105 #endif |
| 1101 | 1106 |
| 1102 InitializeInternal( | 1107 InitializeInternal( |
| 1103 profile_params_.get(), protocol_handlers, request_interceptors.Pass()); | 1108 profile_params_.get(), protocol_handlers, request_interceptors.Pass()); |
| 1104 | 1109 |
| 1105 profile_params_.reset(); | 1110 profile_params_.reset(); |
| 1106 initialized_ = true; | 1111 initialized_ = true; |
| (...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1295 void ProfileIOData::SetCookieSettingsForTesting( | 1300 void ProfileIOData::SetCookieSettingsForTesting( |
| 1296 CookieSettings* cookie_settings) { | 1301 CookieSettings* cookie_settings) { |
| 1297 DCHECK(!cookie_settings_.get()); | 1302 DCHECK(!cookie_settings_.get()); |
| 1298 cookie_settings_ = cookie_settings; | 1303 cookie_settings_ = cookie_settings; |
| 1299 } | 1304 } |
| 1300 | 1305 |
| 1301 void ProfileIOData::set_signin_names_for_testing( | 1306 void ProfileIOData::set_signin_names_for_testing( |
| 1302 SigninNamesOnIOThread* signin_names) { | 1307 SigninNamesOnIOThread* signin_names) { |
| 1303 signin_names_.reset(signin_names); | 1308 signin_names_.reset(signin_names); |
| 1304 } | 1309 } |
| OLD | NEW |