Skip to content

Conversation

@jonathanmendez
Copy link
Contributor

@jonathanmendez jonathanmendez commented Jan 7, 2026

https://bugzilla.mozilla.org/show_bug.cgi?id=2014470

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 default simplified distribution.ini that specifies console.enterfox.eu for local/non-repack builds

@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
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.

Copy link
Contributor

Choose a reason for hiding this comment

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

Don't we have this flag set? I'm confused what you mean here.

@jonathanmendez jonathanmendez force-pushed the jmendez/crash-reports-to-console branch from 999bea7 to 978baa6 Compare January 14, 2026 22:21
@jonathanmendez jonathanmendez requested a review from lissyx January 16, 2026 18:22
@jonathanmendez jonathanmendez removed the request for review from fiji-flo January 29, 2026 15:58
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.

Don't we have this flag set? I'm confused what you mean here.

# Must be replaced as part of a repack for Enterprise builds

[Preferences]
enterprise.console.address=https://console.enterfox.eu No newline at end of file
Copy link
Contributor

Choose a reason for hiding this comment

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

Missing newline at the end. (That's what the symbol here means IIUC)

Copy link
Contributor

Choose a reason for hiding this comment

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

Of course in the comment view it explicitly says that now 🤣

if (serverUrl.Last() != '/') {
serverUrl.Append('/');
}
serverUrl.Append("api/browser/crash-reports/submit");
Copy link
Contributor

Choose a reason for hiding this comment

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

For the other prefs that @fiji-flo is repacking, I think we make the entire URL configurable, see #373, so I wonder what he prefers here...

Copy link
Contributor

Choose a reason for hiding this comment

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

I think the all should go the same domain for the foreseeable time. Ideally the repack only set's the console URL but that would require more work. So maybe for now we add the full urls.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

If the ideal is "repack only specifies console URL, and we build the various other URLs from it", then it seems like the current state of the PR achieves that for the crash reporter URL. The "more work" that was required is already implemented for this case. Is it better to stick with the current implementation, or do we specify the full crash report URL separately in the repacks just to match the others for now?
Of note is that there is not an existing pref for the crash reporter URL.

@jonathanmendez jonathanmendez force-pushed the jmendez/crash-reports-to-console branch from f30cc9b to 5043e71 Compare January 30, 2026 17:00
@jonathanmendez jonathanmendez force-pushed the jmendez/crash-reports-to-console branch from 5043e71 to e7e3ace Compare February 2, 2026 17:37
@jonathanmendez jonathanmendez requested a review from gcp February 2, 2026 17:48
@jonathanmendez jonathanmendez changed the title Send crash reports to console URL Bug 2014470 - Send crash reports to console URL Feb 4, 2026
@jonathanmendez jonathanmendez merged commit d8d8a11 into enterprise-main Feb 4, 2026
1 check passed
@jonathanmendez jonathanmendez deleted the jmendez/crash-reports-to-console branch February 4, 2026 15:33
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