| 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:
|
|
|