Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | |
| 2 // Use of this source code is governed by a BSD-style license that can be | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 #ifndef CHROME_BROWSER_MANAGED_MODE_MANAGED_USER_SETTINGS_SERVICE_H_ | |
| 6 #define CHROME_BROWSER_MANAGED_MODE_MANAGED_USER_SETTINGS_SERVICE_H_ | |
| 7 | |
| 8 #include <string> | |
| 9 #include <vector> | |
| 10 | |
| 11 #include "base/basictypes.h" | |
| 12 #include "base/callback.h" | |
| 13 #include "base/memory/scoped_ptr.h" | |
| 14 #include "base/values.h" | |
| 15 #include "chrome/browser/managed_mode/managed_users.h" | |
| 16 | |
| 17 // Defines an abstract base class for a service that stores managed user | |
|
Pam (message me for reviews)
2013/09/03 10:45:32
It doesn't just store the settings -- that would b
Bernhard Bauer
2013/09/03 10:53:43
Well, it does store the settings in the sense that
| |
| 18 // settings, which are key-value pairs configured by a different user to | |
| 19 // control certain browser behaviors for managed users. | |
| 20 // Setting names are defined in managed_user_constants.h. | |
| 21 class ManagedUserSettingsService { | |
| 22 public: | |
| 23 // A callback whose first parameter is a dictionary containing all managed | |
| 24 // user settings. If the dictionary is NULL, it means that the service is | |
| 25 // inactive, i.e. the user is not managed. | |
| 26 typedef base::Callback<void(const base::DictionaryValue*)> SettingsCallback; | |
| 27 | |
| 28 // Adds a callback to be called when managed user settings are initially | |
| 29 // available, or when they change. | |
| 30 void Subscribe(const SettingsCallback& callback); | |
| 31 | |
| 32 // Activates the service. This happens when the user is managed. | |
| 33 void Activate(); | |
| 34 | |
| 35 protected: | |
| 36 ManagedUserSettingsService(); | |
| 37 virtual ~ManagedUserSettingsService(); | |
| 38 | |
| 39 // Sends the settings to all subscribers. This method should be called by the | |
| 40 // subclass whenever the settings change. | |
| 41 void InformSubscribers(); | |
| 42 | |
| 43 private: | |
| 44 // Whether managed user settings are available. | |
| 45 virtual bool IsReady() const = 0; | |
| 46 | |
| 47 // Returns a dictionary with all managed user settings. This method will | |
| 48 // only be called once IsReady() returns true. | |
| 49 virtual scoped_ptr<base::DictionaryValue> GetSettings() const = 0; | |
| 50 | |
| 51 // Returns the dictionary produced by GetSettings() above if the service is | |
| 52 // active, or NULL otherwise. | |
| 53 scoped_ptr<base::DictionaryValue> GetSettingsIfActive(); | |
| 54 | |
| 55 bool active_; | |
| 56 | |
| 57 std::vector<SettingsCallback> subscribers_; | |
| 58 | |
| 59 DISALLOW_COPY_AND_ASSIGN(ManagedUserSettingsService); | |
| 60 }; | |
| 61 | |
| 62 #endif // CHROME_BROWSER_MANAGED_MODE_MANAGED_USER_SETTINGS_SERVICE_H_ | |
| OLD | NEW |