зеркало из https://github.com/mozilla/gecko-dev.git
bad3183238
In short - if a user forcibly terminates the browser because it seems to be permanently hung, we currently do not get a change to record the hang. This is unfortunate, because these likely represent the most egregious hangs in terms of user frustration. This patch seeks to address that. If a hang exceeds 8192ms (the current definition of a "permahang" in existing BHR terms), then we decide to immediately persist it to disk, in case we never get a chance to return to the main thread and submit it. On the next start of the browser, we read the file from disk on a background thread, and just submit it using the normal mechanism. Regarding the handling of the file itself, I tried to do the simplest thing I could - as far as I can tell there is no standard simple serialization mechanism available directly to C++ in Gecko, so I just serialized it by hand. I didn't take any special care with endianness or anything as I can't think of a situation in which we really care at all about these files being transferable between architectures. I directly used PR_Write / PR_Read instead of doing something fancy like memory mapping the file, because I don't think performance is a critical concern here and it offers a simple protection against reading out of bounds. Differential Revision: https://phabricator.services.mozilla.com/D52566 --HG-- extra : moz-landing-system : lando |
||
---|---|---|
.. | ||
2d | ||
angle | ||
cairo | ||
config | ||
docs | ||
gl | ||
graphite2 | ||
harfbuzz | ||
ipc | ||
layers | ||
ots | ||
qcms | ||
sfntly | ||
skia | ||
src | ||
tests | ||
thebes | ||
vr | ||
webrender_bindings | ||
wgpu | ||
wr | ||
ycbcr | ||
moz.build |