Index: chrome/browser/chromeos/settings/device_settings_service.cc |
diff --git a/chrome/browser/chromeos/settings/device_settings_service.cc b/chrome/browser/chromeos/settings/device_settings_service.cc |
index 8e6ce758768dd221721294e63e066a27ceeb62c1..bbb4339b94b6169c5919792e7999809116e309a6 100644 |
--- a/chrome/browser/chromeos/settings/device_settings_service.cc |
+++ b/chrome/browser/chromeos/settings/device_settings_service.cc |
@@ -75,10 +75,14 @@ DeviceSettingsService::DeviceSettingsService() |
weak_factory_(this), |
store_status_(STORE_SUCCESS), |
load_retries_left_(kMaxLoadRetries) { |
+ if (CertLoader::IsInitialized()) |
+ CertLoader::Get()->AddObserver(this); |
} |
DeviceSettingsService::~DeviceSettingsService() { |
DCHECK(pending_operations_.empty()); |
+ if (CertLoader::IsInitialized()) |
+ CertLoader::Get()->RemoveObserver(this); |
} |
void DeviceSettingsService::SetSessionManager( |
@@ -208,6 +212,14 @@ void DeviceSettingsService::PropertyChangeComplete(bool success) { |
EnsureReload(false); |
} |
+void DeviceSettingsService::OnCertificatesLoaded( |
+ const net::CertificateList& cert_list, |
+ bool initial_load) { |
+ // CertLoader initializes the TPM and NSS database which is necessary to |
+ // determine ownership. Force a reload once we know these are initialized. |
+ EnsureReload(true); |
+} |
+ |
void DeviceSettingsService::Enqueue(SessionManagerOperation* operation) { |
pending_operations_.push_back(operation); |
if (pending_operations_.front() == operation) |