The current timeout was added to deal with some shutdown deadlocks that were
happining in the wild, but were hard to reproduce locally and therefore
diagnose. It's not clear whether the bulk of those have been fixed, so I'm
reluctant to remove the timeout entirely.
But the current 1s timeout is quite short, and doesn't allow for proper
cleanup in a lot of legitimate cases. The async shutdown service starts to
emit warnings at 10s, so 8s gives us enough time to avoid at least that.
MozReview-Commit-ID: 94zZjYUY8qZ
--HG--
extra : rebase_source : 980cce2af1117d6d46f6083910672e3ef8702981
extra : histedit_source : d8d9b2d7f6312b5d8801e4e26d2b0c0a32a538c2
The main change here is to disconnect stream filters immediately if we try to
send start or data events to a window that's already been destroyed.
It also fixes a race where we end up in the wrong state if a stop event
arrives while the channel is being disconnected.
MozReview-Commit-ID: LwxXxoRUDgQ
--HG--
extra : rebase_source : 8c04e4be2f74850f28d642350b9ff268ab3206e4
extra : histedit_source : d0c18c9a190179431b81fdb32262a0324dc35762
During extremely short sessions (such as the ones triggered by many tests),
the code run by BackgroundPageThumbs during shutdown can trigger
hard-to-diagnose issues, among the most serious being a deadlock in the
service worker registrar.
Calling the (currently unused) _destroy() method at the start of shutdown
seems to prevent the majority of these problems.
MozReview-Commit-ID: Go7OLzVM24G
--HG--
extra : rebase_source : 7e5f619f8eed0e0ce3f1b94e8285d12a4be29d51
extra : histedit_source : 8b9c73b9e85a430381e2e1ee48e7fef5b56ab6e3
This isn't a super essential feature, and is just a change to try to bring us in
line with chromium and the spec. As this has apparent web compat issues, and
DataTransfer is a hard to test area, this patch moves the changes behind a pref,
which we can come back to turning on after we ship 57.
Previously the code looped and yielded between each loop. This caused the
DataTransfer to be cleared before the read completed.
This splits the loop into 2 sections such that we read all important data from
the DataTransfer before it is cleared.
From the crashes associated with bug 1389021, we know that some
compositor thread IPDL owners are not being cleaned up properly. We do
not know which protocols are causing the problem, so we temporarily will
annotate the logs with the ownership status. This should be limited to
under a dozen instances of the protocols.
This change will be backed out after a few builds are produced with it
and we see the first crash reports with the relevant data.
We were reusing "all sections" in more than one way, which isn't a globally-
permissable language use. Embedding the substring directly takes care of it
while at the same time embedding it within its context.
MozReview-Commit-ID: CTQhFWEajRo
--HG--
extra : rebase_source : 03b79c5bb19ad690b4ccba27c96bcc6a9f7f17a7