This is needed because we don't want to create useless APZ scroll info
for view transitions (D248043), but that relies on these scrollframes
not being active.
Note that contents inside a view transition capture can't scroll.
Differential Revision: https://phabricator.services.mozilla.com/D248041
This was the case when this originally landed few months back, but then
a change making LookAndFeel to be initialized earlier was pushed and we
ended up calling xdg-desktop-portal after LookAndFeel already queried
appearance setting, which effectively makes the host registry portal not
to work.
Differential Revision: https://phabricator.services.mozilla.com/D248252
Adds a static helper method to QuotaManagerDependencyFixture that runs
QuotaManager::SaveOriginAccessTime on the PBackground thread.
This simplifies calling SaveOriginAccessTime from gtests and ensures
consistency across test cases.
For more complex testing, use of this helper is optional.
Differential Revision: https://phabricator.services.mozilla.com/D244752
Currently, we use the allowed list (blocked by default) on Release and
the blocked list (allowed by default) on other channels.
When switching to Remote Settings, we still want "blocked by default" on
Release and "allowed by default" on other channels. This patch makes Beta
"blocked by default" as well, to better test that behavior and help prevent
potential issues from reaching Release.
Differential Revision: https://phabricator.services.mozilla.com/D248171
This gives a noticeable speed-up in µ-benchmarks when constructing `ArrayBuffer`
objects with inline storage. `SharedArrayBuffer` objects don't benefit that much,
but it probably doesn't hurt to align `SharedArrayBuffer` with `ArrayBuffer`.
Differential Revision: https://phabricator.services.mozilla.com/D248014
Used in the next part to optimise `slice` for the common case when the species
constructor is the built-in (Shared)ArrayBuffer constructor.
Differential Revision: https://phabricator.services.mozilla.com/D248013
Also move the `SharedArrayBuffer` version to C++ to match how `ArrayBuffer` is
now implemented.
`SharedArrayBufferObject::copyData` no longer uses handles to avoid unnecessary
rooting for `unwrappedResult` in `SharedArrayBufferObject::sliceImpl`.
Differential Revision: https://phabricator.services.mozilla.com/D248011
Re-implement `ArrayBuffer.prototype.slice` in C++, because the self-hosted
implementation needs to call into C++ anyway for copying the bytes. And it
makes things easier for implementing `ArrayBuffer.prototype.sliceToImmutable`
from the "Immutable ArrayBuffer" proposal.
Part 3 will remove the self-hosted implementation. And part 8 will add a fast
path when the species constructor is the built-in ArrayBuffer constructor.
Differential Revision: https://phabricator.services.mozilla.com/D248008
Add `ToIntegerIndex` in preparation for the next part.
`ToIntegerIndex` needs to be instantiated for `size_t` and `uint64_t`. It's not
valid add explicit instantiations for both `size_t` and `uint64_t`, because
`size_t` is `uint64_t` on 64-bit platforms and it's invalid to have duplicate
template instantiations. Instead instantiate `uint32_t` and `uint64_t` to handle
32- and 64-bit targets.
Differential Revision: https://phabricator.services.mozilla.com/D248007
Previously it was possible to create parent and child `SharedDataMap`s in
the parent or child process, but only so that they could be tested in
xpcshell tests. The xpcshell test has been rewritten as a browser test
so that it can do real cross-process communication, so that is no longer
required.
he `_shutdownBlocker` member is now initialized in parent
`SharedDataMap`s because the the child does not need to block shutdown
and this property was never accessed in the child process.
Some cleanups have been made to `browser_experimentapi_child.js` to not
re-import `Assert.sys.mjs` (and therefore override the built-in `Assert`
that reports errors to the parent correctly) and to use
`SpecialPowers.addTaskImport` to add imports into the content task
scope.
Differential Revision: https://phabricator.services.mozilla.com/D248549
This is mostly just a convenience shorthand to avoid running the same
boilerplate/error-checking code in the implementation of the 'width' and
'height' attributes, for the benefit of callers that need both sizes. But,
beyond that convenience: this also lets us elegantly express the case where an
image simply lacks an intrinsic width and/or height (not due to any error, but
simply because it's e.g. an SVG that has no preferred size in either or both of
its axes). This is a state we'll need to be able to detect and give special
treatment to in a forthcoming patch for bug 1935269.
Differential Revision: https://phabricator.services.mozilla.com/D248526
This patch doesn't change behavior; it just refactors out some commont logic
into a helper (so that we can add another call to this same helper in a later
patch in this series).
Differential Revision: https://phabricator.services.mozilla.com/D248525
This patch doesn't change behavior; it's just a rename.
Without this, it's easy to get confused and assume that img.intrinsicSize would
just be a shorthand for img.width and img.height -- but it's not. (It has
different units from the 'width' and 'height' attributes, and in some cases --
e.g. the VectorImage implementation -- it queries for its answer in a different
way from how 'width' and 'height' do.
(I'm doing this partly because I'll soon be adding a new attribute that *does*
just represent img.width and img.height, and that new attribute will also be
named something like "intrinsicSize"; and I want to minimize confusion between
that new attribute and this existing one.)
Differential Revision: https://phabricator.services.mozilla.com/D248492
Because we only ever attach annotation callback after the
ExperimentStore is initialized we do not have to wait for
`ExperimentAPI.ready()` in the callback. This change prevents spurious
test failures in the following patches.
Differential Revision: https://phabricator.services.mozilla.com/D248067
tiptsf.dll tries to use UIA, but we don't want it to do this in Firefox, so we block it.
Previously, we checked for MSAA OBJID_CLIENT, since we didn't have a native UIA implementation, so UIAutomationCore would fall back to the MSAA/IA2 -> UIA proxy.
Now that we have a native UIA implementation, we support UiaRootObjectId directly, so we need to check for that as well.
Differential Revision: https://phabricator.services.mozilla.com/D248383
For certain HEVC DRM playback scenarios, the media engine fails to return a
video output, resulting in an infinite wait. After discussing this issue with
Microsoft, we found that it's caused by low latency playback being enabled.
Microsoft generally advises against enabling low latency mode with DRM content.
Currently, AV1 is the only codec that reliably supports both hardware DRM and
low latency. Other codecs typically disable low latency automatically when
hardware DRM is detected. However, due to a bug, HEVC (H.265) appears to lack
this safeguard, leading to the issue we're seeing.
Differential Revision: https://phabricator.services.mozilla.com/D248360
The tabGroups.onRemoved / onCreated / onMoved event depends on the
isAdoptingGroup / removedByAdoption flags to identify tab groups that are
adopted by another window. Although this flag is set for the
`gBrowser.adoptTabGroup` method, it is not in the
`gBrowser.replaceGroupWithWindow` method, which results in incorrect
events.
This patch fixes the issue by setting the isAdoptingGroup flag in
`gBrowser.replaceGroupWithWindow`.
Differential Revision: https://phabricator.services.mozilla.com/D248327