Bug 1875768 - Call the appropriate postfork handler on MacOS r=glandium
[gecko.git] / toolkit / modules / AppConstants.sys.mjs
blob467883519bc371a9a013efcc37c54d390304fc97
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 /**
9  * AppConstants is a set of immutable constants that are defined at build time.
10  * These should not depend on any other JavaScript module.
11  */
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   MOZ_UNSIGNED_APP_SCOPE:
296 #ifdef MOZ_UNSIGNED_APP_SCOPE
297   true,
298 #else
299   false,
300 #endif
302   MOZ_UNSIGNED_SYSTEM_SCOPE:
303 #ifdef MOZ_UNSIGNED_SYSTEM_SCOPE
304   true,
305 #else
306   false,
307 #endif
309   MOZ_ALLOW_ADDON_SIDELOAD:
310 #ifdef MOZ_ALLOW_ADDON_SIDELOAD
311   true,
312 #else
313   false,
314 #endif
316   MOZ_WEBEXT_WEBIDL_ENABLED:
317 #ifdef MOZ_WEBEXT_WEBIDL_ENABLED
318   true,
319 #else
320   false,
321 #endif
323   MENUBAR_CAN_AUTOHIDE:
324 #ifdef MENUBAR_CAN_AUTOHIDE
325   true,
326 #else
327   false,
328 #endif
330   MOZ_GECKOVIEW_HISTORY:
331 #ifdef MOZ_GECKOVIEW_HISTORY
332   true,
333 #else
334   false,
335 #endif
337   MOZ_GECKO_PROFILER:
338 #ifdef MOZ_GECKO_PROFILER
339   true,
340 #else
341   false,
342 #endif
344   DLL_PREFIX: "@DLL_PREFIX@",
345   DLL_SUFFIX: "@DLL_SUFFIX@",
347   MOZ_APP_NAME: "@MOZ_APP_NAME@",
348   MOZ_APP_BASENAME: "@MOZ_APP_BASENAME@",
349   // N.b.: you almost certainly want brandShortName/brand-short-name:
350   // MOZ_APP_DISPLAYNAME should only be used for static user-visible
351   // fields (e.g., DLL properties, Mac Bundle name, or similar).
352   MOZ_APP_DISPLAYNAME_DO_NOT_USE: "@MOZ_APP_DISPLAYNAME@",
353   MOZ_APP_VERSION: "@MOZ_APP_VERSION@",
354   MOZ_APP_VERSION_DISPLAY: "@MOZ_APP_VERSION_DISPLAY@",
355   MOZ_BUILDID: "@MOZ_BUILDID@",
356   MOZ_BUILD_APP: "@MOZ_BUILD_APP@",
357   MOZ_MACBUNDLE_ID: "@MOZ_MACBUNDLE_ID@",
358   MOZ_MACBUNDLE_NAME: "@MOZ_MACBUNDLE_NAME@",
359   MOZ_UPDATE_CHANNEL: "@MOZ_UPDATE_CHANNEL@",
360   MOZ_WIDGET_TOOLKIT: "@MOZ_WIDGET_TOOLKIT@",
361   ANDROID_PACKAGE_NAME: "@ANDROID_PACKAGE_NAME@",
363   DEBUG_JS_MODULES: "@DEBUG_JS_MODULES@",
365   MOZ_BING_API_CLIENTID: "@MOZ_BING_API_CLIENTID@",
366   MOZ_BING_API_KEY: "@MOZ_BING_API_KEY@",
367   MOZ_GOOGLE_LOCATION_SERVICE_API_KEY: "@MOZ_GOOGLE_LOCATION_SERVICE_API_KEY@",
368   MOZ_GOOGLE_SAFEBROWSING_API_KEY: "@MOZ_GOOGLE_SAFEBROWSING_API_KEY@",
369   MOZ_MOZILLA_API_KEY: "@MOZ_MOZILLA_API_KEY@",
371   BROWSER_CHROME_URL: "@BROWSER_CHROME_URL@",
373   OMNIJAR_NAME: "@OMNIJAR_NAME@",
375   // URL to the hg revision this was built from (e.g.
376   // "https://hg.mozilla.org/mozilla-central/rev/6256ec9113c1")
377   // On unofficial builds, this is an empty string.
378 #ifndef MOZ_SOURCE_URL
379 #define MOZ_SOURCE_URL
380 #endif
381   SOURCE_REVISION_URL: "@MOZ_SOURCE_URL@",
383   HAVE_USR_LIB64_DIR:
384 #ifdef HAVE_USR_LIB64_DIR
385     true,
386 #else
387     false,
388 #endif
390   HAVE_SHELL_SERVICE:
391 #ifdef HAVE_SHELL_SERVICE
392     true,
393 #else
394     false,
395 #endif
397   MOZ_CODE_COVERAGE:
398 #ifdef MOZ_CODE_COVERAGE
399     true,
400 #else
401     false,
402 #endif
404   TELEMETRY_PING_FORMAT_VERSION: @TELEMETRY_PING_FORMAT_VERSION@,
406   MOZ_NEW_NOTIFICATION_STORE:
407 #ifdef MOZ_NEW_NOTIFICATION_STORE
408     true,
409 #else
410     false,
411 #endif
413   ENABLE_WEBDRIVER:
414 #ifdef ENABLE_WEBDRIVER
415     true,
416 #else
417     false,
418 #endif
420   REMOTE_SETTINGS_SERVER_URL:
421 #ifdef MOZ_THUNDERBIRD
422     "https://thunderbird-settings.thunderbird.net/v1",
423 #else
424     "https://firefox.settings.services.mozilla.com/v1",
425 #endif
427   REMOTE_SETTINGS_VERIFY_SIGNATURE:
428 #ifdef MOZ_THUNDERBIRD
429     false,
430 #else
431     true,
432 #endif
434   REMOTE_SETTINGS_DEFAULT_BUCKET:
435 #ifdef MOZ_THUNDERBIRD
436     "thunderbird",
437 #else
438     "main",
439 #endif
441   MOZ_GLEAN_ANDROID:
442 #ifdef MOZ_GLEAN_ANDROID
443     true,
444 #else
445     false,
446 #endif
448   MOZ_JXL:
449 #ifdef MOZ_JXL
450     true,
451 #else
452     false,
453 #endif
455 #if defined(MOZ_THUNDERBIRD) || defined(MOZ_SUITE)
456   MOZ_CAN_FOLLOW_SYSTEM_TIME:
457 #ifdef XP_WIN
458     true,
459 #elif XP_MACOSX
460     true,
461 #elif MOZ_WIDGET_GTK
462   #ifdef MOZ_ENABLE_DBUS
463     true,
464   #else
465     false,
466   #endif
467 #else
468     false,
469 #endif
470 #endif
472   MOZ_SYSTEM_POLICIES:
473 #ifdef MOZ_SYSTEM_POLICIES
474     true,
475 #else
476     false,
477 #endif
479   MOZ_SELECTABLE_PROFILES:
480 #ifdef MOZ_SELECTABLE_PROFILES
481     true,
482 #else
483     false,
484 #endif
486   // Returns true for CN region build when distibution id set as 'MozillaOnline'
487   isChinaRepack() {
488     return (
489       Services.prefs
490       .getDefaultBranch("")
491       .getCharPref("distribution.id", "default") === "MozillaOnline"
492     );
493   },