OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 #include "chrome/common/extensions/extension_constants.h" | 5 #include "chrome/common/extensions/extension_constants.h" |
6 | 6 |
7 #include <vector> | 7 #include <vector> |
8 | 8 |
9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
10 #include "base/string_util.h" | 10 #include "base/string_util.h" |
11 #include "chrome/common/chrome_switches.h" | 11 #include "chrome/common/chrome_switches.h" |
12 | 12 |
13 namespace extension_manifest_keys { | 13 namespace extension_manifest_keys { |
14 | 14 |
15 const char* kAllFrames = "all_frames"; | 15 const char kAllFrames[] = "all_frames"; |
16 const char* kAltKey = "altKey"; | 16 const char kAltKey[] = "altKey"; |
17 const char* kApp = "app"; | 17 const char kApp[] = "app"; |
18 const char* kBackground = "background_page"; | 18 const char kBackground[] = "background_page"; |
19 const char* kBrowserAction = "browser_action"; | 19 const char kBrowserAction[] = "browser_action"; |
20 const char* kChromeURLOverrides = "chrome_url_overrides"; | 20 const char kChromeURLOverrides[] = "chrome_url_overrides"; |
21 const char* kContentScripts = "content_scripts"; | 21 const char kContentScripts[] = "content_scripts"; |
22 const char* kContentSecurityPolicy = "content_security_policy"; | 22 const char kContentSecurityPolicy[] = "content_security_policy"; |
23 const char* kConvertedFromUserScript = "converted_from_user_script"; | 23 const char kConvertedFromUserScript[] = "converted_from_user_script"; |
24 const char* kCss = "css"; | 24 const char kCss[] = "css"; |
25 const char* kCtrlKey = "ctrlKey"; | 25 const char kCtrlKey[] = "ctrlKey"; |
26 const char* kCurrentLocale = "current_locale"; | 26 const char kCurrentLocale[] = "current_locale"; |
27 const char* kDefaultLocale = "default_locale"; | 27 const char kDefaultLocale[] = "default_locale"; |
28 const char* kDescription = "description"; | 28 const char kDescription[] = "description"; |
29 const char* kDevToolsPage = "devtools_page"; | 29 const char kDevToolsPage[] = "devtools_page"; |
30 const char* kExcludeGlobs = "exclude_globs"; | 30 const char kExcludeGlobs[] = "exclude_globs"; |
31 const char* kExcludeMatches = "exclude_matches"; | 31 const char kExcludeMatches[] = "exclude_matches"; |
32 const char* kFileFilters = "file_filters"; | 32 const char kFileFilters[] = "file_filters"; |
33 const char* kFileBrowserHandlers = "file_browser_handlers"; | 33 const char kFileBrowserHandlers[] = "file_browser_handlers"; |
34 const char* kHomepageURL = "homepage_url"; | 34 const char kHomepageURL[] = "homepage_url"; |
35 const char* kIcons = "icons"; | 35 const char kIcons[] = "icons"; |
36 const char* kId = "id"; | 36 const char kId[] = "id"; |
37 const char* kIncognito = "incognito"; | 37 const char kIncognito[] = "incognito"; |
38 const char* kIncludeGlobs = "include_globs"; | 38 const char kIncludeGlobs[] = "include_globs"; |
39 const char* kInputComponents = "input_components"; | 39 const char kInputComponents[] = "input_components"; |
40 const char* kIntents = "intents"; | 40 const char kIntents[] = "intents"; |
41 const char* kIntentType = "type"; | 41 const char kIntentType[] = "type"; |
42 const char* kIntentPath = "path"; | 42 const char kIntentPath[] = "path"; |
43 const char* kIntentTitle = "title"; | 43 const char kIntentTitle[] = "title"; |
44 const char* kIntentDisposition = "disposition"; | 44 const char kIntentDisposition[] = "disposition"; |
45 const char* kIsolation = "app.isolation"; | 45 const char kIsolation[] = "app.isolation"; |
46 const char* kJs = "js"; | 46 const char kJs[] = "js"; |
47 const char* kKeycode = "keyCode"; | 47 const char kKeycode[] = "keyCode"; |
48 const char* kLanguage = "language"; | 48 const char kLanguage[] = "language"; |
49 const char* kLaunch = "app.launch"; | 49 const char kLaunch[] = "app.launch"; |
50 const char* kLaunchContainer = "app.launch.container"; | 50 const char kLaunchContainer[] = "app.launch.container"; |
51 const char* kLaunchHeight = "app.launch.height"; | 51 const char kLaunchHeight[] = "app.launch.height"; |
52 const char* kLaunchLocalPath = "app.launch.local_path"; | 52 const char kLaunchLocalPath[] = "app.launch.local_path"; |
53 const char* kLaunchWebURL = "app.launch.web_url"; | 53 const char kLaunchWebURL[] = "app.launch.web_url"; |
54 const char* kLaunchWidth = "app.launch.width"; | 54 const char kLaunchWidth[] = "app.launch.width"; |
55 const char* kLayouts = "layouts"; | 55 const char kLayouts[] = "layouts"; |
56 const char* kManifestVersion = "manifest_version"; | 56 const char kManifestVersion[] = "manifest_version"; |
57 const char* kMatches = "matches"; | 57 const char kMatches[] = "matches"; |
58 const char* kMinimumChromeVersion = "minimum_chrome_version"; | 58 const char kMinimumChromeVersion[] = "minimum_chrome_version"; |
59 const char* kName = "name"; | 59 const char kName[] = "name"; |
60 const char* kNaClModules = "nacl_modules"; | 60 const char kNaClModules[] = "nacl_modules"; |
61 const char* kNaClModulesMIMEType = "mime_type"; | 61 const char kNaClModulesMIMEType[] = "mime_type"; |
62 const char* kNaClModulesPath = "path"; | 62 const char kNaClModulesPath[] = "path"; |
63 const char* kOfflineEnabled = "offline_enabled"; | 63 const char kOfflineEnabled[] = "offline_enabled"; |
64 const char* kOmnibox = "omnibox"; | 64 const char kOmnibox[] = "omnibox"; |
65 const char* kOmniboxKeyword = "omnibox.keyword"; | 65 const char kOmniboxKeyword[] = "omnibox.keyword"; |
66 const char* kOptionalPermissions = "optional_permissions"; | 66 const char kOptionalPermissions[] = "optional_permissions"; |
67 const char* kOptionsPage = "options_page"; | 67 const char kOptionsPage[] = "options_page"; |
68 const char* kPageAction = "page_action"; | 68 const char kPageAction[] = "page_action"; |
69 const char* kPageActionDefaultIcon = "default_icon"; | 69 const char kPageActionDefaultIcon[] = "default_icon"; |
70 const char* kPageActionDefaultPopup = "default_popup"; | 70 const char kPageActionDefaultPopup[] = "default_popup"; |
71 const char* kPageActionDefaultTitle = "default_title"; | 71 const char kPageActionDefaultTitle[] = "default_title"; |
72 const char* kPageActionIcons = "icons"; | 72 const char kPageActionIcons[] = "icons"; |
73 const char* kPageActionId = "id"; | 73 const char kPageActionId[] = "id"; |
74 const char* kPageActionPopup = "popup"; | 74 const char kPageActionPopup[] = "popup"; |
75 const char* kPageActionPopupHeight = "height"; | 75 const char kPageActionPopupHeight[] = "height"; |
76 const char* kPageActionPopupPath = "path"; | 76 const char kPageActionPopupPath[] = "path"; |
77 const char* kPageActions = "page_actions"; | 77 const char kPageActions[] = "page_actions"; |
78 const char* kPermissions = "permissions"; | 78 const char kPermissions[] = "permissions"; |
79 const char* kPlatformApp = "platform_app"; | 79 const char kPlatformApp[] = "platform_app"; |
80 const char* kPlugins = "plugins"; | 80 const char kPlugins[] = "plugins"; |
81 const char* kPluginsPath = "path"; | 81 const char kPluginsPath[] = "path"; |
82 const char* kPluginsPublic = "public"; | 82 const char kPluginsPublic[] = "public"; |
83 const char* kPublicKey = "key"; | 83 const char kPublicKey[] = "key"; |
84 const char* kRequirements = "requirements"; | 84 const char kRequirements[] = "requirements"; |
85 const char* kRunAt = "run_at"; | 85 const char kRunAt[] = "run_at"; |
86 const char* kShiftKey = "shiftKey"; | 86 const char kShiftKey[] = "shiftKey"; |
87 const char* kShortcutKey = "shortcutKey"; | 87 const char kShortcutKey[] = "shortcutKey"; |
88 const char* kSidebar = "sidebar"; | 88 const char kSidebar[] = "sidebar"; |
89 const char* kSidebarDefaultIcon = "default_icon"; | 89 const char kSidebarDefaultIcon[] = "default_icon"; |
90 const char* kSidebarDefaultPage = "default_page"; | 90 const char kSidebarDefaultPage[] = "default_page"; |
91 const char* kSidebarDefaultTitle = "default_title"; | 91 const char kSidebarDefaultTitle[] = "default_title"; |
92 const char* kSignature = "signature"; | 92 const char kSignature[] = "signature"; |
93 const char* kTheme = "theme"; | 93 const char kTheme[] = "theme"; |
94 const char* kThemeColors = "colors"; | 94 const char kThemeColors[] = "colors"; |
95 const char* kThemeDisplayProperties = "properties"; | 95 const char kThemeDisplayProperties[] = "properties"; |
96 const char* kThemeImages = "images"; | 96 const char kThemeImages[] = "images"; |
97 const char* kThemeTints = "tints"; | 97 const char kThemeTints[] = "tints"; |
98 const char* kTtsEngine = "tts_engine"; | 98 const char kTtsEngine[] = "tts_engine"; |
99 const char* kTtsGenderFemale = "female"; | 99 const char kTtsGenderFemale[] = "female"; |
100 const char* kTtsGenderMale = "male"; | 100 const char kTtsGenderMale[] = "male"; |
101 const char* kTtsVoices = "voices"; | 101 const char kTtsVoices[] = "voices"; |
102 const char* kTtsVoicesEventTypeEnd = "end"; | 102 const char kTtsVoicesEventTypeEnd[] = "end"; |
103 const char* kTtsVoicesEventTypeError = "error"; | 103 const char kTtsVoicesEventTypeError[] = "error"; |
104 const char* kTtsVoicesEventTypeMarker = "marker"; | 104 const char kTtsVoicesEventTypeMarker[] = "marker"; |
105 const char* kTtsVoicesEventTypeSentence = "sentence"; | 105 const char kTtsVoicesEventTypeSentence[] = "sentence"; |
106 const char* kTtsVoicesEventTypeStart = "start"; | 106 const char kTtsVoicesEventTypeStart[] = "start"; |
107 const char* kTtsVoicesEventTypeWord = "word"; | 107 const char kTtsVoicesEventTypeWord[] = "word"; |
108 const char* kTtsVoicesEventTypes = "event_types"; | 108 const char kTtsVoicesEventTypes[] = "event_types"; |
109 const char* kTtsVoicesGender = "gender"; | 109 const char kTtsVoicesGender[] = "gender"; |
110 const char* kTtsVoicesLang = "lang"; | 110 const char kTtsVoicesLang[] = "lang"; |
111 const char* kTtsVoicesVoiceName = "voice_name"; | 111 const char kTtsVoicesVoiceName[] = "voice_name"; |
112 const char* kType = "type"; | 112 const char kType[] = "type"; |
113 const char* kUpdateURL = "update_url"; | 113 const char kUpdateURL[] = "update_url"; |
114 const char* kVersion = "version"; | 114 const char kVersion[] = "version"; |
115 const char* kWebURLs = "app.urls"; | 115 const char kWebURLs[] = "app.urls"; |
116 } // namespace extension_manifest_keys | 116 } // namespace extension_manifest_keys |
117 | 117 |
118 namespace extension_manifest_values { | 118 namespace extension_manifest_values { |
119 const char* kIncognitoSplit = "split"; | 119 const char kIncognitoSplit[] = "split"; |
120 const char* kIncognitoSpanning = "spanning"; | 120 const char kIncognitoSpanning[] = "spanning"; |
121 const char* kIntentDispositionWindow = "window"; | 121 const char kIntentDispositionWindow[] = "window"; |
122 const char* kIntentDispositionInline = "inline"; | 122 const char kIntentDispositionInline[] = "inline"; |
123 const char* kIsolatedStorage = "storage"; | 123 const char kIsolatedStorage[] = "storage"; |
124 const char* kRunAtDocumentStart = "document_start"; | 124 const char kRunAtDocumentStart[] = "document_start"; |
125 const char* kRunAtDocumentEnd = "document_end"; | 125 const char kRunAtDocumentEnd[] = "document_end"; |
126 const char* kRunAtDocumentIdle = "document_idle"; | 126 const char kRunAtDocumentIdle[] = "document_idle"; |
127 const char* kPageActionTypeTab = "tab"; | 127 const char kPageActionTypeTab[] = "tab"; |
128 const char* kPageActionTypePermanent = "permanent"; | 128 const char kPageActionTypePermanent[] = "permanent"; |
129 const char* kLaunchContainerPanel = "panel"; | 129 const char kLaunchContainerPanel[] = "panel"; |
130 const char* kLaunchContainerTab = "tab"; | 130 const char kLaunchContainerTab[] = "tab"; |
131 const char* kLaunchContainerWindow = "window"; | 131 const char kLaunchContainerWindow[] = "window"; |
132 } // namespace extension_manifest_values | 132 } // namespace extension_manifest_values |
133 | 133 |
134 // Extension-related error messages. Some of these are simple patterns, where a | 134 // Extension-related error messages. Some of these are simple patterns, where a |
135 // '*' is replaced at runtime with a specific value. This is used instead of | 135 // '*' is replaced at runtime with a specific value. This is used instead of |
136 // printf because we want to unit test them and scanf is hard to make | 136 // printf because we want to unit test them and scanf is hard to make |
137 // cross-platform. | 137 // cross-platform. |
138 namespace extension_manifest_errors { | 138 namespace extension_manifest_errors { |
139 const char* kAppsNotEnabled = | 139 const char kAppsNotEnabled[] = |
140 "Apps are not enabled."; | 140 "Apps are not enabled."; |
141 const char* kBackgroundPermissionNeeded = | 141 const char kBackgroundPermissionNeeded[] = |
142 "Hosted apps that use 'background_page' must have the 'background' " | 142 "Hosted apps that use 'background_page' must have the 'background' " |
143 "permission."; | 143 "permission."; |
144 const char* kCannotAccessPage = | 144 const char kCannotAccessPage[] = |
145 "Cannot access contents of url \"*\". " | 145 "Cannot access contents of url \"*\". " |
146 "Extension manifest must request permission to access this host."; | 146 "Extension manifest must request permission to access this host."; |
147 const char* kCannotChangeExtensionID = | 147 const char kCannotChangeExtensionID[] = |
148 "Installed extensions cannot change their IDs."; | 148 "Installed extensions cannot change their IDs."; |
149 const char* kCannotClaimAllHostsInExtent = | 149 const char kCannotClaimAllHostsInExtent[] = |
150 "Cannot claim all hosts ('*') in an extent."; | 150 "Cannot claim all hosts ('*') in an extent."; |
151 const char* kCannotClaimAllURLsInExtent = | 151 const char kCannotClaimAllURLsInExtent[] = |
152 "Cannot claim all URLs in an extent."; | 152 "Cannot claim all URLs in an extent."; |
153 const char* kCannotScriptGallery = | 153 const char kCannotScriptGallery[] = |
154 "The extensions gallery cannot be scripted."; | 154 "The extensions gallery cannot be scripted."; |
155 const char* kCannotUninstallManagedExtension = | 155 const char kCannotUninstallManagedExtension[] = |
156 "Attempted uninstallation of an extension that is not user-manageable."; | 156 "Attempted uninstallation of an extension that is not user-manageable."; |
157 const char* kChromeVersionTooLow = | 157 const char kChromeVersionTooLow[] = |
158 "This extension requires * version * or greater."; | 158 "This extension requires * version * or greater."; |
159 const char* kDisabledByPolicy = | 159 const char kDisabledByPolicy[] = |
160 "This extension has been disabled by your administrator."; | 160 "This extension has been disabled by your administrator."; |
161 const char* kDevToolsExperimental = | 161 const char kDevToolsExperimental[] = |
162 "You must request the 'experimental' permission in order to use the" | 162 "You must request the 'experimental' permission in order to use the" |
163 " DevTools API."; | 163 " DevTools API."; |
164 const char* kExpectString = "Expect string value."; | 164 const char kExpectString[] = "Expect string value."; |
165 const char* kExperimentalFlagRequired = | 165 const char kExperimentalFlagRequired[] = |
166 "Loading extensions with 'experimental' permission requires" | 166 "Loading extensions with 'experimental' permission requires" |
167 " --enable-experimental-extension-apis command line flag."; | 167 " --enable-experimental-extension-apis command line flag."; |
168 const char* kHostedAppsCannotIncludeExtensionFeatures = | 168 const char kHostedAppsCannotIncludeExtensionFeatures[] = |
169 "Hosted apps cannot use the extension feature '*'."; | 169 "Hosted apps cannot use the extension feature '*'."; |
170 const char* kInvalidAllFrames = | 170 const char kInvalidAllFrames[] = |
171 "Invalid value for 'content_scripts[*].all_frames'."; | 171 "Invalid value for 'content_scripts[*].all_frames'."; |
172 const char* kInvalidBackground = | 172 const char kInvalidBackground[] = |
173 "Invalid value for 'background_page'."; | 173 "Invalid value for 'background_page'."; |
174 const char* kInvalidBackgroundInHostedApp = | 174 const char kInvalidBackgroundInHostedApp[] = |
175 "Invalid value for 'background_page'. Hosted apps must specify an " | 175 "Invalid value for 'background_page'. Hosted apps must specify an " |
176 "absolute HTTPS URL for the background page."; | 176 "absolute HTTPS URL for the background page."; |
177 const char* kInvalidBrowserAction = | 177 const char kInvalidBrowserAction[] = |
178 "Invalid value for 'browser_action'."; | 178 "Invalid value for 'browser_action'."; |
179 const char* kInvalidChromeURLOverrides = | 179 const char kInvalidChromeURLOverrides[] = |
180 "Invalid value for 'chrome_url_overrides'."; | 180 "Invalid value for 'chrome_url_overrides'."; |
181 const char* kInvalidContentScript = | 181 const char kInvalidContentScript[] = |
182 "Invalid value for 'content_scripts[*]'."; | 182 "Invalid value for 'content_scripts[*]'."; |
183 const char* kInvalidContentSecurityPolicy = | 183 const char kInvalidContentSecurityPolicy[] = |
184 "Invalid value for 'content_security_policy'."; | 184 "Invalid value for 'content_security_policy'."; |
185 const char* kInvalidContentScriptsList = | 185 const char kInvalidContentScriptsList[] = |
186 "Invalid value for 'content_scripts'."; | 186 "Invalid value for 'content_scripts'."; |
187 const char* kInvalidCss = | 187 const char kInvalidCss[] = |
188 "Invalid value for 'content_scripts[*].css[*]'."; | 188 "Invalid value for 'content_scripts[*].css[*]'."; |
189 const char* kInvalidCssList = | 189 const char kInvalidCssList[] = |
190 "Required value 'content_scripts[*].css' is invalid."; | 190 "Required value 'content_scripts[*].css' is invalid."; |
191 const char* kInvalidDefaultLocale = | 191 const char kInvalidDefaultLocale[] = |
192 "Invalid value for default locale - locale name must be a string."; | 192 "Invalid value for default locale - locale name must be a string."; |
193 const char* kInvalidDescription = | 193 const char kInvalidDescription[] = |
194 "Invalid value for 'description'."; | 194 "Invalid value for 'description'."; |
195 const char* kInvalidDevToolsPage = | 195 const char kInvalidDevToolsPage[] = |
196 "Invalid value for 'devtools_page'."; | 196 "Invalid value for 'devtools_page'."; |
197 const char* kInvalidExcludeMatch = | 197 const char kInvalidExcludeMatch[] = |
198 "Invalid value for 'content_scripts[*].exclude_matches[*]': *"; | 198 "Invalid value for 'content_scripts[*].exclude_matches[*]': *"; |
199 const char* kInvalidExcludeMatches = | 199 const char kInvalidExcludeMatches[] = |
200 "Invalid value for 'content_scripts[*].exclude_matches'."; | 200 "Invalid value for 'content_scripts[*].exclude_matches'."; |
201 const char* kInvalidFileBrowserHandler = | 201 const char kInvalidFileBrowserHandler[] = |
202 "Invalid value for 'file_browser_handers'."; | 202 "Invalid value for 'file_browser_handers'."; |
203 const char* kInvalidFileFiltersList = | 203 const char kInvalidFileFiltersList[] = |
204 "Invalid value for 'file_filters'."; | 204 "Invalid value for 'file_filters'."; |
205 const char* kInvalidFileFilterValue = | 205 const char kInvalidFileFilterValue[] = |
206 "Invalid value for 'file_filters[*]'."; | 206 "Invalid value for 'file_filters[*]'."; |
207 const char* kInvalidGlob = | 207 const char kInvalidGlob[] = |
208 "Invalid value for 'content_scripts[*].*[*]'."; | 208 "Invalid value for 'content_scripts[*].*[*]'."; |
209 const char* kInvalidGlobList = | 209 const char kInvalidGlobList[] = |
210 "Invalid value for 'content_scripts[*].*'."; | 210 "Invalid value for 'content_scripts[*].*'."; |
211 const char* kInvalidHomepageURL = | 211 const char kInvalidHomepageURL[] = |
212 "Invalid value for homepage url: '[*]'."; | 212 "Invalid value for homepage url: '[*]'."; |
213 const char* kInvalidIconPath = | 213 const char kInvalidIconPath[] = |
214 "Invalid value for 'icons[\"*\"]'."; | 214 "Invalid value for 'icons[\"*\"]'."; |
215 const char* kInvalidIcons = | 215 const char kInvalidIcons[] = |
216 "Invalid value for 'icons'."; | 216 "Invalid value for 'icons'."; |
217 const char* kInvalidIncognitoBehavior = | 217 const char kInvalidIncognitoBehavior[] = |
218 "Invalid value for 'incognito'."; | 218 "Invalid value for 'incognito'."; |
219 const char* kInvalidInputComponents = | 219 const char kInvalidInputComponents[] = |
220 "Invalid value for 'input_components'"; | 220 "Invalid value for 'input_components'"; |
221 const char* kInvalidInputComponentDescription = | 221 const char kInvalidInputComponentDescription[] = |
222 "Invalid value for 'input_conponents[*].description"; | 222 "Invalid value for 'input_conponents[*].description"; |
223 const char* kInvalidInputComponentLayoutName = | 223 const char kInvalidInputComponentLayoutName[] = |
224 "Invalid value for 'input_conponents[*].layouts[*]"; | 224 "Invalid value for 'input_conponents[*].layouts[*]"; |
225 const char* kInvalidInputComponentLayouts = | 225 const char kInvalidInputComponentLayouts[] = |
226 "Invalid value for 'input_conponents[*].layouts"; | 226 "Invalid value for 'input_conponents[*].layouts"; |
227 const char* kInvalidInputComponentName = | 227 const char kInvalidInputComponentName[] = |
228 "Invalid value for 'input_conponents[*].name"; | 228 "Invalid value for 'input_conponents[*].name"; |
229 const char* kInvalidInputComponentShortcutKey = | 229 const char kInvalidInputComponentShortcutKey[] = |
230 "Invalid value for 'input_conponents[*].shortcutKey"; | 230 "Invalid value for 'input_conponents[*].shortcutKey"; |
231 const char* kInvalidInputComponentShortcutKeycode = | 231 const char kInvalidInputComponentShortcutKeycode[] = |
232 "Invalid value for 'input_conponents[*].shortcutKey.keyCode"; | 232 "Invalid value for 'input_conponents[*].shortcutKey.keyCode"; |
233 const char* kInvalidInputComponentType = | 233 const char kInvalidInputComponentType[] = |
234 "Invalid value for 'input_conponents[*].type"; | 234 "Invalid value for 'input_conponents[*].type"; |
235 const char* kInvalidIntent = | 235 const char kInvalidIntent[] = |
236 "Invalid value for intents[*]"; | 236 "Invalid value for intents[*]"; |
237 const char* kInvalidIntentDisposition = | 237 const char kInvalidIntentDisposition[] = |
238 "Invalid value for intents[*].disposition"; | 238 "Invalid value for intents[*].disposition"; |
239 const char* kInvalidIntentPath = | 239 const char kInvalidIntentPath[] = |
240 "Invalid value for intents[*].path"; | 240 "Invalid value for intents[*].path"; |
241 const char* kInvalidIntents = | 241 const char kInvalidIntents[] = |
242 "Invalid value for intents"; | 242 "Invalid value for intents"; |
243 const char* kInvalidIntentType = | 243 const char kInvalidIntentType[] = |
244 "Invalid value for intents[*].type"; | 244 "Invalid value for intents[*].type"; |
245 const char* kInvalidIntentTitle = | 245 const char kInvalidIntentTitle[] = |
246 "Invalid value for intents[*].title"; | 246 "Invalid value for intents[*].title"; |
247 const char* kInvalidIsolation = | 247 const char kInvalidIsolation[] = |
248 "Invalid value for 'app.isolation'."; | 248 "Invalid value for 'app.isolation'."; |
249 const char* kInvalidIsolationValue = | 249 const char kInvalidIsolationValue[] = |
250 "Invalid value for 'app.isolation[*]'."; | 250 "Invalid value for 'app.isolation[*]'."; |
251 const char* kInvalidJs = | 251 const char kInvalidJs[] = |
252 "Invalid value for 'content_scripts[*].js[*]'."; | 252 "Invalid value for 'content_scripts[*].js[*]'."; |
253 const char* kInvalidJsList = | 253 const char kInvalidJsList[] = |
254 "Required value 'content_scripts[*].js' is invalid."; | 254 "Required value 'content_scripts[*].js' is invalid."; |
255 const char* kInvalidKey = | 255 const char kInvalidKey[] = |
256 "Value 'key' is missing or invalid."; | 256 "Value 'key' is missing or invalid."; |
257 const char* kInvalidLaunchContainer = | 257 const char kInvalidLaunchContainer[] = |
258 "Invalid value for 'app.launch.container'."; | 258 "Invalid value for 'app.launch.container'."; |
259 const char* kInvalidLaunchContainerForPlatform = | 259 const char kInvalidLaunchContainerForPlatform[] = |
260 "platform_app requires 'app.launch.container' == 'panel'."; | 260 "platform_app requires 'app.launch.container' == 'panel'."; |
261 const char* kInvalidLaunchHeight = | 261 const char kInvalidLaunchHeight[] = |
262 "Invalid value for 'app.launch.height'."; | 262 "Invalid value for 'app.launch.height'."; |
263 const char* kInvalidLaunchHeightContainer = | 263 const char kInvalidLaunchHeightContainer[] = |
264 "Invalid container type for 'app.launch.height'."; | 264 "Invalid container type for 'app.launch.height'."; |
265 const char* kInvalidLaunchLocalPath = | 265 const char kInvalidLaunchLocalPath[] = |
266 "Invalid value for 'app.launch.local_path'."; | 266 "Invalid value for 'app.launch.local_path'."; |
267 const char* kInvalidLaunchWebURL = | 267 const char kInvalidLaunchWebURL[] = |
268 "Invalid value for 'app.launch.web_url'."; | 268 "Invalid value for 'app.launch.web_url'."; |
269 const char* kInvalidLaunchWidth = | 269 const char kInvalidLaunchWidth[] = |
270 "Invalid value for 'app.launch.width'."; | 270 "Invalid value for 'app.launch.width'."; |
271 const char* kInvalidLaunchWidthContainer = | 271 const char kInvalidLaunchWidthContainer[] = |
272 "Invalid container type for 'app.launch.width'."; | 272 "Invalid container type for 'app.launch.width'."; |
273 const char* kInvalidManifest = | 273 const char kInvalidManifest[] = |
274 "Manifest file is invalid."; | 274 "Manifest file is invalid."; |
275 const char* kInvalidManifestVersion = | 275 const char kInvalidManifestVersion[] = |
276 "Invalid value for 'manifest_version'."; | 276 "Invalid value for 'manifest_version'."; |
277 const char* kInvalidMatch = | 277 const char kInvalidMatch[] = |
278 "Invalid value for 'content_scripts[*].matches[*]': *"; | 278 "Invalid value for 'content_scripts[*].matches[*]': *"; |
279 const char* kInvalidMatchCount = | 279 const char kInvalidMatchCount[] = |
280 "Invalid value for 'content_scripts[*].matches'. There must be at least " | 280 "Invalid value for 'content_scripts[*].matches'. There must be at least " |
281 "one match specified."; | 281 "one match specified."; |
282 const char* kInvalidMatches = | 282 const char kInvalidMatches[] = |
283 "Required value 'content_scripts[*].matches' is missing or invalid."; | 283 "Required value 'content_scripts[*].matches' is missing or invalid."; |
284 const char* kInvalidMinimumChromeVersion = | 284 const char kInvalidMinimumChromeVersion[] = |
285 "Invalid value for 'minimum_chrome_version'."; | 285 "Invalid value for 'minimum_chrome_version'."; |
286 const char* kInvalidName = | 286 const char kInvalidName[] = |
287 "Required value 'name' is missing or invalid."; | 287 "Required value 'name' is missing or invalid."; |
288 const char* kInvalidNaClModules = | 288 const char kInvalidNaClModules[] = |
289 "Invalid value for 'nacl_modules'."; | 289 "Invalid value for 'nacl_modules'."; |
290 const char* kInvalidNaClModulesPath = | 290 const char kInvalidNaClModulesPath[] = |
291 "Invalid value for 'nacl_modules[*].path'."; | 291 "Invalid value for 'nacl_modules[*].path'."; |
292 const char* kInvalidNaClModulesMIMEType = | 292 const char kInvalidNaClModulesMIMEType[] = |
293 "Invalid value for 'nacl_modules[*].mime_type'."; | 293 "Invalid value for 'nacl_modules[*].mime_type'."; |
294 const char* kInvalidOfflineEnabled = | 294 const char kInvalidOfflineEnabled[] = |
295 "Invalid value for 'offline_enabled'."; | 295 "Invalid value for 'offline_enabled'."; |
296 const char* kInvalidOmniboxKeyword = | 296 const char kInvalidOmniboxKeyword[] = |
297 "Invalid value for 'omnibox.keyword'."; | 297 "Invalid value for 'omnibox.keyword'."; |
298 const char* kInvalidOptionsPage = | 298 const char kInvalidOptionsPage[] = |
299 "Invalid value for 'options_page'."; | 299 "Invalid value for 'options_page'."; |
300 const char* kInvalidOptionsPageExpectUrlInPackage = | 300 const char kInvalidOptionsPageExpectUrlInPackage[] = |
301 "Invalid value for 'options_page'. Value must be a relative path."; | 301 "Invalid value for 'options_page'. Value must be a relative path."; |
302 const char* kInvalidOptionsPageInHostedApp = | 302 const char kInvalidOptionsPageInHostedApp[] = |
303 "Invalid value for 'options_page'. Hosted apps must specify an " | 303 "Invalid value for 'options_page'. Hosted apps must specify an " |
304 "absolute URL."; | 304 "absolute URL."; |
305 const char* kInvalidPageAction = | 305 const char kInvalidPageAction[] = |
306 "Invalid value for 'page_action'."; | 306 "Invalid value for 'page_action'."; |
307 const char* kInvalidPageActionDefaultTitle = | 307 const char kInvalidPageActionDefaultTitle[] = |
308 "Invalid value for 'default_title'."; | 308 "Invalid value for 'default_title'."; |
309 const char* kInvalidPageActionIconPath = | 309 const char kInvalidPageActionIconPath[] = |
310 "Invalid value for 'page_action.default_icon'."; | 310 "Invalid value for 'page_action.default_icon'."; |
311 const char* kInvalidPageActionId = | 311 const char kInvalidPageActionId[] = |
312 "Required value 'id' is missing or invalid."; | 312 "Required value 'id' is missing or invalid."; |
313 const char* kInvalidPageActionName = | 313 const char kInvalidPageActionName[] = |
314 "Invalid value for 'page_action.name'."; | 314 "Invalid value for 'page_action.name'."; |
315 const char* kInvalidPageActionOldAndNewKeys = | 315 const char kInvalidPageActionOldAndNewKeys[] = |
316 "Key \"*\" is deprecated. Key \"*\" has the same meaning. You can not " | 316 "Key \"*\" is deprecated. Key \"*\" has the same meaning. You can not " |
317 "use both."; | 317 "use both."; |
318 const char* kInvalidPageActionPopup = | 318 const char kInvalidPageActionPopup[] = |
319 "Invalid type for page action popup."; | 319 "Invalid type for page action popup."; |
320 const char* kInvalidPageActionPopupHeight = | 320 const char kInvalidPageActionPopupHeight[] = |
321 "Invalid value for page action popup height [*]."; | 321 "Invalid value for page action popup height [*]."; |
322 const char* kInvalidPageActionPopupPath = | 322 const char kInvalidPageActionPopupPath[] = |
323 "Invalid value for page action popup path [*]."; | 323 "Invalid value for page action popup path [*]."; |
324 const char* kInvalidPageActionsList = | 324 const char kInvalidPageActionsList[] = |
325 "Invalid value for 'page_actions'."; | 325 "Invalid value for 'page_actions'."; |
326 const char* kInvalidPageActionsListSize = | 326 const char kInvalidPageActionsListSize[] = |
327 "Invalid value for 'page_actions'. There can be at most one page action."; | 327 "Invalid value for 'page_actions'. There can be at most one page action."; |
328 const char* kInvalidPageActionTypeValue = | 328 const char kInvalidPageActionTypeValue[] = |
329 "Invalid value for 'page_actions[*].type', expected 'tab' or 'permanent'."; | 329 "Invalid value for 'page_actions[*].type', expected 'tab' or 'permanent'."; |
330 const char* kInvalidPermission = | 330 const char kInvalidPermission[] = |
331 "Invalid value for 'permissions[*]'."; | 331 "Invalid value for 'permissions[*]'."; |
332 const char* kInvalidPermissions = | 332 const char kInvalidPermissions[] = |
333 "Required value 'permissions' is missing or invalid."; | 333 "Required value 'permissions' is missing or invalid."; |
334 const char* kInvalidPermissionScheme = | 334 const char kInvalidPermissionScheme[] = |
335 "Invalid scheme for 'permissions[*]'."; | 335 "Invalid scheme for 'permissions[*]'."; |
336 const char* kInvalidPlugins = | 336 const char kInvalidPlugins[] = |
337 "Invalid value for 'plugins'."; | 337 "Invalid value for 'plugins'."; |
338 const char* kInvalidPluginsPath = | 338 const char kInvalidPluginsPath[] = |
339 "Invalid value for 'plugins[*].path'."; | 339 "Invalid value for 'plugins[*].path'."; |
340 const char* kInvalidPluginsPublic = | 340 const char kInvalidPluginsPublic[] = |
341 "Invalid value for 'plugins[*].public'."; | 341 "Invalid value for 'plugins[*].public'."; |
342 const char* kInvalidRequirement = | 342 const char kInvalidRequirement[] = |
343 "Invalid value for requirement \"*\""; | 343 "Invalid value for requirement \"*\""; |
344 const char* kInvalidRequirements = | 344 const char kInvalidRequirements[] = |
345 "Invalid value for 'requirements'"; | 345 "Invalid value for 'requirements'"; |
346 const char* kInvalidRunAt = | 346 const char kInvalidRunAt[] = |
347 "Invalid value for 'content_scripts[*].run_at'."; | 347 "Invalid value for 'content_scripts[*].run_at'."; |
348 const char* kInvalidSidebar = | 348 const char kInvalidSidebar[] = |
349 "Invalid value for 'sidebar'."; | 349 "Invalid value for 'sidebar'."; |
350 const char* kInvalidSidebarDefaultIconPath = | 350 const char kInvalidSidebarDefaultIconPath[] = |
351 "Invalid value for 'sidebar.default_icon'."; | 351 "Invalid value for 'sidebar.default_icon'."; |
352 const char* kInvalidSidebarDefaultPage = | 352 const char kInvalidSidebarDefaultPage[] = |
353 "Invalid value for 'sidebar.default_page'."; | 353 "Invalid value for 'sidebar.default_page'."; |
354 const char* kInvalidSidebarDefaultTitle = | 354 const char kInvalidSidebarDefaultTitle[] = |
355 "Invalid value for 'sidebar.default_title'."; | 355 "Invalid value for 'sidebar.default_title'."; |
356 const char* kInvalidSignature = | 356 const char kInvalidSignature[] = |
357 "Value 'signature' is missing or invalid."; | 357 "Value 'signature' is missing or invalid."; |
358 const char* kInvalidTheme = | 358 const char kInvalidTheme[] = |
359 "Invalid value for 'theme'."; | 359 "Invalid value for 'theme'."; |
360 const char* kInvalidThemeColors = | 360 const char kInvalidThemeColors[] = |
361 "Invalid value for theme colors - colors must be integers"; | 361 "Invalid value for theme colors - colors must be integers"; |
362 const char* kInvalidThemeImages = | 362 const char kInvalidThemeImages[] = |
363 "Invalid value for theme images - images must be strings."; | 363 "Invalid value for theme images - images must be strings."; |
364 const char* kInvalidThemeImagesMissing = | 364 const char kInvalidThemeImagesMissing[] = |
365 "An image specified in the theme is missing."; | 365 "An image specified in the theme is missing."; |
366 const char* kInvalidThemeTints = | 366 const char kInvalidThemeTints[] = |
367 "Invalid value for theme images - tints must be decimal numbers."; | 367 "Invalid value for theme images - tints must be decimal numbers."; |
368 const char* kInvalidTts = | 368 const char kInvalidTts[] = |
369 "Invalid value for 'tts_engine'."; | 369 "Invalid value for 'tts_engine'."; |
370 const char* kInvalidTtsVoices = | 370 const char kInvalidTtsVoices[] = |
371 "Invalid value for 'tts_engine.voices'."; | 371 "Invalid value for 'tts_engine.voices'."; |
372 const char* kInvalidTtsVoicesEventTypes = | 372 const char kInvalidTtsVoicesEventTypes[] = |
373 "Invalid value for 'tts_engine.voices[*].event_types'."; | 373 "Invalid value for 'tts_engine.voices[*].event_types'."; |
374 const char* kInvalidTtsVoicesGender = | 374 const char kInvalidTtsVoicesGender[] = |
375 "Invalid value for 'tts_engine.voices[*].gender'."; | 375 "Invalid value for 'tts_engine.voices[*].gender'."; |
376 const char* kInvalidTtsVoicesLang = | 376 const char kInvalidTtsVoicesLang[] = |
377 "Invalid value for 'tts_engine.voices[*].lang'."; | 377 "Invalid value for 'tts_engine.voices[*].lang'."; |
378 const char* kInvalidTtsVoicesVoiceName = | 378 const char kInvalidTtsVoicesVoiceName[] = |
379 "Invalid value for 'tts_engine.voices[*].voice_name'."; | 379 "Invalid value for 'tts_engine.voices[*].voice_name'."; |
380 const char* kInvalidUpdateURL = | 380 const char kInvalidUpdateURL[] = |
381 "Invalid value for update url: '[*]'."; | 381 "Invalid value for update url: '[*]'."; |
382 const char* kInvalidURLPatternError = | 382 const char kInvalidURLPatternError[] = |
383 "Invalid url pattern '*'"; | 383 "Invalid url pattern '*'"; |
384 const char* kInvalidVersion = | 384 const char kInvalidVersion[] = |
385 "Required value 'version' is missing or invalid. It must be between 1-4 " | 385 "Required value 'version' is missing or invalid. It must be between 1-4 " |
386 "dot-separated integers each between 0 and 65536."; | 386 "dot-separated integers each between 0 and 65536."; |
387 const char* kInvalidWebURL = | 387 const char kInvalidWebURL[] = |
388 "Invalid value for 'app.urls[*]': *"; | 388 "Invalid value for 'app.urls[*]': *"; |
389 const char* kInvalidWebURLs = | 389 const char kInvalidWebURLs[] = |
390 "Invalid value for 'app.urls'."; | 390 "Invalid value for 'app.urls'."; |
391 const char* kInvalidZipHash = | 391 const char kInvalidZipHash[] = |
392 "Required key 'zip_hash' is missing or invalid."; | 392 "Required key 'zip_hash' is missing or invalid."; |
393 const char* kLaunchPathAndExtentAreExclusive = | 393 const char kLaunchPathAndExtentAreExclusive[] = |
394 "The 'app.launch.local_path' and 'app.urls' keys cannot both be set."; | 394 "The 'app.launch.local_path' and 'app.urls' keys cannot both be set."; |
395 const char* kLaunchPathAndURLAreExclusive = | 395 const char kLaunchPathAndURLAreExclusive[] = |
396 "The 'app.launch.local_path' and 'app.launch.web_url' keys cannot " | 396 "The 'app.launch.local_path' and 'app.launch.web_url' keys cannot " |
397 "both be set."; | 397 "both be set."; |
398 const char* kLaunchURLRequired = | 398 const char kLaunchURLRequired[] = |
399 "Either 'app.launch.local_path' or 'app.launch.web_url' is required."; | 399 "Either 'app.launch.local_path' or 'app.launch.web_url' is required."; |
400 const char* kLocalesMessagesFileMissing = | 400 const char kLocalesMessagesFileMissing[] = |
401 "Messages file is missing for locale."; | 401 "Messages file is missing for locale."; |
402 const char* kLocalesNoDefaultLocaleSpecified = | 402 const char kLocalesNoDefaultLocaleSpecified[] = |
403 "Localization used, but default_locale wasn't specified in the manifest."; | 403 "Localization used, but default_locale wasn't specified in the manifest."; |
404 const char* kLocalesNoDefaultMessages = | 404 const char kLocalesNoDefaultMessages[] = |
405 "Default locale is defined but default data couldn't be loaded."; | 405 "Default locale is defined but default data couldn't be loaded."; |
406 const char* kLocalesNoValidLocaleNamesListed = | 406 const char kLocalesNoValidLocaleNamesListed[] = |
407 "No valid locale name could be found in _locales directory."; | 407 "No valid locale name could be found in _locales directory."; |
408 const char* kLocalesTreeMissing = | 408 const char kLocalesTreeMissing[] = |
409 "Default locale was specified, but _locales subtree is missing."; | 409 "Default locale was specified, but _locales subtree is missing."; |
410 const char* kManifestParseError = | 410 const char kManifestParseError[] = |
411 "Manifest is not valid JSON."; | 411 "Manifest is not valid JSON."; |
412 const char* kManifestUnreadable = | 412 const char kManifestUnreadable[] = |
413 "Manifest file is missing or unreadable."; | 413 "Manifest file is missing or unreadable."; |
414 const char* kMissingFile = | 414 const char kMissingFile[] = |
415 "At least one js or css file is required for 'content_scripts[*]'."; | 415 "At least one js or css file is required for 'content_scripts[*]'."; |
416 const char* kMultipleOverrides = | 416 const char kMultipleOverrides[] = |
417 "An extension cannot override more than one page."; | 417 "An extension cannot override more than one page."; |
418 const char* kNoWildCardsInPaths = | 418 const char kNoWildCardsInPaths[] = |
419 "Wildcards are not allowed in extent URL pattern paths."; | 419 "Wildcards are not allowed in extent URL pattern paths."; |
420 const char* kOneUISurfaceOnly = | 420 const char kOneUISurfaceOnly[] = |
421 "Only one of 'browser_action', 'page_action', and 'app' can be specified."; | 421 "Only one of 'browser_action', 'page_action', and 'app' can be specified."; |
422 const char* kPermissionNotAllowed = | 422 const char kPermissionNotAllowed[] = |
423 "Access to permission '*' denied."; | 423 "Access to permission '*' denied."; |
424 const char* kReservedMessageFound = | 424 const char kReservedMessageFound[] = |
425 "Reserved key * found in message catalog."; | 425 "Reserved key * found in message catalog."; |
426 const char* kSidebarExperimental = | 426 const char kSidebarExperimental[] = |
427 "You must request the 'experimental' permission in order to use the" | 427 "You must request the 'experimental' permission in order to use the" |
428 " Sidebar API."; | 428 " Sidebar API."; |
429 const char* kThemesCannotContainExtensions = | 429 const char kThemesCannotContainExtensions[] = |
430 "A theme cannot contain extensions code."; | 430 "A theme cannot contain extensions code."; |
431 #if defined(OS_CHROMEOS) | 431 #if defined(OS_CHROMEOS) |
432 const char* kIllegalPlugins = | 432 const char kIllegalPlugins[] = |
433 "Extensions cannot install plugins on Chrome OS"; | 433 "Extensions cannot install plugins on Chrome OS"; |
434 #endif | 434 #endif |
435 } // namespace extension_manifest_errors | 435 } // namespace extension_manifest_errors |
436 | 436 |
437 namespace extension_urls { | 437 namespace extension_urls { |
438 std::string GetWebstoreLaunchURL() { | 438 std::string GetWebstoreLaunchURL() { |
439 std::string gallery_prefix = kGalleryBrowsePrefix; | 439 std::string gallery_prefix = kGalleryBrowsePrefix; |
440 if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kAppsGalleryURL)) | 440 if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kAppsGalleryURL)) |
441 gallery_prefix = CommandLine::ForCurrentProcess()->GetSwitchValueASCII( | 441 gallery_prefix = CommandLine::ForCurrentProcess()->GetSwitchValueASCII( |
442 switches::kAppsGalleryURL); | 442 switches::kAppsGalleryURL); |
443 if (EndsWith(gallery_prefix, "/", true)) | 443 if (EndsWith(gallery_prefix, "/", true)) |
444 gallery_prefix = gallery_prefix.substr(0, gallery_prefix.length() - 1); | 444 gallery_prefix = gallery_prefix.substr(0, gallery_prefix.length() - 1); |
445 return gallery_prefix; | 445 return gallery_prefix; |
446 } | 446 } |
447 | 447 |
448 std::string GetWebstoreItemDetailURLPrefix() { | 448 std::string GetWebstoreItemDetailURLPrefix() { |
449 return GetWebstoreLaunchURL() + "/detail/"; | 449 return GetWebstoreLaunchURL() + "/detail/"; |
450 } | 450 } |
451 | 451 |
452 GURL GetWebstoreItemJsonDataURL(const std::string& extension_id) { | 452 GURL GetWebstoreItemJsonDataURL(const std::string& extension_id) { |
453 return GURL(GetWebstoreLaunchURL() + "/inlineinstall/detail/" + extension_id); | 453 return GURL(GetWebstoreLaunchURL() + "/inlineinstall/detail/" + extension_id); |
454 } | 454 } |
455 | 455 |
456 const char* kGalleryUpdateHttpUrl = | 456 const char kGalleryUpdateHttpUrl[] = |
457 "http://clients2.google.com/service/update2/crx"; | 457 "http://clients2.google.com/service/update2/crx"; |
458 const char* kGalleryUpdateHttpsUrl = | 458 const char kGalleryUpdateHttpsUrl[] = |
459 "https://clients2.google.com/service/update2/crx"; | 459 "https://clients2.google.com/service/update2/crx"; |
460 | 460 |
461 GURL GetWebstoreUpdateUrl(bool secure) { | 461 GURL GetWebstoreUpdateUrl(bool secure) { |
462 CommandLine* cmdline = CommandLine::ForCurrentProcess(); | 462 CommandLine* cmdline = CommandLine::ForCurrentProcess(); |
463 if (cmdline->HasSwitch(switches::kAppsGalleryUpdateURL)) | 463 if (cmdline->HasSwitch(switches::kAppsGalleryUpdateURL)) |
464 return GURL(cmdline->GetSwitchValueASCII(switches::kAppsGalleryUpdateURL)); | 464 return GURL(cmdline->GetSwitchValueASCII(switches::kAppsGalleryUpdateURL)); |
465 else | 465 else |
466 return GURL(secure ? kGalleryUpdateHttpsUrl : kGalleryUpdateHttpUrl); | 466 return GURL(secure ? kGalleryUpdateHttpsUrl : kGalleryUpdateHttpUrl); |
467 } | 467 } |
468 | 468 |
469 const char* kGalleryBrowsePrefix = "https://chrome.google.com/webstore"; | 469 const char kGalleryBrowsePrefix[] = "https://chrome.google.com/webstore"; |
470 } | 470 } |
471 | 471 |
472 namespace extension_filenames { | 472 namespace extension_filenames { |
473 const char* kTempExtensionName = "CRX_INSTALL"; | 473 const char kTempExtensionName[] = "CRX_INSTALL"; |
474 | 474 |
475 // The file to write our decoded images to, relative to the extension_path. | 475 // The file to write our decoded images to, relative to the extension_path. |
476 const char* kDecodedImagesFilename = "DECODED_IMAGES"; | 476 const char kDecodedImagesFilename[] = "DECODED_IMAGES"; |
477 | 477 |
478 // The file to write our decoded message catalogs to, relative to the | 478 // The file to write our decoded message catalogs to, relative to the |
479 // extension_path. | 479 // extension_path. |
480 const char* kDecodedMessageCatalogsFilename = "DECODED_MESSAGE_CATALOGS"; | 480 const char kDecodedMessageCatalogsFilename[] = "DECODED_MESSAGE_CATALOGS"; |
481 } | 481 } |
482 | 482 |
483 namespace extension_misc { | 483 namespace extension_misc { |
484 const char* kBookmarkManagerId = "eemcgdkfndhakfknompkggombfjjjeno"; | 484 const char kBookmarkManagerId[] = "eemcgdkfndhakfknompkggombfjjjeno"; |
485 const char* kWebStoreAppId = "ahfgeienlihckogmohjhadlkjgocpleb"; | 485 const char kWebStoreAppId[] = "ahfgeienlihckogmohjhadlkjgocpleb"; |
486 const char* kCloudPrintAppId = "mfehgcgbbipciphmccgaenjidiccnmng"; | 486 const char kCloudPrintAppId[] = "mfehgcgbbipciphmccgaenjidiccnmng"; |
487 const char* kAppsPromoHistogram = "Extensions.AppsPromo"; | 487 const char kAppsPromoHistogram[] = "Extensions.AppsPromo"; |
488 const char* kAppLaunchHistogram = "Extensions.AppLaunch"; | 488 const char kAppLaunchHistogram[] = "Extensions.AppLaunch"; |
489 #if defined(OS_CHROMEOS) | 489 #if defined(OS_CHROMEOS) |
490 const char* kAccessExtensionPath = | 490 const char kAccessExtensionPath[] = |
491 "/usr/share/chromeos-assets/accessibility/extensions"; | 491 "/usr/share/chromeos-assets/accessibility/extensions"; |
492 const char* kChromeVoxDirectoryName = "access_chromevox"; | 492 const char kChromeVoxDirectoryName[] = "access_chromevox"; |
493 #endif | 493 #endif |
494 | 494 |
495 } | 495 } |
OLD | NEW |