Index: Source/core/css/SelectorChecker.cpp |
diff --git a/Source/core/css/SelectorChecker.cpp b/Source/core/css/SelectorChecker.cpp |
index c595be7027949db417ffc730fa556921431a3739..6f66f385a12e86832edf8951eae8a77d334848c8 100644 |
--- a/Source/core/css/SelectorChecker.cpp |
+++ b/Source/core/css/SelectorChecker.cpp |
@@ -950,6 +950,8 @@ bool SelectorChecker::checkOne(const SelectorCheckingContext& context, const Sib |
} |
} |
break; |
+ case CSSSelector::PseudoSpatialNavigationFocus: |
+ return context.isUARule && matchesSpatialNavigationFocusPseudoClass(element); |
case CSSSelector::PseudoHorizontal: |
case CSSSelector::PseudoVertical: |
@@ -1122,6 +1124,11 @@ bool SelectorChecker::matchesFocusPseudoClass(const Element& element) |
return element.focused() && isFrameFocused(element); |
} |
+bool SelectorChecker::matchesSpatialNavigationFocusPseudoClass(const Element& element) |
+{ |
+ return isHTMLOptionElement(element) && toHTMLOptionElement(element).spatialNavigationFocused() && isFrameFocused(element); |
+} |
+ |
template |
SelectorChecker::Match SelectorChecker::match(const SelectorCheckingContext&, const DOMSiblingTraversalStrategy&, MatchResult*) const; |