| Index: Source/core/css/SelectorChecker.cpp
|
| diff --git a/Source/core/css/SelectorChecker.cpp b/Source/core/css/SelectorChecker.cpp
|
| index fe60f5d0d0cad6026f83dfb66a1ac24b9717c335..3d6586f51a27d2834b63ceb20082e1d6cd0a588f 100644
|
| --- a/Source/core/css/SelectorChecker.cpp
|
| +++ b/Source/core/css/SelectorChecker.cpp
|
| @@ -953,6 +953,8 @@ bool SelectorChecker::checkOne(const SelectorCheckingContext& context, const Sib
|
| }
|
| }
|
| break;
|
| + case CSSSelector::PseudoSpatialNavigationFocus:
|
| + return context.isUARule && matchesSpatialNavigationFocusPseudoClass(element);
|
|
|
| case CSSSelector::PseudoHorizontal:
|
| case CSSSelector::PseudoVertical:
|
| @@ -1125,6 +1127,13 @@ bool SelectorChecker::matchesFocusPseudoClass(const Element& element)
|
| return element.focused() && isFrameFocused(element);
|
| }
|
|
|
| +bool SelectorChecker::matchesSpatialNavigationFocusPseudoClass(const Element& element)
|
| +{
|
| + if (!isHTMLOptionElement(element))
|
| + return false;
|
| + return toHTMLOptionElement(element).spatialNavigationFocused() && isFrameFocused(element);
|
| +}
|
| +
|
| template
|
| SelectorChecker::Match SelectorChecker::match(const SelectorCheckingContext&, const DOMSiblingTraversalStrategy&, MatchResult*) const;
|
|
|
|
|