As a first step, add geckoview_streaming for GC_MS telemetry.
This also turns on collection in release builds, something that AFAICS should have happened in bug 1489524.
Differential Revision: https://phabricator.services.mozilla.com/D74836
RegsToPreserve must contain the correct float registers *and* be immune to
PushRegsInMask stripping out the SIMD registers in non-SIMD builds before
it performs register set reduction. The correct mask to start with is
therefore AllMask, not AllVector128Mask, as the latter is stripped down to
an empty set, not reduced down to the set of doubles.
This bug came in with the SIMD patch and affects non-SIMD builds on x64
as well as all builds on x86.
Differential Revision: https://phabricator.services.mozilla.com/D74825
While trying to fix the error-handling, I tested one solution that *should* have caused a failure in a web platform test, but didn't, because the test didn't exist yet. This patch adds that test.
Depends on D74501
Differential Revision: https://phabricator.services.mozilla.com/D74502
nsContentUtils::IsPatternMatching calls into SpiderMonkey several times to validate and execute a regexp. It assumes that JS::NewUCRegExpObject can only fail if the pattern is invalid. However, in the case of OOM or stack overflow, this is false.
In the previous patch, we added a new API for pattern matching. This patch uses the new function to clean up the error handling in IsPatternMatching.
Differential Revision: https://phabricator.services.mozilla.com/D74501
To make sure that `<input>` elements with `pattern` attributes update their validation state (`:invalid`) properly, nsContentUtils::IsPatternMatching needs to be able to distinguish between parsing errors caused by an invalid pattern, vs parsing errors caused by OOM/overrecursion.
This patch also fixes up the places inside the new regexp engine where we can throw over-recursed to make sure that we set the right flag on the context, then fixes regexp/huge-01.js (and the binast variants) to accept a different error message.
Differential Revision: https://phabricator.services.mozilla.com/D74499
Introduce JS::IsBaseTraceType to check if a type is the canonical type
associated with a TraceKind. Use this with SFINAE to make footguns turn into
compile errors.
Differential Revision: https://phabricator.services.mozilla.com/D74869
The `{Cell,TenuredCell,GCCellPtr}::{is,as}<T>()` methods can be footguns if
called on derived types. Only the TraceKind must match which is rarely what
is expected.
Differential Revision: https://phabricator.services.mozilla.com/D74868
These used to be `[anonid]` back when we used anonymous content. But now
that this is in a shadow tree we can use regular id selectors, which are
faster.
Differential Revision: https://phabricator.services.mozilla.com/D74872
`hg` gives us some additional levers to tweak when determining which commits are public and non-public. All the better, because `hg`'s default behavior under a rebase is to preserve the original commit time, so if you rebase a month-old commit on the latest version of central, you might still get the "revision too old" error despite your tree actually being completely up-to-date. Here we replace the original logic with something a little bit more robust to that scenario.
As before, this is a best-effort check that might have false positives or false negatives; this commit doesn't change that, but hopefully it decreases the amount of false positives under `hg`.
Differential Revision: https://phabricator.services.mozilla.com/D74745
These are reported in telemetry now so it's nice to have more details.
Also some of the entries we're accidentally using a suggested version
as the rule id.
Differential Revision: https://phabricator.services.mozilla.com/D74862
We keep the ::-moz-focus-inner pseudo-element for these, so that acts
enough as a focus indicator.
We may want to opt buttons out of focus outlines altogether (given we
have the ::-moz-focus-inner style) or do something else, if we get
reports of web content showing a lot of outlines because of bug 1311444,
but for now this is better.
Differential Revision: https://phabricator.services.mozilla.com/D74723
Inspecting a node with many CSS variables makes the Rules view render slowly. A patch to improve performance is in development in D73062.
This patch adds a new subtest, `custom.inspector.manycssvariables.selectnode`, to the existing custom Inspector DAMP test to measure the rendering time for a node with 300 CSS variables all of them used (600 declarations in total).
It might seem extreme. In May 2020 youtube.com has 1,375 CSS variables applicable to the `<html>` element. They all get inherited by all CSS rules for most nodes on the page. This slows down the action of inspecting CSS for any node. The largest CSS rule from youtube's stylesheets has 287 declarations of CSS variables. In the age of automatically-generated stylesheets for design systems this scenario becomes more common.
Differential Revision: https://phabricator.services.mozilla.com/D73289
* Avoid misdetecting windows-1252 English as windows-1254.
* Avoid misdetecting windows-1252 English as IBM866.
* Avoid misdetecting windows-1252 English as GBK or EUC-KR.
* Improve Chinese and Japanese detection by not giving single-byte encodings score for letter next to digit.
* Improve Italian, Portuguese, Castilian, Catalan, and Galician detection by taking into account ordinal indicator use.
* Reduce lookup table size.
Differential Revision: https://phabricator.services.mozilla.com/D73237
The serialization of data URLs in firefox strips newlines from the string,
so the comments end up being on the same line with actual code.
This patch turns them into /* C style comments */
It also seems that the harness sometimes times out, even if all tests pass.
Differential Revision: https://phabricator.services.mozilla.com/D74843