HasNameDependent is now set on an Accessible (and thus its descendants) which has A LABEL_FOR relation.
When text mutations occur on such an Accessible, EventQueue::PushNameChange now queues a name change for the Accessible being labelled.
Differential Revision: https://phabricator.services.mozilla.com/D102677
`BaseCompilationStencil::isCompilationStencil() == true` means it's always
`CompilationStencil`, because initial stencil is always stored into
`CompilationStencil`.
However, `BaseCompilationStencil::isCompilationStencil() == false` doesn't
always mean it's not `CompilationStencil`, because while delazification
the delazification stencil is stored into `CompilationStencil`.
Differential Revision: https://phabricator.services.mozilla.com/D103019
This patch makes the following changes:
1. Don't call ReflowInput::CalculateBlockSideMargins() for nsTableFrame
so that setting nsTableFrame's computed margins to zero in
SizeComputationInput::InitOffsets() remains true. Also, add an assertion
in nsTableFrame::Reflow() to ensure that.
2. Remove useless nsTableFrameWrapper::GetChildMargin() because the
method is used to get nsTableFrame's margins, which are now all zero.
Also, the old code that subtracts the block-axis margin from available
block-size doesn't really make sense.
3. Pass all-zero innerMargins to nsTableWrapperFrame::SetDesiredSize(),
and use table wrapper's content-box inline-size as the final desired
border-box inline-size rather than reconstructing it from caption and
inner table's inline-size & margin like the old code.
This inline-size already takes inner table's intrinsic size and
caption's inline-size into consideration in
nsTableWrapperFrame::ComputeAutoSize(), and is the final inline-size we
want to use.
In the next part, we are going to simplify all nsTableWrapperFrame's
methods that take inner frame's margin.
Differential Revision: https://phabricator.services.mozilla.com/D103065
For a spread call like `foo(...args)`, if OptimizeSpreadCall succeeds, we don't hit a breakpoint associated with `...args`, because we skip past that code. Before the parent patch, this wasn't a problem in this testcase, because we were only generating OptimizeSpreadCall for rest parameters. After that patch, we are generating OptimizeSpreadCall more frequently.
We don't actually care about hitting this breakpoint, so I'm just updating the test.
Differential Revision: https://phabricator.services.mozilla.com/D101232
When OptimizeSpreadCall was introduced, we conservatively only emitted it when the spread argument was a rest parameter. At the time, OptimizeSpreadCall required a VM call. It has been rewritten to use an IC, making the failure case very efficient. If we do not emit OptimizeSpreadCall, then we must allocate and copy an array object, even if the argument is already a packed array. In a microbenchmark, emitting OptimizeSpreadCall for non-rest-parameter cases is more than a 2x speedup, and generating the OptimizeSpreadCall in a non-packed-array case is <5% slowdown. The optimized case is also likely to be much more common in real code.
This patch extends OptimizeSpreadCall to be emitted whenever the single spread argument is any Name node. In theory we might also want to allow other nodes, but currently the bytecode emitter will call emitTree on the first argument twice in this case, which is fine for a Name node but broke in testing for `foo(...function() {})` (because we tried emitting a non-hoisted function twice).
Differential Revision: https://phabricator.services.mozilla.com/D101231
Instead of keeping a stacking context around for scrollbar containers,
extend and use the tile cache barrier code to create them. This
removes the final remaining code path that creates pass through
picture primitives.
The tile cache barrier changes also form the basis of how we will
make blend containers and backdrop roots work in a follow up patch.
Blend containers and backdrop roots will become redundant stacking
contexts when they exist at the start of a tile cache, which will
save an entire off-screen surface / constant invalidation.
Differential Revision: https://phabricator.services.mozilla.com/D102527
Previously, a leaf picture would be created unconditionally when
popping a stacking context during scene building. This results in
many pass-through pictures being created that are often not required.
This patch introduces a helper struct that delays creation of a
pass-through wrapping picture until it's known to be needed (and
instead adds the prim_list to a wrapping picture where possible).
In a follow up patch, the last couple of places that create pass
through pictures via pop_stacking_context will be removed.
Differential Revision: https://phabricator.services.mozilla.com/D102381
So as to test that they are in fact not parseable by content.
Keep a centralized list of these rather than duplicating tests.
Differential Revision: https://phabricator.services.mozilla.com/D102966
As a temporary fix to prevent crashes we are loosening the `CanSet`
restrictions for TouchEventsOverrideInternal. In the future this will
be fixed properly by changing DevTools to set this property from the
parent only, at which time tighter restrictions on setting
`TouchEventsOverrideInternal` may be added.
Differential Revision: https://phabricator.services.mozilla.com/D103080
I'm using "/^Windows\x20NT\x206\.1/.test(http.oscpu)" to check for Windows 7,
which I found (with Win7-related code comments) elsewhere in reftest.list
files.
I'm replacing a "fuzzy-if(!nativeThemePref,...)" annotation here, which I think
was simply mis-applied here -- this test doesn't have any form controls or
theme-related stuff, so it doesn't make sense that its rendering would be
theme-dependent. I suspect this annotation was added by mistake, due to this
test intermittently failing by coincidence on a try run where the
!nativeThemePref configuration was being tested.
Differential Revision: https://phabricator.services.mozilla.com/D103083
We might want to snap focus outline widths as well, but that's harder
because it has various segments and separation between them, so we
probably want to snap those separately... So for now only border rects
probably makes sense.
Differential Revision: https://phabricator.services.mozilla.com/D103106
test.events.async.enabled is set to true in this test, the synthesized event
would be routed to apz, so wait apz getting stable before starting test to avoid
possible timing problem that causes intermittent failure.
Differential Revision: https://phabricator.services.mozilla.com/D103042