Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / extensions / common / 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 EXTENSIONS_COMMON_CONSTANTS_H_
6 #define EXTENSIONS_COMMON_CONSTANTS_H_
7
8 #include "base/basictypes.h"
9 #include "base/files/file_path.h"
10 #include "ui/base/layout.h"
11
12 namespace extensions {
13
14 // Scheme we serve extension content from.
15 extern const char kExtensionScheme[];
16
17 // Canonical schemes you can use as input to GURL.SchemeIs().
18 extern const char kExtensionResourceScheme[];
19
20 // The name of the manifest inside an extension.
21 extern const base::FilePath::CharType kManifestFilename[];
22
23 // The name of locale folder inside an extension.
24 extern const base::FilePath::CharType kLocaleFolder[];
25
26 // The name of the messages file inside an extension.
27 extern const base::FilePath::CharType kMessagesFilename[];
28
29 // The base directory for subdirectories with platform-specific code.
30 extern const base::FilePath::CharType kPlatformSpecificFolder[];
31
32 // A directory reserved for metadata, generated either by the webstore
33 // or chrome.
34 extern const base::FilePath::CharType kMetadataFolder[];
35
36 // Name of the verified contents file within the metadata folder.
37 extern const base::FilePath::CharType kVerifiedContentsFilename[];
38
39 // Name of the computed hashes file within the metadata folder.
40 extern const base::FilePath::CharType kComputedHashesFilename[];
41
42 // The name of the directory inside the profile where extensions are
43 // installed to.
44 extern const char kInstallDirectoryName[];
45
46 // The name of a temporary directory to install an extension into for
47 // validation before finalizing install.
48 extern const char kTempExtensionName[];
49
50 // The file to write our decoded images to, relative to the extension_path.
51 extern const char kDecodedImagesFilename[];
52
53 // The file to write our decoded message catalogs to, relative to the
54 // extension_path.
55 extern const char kDecodedMessageCatalogsFilename[];
56
57 // The filename to use for a background page generated from
58 // background.scripts.
59 extern const char kGeneratedBackgroundPageFilename[];
60
61 // Path to imported modules.
62 extern const char kModulesDir[];
63
64 // The file extension (.crx) for extensions.
65 extern const base::FilePath::CharType kExtensionFileExtension[];
66
67 // The file extension (.pem) for private key files.
68 extern const base::FilePath::CharType kExtensionKeyFileExtension[];
69
70 // Default frequency for auto updates, if turned on.
71 extern const int kDefaultUpdateFrequencySeconds;
72
73 // The name of the directory inside the profile where per-app local settings
74 // are stored.
75 extern const char kLocalAppSettingsDirectoryName[];
76
77 // The name of the directory inside the profile where per-extension local
78 // settings are stored.
79 extern const char kLocalExtensionSettingsDirectoryName[];
80
81 // The name of the directory inside the profile where per-app synced settings
82 // are stored.
83 extern const char kSyncAppSettingsDirectoryName[];
84
85 // The name of the directory inside the profile where per-extension synced
86 // settings are stored.
87 extern const char kSyncExtensionSettingsDirectoryName[];
88
89 // The name of the directory inside the profile where per-extension persistent
90 // managed settings are stored.
91 extern const char kManagedSettingsDirectoryName[];
92
93 // The name of the database inside the profile where chrome-internal
94 // extension state resides.
95 extern const char kStateStoreName[];
96
97 // The name of the database inside the profile where declarative extension
98 // rules are stored.
99 extern const char kRulesStoreName[];
100
101 // The URL query parameter key corresponding to multi-login user index.
102 extern const char kAuthUserQueryKey[];
103
104 // Mime type strings
105 extern const char kMimeTypeJpeg[];
106 extern const char kMimeTypePng[];
107
108 // The extension id of the Web Store component application.
109 extern const char kWebStoreAppId[];
110
111 // Enumeration of possible app launch sources.
112 // Note the enumeration is used in UMA histogram so entries
113 // should not be re-ordered or removed.
114 enum AppLaunchSource {
115   SOURCE_UNTRACKED = 0,
116   SOURCE_APP_LAUNCHER,
117   SOURCE_NEW_TAB_PAGE,
118   SOURCE_RELOAD,
119   SOURCE_RESTART,
120   SOURCE_LOAD_AND_LAUNCH,
121   SOURCE_COMMAND_LINE,
122   SOURCE_FILE_HANDLER,
123   SOURCE_URL_HANDLER,
124
125   SOURCE_SYSTEM_TRAY,
126   SOURCE_ABOUT_PAGE,
127   SOURCE_KEYBOARD,
128
129   NUM_APP_LAUNCH_SOURCES
130 };
131
132 // This enum is used for the launch type the user wants to use for an
133 // application.
134 // Do not remove items or re-order this enum as it is used in preferences
135 // and histograms.
136 enum LaunchType {
137   LAUNCH_TYPE_INVALID = -1,
138   LAUNCH_TYPE_FIRST = 0,
139   LAUNCH_TYPE_PINNED = LAUNCH_TYPE_FIRST,
140   LAUNCH_TYPE_REGULAR = 1,
141   LAUNCH_TYPE_FULLSCREEN = 2,
142   LAUNCH_TYPE_WINDOW = 3,
143   NUM_LAUNCH_TYPES,
144
145   // Launch an app in the in the way a click on the NTP would,
146   // if no user pref were set.  Update this constant to change
147   // the default for the NTP and chrome.management.launchApp().
148   LAUNCH_TYPE_DEFAULT = LAUNCH_TYPE_REGULAR
149 };
150
151 // Don't remove items or change the order of this enum.  It's used in
152 // histograms and preferences.
153 enum LaunchContainer {
154   LAUNCH_CONTAINER_WINDOW,
155   LAUNCH_CONTAINER_PANEL,
156   LAUNCH_CONTAINER_TAB,
157   // For platform apps, which don't actually have a container (they just get a
158   // "onLaunched" event).
159   LAUNCH_CONTAINER_NONE
160 };
161
162 }  // namespace extensions
163
164 namespace extension_misc {
165
166 // Matches chrome.windows.WINDOW_ID_NONE.
167 const int kUnknownWindowId = -1;
168
169 // Matches chrome.windows.WINDOW_ID_CURRENT.
170 const int kCurrentWindowId = -2;
171
172 // NOTE: If you change this list, you should also change kExtensionIconSizes
173 // in cc file.
174 enum ExtensionIcons {
175   EXTENSION_ICON_GIGANTOR = 512,
176   EXTENSION_ICON_EXTRA_LARGE = 256,
177   EXTENSION_ICON_LARGE = 128,
178   EXTENSION_ICON_MEDIUM = 48,
179   EXTENSION_ICON_SMALL = 32,
180   EXTENSION_ICON_SMALLISH = 24,
181   EXTENSION_ICON_ACTION = 19,
182   EXTENSION_ICON_BITTY = 16,
183   EXTENSION_ICON_INVALID = 0,
184 };
185
186 // List of sizes for extension icons that can be defined in the manifest.
187 extern const int kExtensionIconSizes[];
188 extern const size_t kNumExtensionIconSizes;
189
190 struct IconRepresentationInfo {
191   // Size in pixels.
192   const int size;
193   // Size as a string that will be used to retrieve representation value from
194   // ExtensionAction SetIcon function arguments.
195   const char* const size_string;
196   // Scale factor for which the representation should be used.
197   const ui::ScaleFactor scale;
198 };
199
200 // The icon representations for extension actions.
201 extern const IconRepresentationInfo kExtensionActionIconSizes[];
202 const size_t kNumExtensionActionIconSizes = 2u;
203
204 }  // namespace extension_misc
205
206 #endif  // EXTENSIONS_COMMON_CONSTANTS_H_