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 9b4ccef7175695c57ef080ab9cee70b54eb5fb89..e2b380559e3f5d2e5300bba1f6c2db3a39756ce7 100644 |
--- a/chrome/browser/chromeos/ownership/owner_settings_service.cc |
+++ b/chrome/browser/chromeos/ownership/owner_settings_service.cc |
@@ -9,13 +9,17 @@ |
#include "base/bind.h" |
#include "base/bind_helpers.h" |
#include "base/command_line.h" |
+#include "base/path_service.h" |
+#include "base/prefs/pref_service.h" |
#include "chrome/browser/chrome_notification_types.h" |
#include "chrome/browser/chromeos/ownership/owner_settings_service_factory.h" |
#include "chrome/browser/chromeos/profiles/profile_helper.h" |
#include "chrome/browser/chromeos/settings/cros_settings.h" |
#include "chrome/browser/chromeos/settings/session_manager_operation.h" |
#include "chrome/browser/profiles/profile.h" |
+#include "chromeos/chromeos_paths.h" |
#include "chromeos/dbus/dbus_thread_manager.h" |
+#include "components/ownership/owner_key_util_impl.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" |
@@ -31,6 +35,9 @@ |
namespace em = enterprise_management; |
using content::BrowserThread; |
+using ownership::OwnerKeyUtil; |
+using ownership::PrivateKey; |
+using ownership::PublicKey; |
namespace chromeos { |
@@ -176,7 +183,11 @@ void DoesPrivateKeyExistAsync( |
if (g_owner_key_util_for_testing) |
owner_key_util = *g_owner_key_util_for_testing; |
else |
- owner_key_util = OwnerKeyUtil::Create(); |
+ owner_key_util = OwnerSettingsService::MakeOwnerKeyUtil(); |
+ if (!owner_key_util) { |
+ callback.Run(false); |
+ return; |
+ } |
scoped_refptr<base::TaskRunner> task_runner = |
content::BrowserThread::GetBlockingPool() |
->GetTaskRunnerWithShutdownBehavior( |
@@ -232,7 +243,7 @@ bool CheckManagementModeTransition(em::PolicyData::ManagementMode current_mode, |
OwnerSettingsService::OwnerSettingsService(Profile* profile) |
: profile_(profile), |
- owner_key_util_(OwnerKeyUtil::Create()), |
+ owner_key_util_(MakeOwnerKeyUtil()), |
waiting_for_profile_creation_(true), |
waiting_for_tpm_token_(true), |
weak_factory_(this) { |
@@ -390,6 +401,15 @@ void OwnerSettingsService::IsOwnerForSafeModeAsync( |
} |
// static |
+scoped_refptr<ownership::OwnerKeyUtil> |
+OwnerSettingsService::MakeOwnerKeyUtil() { |
+ base::FilePath public_key_path; |
+ if (!PathService::Get(chromeos::FILE_OWNER_KEY, &public_key_path)) |
+ return NULL; |
+ return new ownership::OwnerKeyUtilImpl(public_key_path); |
+} |
+ |
+// static |
void OwnerSettingsService::SetOwnerKeyUtilForTesting( |
const scoped_refptr<OwnerKeyUtil>& owner_key_util) { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |