| Index: chrome/browser/ui/webui/policy_ui_handler.cc
|
| diff --git a/chrome/browser/ui/webui/policy_ui_handler.cc b/chrome/browser/ui/webui/policy_ui_handler.cc
|
| index 9705752a36ec74f5c35c5ab359e2dac3dc4d388b..d9bb3ccd01874c90768d230acfea3fcf460cabf9 100644
|
| --- a/chrome/browser/ui/webui/policy_ui_handler.cc
|
| +++ b/chrome/browser/ui/webui/policy_ui_handler.cc
|
| @@ -309,7 +309,9 @@ class DeviceLocalAccountPolicyStatusProvider
|
| };
|
|
|
| // Provides status for DeviceActiveDirectoryPolicyManager.
|
| -class DeviceActiveDirectoryPolicyStatusProvider : public PolicyStatusProvider {
|
| +class DeviceActiveDirectoryPolicyStatusProvider
|
| + : public PolicyStatusProvider,
|
| + public policy::CloudPolicyStore::Observer {
|
| public:
|
| explicit DeviceActiveDirectoryPolicyStatusProvider(
|
| policy::DeviceActiveDirectoryPolicyManager* manager);
|
| @@ -318,8 +320,12 @@ class DeviceActiveDirectoryPolicyStatusProvider : public PolicyStatusProvider {
|
| // PolicyStatusProvider implementation.
|
| void GetStatus(base::DictionaryValue* dict) override;
|
|
|
| + // policy::CloudPolicyStore::Observer implementation.
|
| + void OnStoreLoaded(policy::CloudPolicyStore* store) override;
|
| + void OnStoreError(policy::CloudPolicyStore* store) override;
|
| +
|
| private:
|
| - const policy::CloudPolicyStore* store_;
|
| + policy::CloudPolicyStore* store_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(DeviceActiveDirectoryPolicyStatusProvider);
|
| };
|
| @@ -437,10 +443,14 @@ void DeviceLocalAccountPolicyStatusProvider::OnDeviceLocalAccountsChanged() {
|
| DeviceActiveDirectoryPolicyStatusProvider::
|
| DeviceActiveDirectoryPolicyStatusProvider(
|
| policy::DeviceActiveDirectoryPolicyManager* manager)
|
| - : store_(manager->store()) {}
|
| + : store_(manager->store()) {
|
| + store_->AddObserver(this);
|
| +}
|
|
|
| DeviceActiveDirectoryPolicyStatusProvider::
|
| - ~DeviceActiveDirectoryPolicyStatusProvider() {}
|
| + ~DeviceActiveDirectoryPolicyStatusProvider() {
|
| + store_->RemoveObserver(this);
|
| +}
|
|
|
| // TODO(tnagel): Provide more details and/or remove unused fields from UI. See
|
| // https://crbug.com/664747.
|
| @@ -451,6 +461,16 @@ void DeviceActiveDirectoryPolicyStatusProvider::GetStatus(
|
| dict->SetString("status", status);
|
| }
|
|
|
| +void DeviceActiveDirectoryPolicyStatusProvider::OnStoreLoaded(
|
| + policy::CloudPolicyStore* store) {
|
| + NotifyStatusChange();
|
| +}
|
| +
|
| +void DeviceActiveDirectoryPolicyStatusProvider::OnStoreError(
|
| + policy::CloudPolicyStore* store) {
|
| + NotifyStatusChange();
|
| +}
|
| +
|
| #endif // defined(OS_CHROMEOS)
|
|
|
| PolicyUIHandler::PolicyUIHandler()
|
|
|