OLD | NEW |
| (Empty) |
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 | |
3 // found in the LICENSE file. | |
4 | |
5 #include "chrome/common/extensions/extension_manifest_constants.h" | |
6 | |
7 namespace extension_manifest_values { | |
8 const char kBrowserActionCommandEvent[] = "_execute_browser_action"; | |
9 const char kIncognitoSplit[] = "split"; | |
10 const char kIncognitoSpanning[] = "spanning"; | |
11 const char kIntentDispositionWindow[] = "window"; | |
12 const char kIntentDispositionInline[] = "inline"; | |
13 const char kIsolatedStorage[] = "storage"; | |
14 const char kKeybindingPlatformChromeOs[] = "chromeos"; | |
15 const char kKeybindingPlatformDefault[] = "default"; | |
16 const char kKeybindingPlatformLinux[] = "linux"; | |
17 const char kKeybindingPlatformMac[] = "mac"; | |
18 const char kKeybindingPlatformWin[] = "windows"; | |
19 const char kKeyAlt[] = "Alt"; | |
20 const char kKeyComma[] = "Comma"; | |
21 const char kKeyCommand[] = "Command"; | |
22 const char kKeyCtrl[] = "Ctrl"; | |
23 const char kKeyDel[] = "Delete"; | |
24 const char kKeyDown[] = "Down"; | |
25 const char kKeyEnd[] = "End"; | |
26 const char kKeyHome[] = "Home"; | |
27 const char kKeyIns[] = "Insert"; | |
28 const char kKeyLeft[] = "Left"; | |
29 const char kKeyMacCtrl[] = "MacCtrl"; | |
30 const char kKeyMediaNextTrack[] = "MediaNextTrack"; | |
31 const char kKeyMediaPlayPause[] = "MediaPlayPause"; | |
32 const char kKeyMediaPrevTrack[] = "MediaPrevTrack"; | |
33 const char kKeyMediaStop[] = "MediaStop"; | |
34 const char kKeyPgDwn[] = "PageDown"; | |
35 const char kKeyPgUp[] = "PageUp"; | |
36 const char kKeyPeriod[] = "Period"; | |
37 const char kKeyRight[] = "Right"; | |
38 const char kKeySeparator[] = "+"; | |
39 const char kKeyShift[] = "Shift"; | |
40 const char kKeyTab[] = "Tab"; | |
41 const char kKeyUp[] = "Up"; | |
42 const char kRunAtDocumentStart[] = "document_start"; | |
43 const char kRunAtDocumentEnd[] = "document_end"; | |
44 const char kRunAtDocumentIdle[] = "document_idle"; | |
45 const char kPageActionCommandEvent[] = "_execute_page_action"; | |
46 const char kPageActionTypeTab[] = "tab"; | |
47 const char kPageActionTypePermanent[] = "permanent"; | |
48 const char kScriptBadgeCommandEvent[] = "_execute_script_badge"; | |
49 const char kLaunchContainerPanel[] = "panel"; | |
50 const char kLaunchContainerTab[] = "tab"; | |
51 const char kLaunchContainerWindow[] = "window"; | |
52 } // namespace extension_manifest_values | |
53 | |
54 // Extension-related error messages. Some of these are simple patterns, where a | |
55 // '*' is replaced at runtime with a specific value. This is used instead of | |
56 // printf because we want to unit test them and scanf is hard to make | |
57 // cross-platform. | |
58 namespace extension_manifest_errors { | |
59 const char kAppsNotEnabled[] = | |
60 "Apps are not enabled."; | |
61 const char kBackgroundPermissionNeeded[] = | |
62 "Hosted apps that use 'background_page' must have the 'background' " | |
63 "permission."; | |
64 const char kBackgroundRequiredForPlatformApps[] = | |
65 "Packaged apps must have a background page or background scripts."; | |
66 const char kCannotAccessChromeUrl[] = "Cannot access a chrome:// URL"; | |
67 const char kCannotAccessExtensionUrl[] = | |
68 "Cannot access a chrome-extension:// URL of different extension"; | |
69 const char kCannotAccessPage[] = | |
70 "Cannot access contents of url \"*\". " | |
71 "Extension manifest must request permission to access this host."; | |
72 const char kCannotChangeExtensionID[] = | |
73 "Installed extensions cannot change their IDs."; | |
74 const char kCannotClaimAllHostsInExtent[] = | |
75 "Cannot claim all hosts ('*') in an extent."; | |
76 const char kCannotClaimAllURLsInExtent[] = | |
77 "Cannot claim all URLs in an extent."; | |
78 const char kCannotScriptGallery[] = | |
79 "The extensions gallery cannot be scripted."; | |
80 const char kCannotScriptSigninPage[] = | |
81 "The sign-in page cannot be scripted."; | |
82 const char kChromeVersionTooLow[] = | |
83 "This extension requires * version * or greater."; | |
84 const char kDisabledByPolicy[] = | |
85 "This extension has been disabled by your administrator."; | |
86 const char kExpectString[] = "Expect string value."; | |
87 const char kExperimentalFlagRequired[] = | |
88 "Loading extensions with 'experimental' permission is turned off by " | |
89 "default. You can enable 'Experimental Extension APIs' " | |
90 "by visiting chrome://flags."; | |
91 const char kInvalidAllFrames[] = | |
92 "Invalid value for 'content_scripts[*].all_frames'."; | |
93 const char kInvalidBackground[] = | |
94 "Invalid value for 'background_page'."; | |
95 const char kInvalidBackgroundAllowJsAccess[] = | |
96 "Invalid value for 'background.allow_js_access'."; | |
97 const char kInvalidBackgroundCombination[] = | |
98 "The background.page and background.scripts properties cannot be used at " | |
99 "the same time."; | |
100 const char kInvalidBackgroundScript[] = | |
101 "Invalid value for 'background.scripts[*]'."; | |
102 const char kInvalidBackgroundScripts[] = | |
103 "Invalid value for 'background.scripts'."; | |
104 const char kInvalidBackgroundInHostedApp[] = | |
105 "Invalid value for 'background_page'. Hosted apps must specify an " | |
106 "absolute HTTPS URL for the background page."; | |
107 const char kInvalidBackgroundPersistent[] = | |
108 "Invalid value for 'background.persistent'."; | |
109 const char kInvalidBackgroundPersistentNoPage[] = | |
110 "Must specify one of background.page or background.scripts to use" | |
111 " background.persistent."; | |
112 const char kInvalidBrowserAction[] = | |
113 "Invalid value for 'browser_action'."; | |
114 const char kInvalidChromeURLOverrides[] = | |
115 "Invalid value for 'chrome_url_overrides'."; | |
116 const char kInvalidCommandsKey[] = | |
117 "Invalid value for 'commands'."; | |
118 const char kInvalidContentPack[] = | |
119 "Invalid value for 'content_pack'."; | |
120 const char kInvalidContentPackSites[] = | |
121 "Invalid value for Content Pack sites - files must be strings."; | |
122 const char kInvalidContentScript[] = | |
123 "Invalid value for 'content_scripts[*]'."; | |
124 const char kInvalidContentSecurityPolicy[] = | |
125 "Invalid value for 'content_security_policy'."; | |
126 const char kInvalidContentScriptsList[] = | |
127 "Invalid value for 'content_scripts'."; | |
128 const char kInvalidCss[] = | |
129 "Invalid value for 'content_scripts[*].css[*]'."; | |
130 const char kInvalidCssList[] = | |
131 "Required value 'content_scripts[*].css' is invalid."; | |
132 const char kInvalidDefaultLocale[] = | |
133 "Invalid value for default locale - locale name must be a string."; | |
134 const char kInvalidDescription[] = | |
135 "Invalid value for 'description'."; | |
136 const char kInvalidDevToolsPage[] = | |
137 "Invalid value for 'devtools_page'."; | |
138 const char kInvalidDisplayInLauncher[] = | |
139 "Invalid value for 'display_in_launcher'."; | |
140 const char kInvalidDisplayInNewTabPage[] = | |
141 "Invalid value for 'display_in_new_tab_page'."; | |
142 const char kInvalidExcludeMatch[] = | |
143 "Invalid value for 'content_scripts[*].exclude_matches[*]': *"; | |
144 const char kInvalidExcludeMatches[] = | |
145 "Invalid value for 'content_scripts[*].exclude_matches'."; | |
146 const char kInvalidExport[] = | |
147 "Invalid value for 'export'."; | |
148 const char kInvalidExportPermissions[] = | |
149 "Permissions are not allowed for extensions that export resources."; | |
150 const char kInvalidExportResources[] = | |
151 "Invalid value for 'export.resources'."; | |
152 const char kInvalidExportResourcesString[] = | |
153 "Invalid value for 'export.resources[*]'."; | |
154 const char kInvalidFileAccessList[] = | |
155 "Invalid value for 'file_access'."; | |
156 const char kInvalidFileAccessValue[] = | |
157 "Invalid value for 'file_access[*]'."; | |
158 const char kInvalidFileBrowserHandler[] = | |
159 "Invalid value for 'file_browser_handlers'."; | |
160 const char kInvalidMediaGalleriesHandler[] = | |
161 "Invalid value for 'media_galleries_handlers'."; | |
162 const char kInvalidFileFiltersList[] = | |
163 "Invalid value for 'file_filters'."; | |
164 const char kInvalidFileFilterValue[] = | |
165 "Invalid value for 'file_filters[*]'."; | |
166 const char kInvalidFileHandlers[] = | |
167 "Invalid value for 'file_handlers'."; | |
168 const char kInvalidFileHandlerExtension[] = | |
169 "Invalid value for 'file_handlers[*].extensions'."; | |
170 const char kInvalidFileHandlerExtensionElement[] = | |
171 "Invalid value for 'file_handlers[*].extensions[*]'."; | |
172 const char kInvalidFileHandlerNoTypeOrExtension[] = | |
173 "'file_handlers[*]' must contain a non-empty 'types' or 'extensions'."; | |
174 const char kInvalidFileHandlerTitle[] = | |
175 "Invalid value for 'file_handlers[*].title'."; | |
176 const char kInvalidFileHandlerType[] = | |
177 "Invalid value for 'file_handlers[*].types'."; | |
178 const char kInvalidFileHandlerTypeElement[] = | |
179 "Invalid value for 'file_handlers[*].types[*]'."; | |
180 const char kInvalidGlob[] = | |
181 "Invalid value for 'content_scripts[*].*[*]'."; | |
182 const char kInvalidGlobList[] = | |
183 "Invalid value for 'content_scripts[*].*'."; | |
184 const char kInvalidHomepageURL[] = | |
185 "Invalid value for homepage url: '[*]'."; | |
186 const char kInvalidIconPath[] = | |
187 "Invalid value for 'icons[\"*\"]'."; | |
188 const char kInvalidIcons[] = | |
189 "Invalid value for 'icons'."; | |
190 const char kInvalidImport[] = | |
191 "Invalid value for 'import'."; | |
192 const char kInvalidImportAndExport[] = | |
193 "Simultaneous 'import' and 'export' are not allowed."; | |
194 const char kInvalidImportId[] = | |
195 "Invalid value for 'import[*].id'."; | |
196 const char kInvalidImportVersion[] = | |
197 "Invalid value for 'import[*].minimum_version'."; | |
198 const char kInvalidIncognitoBehavior[] = | |
199 "Invalid value for 'incognito'."; | |
200 const char kInvalidInputComponents[] = | |
201 "Invalid value for 'input_components'"; | |
202 const char kInvalidInputComponentDescription[] = | |
203 "Invalid value for 'input_components[*].description"; | |
204 const char kInvalidInputComponentLayoutName[] = | |
205 "Invalid value for 'input_components[*].layouts[*]"; | |
206 const char kInvalidInputComponentName[] = | |
207 "Invalid value for 'input_components[*].name"; | |
208 const char kInvalidInputComponentShortcutKey[] = | |
209 "Invalid value for 'input_components[*].shortcutKey"; | |
210 const char kInvalidInputComponentShortcutKeycode[] = | |
211 "Invalid value for 'input_components[*].shortcutKey.keyCode"; | |
212 const char kInvalidInputComponentType[] = | |
213 "Invalid value for 'input_components[*].type"; | |
214 const char kInvalidIntent[] = | |
215 "Invalid value for intents[*]"; | |
216 const char kInvalidIntentDisposition[] = | |
217 "Invalid value for intents[*].disposition"; | |
218 const char kInvalidIntentDispositionInPlatformApp[] = | |
219 "Invalid value for intents[*].disposition. Packaged apps cannot specify " | |
220 "a disposition"; | |
221 const char kInvalidIntentHref[] = | |
222 "Invalid value for intents[*].href"; | |
223 const char kInvalidIntentHrefEmpty[] = | |
224 "Missing value for intents[*].href"; | |
225 const char kInvalidIntentHrefInPlatformApp[] = | |
226 "Invalid value for intents[*].href. Packaged apps cannot specify a " | |
227 "URL for intents"; | |
228 const char kInvalidIntentHrefOldAndNewKey[] = | |
229 "intents[*]: Key \"*\" is deprecated. Key \"*\" has the same meaning. " | |
230 "You can not use both."; | |
231 const char kInvalidIntentPageInHostedApp[] = | |
232 "Invalid value for intents[*].href. Hosted apps must specify an " | |
233 "absolute URL within app.urls[]."; | |
234 const char kInvalidIntents[] = | |
235 "Invalid value for intents"; | |
236 const char kInvalidIntentType[] = | |
237 "Invalid value for intents[*].type"; | |
238 const char kInvalidIntentTypeElement[] = | |
239 "Invalid value for intents[*].type[*]"; | |
240 const char kInvalidIntentTitle[] = | |
241 "Invalid value for intents[*].title"; | |
242 const char kInvalidIsolation[] = | |
243 "Invalid value for 'app.isolation'."; | |
244 const char kInvalidIsolationValue[] = | |
245 "Invalid value for 'app.isolation[*]'."; | |
246 const char kInvalidJs[] = | |
247 "Invalid value for 'content_scripts[*].js[*]'."; | |
248 const char kInvalidJsList[] = | |
249 "Required value 'content_scripts[*].js' is invalid."; | |
250 const char kInvalidKey[] = | |
251 "Value 'key' is missing or invalid."; | |
252 const char kInvalidKeyBinding[] = | |
253 "Invalid value for 'commands[*].*': *."; | |
254 const char kInvalidKeyBindingDescription[] = | |
255 "Invalid value for 'commands[*].description'."; | |
256 const char kInvalidKeyBindingDictionary[] = | |
257 "Contents of 'commands[*]' invalid."; | |
258 const char kInvalidKeyBindingMediaKeyWithModifier[] = | |
259 "Media key cannot have any modifier for 'commands[*].*': *."; | |
260 const char kInvalidKeyBindingMissingPlatform[] = | |
261 "Could not find key specification for 'command[*].*': Either specify a key " | |
262 "for '*', or specify a default key."; | |
263 const char kInvalidKeyBindingTooMany[] = | |
264 "Too many shortcuts specified for 'commands': The maximum is *."; | |
265 const char kInvalidKeyBindingUnknownPlatform[] = | |
266 "Unknown platform for 'command[*]': *. Valid values are: 'windows', 'mac'" | |
267 " 'chromeos', 'linux' and 'default'."; | |
268 const char kInvalidKioskEnabled[] = | |
269 "Invalid value for 'kiosk_enabled'."; | |
270 const char kInvalidLaunchContainer[] = | |
271 "Invalid value for 'app.launch.container'."; | |
272 const char kInvalidLaunchValue[] = | |
273 "Invalid value for '*'."; | |
274 const char kInvalidLaunchValueContainer[] = | |
275 "Invalid container type for '*'."; | |
276 const char kInvalidManifest[] = | |
277 "Manifest file is invalid."; | |
278 const char kInvalidManifestVersion[] = | |
279 "Invalid value for 'manifest_version'. Must be an integer greater than " | |
280 "zero."; | |
281 const char kInvalidManifestVersionOld[] = | |
282 "The 'manifest_version' key must be present and set to * (without quotes). " | |
283 "See developer.chrome.com/*/manifestVersion.html for details."; | |
284 const char kInvalidMatch[] = | |
285 "Invalid value for 'content_scripts[*].matches[*]': *"; | |
286 const char kInvalidMatchCount[] = | |
287 "Invalid value for 'content_scripts[*].matches'. There must be at least " | |
288 "one match specified."; | |
289 const char kInvalidMatches[] = | |
290 "Required value 'content_scripts[*].matches' is missing or invalid."; | |
291 const char kInvalidMIMETypes[] = | |
292 "Invalid value for 'mime_types'"; | |
293 const char kInvalidMimeTypesHandler[] = | |
294 "Invalid value for 'mime_types'."; | |
295 const char kInvalidMinimumChromeVersion[] = | |
296 "Invalid value for 'minimum_chrome_version'."; | |
297 const char kInvalidName[] = | |
298 "Required value 'name' is missing or invalid."; | |
299 const char kInvalidNaClModules[] = | |
300 "Invalid value for 'nacl_modules'."; | |
301 const char kInvalidNaClModulesPath[] = | |
302 "Invalid value for 'nacl_modules[*].path'."; | |
303 const char kInvalidNaClModulesMIMEType[] = | |
304 "Invalid value for 'nacl_modules[*].mime_type'."; | |
305 const char kInvalidOAuth2AutoApprove[] = | |
306 "Invalid value for 'oauth2.auto_approve'. Value must be true or false."; | |
307 const char kInvalidOAuth2ClientId[] = | |
308 "Invalid value for 'oauth2.client_id'."; | |
309 const char kInvalidOAuth2Scopes[] = | |
310 "Invalid value for 'oauth2.scopes'."; | |
311 const char kInvalidOfflineEnabled[] = | |
312 "Invalid value for 'offline_enabled'."; | |
313 const char kInvalidOmniboxKeyword[] = | |
314 "Invalid value for 'omnibox.keyword'."; | |
315 const char kInvalidOptionsPage[] = | |
316 "Invalid value for 'options_page'."; | |
317 const char kInvalidOptionsPageExpectUrlInPackage[] = | |
318 "Invalid value for 'options_page'. Value must be a relative path."; | |
319 const char kInvalidOptionsPageInHostedApp[] = | |
320 "Invalid value for 'options_page'. Hosted apps must specify an " | |
321 "absolute URL."; | |
322 const char kInvalidOptionalPermissions[] = | |
323 "Invalid value for 'optional_permissions'."; | |
324 const char kInvalidPageAction[] = | |
325 "Invalid value for 'page_action'."; | |
326 const char kInvalidPageActionDefaultTitle[] = | |
327 "Invalid value for 'default_title'."; | |
328 const char kInvalidPageActionIconPath[] = | |
329 "Invalid value for 'page_action.default_icon'."; | |
330 const char kInvalidPageActionId[] = | |
331 "Required value 'id' is missing or invalid."; | |
332 const char kInvalidPageActionName[] = | |
333 "Invalid value for 'page_action.name'."; | |
334 const char kInvalidPageActionOldAndNewKeys[] = | |
335 "Key \"*\" is deprecated. Key \"*\" has the same meaning. You can not " | |
336 "use both."; | |
337 const char kInvalidPageActionPopup[] = | |
338 "Invalid type for page action popup."; | |
339 const char kInvalidPageActionPopupPath[] = | |
340 "Invalid value for page action popup path [*]."; | |
341 const char kInvalidPageActionsList[] = | |
342 "Invalid value for 'page_actions'."; | |
343 const char kInvalidPageActionsListSize[] = | |
344 "Invalid value for 'page_actions'. There can be at most one page action."; | |
345 const char kInvalidPageActionTypeValue[] = | |
346 "Invalid value for 'page_actions[*].type', expected 'tab' or 'permanent'."; | |
347 const char kInvalidPermission[] = | |
348 "Invalid value for 'permissions[*]'."; | |
349 const char kInvalidPermissions[] = | |
350 "Invalid value for 'permissions'."; | |
351 const char kInvalidPermissionScheme[] = | |
352 "Invalid scheme for 'permissions[*]'."; | |
353 const char kInvalidPlugins[] = | |
354 "Invalid value for 'plugins'."; | |
355 const char kInvalidPluginsPath[] = | |
356 "Invalid value for 'plugins[*].path'."; | |
357 const char kInvalidPluginsPublic[] = | |
358 "Invalid value for 'plugins[*].public'."; | |
359 const char kInvalidRequirement[] = | |
360 "Invalid value for requirement \"*\""; | |
361 const char kInvalidRequirements[] = | |
362 "Invalid value for 'requirements'"; | |
363 const char kInvalidRunAt[] = | |
364 "Invalid value for 'content_scripts[*].run_at'."; | |
365 const char kInvalidSandboxedPagesList[] = | |
366 "Invalid value for 'sandbox.pages'."; | |
367 const char kInvalidSandboxedPage[] = | |
368 "Invalid value for 'sandbox.pages[*]'."; | |
369 const char kInvalidSandboxedPagesCSP[] = | |
370 "Invalid value for 'sandbox.content_security_policy'."; | |
371 const char kInvalidScriptBadge[] = | |
372 "Invalid value for 'script_badge'."; | |
373 const char kInvalidShortName[] = | |
374 "Invalid value for 'short_name'."; | |
375 const char kInvalidSignature[] = | |
376 "Value 'signature' is missing or invalid."; | |
377 const char kInvalidSpellcheck[] = | |
378 "Invalid value for 'spellcheck'."; | |
379 const char kInvalidSpellcheckDictionaryFormat[] = | |
380 "Invalid value for spellcheck dictionary format."; | |
381 const char kInvalidSpellcheckDictionaryLanguage[] = | |
382 "Invalid value for spellcheck dictionary language."; | |
383 const char kInvalidSpellcheckDictionaryLocale[] = | |
384 "Invalid value for spellcheck dictionary locale."; | |
385 const char kInvalidSpellcheckDictionaryPath[] = | |
386 "Invalid value for spellcheck dictionary path."; | |
387 const char kInvalidSystemIndicator[] = | |
388 "Invalid value for 'system_indicator'."; | |
389 const char kInvalidTheme[] = | |
390 "Invalid value for 'theme'."; | |
391 const char kInvalidThemeColors[] = | |
392 "Invalid value for theme colors - colors must be integers"; | |
393 const char kInvalidThemeImages[] = | |
394 "Invalid value for theme images - images must be strings."; | |
395 const char kInvalidThemeImagesMissing[] = | |
396 "An image specified in the theme is missing."; | |
397 const char kInvalidThemeTints[] = | |
398 "Invalid value for theme images - tints must be decimal numbers."; | |
399 const char kInvalidTts[] = | |
400 "Invalid value for 'tts_engine'."; | |
401 const char kInvalidTtsVoices[] = | |
402 "Invalid value for 'tts_engine.voices'."; | |
403 const char kInvalidTtsVoicesEventTypes[] = | |
404 "Invalid value for 'tts_engine.voices[*].event_types'."; | |
405 const char kInvalidTtsVoicesGender[] = | |
406 "Invalid value for 'tts_engine.voices[*].gender'."; | |
407 const char kInvalidTtsVoicesLang[] = | |
408 "Invalid value for 'tts_engine.voices[*].lang'."; | |
409 const char kInvalidTtsVoicesVoiceName[] = | |
410 "Invalid value for 'tts_engine.voices[*].voice_name'."; | |
411 const char kInvalidUpdateURL[] = | |
412 "Invalid value for update url: '[*]'."; | |
413 const char kInvalidURLHandlers[] = | |
414 "Invalid value for 'url_handlers'."; | |
415 const char kInvalidURLHandlerPatternElement[] = | |
416 "Invalid value for 'url_handlers[*]'."; | |
417 const char kInvalidURLHandlerTitle[] = | |
418 "Invalid value for 'url_handlers[*].title'."; | |
419 const char kInvalidURLHandlerPattern[] = | |
420 "Invalid value for 'url_handlers[*].matches[*]'."; | |
421 const char kInvalidURLPatternError[] = | |
422 "Invalid url pattern '*'"; | |
423 const char kInvalidVersion[] = | |
424 "Required value 'version' is missing or invalid. It must be between 1-4 " | |
425 "dot-separated integers each between 0 and 65536."; | |
426 const char kInvalidWebAccessibleResourcesList[] = | |
427 "Invalid value for 'web_accessible_resources'."; | |
428 const char kInvalidWebAccessibleResource[] = | |
429 "Invalid value for 'web_accessible_resources[*]'."; | |
430 const char kInvalidWebURL[] = | |
431 "Invalid value for 'app.urls[*]': *"; | |
432 const char kInvalidWebURLs[] = | |
433 "Invalid value for 'app.urls'."; | |
434 const char kInvalidZipHash[] = | |
435 "Required key 'zip_hash' is missing or invalid."; | |
436 const char kInsecureContentSecurityPolicy[] = | |
437 "Invalid value for 'content_security_policy': Both 'script-src' and" | |
438 " 'object-src' directives must be specified (either explicitly, or" | |
439 " implicitly via 'default-src'), and both must whitelist only secure" | |
440 " resources. You may include any of the following sources: \"'self'\"," | |
441 " \"'unsafe-eval'\", \"http://127.0.0.1\", \"http://localhost\", or any" | |
442 " \"https://\" or \"chrome-extension://\" origin. For more information," | |
443 " see http://developer.chrome.com/extensions/contentSecurityPolicy.html"; | |
444 const char kLaunchPathAndExtentAreExclusive[] = | |
445 "The 'app.launch.local_path' and 'app.urls' keys cannot both be set."; | |
446 const char kLaunchPathAndURLAreExclusive[] = | |
447 "The 'app.launch.local_path' and 'app.launch.web_url' keys cannot " | |
448 "both be set."; | |
449 const char kLaunchURLRequired[] = | |
450 "Either 'app.launch.local_path' or 'app.launch.web_url' is required."; | |
451 const char kLocalesMessagesFileMissing[] = | |
452 "Messages file is missing for locale."; | |
453 const char kLocalesNoDefaultLocaleSpecified[] = | |
454 "Localization used, but default_locale wasn't specified in the manifest."; | |
455 const char kLocalesNoDefaultMessages[] = | |
456 "Default locale is defined but default data couldn't be loaded."; | |
457 const char kLocalesNoValidLocaleNamesListed[] = | |
458 "No valid locale name could be found in _locales directory."; | |
459 const char kLocalesTreeMissing[] = | |
460 "Default locale was specified, but _locales subtree is missing."; | |
461 const char kManifestParseError[] = | |
462 "Manifest is not valid JSON."; | |
463 const char kManifestUnreadable[] = | |
464 "Manifest file is missing or unreadable."; | |
465 const char kMissingFile[] = | |
466 "At least one js or css file is required for 'content_scripts[*]'."; | |
467 const char kMultipleOverrides[] = | |
468 "An extension cannot override more than one page."; | |
469 const char kNoPermissionForMIMETypes[] = | |
470 "The extension is not allowed to use mime_types key."; | |
471 const char kNoWildCardsInPaths[] = | |
472 "Wildcards are not allowed in extent URL pattern paths."; | |
473 const char kOneUISurfaceOnly[] = | |
474 "Only one of 'browser_action', 'page_action', and 'app' can be specified."; | |
475 const char kPermissionMustBeOptional[] = | |
476 "Permission '*' must be specified in the optional section of the manifest."; | |
477 const char kPermissionNotAllowed[] = | |
478 "Access to permission '*' denied."; | |
479 const char kPermissionNotAllowedInManifest[] = | |
480 "Permission '*' cannot be specified in the manifest."; | |
481 const char kReservedMessageFound[] = | |
482 "Reserved key * found in message catalog."; | |
483 const char kScriptBadgeRequiresFlag[] = | |
484 "The script_badge manifest key is turned off by default. " | |
485 "You can enable it with the --enable-script-badges command-line flag."; | |
486 const char kScriptBadgeIconIgnored[] = | |
487 "default_icon specified in script_badge manifest section will not be used."; | |
488 const char kScriptBadgeTitleIgnored[] = | |
489 "default_title specified in script_badge manifest section will not be " | |
490 "used."; | |
491 const char kWebRequestConflictsWithLazyBackground[] = | |
492 "The 'webRequest' API cannot be used with event pages."; | |
493 #if defined(OS_CHROMEOS) | |
494 const char kIllegalPlugins[] = | |
495 "Extensions cannot install plugins on Chrome OS"; | |
496 #endif | |
497 } // namespace extension_manifest_errors | |
OLD | NEW |