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 // Returns the URL prefix for the extension/apps gallery. Can be set via the 15 // --apps-gallery-url switch. The URL returned will not contain a trailing 16 // slash. Do not use this as a prefix/extent for the store. 17 std::string GetWebstoreLaunchURL(); 18 19 // Returns the URL to the extensions category on the Web Store. This is 20 // derived from GetWebstoreLaunchURL(). 21 std::string GetExtensionGalleryURL(); 22 23 // Returns the URL prefix for an item in the extension/app gallery. This URL 24 // will contain a trailing slash and should be concatenated with an item ID 25 // to get the item detail URL. 26 std::string GetWebstoreItemDetailURLPrefix(); 27 28 // Returns the URL used to get webstore data (ratings, manifest, icon URL, 29 // etc.) about an extension from the webstore as JSON. 30 GURL GetWebstoreItemJsonDataURL(const std::string& extension_id); 31 32 // Returns the URL used to get webstore search results in JSON format. The URL 33 // returns a JSON dictionary that has the search results (under "results"). 34 // Each entry in the array is a dictionary as the data returned for 35 // GetWebstoreItemJsonDataURL above. |query| is the user typed query string. 36 // |hl| is the host language code, e.g. en_US. Both arguments will be escaped 37 // and added as a query parameter to the returned web store json search URL. 38 GURL GetWebstoreJsonSearchUrl(const std::string& query, 39 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. 45 GURL GetWebstoreUpdateUrl(); 46 47 // Returns whether the URL is the webstore update URL (just considering host 48 // and path, not scheme, query, etc.) 49 bool IsWebstoreUpdateUrl(const GURL& update_url); 50 51 // Returns true if the URL points to an extension blacklist. 52 bool IsBlacklistUpdateUrl(const GURL& url); 53 54 // The greatest common prefixes of the main extensions gallery's browse and 55 // download URLs. 56 extern const char kGalleryBrowsePrefix[]; 57 } // namespace extension_urls 58 59 namespace extension_misc { 60 // Matches chrome.windows.WINDOW_ID_NONE. 61 const int kUnknownWindowId = -1; 62 63 // Matches chrome.windows.WINDOW_ID_CURRENT. 64 const int kCurrentWindowId = -2; 65 66 // The extension id of the bookmark manager. 67 extern const char kBookmarkManagerId[]; 68 69 // The extension id of the Chrome component application. 70 extern const char kChromeAppId[]; 71 72 // The extension id of the Citrix Receiver application. 73 extern const char kCitrixReceiverAppId[]; 74 75 // The extension id of the beta Citrix Receiver application. 76 extern const char kCitrixReceiverAppBetaId[]; 77 78 // The extension id of the dev Citrix Receiver application. 79 extern const char kCitrixReceiverAppDevId[]; 80 81 // The extension id of the Cloud Print component application. 82 extern const char kCloudPrintAppId[]; 83 84 // The extension id of the Enterprise Web Store component application. 85 extern const char kEnterpriseWebStoreAppId[]; 86 87 // The extension id of GMail application. 88 extern const char kGmailAppId[]; 89 90 // The extension id of the Google Doc application. 91 extern const char kGoogleDocAppId[]; 92 93 // The extension id of the Google Play Music application. 94 extern const char kGooglePlayMusicAppId[]; 95 96 // The extension id of the Google Search application. 97 extern const char kGoogleSearchAppId[]; 98 99 // The extension id of the Google Sheets application. 100 extern const char kGoogleSheetsAppId[]; 101 102 // The extension id of the Google Slides application. 103 extern const char kGoogleSlidesAppId[]; 104 105 // The extension id of the HTerm app for ChromeOS. 106 extern const char kHTermAppId[]; 107 108 // The extension id of the HTerm dev app for ChromeOS. 109 extern const char kHTermDevAppId[]; 110 111 // The extension id of the Crosh component app for ChromeOS. 112 extern const char kCroshBuiltinAppId[]; 113 114 // The extension id of the Office Viewer component extension. 115 extern const char kQuickOfficeComponentExtensionId[]; 116 117 // The extension id of the Office Viewer dev extension. 118 extern const char kQuickOfficeDevExtensionId[]; 119 120 // The extension id of the Office Viewer extension. 121 extern const char kQuickOfficeExtensionId[]; 122 123 // The extension id of the settings application. 124 extern const char kSettingsAppId[]; 125 126 // The extension id used for testing streamsPrivate 127 extern const char kStreamsPrivateTestExtensionId[]; 128 129 // The extension id of the Web Store component application. 130 extern const char kWebStoreAppId[]; 131 132 // The extension id of the Youtube application. 133 extern const char kYoutubeAppId[]; 134 135 // The extension id of the Identity API UI application. 136 extern const char kIdentityApiUiAppId[]; 137 138 // The extension id of the in-app payments support application. 139 extern const char kInAppPaymentsSupportAppId[]; 140 141 // Note: this structure is an ASN.1 which encodes the algorithm used 142 // with its parameters. This is defined in PKCS #1 v2.1 (RFC 3447). 143 // It is encoding: { OID sha1WithRSAEncryption PARAMETERS NULL } 144 const uint8 kSignatureAlgorithm[15] = { 145 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 146 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00 147 }; 148 149 // Don't remove items or change the order of this enum. It's used in 150 // histograms and preferences. 151 enum LaunchContainer { 152 LAUNCH_WINDOW, 153 LAUNCH_PANEL, 154 LAUNCH_TAB, 155 // For platform apps, which don't actually have a container (they just get a 156 // "onLaunched" event). 157 LAUNCH_NONE 158 }; 159 160 // The name of the app launch histogram. 161 extern const char kAppLaunchHistogram[]; 162 163 // The name of the app launch histogram for platform apps. 164 extern const char kPlatformAppLaunchHistogram[]; 165 166 // The buckets used for app launches. 167 enum AppLaunchBucket { 168 // Launch from NTP apps section while maximized. 169 APP_LAUNCH_NTP_APPS_MAXIMIZED, 170 171 // Launch from NTP apps section while collapsed. 172 APP_LAUNCH_NTP_APPS_COLLAPSED, 173 174 // Launch from NTP apps section while in menu mode. 175 APP_LAUNCH_NTP_APPS_MENU, 176 177 // Launch from NTP most visited section in any mode. 178 APP_LAUNCH_NTP_MOST_VISITED, 179 180 // Launch from NTP recently closed section in any mode. 181 APP_LAUNCH_NTP_RECENTLY_CLOSED, 182 183 // App link clicked from bookmark bar. 184 APP_LAUNCH_BOOKMARK_BAR, 185 186 // Nvigated to an app from within a web page (like by clicking a link). 187 APP_LAUNCH_CONTENT_NAVIGATION, 188 189 // Launch from session restore. 190 APP_LAUNCH_SESSION_RESTORE, 191 192 // Autolaunched at startup, like for pinned tabs. 193 APP_LAUNCH_AUTOLAUNCH, 194 195 // Launched from omnibox app links. 196 APP_LAUNCH_OMNIBOX_APP, 197 198 // App URL typed directly into the omnibox (w/ instant turned off). 199 APP_LAUNCH_OMNIBOX_LOCATION, 200 201 // Navigate to an app URL via instant. 202 APP_LAUNCH_OMNIBOX_INSTANT, 203 204 // Launch via chrome.management.launchApp. 205 APP_LAUNCH_EXTENSION_API, 206 207 // Launch using the --app or --app-id cmd line options. 208 APP_LAUNCH_CMD_LINE_APP, 209 210 // App launch by passing the URL on the cmd line (not using app switches). 211 APP_LAUNCH_CMD_LINE_URL, 212 213 // User clicked web store launcher on NTP. 214 APP_LAUNCH_NTP_WEBSTORE, 215 216 // App launched after the user re-enabled it on the NTP. 217 APP_LAUNCH_NTP_APP_RE_ENABLE, 218 219 // URL launched using the --app cmd line option, but the URL does not 220 // correspond to an installed app. These launches are left over from a 221 // feature that let you make desktop shortcuts from the file menu. 222 APP_LAUNCH_CMD_LINE_APP_LEGACY, 223 224 // User clicked web store link on the NTP footer. 225 APP_LAUNCH_NTP_WEBSTORE_FOOTER, 226 227 // User clicked [+] icon in apps page. 228 APP_LAUNCH_NTP_WEBSTORE_PLUS_ICON, 229 230 // User clicked icon in app launcher main view. 231 APP_LAUNCH_APP_LIST_MAIN, 232 233 // User clicked app launcher search result. 234 APP_LAUNCH_APP_LIST_SEARCH, 235 236 // User clicked the chrome app icon from the app launcher's main view. 237 APP_LAUNCH_APP_LIST_MAIN_CHROME, 238 239 // User clicked the webstore icon from the app launcher's main view. 240 APP_LAUNCH_APP_LIST_MAIN_WEBSTORE, 241 242 // User clicked the chrome app icon from the app launcher's search view. 243 APP_LAUNCH_APP_LIST_SEARCH_CHROME, 244 245 // User clicked the webstore icon from the app launcher's search view. 246 APP_LAUNCH_APP_LIST_SEARCH_WEBSTORE, 247 248 APP_LAUNCH_BUCKET_BOUNDARY, 249 APP_LAUNCH_BUCKET_INVALID 250 }; 251 252 // The extension id of the ChromeVox extension. 253 extern const char kChromeVoxExtensionId[]; 254 255 #if defined(OS_CHROMEOS) 256 // Path to preinstalled ChromeVox screen reader extension. 257 extern const char kChromeVoxExtensionPath[]; 258 // Path to preinstalled Connectivity Diagnostics extension. 259 extern const char kConnectivityDiagnosticsPath[]; 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 #endif 268 269 // What causes an extension to be installed? Used in histograms, so don't 270 // change existing values. 271 enum CrxInstallCause { 272 INSTALL_CAUSE_UNSET = 0, 273 INSTALL_CAUSE_USER_DOWNLOAD, 274 INSTALL_CAUSE_UPDATE, 275 INSTALL_CAUSE_EXTERNAL_FILE, 276 INSTALL_CAUSE_AUTOMATION, 277 NUM_INSTALL_CAUSES 278 }; 279 280 enum UnloadedExtensionReason { 281 UNLOAD_REASON_DISABLE, // Extension is being disabled. 282 UNLOAD_REASON_UPDATE, // Extension is being updated to a newer version. 283 UNLOAD_REASON_UNINSTALL, // Extension is being uninstalled. 284 UNLOAD_REASON_TERMINATE, // Extension has terminated. 285 UNLOAD_REASON_BLACKLIST, // Extension has been blacklisted. 286 }; 287 288 // The states that an app can be in, as reported by chrome.app.installState 289 // and chrome.app.runningState. 290 extern const char kAppStateNotInstalled[]; 291 extern const char kAppStateInstalled[]; 292 extern const char kAppStateDisabled[]; 293 extern const char kAppStateRunning[]; 294 extern const char kAppStateCannotRun[]; 295 extern const char kAppStateReadyToRun[]; 296 297 // The path part of the file system url used for media file systems. 298 extern const char kMediaFileSystemPathPart[]; 299 300 // NOTE: If you change this list, you should also change kExtensionIconSizes 301 // in cc file. 302 enum ExtensionIcons { 303 EXTENSION_ICON_GIGANTOR = 512, 304 EXTENSION_ICON_EXTRA_LARGE = 256, 305 EXTENSION_ICON_LARGE = 128, 306 EXTENSION_ICON_MEDIUM = 48, 307 EXTENSION_ICON_SMALL = 32, 308 EXTENSION_ICON_SMALLISH = 24, 309 EXTENSION_ICON_ACTION = 19, 310 EXTENSION_ICON_BITTY = 16, 311 EXTENSION_ICON_INVALID = 0, 312 }; 313 314 // List of sizes for extension icons that can be defined in the manifest. 315 extern const int kExtensionIconSizes[]; 316 extern const size_t kNumExtensionIconSizes; 317 318 // List of sizes for extension icons that can be defined in the manifest. 319 extern const int kExtensionActionIconSizes[]; 320 extern const size_t kNumExtensionActionIconSizes; 321 322 // List of sizes for extension icons that can be defined in the manifest. 323 extern const int kScriptBadgeIconSizes[]; 324 extern const size_t kNumScriptBadgeIconSizes; 325 } // namespace extension_misc 326 327 #endif // CHROME_COMMON_EXTENSIONS_EXTENSION_CONSTANTS_H_ 328