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