Skip to content

Conversation

@jonathanmendez
Copy link
Contributor

@jonathanmendez jonathanmendez commented Jan 7, 2026

Since crash reporting gets started very early before prefs are available, read console url directly from distribution.ini

  • Null out the default server used in application.ini.h so that even if the distribution.ini file fails to be loaded, we don't send a crash report to a mozilla.com url.
  • Add a hardcoded fallback to https://console.enterfox.eu behind an EARLY_BETA_OR_EARLIER ifdef

#include @TOPOBJDIR@/buildid.h
#if MOZ_CRASHREPORTER
[Crash Reporter]
ServerURL=https://console.enterfox.eu/api/browser/crash-reports/submit?id=@MOZ_APP_ID@&version=@MOZ_APP_VERSION@&buildid=@MOZ_BUILDID@
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@fiji-flo I came up with this api path by modeling after the other existing ones. Please review and let me know if I should use something else instead.

#endif
@RESPATH@/application.ini
#ifdef MOZ_ENTERPRISE
@RESPATH@/enterprise.override.ini
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This needs to be supported repackage-side https://github.com/mozilla/enterprise-repack/tree/master/gcpEU

@fiji-flo
Copy link
Contributor

fiji-flo commented Jan 9, 2026

As far as I can see we don't need the query parameters that's what I got in the payload anyhow:

{
  "URL": "about:sessionrestore",
  "uuid": "22a30c5e-2244-4165-bbe7-e6d4eebcc949",
  "Notes": "-L1000-W0000000-T1) WR? WR+ ",
  "Vendor": "Mozilla",
  "BuildID": "20251215090548",
  "Version": "147.0",
  "SafeMode": "0",
  "UptimeTS": "11.083586083333332",
  "CrashTime": "1767889265",
  "ProductID": "{ec8030f7-c20a-464f-9b0e-13a3a9e97384}",
  "InstallTime": "1765986083",
  "ProductName": "Firefox",
  "StartupTime": "1767889254",
  "HeadlessMode": "0",
  "StartupCrash": "0",
  "Throttleable": "1",
  "DOMIPCEnabled": "1",
  "SubmittedFrom": "Client",
  "MozCrashReason": "MOZ_CRASH(Crash via about:crashparent)",
  "ReleaseChannel": "beta",
  "AdapterVendorID": "0x106b",
  "GpuSandboxLevel": "1",
  "GPUProcessStatus": "Running",
  "RDDProcessStatus": "Running",
  "useragent_locale": "de",
  "DOMFissionEnabled": "1",
  "MacMemoryPressure": "Warning",
  "NimbusEnrollments": "ai-chatbot-page-summarization-mvp-treatment-a-callout-badge-rollout-v2:treatment-a-callout-badge,context-id-rotation-every-3-days:control,disable-enrollment-status-telemetry-for-firefox-desktop-nimbustelemetry-beta:control,enable-nimbus-unenrollment-synchronization-beta:control,fast-udp-for-firefox-treatment-fast-udp-rollout:treatment-fast-udp,firefox-backup-feature-gradual-rollout:treatment,fx-accounts-ping-release-rollout-2:control,hnt-weather-opt-in-nightly-and-beta:control,local-network-access-146-beta:enabled,new-tab-14802025121163751-to-beta:control,relay-integration-into-firefox-beta-for-all-fxa-users:enable-relay-integration,smart-tab-groups-rollout-worldwide-en-excluding-us:smart-tab-groups,windows-ui-automation:rollout",
  "StartupCacheValid": "1",
  "BackgroundTaskMode": "0",
  "AvailableSwapMemory": "790036480",
  "ContentSandboxLevel": "3",
  "LastStartupWasCrash": "0",
  "TotalPhysicalMemory": "25769803776",
  "submitted_timestamp": "2026-01-08T16:21:08.372724+00:00",
  "EMCheckCompatibility": "true",
  "TelemetryEnvironment": "{\"build\":{\"applicationId\":\"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}\",\"applicationName\":\"Firefox\",\"architecture\":\"aarch64\",\"buildId\":\"20251215090548\",\"version\":\"147.0\",\"vendor\":\"Mozilla\",\"displayVersion\":\"147.0b4\",\"platformVersion\":\"147.0\",\"xpcomAbi\":\"aarch64-gcc3\",\"updaterAvailable\":true},\"partner\":{\"distributionId\":null,\"distributionVersion\":null,\"partnerId\":null,\"distributor\":null,\"distributorChannel\":null,\"partnerNames\":[]},\"system\":{\"memoryMB\":24576,\"virtualMaxMB\":null,\"cpu\":{\"extensions\":[\"hasNEON\"]},\"os\":{\"name\":\"Darwin\",\"version\":\"25.2.0\",\"locale\":\"en-US\"},\"hdd\":{\"profile\":{\"model\":null,\"revision\":null,\"type\":null},\"binary\":{\"model\":null,\"revision\":null,\"type\":null},\"system\":{\"model\":null,\"revision\":null,\"type\":null}},\"gfx\":{\"DWriteEnabled\":null,\"ContentBackend\":\"Skia\",\"Headless\":false,\"TargetFrameRate\":120,\"textScaleFactor\":1,\"adapters\":[{\"description\":null,\"vendorID\":\"0x106b\",\"deviceID\":null,\"subsysID\":null,\"RAM\":0,\"driver\":null,\"driverVendor\":null,\"driverVersion\":null,\"driverDate\":null,\"GPUActive\":true}],\"monitors\":[{\"screenWidth\":3024,\"screenHeight\":1964,\"defaultCSSScaleFactor\":2,\"contentsScaleFactor\":2}],\"features\":{\"compositor\":\"webrender\",\"hwCompositing\":{\"status\":\"available\"},\"gpuProcess\":{\"status\":\"available\"},\"webrender\":{\"status\":\"available\"},\"wrCompositor\":{\"status\":\"available\"},\"openglCompositing\":{\"status\":\"available\"},\"omtp\":{\"status\":\"unused\"}}},\"appleModelId\":\"Mac16,8\",\"hasWinPackageId\":null},\"settings\":{\"blocklistEnabled\":true,\"e10sEnabled\":true,\"e10sMultiProcesses\":8,\"fissionEnabled\":true,\"locale\":\"de\",\"intl\":{\"requestedLocales\":[\"de\",\"en-US\"],\"availableLocales\":[\"en-US\",\"de\"],\"appLocales\":[\"de\",\"en-US\"],\"systemLocales\":[\"en-US\"],\"regionalPrefsLocales\":[\"en-US\"],\"acceptLanguages\":[\"de\",\"en-US\",\"en\"]},\"update\":{\"channel\":\"beta\",\"enabled\":true,\"autoDownload\":true,\"background\":true},\"userPrefs\":{\"browser.shell.checkDefaultBrowser\":false,\"browser.search.region\":\"DE\",\"browser.urlbar.autoFill\":true,\"browser.urlbar.autoFill.adaptiveHistory.enabled\":false,\"browser.urlbar.dnsResolveSingleWordsAfterSearch\":0,\"browser.urlbar.suggest.quicksuggest.sponsored\":true,\"devtools.chrome.enabled\":true,\"devtools.debugger.remote-enabled\":true,\"media.gmp-gmpopenh264.lastInstallStart\":1742507388,\"media.gmp-gmpopenh264.lastDownload\":1742507389,\"media.gmp-gmpopenh264.lastUpdate\":1742507389,\"media.gmp-widevinecdm.lastInstallStart\":1764852110,\"media.gmp-widevinecdm.lastDownload\":1764852111,\"media.gmp-widevinecdm.lastUpdate\":1764852111,\"media.gmp-manager.lastCheck\":1765900204,\"media.gmp-manager.lastEmptyCheck\":1765900204,\"network.http.microsoft-entra-sso.enabled\":false,\"network.trr.strict_native_fallback\":false,\"widget.content.gtk-high-contrast.enabled\":true},\"sandbox\":{\"effectiveContentProcessLevel\":3,\"contentWin32kLockdownState\":3},\"addonCompatibilityCheckEnabled\":true,\"isDefaultBrowser\":false,\"attribution\":{\"dlsource\":\"mozillaci\"},\"defaultSearchEngine\":\"google-b-d\",\"defaultSearchEngineData\":{\"loadPath\":\"[app]google\",\"name\":\"Google\",\"submissionURL\":\"https://www.google.com/search?client=firefox-b-d&q=\"}},\"profile\":{\"creationDate\":20052,\"firstUseDate\":20052},\"addons\":{\"activeAddons\":{\"de-CH@dictionaries.addons.mozilla.org\":{\"version\":\"2.1\",\"scope\":1,\"type\":\"dictionary\",\"updateDay\":20069,\"isSystem\":false,\"isWebExtension\":true,\"multiprocessCompatible\":true,\"blocklisted\":false,\"description\":\"Wörterbuch mit Schweizer Varianten der deutschen Schreibungen für die Rechtschreibprüfung in Firefox\",\"name\":\"German Dictionary (Switzerland)\",\"userDisabled\":false,\"appDisabled\":false,\"foreignInstall\":false,\"hasBinaryComponents\":false,\"installDay\":20069,\"quarantineIgnoredByApp\":false,\"quarantineIgnoredByUser\":false},\"de-AT@dictionaries.addons.mozilla.org\":{\"version\":\"2.1\",\"scope\":1,\"type\":\"dictionary\",\"updateDay\":20069,\"isSystem\":false,\"isWebExtension\":true,\"multiprocessCompatible\":true,\"blocklisted\":false,\"description\":\"Deutsches Wörterbuch (neue Rechtschreibung), erweitert mit österreichischen Wörtern, für die Rechtsc\",\"name\":\"German Dictionary, extended for Austria\",\"userDisabled\":false,\"appDisabled\":false,\"foreignInstall\":false,\"hasBinaryComponents\":false,\"installDay\":20069,\"quarantineIgnoredByApp\":false,\"quarantineIgnoredByUser\":false},\"de-DE@dictionaries.addons.mozilla.org\":{\"version\":\"2.1\",\"scope\":1,\"type\":\"dictionary\",\"updateDay\":20069,\"isSystem\":false,\"isWebExtension\":true,\"multiprocessCompatible\":true,\"blocklisted\":false,\"description\":\"Deutsches Wörterbuch (neue Rechtschreibung) für die Rechtschreibprüfung in Firefox.\",\"name\":\"German Dictionary\",\"userDisabled\":false,\"appDisabled\":false,\"foreignInstall\":false,\"hasBinaryComponents\":false,\"installDay\":20069,\"quarantineIgnoredByApp\":false,\"quarantineIgnoredByUser\":false},\"data-leak-blocker@mozilla.com\":{\"version\":\"144.0.20250915.154356\",\"scope\":1,\"type\":\"extension\",\"updateDay\":20354,\"isSystem\":true,\"isWebExtension\":true,\"multiprocessCompatible\":true,\"blocklisted\":false,\"description\":\"\",\"name\":\"Data Leak Blocker\",\"userDisabled\":false,\"appDisabled\":false,\"foreignInstall\":false,\"hasBinaryComponents\":false,\"installDay\":20354,\"signedState\":3,\"signedTypes\":\"[2,1]\",\"quarantineIgnoredByApp\":true,\"quarantineIgnoredByUser\":false},\"langpack-de@firefox.mozilla.org\":{\"version\":\"147.0.20251215.90548\",\"scope\":1,\"type\":\"locale\",\"updateDay\":20439,\"isSystem\":false,\"isWebExtension\":true,\"multiprocessCompatible\":true,\"blocklisted\":false,\"description\":\"Firefox Language Pack for Deutsch (de) – German\",\"name\":\"Language: Deutsch (German)\",\"userDisabled\":false,\"appDisabled\":false,\"foreignInstall\":false,\"hasBinaryComponents\":false,\"installDay\":20069,\"signedState\":2,\"signedTypes\":\"[2,1]\",\"quarantineIgnoredByApp\":false,\"quarantineIgnoredByUser\":false},\"formautofill@mozilla.org\":{\"version\":\"1.0.1\",\"scope\":4,\"type\":\"extension\",\"updateDay\":0,\"isSystem\":true,\"isWebExtension\":true,\"multiprocessCompatible\":true,\"blocklisted\":false,\"description\":null,\"name\":\"Form Autofill\",\"userDisabled\":false,\"appDisabled\":false,\"foreignInstall\":false,\"hasBinaryComponents\":false,\"installDay\":0,\"quarantineIgnoredByApp\":true,\"quarantineIgnoredByUser\":false},\"pictureinpicture@mozilla.org\":{\"version\":\"1.0.0\",\"scope\":4,\"type\":\"extension\",\"updateDay\":0,\"isSystem\":true,\"isWebExtension\":true,\"multiprocessCompatible\":true,\"blocklisted\":false,\"description\":\"Fixes for web compatibility with Picture-in-Picture\",\"name\":\"Picture-In-Picture\",\"userDisabled\":false,\"appDisabled\":false,\"foreignInstall\":false,\"hasBinaryComponents\":false,\"installDay\":0,\"quarantineIgnoredByApp\":true,\"quarantineIgnoredByUser\":false},\"addons-search-detection@mozilla.com\":{\"version\":\"3.0.0\",\"scope\":4,\"type\":\"extension\",\"updateDay\":0,\"isSystem\":true,\"isWebExtension\":true,\"multiprocessCompatible\":true,\"blocklisted\":false,\"description\":\"\",\"name\":\"Add-ons Search Detection\",\"userDisabled\":false,\"appDisabled\":false,\"foreignInstall\":false,\"hasBinaryComponents\":false,\"installDay\":0,\"quarantineIgnoredByApp\":true,\"quarantineIgnoredByUser\":false},\"ipp-activator@mozilla.com\":{\"version\":\"0.1\",\"scope\":4,\"type\":\"extension\",\"updateDay\":0,\"isSystem\":true,\"isWebExtension\":true,\"multiprocessCompatible\":true,\"blocklisted\":false,\"description\":\"A system add-on to activate IPP in 143\",\"name\":\"IPP Activator\",\"userDisabled\":false,\"appDisabled\":false,\"foreignInstall\":false,\"hasBinaryComponents\":false,\"installDay\":0,\"quarantineIgnoredByApp\":true,\"quarantineIgnoredByUser\":false},\"webcompat@mozilla.org\":{\"version\":\"147.10.0\",\"scope\":4,\"type\":\"extension\",\"updateDay\":0,\"isSystem\":true,\"isWebExtension\":true,\"multiprocessCompatible\":true,\"blocklisted\":false,\"description\":\"Urgent post-release fixes for web compatibility.\",\"name\":\"Web Compatibility Interventions\",\"userDisabled\":false,\"appDisabled\":false,\"foreignInstall\":false,\"hasBinaryComponents\":false,\"installDay\":0,\"quarantineIgnoredByApp\":true,\"quarantineIgnoredByUser\":false},\"newtab@mozilla.org\":{\"version\":\"148.0.20251211.63751\",\"scope\":1,\"type\":\"extension\",\"updateDay\":20461,\"isSystem\":false,\"isWebExtension\":true,\"multiprocessCompatible\":true,\"blocklisted\":false,\"description\":\"\",\"name\":\"New Tab\",\"userDisabled\":false,\"appDisabled\":false,\"foreignInstall\":false,\"hasBinaryComponents\":false,\"installDay\":20461,\"signedState\":3,\"signedTypes\":\"[2,1]\",\"quarantineIgnoredByApp\":true,\"quarantineIgnoredByUser\":false}},\"theme\":{\"id\":\"default-theme@mozilla.org\",\"blocklisted\":false,\"description\":\"Den Betriebssystemeinstellungen für Schaltflächen, Menüs und Fenster folgen.\",\"name\":\"System-Theme – automatisch\",\"userDisabled\":false,\"appDisabled\":false,\"version\":\"1.4.2\",\"scope\":4,\"foreignInstall\":false,\"hasBinaryComponents\":false,\"installDay\":20052,\"updateDay\":20052},\"activeGMPlugins\":{\"gmp-gmpopenh264\":{\"version\":\"2.6.0\",\"userDisabled\":false,\"applyBackgroundUpdates\":1},\"gmp-widevinecdm\":{\"version\":\"4.10.2934.0\",\"userDisabled\":false,\"applyBackgroundUpdates\":1}}},\"experiments\":{\"ai-chatbot-page-summarization-mvp-treatment-a-callout-badge-rollout-v2\":{\"branch\":\"treatment-a-callout-badge\",\"type\":\"nimbus-rollout\"},\"context-id-rotation-every-3-days\":{\"branch\":\"control\",\"type\":\"nimbus-rollout\"},\"disable-enrollment-status-telemetry-for-firefox-desktop-nimbustelemetry-beta\":{\"branch\":\"control\",\"type\":\"nimbus-rollout\"},\"enable-nimbus-unenrollment-synchronization-beta\":{\"branch\":\"control\",\"type\":\"nimbus-rollout\"},\"fast-udp-for-firefox-treatment-fast-udp-rollout\":{\"branch\":\"treatment-fast-udp\",\"type\":\"nimbus-rollout\"},\"firefox-backup-feature-gradual-rollout\":{\"branch\":\"treatment\",\"type\":\"nimbus-rollout\"},\"fx-accounts-ping-release-rollout-2\":{\"branch\":\"control\",\"type\":\"nimbus-rollout\"},\"hnt-weather-opt-in-nightly-and-beta\":{\"branch\":\"control\",\"type\":\"nimbus-rollout\"},\"local-network-access-146-beta\":{\"branch\":\"enabled\",\"type\":\"nimbus-rollout\"},\"new-tab-14802025121163751-to-beta\":{\"branch\":\"control\",\"type\":\"nimbus-rollout\"},\"relay-integration-into-firefox-beta-for-all-fxa-users\":{\"branch\":\"enable-relay-integration\",\"type\":\"nimbus-rollout\"},\"smart-tab-groups-rollout-worldwide-en-excluding-us\":{\"branch\":\"smart-tab-groups\",\"type\":\"nimbus-rollout\"},\"windows-ui-automation\":{\"branch\":\"rollout\",\"type\":\"nimbus-rollout\"}}}",
  "UtilityProcessStatus": "Running",
  "ContentSandboxCapable": "1",
  "GPUProcessLaunchCount": "1",
  "SecondsSinceLastCrash": "381",
  "AvailablePhysicalMemory": "106758144",
  "MacMemoryPressureSysctl": "2",
  "PurgeablePhysicalMemory": "0",
  "MacAvailableMemorySysctl": "40",
  "MacMemoryPressureNormalTime": "Unset",
  "MacMemoryPressureWarningTime": "1767889254",
  "MacMemoryPressureCriticalTime": "Unset"
}

@jonathanmendez jonathanmendez requested a review from lissyx January 13, 2026 22:16

## Crash reporter url gets set from console url in distribution.ini
## This clears the default value to avoid mozilla.com url
ac_add_options --with-crashreporter-url=
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changes to this file does not get picked by TaskCluster, it is only for local builds and it was indeed sourced on GitHub Actions.

You want to make sure it is reflected in (maybe not all since there's inheritance):

$ find browser/config/mozconfigs/|grep enterprise
browser/config/mozconfigs/linux64/debug-enterprise
browser/config/mozconfigs/linux64/nightly-enterprise
browser/config/mozconfigs/linux64/profile-generate-enterprise
browser/config/mozconfigs/macosx64-aarch64/debug-enterprise
browser/config/mozconfigs/macosx64-aarch64/nightly-enterprise
browser/config/mozconfigs/macosx64-aarch64/profile-generate-enterprise
browser/config/mozconfigs/macosx64/debug-enterprise
browser/config/mozconfigs/macosx64/nightly-enterprise
browser/config/mozconfigs/win64/debug-enterprise
browser/config/mozconfigs/win64/nightly-enterprise
browser/config/mozconfigs/win64/profile-generate-enterprise

nsresult XRE_ParseEnterpriseServerURL(XREAppData& aAppData) {
nsCString serverUrl;
nsresult rv = ParseConsoleUrlFromDistribution(aAppData, serverUrl);
# if defined(EARLY_BETA_OR_EARLIER)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I dont think this is going to do what you want given the definition of EARLY_BETA_OR_EARLIER and how we do builds right now.

@jonathanmendez jonathanmendez force-pushed the jmendez/crash-reports-to-console branch from 999bea7 to 978baa6 Compare January 14, 2026 22:21

ac_add_options --enable-enterprise
# This clears the default value to avoid mozilla.com url compiled in product
ac_add_options --with-crashreporter-url=
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we do this maybe elsewhere?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

imply_option("--with-app-basename", "FirefoxEnterprise", when="--enable-enterprise")
imply_option("--with-app-name", "firefox", when="--enable-enterprise")
imply_option(
"--with-branding", "browser/branding/enterprise", when="--enable-enterprise"
)

@jonathanmendez

@jonathanmendez jonathanmendez requested a review from lissyx January 16, 2026 18:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants