// 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.
#ifndef CHROME_COMMON_EXTENSIONS_EXTENSION_CONSTANTS_H_
#define CHROME_COMMON_EXTENSIONS_EXTENSION_CONSTANTS_H_
#pragma once
#include "base/basictypes.h"
// Keys used in JSON representation of extensions.
namespace extension_manifest_keys {
extern const char* kAllFrames;
extern const char* kApp;
extern const char* kBackground;
extern const char* kBrowserAction;
extern const char* kBrowseURLs;
extern const char* kChromeURLOverrides;
extern const char* kContentScripts;
extern const char* kConvertedFromUserScript;
extern const char* kCss;
extern const char* kCurrentLocale;
extern const char* kDefaultLocale;
extern const char* kDescription;
extern const char* kDevToolsPage;
extern const char* kExcludeGlobs;
extern const char* kFileFilters;
extern const char* kFileBrowserHandlers;
extern const char* kHomepageURL;
extern const char* kIcons;
extern const char* kIncognito;
extern const char* kIncludeGlobs;
extern const char* kIsolation;
extern const char* kJs;
extern const char* kLaunch;
extern const char* kLaunchContainer;
extern const char* kLaunchHeight;
extern const char* kLaunchLocalPath;
extern const char* kLaunchWebURL;
extern const char* kLaunchWidth;
extern const char* kMatches;
extern const char* kMinimumChromeVersion;
extern const char* kNaClModules;
extern const char* kNaClModulesMIMEType;
extern const char* kNaClModulesPath;
extern const char* kName;
extern const char* kOmnibox;
extern const char* kOmniboxKeyword;
extern const char* kOptionsPage;
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* kPageActionPopupHeight;
extern const char* kPageActionPopupPath;
extern const char* kPageActions;
extern const char* kPermissions;
extern const char* kPlugins;
extern const char* kPluginsPath;
extern const char* kPluginsPublic;
extern const char* kPublicKey;
extern const char* kRunAt;
extern const char* kSidebar;
extern const char* kSidebarDefaultIcon;
extern const char* kSidebarDefaultPage;
extern const char* kSidebarDefaultTitle;
extern const char* kSignature;
extern const char* kTheme;
extern const char* kThemeColors;
extern const char* kThemeDisplayProperties;
extern const char* kThemeImages;
extern const char* kThemeTints;
extern const char* kToolstripPath;
extern const char* kToolstrips;
extern const char* kTts;
extern const char* kTtsGenderFemale;
extern const char* kTtsGenderMale;
extern const char* kTtsVoices;
extern const char* kTtsVoicesGender;
extern const char* kTtsVoicesLocale;
extern const char* kTtsVoicesVoiceName;
extern const char* kType;
extern const char* kUpdateURL;
extern const char* kVersion;
extern const char* kWebURLs;
} // namespace extension_manifest_keys
// Some values expected in manifests.
namespace extension_manifest_values {
extern const char* kIncognitoSplit;
extern const char* kIncognitoSpanning;
extern const char* kIsolatedStorage;
extern const char* kLaunchContainerPanel;
extern const char* kLaunchContainerTab;
extern const char* kLaunchContainerWindow;
extern const char* kPageActionTypePermanent;
extern const char* kPageActionTypeTab;
extern const char* kRunAtDocumentEnd;
extern const char* kRunAtDocumentIdle;
extern const char* kRunAtDocumentStart;
} // namespace extension_manifest_values
// Error messages returned from Extension::InitFromValue().
namespace extension_manifest_errors {
extern const char* kAppsNotEnabled;
extern const char* kBackgroundPermissionNeeded;
extern const char* kCannotAccessPage;
extern const char* kCannotClaimAllHostsInExtent;
extern const char* kCannotClaimAllURLsInExtent;
extern const char* kCannotScriptGallery;
extern const char* kCannotUninstallManagedExtension;
extern const char* kChromeVersionTooLow;
extern const char* kDevToolsExperimental;
extern const char* kDisabledByPolicy;
extern const char* kExperimentalFlagRequired;
extern const char* kExperimentalFeature;
extern const char* kExpectString;
extern const char* kHostedAppsCannotIncludeExtensionFeatures;
extern const char* kInvalidAllFrames;
extern const char* kInvalidBackground;
extern const char* kInvalidBackgroundInHostedApp;
extern const char* kInvalidBrowserAction;
extern const char* kInvalidBrowseURL;
extern const char* kInvalidBrowseURLs;
extern const char* kInvalidChromeURLOverrides;
extern const char* kInvalidContentScript;
extern const char* kInvalidContentScriptsList;
extern const char* kInvalidCss;
extern const char* kInvalidCssList;
extern const char* kInvalidDefaultLocale;
extern const char* kInvalidDescription;
extern const char* kInvalidDevToolsPage;
extern const char* kInvalidFileBrowserHandler;
extern const char* kInvalidFileFiltersList;
extern const char* kInvalidFileFilterValue;
extern const char* kInvalidGlob;
extern const char* kInvalidGlobList;
extern const char* kInvalidHomepageURL;
extern const char* kInvalidIconPath;
extern const char* kInvalidIcons;
extern const char* kInvalidIncognitoBehavior;
extern const char* kInvalidIsolation;
extern const char* kInvalidIsolationValue;
extern const char* kInvalidJs;
extern const char* kInvalidJsList;
extern const char* kInvalidKey;
extern const char* kInvalidLaunchContainer;
extern const char* kInvalidLaunchHeight;
extern const char* kInvalidLaunchHeightContainer;
extern const char* kInvalidLaunchLocalPath;
extern const char* kInvalidLaunchWebURL;
extern const char* kInvalidLaunchWidth;
extern const char* kInvalidLaunchWidthContainer;
extern const char* kInvalidManifest;
extern const char* kInvalidMatch;
extern const char* kInvalidMatchCount;
extern const char* kInvalidMatches;
extern const char* kInvalidMinimumChromeVersion;
extern const char* kInvalidNaClModules;
extern const char* kInvalidNaClModulesMIMEType;
extern const char* kInvalidNaClModulesPath;
extern const char* kInvalidName;
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* kInvalidPermission;
extern const char* kInvalidPermissions;
extern const char* kInvalidPermissionScheme;
extern const char* kInvalidPlugins;
extern const char* kInvalidPluginsPath;
extern const char* kInvalidPluginsPublic;
extern const char* kInvalidRunAt;
extern const char* kInvalidSidebar;
extern const char* kInvalidSidebarDefaultIconPath;
extern const char* kInvalidSidebarDefaultPage;
extern const char* kInvalidSidebarDefaultTitle;
extern const char* kInvalidSignature;
extern const char* kInvalidTheme;
extern const char* kInvalidThemeColors;
extern const char* kInvalidThemeImages;
extern const char* kInvalidThemeImagesMissing;
extern const char* kInvalidThemeTints;
extern const char* kInvalidToolstrip;
extern const char* kInvalidToolstrips;
extern const char* kInvalidTts;
extern const char* kInvalidTtsVoices;
extern const char* kInvalidTtsVoicesGender;
extern const char* kInvalidTtsVoicesLocale;
extern const char* kInvalidTtsVoicesVoiceName;
extern const char* kInvalidUpdateURL;
extern const char* kInvalidURLPatternError;
extern const char* kInvalidVersion;
extern const char* kInvalidWebURL;
extern const char* kInvalidWebURLs;
extern const char* kInvalidZipHash;
extern const char* kLaunchPathAndURLAreExclusive;
extern const char* kLaunchURLRequired;
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* kNoWildCardsInPaths;
extern const char* kOneUISurfaceOnly;
extern const char* kReservedMessageFound;
extern const char* kSidebarExperimental;
extern const char* kThemesCannotContainExtensions;
extern const char* kWebContentMustBeEnabled;
#if defined(OS_CHROMEOS)
extern const char* kIllegalPlugins;
#endif
} // namespace extension_manifest_errors
namespace extension_urls {
// The greatest common prefixes of the main extensions gallery's browse and
// download URLs.
extern const char* kGalleryBrowsePrefix;
// Same thing for the "minigallery". The minigallery is the temporary static
// themes gallery that we put up when we launched themes.
extern const char* kMiniGalleryBrowsePrefix;
extern const char* kMiniGalleryDownloadPrefix;
} // namespace extension_urls
namespace extension_filenames {
// The name of a temporary directory to install an extension into for
// validation before finalizing install.
extern const char* kTempExtensionName;
// The file to write our decoded images to, relative to the extension_path.
extern const char* kDecodedImagesFilename;
// The file to write our decoded message catalogs to, relative to the
// extension_path.
extern const char* kDecodedMessageCatalogsFilename;
}
namespace extension_misc {
const int kUnknownWindowId = -1;
// The extension id of the bookmark manager.
extern const char* kBookmarkManagerId;
// The extension id of the Web Store component application.
extern const char* kWebStoreAppId;
// Note: this structure is an ASN.1 which encodes the algorithm used
// with its parameters. This is defined in PKCS #1 v2.1 (RFC 3447).
// It is encoding: { OID sha1WithRSAEncryption PARAMETERS NULL }
const uint8 kSignatureAlgorithm[15] = {
0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86,
0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00
};
// Don't remove items or change the order of this enum. It's used in
// histograms and preferences.
enum LaunchContainer {
LAUNCH_WINDOW,
LAUNCH_PANEL,
LAUNCH_TAB
};
// The name of the apps promo histogram.
extern const char* kAppsPromoHistogram;
// The buckets used in the apps promo histogram.
enum AppsPromoBuckets {
PROMO_LAUNCH_APP,
PROMO_LAUNCH_WEB_STORE,
PROMO_CLOSE,
PROMO_EXPIRE,
PROMO_SEEN,
PROMO_BUCKET_BOUNDARY
};
// The name of the app launch histogram.
extern const char* kAppLaunchHistogram;
// The buckets used for app launches.
enum AppLaunchBucket {
// Launch from NTP apps section while maximized.
APP_LAUNCH_NTP_APPS_MAXIMIZED,
// Launch from NTP apps section while collapsed.
APP_LAUNCH_NTP_APPS_COLLAPSED,
// Launch from NTP apps section while in menu mode.
APP_LAUNCH_NTP_APPS_MENU,
// Launch from NTP most visited section in any mode.
APP_LAUNCH_NTP_MOST_VISITED,
// Launch from NTP recently closed section in any mode.
APP_LAUNCH_NTP_RECENTLY_CLOSED,
// App link clicked from bookmark bar.
APP_LAUNCH_BOOKMARK_BAR,
// Nvigated to an app from within a web page (like by clicking a link).
APP_LAUNCH_CONTENT_NAVIGATION,
// Launch from session restore.
APP_LAUNCH_SESSION_RESTORE,
// Autolaunched at startup, like for pinned tabs.
APP_LAUNCH_AUTOLAUNCH,
// Launched from omnibox app links (not implemented yet).
APP_LAUNCH_OMNIBOX_APP,
// App URL typed directly into the omnibox (w/ instant turned off).
APP_LAUNCH_OMNIBOX_LOCATION,
// Navigate to an app URL via instant.
APP_LAUNCH_OMNIBOX_INSTANT,
// Launch via chrome.management.launchApp.
APP_LAUNCH_EXTENSION_API,
// Launch using the --app or --app-id cmd line options.
APP_LAUNCH_CMD_LINE_APP,
// App launch by passing the URL on the cmd line (not using app switches).
APP_LAUNCH_CMD_LINE_URL,
// User clicked web store launcher on NTP.
APP_LAUNCH_NTP_WEBSTORE,
// App launched after the user re-enabled it on the NTP.
APP_LAUNCH_NTP_APP_RE_ENABLE,
// URL launched using the --app cmd line option, but the URL does not
// correspond to an installed app. These launches are left over from a
// feature that let you make desktop shortcuts from the file menu.
APP_LAUNCH_CMD_LINE_APP_LEGACY,
APP_LAUNCH_BUCKET_BOUNDARY,
APP_LAUNCH_BUCKET_INVALID
};
#if defined(OS_CHROMEOS)
// The directory path on a ChromeOS device where accessibility extensions are
// stored.
extern const char* kAccessExtensionPath;
#endif
} // extension_misc
#endif // CHROME_COMMON_EXTENSIONS_EXTENSION_CONSTANTS_H_