// Copyright 2013 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.

#ifndef EXTENSIONS_COMMON_MANIFEST_CONSTANTS_H_
#define EXTENSIONS_COMMON_MANIFEST_CONSTANTS_H_

namespace extensions {

// Keys used in JSON representation of extensions.
namespace manifest_keys {

extern const char kAboutPage[];
extern const char kAllFrames[];
extern const char kAltKey[];
extern const char kApp[];
extern const char kAutomation[];
extern const char kBackgroundAllowJsAccess[];
extern const char kBackgroundPage[];
extern const char kBackgroundPageLegacy[];
extern const char kBackgroundPersistent[];
extern const char kBackgroundScripts[];
extern const char kBluetooth[];
extern const char kBookmarkUI[];
extern const char kBrowserAction[];
extern const char kBrowseURLs[];
extern const char kChromeURLOverrides[];
extern const char kCommands[];
extern const char kContentPack[];
extern const char kContentPackSites[];
extern const char kContentScripts[];
extern const char kContentSecurityPolicy[];
extern const char kConvertedFromUserScript[];
extern const char kCss[];
extern const char kCtrlKey[];
extern const char kCurrentLocale[];
extern const char kDefaultLocale[];
extern const char kDescription[];
extern const char kDevToolsPage[];
extern const char kDisplayInLauncher[];
extern const char kDisplayInNewTabPage[];
extern const char kEventName[];
extern const char kExcludeGlobs[];
extern const char kExcludeMatches[];
extern const char kExport[];
extern const char kExternallyConnectable[];
extern const char kFileAccessList[];
extern const char kFileHandlers[];
extern const char kFileHandlerExtensions[];
extern const char kFileHandlerTypes[];
extern const char kFileFilters[];
extern const char kFileBrowserHandlers[];
extern const char kGlobal[];
extern const char kHideBookmarkButton[];
extern const char kHomepageURL[];
extern const char kIcons[];
extern const char kId[];
extern const char kImeOptionsPage[];
extern const char kImport[];
extern const char kIncognito[];
extern const char kIncludeGlobs[];
extern const char kInputComponents[];
extern const char kInputView[];
extern const char kIntentDisposition[];
extern const char kIntentHref[];
extern const char kIntentPath[];
extern const char kIntents[];
extern const char kIntentTitle[];
extern const char kIntentType[];
extern const char kIsolation[];
extern const char kJs[];
extern const char kKey[];
extern const char kKeycode[];
extern const char kKioskEnabled[];
extern const char kKioskOnly[];
extern const char kKioskMode[];
extern const char kLanguage[];
extern const char kLaunch[];
extern const char kLaunchContainer[];
extern const char kLauncherPage[];
extern const char kLauncherPagePage[];
extern const char kLaunchHeight[];
extern const char kLaunchLocalPath[];
extern const char kLaunchWebURL[];
extern const char kLaunchWidth[];
extern const char kLayouts[];
extern const char kManifestVersion[];
extern const char kMatchAboutBlank[];
extern const char kMatches[];
extern const char kMIMETypes[];
extern const char kMimeTypesHandler[];
extern const char kMinimumChromeVersion[];
extern const char kMinimumVersion[];
extern const char kNaClModules[];
extern const char kNaClModulesMIMEType[];
extern const char kNaClModulesPath[];
extern const char kName[];
extern const char kOAuth2[];
extern const char kOAuth2AutoApprove[];
extern const char kOAuth2ClientId[];
extern const char kOAuth2Scopes[];
extern const char kOfflineEnabled[];
extern const char kOmnibox[];
extern const char kOmniboxKeyword[];
extern const char kOptionalPermissions[];
extern const char kOptionsPage[];
extern const char kOverrideHomepage[];
extern const char kOverrideSearchProvider[];
extern const char kOverrideStartupPage[];
extern const char kPageAction[];
extern const char kPageActionDefaultIcon[];
extern const char kPageActionDefaultPopup[];
extern const char kPageActionDefaultTitle[];
extern const char kPageActionIcons[];
extern const char kPageActionId[];
extern const char kPageActionPopup[];
extern const char kPageActionPopupPath[];
extern const char kPageActions[];
extern const char kPermissions[];
extern const char kPlatformAppBackground[];
extern const char kPlatformAppBackgroundPage[];
extern const char kPlatformAppBackgroundScripts[];
extern const char kPlatformAppContentSecurityPolicy[];
extern const char kPlatformAppServiceWorker[];
extern const char kPlatformAppServiceWorkerScript[];
extern const char kPlugins[];
extern const char kPluginsPath[];
extern const char kPluginsPublic[];
extern const char kPublicKey[];
extern const char kRemoveButton[];
extern const char kResources[];
extern const char kRequirements[];
extern const char kRunAt[];
extern const char kSandboxedPages[];
extern const char kSandboxedPagesCSP[];
extern const char kScriptBadge[];
extern const char kSettingsOverride[];
extern const char kSettingsOverrideAlternateUrls[];
extern const char kShiftKey[];
extern const char kShortcutKey[];
extern const char kShortName[];
extern const char kSignature[];
extern const char kSockets[];
extern const char kSpellcheck[];
extern const char kSpellcheckDictionaryFormat[];
extern const char kSpellcheckDictionaryLanguage[];
extern const char kSpellcheckDictionaryLocale[];
extern const char kSpellcheckDictionaryPath[];
extern const char kStorageManagedSchema[];
extern const char kSuggestedKey[];
extern const char kSynthesizeBrowserAction[];
extern const char kSystemIndicator[];
extern const char kTheme[];
extern const char kThemeColors[];
extern const char kThemeDisplayProperties[];
extern const char kThemeImages[];
extern const char kThemeTints[];
extern const char kTtsEngine[];
extern const char kTtsGenderFemale[];
extern const char kTtsGenderMale[];
extern const char kTtsVoices[];
extern const char kTtsVoicesEventTypeEnd[];
extern const char kTtsVoicesEventTypeError[];
extern const char kTtsVoicesEventTypeMarker[];
extern const char kTtsVoicesEventTypeSentence[];
extern const char kTtsVoicesEventTypeStart[];
extern const char kTtsVoicesEventTypeWord[];
extern const char kTtsVoicesEventTypes[];
extern const char kTtsVoicesGender[];
extern const char kTtsVoicesLang[];
extern const char kTtsVoicesRemote[];
extern const char kTtsVoicesVoiceName[];
extern const char kType[];
extern const char kUIOverride[];
extern const char kUpdateURL[];
extern const char kUrlHandlers[];
extern const char kUrlHandlerTitle[];
extern const char kVersion[];
extern const char kWebAccessibleResources[];
extern const char kWebURLs[];
extern const char kWebview[];
extern const char kWebviewName[];
extern const char kWebviewAccessibleResources[];
extern const char kWebviewPartitions[];
extern const char kWhitelist[];

}  // namespace manifest_keys

// Some values expected in manifests.
namespace manifest_values {

extern const char kBrowserActionCommandEvent[];
extern const char kIncognitoSplit[];
extern const char kIncognitoSpanning[];
extern const char kIntentDispositionWindow[];
extern const char kIntentDispositionInline[];
extern const char kIsolatedStorage[];
extern const char kKeybindingPlatformChromeOs[];
extern const char kKeybindingPlatformDefault[];
extern const char kKeybindingPlatformLinux[];
extern const char kKeybindingPlatformMac[];
extern const char kKeybindingPlatformWin[];
extern const char kKeyAlt[];
extern const char kKeyShift[];
extern const char kKeyCommand[];
extern const char kKeyCtrl[];
extern const char kKeyComma[];
extern const char kKeyDel[];
extern const char kKeyDown[];
extern const char kKeyHome[];
extern const char kKeyEnd[];
extern const char kKeyIns[];
extern const char kKeyLeft[];
extern const char kKeyMacCtrl[];
extern const char kKeyMediaNextTrack[];
extern const char kKeyMediaPlayPause[];
extern const char kKeyMediaPrevTrack[];
extern const char kKeyMediaStop[];
extern const char kKeyPgDwn[];
extern const char kKeyPgUp[];
extern const char kKeyPeriod[];
extern const char kKeyRight[];
extern const char kKeySeparator[];
extern const char kKeyTab[];
extern const char kKeyUp[];
extern const char kLaunchContainerPanel[];
extern const char kLaunchContainerTab[];
extern const char kLaunchContainerWindow[];
extern const char kPageActionCommandEvent[];
extern const char kPageActionTypePermanent[];
extern const char kPageActionTypeTab[];
extern const char kScriptBadgeCommandEvent[];
extern const char kRunAtDocumentEnd[];
extern const char kRunAtDocumentIdle[];
extern const char kRunAtDocumentStart[];

}  // namespace manifest_values

// Error messages returned from extension installation.
namespace manifest_errors {

extern const char kActiveTabPermissionNotGranted[];
extern const char kAllURLOrActiveTabNeeded[];
extern const char kAppsNotEnabled[];
extern const char kBackgroundPermissionNeeded[];
extern const char kBackgroundRequiredForPlatformApps[];
extern const char kCannotAccessChromeUrl[];
extern const char kCannotAccessExtensionUrl[];
extern const char kCannotAccessPage[];
extern const char kCannotChangeExtensionID[];
extern const char kCannotClaimAllHostsInExtent[];
extern const char kCannotClaimAllURLsInExtent[];
extern const char kCannotScriptGallery[];
extern const char kCannotScriptSigninPage[];
extern const char kCannotUninstallManagedExtension[];
extern const char kChromeVersionTooLow[];
extern const char kDevToolsExperimental[];
extern const char kDisabledByPolicy[];
extern const char kExpectString[];
extern const char kExperimentalFlagRequired[];
extern const char kInvalidAboutPage[];
extern const char kInvalidAboutPageExpectRelativePath[];
extern const char kInvalidAllFrames[];
extern const char kInvalidBackground[];
extern const char kInvalidBackgroundAllowJsAccess[];
extern const char kInvalidBackgroundCombination[];
extern const char kInvalidBackgroundScript[];
extern const char kInvalidBackgroundScripts[];
extern const char kInvalidBackgroundInHostedApp[];
extern const char kInvalidBackgroundPersistent[];
extern const char kInvalidBackgroundPersistentNoPage[];
extern const char kInvalidBrowserAction[];
extern const char kInvalidBrowseURL[];
extern const char kInvalidBrowseURLs[];
extern const char kInvalidChromeURLOverrides[];
extern const char kInvalidCommandsKey[];
extern const char kInvalidContentPack[];
extern const char kInvalidContentPackSites[];
extern const char kInvalidContentScript[];
extern const char kInvalidContentScriptsList[];
extern const char kInvalidContentSecurityPolicy[];
extern const char kInvalidCss[];
extern const char kInvalidCssList[];
extern const char kInvalidDefaultLocale[];
extern const char kInvalidDescription[];
extern const char kInvalidDevToolsPage[];
extern const char kInvalidDisplayInLauncher[];
extern const char kInvalidDisplayInNewTabPage[];
extern const char kInvalidEmptyDictionary[];
extern const char kInvalidExcludeMatch[];
extern const char kInvalidExcludeMatches[];
extern const char kInvalidExport[];
extern const char kInvalidExportPermissions[];
extern const char kInvalidExportResources[];
extern const char kInvalidExportResourcesString[];
extern const char kInvalidExportWhitelist[];
extern const char kInvalidExportWhitelistString[];
extern const char kInvalidFileAccessList[];
extern const char kInvalidFileAccessValue[];
extern const char kInvalidFileBrowserHandler[];
extern const char kInvalidFileBrowserHandlerMIMETypes[];
extern const char kInvalidFileFiltersList[];
extern const char kInvalidFileFilterValue[];
extern const char kInvalidFileHandlers[];
extern const char kInvalidFileHandlersTooManyTypesAndExtensions[];
extern const char kInvalidFileHandlerExtension[];
extern const char kInvalidFileHandlerExtensionElement[];
extern const char kInvalidFileHandlerNoTypeOrExtension[];
extern const char kInvalidFileHandlerType[];
extern const char kInvalidFileHandlerTypeElement[];
extern const char kInvalidGlob[];
extern const char kInvalidGlobList[];
extern const char kInvalidHomepageOverrideURL[];
extern const char kInvalidHomepageURL[];
extern const char kInvalidIconPath[];
extern const char kInvalidIcons[];
extern const char kInvalidImport[];
extern const char kInvalidImportAndExport[];
extern const char kInvalidImportId[];
extern const char kInvalidImportVersion[];
extern const char kInvalidIncognitoBehavior[];
extern const char kInvalidInputComponents[];
extern const char kInvalidInputComponentDescription[];
extern const char kInvalidInputComponentLayoutName[];
extern const char kInvalidInputComponentName[];
extern const char kInvalidInputComponentShortcutKey[];
extern const char kInvalidInputComponentShortcutKeycode[];
extern const char kInvalidInputComponentType[];
extern const char kInvalidInputView[];
extern const char kInvalidIntent[];
extern const char kInvalidIntentDisposition[];
extern const char kInvalidIntentDispositionInPlatformApp[];
extern const char kInvalidIntentHref[];
extern const char kInvalidIntentHrefEmpty[];
extern const char kInvalidIntentHrefInPlatformApp[];
extern const char kInvalidIntentHrefOldAndNewKey[];
extern const char kInvalidIntentPageInHostedApp[];
extern const char kInvalidIntents[];
extern const char kInvalidIntentType[];
extern const char kInvalidIntentTypeElement[];
extern const char kInvalidIntentTitle[];
extern const char kInvalidIsolation[];
extern const char kInvalidIsolationValue[];
extern const char kInvalidJs[];
extern const char kInvalidJsList[];
extern const char kInvalidKey[];
extern const char kInvalidKeyBinding[];
extern const char kInvalidKeyBindingDescription[];
extern const char kInvalidKeyBindingDictionary[];
extern const char kInvalidKeyBindingMediaKeyWithModifier[];
extern const char kInvalidKeyBindingMissingPlatform[];
extern const char kInvalidKeyBindingTooMany[];
extern const char kInvalidKeyBindingUnknownPlatform[];
extern const char kInvalidKioskEnabled[];
extern const char kInvalidKioskOnly[];
extern const char kInvalidKioskOnlyButNotEnabled[];
extern const char kInvalidLaunchContainer[];
extern const char kInvalidLaunchValue[];
extern const char kInvalidLaunchValueContainer[];
extern const char kInvalidManifest[];
extern const char kInvalidManifestVersion[];
extern const char kInvalidManifestVersionOld[];
extern const char kInvalidMatch[];
extern const char kInvalidMatchAboutBlank[];
extern const char kInvalidMatchCount[];
extern const char kInvalidMatches[];
extern const char kInvalidMIMETypes[];
extern const char kInvalidMimeTypesHandler[];
extern const char kInvalidMinimumChromeVersion[];
extern const char kInvalidNaClModules[];
extern const char kInvalidNaClModulesMIMEType[];
extern const char kInvalidNaClModulesPath[];
extern const char kInvalidName[];
extern const char kInvalidOAuth2AutoApprove[];
extern const char kInvalidOAuth2ClientId[];
extern const char kInvalidOAuth2Scopes[];
extern const char kInvalidOfflineEnabled[];
extern const char kInvalidOmniboxKeyword[];
extern const char kInvalidOptionsPage[];
extern const char kInvalidOptionsPageExpectUrlInPackage[];
extern const char kInvalidOptionsPageInHostedApp[];
extern const char kInvalidPageAction[];
extern const char kInvalidPageActionDefaultTitle[];
extern const char kInvalidPageActionIconPath[];
extern const char kInvalidPageActionId[];
extern const char kInvalidPageActionName[];
extern const char kInvalidPageActionOldAndNewKeys[];
extern const char kInvalidPageActionPopup[];
extern const char kInvalidPageActionPopupHeight[];
extern const char kInvalidPageActionPopupPath[];
extern const char kInvalidPageActionsList[];
extern const char kInvalidPageActionsListSize[];
extern const char kInvalidPageActionTypeValue[];
extern const char kInvalidPermissionWithDetail[];
extern const char kInvalidPermission[];
extern const char kInvalidPermissions[];
extern const char kInvalidPermissionScheme[];
extern const char kInvalidPlugins[];
extern const char kInvalidPluginsPath[];
extern const char kInvalidPluginsPublic[];
extern const char kInvalidRequirement[];
extern const char kInvalidRequirements[];
extern const char kInvalidRunAt[];
extern const char kInvalidSandboxedPagesList[];
extern const char kInvalidSandboxedPage[];
extern const char kInvalidSandboxedPagesCSP[];
extern const char kInvalidScriptBadge[];
extern const char kInvalidSearchEngineMissingKeys[];
extern const char kInvalidSearchEngineURL[];
extern const char kInvalidServiceWorkerScript[];
extern const char kInvalidShortName[];
extern const char kInvalidSignature[];
extern const char kInvalidSpellcheck[];
extern const char kInvalidSpellcheckDictionaryFormat[];
extern const char kInvalidSpellcheckDictionaryLanguage[];
extern const char kInvalidSpellcheckDictionaryLocale[];
extern const char kInvalidSpellcheckDictionaryPath[];
extern const char kInvalidStartupOverrideURL[];
extern const char kInvalidSystemIndicator[];
extern const char kInvalidTheme[];
extern const char kInvalidThemeColors[];
extern const char kInvalidThemeImages[];
extern const char kInvalidThemeImagesMissing[];
extern const char kInvalidThemeTints[];
extern const char kInvalidTts[];
extern const char kInvalidTtsVoices[];
extern const char kInvalidTtsVoicesEventTypes[];
extern const char kInvalidTtsVoicesGender[];
extern const char kInvalidTtsVoicesLang[];
extern const char kInvalidTtsVoicesRemote[];
extern const char kInvalidTtsVoicesVoiceName[];
extern const char kInvalidUpdateURL[];
extern const char kInvalidURLPatternError[];
extern const char kInvalidURLHandlers[];
extern const char kInvalidURLHandlerPatternElement[];
extern const char kInvalidURLHandlerTitle[];
extern const char kInvalidURLHandlerPattern[];
extern const char kInvalidVersion[];
extern const char kInvalidWebAccessibleResourcesList[];
extern const char kInvalidWebAccessibleResource[];
extern const char kInvalidWebview[];
extern const char kInvalidWebviewAccessibleResourcesList[];
extern const char kInvalidWebviewAccessibleResource[];
extern const char kInvalidWebviewPartition[];
extern const char kInvalidWebviewPartitionName[];
extern const char kInvalidWebviewPartitionsList[];
extern const char kInvalidWebURL[];
extern const char kInvalidWebURLs[];
extern const char kInvalidZipHash[];
extern const char kInsecureContentSecurityPolicy[];
extern const char kKeyIsDeprecatedWithReplacement[];
extern const char kLaunchPathAndExtentAreExclusive[];
extern const char kLaunchPathAndURLAreExclusive[];
extern const char kLaunchURLRequired[];
extern const char kLocalesInvalidLocale[];
extern const char kLocalesMessagesFileMissing[];
extern const char kLocalesNoDefaultLocaleSpecified[];
extern const char kLocalesNoDefaultMessages[];
extern const char kLocalesNoValidLocaleNamesListed[];
extern const char kLocalesTreeMissing[];
extern const char kManifestParseError[];
extern const char kManifestUnreadable[];
extern const char kMissingFile[];
extern const char kMultipleOverrides[];
extern const char kNoPermissionForMIMETypes[];
extern const char kNoWildCardsInPaths[];
extern const char kOneUISurfaceOnly[];
extern const char kPermissionMustBeOptional[];
extern const char kPermissionNotAllowed[];
extern const char kPermissionNotAllowedInManifest[];
extern const char kPermissionUnknownOrMalformed[];
extern const char kReservedMessageFound[];
extern const char kUnrecognizedManifestKey[];
extern const char kUnrecognizedManifestProperty[];
extern const char kScriptBadgeRequiresFlag[];
extern const char kScriptBadgeIconIgnored[];
extern const char kScriptBadgeTitleIgnored[];
extern const char kServiceWorkerRequiresFlag[];
extern const char kWebRequestConflictsWithLazyBackground[];
#if defined(OS_CHROMEOS)
extern const char kIllegalPlugins[];
#endif

}  // namespace manifest_errors

}  // namespace extensions

#endif  // EXTENSIONS_COMMON_MANIFEST_CONSTANTS_H_
