Bug 1845599 - Skip tests for private identifiers in decorators; r=mgaudet
[gecko.git] / toolkit / modules / AppConstants.sys.mjs
blobb430666f6891edcb8b247b478875e5afb4da82d4
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   XP_UNIX:
145 #ifdef XP_UNIX
146   true,
147 #else
148   false,
149 #endif
151 // NOTE! XP_LINUX has to go after MOZ_WIDGET_ANDROID otherwise Android
152 // builds will be misidentified as linux.
153   platform:
154 #ifdef MOZ_WIDGET_GTK
155   "linux",
156 #elif XP_WIN
157   "win",
158 #elif XP_MACOSX
159   "macosx",
160 #elif MOZ_WIDGET_ANDROID
161   "android",
162 #elif XP_LINUX
163   "linux",
164 #else
165   "other",
166 #endif
168 // Most of our frontend code assumes that any desktop Unix platform
169 // is "linux". Add the distinction for code that needs it.
170   unixstyle:
171 #ifdef XP_LINUX
172     "linux",
173 #elif XP_OPENBSD
174     "openbsd",
175 #elif XP_NETBSD
176     "netbsd",
177 #elif XP_FREEBSD
178     "freebsd",
179 #elif XP_SOLARIS
180     "solaris",
181 #else
182     "other",
183 #endif
185   isPlatformAndVersionAtLeast(platform, version) {
186     let platformVersion = Services.sysinfo.getProperty("version");
187     return platform == this.platform &&
188            Services.vc.compare(platformVersion, version) >= 0;
189   },
191   isPlatformAndVersionAtMost(platform, version) {
192     let platformVersion = Services.sysinfo.getProperty("version");
193     return platform == this.platform &&
194            Services.vc.compare(platformVersion, version) <= 0;
195   },
197   MOZ_CRASHREPORTER:
198 #ifdef MOZ_CRASHREPORTER
199   true,
200 #else
201   false,
202 #endif
204   MOZ_NORMANDY:
205 #ifdef MOZ_NORMANDY
206   true,
207 #else
208   false,
209 #endif
211   MOZ_MAINTENANCE_SERVICE:
212 #ifdef MOZ_MAINTENANCE_SERVICE
213   true,
214 #else
215   false,
216 #endif
218   MOZ_BACKGROUNDTASKS:
219 #ifdef MOZ_BACKGROUNDTASKS
220   true,
221 #else
222   false,
223 #endif
225   MOZ_UPDATE_AGENT:
226 #ifdef MOZ_UPDATE_AGENT
227   true,
228 #else
229   false,
230 #endif
232   MOZ_BITS_DOWNLOAD:
233 #ifdef MOZ_BITS_DOWNLOAD
234   true,
235 #else
236   false,
237 #endif
239   DEBUG:
240 #ifdef DEBUG
241   true,
242 #else
243   false,
244 #endif
246   ASAN:
247 #ifdef MOZ_ASAN
248   true,
249 #else
250   false,
251 #endif
253   ASAN_REPORTER:
254 #ifdef MOZ_ASAN_REPORTER
255   true,
256 #else
257   false,
258 #endif
260   TSAN:
261 #ifdef MOZ_TSAN
262   true,
263 #else
264   false,
265 #endif
267   MOZ_SYSTEM_NSS:
268 #ifdef MOZ_SYSTEM_NSS
269   true,
270 #else
271   false,
272 #endif
274   MOZ_PLACES:
275 #ifdef MOZ_PLACES
276   true,
277 #else
278   false,
279 #endif
281   MOZ_REQUIRE_SIGNING:
282 #ifdef MOZ_REQUIRE_SIGNING
283   true,
284 #else
285   false,
286 #endif
288   get MOZ_UNSIGNED_SCOPES() {
289     let result = 0;
290 #ifdef MOZ_UNSIGNED_APP_SCOPE
291     result |= lazy.AddonManager.SCOPE_APPLICATION;
292 #endif
293 #ifdef MOZ_UNSIGNED_SYSTEM_SCOPE
294     result |= lazy.AddonManager.SCOPE_SYSTEM;
295 #endif
296     return result;
297   },
299   MOZ_ALLOW_ADDON_SIDELOAD:
300 #ifdef MOZ_ALLOW_ADDON_SIDELOAD
301   true,
302 #else
303   false,
304 #endif
306   MOZ_WEBEXT_WEBIDL_ENABLED:
307 #ifdef MOZ_WEBEXT_WEBIDL_ENABLED
308   true,
309 #else
310   false,
311 #endif
313   MENUBAR_CAN_AUTOHIDE:
314 #ifdef MENUBAR_CAN_AUTOHIDE
315   true,
316 #else
317   false,
318 #endif
320   MOZ_ANDROID_HISTORY:
321 #ifdef MOZ_ANDROID_HISTORY
322   true,
323 #else
324   false,
325 #endif
327   MOZ_GECKO_PROFILER:
328 #ifdef MOZ_GECKO_PROFILER
329   true,
330 #else
331   false,
332 #endif
334   DLL_PREFIX: "@DLL_PREFIX@",
335   DLL_SUFFIX: "@DLL_SUFFIX@",
337   MOZ_APP_NAME: "@MOZ_APP_NAME@",
338   MOZ_APP_BASENAME: "@MOZ_APP_BASENAME@",
339   // N.b.: you almost certainly want brandShortName/brand-short-name:
340   // MOZ_APP_DISPLAYNAME should only be used for static user-visible
341   // fields (e.g., DLL properties, Mac Bundle name, or similar).
342   MOZ_APP_DISPLAYNAME_DO_NOT_USE: "@MOZ_APP_DISPLAYNAME@",
343   MOZ_APP_VERSION: "@MOZ_APP_VERSION@",
344   MOZ_APP_VERSION_DISPLAY: "@MOZ_APP_VERSION_DISPLAY@",
345   MOZ_BUILDID: "@MOZ_BUILDID@",
346   MOZ_BUILD_APP: "@MOZ_BUILD_APP@",
347   MOZ_MACBUNDLE_ID: "@MOZ_MACBUNDLE_ID@",
348   MOZ_MACBUNDLE_NAME: "@MOZ_MACBUNDLE_NAME@",
349   MOZ_UPDATE_CHANNEL: "@MOZ_UPDATE_CHANNEL@",
350   MOZ_WIDGET_TOOLKIT: "@MOZ_WIDGET_TOOLKIT@",
351   ANDROID_PACKAGE_NAME: "@ANDROID_PACKAGE_NAME@",
353   DEBUG_JS_MODULES: "@DEBUG_JS_MODULES@",
355   MOZ_BING_API_CLIENTID: "@MOZ_BING_API_CLIENTID@",
356   MOZ_BING_API_KEY: "@MOZ_BING_API_KEY@",
357   MOZ_GOOGLE_LOCATION_SERVICE_API_KEY: "@MOZ_GOOGLE_LOCATION_SERVICE_API_KEY@",
358   MOZ_GOOGLE_SAFEBROWSING_API_KEY: "@MOZ_GOOGLE_SAFEBROWSING_API_KEY@",
359   MOZ_MOZILLA_API_KEY: "@MOZ_MOZILLA_API_KEY@",
361   BROWSER_CHROME_URL: "@BROWSER_CHROME_URL@",
363   OMNIJAR_NAME: "@OMNIJAR_NAME@",
365   // URL to the hg revision this was built from (e.g.
366   // "https://hg.mozilla.org/mozilla-central/rev/6256ec9113c1")
367   // On unofficial builds, this is an empty string.
368 #ifndef MOZ_SOURCE_URL
369 #define MOZ_SOURCE_URL
370 #endif
371   SOURCE_REVISION_URL: "@MOZ_SOURCE_URL@",
373   HAVE_USR_LIB64_DIR:
374 #ifdef HAVE_USR_LIB64_DIR
375     true,
376 #else
377     false,
378 #endif
380   HAVE_SHELL_SERVICE:
381 #ifdef HAVE_SHELL_SERVICE
382     true,
383 #else
384     false,
385 #endif
387   MOZ_CODE_COVERAGE:
388 #ifdef MOZ_CODE_COVERAGE
389     true,
390 #else
391     false,
392 #endif
394   TELEMETRY_PING_FORMAT_VERSION: @TELEMETRY_PING_FORMAT_VERSION@,
396   MOZ_NEW_NOTIFICATION_STORE:
397 #ifdef MOZ_NEW_NOTIFICATION_STORE
398     true,
399 #else
400     false,
401 #endif
403   ENABLE_WEBDRIVER:
404 #ifdef ENABLE_WEBDRIVER
405     true,
406 #else
407     false,
408 #endif
410   REMOTE_SETTINGS_SERVER_URL:
411 #ifdef MOZ_THUNDERBIRD
412     "https://thunderbird-settings.thunderbird.net/v1",
413 #else
414     "https://firefox.settings.services.mozilla.com/v1",
415 #endif
417   REMOTE_SETTINGS_VERIFY_SIGNATURE:
418 #ifdef MOZ_THUNDERBIRD
419     false,
420 #else
421     true,
422 #endif
424   REMOTE_SETTINGS_DEFAULT_BUCKET:
425 #ifdef MOZ_THUNDERBIRD
426     "thunderbird",
427 #else
428     "main",
429 #endif
431   MOZ_GLEAN_ANDROID:
432 #ifdef MOZ_GLEAN_ANDROID
433     true,
434 #else
435     false,
436 #endif
438   MOZ_JXL:
439 #ifdef MOZ_JXL
440     true,
441 #else
442     false,
443 #endif
445   MOZ_CAN_FOLLOW_SYSTEM_TIME:
446 #ifdef XP_WIN
447     true,
448 #elif XP_MACOSX
449     true,
450 #elif MOZ_WIDGET_GTK
451   #ifdef MOZ_ENABLE_DBUS
452     true,
453   #else
454     false,
455   #endif
456 #else
457     false,
458 #endif
460   MOZ_SYSTEM_POLICIES:
461 #ifdef MOZ_SYSTEM_POLICIES
462     true,
463 #else
464     false,
465 #endif
467   // Returns true for CN region build when distibution id set as 'MozillaOnline'
468   isChinaRepack() {
469     return (
470       Services.prefs
471       .getDefaultBranch("")
472       .getCharPref("distribution.id", "default") === "MozillaOnline"
473     );
474   },