Home | History | Annotate | Download | only in extensions
      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
      3 // found in the LICENSE file.
      4 
      5 #ifndef CHROME_COMMON_EXTENSIONS_EXTENSION_CONSTANTS_H_
      6 #define CHROME_COMMON_EXTENSIONS_EXTENSION_CONSTANTS_H_
      7 #pragma once
      8 
      9 #include "base/basictypes.h"
     10 
     11 // Keys used in JSON representation of extensions.
     12 namespace extension_manifest_keys {
     13   extern const char* kAllFrames;
     14   extern const char* kApp;
     15   extern const char* kBackground;
     16   extern const char* kBrowserAction;
     17   extern const char* kBrowseURLs;
     18   extern const char* kChromeURLOverrides;
     19   extern const char* kContentScripts;
     20   extern const char* kConvertedFromUserScript;
     21   extern const char* kCss;
     22   extern const char* kCurrentLocale;
     23   extern const char* kDefaultLocale;
     24   extern const char* kDescription;
     25   extern const char* kDevToolsPage;
     26   extern const char* kExcludeGlobs;
     27   extern const char* kFileFilters;
     28   extern const char* kFileBrowserHandlers;
     29   extern const char* kHomepageURL;
     30   extern const char* kIcons;
     31   extern const char* kIncognito;
     32   extern const char* kIncludeGlobs;
     33   extern const char* kIsolation;
     34   extern const char* kJs;
     35   extern const char* kLaunch;
     36   extern const char* kLaunchContainer;
     37   extern const char* kLaunchHeight;
     38   extern const char* kLaunchLocalPath;
     39   extern const char* kLaunchWebURL;
     40   extern const char* kLaunchWidth;
     41   extern const char* kMatches;
     42   extern const char* kMinimumChromeVersion;
     43   extern const char* kNaClModules;
     44   extern const char* kNaClModulesMIMEType;
     45   extern const char* kNaClModulesPath;
     46   extern const char* kName;
     47   extern const char* kOmnibox;
     48   extern const char* kOmniboxKeyword;
     49   extern const char* kOptionsPage;
     50   extern const char* kPageAction;
     51   extern const char* kPageActionDefaultIcon;
     52   extern const char* kPageActionDefaultPopup;
     53   extern const char* kPageActionDefaultTitle;
     54   extern const char* kPageActionIcons;
     55   extern const char* kPageActionId;
     56   extern const char* kPageActionPopup;
     57   extern const char* kPageActionPopupHeight;
     58   extern const char* kPageActionPopupPath;
     59   extern const char* kPageActions;
     60   extern const char* kPermissions;
     61   extern const char* kPlugins;
     62   extern const char* kPluginsPath;
     63   extern const char* kPluginsPublic;
     64   extern const char* kPublicKey;
     65   extern const char* kRunAt;
     66   extern const char* kSidebar;
     67   extern const char* kSidebarDefaultIcon;
     68   extern const char* kSidebarDefaultPage;
     69   extern const char* kSidebarDefaultTitle;
     70   extern const char* kSignature;
     71   extern const char* kTheme;
     72   extern const char* kThemeColors;
     73   extern const char* kThemeDisplayProperties;
     74   extern const char* kThemeImages;
     75   extern const char* kThemeTints;
     76   extern const char* kToolstripPath;
     77   extern const char* kToolstrips;
     78   extern const char* kTts;
     79   extern const char* kTtsGenderFemale;
     80   extern const char* kTtsGenderMale;
     81   extern const char* kTtsVoices;
     82   extern const char* kTtsVoicesGender;
     83   extern const char* kTtsVoicesLocale;
     84   extern const char* kTtsVoicesVoiceName;
     85   extern const char* kType;
     86   extern const char* kUpdateURL;
     87   extern const char* kVersion;
     88   extern const char* kWebURLs;
     89 }  // namespace extension_manifest_keys
     90 
     91 // Some values expected in manifests.
     92 namespace extension_manifest_values {
     93   extern const char* kIncognitoSplit;
     94   extern const char* kIncognitoSpanning;
     95   extern const char* kIsolatedStorage;
     96   extern const char* kLaunchContainerPanel;
     97   extern const char* kLaunchContainerTab;
     98   extern const char* kLaunchContainerWindow;
     99   extern const char* kPageActionTypePermanent;
    100   extern const char* kPageActionTypeTab;
    101   extern const char* kRunAtDocumentEnd;
    102   extern const char* kRunAtDocumentIdle;
    103   extern const char* kRunAtDocumentStart;
    104 }  // namespace extension_manifest_values
    105 
    106 // Error messages returned from Extension::InitFromValue().
    107 namespace extension_manifest_errors {
    108   extern const char* kAppsNotEnabled;
    109   extern const char* kBackgroundPermissionNeeded;
    110   extern const char* kCannotAccessPage;
    111   extern const char* kCannotClaimAllHostsInExtent;
    112   extern const char* kCannotClaimAllURLsInExtent;
    113   extern const char* kCannotScriptGallery;
    114   extern const char* kCannotUninstallManagedExtension;
    115   extern const char* kChromeVersionTooLow;
    116   extern const char* kDevToolsExperimental;
    117   extern const char* kDisabledByPolicy;
    118   extern const char* kExperimentalFlagRequired;
    119   extern const char* kExperimentalFeature;
    120   extern const char* kExpectString;
    121   extern const char* kHostedAppsCannotIncludeExtensionFeatures;
    122   extern const char* kInvalidAllFrames;
    123   extern const char* kInvalidBackground;
    124   extern const char* kInvalidBackgroundInHostedApp;
    125   extern const char* kInvalidBrowserAction;
    126   extern const char* kInvalidBrowseURL;
    127   extern const char* kInvalidBrowseURLs;
    128   extern const char* kInvalidChromeURLOverrides;
    129   extern const char* kInvalidContentScript;
    130   extern const char* kInvalidContentScriptsList;
    131   extern const char* kInvalidCss;
    132   extern const char* kInvalidCssList;
    133   extern const char* kInvalidDefaultLocale;
    134   extern const char* kInvalidDescription;
    135   extern const char* kInvalidDevToolsPage;
    136   extern const char* kInvalidFileBrowserHandler;
    137   extern const char* kInvalidFileFiltersList;
    138   extern const char* kInvalidFileFilterValue;
    139   extern const char* kInvalidGlob;
    140   extern const char* kInvalidGlobList;
    141   extern const char* kInvalidHomepageURL;
    142   extern const char* kInvalidIconPath;
    143   extern const char* kInvalidIcons;
    144   extern const char* kInvalidIncognitoBehavior;
    145   extern const char* kInvalidIsolation;
    146   extern const char* kInvalidIsolationValue;
    147   extern const char* kInvalidJs;
    148   extern const char* kInvalidJsList;
    149   extern const char* kInvalidKey;
    150   extern const char* kInvalidLaunchContainer;
    151   extern const char* kInvalidLaunchHeight;
    152   extern const char* kInvalidLaunchHeightContainer;
    153   extern const char* kInvalidLaunchLocalPath;
    154   extern const char* kInvalidLaunchWebURL;
    155   extern const char* kInvalidLaunchWidth;
    156   extern const char* kInvalidLaunchWidthContainer;
    157   extern const char* kInvalidManifest;
    158   extern const char* kInvalidMatch;
    159   extern const char* kInvalidMatchCount;
    160   extern const char* kInvalidMatches;
    161   extern const char* kInvalidMinimumChromeVersion;
    162   extern const char* kInvalidNaClModules;
    163   extern const char* kInvalidNaClModulesMIMEType;
    164   extern const char* kInvalidNaClModulesPath;
    165   extern const char* kInvalidName;
    166   extern const char* kInvalidOmniboxKeyword;
    167   extern const char* kInvalidOptionsPage;
    168   extern const char* kInvalidOptionsPageExpectUrlInPackage;
    169   extern const char* kInvalidOptionsPageInHostedApp;
    170   extern const char* kInvalidPageAction;
    171   extern const char* kInvalidPageActionDefaultTitle;
    172   extern const char* kInvalidPageActionIconPath;
    173   extern const char* kInvalidPageActionId;
    174   extern const char* kInvalidPageActionName;
    175   extern const char* kInvalidPageActionOldAndNewKeys;
    176   extern const char* kInvalidPageActionPopup;
    177   extern const char* kInvalidPageActionPopupHeight;
    178   extern const char* kInvalidPageActionPopupPath;
    179   extern const char* kInvalidPageActionsList;
    180   extern const char* kInvalidPageActionsListSize;
    181   extern const char* kInvalidPageActionTypeValue;
    182   extern const char* kInvalidPermission;
    183   extern const char* kInvalidPermissions;
    184   extern const char* kInvalidPermissionScheme;
    185   extern const char* kInvalidPlugins;
    186   extern const char* kInvalidPluginsPath;
    187   extern const char* kInvalidPluginsPublic;
    188   extern const char* kInvalidRunAt;
    189   extern const char* kInvalidSidebar;
    190   extern const char* kInvalidSidebarDefaultIconPath;
    191   extern const char* kInvalidSidebarDefaultPage;
    192   extern const char* kInvalidSidebarDefaultTitle;
    193   extern const char* kInvalidSignature;
    194   extern const char* kInvalidTheme;
    195   extern const char* kInvalidThemeColors;
    196   extern const char* kInvalidThemeImages;
    197   extern const char* kInvalidThemeImagesMissing;
    198   extern const char* kInvalidThemeTints;
    199   extern const char* kInvalidToolstrip;
    200   extern const char* kInvalidToolstrips;
    201   extern const char* kInvalidTts;
    202   extern const char* kInvalidTtsVoices;
    203   extern const char* kInvalidTtsVoicesGender;
    204   extern const char* kInvalidTtsVoicesLocale;
    205   extern const char* kInvalidTtsVoicesVoiceName;
    206   extern const char* kInvalidUpdateURL;
    207   extern const char* kInvalidURLPatternError;
    208   extern const char* kInvalidVersion;
    209   extern const char* kInvalidWebURL;
    210   extern const char* kInvalidWebURLs;
    211   extern const char* kInvalidZipHash;
    212   extern const char* kLaunchPathAndURLAreExclusive;
    213   extern const char* kLaunchURLRequired;
    214   extern const char* kLocalesMessagesFileMissing;
    215   extern const char* kLocalesNoDefaultLocaleSpecified;
    216   extern const char* kLocalesNoDefaultMessages;
    217   extern const char* kLocalesNoValidLocaleNamesListed;
    218   extern const char* kLocalesTreeMissing;
    219   extern const char* kManifestParseError;
    220   extern const char* kManifestUnreadable;
    221   extern const char* kMissingFile;
    222   extern const char* kMultipleOverrides;
    223   extern const char* kNoWildCardsInPaths;
    224   extern const char* kOneUISurfaceOnly;
    225   extern const char* kReservedMessageFound;
    226   extern const char* kSidebarExperimental;
    227   extern const char* kThemesCannotContainExtensions;
    228   extern const char* kWebContentMustBeEnabled;
    229 #if defined(OS_CHROMEOS)
    230   extern const char* kIllegalPlugins;
    231 #endif
    232 }  // namespace extension_manifest_errors
    233 
    234 namespace extension_urls {
    235   // The greatest common prefixes of the main extensions gallery's browse and
    236   // download URLs.
    237   extern const char* kGalleryBrowsePrefix;
    238 
    239   // Same thing for the "minigallery". The minigallery is the temporary static
    240   // themes gallery that we put up when we launched themes.
    241   extern const char* kMiniGalleryBrowsePrefix;
    242   extern const char* kMiniGalleryDownloadPrefix;
    243 }  // namespace extension_urls
    244 
    245 namespace extension_filenames {
    246   // The name of a temporary directory to install an extension into for
    247   // validation before finalizing install.
    248   extern const char* kTempExtensionName;
    249 
    250   // The file to write our decoded images to, relative to the extension_path.
    251   extern const char* kDecodedImagesFilename;
    252 
    253   // The file to write our decoded message catalogs to, relative to the
    254   // extension_path.
    255   extern const char* kDecodedMessageCatalogsFilename;
    256 }
    257 
    258 namespace extension_misc {
    259   const int kUnknownWindowId = -1;
    260 
    261   // The extension id of the bookmark manager.
    262   extern const char* kBookmarkManagerId;
    263 
    264   // The extension id of the Web Store component application.
    265   extern const char* kWebStoreAppId;
    266 
    267   // Note: this structure is an ASN.1 which encodes the algorithm used
    268   // with its parameters. This is defined in PKCS #1 v2.1 (RFC 3447).
    269   // It is encoding: { OID sha1WithRSAEncryption      PARAMETERS NULL }
    270   const uint8 kSignatureAlgorithm[15] = {
    271     0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86,
    272     0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00
    273   };
    274 
    275   // Don't remove items or change the order of this enum.  It's used in
    276   // histograms and preferences.
    277   enum LaunchContainer {
    278     LAUNCH_WINDOW,
    279     LAUNCH_PANEL,
    280     LAUNCH_TAB
    281   };
    282 
    283   // The name of the apps promo histogram.
    284   extern const char* kAppsPromoHistogram;
    285 
    286   // The buckets used in the apps promo histogram.
    287   enum AppsPromoBuckets {
    288     PROMO_LAUNCH_APP,
    289     PROMO_LAUNCH_WEB_STORE,
    290     PROMO_CLOSE,
    291     PROMO_EXPIRE,
    292     PROMO_SEEN,
    293     PROMO_BUCKET_BOUNDARY
    294   };
    295 
    296   // The name of the app launch histogram.
    297   extern const char* kAppLaunchHistogram;
    298 
    299   // The buckets used for app launches.
    300   enum AppLaunchBucket {
    301     // Launch from NTP apps section while maximized.
    302     APP_LAUNCH_NTP_APPS_MAXIMIZED,
    303 
    304     // Launch from NTP apps section while collapsed.
    305     APP_LAUNCH_NTP_APPS_COLLAPSED,
    306 
    307     // Launch from NTP apps section while in menu mode.
    308     APP_LAUNCH_NTP_APPS_MENU,
    309 
    310     // Launch from NTP most visited section in any mode.
    311     APP_LAUNCH_NTP_MOST_VISITED,
    312 
    313     // Launch from NTP recently closed section in any mode.
    314     APP_LAUNCH_NTP_RECENTLY_CLOSED,
    315 
    316     // App link clicked from bookmark bar.
    317     APP_LAUNCH_BOOKMARK_BAR,
    318 
    319     // Nvigated to an app from within a web page (like by clicking a link).
    320     APP_LAUNCH_CONTENT_NAVIGATION,
    321 
    322     // Launch from session restore.
    323     APP_LAUNCH_SESSION_RESTORE,
    324 
    325     // Autolaunched at startup, like for pinned tabs.
    326     APP_LAUNCH_AUTOLAUNCH,
    327 
    328     // Launched from omnibox app links (not implemented yet).
    329     APP_LAUNCH_OMNIBOX_APP,
    330 
    331     // App URL typed directly into the omnibox (w/ instant turned off).
    332     APP_LAUNCH_OMNIBOX_LOCATION,
    333 
    334     // Navigate to an app URL via instant.
    335     APP_LAUNCH_OMNIBOX_INSTANT,
    336 
    337     // Launch via chrome.management.launchApp.
    338     APP_LAUNCH_EXTENSION_API,
    339 
    340     // Launch using the --app or --app-id cmd line options.
    341     APP_LAUNCH_CMD_LINE_APP,
    342 
    343     // App launch by passing the URL on the cmd line (not using app switches).
    344     APP_LAUNCH_CMD_LINE_URL,
    345 
    346     // User clicked web store launcher on NTP.
    347     APP_LAUNCH_NTP_WEBSTORE,
    348 
    349     // App launched after the user re-enabled it on the NTP.
    350     APP_LAUNCH_NTP_APP_RE_ENABLE,
    351 
    352     // URL launched using the --app cmd line option, but the URL does not
    353     // correspond to an installed app. These launches are left over from a
    354     // feature that let you make desktop shortcuts from the file menu.
    355     APP_LAUNCH_CMD_LINE_APP_LEGACY,
    356 
    357     APP_LAUNCH_BUCKET_BOUNDARY,
    358     APP_LAUNCH_BUCKET_INVALID
    359   };
    360 
    361 #if defined(OS_CHROMEOS)
    362   // The directory path on a ChromeOS device where accessibility extensions are
    363   // stored.
    364   extern const char* kAccessExtensionPath;
    365 #endif
    366 }  // extension_misc
    367 
    368 #endif  // CHROME_COMMON_EXTENSIONS_EXTENSION_CONSTANTS_H_
    369