summaryrefslogtreecommitdiff
path: root/chromium/third_party/blink/renderer/core/css/css_selector.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/blink/renderer/core/css/css_selector.cc')
-rw-r--r--chromium/third_party/blink/renderer/core/css/css_selector.cc29
1 files changed, 20 insertions, 9 deletions
diff --git a/chromium/third_party/blink/renderer/core/css/css_selector.cc b/chromium/third_party/blink/renderer/core/css/css_selector.cc
index df7bb9aa9fe..fdda0d6e98b 100644
--- a/chromium/third_party/blink/renderer/core/css/css_selector.cc
+++ b/chromium/third_party/blink/renderer/core/css/css_selector.cc
@@ -297,7 +297,7 @@ PseudoId CSSSelector::GetPseudoId(PseudoType type) {
case kPseudoSlotted:
case kPseudoVideoPersistent:
case kPseudoVideoPersistentAncestor:
- case kPseudoXrImmersiveDomOverlay:
+ case kPseudoXrOverlay:
return kPseudoIdNone;
}
@@ -331,8 +331,6 @@ const static NameToPseudoStruct kPseudoTypeWithoutArgumentsMap[] = {
{"-internal-video-persistent", CSSSelector::kPseudoVideoPersistent},
{"-internal-video-persistent-ancestor",
CSSSelector::kPseudoVideoPersistentAncestor},
- {"-internal-xr-immersive-dom-overlay",
- CSSSelector::kPseudoXrImmersiveDomOverlay},
{"-webkit-any-link", CSSSelector::kPseudoWebkitAnyLink},
{"-webkit-autofill", CSSSelector::kPseudoAutofill},
{"-webkit-drag", CSSSelector::kPseudoDrag},
@@ -410,6 +408,7 @@ const static NameToPseudoStruct kPseudoTypeWithoutArgumentsMap[] = {
{"vertical", CSSSelector::kPseudoVertical},
{"visited", CSSSelector::kPseudoVisited},
{"window-inactive", CSSSelector::kPseudoWindowInactive},
+ {"xr-overlay", CSSSelector::kPseudoXrOverlay},
};
const static NameToPseudoStruct kPseudoTypeWithArgumentsMap[] = {
@@ -597,7 +596,6 @@ void CSSSelector::UpdatePseudoType(const AtomicString& value,
case kPseudoSpatialNavigationInterest:
case kPseudoVideoPersistent:
case kPseudoVideoPersistentAncestor:
- case kPseudoXrImmersiveDomOverlay:
if (mode != kUASheetMode) {
pseudo_type_ = kPseudoUnknown;
break;
@@ -673,6 +671,7 @@ void CSSSelector::UpdatePseudoType(const AtomicString& value,
case kPseudoVisited:
case kPseudoWebkitAnyLink:
case kPseudoWindowInactive:
+ case kPseudoXrOverlay:
if (match_ != kPseudoClass)
pseudo_type_ = kPseudoUnknown;
break;
@@ -787,7 +786,7 @@ const CSSSelector* CSSSelector::SerializeCompound(
case kPseudoLang:
case kPseudoState:
builder.Append('(');
- builder.Append(simple_selector->Argument());
+ SerializeIdentifier(simple_selector->Argument(), builder);
builder.Append(')');
break;
case kPseudoNot:
@@ -804,13 +803,19 @@ const CSSSelector* CSSSelector::SerializeCompound(
}
} else if (simple_selector->match_ == kPseudoElement) {
builder.Append("::");
- builder.Append(simple_selector->SerializingValue());
+ SerializeIdentifier(simple_selector->SerializingValue(), builder);
switch (simple_selector->GetPseudoType()) {
- case kPseudoPart:
- builder.Append('(');
- builder.Append(simple_selector->Argument());
+ case kPseudoPart: {
+ char separator = '(';
+ for (AtomicString part : *simple_selector->PartNames()) {
+ builder.Append(separator);
+ if (separator == '(')
+ separator = ' ';
+ SerializeIdentifier(part, builder);
+ }
builder.Append(')');
break;
+ }
default:
break;
}
@@ -1211,4 +1216,10 @@ bool CSSSelector::RareData::MatchNth(unsigned unsigned_count) {
return (NthBValue() - count) % (-NthAValue()) == 0;
}
+void CSSSelector::SetPartNames(
+ std::unique_ptr<Vector<AtomicString>> part_names) {
+ CreateRareData();
+ data_.rare_data_->part_names_ = std::move(part_names);
+}
+
} // namespace blink