// Copyright (c) 2011 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "chrome/common/extensions/extension_constants.h" namespace extension_manifest_keys { const char* kAllFrames = "all_frames"; const char* kApp = "app"; const char* kBackground = "background_page"; const char* kBrowserAction = "browser_action"; const char* kChromeURLOverrides = "chrome_url_overrides"; const char* kContentScripts = "content_scripts"; const char* kConvertedFromUserScript = "converted_from_user_script"; const char* kCss = "css"; const char* kCurrentLocale = "current_locale"; const char* kDefaultLocale = "default_locale"; const char* kDescription = "description"; const char* kDevToolsPage = "devtools_page"; const char* kExcludeGlobs = "exclude_globs"; const char* kFileFilters = "file_filters"; const char* kFileBrowserHandlers = "file_browser_handlers"; const char* kHomepageURL = "homepage_url"; const char* kIcons = "icons"; const char* kIncognito = "incognito"; const char* kIncludeGlobs = "include_globs"; const char* kIsolation = "app.isolation"; const char* kJs = "js"; const char* kLaunch = "app.launch"; const char* kLaunchContainer = "app.launch.container"; const char* kLaunchHeight = "app.launch.height"; const char* kLaunchLocalPath = "app.launch.local_path"; const char* kLaunchWebURL = "app.launch.web_url"; const char* kLaunchWidth = "app.launch.width"; const char* kMatches = "matches"; const char* kMinimumChromeVersion = "minimum_chrome_version"; const char* kName = "name"; const char* kNaClModules = "nacl_modules"; const char* kNaClModulesMIMEType = "mime_type"; const char* kNaClModulesPath = "path"; const char* kOmnibox = "omnibox"; const char* kOmniboxKeyword = "omnibox.keyword"; const char* kOptionsPage = "options_page"; const char* kPageAction = "page_action"; const char* kPageActionDefaultIcon = "default_icon"; const char* kPageActionDefaultPopup = "default_popup"; const char* kPageActionDefaultTitle = "default_title"; const char* kPageActionIcons = "icons"; const char* kPageActionId = "id"; const char* kPageActionPopup = "popup"; const char* kPageActionPopupHeight = "height"; const char* kPageActionPopupPath = "path"; const char* kPageActions = "page_actions"; const char* kPermissions = "permissions"; const char* kPlugins = "plugins"; const char* kPluginsPath = "path"; const char* kPluginsPublic = "public"; const char* kPublicKey = "key"; const char* kRunAt = "run_at"; const char* kSidebar = "sidebar"; const char* kSidebarDefaultIcon = "default_icon"; const char* kSidebarDefaultPage = "default_page"; const char* kSidebarDefaultTitle = "default_title"; const char* kSignature = "signature"; const char* kTheme = "theme"; const char* kThemeColors = "colors"; const char* kThemeDisplayProperties = "properties"; const char* kThemeImages = "images"; const char* kThemeTints = "tints"; const char* kToolstripPath = "path"; const char* kToolstrips = "toolstrips"; const char* kTts = "tts"; const char* kTtsGenderFemale = "female"; const char* kTtsGenderMale = "male"; const char* kTtsVoices = "voices"; const char* kTtsVoicesGender = "gender"; const char* kTtsVoicesLocale = "locale"; const char* kTtsVoicesVoiceName = "voiceName"; const char* kType = "type"; const char* kUpdateURL = "update_url"; const char* kVersion = "version"; const char* kWebURLs = "app.urls"; } // namespace extension_manifest_keys namespace extension_manifest_values { const char* kIncognitoSplit = "split"; const char* kIncognitoSpanning = "spanning"; const char* kIsolatedStorage = "storage"; const char* kRunAtDocumentStart = "document_start"; const char* kRunAtDocumentEnd = "document_end"; const char* kRunAtDocumentIdle = "document_idle"; const char* kPageActionTypeTab = "tab"; const char* kPageActionTypePermanent = "permanent"; const char* kLaunchContainerPanel = "panel"; const char* kLaunchContainerTab = "tab"; const char* kLaunchContainerWindow = "window"; } // namespace extension_manifest_values // Extension-related error messages. Some of these are simple patterns, where a // '*' is replaced at runtime with a specific value. This is used instead of // printf because we want to unit test them and scanf is hard to make // cross-platform. namespace extension_manifest_errors { const char* kAppsNotEnabled = "Apps are not enabled."; const char* kBackgroundPermissionNeeded = "Hosted apps that use 'background_page' must have the 'background' " "permission."; const char* kCannotAccessPage = "Cannot access contents of url \"*\". " "Extension manifest must request permission to access this host."; const char* kCannotClaimAllHostsInExtent = "Cannot claim all hosts ('*') in an extent."; const char* kCannotClaimAllURLsInExtent = "Cannot claim all URLs in an extent."; const char* kCannotScriptGallery = "The extensions gallery cannot be scripted."; const char* kCannotUninstallManagedExtension = "Attempted uninstallation of an extension that is not user-manageable."; const char* kChromeVersionTooLow = "This extension requires * version * or greater."; const char* kDisabledByPolicy = "This extension has been disabled by your administrator."; const char* kDevToolsExperimental = "You must request the 'experimental' permission in order to use the" " DevTools API."; const char* kExpectString = "Expect string value."; const char* kExperimentalFlagRequired = "Loading extensions with 'experimental' permission requires" " --enable-experimental-extension-apis command line flag."; const char *kExperimentalFeature = "This feature requires 'experimental' permissions and" " --enable-experimental-extension-apis command line flag."; const char* kHostedAppsCannotIncludeExtensionFeatures = "Hosted apps cannot use the extension feature '*'."; const char* kInvalidAllFrames = "Invalid value for 'content_scripts[*].all_frames'."; const char* kInvalidBackground = "Invalid value for 'background_page'."; const char* kInvalidBackgroundInHostedApp = "Invalid value for 'background_page'. Hosted apps must specify an " "absolute HTTPS URL for the background page."; const char* kInvalidBrowserAction = "Invalid value for 'browser_action'."; const char* kInvalidChromeURLOverrides = "Invalid value for 'chrome_url_overrides'."; const char* kInvalidContentScript = "Invalid value for 'content_scripts[*]'."; const char* kInvalidContentScriptsList = "Invalid value for 'content_scripts'."; const char* kInvalidCss = "Invalid value for 'content_scripts[*].css[*]'."; const char* kInvalidCssList = "Required value 'content_scripts[*].css' is invalid."; const char* kInvalidDefaultLocale = "Invalid value for default locale - locale name must be a string."; const char* kInvalidDescription = "Invalid value for 'description'."; const char* kInvalidDevToolsPage = "Invalid value for 'devtools_page'."; const char* kInvalidFileBrowserHandler = "Invalid value for 'file_browser_handers'."; const char* kInvalidFileFiltersList = "Invalid value for 'file_filters'."; const char* kInvalidFileFilterValue = "Invalid value for 'file_filters[*]'."; const char* kInvalidGlob = "Invalid value for 'content_scripts[*].*[*]'."; const char* kInvalidGlobList = "Invalid value for 'content_scripts[*].*'."; const char* kInvalidHomepageURL = "Invalid value for homepage url: '[*]'."; const char* kInvalidIconPath = "Invalid value for 'icons[\"*\"]'."; const char* kInvalidIcons = "Invalid value for 'icons'."; const char* kInvalidIncognitoBehavior = "Invalid value for 'incognito'."; const char* kInvalidIsolation = "Invalid value for 'app.isolation'."; const char* kInvalidIsolationValue = "Invalid value for 'app.isolation[*]'."; const char* kInvalidJs = "Invalid value for 'content_scripts[*].js[*]'."; const char* kInvalidJsList = "Required value 'content_scripts[*].js' is invalid."; const char* kInvalidKey = "Value 'key' is missing or invalid."; const char* kInvalidLaunchContainer = "Invalid value for 'app.launch.container'."; const char* kInvalidLaunchHeight = "Invalid value for 'app.launch.height'."; const char* kInvalidLaunchHeightContainer = "Invalid container type for 'app.launch.height'."; const char* kInvalidLaunchLocalPath = "Invalid value for 'app.launch.local_path'."; const char* kInvalidLaunchWebURL = "Invalid value for 'app.launch.web_url'."; const char* kInvalidLaunchWidth = "Invalid value for 'app.launch.width'."; const char* kInvalidLaunchWidthContainer = "Invalid container type for 'app.launch.width'."; const char* kInvalidManifest = "Manifest file is invalid."; const char* kInvalidMatch = "Invalid value for 'content_scripts[*].matches[*]': *"; const char* kInvalidMatchCount = "Invalid value for 'content_scripts[*].matches'. There must be at least" "one match specified."; const char* kInvalidMatches = "Required value 'content_scripts[*].matches' is missing or invalid."; const char* kInvalidMinimumChromeVersion = "Invalid value for 'minimum_chrome_version'."; const char* kInvalidName = "Required value 'name' is missing or invalid."; const char* kInvalidNaClModules = "Invalid value for 'nacl_modules'."; const char* kInvalidNaClModulesPath = "Invalid value for 'nacl_modules[*].path'."; const char* kInvalidNaClModulesMIMEType = "Invalid value for 'nacl_modules[*].mime_type'."; const char* kInvalidOmniboxKeyword = "Invalid value for 'omnibox.keyword'."; const char* kInvalidOptionsPage = "Invalid value for 'options_page'."; const char* kInvalidOptionsPageExpectUrlInPackage = "Invalid value for 'options_page'. Value must be a relative path."; const char* kInvalidOptionsPageInHostedApp = "Invalid value for 'options_page'. Hosted apps must specify an " "absolute URL."; const char* kInvalidPageAction = "Invalid value for 'page_action'."; const char* kInvalidPageActionDefaultTitle = "Invalid value for 'default_title'."; const char* kInvalidPageActionIconPath = "Invalid value for 'page_action.default_icon'."; const char* kInvalidPageActionId = "Required value 'id' is missing or invalid."; const char* kInvalidPageActionName = "Invalid value for 'page_action.name'."; const char* kInvalidPageActionOldAndNewKeys = "Key \"*\" is deprecated. Key \"*\" has the same meaning. You can not " "use both."; const char* kInvalidPageActionPopup = "Invalid type for page action popup."; const char* kInvalidPageActionPopupHeight = "Invalid value for page action popup height [*]."; const char* kInvalidPageActionPopupPath = "Invalid value for page action popup path [*]."; const char* kInvalidPageActionsList = "Invalid value for 'page_actions'."; const char* kInvalidPageActionsListSize = "Invalid value for 'page_actions'. There can be at most one page action."; const char* kInvalidPageActionTypeValue = "Invalid value for 'page_actions[*].type', expected 'tab' or 'permanent'."; const char* kInvalidPermission = "Invalid value for 'permissions[*]'."; const char* kInvalidPermissions = "Required value 'permissions' is missing or invalid."; const char* kInvalidPermissionScheme = "Invalid scheme for 'permissions[*]'."; const char* kInvalidPlugins = "Invalid value for 'plugins'."; const char* kInvalidPluginsPath = "Invalid value for 'plugins[*].path'."; const char* kInvalidPluginsPublic = "Invalid value for 'plugins[*].public'."; const char* kInvalidRunAt = "Invalid value for 'content_scripts[*].run_at'."; const char* kInvalidSidebar = "Invalid value for 'sidebar'."; const char* kInvalidSidebarDefaultIconPath = "Invalid value for 'sidebar.default_icon'."; const char* kInvalidSidebarDefaultPage = "Invalid value for 'sidebar.default_page'."; const char* kInvalidSidebarDefaultTitle = "Invalid value for 'sidebar.default_title'."; const char* kInvalidSignature = "Value 'signature' is missing or invalid."; const char* kInvalidTheme = "Invalid value for 'theme'."; const char* kInvalidThemeColors = "Invalid value for theme colors - colors must be integers"; const char* kInvalidThemeImages = "Invalid value for theme images - images must be strings."; const char* kInvalidThemeImagesMissing = "An image specified in the theme is missing."; const char* kInvalidThemeTints = "Invalid value for theme images - tints must be decimal numbers."; const char* kInvalidToolstrip = "Invalid value for 'toolstrips[*]'"; const char* kInvalidToolstrips = "Invalid value for 'toolstrips'."; const char* kInvalidTts = "Invalid value for 'tts'."; const char* kInvalidTtsVoices = "Invalid value for 'tts.voices'."; const char* kInvalidTtsVoicesGender = "Invalid value for 'tts.voices[*].gender'."; const char* kInvalidTtsVoicesLocale = "Invalid value for 'tts.voices[*].locale'."; const char* kInvalidTtsVoicesVoiceName = "Invalid value for 'tts.voices[*].voiceName'."; const char* kInvalidUpdateURL = "Invalid value for update url: '[*]'."; const char* kInvalidURLPatternError = "Invalid url pattern '*'"; const char* kInvalidVersion = "Required value 'version' is missing or invalid. It must be between 1-4 " "dot-separated integers each between 0 and 65536."; const char* kInvalidWebURL = "Invalid value for 'app.urls[*]': *"; const char* kInvalidWebURLs = "Invalid value for 'app.urls'."; const char* kInvalidZipHash = "Required key 'zip_hash' is missing or invalid."; const char* kLaunchPathAndURLAreExclusive = "The 'app.launch.local_path' and 'launch.web_url' keys cannot both be set."; const char* kLaunchURLRequired = "Either 'app.launch.local_path' or 'app.launch.web_url' is required."; const char* kLocalesMessagesFileMissing = "Messages file is missing for locale."; const char* kLocalesNoDefaultLocaleSpecified = "Localization used, but default_locale wasn't specified in the manifest."; const char* kLocalesNoDefaultMessages = "Default locale is defined but default data couldn't be loaded."; const char* kLocalesNoValidLocaleNamesListed = "No valid locale name could be found in _locales directory."; const char* kLocalesTreeMissing = "Default locale was specified, but _locales subtree is missing."; const char* kManifestParseError = "Manifest is not valid JSON."; const char* kManifestUnreadable = "Manifest file is missing or unreadable."; const char* kMissingFile = "At least one js or css file is required for 'content_scripts[*]'."; const char* kMultipleOverrides = "An extension cannot override more than one page."; const char* kNoWildCardsInPaths = "Wildcards are not allowed in extent URL pattern paths."; const char* kOneUISurfaceOnly = "Only one of 'browser_action', 'page_action', and 'app' can be specified."; const char* kReservedMessageFound = "Reserved key * found in message catalog."; const char* kSidebarExperimental = "You must request the 'experimental' permission in order to use the" " Sidebar API."; const char* kThemesCannotContainExtensions = "A theme cannot contain extensions code."; #if defined(OS_CHROMEOS) const char* kIllegalPlugins = "Extensions cannot install plugins on Chrome OS"; #endif } // namespace extension_manifest_errors namespace extension_urls { const char* kGalleryBrowsePrefix = "https://chrome.google.com/webstore"; const char* kMiniGalleryBrowsePrefix = "https://tools.google.com/chrome/"; const char* kMiniGalleryDownloadPrefix = "https://dl-ssl.google.com/chrome/"; } namespace extension_filenames { const char* kTempExtensionName = "CRX_INSTALL"; // The file to write our decoded images to, relative to the extension_path. const char* kDecodedImagesFilename = "DECODED_IMAGES"; // The file to write our decoded message catalogs to, relative to the // extension_path. const char* kDecodedMessageCatalogsFilename = "DECODED_MESSAGE_CATALOGS"; } namespace extension_misc { const char* kBookmarkManagerId = "eemcgdkfndhakfknompkggombfjjjeno"; const char* kWebStoreAppId = "ahfgeienlihckogmohjhadlkjgocpleb"; const char* kAppsPromoHistogram = "Extensions.AppsPromo"; const char* kAppLaunchHistogram = "Extensions.AppLaunch"; #if defined(OS_CHROMEOS) const char* kAccessExtensionPath = "/usr/share/chromeos-assets/accessibility/extensions"; #endif }