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

Unified Diff: chrome/browser/managed_mode/managed_user_sync_service.cc

Issue 23910002: Add synchronous and asynchronous methods to ManagedUserSyncService to get the list of managed users. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: comment Created 7 years, 3 months 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/managed_mode/managed_user_sync_service.cc
diff --git a/chrome/browser/managed_mode/managed_user_sync_service.cc b/chrome/browser/managed_mode/managed_user_sync_service.cc
index 3728e854e3c9a9359ad7360139822316753a2a32..77f478c6f3f9be985079a3fd96603518124d067c 100644
--- a/chrome/browser/managed_mode/managed_user_sync_service.cc
+++ b/chrome/browser/managed_mode/managed_user_sync_service.cc
@@ -5,6 +5,7 @@
#include "chrome/browser/managed_mode/managed_user_sync_service.h"
#include "base/bind.h"
+#include "base/callback.h"
#include "base/values.h"
#include "chrome/browser/prefs/scoped_user_pref_update.h"
#include "chrome/browser/profiles/profile.h"
@@ -121,6 +122,23 @@ void ManagedUserSyncService::DeleteManagedUser(const std::string& id) {
DCHECK(!sync_error.IsSet());
}
+const DictionaryValue* ManagedUserSyncService::GetManagedUsers() {
+ DCHECK(sync_processor_);
+ return prefs_->GetDictionary(prefs::kManagedUsers);
+}
+
+void ManagedUserSyncService::GetManagedUsersAsync(
+ const ManagedUsersCallback& callback) {
+ // If we are already syncing, just run the callback.
+ if (sync_processor_) {
+ callback.Run(GetManagedUsers());
+ return;
+ }
+
+ // Otherwise queue it up until we start syncing.
+ callbacks_.push_back(callback);
+}
+
void ManagedUserSyncService::Shutdown() {
NotifyManagedUsersSyncingStopped();
}
@@ -184,6 +202,8 @@ SyncMergeResult ManagedUserSyncService::MergeDataAndStartSyncing(
result.set_num_items_added(num_items_added);
result.set_num_items_after_association(dict->size());
+ DispatchCallbacks();
+
return result;
}
@@ -287,3 +307,13 @@ void ManagedUserSyncService::NotifyManagedUsersSyncingStopped() {
FOR_EACH_OBSERVER(ManagedUserSyncServiceObserver, observers_,
OnManagedUsersSyncingStopped());
}
+
+void ManagedUserSyncService::DispatchCallbacks() {
+ const DictionaryValue* managed_users =
+ prefs_->GetDictionary(prefs::kManagedUsers);
+ for (std::vector<ManagedUsersCallback>::iterator it = callbacks_.begin();
+ it != callbacks_.end(); ++it) {
+ it->Run(managed_users);
+ }
+ callbacks_.clear();
+}

Powered by Google App Engine
This is Rietveld 408576698