Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1776)

Unified Diff: third_party/WebKit/Source/core/css/SelectorChecker.cpp

Issue 2509593002: Implement ::placeholder CSS selector. (Closed)
Patch Set: Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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:

Powered by Google App Engine
This is Rietveld 408576698