Chromium Code Reviews| Index: Source/core/dom/ElementRareData.h |
| diff --git a/Source/core/dom/ElementRareData.h b/Source/core/dom/ElementRareData.h |
| index 40942a5743ee012179e069e56b5d8865e4556403..8b9e39a096df10345c6398394fc7705820ddfa51 100644 |
| --- a/Source/core/dom/ElementRareData.h |
| +++ b/Source/core/dom/ElementRareData.h |
| @@ -49,45 +49,24 @@ public: |
| void resetStyleState(); |
| void resetDynamicRestyleObservations(); |
| - short tabIndex() const { return m_tabIndex; } |
| - void setTabIndexExplicitly(short index) { m_tabIndex = index; m_tabIndexWasSetExplicitly = true; } |
| - bool tabIndexSetExplicitly() const { return m_tabIndexWasSetExplicitly; } |
| - void clearTabIndexExplicitly() { m_tabIndex = 0; m_tabIndexWasSetExplicitly = false; } |
| - |
| - bool needsFocusAppearanceUpdateSoonAfterAttach() const { return m_needsFocusAppearanceUpdateSoonAfterAttach; } |
| - void setNeedsFocusAppearanceUpdateSoonAfterAttach(bool needs) { m_needsFocusAppearanceUpdateSoonAfterAttach = needs; } |
| - |
| - bool styleAffectedByEmpty() const { return m_styleAffectedByEmpty; } |
| - void setStyleAffectedByEmpty(bool value) { m_styleAffectedByEmpty = value; } |
| - |
| - bool isInCanvasSubtree() const { return m_isInCanvasSubtree; } |
| - void setIsInCanvasSubtree(bool value) { m_isInCanvasSubtree = value; } |
| - |
| - bool containsFullScreenElement() { return m_containsFullScreenElement; } |
| - void setContainsFullScreenElement(bool value) { m_containsFullScreenElement = value; } |
| - |
| - bool isInTopLayer() const { return m_isInTopLayer; } |
| - void setIsInTopLayer(bool value) { m_isInTopLayer = value; } |
| - |
| - bool childrenAffectedByFocus() const { return m_childrenAffectedByFocus; } |
| - void setChildrenAffectedByFocus(bool value) { m_childrenAffectedByFocus = value; } |
| - bool childrenAffectedByHover() const { return m_childrenAffectedByHover; } |
| - void setChildrenAffectedByHover(bool value) { m_childrenAffectedByHover = value; } |
| - bool childrenAffectedByActive() const { return m_childrenAffectedByActive; } |
| - void setChildrenAffectedByActive(bool value) { m_childrenAffectedByActive = value; } |
| - bool childrenAffectedByDrag() const { return m_childrenAffectedByDrag; } |
| - void setChildrenAffectedByDrag(bool value) { m_childrenAffectedByDrag = value; } |
| - |
| - bool childrenAffectedByFirstChildRules() const { return m_childrenAffectedByFirstChildRules; } |
| - void setChildrenAffectedByFirstChildRules(bool value) { m_childrenAffectedByFirstChildRules = value; } |
| - bool childrenAffectedByLastChildRules() const { return m_childrenAffectedByLastChildRules; } |
| - void setChildrenAffectedByLastChildRules(bool value) { m_childrenAffectedByLastChildRules = value; } |
| - bool childrenAffectedByDirectAdjacentRules() const { return m_childrenAffectedByDirectAdjacentRules; } |
| - void setChildrenAffectedByDirectAdjacentRules(bool value) { m_childrenAffectedByDirectAdjacentRules = value; } |
| - bool childrenAffectedByForwardPositionalRules() const { return m_childrenAffectedByForwardPositionalRules; } |
| - void setChildrenAffectedByForwardPositionalRules(bool value) { m_childrenAffectedByForwardPositionalRules = value; } |
| - bool childrenAffectedByBackwardPositionalRules() const { return m_childrenAffectedByBackwardPositionalRules; } |
| - void setChildrenAffectedByBackwardPositionalRules(bool value) { m_childrenAffectedByBackwardPositionalRules = value; } |
| + short tabIndex() const { return m_tabindex; } |
| + |
| + void setTabIndexExplicitly(short index) |
| + { |
| + m_tabindex = index; |
| + setFlag(TabIndexWasSetExplicitly, true); |
| + } |
| + |
| + void clearTabIndexExplicitly() |
| + { |
| + m_tabindex = 0; |
| + clearFlag(TabIndexWasSetExplicitly); |
| + } |
| + |
| + bool hasFlag(ElementFlags mask) const { return m_flags & mask; } |
| + void setFlag(ElementFlags mask, bool value) { m_flags = (m_flags & ~mask) | (-(int32_t)value & mask); } |
| + void clearFlag(ElementFlags mask) { m_flags &= ~mask; } |
| + |
| unsigned childIndex() const { return m_childIndex; } |
| void setChildIndex(unsigned index) { m_childIndex = index; } |
| @@ -133,9 +112,6 @@ public: |
| m_activeAnimations = activeAnimations; |
| } |
| - bool hasPendingResources() const { return m_hasPendingResources; } |
| - void setHasPendingResources(bool has) { m_hasPendingResources = has; } |
| - |
| bool hasInputMethodContext() const { return m_inputMethodContext; } |
| InputMethodContext& ensureInputMethodContext(HTMLElement* element) |
| { |
| @@ -148,27 +124,9 @@ public: |
| void clearPseudoElements(); |
| private: |
| - short m_tabIndex; |
| + short m_tabindex; |
| unsigned short m_childIndex; |
| - unsigned m_tabIndexWasSetExplicitly : 1; |
| - unsigned m_needsFocusAppearanceUpdateSoonAfterAttach : 1; |
| - unsigned m_styleAffectedByEmpty : 1; |
| - unsigned m_isInCanvasSubtree : 1; |
| - unsigned m_containsFullScreenElement : 1; |
| - unsigned m_isInTopLayer : 1; |
| - unsigned m_hasPendingResources : 1; |
| - unsigned m_childrenAffectedByFocus : 1; |
| - unsigned m_childrenAffectedByHover : 1; |
| - unsigned m_childrenAffectedByActive : 1; |
| - unsigned m_childrenAffectedByDrag : 1; |
| - // Bits for dynamic child matching. |
| - // We optimize for :first-child and :last-child. The other positional child selectors like nth-child or |
|
eseidel
2014/03/18 03:12:21
Do we want to move thsi comment to the new enum?
|
| - // *-child-of-type, we will just give up and re-evaluate whenever children change at all. |
| - unsigned m_childrenAffectedByFirstChildRules : 1; |
| - unsigned m_childrenAffectedByLastChildRules : 1; |
| - unsigned m_childrenAffectedByDirectAdjacentRules : 1; |
| - unsigned m_childrenAffectedByForwardPositionalRules : 1; |
| - unsigned m_childrenAffectedByBackwardPositionalRules : 1; |
| + unsigned m_flags; |
| LayoutSize m_minimumSizeForResizing; |
| IntSize m_savedLayerScrollOffset; |
| @@ -186,7 +144,7 @@ private: |
| RefPtr<PseudoElement> m_generatedAfter; |
| RefPtr<PseudoElement> m_backdrop; |
| - ElementRareData(RenderObject*); |
| + explicit ElementRareData(RenderObject*); |
| }; |
| inline IntSize defaultMinimumSizeForResizing() |
| @@ -196,24 +154,9 @@ inline IntSize defaultMinimumSizeForResizing() |
| inline ElementRareData::ElementRareData(RenderObject* renderer) |
| : NodeRareData(renderer) |
| - , m_tabIndex(0) |
| + , m_tabindex(0) |
| , m_childIndex(0) |
| - , m_tabIndexWasSetExplicitly(false) |
| - , m_needsFocusAppearanceUpdateSoonAfterAttach(false) |
| - , m_styleAffectedByEmpty(false) |
| - , m_isInCanvasSubtree(false) |
| - , m_containsFullScreenElement(false) |
| - , m_isInTopLayer(false) |
| - , m_hasPendingResources(false) |
| - , m_childrenAffectedByFocus(false) |
| - , m_childrenAffectedByHover(false) |
| - , m_childrenAffectedByActive(false) |
| - , m_childrenAffectedByDrag(false) |
| - , m_childrenAffectedByFirstChildRules(false) |
| - , m_childrenAffectedByLastChildRules(false) |
| - , m_childrenAffectedByDirectAdjacentRules(false) |
| - , m_childrenAffectedByForwardPositionalRules(false) |
| - , m_childrenAffectedByBackwardPositionalRules(false) |
| + , m_flags(0) |
| , m_minimumSizeForResizing(defaultMinimumSizeForResizing()) |
| { |
| } |
| @@ -277,21 +220,21 @@ inline PseudoElement* ElementRareData::pseudoElement(PseudoId pseudoId) const |
| inline void ElementRareData::resetStyleState() |
| { |
| - setStyleAffectedByEmpty(false); |
| + clearFlag(StyleAffectedByEmpty); |
| setChildIndex(0); |
| } |
| inline void ElementRareData::resetDynamicRestyleObservations() |
| { |
| - setChildrenAffectedByFocus(false); |
| - setChildrenAffectedByHover(false); |
| - setChildrenAffectedByActive(false); |
| - setChildrenAffectedByDrag(false); |
| - setChildrenAffectedByFirstChildRules(false); |
| - setChildrenAffectedByLastChildRules(false); |
| - setChildrenAffectedByDirectAdjacentRules(false); |
| - setChildrenAffectedByForwardPositionalRules(false); |
| - setChildrenAffectedByBackwardPositionalRules(false); |
| + clearFlag(ChildrenAffectedByFocus); |
| + clearFlag(ChildrenAffectedByHover); |
| + clearFlag(ChildrenAffectedByActive); |
| + clearFlag(ChildrenAffectedByDrag); |
| + clearFlag(ChildrenAffectedByFirstChildRules); |
| + clearFlag(ChildrenAffectedByLastChildRules); |
| + clearFlag(ChildrenAffectedByDirectAdjacentRules); |
| + clearFlag(ChildrenAffectedByForwardPositionalRules); |
| + clearFlag(ChildrenAffectedByBackwardPositionalRules); |
| } |
| } // namespace |