After we enable Fissions, we can't always access the top level document because it might be in another process.
Therefore, we should move `mDocTreeHadAudibleMedia` from document to the top window context, which can ensure that we set the value correctly even if setting `mDocTreeHadAudibleMedia` happens in a different process which is different from the process where the top level document exists.
Differential Revision: https://phabricator.services.mozilla.com/D83162
In tests, the settings object doesn't have as many sections. When a section isn't
available, it raises an error.
The Sentry integration can interpret this error as telemetry being disabled.
Differential Revision: https://phabricator.services.mozilla.com/D83717
This patch adds support for Wasm reference types when using the
Cranelift/aarch64 Wasm backend in SpiderMonkey.
The changes on the SpiderMonkey side principally involve (i) updating
the compiler-selection logic to allow Cranelift when reftypes are
enabled, and (ii) conveying the stackmaps from Cranelift to
SpiderMonkey.
This also fixes an assert failure hit in the VIXL-based MacroAssembler
in a debug build. The assert was checking that the source of a
move-to-FP-reg was not the zero register (xzr); a move like `mov v0.d[0],
xzr` is perfectly valid, and should be allowed. Unsure why this assert
had not been hit before, but it seems unrelated to reftype support.
Differential Revision: https://phabricator.services.mozilla.com/D83583
This patch updates the vendored version of Cranelift, pulling in the
reference-types support recently merged in Cranelift's PR
bytecodealliance/wasmtime#1852. Usage of this update to support reftypes
in SpiderMonkey on aarch64 is added in the subsequent commit.
Differential Revision: https://phabricator.services.mozilla.com/D83582
The eslint and jsx-a11y jobs have been broken for 6 months now.
The eslint version used by the debugger is too old to be compatible with mozilla central's eslintrc.
If we update eslint, then there are other failures (`Environment key "mozilla/xpcshell" is unknown`).
We should be able to trust the mozilla-central eslint job for basic linting.
For jsx-a11y, there is currently no equivalent in mozilla-central.
Differential Revision: https://phabricator.services.mozilla.com/D83495
Depends on D83194
Those test helpers were introduced to easily assert the markup view, when working on the webcomponents support in the inspector.
They use rather high level APIs and are quite close to what would be triggered by real user actions.
Roughly the helper expands nodes from the markupview recursively and checks that the tree matches the expected tree.
This "expected tree" should be provided via a simplistic DSL:
```
root
child1
subchild1
subchild2
child2
subchild3!slotted
child3!ignore-children
```
Differential Revision: https://phabricator.services.mozilla.com/D79674
- Add a helper to log cdm::Status as a string to improve error reporting.
- Fix up format strings in ChromiumCDMParent to use PRIu32 instead of u for logs
where it's appropriate.
Differential Revision: https://phabricator.services.mozilla.com/D83702
Also add a log for when decoding fails. We typically log on any unhappy return
values from the CDM, so it makes sense we should also do so when a decode fails.
Differential Revision: https://phabricator.services.mozilla.com/D83419
This is safer in case Necko fails to notify us. The only repro we have
is fixed by bug 1651661, but this should hopefully be uncontroversial as
well and prevents crashing in release builds.
Differential Revision: https://phabricator.services.mozilla.com/D83642
Disabled because we've observed that this is introducing noise on G5.
Also added perftuning to the other Pixel 2 tests.
Differential Revision: https://phabricator.services.mozilla.com/D83808
When doing a display list build, there's some code that expands the dirty
and visible rects for out-of-flow items to include the entire visual viewport
or displayport, because out-of-flow items are specially positioned in the
compositor and may become visible without the main thread knowing about it.
However, this happens even during partial updates using retained display lists,
which I believe is undesirable because the preceding non-partial update should
already have painted all the right things. The partial update should be
restricted to the part of the OOF item that actually need repainting, and the
merging of the partial update into the full display list should produce a final
display list that covers everything.
Differential Revision: https://phabricator.services.mozilla.com/D82216
Fixes a missing closing tag in the retained-dl-style-change-stacking-context-3
test page. Unfortunately, this changes the structure of the page and makes the
test fail, so the reftest.list file is updated accordingly. Since the existing
test structure was clearly testing something else, and caught a legitimate
difference in behaviour with and without APZ zooming on desktop, this patch
also creates a new test with that structure (and better indentation).
Differential Revision: https://phabricator.services.mozilla.com/D82214
These patches have triggered a case where a MacOS header defines 'check' as a macro which then conflicts with use of 'check' as a method name in AccessCheck.h, probably due to unified builds.
This was fixed independently in a couple of places before, but I think it makes sense to move the fix to AccessCheck.h itself.
Differential Revision: https://phabricator.services.mozilla.com/D83796
This also factors out FinalizationRegistry support into a separate class.
The JS engine now passes a callback function and the incumbent global which are recorded in QueueCallback. FinalizationRegistryCleanup::DoCleanup creates a CallbackObject can calls it immediately (I originally tried creating it in QueueCallback but there were problems because this is called during GC).
I coped most of this from the way promise reaction jobs work. I added FinalizationRegistryCleanupCallback; I don't know if that's overkill.
Differential Revision: https://phabricator.services.mozilla.com/D83614
This changes the way the the host triggers cleanup, from calling an API to calling a JS function. This is done so we can use the existing DOM infrastructure that handles setting up the incumbent global for us.
Differential Revision: https://phabricator.services.mozilla.com/D83613
This patch addresses bug 1608633. It adds an if statement to `ConditionalPanel.js`, that prevents the conditional panel from closing when clicking on its scrollbar.
Differential Revision: https://phabricator.services.mozilla.com/D82187
Add support for `export * as ns from "a";` syntax. This was added in
ECMAScript 2020.
One wrinkle in the implementation is that the parser decides whether to use a
lexical vs indirect binding before module linking. Instead, we reserve a
hidden environment slot called "*namespace*" for each module that can be
referenced by indirect binding maps as needed.
Spec is a needs-consensus PR at https://github.com/tc39/ecma262/pull/1174
Depends on D80984
Differential Revision: https://phabricator.services.mozilla.com/D80777
Update spec references and step numbers to match ES2020. Add TODOs for the
missing steps. There are some editorial changes in latest draft that affect
step numbers, but behaviour is the same for these methods.
Differential Revision: https://phabricator.services.mozilla.com/D80984