Index: chrome/browser/chromeos/ownership/owner_settings_service.cc |
diff --git a/chrome/browser/chromeos/ownership/owner_settings_service.cc b/chrome/browser/chromeos/ownership/owner_settings_service.cc |
index e7215cf8cda969ae18c5679cc8aee8561c726f55..d9afe65da9b97d6907d8a85a934a6b699e7e89f6 100644 |
--- a/chrome/browser/chromeos/ownership/owner_settings_service.cc |
+++ b/chrome/browser/chromeos/ownership/owner_settings_service.cc |
@@ -16,6 +16,7 @@ |
#include "chrome/browser/chromeos/settings/session_manager_operation.h" |
#include "chrome/browser/profiles/profile.h" |
#include "chromeos/dbus/dbus_thread_manager.h" |
+#include "chromeos/tpm_token_loader.h" |
#include "components/policy/core/common/cloud/cloud_policy_constants.h" |
#include "content/public/browser/browser_thread.h" |
#include "content/public/browser/notification_details.h" |
@@ -241,8 +242,11 @@ OwnerSettingsService::OwnerSettingsService( |
waiting_for_tpm_token_(true), |
weak_factory_(this) { |
if (TPMTokenLoader::IsInitialized()) { |
- waiting_for_tpm_token_ = !TPMTokenLoader::Get()->IsTPMTokenReady(); |
- TPMTokenLoader::Get()->AddObserver(this); |
+ TPMTokenLoader::TPMTokenStatus tpm_token_status = |
+ TPMTokenLoader::Get()->IsTPMTokenEnabled( |
+ base::Bind(&OwnerSettingsService::OnTPMTokenReady, as_weak_ptr())); |
+ waiting_for_tpm_token_ = |
+ tpm_token_status == TPMTokenLoader::TPM_TOKEN_STATUS_UNDETERMINED; |
} |
if (DBusThreadManager::IsInitialized() && |
@@ -257,9 +261,6 @@ OwnerSettingsService::OwnerSettingsService( |
OwnerSettingsService::~OwnerSettingsService() { |
DCHECK(thread_checker_.CalledOnValidThread()); |
- if (TPMTokenLoader::IsInitialized()) |
- TPMTokenLoader::Get()->RemoveObserver(this); |
- |
if (DBusThreadManager::IsInitialized() && |
DBusThreadManager::Get()->GetSessionManagerClient()) { |
DBusThreadManager::Get()->GetSessionManagerClient()->RemoveObserver(this); |
@@ -359,7 +360,7 @@ void OwnerSettingsService::Observe( |
ReloadPrivateKey(); |
} |
-void OwnerSettingsService::OnTPMTokenReady() { |
+void OwnerSettingsService::OnTPMTokenReady(bool /* unused token_enabled */) { |
DCHECK(thread_checker_.CalledOnValidThread()); |
waiting_for_tpm_token_ = false; |