gecko-dev/gfx
Doug Thayer bad3183238 Bug 1594577 - Record hangs which precede forced shutdowns r=froydnj
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
2019-11-21 22:41:00 +00:00
..
2d Bug 1585806 - Make SideBits an enum class, add casting where necessary. r=botond 2019-11-16 20:59:34 +00:00
angle Bug 1562642 - add missing license in gfx/ r=nical 2019-11-12 22:01:02 +00:00
cairo Bug 1584639 - silence Cairo shift warnings. r=aosmond 2019-11-19 11:49:35 +00:00
config Bug 1586396 - Add WebGPUThreading mock r=jgilbert 2019-10-15 21:57:37 +00:00
docs Bug 1583983 - Add threading / locking overview to APZ docs. r=tnikkel,nical 2019-09-26 09:48:24 +00:00
gl Bug 1577336: Part 6 - Make SurfaceDescriptorGPUVideo a union that contains SurfaceDescriptorRemoteDecoder r=mattwoodrow,jolin 2019-11-20 21:55:06 +00:00
graphite2 Bug 1584000 - Migrate glyph to character association code from libThebes to graphite for sandboxed libGraphite performance r=jfkthame,froydnj 2019-10-30 07:48:25 +00:00
harfbuzz Bug 1592165 - Update HarfBuzz to 2.6.4. r=jfkthame 2019-11-07 15:52:22 +00:00
ipc Bug 1594577 - Record hangs which precede forced shutdowns r=froydnj 2019-11-21 22:41:00 +00:00
layers Backed out changeset 0ae41aa8997b (bug 1594145) for build bustages on GfxInfo.cpp. CLOSED TREE 2019-11-22 14:52:04 +02:00
ots Bug 1577799 - Update OTS to 8.0.0. r=jfkthame 2019-09-13 09:47:50 +00:00
qcms Bug 1558883 - Add QCMS transform correctness and performance tests. r=miko 2019-06-25 09:45:56 -04:00
sfntly Bug 1583192 - Re-apply bug 1330495 after bug 1581145. r=froydnj 2019-11-11 13:41:11 +00:00
skia Bug 1593970 - scale subpixel contribution based on ClearType level setting. r=jfkthame 2019-11-09 13:03:47 +00:00
src Bug 1596339 Part 7 - Delete unused operator<< for nsRect. r=dholbert 2019-11-15 03:52:21 +00:00
tests Bug 1587142 - Remove miscellaneous XBL tests r=bzbarsky 2019-10-25 21:53:33 +00:00
thebes Backed out changeset 0ae41aa8997b (bug 1594145) for build bustages on GfxInfo.cpp. CLOSED TREE 2019-11-22 14:52:04 +02:00
vr Bug 1562825 - Checking if puppet is active before initializing VR puppet command buffers. r=kip 2019-11-08 23:46:22 +00:00
webrender_bindings Bug 1597585 - Remove WidgetRenderingContext's unused field mCompositor. r=mattwoodrow 2019-11-20 23:22:18 +00:00
wgpu Bug 1594182 - Move wgpu stuff under gfx/wgpu r=jgilbert,remote-protocol-reviewers 2019-11-15 00:29:53 +00:00
wr Bug 1594128 - Don't rely on high bits to store the brush_kind varying. r=gw 2019-11-21 17:38:25 +00:00
ycbcr Bug 1511604 - Swizzle YCbCr->RGB data on big-endian machines. r=lsalzman 2019-09-17 17:47:17 +00:00
moz.build Bug 1594907 - Fix some duplicate URL segments in firefox-source-docs, r=sylvestre 2019-11-07 23:07:20 +00:00