Commit 663a3d2f authored by tnagel's avatar tnagel Committed by Commit bot

Update AD status on chrome://policy page automatically

Make DeviceActiveDirectoryPolicyStatusProvider observe CloudPolicyStore.

BUG=668652

Review-Url: https://codereview.chromium.org/2531793002
Cr-Commit-Position: refs/heads/master@{#434661}
parent f518237b
......@@ -34,7 +34,7 @@ class DeviceActiveDirectoryPolicyManager : public ConfigurationPolicyProvider,
void OnStoreLoaded(CloudPolicyStore* cloud_policy_store) override;
void OnStoreError(CloudPolicyStore* cloud_policy_store) override;
const CloudPolicyStore* store() const { return store_.get(); }
CloudPolicyStore* store() const { return store_.get(); }
private:
// Publishes the policy that's currently cached in the store.
......
......@@ -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()
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment