I got pinged on bug 1387598, some Windows-only crashes in a Talos test that deliberately prevents the sessionstore-windows-restored
event from firing. Screenshots 10.10 seemed to cause the regression. (As a reminder, 10.10 includes a fix to synchronize startup and shutdown, see discussion in screenshots pull request #3260.)
Looking at the Talos test definition on dxr, it appears that the test causes the event to never fire:
# inside mozilla-central/testing/talos/talos/test.py, revision 4c5fbf493763, line 181:
@register_test()
class sessionrestore_no_auto_restore(sessionrestore):
"""
A start up test measuring the time it takes to load a sessionstore.js file.
1. Set up Firefox to *not* restore automatically from sessionstore.js file.
2. Launch Firefox.
3. Measure the delta between firstPaint and sessionRestored.
"""
preferences = {'browser.startup.page': 1}
I figured this was causing a crash because we assume, in our code, that the event always does fire, and we don't detach it (or resolve the promise chain) on shutdown if it doesn't fire.
However, when I asked about this in #teamaddons, both aswan and zombie thought that JS code shouldn't be able to cause a crash, even if an observer or promise was left dangling.
Pinged the bug to say I'm going to try to look deeper, and asked for help in #fx-team.