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)) |
tkent
2014/07/08 02:20:59
nit: you can write:
return isHTMLOptionElement(ele
keishi
2014/07/10 09:48:03
Done.
|
+ return false; |
+ return toHTMLOptionElement(element).spatialNavigationFocused() && isFrameFocused(element); |
+} |
+ |
template |
SelectorChecker::Match SelectorChecker::match(const SelectorCheckingContext&, const DOMSiblingTraversalStrategy&, MatchResult*) const; |