The Ember subtest in Speedometer hits this a lot for some logging code and this is
likely to also affect similar JS code elsewhere.
This optimization is written so that even if it doesn't apply, there's little overhead
in most cases because we do the `toString` lookup only once.
Differential Revision: https://phabricator.services.mozilla.com/D160748
This was regressed by bug 1788115, which allowed us to parse ASCII labels
again to enforce they're valid. However, the existing code only checked for
invalid punycode (that fails decoding), not ACE labels that are invalid.
If we don't check for this condition uidna_labelToUnicode will add a U+FFFD
character to the end of the label, making us encode it again, changing the URL.
When that happens, the principal's origin may change between serializations,
which is not OK.
Depends on D159373
Differential Revision: https://phabricator.services.mozilla.com/D160785
It seems RHEntryInfoToRHEntry may sometimes fail because deserializing the
principal fails. However, in this case `NS_ENSURE_SUCCESS(rv, rv);` does
nothing and is probably just a left-over from a refactoring.
If we don't bail early we may wind up with a nullptr in the redirectHistory
chain, which is most unexpected.
Differential Revision: https://phabricator.services.mozilla.com/D159373
Now that Python's stdlib `venv` is used, `virtualenv` is no longer
needed.
Since mozharness depends on the wheels for `setuptools` and `pip`, and
they were vendored within `virtualenv` we must move them somewhere else.
I've chosen to add `third_party/python/venv/wheels` to hold those wheels
now that `virtualenv` is no longer there.
Depends on D145786
Differential Revision: https://phabricator.services.mozilla.com/D145787
The 'pip' and 'setuptools' that are bundled with 'venv' are not
consistent across python version and platforms. As such, we must
explicitly install a version of each that works with our codebase.
To achieve this, we simply create the venv using '--without-pip'
then 'pip install' both 'pip' and 'setuptools' using the wheels we have
'vendored' inside 'virtualenv'. There's no way to install a specific
version of 'pip' on venv creation, so it's faster to skip installing the
old version of 'pip' then, and install specific version we want right
afterwards.
We also don't want to use the venv '--upgrade` feature to upgrade 'pip',
since that will tie us to pypi, and will fail if pypi is down for
whatever reason.
Depends on D144872
Differential Revision: https://phabricator.services.mozilla.com/D145786
Brew's Python 3.10 causes `virtualenv==20.7.2` to produce a wonky folder
structure (`$venv/opt/homebrew/lib/python3.10/site-packages`?).
This is likely fixed with newer `virtualenv`, but the simpler workaround
here is to use `venv` instead now that Python 3 is always used.
Adds `python3-venv` to docker image so that tests and debian-based tasks
can leverage it.
Differential Revision: https://phabricator.services.mozilla.com/D144872
Port gradient stops to be stored in the gpu-buffer rather than
the gpu-cache. The intent is to land a small use case for the
gpu-buffer code, which will allow us to get an idea if there's any
unexpected performance or driver bugs from the new gpu-buffer code,
before making wider use of this to replace the gpu-cache.
Differential Revision: https://phabricator.services.mozilla.com/D160743
It's possible to change the timeline if the animation is in pending. So
we still need an animation tracker to track the scroll-linked
animations. Besides, per the spec, we should keep this animation in
pending if its timeline is inactive. So in this patch, we always put the
scroll-linked animations into ScrollTimelineAnimationTracker, and if we
change the timeline but the animation is still in pending, we move the
animation into the correct animation tracker if needed.
Using two different animation trackers because we would like to trigger
scroll-linked animations after frame construction and reflow,
and don't want to ensure the paint is scheduled.
Note:
1. All tests in scroll-timeline-dynamic.tentative.html are failed. We
will fix them in Bug 1774275.
2. Drop `animation-duration: infinite` from
progress-based-animation-animation-longhand-properties.tentative.html,
because infinite is not defined in animation-duration in [css-animations-1].
Differential Revision: https://phabricator.services.mozilla.com/D159650
The assertion is valid, but fixing it would be a bit of work (bug 1798240),
so now we degrade the assertion to make it harmless on fuzzers works.
Differential Revision: https://phabricator.services.mozilla.com/D160742
The @page rule may contain both 'page-orientation' and 'size' properties. The
'size' property can contain an orientation component which was being
represented as 'PageOrientation' prior to this patch. This patch changes that
to 'PageSizeOrientation' so that 'PageOrientation' can be used for
'page-orientation' in a subsequent patch.
Differential Revision: https://phabricator.services.mozilla.com/D160790
The version of git-cinnabar that the bootstrap script pulls now doesn't
require Mercurial. Even older versions have been working fine without
Mercurial for a while.
Differential Revision: https://phabricator.services.mozilla.com/D160601
We size to the minimum vertical size, so by default they don't take any space
at all anyways.
When scrolling, the min size of the content flexes along with them causing
broken sizing.
Differential Revision: https://phabricator.services.mozilla.com/D160723