The goal here is to hook up the ctrl+0 keyboard shortcut to reset the scaling
zoom applied by pinch gestures (on touchscreen or trackpad), in addition to
resetting the reflow zoom (aka full zoom). This patch also makes other mechanisms
to reset the reflow zoom (e.g. clicking on the "100%" label in the hamburger menu)
also reset scaling zoom, which I think makes sense for consistency.
Most of this patch is just plumbing, but I'm unfamiliar with these codepaths
so requesting review from relevant owners to make sure it's sane.
Differential Revision: https://phabricator.services.mozilla.com/D94624
We should be able to use CTFontCreateCopyWithAttributes for non-system fonts
because we don't need to worry about them changing. This avoids the leaks
caused by going through a CGFont.
Differential Revision: https://phabricator.services.mozilla.com/D94772
The visualization shows texture arrays (one array per row) with allocations in blue and free space in dark gray, as well as the slab size for each region. This only dumps the texture arrays for color+linear images and glyphs since most of the interesting stuff is there, but adding other arrays will be simple if needed.
Differential Revision: https://phabricator.services.mozilla.com/D94715
Allow-list all Python code in tree for use with the black linter, and re-format all code in-tree accordingly.
To produce this patch I did all of the following:
1. Make changes to tools/lint/black.yml to remove include: stanza and update list of source extensions.
2. Run ./mach lint --linter black --fix
3. Make some ad-hoc manual updates to python/mozbuild/mozbuild/test/configure/test_configure.py -- it has some hard-coded line numbers that the reformat breaks.
4. Make some ad-hoc manual updates to `testing/marionette/client/setup.py`, `testing/marionette/harness/setup.py`, and `testing/firefox-ui/harness/setup.py`, which have hard-coded regexes that break after the reformat.
5. Add a set of exclusions to black.yml. These will be deleted in a follow-up bug (1672023).
# ignore-this-changeset
Differential Revision: https://phabricator.services.mozilla.com/D94045
Allow-list all Python code in tree for use with the black linter, and re-format all code in-tree accordingly.
To produce this patch I did all of the following:
1. Make changes to tools/lint/black.yml to remove include: stanza and update list of source extensions.
2. Run ./mach lint --linter black --fix
3. Make some ad-hoc manual updates to python/mozbuild/mozbuild/test/configure/test_configure.py -- it has some hard-coded line numbers that the reformat breaks.
4. Make some ad-hoc manual updates to `testing/marionette/client/setup.py`, `testing/marionette/harness/setup.py`, and `testing/firefox-ui/harness/setup.py`, which have hard-coded regexes that break after the reformat.
5. Add a set of exclusions to black.yml. These will be deleted in a follow-up bug (1672023).
# ignore-this-changeset
Differential Revision: https://phabricator.services.mozilla.com/D94045
Rather than wrapping an NSPrintInfo in nsPrintSettingsX, where we then have two
(potentially conflicting) sources of truth about various settings, we treat the
settings in the base nsPrintInfo class as authoritative, and just apply them to
a temporary NSPrintInfo when needed to interact with platform APIs.
Differential Revision: https://phabricator.services.mozilla.com/D92966
When the problem happened, pop-up widget's content process's WebRenderBridgeParent(non-root) was attached to different CompositorBridgeParent. Then the WebRenderBridgeParent was moved to correct CompositorBridgeParent by CompositorBridgeParent::RecvAdoptChild() call. It triggered NotifyPipelineRendered(). In this case, SendDidComposite() have to be called, since WebRenderBridgeParent(non-root) is moving to different WebRender instance. But it is not called when CompositorBridgeParent. is paused.
Differential Revision: https://phabricator.services.mozilla.com/D94552
Bug 1656211 added WebRenderBridgeParent::RecvForceComposite(). It triggers generate frame even when widget is not ready for rendering.
Differential Revision: https://phabricator.services.mozilla.com/D94553
The YUV composition in SWGL in particular tries to convert the position and step
from float to integer at the beginning, and step entirely in integer coords per
pixel rather than float to speed this up. However, the amount of precision used
was inadequate and could lead to significant error. This adds some extra precision
to the stepping code to reduce this error.
Differential Revision: https://phabricator.services.mozilla.com/D94547
The yield mechanism in this function, whereby the caller could insert a null
entry in the input array to trigger a yield, was never actually used. And
while attempting to use it, I discovered it wasn't really fit for the intended
purpose because it doesn't wait for the event to be delivered to APZ.
Instead we can remove this yielding mechanism and turn the generation into a
regular function. Propagating this outwards also allows a couple of continuation-
style tests to become regular async tests.
Differential Revision: https://phabricator.services.mozilla.com/D94442
This variable is set from the compositor thread, and read from both
the sampler thread (e.g. when sampling animations) and the
controller thread (e.g. during input block creation), so access to
it needs to be synchronized.
Differential Revision: https://phabricator.services.mozilla.com/D94471
ZoomToFocusedInput calls ScrollContentIntoView() which may queue up
one or more main-thread scroll position updates that get sent to
APZ as part of the next transaction.
If such updates were produced, we want the ZoomToRect call to arrive
at APZ after the updates, otherwise the updates can cancel the
zoom animation that APZ starts in response to the ZoomToRect.
Differential Revision: https://phabricator.services.mozilla.com/D93898
A few tests do the SimpleTest.waitForExplicitFinish/SimpleTest.finish dance
without a promise/async chain. This updates those tests to follow a more
async style and to send failures through SimpleTest.finishWithFailure.
Note that the conversion to async is done "locally" by wrapping callback-taking
helper function calls in promises. In some cases it probably makes sense to
modify the helper function itself to return a promise, but that's out of scope
for this bug, so I'm punting those kinds of changes to a follow-up bug.
Differential Revision: https://phabricator.services.mozilla.com/D94163
This updates APZ mochitests that are using .then(SimpleTest.finish) or
.finally(SimpleTest.finish) to instead pass the rejection/exception case
to SimpleTest.finishWithFailure.
Differential Revision: https://phabricator.services.mozilla.com/D94162