Issue #1593 - Part 1: Import William Chen's patches w/o selector implementation, fixed up.

This commit is contained in:
Jeremy Andrews 2021-11-04 03:47:57 -05:00 committed by roytam1
commit 7472bc02be
10 changed files with 273 additions and 32 deletions

View file

@ -5641,6 +5641,7 @@ CSSParserImpl::ParseTypeOrUniversalSelector(int32_t& aDataMask,
aSelector.SetTag(mToken.mIdent);
}
else if (mToken.IsSymbol('*')) { // universal selector
aSelector.SetHasExplicitUniversal();
aDataMask |= SEL_MASK_ELEM;
// don't set tag
}
@ -5652,6 +5653,7 @@ CSSParserImpl::ParseTypeOrUniversalSelector(int32_t& aDataMask,
}
else { // was universal element selector
SetDefaultNamespaceOnSelector(aSelector);
aSelector.SetHasExplicitUniversal();
aDataMask |= SEL_MASK_ELEM;
// don't set any tag in the selector
}
@ -6097,7 +6099,8 @@ CSSParserImpl::ParsePseudoSelector(int32_t& aDataMask,
CSSPseudoClassType::negation == pseudoClassType ||
nsCSSPseudoClasses::HasStringArg(pseudoClassType) ||
nsCSSPseudoClasses::HasNthPairArg(pseudoClassType) ||
nsCSSPseudoClasses::HasSelectorListArg(pseudoClassType))) {
nsCSSPseudoClasses::HasSelectorListArg(pseudoClassType)) &&
!nsCSSPseudoClasses::HasOptionalSelectorListArg(pseudoClassType)) {
// There are no other function pseudos
REPORT_UNEXPECTED_TOKEN(PEPseudoSelNonFunc);
UngetToken();