Index: chrome/browser/managed_mode/managed_user_sync_service.h |
diff --git a/chrome/browser/managed_mode/managed_user_sync_service.h b/chrome/browser/managed_mode/managed_user_sync_service.h |
index b0aa4b8ae3d201bab7ee8de3b655ce87863a3f70..4c7642350af1c672d692ae02fa516eb75bef5973 100644 |
--- a/chrome/browser/managed_mode/managed_user_sync_service.h |
+++ b/chrome/browser/managed_mode/managed_user_sync_service.h |
@@ -5,6 +5,9 @@ |
#ifndef CHROME_BROWSER_MANAGED_MODE_MANAGED_USER_SYNC_SERVICE_H_ |
#define CHROME_BROWSER_MANAGED_MODE_MANAGED_USER_SYNC_SERVICE_H_ |
+#include <vector> |
+ |
+#include "base/callback_forward.h" |
#include "base/memory/scoped_ptr.h" |
#include "base/observer_list.h" |
#include "base/prefs/pref_change_registrar.h" |
@@ -13,15 +16,23 @@ |
#include "components/browser_context_keyed_service/browser_context_keyed_service.h" |
#include "sync/api/syncable_service.h" |
-class PrefService; |
+namespace base { |
+class DictionaryValue; |
+} |
namespace user_prefs { |
class PrefRegistrySyncable; |
} |
+class PrefService; |
+ |
class ManagedUserSyncService : public BrowserContextKeyedService, |
public syncer::SyncableService { |
public: |
+ // For use with GetAllManagedUsers() below. |
+ typedef base::Callback<void(const base::DictionaryValue*)> |
+ ManagedUsersCallback; |
+ |
virtual ~ManagedUserSyncService(); |
static void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry); |
@@ -34,6 +45,17 @@ class ManagedUserSyncService : public BrowserContextKeyedService, |
const std::string& master_key); |
void DeleteManagedUser(const std::string& id); |
+ // Returns a dictionary containing all managed users managed by this |
+ // custodian. This method should only be called once this service has started |
+ // syncing managed users (i.e. has finished its initial merge of local and |
+ // server-side data, via MergeDataAndStartSyncing), as the stored data might |
+ // be outdated before that. |
+ const base::DictionaryValue* GetManagedUsers(); |
+ |
+ // Calls the passed |callback| with a dictionary containing all managed users |
+ // managed by this custodian. |
+ void GetManagedUsersAsync(const ManagedUsersCallback& callback); |
+ |
// BrowserContextKeyedService implementation: |
virtual void Shutdown() OVERRIDE; |
@@ -62,6 +84,8 @@ class ManagedUserSyncService : public BrowserContextKeyedService, |
void NotifyManagedUserAcknowledged(const std::string& managed_user_id); |
void NotifyManagedUsersSyncingStopped(); |
+ void DispatchCallbacks(); |
+ |
PrefService* prefs_; |
PrefChangeRegistrar pref_change_registrar_; |
@@ -70,6 +94,8 @@ class ManagedUserSyncService : public BrowserContextKeyedService, |
ObserverList<ManagedUserSyncServiceObserver> observers_; |
+ std::vector<ManagedUsersCallback> callbacks_; |
+ |
DISALLOW_COPY_AND_ASSIGN(ManagedUserSyncService); |
}; |