Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / chrome / common / extensions / extension_constants.h
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
58   // Field to use with webstore URL for tracking launch source.
59   extern const char kWebstoreSourceField[];
60
61   // Values to use with webstore URL launch source field.
62   extern const char kLaunchSourceAppList[];
63   extern const char kLaunchSourceAppListSearch[];
64 }  // namespace extension_urls
65
66 namespace extension_misc {
67   // Matches chrome.windows.WINDOW_ID_NONE.
68   const int kUnknownWindowId = -1;
69
70   // Matches chrome.windows.WINDOW_ID_CURRENT.
71   const int kCurrentWindowId = -2;
72
73   // The extension id of the bookmark manager.
74   extern const char kBookmarkManagerId[];
75
76   // The extension id of the Chrome component application.
77   extern const char kChromeAppId[];
78
79   // The extension id of the Cloud Print component application.
80   extern const char kCloudPrintAppId[];
81
82   // The extension id of the Enterprise Web Store component application.
83   extern const char kEnterpriseWebStoreAppId[];
84
85   // The extension id of GMail application.
86   extern const char kGmailAppId[];
87
88   // The extension id of the Google Doc application.
89   extern const char kGoogleDocAppId[];
90
91   // The extension id of the Google Play Music application.
92   extern const char kGooglePlayMusicAppId[];
93
94   // The extension id of the Google Search application.
95   extern const char kGoogleSearchAppId[];
96
97   // The extension id of the Google Sheets application.
98   extern const char kGoogleSheetsAppId[];
99
100   // The extension id of the Google Slides application.
101   extern const char kGoogleSlidesAppId[];
102
103   // The extension id of the HTerm app for ChromeOS.
104   extern const char kHTermAppId[];
105
106   // The extension id of the HTerm dev app for ChromeOS.
107   extern const char kHTermDevAppId[];
108
109   // The extension id of the Crosh component app for ChromeOS.
110   extern const char kCroshBuiltinAppId[];
111
112   // The extension id of the hotword voice search trigger extension.
113   extern const char kHotwordExtensionId[];
114
115   // The extension id of the PDF extension.
116   extern const char kPdfExtensionId[];
117
118   // The extension id of the Office Viewer component extension.
119   extern const char kQuickOfficeComponentExtensionId[];
120
121   // The extension id of the Office Viewer dev extension.
122   extern const char kQuickOfficeDevExtensionId[];
123
124   // The extension id of the Office Viewer extension.
125   extern const char kQuickOfficeExtensionId[];
126
127   // The extension id of the settings application.
128   extern const char kSettingsAppId[];
129
130   // The extension id used for testing streamsPrivate
131   extern const char kStreamsPrivateTestExtensionId[];
132
133   // The extension id of the Web Store component application.
134   extern const char kWebStoreAppId[];
135
136   // The extension id of the Youtube application.
137   extern const char kYoutubeAppId[];
138
139   // The extension id of the Identity API UI application.
140   extern const char kIdentityApiUiAppId[];
141
142   // The extension id of the in-app payments support application.
143   extern const char kInAppPaymentsSupportAppId[];
144
145   // Note: this structure is an ASN.1 which encodes the algorithm used
146   // with its parameters. This is defined in PKCS #1 v2.1 (RFC 3447).
147   // It is encoding: { OID sha1WithRSAEncryption      PARAMETERS NULL }
148   const uint8 kSignatureAlgorithm[15] = {
149     0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86,
150     0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00
151   };
152
153   // The name of the app launch histogram.
154   extern const char kAppLaunchHistogram[];
155
156   // The name of the app launch histogram for platform apps.
157   extern const char kPlatformAppLaunchHistogram[];
158
159   // The buckets used for app launches.
160   enum AppLaunchBucket {
161     // Launch from NTP apps section while maximized.
162     APP_LAUNCH_NTP_APPS_MAXIMIZED,
163
164     // Launch from NTP apps section while collapsed.
165     APP_LAUNCH_NTP_APPS_COLLAPSED,
166
167     // Launch from NTP apps section while in menu mode.
168     APP_LAUNCH_NTP_APPS_MENU,
169
170     // Launch from NTP most visited section in any mode.
171     APP_LAUNCH_NTP_MOST_VISITED,
172
173     // Launch from NTP recently closed section in any mode.
174     APP_LAUNCH_NTP_RECENTLY_CLOSED,
175
176     // App link clicked from bookmark bar.
177     APP_LAUNCH_BOOKMARK_BAR,
178
179     // Nvigated to an app from within a web page (like by clicking a link).
180     APP_LAUNCH_CONTENT_NAVIGATION,
181
182     // Launch from session restore.
183     APP_LAUNCH_SESSION_RESTORE,
184
185     // Autolaunched at startup, like for pinned tabs.
186     APP_LAUNCH_AUTOLAUNCH,
187
188     // Launched from omnibox app links.
189     APP_LAUNCH_OMNIBOX_APP,
190
191     // App URL typed directly into the omnibox (w/ instant turned off).
192     APP_LAUNCH_OMNIBOX_LOCATION,
193
194     // Navigate to an app URL via instant.
195     APP_LAUNCH_OMNIBOX_INSTANT,
196
197     // Launch via chrome.management.launchApp.
198     APP_LAUNCH_EXTENSION_API,
199
200     // Launch an app via a shortcut. This includes using the --app or --app-id
201     // command line arguments, or via an app shim process on Mac.
202     APP_LAUNCH_CMD_LINE_APP,
203
204     // App launch by passing the URL on the cmd line (not using app switches).
205     APP_LAUNCH_CMD_LINE_URL,
206
207     // User clicked web store launcher on NTP.
208     APP_LAUNCH_NTP_WEBSTORE,
209
210     // App launched after the user re-enabled it on the NTP.
211     APP_LAUNCH_NTP_APP_RE_ENABLE,
212
213     // URL launched using the --app cmd line option, but the URL does not
214     // correspond to an installed app. These launches are left over from a
215     // feature that let you make desktop shortcuts from the file menu.
216     APP_LAUNCH_CMD_LINE_APP_LEGACY,
217
218     // User clicked web store link on the NTP footer.
219     APP_LAUNCH_NTP_WEBSTORE_FOOTER,
220
221     // User clicked [+] icon in apps page.
222     APP_LAUNCH_NTP_WEBSTORE_PLUS_ICON,
223
224     // User clicked icon in app launcher main view.
225     APP_LAUNCH_APP_LIST_MAIN,
226
227     // User clicked app launcher search result.
228     APP_LAUNCH_APP_LIST_SEARCH,
229
230     // User clicked the chrome app icon from the app launcher's main view.
231     APP_LAUNCH_APP_LIST_MAIN_CHROME,
232
233     // User clicked the webstore icon from the app launcher's main view.
234     APP_LAUNCH_APP_LIST_MAIN_WEBSTORE,
235
236     // User clicked the chrome app icon from the app launcher's search view.
237     APP_LAUNCH_APP_LIST_SEARCH_CHROME,
238
239     // User clicked the webstore icon from the app launcher's search view.
240     APP_LAUNCH_APP_LIST_SEARCH_WEBSTORE,
241
242     APP_LAUNCH_BUCKET_BOUNDARY,
243     APP_LAUNCH_BUCKET_INVALID
244   };
245
246   // The extension id of the ChromeVox extension.
247   extern const char kChromeVoxExtensionId[];
248
249 #if defined(OS_CHROMEOS)
250   // Path to preinstalled ChromeVox screen reader extension (relative to
251   // |chrome::DIR_RESOURCES|).
252   extern const char kChromeVoxExtensionPath[];
253   // Path to preinstalled Connectivity Diagnostics extension.
254   extern const char kConnectivityDiagnosticsPath[];
255   extern const char kConnectivityDiagnosticsLauncherPath[];
256   // Path to preinstalled speech synthesis extension.
257   extern const char kSpeechSynthesisExtensionPath[];
258   // The extension id of the speech synthesis extension.
259   extern const char kSpeechSynthesisExtensionId[];
260   // The extension id of the wallpaper manager application.
261   extern const char kWallpaperManagerId[];
262   // The extension id of the first run dialog application.
263   extern const char kFirstRunDialogId[];
264 #endif
265
266   // What causes an extension to be installed? Used in histograms, so don't
267   // change existing values.
268   enum CrxInstallCause {
269     INSTALL_CAUSE_UNSET = 0,
270     INSTALL_CAUSE_USER_DOWNLOAD,
271     INSTALL_CAUSE_UPDATE,
272     INSTALL_CAUSE_EXTERNAL_FILE,
273     INSTALL_CAUSE_AUTOMATION,
274     NUM_INSTALL_CAUSES
275   };
276
277   // The states that an app can be in, as reported by chrome.app.installState
278   // and chrome.app.runningState.
279   extern const char kAppStateNotInstalled[];
280   extern const char kAppStateInstalled[];
281   extern const char kAppStateDisabled[];
282   extern const char kAppStateRunning[];
283   extern const char kAppStateCannotRun[];
284   extern const char kAppStateReadyToRun[];
285
286   // The path part of the file system url used for media file systems.
287   extern const char kMediaFileSystemPathPart[];
288
289   // NOTE: If you change this list, you should also change kExtensionIconSizes
290   // in cc file.
291   enum ExtensionIcons {
292     EXTENSION_ICON_GIGANTOR = 512,
293     EXTENSION_ICON_EXTRA_LARGE = 256,
294     EXTENSION_ICON_LARGE = 128,
295     EXTENSION_ICON_MEDIUM = 48,
296     EXTENSION_ICON_SMALL = 32,
297     EXTENSION_ICON_SMALLISH = 24,
298     EXTENSION_ICON_ACTION = 19,
299     EXTENSION_ICON_BITTY = 16,
300     EXTENSION_ICON_INVALID = 0,
301   };
302
303   // List of sizes for extension icons that can be defined in the manifest.
304   extern const int kExtensionIconSizes[];
305   extern const size_t kNumExtensionIconSizes;
306
307   // List of sizes for extension icons that can be defined in the manifest.
308   extern const int kExtensionActionIconSizes[];
309   extern const size_t kNumExtensionActionIconSizes;
310
311 }  // namespace extension_misc
312
313 namespace extensions {
314   // This enum is used for the launch type the user wants to use for an
315   // application.
316   // Do not remove items or re-order this enum as it is used in preferences
317   // and histograms.
318   enum LaunchType {
319     LAUNCH_TYPE_INVALID = -1,
320     LAUNCH_TYPE_FIRST = 0,
321     LAUNCH_TYPE_PINNED = LAUNCH_TYPE_FIRST,
322     LAUNCH_TYPE_REGULAR = 1,
323     LAUNCH_TYPE_FULLSCREEN = 2,
324     LAUNCH_TYPE_WINDOW = 3,
325     NUM_LAUNCH_TYPES,
326
327     // Launch an app in the in the way a click on the NTP would,
328     // if no user pref were set.  Update this constant to change
329     // the default for the NTP and chrome.management.launchApp().
330     LAUNCH_TYPE_DEFAULT = LAUNCH_TYPE_REGULAR
331   };
332
333   // Don't remove items or change the order of this enum.  It's used in
334   // histograms and preferences.
335   enum LaunchContainer {
336     LAUNCH_CONTAINER_WINDOW,
337     LAUNCH_CONTAINER_PANEL,
338     LAUNCH_CONTAINER_TAB,
339     // For platform apps, which don't actually have a container (they just get a
340     // "onLaunched" event).
341     LAUNCH_CONTAINER_NONE
342   };
343 }  // namespace extensions
344
345 #endif  // CHROME_COMMON_EXTENSIONS_EXTENSION_CONSTANTS_H_