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

Unified Diff: chrome/browser/ui/webui/policy_ui_handler.cc

Issue 2531793002: Update AD status on chrome://policy page automatically (Closed)
Patch Set: Created 4 years, 1 month 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/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..93a78dbe335d273afb93456dde749c625e3cab8f 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->mutable_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()

Powered by Google App Engine
This is Rietveld 408576698