To accomplish this, all :nth- Components were replaced with type Nth,
which uses NthSelectorData.
Using NthSelectorData will make it easier to add selector lists for :nth
selectors later on, but this change by itself shouldn't change any
behavior.
Differential Revision: https://phabricator.services.mozilla.com/D165831
Allow keyword evaluators to return unknown.
Do you know of a good test to extend here? Otherwise I can add a new
one, though I gotta run atm.
Differential Revision: https://phabricator.services.mozilla.com/D165630
When apply_declarations is used for a pseudo-element, make it pass the
parent_style as the originating_element_style for container queries.
This requires changing some parameters from Option<&Arc<ComputedValues>>
to Option<&ComputedValues>.
It's not a complete solution, since e.g. parent_style is not the style
of the originating element of a ::backdrop. But here it's not as simple
as in D164908, so leaving these details for later.
Differential Revision: https://phabricator.services.mozilla.com/D164977
If the UA sheet gets parsed with the pref off, and then the pref gets
flipped on, we don't re-parse the UA sheet (nor we want to).
Enable the property in UA sheets unconditionally so that the test passes
even when the browser was started-up with the container queries pref
off.
Differential Revision: https://phabricator.services.mozilla.com/D164823
The fix is calling set_outline_style so that we also reset the actual
outline width. Also clean-up surrounding code a little bit to be
marginally more efficient, and do the same change for border-*-style
(which was doing the right thing, but it's better to make sure both stay
in sync).
Differential Revision: https://phabricator.services.mozilla.com/D164554
For example, inline elements may have container-type:size but they don't
support size containment, so @container(width >= 0) shouldn't match.
Differential Revision: https://phabricator.services.mozilla.com/D163936
'container-type' and 'content-visibility' can trigger various kinds of
containment, but this was done via nsStyleDisplay::EffectiveContainment,
to avoid affecting the computed value of 'contain'.
This was fine except for style containment, which needs to set the flag
SELF_OR_ANCESTOR_HAS_CONTAIN_STYLE in order to really work, but this was
only done with 'contain: style'.
So this patch removes nsStyleDisplay::EffectiveContainment, and instead
uses two fields for containment: mContain and mEffectiveContainment.
This is somewhat analogous to mDisplay and mOriginalDisplay, though in
that case the computed value is the modified display.
Also fixes a typo in IsContainStyle() that made it return true for any
kind of containment, not just for style containment.
Differential Revision: https://phabricator.services.mozilla.com/D163779
This makes relatively simple changes so that we check lowercase-ness of
local-name selectors first. If so, we don't need to check whether we're
an HTML element in an HTML document, which requires a fair bit of
pointer-chasing.
Differential Revision: https://phabricator.services.mozilla.com/D163627
This doesn't seem necessary anymore. It was originally added to disable
unions, which is now done with disable_untagged_union.
Differential Revision: https://phabricator.services.mozilla.com/D163662
And hide internal but used values. System fonts are not exposed in the
computed style so this should be fine.
If we need the old values for some obscure reason, it's trivial to alias
them to e.g., menu or so.
Differential Revision: https://phabricator.services.mozilla.com/D163269