Issue #2137 - Part 1: Modify :not() selector to accept a complex selector list

This commit is contained in:
FranklinDM 2023-03-10 00:20:44 +08:00 committed by roytam1
commit 82fa9fb80b
7 changed files with 83 additions and 35 deletions

View file

@ -920,9 +920,13 @@ nsCSSSelector::AppendToStringWithoutCombinatorsOrNegations
// has a ":" that can't be escaped and (b) all pseudo-classes at
// this point are known, and therefore we know they don't need
// escaping.
aString.Append(temp);
if (!nsCSSPseudoClasses::IsHiddenFromSerialization(list->mType)) {
aString.Append(temp);
}
if (list->u.mMemory) {
aString.Append(char16_t('('));
if (!nsCSSPseudoClasses::IsHiddenFromSerialization(list->mType)) {
aString.Append(char16_t('('));
}
if (nsCSSPseudoClasses::HasStringArg(list->mType)) {
nsStyleUtil::AppendEscapedCSSIdent(
nsDependentString(list->u.mString), aString);
@ -951,7 +955,9 @@ nsCSSSelector::AppendToStringWithoutCombinatorsOrNegations
list->u.mSelectorList->ToString(tmp, aSheet);
aString.Append(tmp);
}
aString.Append(char16_t(')'));
if (!nsCSSPseudoClasses::IsHiddenFromSerialization(list->mType)) {
aString.Append(char16_t(')'));
}
}
}
}