Home | History | Annotate | Download | only in extensions
      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 #ifndef CHROME_COMMON_EXTENSIONS_EXTENSION_CONSTANTS_H_
      6 #define CHROME_COMMON_EXTENSIONS_EXTENSION_CONSTANTS_H_
      7 
      8 #include <string>
      9 
     10 #include "base/basictypes.h"
     11 #include "url/gurl.h"
     12 
     13 namespace extension_urls {
     14 
     15 // Returns the URL prefix for the extension/apps gallery. Can be set via the
     16 // --apps-gallery-url switch. The URL returned will not contain a trailing
     17 // slash. Do not use this as a prefix/extent for the store.
     18 std::string GetWebstoreLaunchURL();
     19 
     20 // Returns the URL to the extensions category on the Web Store. This is
     21 // derived from GetWebstoreLaunchURL().
     22 std::string GetExtensionGalleryURL();
     23 
     24 // Returns the URL prefix for an item in the extension/app gallery. This URL
     25 // will contain a trailing slash and should be concatenated with an item ID
     26 // to get the item detail URL.
     27 std::string GetWebstoreItemDetailURLPrefix();
     28 
     29 // Returns the URL used to get webstore data (ratings, manifest, icon URL,
     30 // etc.) about an extension from the webstore as JSON.
     31 GURL GetWebstoreItemJsonDataURL(const std::string& extension_id);
     32 
     33 // Returns the URL used to get webstore search results in JSON format. The URL
     34 // returns a JSON dictionary that has the search results (under "results").
     35 // Each entry in the array is a dictionary as the data returned for
     36 // GetWebstoreItemJsonDataURL above. |query| is the user typed query string.
     37 // |hl| is the host language code, e.g. en_US. Both arguments will be escaped
     38 // and added as a query parameter to the returned web store json search URL.
     39 GURL GetWebstoreJsonSearchUrl(const std::string& query, const std::string& hl);
     40 
     41 // Returns the URL of the web store search results page for |query|.
     42 GURL GetWebstoreSearchPageUrl(const std::string& query);
     43 
     44 // Return the update URL used by gallery/webstore extensions/apps. This may
     45 // have been overridden by a command line flag for testing purposes.
     46 GURL GetWebstoreUpdateUrl();
     47 
     48 // This returns the compile-time constant webstore update url. Usually you
     49 // should prefer using GetWebstoreUpdateUrl.
     50 GURL GetDefaultWebstoreUpdateUrl();
     51 
     52 // Returns whether the URL is the webstore update URL (just considering host
     53 // and path, not scheme, query, etc.)
     54 bool IsWebstoreUpdateUrl(const GURL& update_url);
     55 
     56 // Returns true if the URL points to an extension blacklist.
     57 bool IsBlacklistUpdateUrl(const GURL& url);
     58 // The greatest common prefixes of the main extensions gallery's browse and
     59 // download URLs.
     60 extern const char kGalleryBrowsePrefix[];
     61 
     62 // Field to use with webstore URL for tracking launch source.
     63 extern const char kWebstoreSourceField[];
     64 
     65 // Values to use with webstore URL launch source field.
     66 extern const char kLaunchSourceAppList[];
     67 extern const char kLaunchSourceAppListSearch[];
     68 extern const char kLaunchSourceAppListInfoDialog[];
     69 
     70 }  // namespace extension_urls
     71 
     72 namespace extension_misc {
     73 
     74 // The extension id of the bookmark manager.
     75 extern const char kBookmarkManagerId[];
     76 
     77 // The extension id of the Chrome component application.
     78 extern const char kChromeAppId[];
     79 
     80 // The extension id of the Cloud Print component application.
     81 extern const char kCloudPrintAppId[];
     82 
     83 // The extension id of the Easy Unlock component application.
     84 extern const char kEasyUnlockAppId[];
     85 
     86 // The extension id of the Enterprise Web Store component application.
     87 extern const char kEnterpriseWebStoreAppId[];
     88 
     89 // The extension id of GMail application.
     90 extern const char kGmailAppId[];
     91 
     92 // The extension id of the Google Doc application.
     93 extern const char kGoogleDocAppId[];
     94 
     95 // The extension id of the Google Play Music application.
     96 extern const char kGooglePlayMusicAppId[];
     97 
     98 // The extension id of the Google Search application.
     99 extern const char kGoogleSearchAppId[];
    100 
    101 // The extension id of the Google Sheets application.
    102 extern const char kGoogleSheetsAppId[];
    103 
    104 // The extension id of the Google Slides application.
    105 extern const char kGoogleSlidesAppId[];
    106 
    107 // The extension id of the HTerm app for ChromeOS.
    108 extern const char kHTermAppId[];
    109 
    110 // The extension id of the HTerm dev app for ChromeOS.
    111 extern const char kHTermDevAppId[];
    112 
    113 // The extension id of the Identity API UI application.
    114 extern const char kIdentityApiUiAppId[];
    115 
    116 // The extension id of the Crosh component app for ChromeOS.
    117 extern const char kCroshBuiltinAppId[];
    118 
    119 // The extension id of the hotword voice search trigger extension.
    120 extern const char kHotwordExtensionId[];
    121 
    122 // The extension id of the PDF extension.
    123 extern const char kPdfExtensionId[];
    124 
    125 // The extension id of the Office Viewer component extension.
    126 extern const char kQuickOfficeComponentExtensionId[];
    127 
    128 // The extension id of the Office Viewer extension on the internal webstore.
    129 extern const char kQuickOfficeInternalExtensionId[];
    130 
    131 // The extension id of the Office Viewer extension.
    132 extern const char kQuickOfficeExtensionId[];
    133 
    134 // The extension id of the settings application.
    135 extern const char kSettingsAppId[];
    136 
    137 // The extension id used for testing streamsPrivate
    138 extern const char kStreamsPrivateTestExtensionId[];
    139 
    140 // The extension id of the Web Store component application.
    141 extern const char kWebStoreAppId[];
    142 
    143 // The extension id of the Youtube application.
    144 extern const char kYoutubeAppId[];
    145 
    146 // The extension id of the in-app payments support application.
    147 extern const char kInAppPaymentsSupportAppId[];
    148 
    149 // The name of the app launch histogram.
    150 extern const char kAppLaunchHistogram[];
    151 
    152 // The name of the app launch histogram for platform apps.
    153 extern const char kPlatformAppLaunchHistogram[];
    154 
    155 // The buckets used for app launches.
    156 enum AppLaunchBucket {
    157   // Launch from NTP apps section while maximized.
    158   APP_LAUNCH_NTP_APPS_MAXIMIZED,
    159 
    160   // Launch from NTP apps section while collapsed.
    161   APP_LAUNCH_NTP_APPS_COLLAPSED,
    162 
    163   // Launch from NTP apps section while in menu mode.
    164   APP_LAUNCH_NTP_APPS_MENU,
    165 
    166   // Launch from NTP most visited section in any mode.
    167   APP_LAUNCH_NTP_MOST_VISITED,
    168 
    169   // Launch from NTP recently closed section in any mode.
    170   APP_LAUNCH_NTP_RECENTLY_CLOSED,
    171 
    172   // App link clicked from bookmark bar.
    173   APP_LAUNCH_BOOKMARK_BAR,
    174 
    175   // Nvigated to an app from within a web page (like by clicking a link).
    176   APP_LAUNCH_CONTENT_NAVIGATION,
    177 
    178   // Launch from session restore.
    179   APP_LAUNCH_SESSION_RESTORE,
    180 
    181   // Autolaunched at startup, like for pinned tabs.
    182   APP_LAUNCH_AUTOLAUNCH,
    183 
    184   // Launched from omnibox app links.
    185   APP_LAUNCH_OMNIBOX_APP,
    186 
    187   // App URL typed directly into the omnibox (w/ instant turned off).
    188   APP_LAUNCH_OMNIBOX_LOCATION,
    189 
    190   // Navigate to an app URL via instant.
    191   APP_LAUNCH_OMNIBOX_INSTANT,
    192 
    193   // Launch via chrome.management.launchApp.
    194   APP_LAUNCH_EXTENSION_API,
    195 
    196   // Launch an app via a shortcut. This includes using the --app or --app-id
    197   // command line arguments, or via an app shim process on Mac.
    198   APP_LAUNCH_CMD_LINE_APP,
    199 
    200   // App launch by passing the URL on the cmd line (not using app switches).
    201   APP_LAUNCH_CMD_LINE_URL,
    202 
    203   // User clicked web store launcher on NTP.
    204   APP_LAUNCH_NTP_WEBSTORE,
    205 
    206   // App launched after the user re-enabled it on the NTP.
    207   APP_LAUNCH_NTP_APP_RE_ENABLE,
    208 
    209   // URL launched using the --app cmd line option, but the URL does not
    210   // correspond to an installed app. These launches are left over from a
    211   // feature that let you make desktop shortcuts from the file menu.
    212   APP_LAUNCH_CMD_LINE_APP_LEGACY,
    213 
    214   // User clicked web store link on the NTP footer.
    215   APP_LAUNCH_NTP_WEBSTORE_FOOTER,
    216 
    217   // User clicked [+] icon in apps page.
    218   APP_LAUNCH_NTP_WEBSTORE_PLUS_ICON,
    219 
    220   // User clicked icon in app launcher main view.
    221   APP_LAUNCH_APP_LIST_MAIN,
    222 
    223   // User clicked app launcher search result.
    224   APP_LAUNCH_APP_LIST_SEARCH,
    225 
    226   // User clicked the chrome app icon from the app launcher's main view.
    227   APP_LAUNCH_APP_LIST_MAIN_CHROME,
    228 
    229   // User clicked the webstore icon from the app launcher's main view.
    230   APP_LAUNCH_APP_LIST_MAIN_WEBSTORE,
    231 
    232   // User clicked the chrome app icon from the app launcher's search view.
    233   APP_LAUNCH_APP_LIST_SEARCH_CHROME,
    234 
    235   // User clicked the webstore icon from the app launcher's search view.
    236   APP_LAUNCH_APP_LIST_SEARCH_WEBSTORE,
    237   APP_LAUNCH_BUCKET_BOUNDARY,
    238   APP_LAUNCH_BUCKET_INVALID
    239 };
    240 
    241 // The extension id of the ChromeVox extension.
    242 extern const char kChromeVoxExtensionId[];
    243 
    244 #if defined(OS_CHROMEOS)
    245 // Path to preinstalled ChromeVox screen reader extension (relative to
    246 // |chrome::DIR_RESOURCES|).
    247 extern const char kChromeVoxExtensionPath[];
    248 // Name of ChromeVox manifest file.
    249 extern const char kChromeVoxManifestFilename[];
    250 // Name of ChromeVox guest manifest file.
    251 extern const char kChromeVoxGuestManifestFilename[];
    252 // Extension id, path (relative to |chrome::DIR_RESOURCES|) and IME engine
    253 // id for the builtin-in Braille IME extension.
    254 extern const char kBrailleImeExtensionId[];
    255 extern const char kBrailleImeExtensionPath[];
    256 extern const char kBrailleImeEngineId[];
    257 // Path to preinstalled Connectivity Diagnostics extension.
    258 extern const char kConnectivityDiagnosticsPath[];
    259 extern const char kConnectivityDiagnosticsKioskPath[];
    260 extern const char kConnectivityDiagnosticsLauncherPath[];
    261 // Path to preinstalled speech synthesis extension.
    262 extern const char kSpeechSynthesisExtensionPath[];
    263 // The extension id of the speech synthesis extension.
    264 extern const char kSpeechSynthesisExtensionId[];
    265 // The extension id of the wallpaper manager application.
    266 extern const char kWallpaperManagerId[];
    267 // The extension id of the first run dialog application.
    268 extern const char kFirstRunDialogId[];
    269 #endif
    270 
    271 // What causes an extension to be installed? Used in histograms, so don't
    272 // change existing values.
    273 enum CrxInstallCause {
    274   INSTALL_CAUSE_UNSET = 0,
    275   INSTALL_CAUSE_USER_DOWNLOAD,
    276   INSTALL_CAUSE_UPDATE,
    277   INSTALL_CAUSE_EXTERNAL_FILE,
    278   INSTALL_CAUSE_AUTOMATION,
    279   NUM_INSTALL_CAUSES
    280 };
    281 
    282 // The states that an app can be in, as reported by chrome.app.installState
    283 // and chrome.app.runningState.
    284 extern const char kAppStateNotInstalled[];
    285 extern const char kAppStateInstalled[];
    286 extern const char kAppStateDisabled[];
    287 extern const char kAppStateRunning[];
    288 extern const char kAppStateCannotRun[];
    289 extern const char kAppStateReadyToRun[];
    290 
    291 // The path part of the file system url used for media file systems.
    292 extern const char kMediaFileSystemPathPart[];
    293 
    294 // The key used for signing some pieces of data from the webstore.
    295 extern const uint8 kWebstoreSignaturesPublicKey[];
    296 extern const int kWebstoreSignaturesPublicKeySize;
    297 
    298 }  // namespace extension_misc
    299 
    300 namespace extensions {
    301 
    302 // This enum is used for the launch type the user wants to use for an
    303 // application.
    304 // Do not remove items or re-order this enum as it is used in preferences
    305 // and histograms.
    306 enum LaunchType {
    307   LAUNCH_TYPE_INVALID = -1,
    308   LAUNCH_TYPE_FIRST = 0,
    309   LAUNCH_TYPE_PINNED = LAUNCH_TYPE_FIRST,
    310   LAUNCH_TYPE_REGULAR = 1,
    311   LAUNCH_TYPE_FULLSCREEN = 2,
    312   LAUNCH_TYPE_WINDOW = 3,
    313   NUM_LAUNCH_TYPES,
    314 
    315   // Launch an app in the in the way a click on the NTP would,
    316   // if no user pref were set.  Update this constant to change
    317   // the default for the NTP and chrome.management.launchApp().
    318   LAUNCH_TYPE_DEFAULT = LAUNCH_TYPE_REGULAR
    319 };
    320 
    321 // Don't remove items or change the order of this enum.  It's used in
    322 // histograms and preferences.
    323 enum LaunchContainer {
    324   LAUNCH_CONTAINER_WINDOW,
    325   LAUNCH_CONTAINER_PANEL,
    326   LAUNCH_CONTAINER_TAB,
    327   // For platform apps, which don't actually have a container (they just get a
    328   // "onLaunched" event).
    329   LAUNCH_CONTAINER_NONE
    330 };
    331 
    332 }  // namespace extensions
    333 
    334 #endif  // CHROME_COMMON_EXTENSIONS_EXTENSION_CONSTANTS_H_
    335