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 // This returns the compile-time constant webstore update url specific to 16 // Chrome. Usually you should prefer using GetWebstoreUpdateUrl. 17 GURL GetDefaultWebstoreUpdateUrl(); 18 19 // Field to use with webstore URL for tracking launch source. 20 extern const char kWebstoreSourceField[]; 21 22 // Values to use with webstore URL launch source field. 23 extern const char kLaunchSourceAppList[]; 24 extern const char kLaunchSourceAppListSearch[]; 25 extern const char kLaunchSourceAppListInfoDialog[]; 26 27 } // namespace extension_urls 28 29 namespace extension_misc { 30 31 // The extension id of the bookmark manager. 32 extern const char kBookmarkManagerId[]; 33 34 // The extension id of the Chrome component application. 35 extern const char kChromeAppId[]; 36 37 // The extension id of the Cloud Print component application. 38 extern const char kCloudPrintAppId[]; 39 40 // The extension id of the Easy Unlock component application. 41 extern const char kEasyUnlockAppId[]; 42 43 // The extension id of the Enterprise Web Store component application. 44 extern const char kEnterpriseWebStoreAppId[]; 45 46 // The extension id of GMail application. 47 extern const char kGmailAppId[]; 48 49 // The extension id of the Google Doc application. 50 extern const char kGoogleDocAppId[]; 51 52 // The extension id of the Google Play Music application. 53 extern const char kGooglePlayMusicAppId[]; 54 55 // The extension id of the Google Search application. 56 extern const char kGoogleSearchAppId[]; 57 58 // The extension id of the Google Sheets application. 59 extern const char kGoogleSheetsAppId[]; 60 61 // The extension id of the Google Slides application. 62 extern const char kGoogleSlidesAppId[]; 63 64 // The extension id of the HTerm app for ChromeOS. 65 extern const char kHTermAppId[]; 66 67 // The extension id of the HTerm dev app for ChromeOS. 68 extern const char kHTermDevAppId[]; 69 70 // The extension id of the Identity API UI application. 71 extern const char kIdentityApiUiAppId[]; 72 73 // The extension id of the Crosh component app for ChromeOS. 74 extern const char kCroshBuiltinAppId[]; 75 76 // The extension id of the hotword audio verification dialogue app. 77 extern const char kHotwordAudioVerificationAppId[]; 78 79 // The extension id of the hotword voice search trigger extension. 80 extern const char kHotwordExtensionId[]; 81 82 // The extension id of the hotword shared module. 83 extern const char kHotwordSharedModuleId[]; 84 85 // The extension id of the PDF extension. 86 extern const char kPdfExtensionId[]; 87 88 // The extension id of the Office Viewer component extension. 89 extern const char kQuickOfficeComponentExtensionId[]; 90 91 // The extension id of the Office Viewer extension on the internal webstore. 92 extern const char kQuickOfficeInternalExtensionId[]; 93 94 // The extension id of the Office Viewer extension. 95 extern const char kQuickOfficeExtensionId[]; 96 97 // The extension id of the settings application. 98 extern const char kSettingsAppId[]; 99 100 // The extension id used for testing streamsPrivate 101 extern const char kStreamsPrivateTestExtensionId[]; 102 103 // The extension id of the Youtube application. 104 extern const char kYoutubeAppId[]; 105 106 // The extension id of the in-app payments support application. 107 extern const char kInAppPaymentsSupportAppId[]; 108 109 // The name of the app launch histogram. 110 extern const char kAppLaunchHistogram[]; 111 112 // The name of the app launch histogram for platform apps. 113 extern const char kPlatformAppLaunchHistogram[]; 114 115 // The buckets used for app launches. 116 enum 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. 202 extern const char kChromeVoxExtensionId[]; 203 204 #if defined(OS_CHROMEOS) 205 // Path to preinstalled ChromeVox screen reader extension (relative to 206 // |chrome::DIR_RESOURCES|). 207 extern const char kChromeVoxExtensionPath[]; 208 // Name of ChromeVox manifest file. 209 extern const char kChromeVoxManifestFilename[]; 210 // Name of ChromeVox guest manifest file. 211 extern const char kChromeVoxGuestManifestFilename[]; 212 // Name of ChromeVox next manifest file. 213 extern const char kChromeVoxNextManifestFilename[]; 214 // Name of ChromeVox next guest manifest file. 215 extern const char kChromeVoxNextGuestManifestFilename[]; 216 // Extension id, path (relative to |chrome::DIR_RESOURCES|) and IME engine 217 // id for the builtin-in Braille IME extension. 218 extern const char kBrailleImeExtensionId[]; 219 extern const char kBrailleImeExtensionPath[]; 220 extern const char kBrailleImeEngineId[]; 221 // Path to preinstalled Connectivity Diagnostics extension. 222 extern const char kConnectivityDiagnosticsPath[]; 223 extern const char kConnectivityDiagnosticsKioskPath[]; 224 extern const char kConnectivityDiagnosticsLauncherPath[]; 225 // Path to preinstalled speech synthesis extension. 226 extern const char kSpeechSynthesisExtensionPath[]; 227 // The extension id of the speech synthesis extension. 228 extern const char kSpeechSynthesisExtensionId[]; 229 // The extension id of the wallpaper manager application. 230 extern const char kWallpaperManagerId[]; 231 // The extension id of the first run dialog application. 232 extern const char kFirstRunDialogId[]; 233 #endif 234 235 // What causes an extension to be installed? Used in histograms, so don't 236 // change existing values. 237 enum 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. 248 extern const char kAppStateNotInstalled[]; 249 extern const char kAppStateInstalled[]; 250 extern const char kAppStateDisabled[]; 251 extern const char kAppStateRunning[]; 252 extern const char kAppStateCannotRun[]; 253 extern const char kAppStateReadyToRun[]; 254 255 // The path part of the file system url used for media file systems. 256 extern const char kMediaFileSystemPathPart[]; 257 258 // The key used for signing some pieces of data from the webstore. 259 extern const uint8 kWebstoreSignaturesPublicKey[]; 260 extern const int kWebstoreSignaturesPublicKeySize; 261 262 } // namespace extension_misc 263 264 namespace 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. 270 enum 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. 287 enum 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