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