- Restore active texture when dmabuf texture is created at DMABufSurfaceRGBA::CreateTexture()/DMABufSurfaceYUV::CreateTexture.
- Provide more logging for DMABufSurfaceRGBA surfaces.
- Implement DMABufSurfaceRGBA::DumpToFile() to save dmabuf surface content to png file.
Differential Revision: https://phabricator.services.mozilla.com/D88382
The new promiseMouseDragEvent function is an async promise-returning copy of
the code in dragVerticalScrollbar. Eventually we should just make all this code
using async/promise but that's for another day.
Differential Revision: https://phabricator.services.mozilla.com/D88894
For android SurfaceTexture and AndroidHardwareBuffer, GPU/hardware task end could be checked by android fence. Then their TextureHost do not need to be held by AsyncImagePipelineManager::mTexturesInUseByGPU.
Differential Revision: https://phabricator.services.mozilla.com/D88239
This advances the migration by 25% each release, starting in release 83 and
completing in 86. The migration code can be removed in the 86 nightly cycle
(or anytime after that).
Differential Revision: https://phabricator.services.mozilla.com/D88453
Currently `-h` means `--headless` when it comes before a subcommand but
`--help` when it comes after a subcommand. It should always be short for
`--help`, that's a very standard thing.
Depends on D88387
Differential Revision: https://phabricator.services.mozilla.com/D88388
Remove references to dead things: binary recording, `--save`, `ENABLE_RECORDING`.
Add brief docs about building wrench, and taking a capture.
And `show` is the canonical name for the subcommand, not `replay`.
Depends on D88386
Differential Revision: https://phabricator.services.mozilla.com/D88387
`replay` is currently listed in `args.yaml` as both a synonym for `show` *and*
its own command. There is some weirdness with how `clap` handles that:
- `wrench help replay` shows the help for `replay`.
- `wrench replay -h` shows the help for `show`.
- `wrench replay` actually runs the code for `show` (and there is no code for
`replay`).
This commit removes the subcommand, leaving the synonym.
Depends on D88385
Differential Revision: https://phabricator.services.mozilla.com/D88386
When zooming, webrender overrides the raster space used to render text, so that
we do not expensively rerasterize the glyphs for every fractional change in zoom
level. Previously we chose to do this when any ancestor of the picture's spatial
node was being zoomed. This worked on most pages, because the scroll frame which
is used as the main picture caching slice is a descendent of the zooming
reference frame.
However, on pages without a scrollable frame, or for fixed-position content, the
picture's spatial node will not be a descendent of the zooming reference
frame. This meant that we did not detect that we were zooming and rendered the
text in screen raster space rather than the overridden local space, leading to
poor zooming performance.
To fix this, check whether the primitive's spatial node (rather than the
picture's) is a descendent of the zooming frame.
Differential Revision: https://phabricator.services.mozilla.com/D88474
There already exist 3 implementations of this stuff and I don't want to add another one for the WR OS compositor path.
(The three implementations are: CompositorScreenshotGrabber, MLGPUScreenshotGrabber and RendererScreenshotGrabber.)
The interface has been designed in such a way that the MLGPU and WR implementations should be able to use it but I
haven't written the code to convert them.
Differential Revision: https://phabricator.services.mozilla.com/D59157
If the content response timeout is longer than the long-tap delay (which is
true given the current default pref values), and a touch block waits for the
entire content response timeout period, then the long-tap gesture gets delayed
by the difference in the timeouts. This can happen if the input block remains
in the slop state (and therefore never dispatches a touchmove to content,
thereby preventing the content from producing a content response). This patch
catches this scenario and installs a long-tap timeout in the InputQueue to
force the input block along.
Differential Revision: https://phabricator.services.mozilla.com/D88010
Touch inputs that go to the GestureEventListener often have to wait in the
InputQueue for some time as well, until the content response arrives. However,
that delay is not accounted for in the GestureEventListener delays. This can
result in the gesture being artificially delayed from a user's perspective.
This patch computes the amount of time the input event already waited in the
input queue, and shortens the delays used in the GestureEventListener
accordingly.
Differential Revision: https://phabricator.services.mozilla.com/D88009
Previously, it was possible to instruct WR to find the closest
scroll node, and apply a scroll delta to that. However, it's
generally the case that there is more context required that
the application applies in selecting which frame to scroll.
This patch removes the unused APIs, which simplifies some of
the hit-testing code. In turn, this simplifies some in-progress
optimization and refactoring of the hit-test internals.
Differential Revision: https://phabricator.services.mozilla.com/D88234
This introduces a linear interpolation when computing the wheel animation
durations, based on the migration percentage of the user. Initially the
migration percentage defaults to 100 (fully migrated) for new users and for
existing users who have customized these prefs. The migration percentage
defaults to zero for existing users without customizations, so they will
still get the old default values of min=200,max=400. Over time we can adjust
the migration pref clamping to move that percentage up and migrate those
users to get the new values.
Differential Revision: https://phabricator.services.mozilla.com/D88163
On recent android, EGL_ANDROID_native_fence_sync support is not reported even when eglDupNativeFenceFDANDROID() exists.
Differential Revision: https://phabricator.services.mozilla.com/D87995