Bug 1869647 - Mark hasStorageAccess.sub.https.window.html as intermittent after wpt...
[gecko.git] / toolkit / modules / AppConstants.sys.mjs
blob36b26056ecb9960381dac2acf00e0f8511918227
1 #filter substitution
2 #include @TOPOBJDIR@/source-repo.h
3 #include @TOPOBJDIR@/buildid.h
4 /* This Source Code Form is subject to the terms of the Mozilla Public
5  * License, v. 2.0. If a copy of the MPL was not distributed with this file,
6  * You can obtain one at http://mozilla.org/MPL/2.0/. */
8 const lazy = {};
9 ChromeUtils.defineModuleGetter(lazy, "AddonManager", "resource://gre/modules/AddonManager.jsm");
11 // Immutable for export.
12 export var AppConstants = Object.freeze({
13   // See this wiki page for more details about channel specific build
14   // defines: https://wiki.mozilla.org/Platform/Channel-specific_build_defines
15   NIGHTLY_BUILD:
16 #ifdef NIGHTLY_BUILD
17   true,
18 #else
19   false,
20 #endif
22   RELEASE_OR_BETA:
23 #ifdef RELEASE_OR_BETA
24   true,
25 #else
26   false,
27 #endif
29   EARLY_BETA_OR_EARLIER:
30 #ifdef EARLY_BETA_OR_EARLIER
31   true,
32 #else
33   false,
34 #endif
36   IS_ESR:
37 #ifdef MOZ_ESR
38   true,
39 #else
40   false,
41 #endif
43   ACCESSIBILITY:
44 #ifdef ACCESSIBILITY
45   true,
46 #else
47   false,
48 #endif
50   // Official corresponds, roughly, to whether this build is performed
51   // on Mozilla's continuous integration infrastructure. You should
52   // disable developer-only functionality when this flag is set.
53   MOZILLA_OFFICIAL:
54 #ifdef MOZILLA_OFFICIAL
55   true,
56 #else
57   false,
58 #endif
60   MOZ_OFFICIAL_BRANDING:
61 #ifdef MOZ_OFFICIAL_BRANDING
62   true,
63 #else
64   false,
65 #endif
67   MOZ_DEV_EDITION:
68 #ifdef MOZ_DEV_EDITION
69   true,
70 #else
71   false,
72 #endif
74   MOZ_SERVICES_SYNC:
75 #ifdef MOZ_SERVICES_SYNC
76   true,
77 #else
78   false,
79 #endif
81   MOZ_SERVICES_HEALTHREPORT:
82 #ifdef MOZ_SERVICES_HEALTHREPORT
83   true,
84 #else
85   false,
86 #endif
88   MOZ_DATA_REPORTING:
89 #ifdef MOZ_DATA_REPORTING
90   true,
91 #else
92   false,
93 #endif
95   MOZ_SANDBOX:
96 #ifdef MOZ_SANDBOX
97   true,
98 #else
99   false,
100 #endif
102   MOZ_TELEMETRY_REPORTING:
103 #ifdef MOZ_TELEMETRY_REPORTING
104   true,
105 #else
106   false,
107 #endif
109   MOZ_TELEMETRY_ON_BY_DEFAULT:
110 #ifdef MOZ_TELEMETRY_ON_BY_DEFAULT
111   true,
112 #else
113   false,
114 #endif
116   MOZ_UPDATER:
117 #ifdef MOZ_UPDATER
118   true,
119 #else
120   false,
121 #endif
123   MOZ_SWITCHBOARD:
124 #ifdef MOZ_SWITCHBOARD
125   true,
126 #else
127   false,
128 #endif
130   MOZ_WEBRTC:
131 #ifdef MOZ_WEBRTC
132   true,
133 #else
134   false,
135 #endif
137   MOZ_WIDGET_GTK:
138 #ifdef MOZ_WIDGET_GTK
139   true,
140 #else
141   false,
142 #endif
144   MOZ_WMF_CDM:
145 #ifdef MOZ_WMF_CDM
146   true,
147 #else
148   false,
149 #endif
151   XP_UNIX:
152 #ifdef XP_UNIX
153   true,
154 #else
155   false,
156 #endif
158 // NOTE! XP_LINUX has to go after MOZ_WIDGET_ANDROID otherwise Android
159 // builds will be misidentified as linux.
160   platform:
161 #ifdef MOZ_WIDGET_GTK
162   "linux",
163 #elif XP_WIN
164   "win",
165 #elif XP_MACOSX
166   "macosx",
167 #elif MOZ_WIDGET_ANDROID
168   "android",
169 #elif XP_LINUX
170   "linux",
171 #else
172   "other",
173 #endif
175 // Most of our frontend code assumes that any desktop Unix platform
176 // is "linux". Add the distinction for code that needs it.
177   unixstyle:
178 #ifdef XP_LINUX
179     "linux",
180 #elif XP_OPENBSD
181     "openbsd",
182 #elif XP_NETBSD
183     "netbsd",
184 #elif XP_FREEBSD
185     "freebsd",
186 #elif XP_SOLARIS
187     "solaris",
188 #else
189     "other",
190 #endif
192   isPlatformAndVersionAtLeast(platform, version) {
193     let platformVersion = Services.sysinfo.getProperty("version");
194     return platform == this.platform &&
195            Services.vc.compare(platformVersion, version) >= 0;
196   },
198   isPlatformAndVersionAtMost(platform, version) {
199     let platformVersion = Services.sysinfo.getProperty("version");
200     return platform == this.platform &&
201            Services.vc.compare(platformVersion, version) <= 0;
202   },
204   MOZ_CRASHREPORTER:
205 #ifdef MOZ_CRASHREPORTER
206   true,
207 #else
208   false,
209 #endif
211   MOZ_NORMANDY:
212 #ifdef MOZ_NORMANDY
213   true,
214 #else
215   false,
216 #endif
218   MOZ_MAINTENANCE_SERVICE:
219 #ifdef MOZ_MAINTENANCE_SERVICE
220   true,
221 #else
222   false,
223 #endif
225   MOZ_BACKGROUNDTASKS:
226 #ifdef MOZ_BACKGROUNDTASKS
227   true,
228 #else
229   false,
230 #endif
232   MOZ_UPDATE_AGENT:
233 #ifdef MOZ_UPDATE_AGENT
234   true,
235 #else
236   false,
237 #endif
239   MOZ_BITS_DOWNLOAD:
240 #ifdef MOZ_BITS_DOWNLOAD
241   true,
242 #else
243   false,
244 #endif
246   DEBUG:
247 #ifdef DEBUG
248   true,
249 #else
250   false,
251 #endif
253   ASAN:
254 #ifdef MOZ_ASAN
255   true,
256 #else
257   false,
258 #endif
260   ASAN_REPORTER:
261 #ifdef MOZ_ASAN_REPORTER
262   true,
263 #else
264   false,
265 #endif
267   TSAN:
268 #ifdef MOZ_TSAN
269   true,
270 #else
271   false,
272 #endif
274   MOZ_SYSTEM_NSS:
275 #ifdef MOZ_SYSTEM_NSS
276   true,
277 #else
278   false,
279 #endif
281   MOZ_PLACES:
282 #ifdef MOZ_PLACES
283   true,
284 #else
285   false,
286 #endif
288   MOZ_REQUIRE_SIGNING:
289 #ifdef MOZ_REQUIRE_SIGNING
290   true,
291 #else
292   false,
293 #endif
295   get MOZ_UNSIGNED_SCOPES() {
296     let result = 0;
297 #ifdef MOZ_UNSIGNED_APP_SCOPE
298     result |= lazy.AddonManager.SCOPE_APPLICATION;
299 #endif
300 #ifdef MOZ_UNSIGNED_SYSTEM_SCOPE
301     result |= lazy.AddonManager.SCOPE_SYSTEM;
302 #endif
303     return result;
304   },
306   MOZ_ALLOW_ADDON_SIDELOAD:
307 #ifdef MOZ_ALLOW_ADDON_SIDELOAD
308   true,
309 #else
310   false,
311 #endif
313   MOZ_WEBEXT_WEBIDL_ENABLED:
314 #ifdef MOZ_WEBEXT_WEBIDL_ENABLED
315   true,
316 #else
317   false,
318 #endif
320   MENUBAR_CAN_AUTOHIDE:
321 #ifdef MENUBAR_CAN_AUTOHIDE
322   true,
323 #else
324   false,
325 #endif
327   MOZ_ANDROID_HISTORY:
328 #ifdef MOZ_ANDROID_HISTORY
329   true,
330 #else
331   false,
332 #endif
334   MOZ_GECKO_PROFILER:
335 #ifdef MOZ_GECKO_PROFILER
336   true,
337 #else
338   false,
339 #endif
341   DLL_PREFIX: "@DLL_PREFIX@",
342   DLL_SUFFIX: "@DLL_SUFFIX@",
344   MOZ_APP_NAME: "@MOZ_APP_NAME@",
345   MOZ_APP_BASENAME: "@MOZ_APP_BASENAME@",
346   // N.b.: you almost certainly want brandShortName/brand-short-name:
347   // MOZ_APP_DISPLAYNAME should only be used for static user-visible
348   // fields (e.g., DLL properties, Mac Bundle name, or similar).
349   MOZ_APP_DISPLAYNAME_DO_NOT_USE: "@MOZ_APP_DISPLAYNAME@",
350   MOZ_APP_VERSION: "@MOZ_APP_VERSION@",
351   MOZ_APP_VERSION_DISPLAY: "@MOZ_APP_VERSION_DISPLAY@",
352   MOZ_BUILDID: "@MOZ_BUILDID@",
353   MOZ_BUILD_APP: "@MOZ_BUILD_APP@",
354   MOZ_MACBUNDLE_ID: "@MOZ_MACBUNDLE_ID@",
355   MOZ_MACBUNDLE_NAME: "@MOZ_MACBUNDLE_NAME@",
356   MOZ_UPDATE_CHANNEL: "@MOZ_UPDATE_CHANNEL@",
357   MOZ_WIDGET_TOOLKIT: "@MOZ_WIDGET_TOOLKIT@",
358   ANDROID_PACKAGE_NAME: "@ANDROID_PACKAGE_NAME@",
360   DEBUG_JS_MODULES: "@DEBUG_JS_MODULES@",
362   MOZ_BING_API_CLIENTID: "@MOZ_BING_API_CLIENTID@",
363   MOZ_BING_API_KEY: "@MOZ_BING_API_KEY@",
364   MOZ_GOOGLE_LOCATION_SERVICE_API_KEY: "@MOZ_GOOGLE_LOCATION_SERVICE_API_KEY@",
365   MOZ_GOOGLE_SAFEBROWSING_API_KEY: "@MOZ_GOOGLE_SAFEBROWSING_API_KEY@",
366   MOZ_MOZILLA_API_KEY: "@MOZ_MOZILLA_API_KEY@",
368   BROWSER_CHROME_URL: "@BROWSER_CHROME_URL@",
370   OMNIJAR_NAME: "@OMNIJAR_NAME@",
372   // URL to the hg revision this was built from (e.g.
373   // "https://hg.mozilla.org/mozilla-central/rev/6256ec9113c1")
374   // On unofficial builds, this is an empty string.
375 #ifndef MOZ_SOURCE_URL
376 #define MOZ_SOURCE_URL
377 #endif
378   SOURCE_REVISION_URL: "@MOZ_SOURCE_URL@",
380   HAVE_USR_LIB64_DIR:
381 #ifdef HAVE_USR_LIB64_DIR
382     true,
383 #else
384     false,
385 #endif
387   HAVE_SHELL_SERVICE:
388 #ifdef HAVE_SHELL_SERVICE
389     true,
390 #else
391     false,
392 #endif
394   MOZ_CODE_COVERAGE:
395 #ifdef MOZ_CODE_COVERAGE
396     true,
397 #else
398     false,
399 #endif
401   TELEMETRY_PING_FORMAT_VERSION: @TELEMETRY_PING_FORMAT_VERSION@,
403   MOZ_NEW_NOTIFICATION_STORE:
404 #ifdef MOZ_NEW_NOTIFICATION_STORE
405     true,
406 #else
407     false,
408 #endif
410   ENABLE_WEBDRIVER:
411 #ifdef ENABLE_WEBDRIVER
412     true,
413 #else
414     false,
415 #endif
417   REMOTE_SETTINGS_SERVER_URL:
418 #ifdef MOZ_THUNDERBIRD
419     "https://thunderbird-settings.thunderbird.net/v1",
420 #else
421     "https://firefox.settings.services.mozilla.com/v1",
422 #endif
424   REMOTE_SETTINGS_VERIFY_SIGNATURE:
425 #ifdef MOZ_THUNDERBIRD
426     false,
427 #else
428     true,
429 #endif
431   REMOTE_SETTINGS_DEFAULT_BUCKET:
432 #ifdef MOZ_THUNDERBIRD
433     "thunderbird",
434 #else
435     "main",
436 #endif
438   MOZ_GLEAN_ANDROID:
439 #ifdef MOZ_GLEAN_ANDROID
440     true,
441 #else
442     false,
443 #endif
445   MOZ_JXL:
446 #ifdef MOZ_JXL
447     true,
448 #else
449     false,
450 #endif
452   MOZ_CAN_FOLLOW_SYSTEM_TIME:
453 #ifdef XP_WIN
454     true,
455 #elif XP_MACOSX
456     true,
457 #elif MOZ_WIDGET_GTK
458   #ifdef MOZ_ENABLE_DBUS
459     true,
460   #else
461     false,
462   #endif
463 #else
464     false,
465 #endif
467   MOZ_SYSTEM_POLICIES:
468 #ifdef MOZ_SYSTEM_POLICIES
469     true,
470 #else
471     false,
472 #endif
474   // Returns true for CN region build when distibution id set as 'MozillaOnline'
475   isChinaRepack() {
476     return (
477       Services.prefs
478       .getDefaultBranch("")
479       .getCharPref("distribution.id", "default") === "MozillaOnline"
480     );
481   },