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

Side by Side Diff: chrome/browser/extensions/extension_font_settings_api.h

Issue 10142011: Add character encoding to Font Settings Extension API. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: review comments Created 8 years, 8 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | chrome/browser/extensions/extension_font_settings_api.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CHROME_BROWSER_EXTENSIONS_EXTENSION_FONT_SETTINGS_API_H__ 5 #ifndef CHROME_BROWSER_EXTENSIONS_EXTENSION_FONT_SETTINGS_API_H__
6 #define CHROME_BROWSER_EXTENSIONS_EXTENSION_FONT_SETTINGS_API_H__ 6 #define CHROME_BROWSER_EXTENSIONS_EXTENSION_FONT_SETTINGS_API_H__
7 #pragma once 7 #pragma once
8 8
9 #include <map> 9 #include <map>
10 10
11 #include "chrome/browser/extensions/extension_function.h" 11 #include "chrome/browser/extensions/extension_function.h"
12 #include "chrome/browser/prefs/pref_change_registrar.h" 12 #include "chrome/browser/prefs/pref_change_registrar.h"
13 13
14 class ExtensionFontSettingsEventRouter : public content::NotificationObserver { 14 class ExtensionFontSettingsEventRouter : public content::NotificationObserver {
15 public: 15 public:
16 explicit ExtensionFontSettingsEventRouter(Profile* profile); 16 explicit ExtensionFontSettingsEventRouter(Profile* profile);
17 virtual ~ExtensionFontSettingsEventRouter(); 17 virtual ~ExtensionFontSettingsEventRouter();
18 18
19 void Init(); 19 void Init();
20 20
21 private: 21 private:
22 typedef std::map<std::string, std::string> PrefEventMap; 22 typedef std::pair<std::string, std::string> EventAndKeyPair;
23 // Map of pref name to a pair of event name and key (defined in the API) for
24 // dispatching a pref changed event. For example,
25 // "webkit.webprefs.default_font_size" to ("onDefaultFontSizedChanged",
26 // "pixelSize").
27 typedef std::map<std::string, EventAndKeyPair> PrefEventMap;
28
29 void AddPrefToObserve(const char* pref_name,
30 const char* event_name,
31 const char* key);
23 32
24 // content::NotificationObserver implementation. 33 // content::NotificationObserver implementation.
25 virtual void Observe(int type, 34 virtual void Observe(int type,
26 const content::NotificationSource& source, 35 const content::NotificationSource& source,
27 const content::NotificationDetails& details) OVERRIDE; 36 const content::NotificationDetails& details) OVERRIDE;
37
28 void OnFontNamePrefChanged(PrefService* pref_service, 38 void OnFontNamePrefChanged(PrefService* pref_service,
29 const std::string& pref_key, 39 const std::string& pref_name,
30 const std::string& generic_family, 40 const std::string& generic_family,
31 const std::string& script, 41 const std::string& script,
32 bool incognito); 42 bool incognito);
33 void OnFontSizePrefChanged(PrefService* pref_service, 43 void OnFontPrefChanged(PrefService* pref_service,
34 const std::string& pref_key, 44 const std::string& pref_name,
35 const std::string& event_name, 45 const std::string& event_name,
36 bool incognito); 46 const std::string& key,
47 bool incognito);
37 48
38 PrefChangeRegistrar registrar_; 49 PrefChangeRegistrar registrar_;
39 50
40 // Map of pref key to event name. 51 PrefEventMap pref_event_map_;
41 std::map<std::string, std::string> pref_event_map_;
42 52
43 // Weak, owns us (transitively via ExtensionService). 53 // Weak, owns us (transitively via ExtensionService).
44 Profile* profile_; 54 Profile* profile_;
45 55
46 DISALLOW_COPY_AND_ASSIGN(ExtensionFontSettingsEventRouter); 56 DISALLOW_COPY_AND_ASSIGN(ExtensionFontSettingsEventRouter);
47 }; 57 };
48 58
49 class GetFontFunction : public SyncExtensionFunction { 59 class GetFontFunction : public SyncExtensionFunction {
50 public: 60 public:
51 virtual bool RunImpl() OVERRIDE; 61 virtual bool RunImpl() OVERRIDE;
52 DECLARE_EXTENSION_FUNCTION_NAME("experimental.fontSettings.getFont") 62 DECLARE_EXTENSION_FUNCTION_NAME("experimental.fontSettings.getFont")
53 }; 63 };
54 64
55 class SetFontFunction : public SyncExtensionFunction { 65 class SetFontFunction : public SyncExtensionFunction {
56 public: 66 public:
57 virtual bool RunImpl() OVERRIDE; 67 virtual bool RunImpl() OVERRIDE;
58 DECLARE_EXTENSION_FUNCTION_NAME("experimental.fontSettings.setFont") 68 DECLARE_EXTENSION_FUNCTION_NAME("experimental.fontSettings.setFont")
59 }; 69 };
60 70
61 class GetFontListFunction : public AsyncExtensionFunction { 71 class GetFontListFunction : public AsyncExtensionFunction {
62 public: 72 public:
63 virtual bool RunImpl() OVERRIDE; 73 virtual bool RunImpl() OVERRIDE;
64 DECLARE_EXTENSION_FUNCTION_NAME("experimental.fontSettings.getFontList") 74 DECLARE_EXTENSION_FUNCTION_NAME("experimental.fontSettings.getFontList")
65 75
66 private: 76 private:
67 void FontListHasLoaded(scoped_ptr<base::ListValue> list); 77 void FontListHasLoaded(scoped_ptr<base::ListValue> list);
68 bool CopyFontsToResult(base::ListValue* fonts); 78 bool CopyFontsToResult(base::ListValue* fonts);
69 }; 79 };
70 80
71 // Base class for functions that get a font size. 81 // Base class for functions that get a font pref.
72 class GetFontSizeExtensionFunction : public SyncExtensionFunction { 82 class GetFontPrefExtensionFunction : public SyncExtensionFunction {
73 protected: 83 protected:
74 virtual bool RunImpl() OVERRIDE; 84 virtual bool RunImpl() OVERRIDE;
75 85
76 // Implementations should return the name of the font size preference to get. 86 // Implementations should return the name of the preference to get, like
87 // "webkit.webprefs.default_font_size".
77 virtual const char* GetPrefName() = 0; 88 virtual const char* GetPrefName() = 0;
89
90 // Implementations should return the key for the value in the extension API,
91 // like "pixelSize".
92 virtual const char* GetKey() = 0;
78 }; 93 };
79 94
80 // Base class for functions that set a font size. 95 // Base class for functions that set a font pref.
81 class SetFontSizeExtensionFunction : public SyncExtensionFunction { 96 class SetFontPrefExtensionFunction : public SyncExtensionFunction {
82 protected: 97 protected:
83 virtual bool RunImpl() OVERRIDE; 98 virtual bool RunImpl() OVERRIDE;
84 99
85 // Implementations should return the name of the font size preference to set. 100 // Implementations should return the name of the preference to set, like
101 // "webkit.webprefs.default_font_size".
86 virtual const char* GetPrefName() = 0; 102 virtual const char* GetPrefName() = 0;
103
104 // Implementations should return the key for the value in the extension API,
105 // like "pixelSize".
106 virtual const char* GetKey() = 0;
87 }; 107 };
88 108
89 class GetDefaultFontSizeFunction : public GetFontSizeExtensionFunction { 109 class GetDefaultFontSizeFunction : public GetFontPrefExtensionFunction {
90 public: 110 public:
91 DECLARE_EXTENSION_FUNCTION_NAME( 111 DECLARE_EXTENSION_FUNCTION_NAME(
92 "experimental.fontSettings.getDefaultFontSize") 112 "experimental.fontSettings.getDefaultFontSize")
93 113
94 protected: 114 protected:
95 virtual const char* GetPrefName() OVERRIDE; 115 virtual const char* GetPrefName() OVERRIDE;
116 virtual const char* GetKey() OVERRIDE;
96 }; 117 };
97 118
98 class SetDefaultFontSizeFunction : public SetFontSizeExtensionFunction { 119 class SetDefaultFontSizeFunction : public SetFontPrefExtensionFunction {
99 public: 120 public:
100 DECLARE_EXTENSION_FUNCTION_NAME( 121 DECLARE_EXTENSION_FUNCTION_NAME(
101 "experimental.fontSettings.setDefaultFontSize") 122 "experimental.fontSettings.setDefaultFontSize")
102 123
103 protected: 124 protected:
104 virtual const char* GetPrefName() OVERRIDE; 125 virtual const char* GetPrefName() OVERRIDE;
126 virtual const char* GetKey() OVERRIDE;
105 }; 127 };
106 128
107 class GetDefaultFixedFontSizeFunction : public GetFontSizeExtensionFunction { 129 class GetDefaultFixedFontSizeFunction : public GetFontPrefExtensionFunction {
108 public: 130 public:
109 DECLARE_EXTENSION_FUNCTION_NAME( 131 DECLARE_EXTENSION_FUNCTION_NAME(
110 "experimental.fontSettings.getDefaultFixedFontSize") 132 "experimental.fontSettings.getDefaultFixedFontSize")
111 133
112 protected: 134 protected:
113 virtual const char* GetPrefName() OVERRIDE; 135 virtual const char* GetPrefName() OVERRIDE;
136 virtual const char* GetKey() OVERRIDE;
114 }; 137 };
115 138
116 class SetDefaultFixedFontSizeFunction : public SetFontSizeExtensionFunction { 139 class SetDefaultFixedFontSizeFunction : public SetFontPrefExtensionFunction {
117 public: 140 public:
118 DECLARE_EXTENSION_FUNCTION_NAME( 141 DECLARE_EXTENSION_FUNCTION_NAME(
119 "experimental.fontSettings.setDefaultFixedFontSize") 142 "experimental.fontSettings.setDefaultFixedFontSize")
120 143
121 protected: 144 protected:
122 virtual const char* GetPrefName() OVERRIDE; 145 virtual const char* GetPrefName() OVERRIDE;
146 virtual const char* GetKey() OVERRIDE;
123 }; 147 };
124 148
125 class GetMinimumFontSizeFunction : public GetFontSizeExtensionFunction { 149 class GetMinimumFontSizeFunction : public GetFontPrefExtensionFunction {
126 public: 150 public:
127 DECLARE_EXTENSION_FUNCTION_NAME( 151 DECLARE_EXTENSION_FUNCTION_NAME(
128 "experimental.fontSettings.getMinimumFontSize") 152 "experimental.fontSettings.getMinimumFontSize")
129 153
130 protected: 154 protected:
131 virtual const char* GetPrefName() OVERRIDE; 155 virtual const char* GetPrefName() OVERRIDE;
156 virtual const char* GetKey() OVERRIDE;
132 }; 157 };
133 158
134 class SetMinimumFontSizeFunction : public SetFontSizeExtensionFunction { 159 class SetMinimumFontSizeFunction : public SetFontPrefExtensionFunction {
135 public: 160 public:
136 DECLARE_EXTENSION_FUNCTION_NAME( 161 DECLARE_EXTENSION_FUNCTION_NAME(
137 "experimental.fontSettings.setMinimumFontSize") 162 "experimental.fontSettings.setMinimumFontSize")
138 163
139 protected: 164 protected:
140 virtual const char* GetPrefName() OVERRIDE; 165 virtual const char* GetPrefName() OVERRIDE;
166 virtual const char* GetKey() OVERRIDE;
167 };
168
169 class GetDefaultCharacterSetFunction : public GetFontPrefExtensionFunction {
170 public:
171 DECLARE_EXTENSION_FUNCTION_NAME(
172 "experimental.fontSettings.getDefaultCharacterSet")
173
174 protected:
175 virtual const char* GetPrefName() OVERRIDE;
176 virtual const char* GetKey() OVERRIDE;
177 };
178
179 class SetDefaultCharacterSetFunction : public SetFontPrefExtensionFunction {
180 public:
181 DECLARE_EXTENSION_FUNCTION_NAME(
182 "experimental.fontSettings.setDefaultCharacterSet")
183
184 protected:
185 virtual const char* GetPrefName() OVERRIDE;
186 virtual const char* GetKey() OVERRIDE;
141 }; 187 };
142 188
143 #endif // CHROME_BROWSER_EXTENSIONS_EXTENSION_FONT_SETTINGS_API_H__ 189 #endif // CHROME_BROWSER_EXTENSIONS_EXTENSION_FONT_SETTINGS_API_H__
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/extensions/extension_font_settings_api.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698