GMS's FIDO2 19.0.x supports residentKey values. So let's implement it
for Android's native token manager.
But when implementing it, GMS's FIDO2 will synchronize key via Google's
account Passkey. So this is experimental by preferences.
Differential Revision: https://phabricator.services.mozilla.com/D176391
DWM doesn't update its cached nonclient region information when a window
changes its client area without changing its actual size.
This happens in Firefox when a maximized window becomes fullscreen. If
this happens, "flicker-resize" the window to force DWM to update.
Differential Revision: https://phabricator.services.mozilla.com/D176844
This mitigation exposed bug 1763981. Unfortunately, not applying it on
Nightly made it look like bug 1763981 was _fixed_ in Nightly, tricking
several users and developers and making testing needlessly more
difficult even after this was discovered.
Apply the mitigation across the board, regardless of release channel.
Developers may still set `gfx.webrender.dcomp-apply-1704954` to override
this as needed for testing (e.g.) fixes for bug 1638709.
Differential Revision: https://phabricator.services.mozilla.com/D176843
Remove unused code:
- nsWindow::AutoErase() (allegedly overridable but nonvirtual function)
- nsWindow::mIsPainting (flag which is never set)
... and perform a very minor comment emendation, for clarity.
Differential Revision: https://phabricator.services.mozilla.com/D176842
This reverts Mercurial commit ec948153333a957e3ef5302b5b0f469eda0d48a8
(introduced as part of bug 1820066) due to reports of tearing while
playing full-screen video.
Differential Revision: https://phabricator.services.mozilla.com/D176841
For cases where bitmaps are compressed down to alpha textures, the underlying
assumption is that these were supposed to be treated as luminance data as well
in the shader, or rather, the alpha represents both the opacity and intensity.
We weren't properly swizzling in the shader to accomplish this. This fixes that.
Differential Revision: https://phabricator.services.mozilla.com/D176986
Sum nodes would use mul_by to negate nodes to do subtraction, but some
nodes are not distributive. This patch adds a negate node, so that the
operations inside these negate nodes can be resolved first and then the
"subtraction" can be applied.
Differential Revision: https://phabricator.services.mozilla.com/D172941
We were using a friendly high-level syntax for our jumper in
TestDllInterceptor:
gDetouredCall(aCallee);
We were relying on compiling this to the jumper format recognized by our
hooking code:
jmp qword ptr [rip + offset gDetouredCall]
Unfortunately depending on compiler options (in particular CFG and
-fno-omit-frame-pointer), the compiler may generate slightly different
code, thus breaking the test.
We now use a less friendly syntax which ensures that our jumper has the
proper format.
Differential Revision: https://phabricator.services.mozilla.com/D175486
We have had a lot of back and forth with the Rust stdlib and getrandom
crate removing RtlGenRandom as a fallback to BCryptGenRandom. We need
this fallback in particular for Windows 7 machines, where the two
functions are completely independent. Some users seem to be unable to
load the 32-bit variant of bcryptprimitives.dll on their machine when using
Firefox 32-bit on Windows 7 64-bit and the RtlGenRandom fallback saves
them. This led to a lot of crashes that are Rust panics in bug 1788004.
This patch adds a gtest that ensures that RtlGenRandom is called as a
fallback in case of BCryptGenRandom failures, so that we can
automatically detect a new hypothetical removal of the RtlGenRandom
fallbacks in the future.
Differential Revision: https://phabricator.services.mozilla.com/D174968
Our hooking code was misinterpreting 48 FF 15 as the beginning of a
REX-prefixed JUMP/4 instruction, but it's a REX-prefixed CALL/2. We must
check more bits on the third byte to distinguish a JMP from a CALL, and
from other instructions that also fall into the pattern we were
matching.
Differential Revision: https://phabricator.services.mozilla.com/D174967
In bug 1788004, we started hooking BCryptGenRandom on the machines where
calling it for the first time fails. This was useful to mitigate Rust
panics linked to RNG function failures in the Rust stdlib and
in the getrandom crate. Both now have proper fallbacks again, so we can
remove our hook.
Differential Revision: https://phabricator.services.mozilla.com/D174966
The test was getting stuck because it was expecting a favicon.ico
request that never happened. The test logic was copied from
test_ext_webrequest_filter.html which suffers from exactly the same
issue. Since the favicon.ico test was meant to serve as a regression
test, this patch fixes only one of the two tests.
Differential Revision: https://phabricator.services.mozilla.com/D174505
It's fairly common in the JS spec to check whether a value is null-or-undefined.
We already have a bytecode op for this that we can use if we add an `IsNullOrUndefined`
intrinsic.
This has some minor performance benefits (no Baseline ICs instead of 3 Baseline ICs)
and no `Or` or `And` branch, but it also makes our bytecode more compact. This will
help with follow-up work to look into inlining more string builtins.
Differential Revision: https://phabricator.services.mozilla.com/D176902
One thing that stands out of the profiles in bug 1827132 are a ton of
allocations and attribute lookups.
While the root cause of that performance issue is likely to be a
DOMSubtreeModified event that Chrome doesn't fire or so, those are
rather easy to optimize and might be more generally useful.
I removed handling of `<br type="">`, because editor no longer uses it.
Maybe we can also remove some of the other of the prefixed attribute
shenanigans.
Differential Revision: https://phabricator.services.mozilla.com/D176956
`nsRange`s need to keep track of all `Selection` instances they are in, while maintaining an as-small-as-possible memory footprint.
The approach of using a linked list to store the selection pointers led to a performance regression
because of the necessary allocations of the selection wrapper class.
Since the `AutoTArray` has an identical size, the list can easily be replaced.
Differential Revision: https://phabricator.services.mozilla.com/D176908
This patch adds a state on the stack so that it can be known at all times which
async steps have run, and to make sure main thread can handle spurious wakeups.
With this state, only one monitor is needed, so the other is removed.
Differential Revision: https://phabricator.services.mozilla.com/D176895
This is used by the Web Access NVDA add-on to identify and remediate some inaccessible elements on websites with accessibility problems.
It is also useful for developers using screen readers when trying to identify specific elements in the absence of semantics.
Differential Revision: https://phabricator.services.mozilla.com/D176896
This included multiple changes:
1. Expire old non-typed hidden single-visit URIs
2. Expire long urls only if they are single-visit
3. increase the necessary age for expiration to 90 days
4. stop notifying listeners inside the database transaction
Differential Revision: https://phabricator.services.mozilla.com/D176028