summaryrefslogtreecommitdiff
path: root/chromium/extensions/common/constants.h
blob: e6183dc110a65f47922f4cb513be3214c056555f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef EXTENSIONS_COMMON_CONSTANTS_H_
#define EXTENSIONS_COMMON_CONSTANTS_H_

#include <cstdint>

#include "base/files/file_path.h"
#include "base/strings/string_piece_forward.h"
#include "components/services/app_service/public/mojom/types.mojom.h"
#include "components/version_info/channel.h"
#include "ui/base/layout.h"

namespace extensions {

// Scheme we serve extension content from.
extern const char kExtensionScheme[];

// The name of the manifest inside an extension.
extern const base::FilePath::CharType kManifestFilename[];

// The name of the differential fingerprint file inside an extension.
extern const base::FilePath::CharType kDifferentialFingerprintFilename[];

// The name of locale folder inside an extension.
extern const base::FilePath::CharType kLocaleFolder[];

// The name of the messages file inside an extension.
extern const base::FilePath::CharType kMessagesFilename[];

// The name of the gzipped messages file inside an extension.
extern const base::FilePath::CharType kGzippedMessagesFilename[];

// The base directory for subdirectories with platform-specific code.
extern const base::FilePath::CharType kPlatformSpecificFolder[];

// A directory reserved for metadata, generated either by the webstore
// or chrome.
extern const base::FilePath::CharType kMetadataFolder[];

// Name of the verified contents file within the metadata folder.
extern const base::FilePath::CharType kVerifiedContentsFilename[];

// Name of the computed hashes file within the metadata folder.
extern const base::FilePath::CharType kComputedHashesFilename[];

// Name of the indexed ruleset directory for the Declarative Net Request API.
extern const base::FilePath::CharType kIndexedRulesetDirectory[];

// The name of the directory inside the profile where extensions are
// installed to.
extern const char kInstallDirectoryName[];

// The name of a temporary directory to install an extension into for
// validation before finalizing install.
extern const char kTempExtensionName[];

// The file to write our decoded message catalogs to, relative to the
// extension_path.
extern const char kDecodedMessageCatalogsFilename[];

// The filename to use for a background page generated from
// background.scripts.
extern const char kGeneratedBackgroundPageFilename[];

// Path to imported modules.
extern const char kModulesDir[];

// The file extension (.crx) for extensions.
extern const base::FilePath::CharType kExtensionFileExtension[];

// The file extension (.pem) for private key files.
extern const base::FilePath::CharType kExtensionKeyFileExtension[];

// Default frequency for auto updates, if turned on.
extern const int kDefaultUpdateFrequencySeconds;

// The name of the directory inside the profile where per-app local settings
// are stored.
extern const char kLocalAppSettingsDirectoryName[];

// The name of the directory inside the profile where per-extension local
// settings are stored.
extern const char kLocalExtensionSettingsDirectoryName[];

// The name of the directory inside the profile where per-app synced settings
// are stored.
extern const char kSyncAppSettingsDirectoryName[];

// The name of the directory inside the profile where per-extension synced
// settings are stored.
extern const char kSyncExtensionSettingsDirectoryName[];

// The name of the directory inside the profile where per-extension persistent
// managed settings are stored.
extern const char kManagedSettingsDirectoryName[];

// The name of the database inside the profile where chrome-internal
// extension state resides.
extern const char kStateStoreName[];

// The name of the database inside the profile where declarative extension
// rules are stored.
extern const char kRulesStoreName[];

// The URL query parameter key corresponding to multi-login user index.
extern const char kAuthUserQueryKey[];

// Mime type strings
extern const char kMimeTypeJpeg[];
extern const char kMimeTypePng[];

// The extension id of the Web Store component application.
extern const char kWebStoreAppId[];

// The key used for signing some pieces of data from the webstore.
extern const uint8_t kWebstoreSignaturesPublicKey[];
extern const size_t kWebstoreSignaturesPublicKeySize;

// Thread identifier for the main renderer thread (as opposed to a service
// worker thread).
// This is the default thread id used for extension event listeners registered
// from a non-service worker context
extern const int kMainThreadId;

using apps::mojom::AppLaunchSource;
using apps::mojom::LaunchContainer;

// This enum is used for the launch type the user wants to use for an
// application.
// Do not remove items or re-order this enum as it is used in preferences
// and histograms.
enum LaunchType {
  LAUNCH_TYPE_INVALID = -1,
  LAUNCH_TYPE_FIRST = 0,
  LAUNCH_TYPE_PINNED = LAUNCH_TYPE_FIRST,
  LAUNCH_TYPE_REGULAR = 1,
  LAUNCH_TYPE_FULLSCREEN = 2,
  LAUNCH_TYPE_WINDOW = 3,
  NUM_LAUNCH_TYPES,

  // Launch an app in the in the way a click on the NTP would,
  // if no user pref were set.  Update this constant to change
  // the default for the NTP and chrome.management.launchApp().
  LAUNCH_TYPE_DEFAULT = LAUNCH_TYPE_REGULAR
};

// The origin of injected CSS.
enum CSSOrigin { CSS_ORIGIN_AUTHOR, CSS_ORIGIN_USER };
static const CSSOrigin CSS_ORIGIN_LAST = CSS_ORIGIN_USER;

}  // namespace extensions

namespace extension_misc {

// Matches chrome.tabs.TAB_ID_NONE.
const int kUnknownTabId = -1;

// Matches chrome.windows.WINDOW_ID_NONE.
const int kUnknownWindowId = -1;

// Matches chrome.windows.WINDOW_ID_CURRENT.
const int kCurrentWindowId = -2;

enum ExtensionIcons {
  EXTENSION_ICON_GIGANTOR = 512,
  EXTENSION_ICON_EXTRA_LARGE = 256,
  EXTENSION_ICON_LARGE = 128,
  EXTENSION_ICON_MEDIUM = 48,
  EXTENSION_ICON_SMALL = 32,
  EXTENSION_ICON_SMALLISH = 24,
  EXTENSION_ICON_BITTY = 16,
  EXTENSION_ICON_INVALID = 0,
};

// The extension id of the ChromeVox extension.
extern const char kChromeVoxExtensionId[];

// The extension id of the feedback component extension.
extern const char kFeedbackExtensionId[];

// The extension id of the PDF extension.
extern const char kPdfExtensionId[];

// The extension id of the Office Viewer component extension.
extern const char kQuickOfficeComponentExtensionId[];

// The extension id of the Office Viewer extension on the internal webstore.
extern const char kQuickOfficeInternalExtensionId[];

// The extension id of the Office Viewer extension.
extern const char kQuickOfficeExtensionId[];

// The extension id used for testing mimeHandlerPrivate.
extern const char kMimeHandlerPrivateTestExtensionId[];

// The extension id of the Camera application.
extern const char kCameraAppId[];

// The extension id of the devoloper version of Camera application.
extern const char kCameraAppDevId[];

// The extension id of the Chrome component application.
extern const char kChromeAppId[];

// Fake extension ID for the Lacros chrome browser application.
extern const char kLacrosAppId[];

// The extension id of the Files Manager application.
extern const char kFilesManagerAppId[];

// The extension id of the Calculator application.
extern const char kCalculatorAppId[];

// The extension id of the demo Calendar application.
extern const char kCalendarDemoAppId[];

// The extension id of the GMail application.
extern const char kGMailAppId[];

// The extension id of the demo Google Docs application.
extern const char kGoogleDocsDemoAppId[];

// The extension id of the Google Drive application.
extern const char kGoogleDriveAppId[];

// The extension id of the demo Google Sheets application.
extern const char kGoogleSheetsDemoAppId[];

// The extension id of the demo Google Slides application.
extern const char kGoogleSlidesDemoAppId[];

// The extension id of the Google Keep application.
extern const char kGoogleKeepAppId[];

// The extension id of the Youtube application.
extern const char kYoutubeAppId[];

// The extension id of the genius (Get Help) app.
extern const char kGeniusAppId[];

#if defined(OS_CHROMEOS)
// The extension id of the default Demo Mode Highlights app.
extern const char kHighlightsAppId[];

// The extension id of the eve Demo Mode Highlights app.
extern const char kHighlightsEveAppId[];

// The extension id of the nocturne Demo Mode Highlights app.
extern const char kHighlightsNocturneAppId[];

// The extension id of the atlas Demo Mode Highlights app.
extern const char kHighlightsAtlasAppId[];

// The extension id of the default Demo Mode screensaver app.
extern const char kScreensaverAppId[];

// The extension id of the eve Demo Mode screensaver app.
extern const char kScreensaverEveAppId[];

// The extension id of the nocturne Demo Mode screensaver app.
extern const char kScreensaverNocturneAppId[];

// The extension id of the atlas Demo Mode screensaver app.
extern const char kScreensaverAtlasAppId[];

// The extension id of the kukui Demo Mode screensaver app.
extern const char kScreensaverKukuiAppId[];

// The id of the testing extension allowed in the signin profile.
extern const char kSigninProfileTestExtensionId[];

// Returns true if this app is part of the "system UI". Generally this is UI
// that that on other operating systems would be considered part of the OS,
// for example the file manager.
bool IsSystemUIApp(base::StringPiece extension_id);
#endif

// The extension id for the production version of Hangouts.
extern const char kProdHangoutsExtensionId[];

// Extension ids used by Hangouts.
extern const char* const kHangoutsExtensionIds[6];

// Error message when enterprise policy blocks scripting of webpage.
extern const char kPolicyBlockedScripting[];

// The default block size for hashing used in content verification.
extern const int kContentVerificationDefaultBlockSize;

// The minimum severity of a log or error in order to report it to the browser.
extern const logging::LogSeverity kMinimumSeverityToReportError;

// The minimum channel where Service Worker based extensions can run.
constexpr version_info::Channel kMinChannelForServiceWorkerBasedExtension =
    version_info::Channel::DEV;

// IDs for the Media Router Component Extension.
extern const char kCastExtensionIdRelease[];
extern const char kCastExtensionIdDev[];

}  // namespace extension_misc

#endif  // EXTENSIONS_COMMON_CONSTANTS_H_