IOUtils now provides a shutdown client for clients to register IO jobs with
that need to run before shutdown finishes. This allows IO jobs to run during
the profileBeforeChange phase.
IOUtils' event queuing has been refactored into a singleton EventQueue class,
which is responsible for running tasks and setting up shutdown blockers. It is
now guarded behind a StaticDataMutex so that is more explicitly clear what is
and is not re-entrant. (The atomic sShutdownFinished cannot be placed behind
the mutex because we need to keep track of that state even when we do not have
an EventQueue.)
Differential Revision: https://phabricator.services.mozilla.com/D103973
This lets the WindowServer do all of the color correction for us
including WebGL and 2D canvas.
There's some concern that this will increase GPU usage as
reported in https://bugs.chromium.org/p/chromium/issues/detail?id=417150#c34.
However, the alernative of doing everything in device space isn't very
attractive because we'd have to color manage canvas and webgl ourselves.
Further, Chrome doesn't seem to be using the device space and it seems
like there's typically already a mix of color spaces in use so hopefully
the GPU increase is not high.
Differential Revision: https://phabricator.services.mozilla.com/D109383
Bug 1650705's geckoview-junit test counts the number of input event times.
It is unnecessary to wait for selection event and Gecko may not sometimes
fire selection event on input or textarea element. So use
InputConnection.setSelection directly instead of waiting for DOM event.
Differential Revision: https://phabricator.services.mozilla.com/D109354
Everybody uses the promise-style equivalent so we can just move over
the documentation and drop the function.
Depends on D109248
Differential Revision: https://phabricator.services.mozilla.com/D109249
The test basically was written for Fission, but unfortunately it fails
intermittently without Fission becasue, I assume, there was a pre-existing race
condition causing the failure without Fission, so we are going to skip the
test without Fission for now.
Differential Revision: https://phabricator.services.mozilla.com/D109250
AFAIK, while mochitests have resource-usage.json data with the same
format as build_resources.json, there isn't much of anything to display
that data in a human-friendly manner. As a helper of sort for all the
tasks that already expose their json data without a nice way to display
it, allow the build resources usage report UI that `mach resource-usage`
displays (or build_resources.html on build tasks on treeherder), to load
arbitrary json files if their url is dropped on the page (from e.g.
drag-and-dropping the link to the file from treeherder).
Differential Revision: https://phabricator.services.mozilla.com/D109030
Chrome and Safari either disable this or handle it badly. We don't handle it great so disable it.
Although the document principal looks like it can change I think if that happened at minimum the presshell would be recreated, which creates the ZoomConstraintsClient so we shouldn't need to register to be notified if this changes.
The other option would be to implement support for prevent default of double taps and then have modify pdf.js (if it doesn't already prevent default ctrl wheel events).
Differential Revision: https://phabricator.services.mozilla.com/D109421
A long standing issue is that MOZ_ASSERT and related don't print stack
traces in debug builds when they're directly or indirectly emitted from
non-libxul code. Moving WalkTheStack to mozglue alleviates the problem.
It's also not printing stack traces when emitted from C code (and for
some C third party libraries, we do redirect assert to MOZ_ASSERT),
which we solve by making the corresponding API available without C++
(which WalkTheStack being a static method of the nsTraceRefCnt class
didn't allow, or the use of a closure on Android).
This requires some adjustements to headers that indirectly assume that
Assertions.h includes ErrorList.h through nsError.h through nscore.h
through nsTraceRefcnt.h.
We also remove TestStackCrawl.cpp because it hasn't been built since
bug 158528, 19 years ago.
Differential Revision: https://phabricator.services.mozilla.com/D108913
It requires including <windows.h>, preventing the inclusion of StackWalk.h
from some places (and upcoming changes will make StackWalk.h included in
more places).
Differential Revision: https://phabricator.services.mozilla.com/D108910