| Index: chrome/browser/extensions/extension_preference_api.h | 
| diff --git a/chrome/browser/extensions/extension_preference_api.h b/chrome/browser/extensions/extension_preference_api.h | 
| index 00b051f6653c7ddba48fa11ae0554761db19d0a4..bea9f3f76b31799e5e4a5932b314bc1da47ddeb7 100644 | 
| --- a/chrome/browser/extensions/extension_preference_api.h | 
| +++ b/chrome/browser/extensions/extension_preference_api.h | 
| @@ -9,18 +9,41 @@ | 
| #include <string> | 
|  | 
| #include "chrome/browser/extensions/extension_function.h" | 
| +#include "chrome/browser/prefs/pref_change_registrar.h" | 
| +#include "chrome/common/notification_observer.h" | 
| + | 
| +class ExtensionPreferenceEventRouter : public NotificationObserver { | 
| + public: | 
| +  explicit ExtensionPreferenceEventRouter(Profile* profile); | 
| +  virtual ~ExtensionPreferenceEventRouter(); | 
| + | 
| + private: | 
| +  // NotificationObserver implementation. | 
| +  virtual void Observe(NotificationType type, | 
| +                       const NotificationSource& source, | 
| +                       const NotificationDetails& details); | 
| + | 
| +  void OnPrefChanged(PrefService* pref_service, const std::string& pref_key); | 
| + | 
| +  // This method dispatches events to the extension message service. | 
| +  void DispatchEvent(const std::string& extension_id, | 
| +                     const std::string& event_name, | 
| +                     const std::string& json_args); | 
| + | 
| +  PrefChangeRegistrar registrar_; | 
| +  PrefChangeRegistrar incognito_registrar_; | 
| + | 
| +  // Weak, owns us (transitively via ExtensionService). | 
| +  Profile* profile_; | 
| + | 
| +  DISALLOW_COPY_AND_ASSIGN(ExtensionPreferenceEventRouter); | 
| +}; | 
|  | 
| class GetPreferenceFunction : public SyncExtensionFunction { | 
| public: | 
| virtual ~GetPreferenceFunction(); | 
| virtual bool RunImpl(); | 
| DECLARE_EXTENSION_FUNCTION_NAME("experimental.preferences.get") | 
| - | 
| - private: | 
| -  // Returns a string constant (defined in API) indicating the level of | 
| -  // control this extension has on the specified preference. | 
| -  const char* GetLevelOfControl(const std::string& browser_pref, | 
| -                                bool incognito) const; | 
| }; | 
|  | 
| class SetPreferenceFunction : public SyncExtensionFunction { | 
|  |