Index: Source/core/dom/ElementRareData.h |
diff --git a/Source/core/dom/ElementRareData.h b/Source/core/dom/ElementRareData.h |
index 100b750e8328fda605461861ee9a9e6c0c37ca89..1c5c2300669b79f8e1fc23fff88403def41d6ecb 100644 |
--- a/Source/core/dom/ElementRareData.h |
+++ b/Source/core/dom/ElementRareData.h |
@@ -57,15 +57,22 @@ public: |
void setTabIndexExplicitly(short index) |
{ |
m_tabindex = index; |
+ // isTabStop is overridden by setting tabindex. |
+ m_isTabStop = (m_tabindex >= 0); |
setElementFlag(TabIndexWasSetExplicitly, true); |
} |
void clearTabIndexExplicitly() |
{ |
m_tabindex = 0; |
+ m_isTabStop = true; |
clearElementFlag(TabIndexWasSetExplicitly); |
} |
+ bool isTabStop() const { return m_isTabStop; } |
+ |
+ void setIsTabStop(bool flag) { m_isTabStop = flag; } |
+ |
CSSStyleDeclaration& ensureInlineCSSStyleDeclaration(Element* ownerElement); |
void clearShadow() { m_shadow = nullptr; } |
@@ -130,6 +137,7 @@ public: |
private: |
short m_tabindex; |
+ bool m_isTabStop; |
LayoutSize m_minimumSizeForResizing; |
IntSize m_savedLayerScrollOffset; |
@@ -162,6 +170,7 @@ inline LayoutSize defaultMinimumSizeForResizing() |
inline ElementRareData::ElementRareData(LayoutObject* renderer) |
: NodeRareData(renderer) |
, m_tabindex(0) |
+ , m_isTabStop(true) |
, m_minimumSizeForResizing(defaultMinimumSizeForResizing()) |
{ |
m_isElementRareData = true; |