We've talked about this for years, but haven't done any serious work on it, yet.
Previously, there was no documentation for crash report annotations--it was a free-for-all. Thus building an accurate schema was a massive project. That's much easier now since Gabriele and crew have built and maintained a CrashAnnotations.yaml file:
There are annotations missing from that, but it's got a lot of stuff in it.
Another reason I haven't worked on this yet is that I have no idea what we should do with crash report data that doesn't validate. Should we reject it from collection? Should we collect it, but reject it from processing? How do we investigate validation problems? How does someone else find out about validation problems? Etc. All that needs to get figured out. There are lots of pros and cons for the various options.
We have to think about:
- the needs of people who are writing crash reporters and need to test crash reporting
- the needs of people who have submitted crash reports and want to share those crash reports, perhaps to get support
- the fact that when Firefox and other products are crashing, they might be in an iffy state and may send data that's partially corrupted
Telemetry has infrastructure for invalid data. We should look at what they're doing and apply it here if we can.