Popup permissions initialized with the result of checking if the
constructing WindowContext's principal is allowed to open a popup. The
field is updated for all WindowContexts sharing a principal whenever
the popup permission for that nsIPrincipal changes.
Differential Revision: https://phabricator.services.mozilla.com/D86378
Without this patch, the last "path" in this list will always be the empty string due to how the `-z` option to `git` works. This mirrors what we already do in the `get_files_in_working_directory` implementation for `hg`.
Differential Revision: https://phabricator.services.mozilla.com/D86752
A new `BrowsingContext` field, `isActiveBrowserWindow`, has been added
to track the active browser window for the `:-moz-window-inactive`
pseudoclass. This field takes the place of
`nsPIDOMWindowOuter::mIsActive`.
With this change `:-moz-window-inactive` is now fission compatible.
Differential Revision: https://phabricator.services.mozilla.com/D86422
Bug 1655624 happened because the format of an internal error changed,
which caused an internal error to be propagated unexpectedly.
This patch fixes the issue by only propagating errors that are known to
originate from extensions, plus a regression test.
This patch also fixes a few other issues:
- Internal errors are redacted to "An unexpected error occurred",
which partially fixes bug 1643176.
- Fix minor regression in void rejections: Prior to bug 1583484, an
onMessage handler that rejected with a void value would cause
sendMessage to reject. Since bug 1583484 the promise is not rejected,
as the error is inadvertently ignored due to a runtime error:
"TypeError: can't access property "result", err is undefined".
- Avoid type confusion of objects with the mozWebExtLocation member.
Differential Revision: https://phabricator.services.mozilla.com/D85643
The CacheIR implementation uses the new `LoadValueTruthyResult` op instead of
the existing `LoadThingTruthyResult` ops to mirror how Warp implements boolean
coercion: Warp doesn't use ICs but instead uses MNot resp. MTest with Value
typed inputs.
Mirroring this approach avoids to have (from the user POV) strange performance
differences where for example using `if (Boolean(v))` can be faster than just
`if (v)`, when `v` is Value-typed, but monomorphic.
Differential Revision: https://phabricator.services.mozilla.com/D86524
This adds correct NaN handling to the SIMD f32x4/f64x2.min/max code.
This is a bit of a horror show actually. There is a reasonable fast
path if neither operand contains a NaN, but the slow path to handle
NaN is long and there's a lot of code. (This is an Intel-only
problem, on other architectures there's a direct mapping.)
It is possible the slow-path code could be somewhat improved (both
speed and size) by using at least three BLEND instructions, but I
consider that a possible optimization that needs investigation and
empirical backing. Meanwhile, we can land this plausible code.
Differential Revision: https://phabricator.services.mozilla.com/D86318
Wasm treats signalling and quiet NaN the same - as quiet NaN. Where
convenient, test also signalling NaN. This is complicated by JS not
being able to represent signalling NaN directly.
Differential Revision: https://phabricator.services.mozilla.com/D86317
These test cases were generated by a script from some of the
preliminary test cases in the SIMD spec repository, taking into
account the specific NaN types asked for.
These tests are temporary: once we have proper generated test cases
from the spec repository, these will no longer be needed.
Differential Revision: https://phabricator.services.mozilla.com/D86316
Two bugs:
- an accidental redefinition of the 'eq' predicate resulted in the
'permute' function not working and thus in us not testing floating
point operations for NaN, Infinity, and some other interesting
values.
- the previous bug masked the fact that the max and min operations for
floating point were not implemented properly; they have to handle
NaN specially.
Differential Revision: https://phabricator.services.mozilla.com/D86315
Implement some of the experimental SIMD opcodes that are supported by
all of V8, LLVM, and Binaryen, for maximum compatibility with test
content we might be exposed to. Most/all of these will probably make
it into the spec, as they lead to substantial speedups in some
programs, and they are deterministic.
For spec and cpu mapping details, see:
https://github.com/WebAssembly/simd/pull/122 (pmax/pmin)
https://github.com/WebAssembly/simd/pull/232 (rounding)
https://github.com/WebAssembly/simd/pull/127 (dot product)
https://github.com/WebAssembly/simd/pull/237 (load zero)
The wasm bytecode values used here come from the binaryen changes that
are linked from those tickets, that's the best documentation right
now. Current binaryen opcode mappings are here:
https://github.com/WebAssembly/binaryen/blob/master/src/wasm-binary.h
Also: Drive-by fix for signatures of vroundss and vroundsd, these are
unary operations and should follow the conventions for these with
src/dest arguments, not src0/src1/dest.
Also: Drive-by fix to add variants of vmovss and vmovsd on x64 that
take Operand source and FloatRegister destination.
Differential Revision: https://phabricator.services.mozilla.com/D85982
Bug 1655624 happened because the format of an internal error changed,
which caused an internal error to be propagated unexpectedly.
This patch fixes the issue by only propagating errors that are known to
originate from extensions, plus a regression test.
This patch also fixes a few other issues:
- Internal errors are redacted to "An unexpected error occurred",
which partially fixes bug 1643176.
- Fix minor regression in void rejections: Prior to bug 1583484, an
onMessage handler that rejected with a void value would cause
sendMessage to reject. Since bug 1583484 the promise is not rejected,
as the error is inadvertently ignored due to a runtime error:
"TypeError: can't access property "result", err is undefined".
- Avoid type confusion of objects with the mozWebExtLocation member.
Differential Revision: https://phabricator.services.mozilla.com/D85643
We check if telemetry "devtools.tooltip.shown" is set for label
"css-compatibility" once the tooltip is toggled visible during
the test.
Differential Revision: https://phabricator.services.mozilla.com/D86403
Based on initital implementation of inactive css tooltip telemetry
implementation in D32810
We record toggling of tooltip using `sendOpenScalarToTelemetry`
against the label "css-compatibility".
Differential Revision: https://phabricator.services.mozilla.com/D86402
This interface extends nsIDNSRecord and makes the DNS code more extensible
by allowing us to support more record types.
This change does require the consumer to be aware of the type they requested
and to QueryInterface to either nsIDNSAddrRecord for regular IP lookups,
or to nsIDNSByTypeRecord for other kinds of lookups.
Differential Revision: https://phabricator.services.mozilla.com/D86177
This patch adds the nsIDNSResolverInfo interface which is used to hold
information about the resolver to be used in a DNS resolution.
We use this to merge all of the *WithTRRServer resolve functions into one.
Passing a resolver info will use that object when appropriate. No resolver
info means that we default to using the system resolver, or the default TRR
resolver.
This patch also converts the RESOLVE_TYPE_* flags into a cenum and adds
the resolveType as a parameter to asyncResolve thus removing the need
to have asyncResolveByType methods.
Differential Revision: https://phabricator.services.mozilla.com/D86176