| Index: Source/core/dom/Element.cpp
|
| diff --git a/Source/core/dom/Element.cpp b/Source/core/dom/Element.cpp
|
| index 1b88ddbf87c87a51d523e8985ea2cfadeba4c3c7..dbfd5f43425c8b10d045382a98409125d858a7e7 100644
|
| --- a/Source/core/dom/Element.cpp
|
| +++ b/Source/core/dom/Element.cpp
|
| @@ -227,6 +227,26 @@ inline ElementRareData& Element::ensureElementRareData()
|
| return static_cast<ElementRareData&>(ensureRareData());
|
| }
|
|
|
| +bool Element::hasElementFlagInternal(ElementFlags mask) const
|
| +{
|
| + ASSERT(hasRareData());
|
| + return elementRareData()->hasFlag(mask);
|
| +}
|
| +
|
| +void Element::setElementFlag(ElementFlags mask, bool value)
|
| +{
|
| + if (!hasRareData() && !value)
|
| + return;
|
| + ensureElementRareData().setFlag(mask, value);
|
| +}
|
| +
|
| +void Element::clearElementFlag(ElementFlags mask)
|
| +{
|
| + if (!hasRareData())
|
| + return;
|
| + elementRareData()->clearFlag(mask);
|
| +}
|
| +
|
| void Element::clearTabIndexExplicitlyIfNeeded()
|
| {
|
| if (hasRareData())
|
| @@ -238,11 +258,6 @@ void Element::setTabIndexExplicitly(short tabIndex)
|
| ensureElementRareData().setTabIndexExplicitly(tabIndex);
|
| }
|
|
|
| -bool Element::supportsFocus() const
|
| -{
|
| - return hasRareData() && elementRareData()->tabIndexSetExplicitly();
|
| -}
|
| -
|
| short Element::tabIndex() const
|
| {
|
| return hasRareData() ? elementRareData()->tabIndex() : 0;
|
| @@ -1383,8 +1398,7 @@ void Element::removedFrom(ContainerNode* insertionPoint)
|
|
|
| document().removeFromTopLayer(this);
|
|
|
| - if (hasRareData())
|
| - elementRareData()->setIsInCanvasSubtree(false);
|
| + clearElementFlag(IsInCanvasSubtree);
|
| }
|
|
|
| void Element::attach(const AttachContext& context)
|
| @@ -1425,10 +1439,10 @@ void Element::attach(const AttachContext& context)
|
|
|
| if (hasRareData()) {
|
| ElementRareData* data = elementRareData();
|
| - if (data->needsFocusAppearanceUpdateSoonAfterAttach()) {
|
| + if (data->hasFlag(NeedsFocusAppearanceUpdateSoonAfterAttach)) {
|
| if (isFocusable() && document().focusedElement() == this)
|
| document().updateFocusAppearanceSoon(false /* don't restore selection */);
|
| - data->setNeedsFocusAppearanceUpdateSoonAfterAttach(false);
|
| + data->clearFlag(NeedsFocusAppearanceUpdateSoonAfterAttach);
|
| }
|
| if (!renderer()) {
|
| if (ActiveAnimations* activeAnimations = data->activeAnimations()) {
|
| @@ -2167,7 +2181,7 @@ void Element::focus(bool restorePreviousSelection, FocusType type)
|
| doc.updateLayoutIgnorePendingStylesheets();
|
|
|
| if (!isFocusable()) {
|
| - ensureElementRareData().setNeedsFocusAppearanceUpdateSoonAfterAttach(true);
|
| + setElementFlag(NeedsFocusAppearanceUpdateSoonAfterAttach);
|
| return;
|
| }
|
|
|
| @@ -2502,56 +2516,6 @@ RenderStyle* Element::computedStyle(PseudoId pseudoElementSpecifier)
|
| return pseudoElementSpecifier ? rareData.computedStyle()->getCachedPseudoStyle(pseudoElementSpecifier) : rareData.computedStyle();
|
| }
|
|
|
| -void Element::setStyleAffectedByEmpty()
|
| -{
|
| - ensureElementRareData().setStyleAffectedByEmpty(true);
|
| -}
|
| -
|
| -void Element::setChildrenAffectedByFocus()
|
| -{
|
| - ensureElementRareData().setChildrenAffectedByFocus(true);
|
| -}
|
| -
|
| -void Element::setChildrenAffectedByHover()
|
| -{
|
| - ensureElementRareData().setChildrenAffectedByHover(true);
|
| -}
|
| -
|
| -void Element::setChildrenAffectedByActive()
|
| -{
|
| - ensureElementRareData().setChildrenAffectedByActive(true);
|
| -}
|
| -
|
| -void Element::setChildrenAffectedByDrag()
|
| -{
|
| - ensureElementRareData().setChildrenAffectedByDrag(true);
|
| -}
|
| -
|
| -void Element::setChildrenAffectedByFirstChildRules()
|
| -{
|
| - ensureElementRareData().setChildrenAffectedByFirstChildRules(true);
|
| -}
|
| -
|
| -void Element::setChildrenAffectedByLastChildRules()
|
| -{
|
| - ensureElementRareData().setChildrenAffectedByLastChildRules(true);
|
| -}
|
| -
|
| -void Element::setChildrenAffectedByDirectAdjacentRules()
|
| -{
|
| - ensureElementRareData().setChildrenAffectedByDirectAdjacentRules(true);
|
| -}
|
| -
|
| -void Element::setChildrenAffectedByForwardPositionalRules()
|
| -{
|
| - ensureElementRareData().setChildrenAffectedByForwardPositionalRules(true);
|
| -}
|
| -
|
| -void Element::setChildrenAffectedByBackwardPositionalRules()
|
| -{
|
| - ensureElementRareData().setChildrenAffectedByBackwardPositionalRules(true);
|
| -}
|
| -
|
| void Element::setChildIndex(unsigned index)
|
| {
|
| ElementRareData& rareData = ensureElementRareData();
|
| @@ -2560,97 +2524,12 @@ void Element::setChildIndex(unsigned index)
|
| rareData.setChildIndex(index);
|
| }
|
|
|
| -bool Element::childrenSupportStyleSharing() const
|
| -{
|
| - if (!hasRareData())
|
| - return true;
|
| - return !rareDataChildrenAffectedByFocus()
|
| - && !rareDataChildrenAffectedByHover()
|
| - && !rareDataChildrenAffectedByActive()
|
| - && !rareDataChildrenAffectedByDrag()
|
| - && !rareDataChildrenAffectedByFirstChildRules()
|
| - && !rareDataChildrenAffectedByLastChildRules()
|
| - && !rareDataChildrenAffectedByDirectAdjacentRules()
|
| - && !rareDataChildrenAffectedByForwardPositionalRules()
|
| - && !rareDataChildrenAffectedByBackwardPositionalRules();
|
| -}
|
| -
|
| -bool Element::rareDataStyleAffectedByEmpty() const
|
| -{
|
| - ASSERT(hasRareData());
|
| - return elementRareData()->styleAffectedByEmpty();
|
| -}
|
| -
|
| -bool Element::rareDataChildrenAffectedByFocus() const
|
| -{
|
| - ASSERT(hasRareData());
|
| - return elementRareData()->childrenAffectedByFocus();
|
| -}
|
| -
|
| -bool Element::rareDataChildrenAffectedByHover() const
|
| -{
|
| - ASSERT(hasRareData());
|
| - return elementRareData()->childrenAffectedByHover();
|
| -}
|
| -
|
| -bool Element::rareDataChildrenAffectedByActive() const
|
| -{
|
| - ASSERT(hasRareData());
|
| - return elementRareData()->childrenAffectedByActive();
|
| -}
|
| -
|
| -bool Element::rareDataChildrenAffectedByDrag() const
|
| -{
|
| - ASSERT(hasRareData());
|
| - return elementRareData()->childrenAffectedByDrag();
|
| -}
|
| -
|
| -bool Element::rareDataChildrenAffectedByFirstChildRules() const
|
| -{
|
| - ASSERT(hasRareData());
|
| - return elementRareData()->childrenAffectedByFirstChildRules();
|
| -}
|
| -
|
| -bool Element::rareDataChildrenAffectedByLastChildRules() const
|
| -{
|
| - ASSERT(hasRareData());
|
| - return elementRareData()->childrenAffectedByLastChildRules();
|
| -}
|
| -
|
| -bool Element::rareDataChildrenAffectedByDirectAdjacentRules() const
|
| -{
|
| - ASSERT(hasRareData());
|
| - return elementRareData()->childrenAffectedByDirectAdjacentRules();
|
| -}
|
| -
|
| -bool Element::rareDataChildrenAffectedByForwardPositionalRules() const
|
| -{
|
| - ASSERT(hasRareData());
|
| - return elementRareData()->childrenAffectedByForwardPositionalRules();
|
| -}
|
| -
|
| -bool Element::rareDataChildrenAffectedByBackwardPositionalRules() const
|
| -{
|
| - ASSERT(hasRareData());
|
| - return elementRareData()->childrenAffectedByBackwardPositionalRules();
|
| -}
|
| -
|
| unsigned Element::rareDataChildIndex() const
|
| {
|
| ASSERT(hasRareData());
|
| return elementRareData()->childIndex();
|
| }
|
|
|
| -void Element::setIsInCanvasSubtree(bool isInCanvasSubtree)
|
| -{
|
| - ensureElementRareData().setIsInCanvasSubtree(isInCanvasSubtree);
|
| -}
|
| -
|
| -bool Element::isInCanvasSubtree() const
|
| -{
|
| - return hasRareData() && elementRareData()->isInCanvasSubtree();
|
| -}
|
| -
|
| AtomicString Element::computeInheritedLanguage() const
|
| {
|
| const Node* n = this;
|
| @@ -2684,7 +2563,7 @@ Locale& Element::locale() const
|
| void Element::cancelFocusAppearanceUpdate()
|
| {
|
| if (hasRareData())
|
| - elementRareData()->setNeedsFocusAppearanceUpdateSoonAfterAttach(false);
|
| + clearElementFlag(NeedsFocusAppearanceUpdateSoonAfterAttach);
|
| if (document().focusedElement() == this)
|
| document().cancelFocusAppearanceUpdate();
|
| }
|
| @@ -2853,14 +2732,9 @@ void Element::webkitRequestFullScreen(unsigned short flags)
|
| FullscreenElementStack::from(document()).requestFullScreenForElement(this, (flags | LEGACY_MOZILLA_REQUEST), FullscreenElementStack::EnforceIFrameAllowFullScreenRequirement);
|
| }
|
|
|
| -bool Element::containsFullScreenElement() const
|
| -{
|
| - return hasRareData() && elementRareData()->containsFullScreenElement();
|
| -}
|
| -
|
| void Element::setContainsFullScreenElement(bool flag)
|
| {
|
| - ensureElementRareData().setContainsFullScreenElement(flag);
|
| + setElementFlag(ContainsFullScreenElement, flag);
|
| setNeedsStyleRecalc(SubtreeStyleChange);
|
| }
|
|
|
| @@ -2877,16 +2751,11 @@ void Element::setContainsFullScreenElementOnAncestorsCrossingFrameBoundaries(boo
|
| element->setContainsFullScreenElement(flag);
|
| }
|
|
|
| -bool Element::isInTopLayer() const
|
| -{
|
| - return hasRareData() && elementRareData()->isInTopLayer();
|
| -}
|
| -
|
| void Element::setIsInTopLayer(bool inTopLayer)
|
| {
|
| if (isInTopLayer() == inTopLayer)
|
| return;
|
| - ensureElementRareData().setIsInTopLayer(inTopLayer);
|
| + setElementFlag(IsInTopLayer, inTopLayer);
|
|
|
| // We must ensure a reattach occurs so the renderer is inserted in the correct sibling order under RenderView according to its
|
| // top layer position, or in its usual place if not in the top layer.
|
| @@ -3314,21 +3183,6 @@ bool Element::hasInputMethodContext() const
|
| return hasRareData() && elementRareData()->hasInputMethodContext();
|
| }
|
|
|
| -bool Element::hasPendingResources() const
|
| -{
|
| - return hasRareData() && elementRareData()->hasPendingResources();
|
| -}
|
| -
|
| -void Element::setHasPendingResources()
|
| -{
|
| - ensureElementRareData().setHasPendingResources(true);
|
| -}
|
| -
|
| -void Element::clearHasPendingResources()
|
| -{
|
| - ensureElementRareData().setHasPendingResources(false);
|
| -}
|
| -
|
| void Element::synchronizeStyleAttributeInternal() const
|
| {
|
| ASSERT(isStyledElement());
|
|
|