Index: chrome/browser/extensions/extension_font_settings_api.h |
diff --git a/chrome/browser/extensions/extension_font_settings_api.h b/chrome/browser/extensions/extension_font_settings_api.h |
index 8415f0ea316640c465255df95bfb1a9c6cb7abab..5003c0b833cf8a03f6fb82d02eba9e907bb939cc 100644 |
--- a/chrome/browser/extensions/extension_font_settings_api.h |
+++ b/chrome/browser/extensions/extension_font_settings_api.h |
@@ -19,26 +19,36 @@ class ExtensionFontSettingsEventRouter : public content::NotificationObserver { |
void Init(); |
private: |
- typedef std::map<std::string, std::string> PrefEventMap; |
+ typedef std::pair<std::string, std::string> EventAndKeyPair; |
+ // Map of pref name to a pair of event name and key (defined in the API) for |
+ // dispatching a pref changed event. For example, |
+ // "webkit.webprefs.default_font_size" to ("onDefaultFontSizedChanged", |
+ // "pixelSize"). |
+ typedef std::map<std::string, EventAndKeyPair> PrefEventMap; |
+ |
+ void AddPrefToObserve(const char* pref_name, |
+ const char* event_name, |
+ const char* key); |
// content::NotificationObserver implementation. |
virtual void Observe(int type, |
const content::NotificationSource& source, |
const content::NotificationDetails& details) OVERRIDE; |
+ |
void OnFontNamePrefChanged(PrefService* pref_service, |
- const std::string& pref_key, |
+ const std::string& pref_name, |
const std::string& generic_family, |
const std::string& script, |
bool incognito); |
- void OnFontSizePrefChanged(PrefService* pref_service, |
- const std::string& pref_key, |
- const std::string& event_name, |
- bool incognito); |
+ void OnFontPrefChanged(PrefService* pref_service, |
+ const std::string& pref_name, |
+ const std::string& event_name, |
+ const std::string& key, |
+ bool incognito); |
PrefChangeRegistrar registrar_; |
- // Map of pref key to event name. |
- std::map<std::string, std::string> pref_event_map_; |
+ PrefEventMap pref_event_map_; |
// Weak, owns us (transitively via ExtensionService). |
Profile* profile_; |
@@ -68,76 +78,112 @@ class GetFontListFunction : public AsyncExtensionFunction { |
bool CopyFontsToResult(base::ListValue* fonts); |
}; |
-// Base class for functions that get a font size. |
-class GetFontSizeExtensionFunction : public SyncExtensionFunction { |
+// Base class for functions that get a font pref. |
+class GetFontPrefExtensionFunction : public SyncExtensionFunction { |
protected: |
virtual bool RunImpl() OVERRIDE; |
- // Implementations should return the name of the font size preference to get. |
+ // Implementations should return the name of the preference to get, like |
+ // "webkit.webprefs.default_font_size". |
virtual const char* GetPrefName() = 0; |
+ |
+ // Implementations should return the key for the value in the extension API, |
+ // like "pixelSize". |
+ virtual const char* GetKey() = 0; |
}; |
-// Base class for functions that set a font size. |
-class SetFontSizeExtensionFunction : public SyncExtensionFunction { |
+// Base class for functions that set a font pref. |
+class SetFontPrefExtensionFunction : public SyncExtensionFunction { |
protected: |
virtual bool RunImpl() OVERRIDE; |
- // Implementations should return the name of the font size preference to set. |
+ // Implementations should return the name of the preference to set, like |
+ // "webkit.webprefs.default_font_size". |
virtual const char* GetPrefName() = 0; |
+ |
+ // Implementations should return the key for the value in the extension API, |
+ // like "pixelSize". |
+ virtual const char* GetKey() = 0; |
}; |
-class GetDefaultFontSizeFunction : public GetFontSizeExtensionFunction { |
+class GetDefaultFontSizeFunction : public GetFontPrefExtensionFunction { |
public: |
DECLARE_EXTENSION_FUNCTION_NAME( |
"experimental.fontSettings.getDefaultFontSize") |
protected: |
virtual const char* GetPrefName() OVERRIDE; |
+ virtual const char* GetKey() OVERRIDE; |
}; |
-class SetDefaultFontSizeFunction : public SetFontSizeExtensionFunction { |
+class SetDefaultFontSizeFunction : public SetFontPrefExtensionFunction { |
public: |
DECLARE_EXTENSION_FUNCTION_NAME( |
"experimental.fontSettings.setDefaultFontSize") |
protected: |
virtual const char* GetPrefName() OVERRIDE; |
+ virtual const char* GetKey() OVERRIDE; |
}; |
-class GetDefaultFixedFontSizeFunction : public GetFontSizeExtensionFunction { |
+class GetDefaultFixedFontSizeFunction : public GetFontPrefExtensionFunction { |
public: |
DECLARE_EXTENSION_FUNCTION_NAME( |
"experimental.fontSettings.getDefaultFixedFontSize") |
protected: |
virtual const char* GetPrefName() OVERRIDE; |
+ virtual const char* GetKey() OVERRIDE; |
}; |
-class SetDefaultFixedFontSizeFunction : public SetFontSizeExtensionFunction { |
+class SetDefaultFixedFontSizeFunction : public SetFontPrefExtensionFunction { |
public: |
DECLARE_EXTENSION_FUNCTION_NAME( |
"experimental.fontSettings.setDefaultFixedFontSize") |
protected: |
virtual const char* GetPrefName() OVERRIDE; |
+ virtual const char* GetKey() OVERRIDE; |
}; |
-class GetMinimumFontSizeFunction : public GetFontSizeExtensionFunction { |
+class GetMinimumFontSizeFunction : public GetFontPrefExtensionFunction { |
public: |
DECLARE_EXTENSION_FUNCTION_NAME( |
"experimental.fontSettings.getMinimumFontSize") |
protected: |
virtual const char* GetPrefName() OVERRIDE; |
+ virtual const char* GetKey() OVERRIDE; |
}; |
-class SetMinimumFontSizeFunction : public SetFontSizeExtensionFunction { |
+class SetMinimumFontSizeFunction : public SetFontPrefExtensionFunction { |
public: |
DECLARE_EXTENSION_FUNCTION_NAME( |
"experimental.fontSettings.setMinimumFontSize") |
protected: |
virtual const char* GetPrefName() OVERRIDE; |
+ virtual const char* GetKey() OVERRIDE; |
+}; |
+ |
+class GetDefaultCharacterSetFunction : public GetFontPrefExtensionFunction { |
+ public: |
+ DECLARE_EXTENSION_FUNCTION_NAME( |
+ "experimental.fontSettings.getDefaultCharacterSet") |
+ |
+ protected: |
+ virtual const char* GetPrefName() OVERRIDE; |
+ virtual const char* GetKey() OVERRIDE; |
+}; |
+ |
+class SetDefaultCharacterSetFunction : public SetFontPrefExtensionFunction { |
+ public: |
+ DECLARE_EXTENSION_FUNCTION_NAME( |
+ "experimental.fontSettings.setDefaultCharacterSet") |
+ |
+ protected: |
+ virtual const char* GetPrefName() OVERRIDE; |
+ virtual const char* GetKey() OVERRIDE; |
}; |
#endif // CHROME_BROWSER_EXTENSIONS_EXTENSION_FONT_SETTINGS_API_H__ |