Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1284)

Unified Diff: chrome/browser/chromeos/policy/enrollment_handler_chromeos.cc

Issue 769703003: SetManagementSettings() is moved to OwnerSettingsServiceChromeOS. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Comments addressed. Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/chromeos/policy/enrollment_handler_chromeos.cc
diff --git a/chrome/browser/chromeos/policy/enrollment_handler_chromeos.cc b/chrome/browser/chromeos/policy/enrollment_handler_chromeos.cc
index ad963ff0a8149ae14e18e0f5b6a2f8d913d46fcf..78f2a59e57b72a3147a92bd5a31f983e97d7f5ba 100644
--- a/chrome/browser/chromeos/policy/enrollment_handler_chromeos.cc
+++ b/chrome/browser/chromeos/policy/enrollment_handler_chromeos.cc
@@ -10,18 +10,27 @@
#include "base/message_loop/message_loop.h"
#include "chrome/browser/browser_process.h"
#include "chrome/browser/chromeos/login/enrollment/auto_enrollment_controller.h"
+#include "chrome/browser/chromeos/ownership/owner_settings_service_chromeos.h"
+#include "chrome/browser/chromeos/ownership/owner_settings_service_chromeos_factory.h"
#include "chrome/browser/chromeos/policy/device_cloud_policy_store_chromeos.h"
#include "chrome/browser/chromeos/policy/proto/chrome_device_policy.pb.h"
#include "chrome/browser/chromeos/policy/server_backed_state_keys_broker.h"
+#include "chrome/browser/chromeos/profiles/profile_helper.h"
#include "chrome/browser/chromeos/settings/device_oauth2_token_service.h"
#include "chrome/browser/chromeos/settings/device_oauth2_token_service_factory.h"
#include "chrome/browser/chromeos/settings/device_settings_service.h"
+#include "chrome/browser/profiles/profile.h"
#include "chromeos/chromeos_switches.h"
+#include "components/user_manager/user_manager.h"
#include "google_apis/gaia/gaia_urls.h"
#include "net/http/http_status_code.h"
namespace em = enterprise_management;
+using chromeos::OwnerSettingsServiceChromeOS;
+using chromeos::OwnerSettingsServiceChromeOSFactory;
+using user_manager::UserManager;
+
namespace policy {
namespace {
@@ -206,10 +215,11 @@ void EnrollmentHandlerChromeOS::OnStoreLoaded(CloudPolicyStore* store) {
void EnrollmentHandlerChromeOS::OnStoreError(CloudPolicyStore* store) {
DCHECK_EQ(store_, store);
if (enrollment_step_ == STEP_STORE_TOKEN_AND_ID) {
Mattias Nissler (ping if slow) 2014/12/03 09:07:54 Side note: This bailout path should only be enable
- // Calling DeviceSettingsService::SetManagementSettings() on a non-
- // enterprise-managed device will trigger OnStoreError(), as
- // DeviceCloudPolicyStore listens to all changes on DeviceSettingsService,
- // and it calls OnStoreError() when the device is not enterprise-managed.
+ // Calling OwnerSettingsServiceChromeOS::SetManagementSettings()
+ // on a non- enterprise-managed device will fail as
+ // DeviceCloudPolicyStore listens to all changes on device
+ // settings, and it calls OnStoreError() when the device is not
+ // enterprise-managed.
return;
}
ReportResult(EnrollmentStatus::ForStoreError(store_->status(),
@@ -346,10 +356,23 @@ void EnrollmentHandlerChromeOS::StartLockDevice() {
// Consumer device enrollment doesn't use install attributes. Instead,
// we put the information in the owners settings.
enrollment_step_ = STEP_STORE_TOKEN_AND_ID;
- device_settings_service_->SetManagementSettings(
- em::PolicyData::CONSUMER_MANAGED, request_token_, device_id_,
- base::Bind(&EnrollmentHandlerChromeOS::HandleSetManagementSettingsDone,
- weak_ptr_factory_.GetWeakPtr()));
+ const user_manager::User* user = UserManager::Get()->FindUser(username_);
+ CHECK(user);
+ Profile* profile = chromeos::ProfileHelper::Get()->GetProfileByUser(user);
+ CHECK(profile);
+ OwnerSettingsServiceChromeOS* service =
+ OwnerSettingsServiceChromeOSFactory::GetForBrowserContext(profile);
+ if (service) {
+ OwnerSettingsServiceChromeOS::ManagementSettings settings;
+ settings.management_mode = management_mode_;
+ settings.request_token = request_token_;
+ settings.device_id = device_id_;
+ service->SetManagementSettings(
+ settings,
+ base::Bind(
+ &EnrollmentHandlerChromeOS::HandleSetManagementSettingsDone,
+ weak_ptr_factory_.GetWeakPtr()));
+ }
} else {
install_attributes_->LockDevice(
username_, device_mode_, device_id_,
@@ -358,10 +381,9 @@ void EnrollmentHandlerChromeOS::StartLockDevice() {
}
}
-void EnrollmentHandlerChromeOS::HandleSetManagementSettingsDone() {
+void EnrollmentHandlerChromeOS::HandleSetManagementSettingsDone(bool success) {
CHECK_EQ(STEP_STORE_TOKEN_AND_ID, enrollment_step_);
- if (device_settings_service_->status() !=
- chromeos::DeviceSettingsService::STORE_SUCCESS) {
+ if (!success) {
ReportResult(EnrollmentStatus::ForStatus(
EnrollmentStatus::STATUS_STORE_TOKEN_AND_ID_FAILED));
return;

Powered by Google App Engine
This is Rietveld 408576698