Index: third_party/WebKit/Source/core/css/SelectorChecker.cpp |
diff --git a/third_party/WebKit/Source/core/css/SelectorChecker.cpp b/third_party/WebKit/Source/core/css/SelectorChecker.cpp |
index 36d3952b711165a0224cb985553c53dbc498832e..3011d8e18ae814783a0a4d0937a1f87df28f2173 100644 |
--- a/third_party/WebKit/Source/core/css/SelectorChecker.cpp |
+++ b/third_party/WebKit/Source/core/css/SelectorChecker.cpp |
@@ -1067,9 +1067,15 @@ bool SelectorChecker::checkPseudoElement(const SelectorCheckingContext& context, |
return false; |
} |
case CSSSelector::PseudoWebKitCustomElement: { |
- if (ShadowRoot* root = element.containingShadowRoot()) |
- return root->type() == ShadowRootType::UserAgent && |
- element.shadowPseudoId() == selector.value(); |
+ if (ShadowRoot* root = element.containingShadowRoot()) { |
+ if (root->type() != ShadowRootType::UserAgent) |
+ return false; |
+ const AtomicString& pseudoName = element.shadowPseudoId(); |
+ if (pseudoName == selector.value()) |
+ return true; |
+ AtomicString alias = CSSSelector::aliasForShadowPseudoId(pseudoName); |
+ return !alias.isEmpty() && alias == selector.value(); |
+ } |
return false; |
} |
case CSSSelector::PseudoBlinkInternalElement: |