Chromium Code Reviews| Index: chrome/browser/chromeos/policy/consumer_management_service.cc |
| diff --git a/chrome/browser/chromeos/policy/consumer_management_service.cc b/chrome/browser/chromeos/policy/consumer_management_service.cc |
| index 247bdaf58c735d2034cb02fab1818c628ed4e6fa..782dd39cddce5f95e88b0fe643c1cc6587a380a1 100644 |
| --- a/chrome/browser/chromeos/policy/consumer_management_service.cc |
| +++ b/chrome/browser/chromeos/policy/consumer_management_service.cc |
| @@ -20,6 +20,7 @@ |
| #include "chrome/browser/chromeos/policy/device_cloud_policy_initializer.h" |
| #include "chrome/browser/chromeos/policy/enrollment_status_chromeos.h" |
| #include "chrome/browser/chromeos/profiles/profile_helper.h" |
| +#include "chrome/browser/chromeos/settings/device_settings_service.h" |
| #include "chrome/browser/notifications/notification.h" |
| #include "chrome/browser/notifications/notification_ui_manager.h" |
| #include "chrome/browser/profiles/profile.h" |
| @@ -67,9 +68,11 @@ const char* kConsumerManagementOverlay = "/consumer-management-overlay"; |
| namespace policy { |
| ConsumerManagementService::ConsumerManagementService( |
| - chromeos::CryptohomeClient* client) |
| + chromeos::CryptohomeClient* client, |
| + chromeos::DeviceSettingsService* device_settings_service) |
| : Consumer("consumer_management_service"), |
| client_(client), |
| + device_settings_service_(device_settings_service), |
| enrolling_token_service_(NULL), |
| is_observing_token_service_(false), |
| weak_ptr_factory_(this) { |
| @@ -94,6 +97,14 @@ void ConsumerManagementService::RegisterPrefs(PrefRegistrySimple* registry) { |
| prefs::kConsumerManagementEnrollmentState, ENROLLMENT_NONE); |
| } |
| +void ConsumerManagementService::AddObserver(Observer* observer) { |
| + observers_.AddObserver(observer); |
| +} |
| + |
| +void ConsumerManagementService::RemoveObserver(Observer* observer) { |
| + observers_.RemoveObserver(observer); |
| +} |
| + |
| ConsumerManagementService::ConsumerEnrollmentState |
| ConsumerManagementService::GetEnrollmentState() const { |
| const PrefService* prefs = g_browser_process->local_state(); |
| @@ -109,6 +120,8 @@ void ConsumerManagementService::SetEnrollmentState( |
| ConsumerEnrollmentState state) { |
| PrefService* prefs = g_browser_process->local_state(); |
| prefs->SetInteger(prefs::kConsumerManagementEnrollmentState, state); |
| + |
| + NotifyEnrollmentStateChanged(); |
|
bartfab (slow)
2014/08/20 14:40:02
Nit: Since this is the only caller of NotifyEnroll
davidyu
2014/08/21 09:40:29
Done.
|
| } |
| void ConsumerManagementService::GetOwner(const GetOwnerCallback& callback) { |
| @@ -181,6 +194,23 @@ void ConsumerManagementService::OnFlushAndSignBootAttributesDone( |
| callback.Run(true); |
| } |
| +bool ConsumerManagementService::IsEnrolled() const { |
| + const enterprise_management::PolicyData* policy_data = |
| + device_settings_service_->policy_data(); |
| + return policy_data && policy_data->management_mode() == |
|
bartfab (slow)
2014/08/20 14:40:02
What if policy data has not been retrieved yet? Th
davidyu
2014/08/21 09:40:29
Added a unknown state which is returned when polic
|
| + enterprise_management::PolicyData::CONSUMER_MANAGED; |
| +} |
| + |
| +bool ConsumerManagementService::IsEnrolling() const { |
| + ConsumerEnrollmentState state = GetEnrollmentState(); |
| + return state > ENROLLMENT_NONE && state < ENROLLMENT_SUCCESS; |
| +} |
| + |
| +bool ConsumerManagementService::IsUnenrolling() const { |
| + // TODO(davidyu): Implement this. |
|
bartfab (slow)
2014/08/20 14:40:02
Nit: Can you add a bug number?
davidyu
2014/08/21 09:40:29
Done.
|
| + return false; |
| +} |
| + |
| void ConsumerManagementService::Observe( |
| int type, |
| const content::NotificationSource& source, |
| @@ -422,6 +452,12 @@ void ConsumerManagementService::ShowDesktopNotification( |
| g_browser_process->notification_ui_manager()->Add(*notification, profile); |
| } |
| +void ConsumerManagementService::NotifyEnrollmentStateChanged() { |
| + FOR_EACH_OBSERVER(Observer, |
| + observers_, |
| + OnConsumerManagementEnrollmentStateChanged(this)); |
| +} |
| + |
| ConsumerManagementService::DesktopNotificationDelegate:: |
| DesktopNotificationDelegate( |
| const std::string& id, |