| Index: Source/core/html/HTMLElement.cpp
|
| diff --git a/Source/core/html/HTMLElement.cpp b/Source/core/html/HTMLElement.cpp
|
| index 54450215e918096123df117b4efd0202371755a5..0b12ef0e5ef366549df89158d780f339621ef19f 100644
|
| --- a/Source/core/html/HTMLElement.cpp
|
| +++ b/Source/core/html/HTMLElement.cpp
|
| @@ -306,21 +306,11 @@ const AtomicString& HTMLElement::eventNameForAttributeName(const QualifiedName&
|
|
|
| void HTMLElement::parseAttribute(const QualifiedName& name, const AtomicString& value)
|
| {
|
| - if (name == dirAttr)
|
| + if (name == tabindexAttr)
|
| + return Element::parseAttribute(name, value);
|
| +
|
| + if (name == dirAttr) {
|
| dirAttributeChanged(value);
|
| - else if (name == tabindexAttr) {
|
| - int tabindex = 0;
|
| - if (value.isEmpty()) {
|
| - clearTabIndexExplicitlyIfNeeded();
|
| - if (treeScope().adjustedFocusedElement() == this) {
|
| - // We might want to call blur(), but it's dangerous to dispatch
|
| - // events here.
|
| - document().setNeedsFocusedElementCheck();
|
| - }
|
| - } else if (parseHTMLInteger(value, tabindex)) {
|
| - // Clamp tabindex to the range of 'short' to match Firefox's behavior.
|
| - setTabIndexExplicitly(max(static_cast<int>(std::numeric_limits<short>::min()), min(tabindex, static_cast<int>(std::numeric_limits<short>::max()))));
|
| - }
|
| } else {
|
| const AtomicString& eventName = eventNameForAttributeName(name);
|
| if (!eventName.isNull())
|
| @@ -495,33 +485,6 @@ bool HTMLElement::hasCustomFocusLogic() const
|
| return false;
|
| }
|
|
|
| -bool HTMLElement::supportsSpatialNavigationFocus() const
|
| -{
|
| - // This function checks whether the element satisfies the extended criteria
|
| - // for the element to be focusable, introduced by spatial navigation feature,
|
| - // i.e. checks if click or keyboard event handler is specified.
|
| - // This is the way to make it possible to navigate to (focus) elements
|
| - // which web designer meant for being active (made them respond to click events).
|
| -
|
| - if (!document().settings() || !document().settings()->spatialNavigationEnabled())
|
| - return false;
|
| - return hasEventListeners(EventTypeNames::click)
|
| - || hasEventListeners(EventTypeNames::keydown)
|
| - || hasEventListeners(EventTypeNames::keypress)
|
| - || hasEventListeners(EventTypeNames::keyup);
|
| -}
|
| -
|
| -bool HTMLElement::supportsFocus() const
|
| -{
|
| - // FIXME: supportsFocus() can be called when layout is not up to date.
|
| - // Logic that deals with the renderer should be moved to rendererIsFocusable().
|
| - // But supportsFocus must return true when the element is editable, or else
|
| - // it won't be focusable. Furthermore, supportsFocus cannot just return true
|
| - // always or else tabIndex() will change for all HTML elements.
|
| - return Element::supportsFocus() || (rendererIsEditable() && parentNode() && !parentNode()->rendererIsEditable())
|
| - || supportsSpatialNavigationFocus();
|
| -}
|
| -
|
| String HTMLElement::contentEditable() const
|
| {
|
| const AtomicString& value = fastGetAttribute(contenteditableAttr);
|
| @@ -595,11 +558,6 @@ short HTMLElement::tabIndex() const
|
| return -1;
|
| }
|
|
|
| -void HTMLElement::setTabIndex(int value)
|
| -{
|
| - setIntegralAttribute(tabindexAttr, value);
|
| -}
|
| -
|
| TranslateAttributeMode HTMLElement::translateAttributeMode() const
|
| {
|
| const AtomicString& value = getAttribute(translateAttr);
|
|
|