Without this, the new pending call to watchResources throws because we close the toolbox while the console still initiates.
Differential Revision: https://phabricator.services.mozilla.com/D116489
Replace its usage with a helper in shared-head that
scroll to the ndoe matching the selector and then
uses BrowserTestUtils.synthesizeMouse to trigger the
mouse event.
Differential Revision: https://phabricator.services.mozilla.com/D116393
All usage of the methods are replaced with a shared helper
that uses a content task to retrieve the number of elements
on the page.
Differential Revision: https://phabricator.services.mozilla.com/D116341
This patch does change the extension-related special case in SVGContextPaint::IsAllowedForImageFromURI
to check the "internal:svgContextPropertiesAllowed" extension permission, and move the existing
criteria in the Extension class (which takes care of adding the internal permission when those
criteria as met).
This patch does not contain yet a new explicit test case for the new internal permission (which is
part of the patch build on top of this one and attached to the same bugzilla issue), but it does
pass the existing mochitest-chrome (test_chrome_ext_svg_context_fill.html).
Differential Revision: https://phabricator.services.mozilla.com/D115835
This factors out the lowering of wasm select (except for the folded
compare-and-select case which needs more thought) into platform code.
The benefit of doing this is partly to get rid of a platform ifdef in
platform-independent code (this was a hack when Wasm Ion on ARM64 was
being bootstrapped) and partly to loosen up the register constraints
on ARM64, which are overly pessimistic and result in a lot of extra
moves.
This also improves the generated ARM64 code for FP select, using FCSEL
for float/double operations. There does not seem to be a select
instruction for vector data, but it's likely that vector data would be
selected lane-wise anyway, so here I tie the output register to the
true register and conditionally move the false register into output
using a jump.
Differential Revision: https://phabricator.services.mozilla.com/D116149
For 0-n with integer n, add specialization in shared lowering code to
lower as LNegI and LNegI64 (a new node type).
For n*-1 with int64 n, add a specialization in shared lowering code to
lower as LNegI64. The case for int32 was already handled. (The
specialization for n*-1 that's performed in codegen on some platforms
is now redundant, but that will be cleaned up with bug 1712298.)
These optimizations benefit wasm, as there is no integer negate
operation in the wasm instruction set, one of these cliches will be
used instead.
The lowering for 64-bit is a little easier than for 32-bit since
64-bit subtract/multiply are not fallible.
There's some platform-dependent codegen here because we want to allow
the src and dest registers to differ on arm64 and arm, but to reuse
the input on x86 and x64. mips64 follows x64, for simplicity.
Drive-by change: The 'reused input index' argument to lowerNegI has no
function and is removed. (Its value must always be zero because it's
the index of the reused input in the LIR node, not an index in the MIR
node.)
Differential Revision: https://phabricator.services.mozilla.com/D116088
This helps hint that in some cases, a user may have forgotten to diff
with `-J` if they were changing task bodies/payloads instead of adding
or removing a task.
Differential Revision: https://phabricator.services.mozilla.com/D116384
navigateTo contains all the logic to wait for panel updates on reload,
as well as wait for the process of the new target.
Differential Revision: https://phabricator.services.mozilla.com/D114828
This is a bunch of heuristics to detect when sites that were short-lived become
long-lived and vice versa.
For the former we check the promotion rate for the whole nursery and the tenure
count for the optimized site in each zone. For the latter we look at tenured
objects that die in their first GC.
When then happens we discard JIT code and reset the allocation sites using the
list in the JitScript. This happens in one of two ways: if we are already
discarding JIT code then we reset the allocation sites for any remaining JIT
scripts, or if not we check all scripts in the zone and discard scripts
individually. This is so we don't add another script iteration if we're already
doing this for discarding JIT code.
Differential Revision: https://phabricator.services.mozilla.com/D115496
Unfortunately we often end up optimizing code before a minor GC happens and we
realize that we should be pretenuring a site. This invalidates JIT code when we
decide to pretenure a site.
Differential Revision: https://phabricator.services.mozilla.com/D115493
This allocates AllocSite instances when stubs are created. There's a limit on
the number created per minor GC to prevent runaway growth of the site list that
must be traversed at the next minor GC.
The fallback by which JIT code calls into the VM has to be different for
baseline/optimzed code because we still track allocations in baseline code. (It
might be possible to use the same one and have the baseline fallback just use
the unknow site. I think this would violate some assertions but they could
perhaps be relaxed)
Differential Revision: https://phabricator.services.mozilla.com/D115242
For baseline allocations we still want to track the allocations made and update
the AllocSite whereas for optimized code we want to ignore this entirely and
use the catch-all optimzed site for tracked allocation sites. To allow this,
the patch adds AllocSiteInput which can either be a register holding an
AllocSite pointer or an immediate indicating which catch-all allocation site to
use.
Differential Revision: https://phabricator.services.mozilla.com/D115241
This adds logic to process allocation sites used since the last nursery
collection and update their state based on number of allocations made and now
many of those that were tenured.
This also dumps information about allocation sites to stderr if
JS_GC_REPORT_PRETENURING is set.
Differential Revision: https://phabricator.services.mozilla.com/D115240
This adds an optional AllocSite parameter to the APIs that we will use to
create objects/arrays when JIT code falls back to calling into the VM.
Differential Revision: https://phabricator.services.mozilla.com/D115238
This stores a pointer to a new AllocSite sturcture before every nursery cell.
Previously this was used to store a pointer to the zone, and we now have to get
the zone pointer from the AllocSite when necessary.
Since every cell must have such a pointer and we don't want to track all
allocation sites, there is a catch-call site per zone for unknown sites.
There's a second catch-all site which is used for optimized code generated for
known allocation sites by later patches.
Differential Revision: https://phabricator.services.mozilla.com/D115236
`Delete` and `Backspace` keys are handled by same code. So, the code should
be in `EditorBase` instead of `TextEditor`.
If `HTMLEditor` is in the plaintext editing mode of mail composer, `Tab` key
is also handled by the same code as `TextEditor`. So, the code in `TextEditor`
should be moved to `EditorBase` too and `HTMLEditor` should call `EditorBase`'s
method only when it's in the plaintext mode.
Depends on D116352
Differential Revision: https://phabricator.services.mozilla.com/D116353