Confirmed users
407
edits
(Added a link to the crash handling crate which provides exception handlers in Rust, though not yet matching our requirements in full) |
(Added the "Glean-based crash pings" project) |
||
Line 198: | Line 198: | ||
* Localization is done via an INI file and cannot use Fluent | * Localization is done via an INI file and cannot use Fluent | ||
* Given the hard-coded nature of the UI I don't know how it behave with RTL language, probably very poorly | * Given the hard-coded nature of the UI I don't know how it behave with RTL language, probably very poorly | ||
* It does not support Glean-based telemetry | |||
=== Plan === | === Plan === | ||
Line 208: | Line 209: | ||
* We should leverage Rust's asynchronous facility to make processing non-blocking and the UI responsive | * We should leverage Rust's asynchronous facility to make processing non-blocking and the UI responsive | ||
* We should add platform-independent tests for the parts of the code that do not require UI interaction | * We should add platform-independent tests for the parts of the code that do not require UI interaction | ||
== Glean-based crash pings == | |||
Status: not started<br> | |||
Developer(s):<br> | |||
Source code: https://github.com/mozilla/glean/<br> | |||
Original source code:<br> | |||
* https://hg.mozilla.org/mozilla-central/file/tip/toolkit/crashreporter/client/ping.cpp | |||
* https://hg.mozilla.org/mozilla-central/file/tip/toolkit/components/crashes/CrashManager.in.jsm#l711 | |||
Bugs:<br> | |||
=== Description === | |||
For every crash we detect Firefox sends a crash ping holding information that | |||
would help us detect issues and prioritize which ones should be fixed. This | |||
information is highly structured, resembles the JSON output of Socorro's | |||
stackwalker, and unfortunately has seen relatively little use in the last few | |||
years mostly because it's hard to process. | |||
=== Rationale === | |||
The [https://firefox-source-docs.mozilla.org/toolkit/components/telemetry/data/crash-ping.html crash ping] | |||
uses legacy telemetry. This is problematic for a number of reasons: we don't | |||
have good interfaces to process them, the tools we use to extract information | |||
can be complicated to use and the legacy telemetry framework doesn't see active | |||
development as it's been largely replaced by | |||
[https://docs.telemetry.mozilla.org/concepts/glean/glean.html Glean]. Last but | |||
not least Fenix does not support legacy telemetry. While Fennec had | |||
full-featured crash pings Fenix doesn't have any at all, leading to a rather | |||
large blind spot in our telemetry. | |||
The best way to address all of the above is to migrate the crash ping to Glean. | |||
=== Plan === | |||
This migration requires several steps with changes happening in different parts | |||
of the codebase: | |||
* First of all the new Glean-based crash ping needs to be designed. Some parts of it might require changes to Glean's back-end to be able to process the data that it will carry | |||
* Once this is done the code in the CrashManager that assembles the ping for child process crashes needs to be adjusted to use Glean instead of legacy telemetry | |||
* The crash reporter client needs to be instructed to send Glean crash pings. Currently Glean doesn't support C++ so this work will need to happen after we rewrite the crash reporter client | |||
* Last but not least support for the new crash ping needs to be added to Fenix | |||
== minidump-analyzer == | == minidump-analyzer == |