Title: [258416] trunk/Source/WebCore
Revision
258416
Author
an...@apple.com
Date
2020-03-13 11:55:54 -0700 (Fri, 13 Mar 2020)

Log Message

Remove AffectedByDrag style flag
https://bugs.webkit.org/show_bug.cgi?id=209054

Reviewed by Simon Fraser.

As a followup to r258321, remove the last remaining user action related AffectedBy flag.

This also cleans out a bunch of scetchy, risky code from render tree (style invalidation!).

* css/SelectorChecker.cpp:
(WebCore::SelectorChecker::checkOne const):
* dom/DataTransfer.cpp:
(WebCore::DataTransfer::createDragImage const):
* dom/Element.cpp:
(WebCore::Element::isUserActionElementDragged const):
(WebCore::Element::setBeingDragged):

Move dragged state for render tree to Element where it belongs.

(WebCore::Element::hasFlagsSetDuringStylingOfChildren const):
* dom/Element.h:
(WebCore::Element::isBeingDragged const):
(WebCore::Element::descendantsAffectedByPreviousSibling const):
(WebCore::Element::setDescendantsAffectedByPreviousSibling):
(WebCore::Element::childrenAffectedByDrag const): Deleted.
(WebCore::Element::setChildrenAffectedByDrag): Deleted.
* dom/Node.h:
* dom/UserActionElementSet.h:
(WebCore::UserActionElementSet::isBeingDragged):
(WebCore::UserActionElementSet::setBeingDragged):

Invalidate using PseudoClassChangeInvalidation that doesn't require any flags.

* platform/DragImage.cpp:
(WebCore::ScopedNodeDragEnabler::ScopedNodeDragEnabler):
(WebCore::ScopedNodeDragEnabler::~ScopedNodeDragEnabler):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::updateDragState): Deleted.
* rendering/RenderBlock.h:
* rendering/RenderInline.cpp:
(WebCore::RenderInline::updateDragState): Deleted.
* rendering/RenderInline.h:
* rendering/RenderObject.cpp:
(WebCore::RenderObject::updateDragState): Deleted.
(WebCore::RenderObject::setIsDragging): Deleted.
* rendering/RenderObject.h:
(WebCore::RenderObject::RenderObjectRareData::RenderObjectRareData):
(WebCore::RenderObject::isDragging const): Deleted.
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::RenderStyle):
* rendering/style/RenderStyle.h:
(WebCore::RenderStyle::NonInheritedFlags::operator== const):
(WebCore::RenderStyle::affectedByDrag const): Deleted.
(WebCore::RenderStyle::setAffectedByDrag): Deleted.
* style/StyleRelations.cpp:
(WebCore::Style::commitRelationsToRenderStyle):
(WebCore::Style::commitRelations):
* style/StyleRelations.h:

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (258415 => 258416)


--- trunk/Source/WebCore/ChangeLog	2020-03-13 18:52:01 UTC (rev 258415)
+++ trunk/Source/WebCore/ChangeLog	2020-03-13 18:55:54 UTC (rev 258416)
@@ -1,3 +1,64 @@
+2020-03-13  Antti Koivisto  <an...@apple.com>
+
+        Remove AffectedByDrag style flag
+        https://bugs.webkit.org/show_bug.cgi?id=209054
+
+        Reviewed by Simon Fraser.
+
+        As a followup to r258321, remove the last remaining user action related AffectedBy flag.
+
+        This also cleans out a bunch of scetchy, risky code from render tree (style invalidation!).
+
+        * css/SelectorChecker.cpp:
+        (WebCore::SelectorChecker::checkOne const):
+        * dom/DataTransfer.cpp:
+        (WebCore::DataTransfer::createDragImage const):
+        * dom/Element.cpp:
+        (WebCore::Element::isUserActionElementDragged const):
+        (WebCore::Element::setBeingDragged):
+
+        Move dragged state for render tree to Element where it belongs.
+
+        (WebCore::Element::hasFlagsSetDuringStylingOfChildren const):
+        * dom/Element.h:
+        (WebCore::Element::isBeingDragged const):
+        (WebCore::Element::descendantsAffectedByPreviousSibling const):
+        (WebCore::Element::setDescendantsAffectedByPreviousSibling):
+        (WebCore::Element::childrenAffectedByDrag const): Deleted.
+        (WebCore::Element::setChildrenAffectedByDrag): Deleted.
+        * dom/Node.h:
+        * dom/UserActionElementSet.h:
+        (WebCore::UserActionElementSet::isBeingDragged):
+        (WebCore::UserActionElementSet::setBeingDragged):
+
+        Invalidate using PseudoClassChangeInvalidation that doesn't require any flags.
+
+        * platform/DragImage.cpp:
+        (WebCore::ScopedNodeDragEnabler::ScopedNodeDragEnabler):
+        (WebCore::ScopedNodeDragEnabler::~ScopedNodeDragEnabler):
+        * rendering/RenderBlock.cpp:
+        (WebCore::RenderBlock::updateDragState): Deleted.
+        * rendering/RenderBlock.h:
+        * rendering/RenderInline.cpp:
+        (WebCore::RenderInline::updateDragState): Deleted.
+        * rendering/RenderInline.h:
+        * rendering/RenderObject.cpp:
+        (WebCore::RenderObject::updateDragState): Deleted.
+        (WebCore::RenderObject::setIsDragging): Deleted.
+        * rendering/RenderObject.h:
+        (WebCore::RenderObject::RenderObjectRareData::RenderObjectRareData):
+        (WebCore::RenderObject::isDragging const): Deleted.
+        * rendering/style/RenderStyle.cpp:
+        (WebCore::RenderStyle::RenderStyle):
+        * rendering/style/RenderStyle.h:
+        (WebCore::RenderStyle::NonInheritedFlags::operator== const):
+        (WebCore::RenderStyle::affectedByDrag const): Deleted.
+        (WebCore::RenderStyle::setAffectedByDrag): Deleted.
+        * style/StyleRelations.cpp:
+        (WebCore::Style::commitRelationsToRenderStyle):
+        (WebCore::Style::commitRelations):
+        * style/StyleRelations.h:
+
 2020-03-13  Andres Gonzalez  <andresg...@apple.com>
 
         [WebAccessibilityObjectWrapper renderWidgetChildren] does not need to run on main thread.

Modified: trunk/Source/WebCore/css/SelectorChecker.cpp (258415 => 258416)


--- trunk/Source/WebCore/css/SelectorChecker.cpp	2020-03-13 18:52:01 UTC (rev 258415)
+++ trunk/Source/WebCore/css/SelectorChecker.cpp	2020-03-13 18:55:54 UTC (rev 258416)
@@ -999,11 +999,7 @@
         case CSSSelector::PseudoClassDirectFocus:
             return matchesDirectFocusPseudoClass(element);
         case CSSSelector::PseudoClassDrag:
-            addStyleRelation(checkingContext, element, Style::Relation::AffectedByDrag);
-
-            if (element.renderer() && element.renderer()->isDragging())
-                return true;
-            break;
+            return element.isBeingDragged();
         case CSSSelector::PseudoClassFocus:
             return matchesFocusPseudoClass(element);
         case CSSSelector::PseudoClassFocusWithin:

Modified: trunk/Source/WebCore/dom/Element.cpp (258415 => 258416)


--- trunk/Source/WebCore/dom/Element.cpp	2020-03-13 18:52:01 UTC (rev 258415)
+++ trunk/Source/WebCore/dom/Element.cpp	2020-03-13 18:55:54 UTC (rev 258416)
@@ -629,6 +629,12 @@
     return document().userActionElements().isHovered(*this);
 }
 
+bool Element::isUserActionElementDragged() const
+{
+    ASSERT(isUserActionElement());
+    return document().userActionElements().isBeingDragged(*this);
+}
+
 void Element::setActive(bool flag, bool pause)
 {
     if (flag == active())
@@ -719,6 +725,15 @@
         renderer()->theme().stateChanged(*renderer(), ControlStates::HoverState);
 }
 
+void Element::setBeingDragged(bool flag)
+{
+    if (flag == isBeingDragged())
+        return;
+
+    Style::PseudoClassChangeInvalidation styleInvalidation(*this, CSSSelector::PseudoClassDrag);
+    document().userActionElements().setBeingDragged(*this, flag);
+}
+
 inline ScrollAlignment toScrollAlignmentForInlineDirection(Optional<ScrollLogicalPosition> position, WritingMode writingMode, bool isLTR)
 {
     switch (position.valueOr(ScrollLogicalPosition::Nearest)) {
@@ -3403,7 +3418,6 @@
 {
     return childrenAffectedByFirstChildRules()
         || childrenAffectedByLastChildRules()
-        || childrenAffectedByDrag()
         || childrenAffectedByForwardPositionalRules()
         || descendantsAffectedByForwardPositionalRules()
         || childrenAffectedByBackwardPositionalRules()

Modified: trunk/Source/WebCore/dom/Element.h (258415 => 258416)


--- trunk/Source/WebCore/dom/Element.h	2020-03-13 18:52:01 UTC (rev 258415)
+++ trunk/Source/WebCore/dom/Element.h	2020-03-13 18:55:54 UTC (rev 258416)
@@ -315,12 +315,14 @@
     bool active() const { return isUserActionElement() && isUserActionElementActive(); }
     bool hovered() const { return isUserActionElement() && isUserActionElementHovered(); }
     bool focused() const { return isUserActionElement() && isUserActionElementFocused(); }
+    bool isBeingDragged() const { return isUserActionElement() && isUserActionElementDragged(); }
     bool hasFocusWithin() const { return getFlag(HasFocusWithin); };
 
-    virtual void setActive(bool flag = true, bool pause = false);
-    virtual void setHovered(bool flag = true);
-    virtual void setFocus(bool flag);
-    void setHasFocusWithin(bool flag);
+    virtual void setActive(bool = true, bool pause = false);
+    virtual void setHovered(bool = true);
+    virtual void setFocus(bool);
+    void setBeingDragged(bool);
+    void setHasFocusWithin(bool);
 
     Optional<int> tabIndexSetExplicitly() const;
     bool shouldBeIgnoredInSequentialFocusNavigation() const { return defaultTabIndex() < 0 && !supportsFocus(); }
@@ -351,7 +353,6 @@
     // Methods for indicating the style is affected by dynamic updates (e.g., children changing, our position changing in our sibling list, etc.)
     bool styleAffectedByEmpty() const { return hasStyleFlag(ElementStyleFlag::StyleAffectedByEmpty); }
     bool descendantsAffectedByPreviousSibling() const { return getFlag(DescendantsAffectedByPreviousSiblingFlag); }
-    bool childrenAffectedByDrag() const { return hasStyleFlag(ElementStyleFlag::ChildrenAffectedByDrag); }
     bool childrenAffectedByFirstChildRules() const { return getFlag(ChildrenAffectedByFirstChildRulesFlag); }
     bool childrenAffectedByLastChildRules() const { return getFlag(ChildrenAffectedByLastChildRulesFlag); }
     bool childrenAffectedByForwardPositionalRules() const { return hasStyleFlag(ElementStyleFlag::ChildrenAffectedByForwardPositionalRules); }
@@ -366,7 +367,6 @@
 
     void setStyleAffectedByEmpty() { setStyleFlag(ElementStyleFlag::StyleAffectedByEmpty); }
     void setDescendantsAffectedByPreviousSibling() { setFlag(DescendantsAffectedByPreviousSiblingFlag); }
-    void setChildrenAffectedByDrag() { setStyleFlag(ElementStyleFlag::ChildrenAffectedByDrag); }
     void setChildrenAffectedByFirstChildRules() { setFlag(ChildrenAffectedByFirstChildRulesFlag); }
     void setChildrenAffectedByLastChildRules() { setFlag(ChildrenAffectedByLastChildRulesFlag); }
     void setChildrenAffectedByForwardPositionalRules() { setStyleFlag(ElementStyleFlag::ChildrenAffectedByForwardPositionalRules); }
@@ -642,6 +642,7 @@
     bool isUserActionElementActive() const;
     bool isUserActionElementFocused() const;
     bool isUserActionElementHovered() const;
+    bool isUserActionElementDragged() const;
 
     virtual void didAddUserAgentShadowRoot(ShadowRoot&) { }
 

Modified: trunk/Source/WebCore/dom/Node.h (258415 => 258416)


--- trunk/Source/WebCore/dom/Node.h	2020-03-13 18:52:01 UTC (rev 258415)
+++ trunk/Source/WebCore/dom/Node.h	2020-03-13 18:55:54 UTC (rev 258416)
@@ -601,17 +601,15 @@
     static constexpr uint32_t s_refCountMask = ~static_cast<uint32_t>(1);
 
     enum class ElementStyleFlag : uint8_t {
-        StyleAffectedByEmpty = 1 << 0,
-        ChildrenAffectedByDrag = 1 << 1,
-
+        StyleAffectedByEmpty                                    = 1 << 0,
         // Bits for dynamic child matching.
         // We optimize for :first-child and :last-child. The other positional child selectors like nth-child or
         // *-child-of-type, we will just give up and re-evaluate whenever children change at all.
-        ChildrenAffectedByForwardPositionalRules = 1 << 2,
-        DescendantsAffectedByForwardPositionalRules = 1 << 3,
-        ChildrenAffectedByBackwardPositionalRules = 1 << 4,
-        DescendantsAffectedByBackwardPositionalRules = 1 << 5,
-        ChildrenAffectedByPropertyBasedBackwardPositionalRules = 1 << 6,
+        ChildrenAffectedByForwardPositionalRules                = 1 << 1,
+        DescendantsAffectedByForwardPositionalRules             = 1 << 2,
+        ChildrenAffectedByBackwardPositionalRules               = 1 << 3,
+        DescendantsAffectedByBackwardPositionalRules            = 1 << 4,
+        ChildrenAffectedByPropertyBasedBackwardPositionalRules  = 1 << 5,
     };
 
     bool hasStyleFlag(ElementStyleFlag state) const { return m_rendererWithStyleFlags.type() & static_cast<uint8_t>(state); }

Modified: trunk/Source/WebCore/dom/UserActionElementSet.h (258415 => 258416)


--- trunk/Source/WebCore/dom/UserActionElementSet.h	2020-03-13 18:52:01 UTC (rev 258415)
+++ trunk/Source/WebCore/dom/UserActionElementSet.h	2020-03-13 18:55:54 UTC (rev 258416)
@@ -42,11 +42,13 @@
     bool isFocused(const Element& element) { return hasFlag(element, Flag::IsFocused); }
     bool isHovered(const Element& element) { return hasFlag(element, Flag::IsHovered); }
     bool isInActiveChain(const Element& element) { return hasFlag(element, Flag::InActiveChain); }
+    bool isBeingDragged(const Element& element) { return hasFlag(element, Flag::IsBeingDragged); }
 
     void setActive(Element& element, bool enable) { setFlags(element, enable, Flag::IsActive); }
     void setFocused(Element& element, bool enable) { setFlags(element, enable, Flag::IsFocused); }
     void setHovered(Element& element, bool enable) { setFlags(element, enable, Flag::IsHovered); }
     void setInActiveChain(Element& element, bool enable) { setFlags(element, enable, Flag::InActiveChain); }
+    void setBeingDragged(Element& element, bool enable) { setFlags(element, enable, Flag::IsBeingDragged); }
 
     void clearActiveAndHovered(Element& element) { clearFlags(element, { Flag::IsActive, Flag::InActiveChain, Flag::IsHovered }); }
 
@@ -54,10 +56,11 @@
 
 private:
     enum class Flag {
-        IsActive = 1 << 0,
-        InActiveChain = 1 << 1,
-        IsHovered = 1 << 2,
-        IsFocused = 1 << 3
+        IsActive        = 1 << 0,
+        InActiveChain   = 1 << 1,
+        IsHovered       = 1 << 2,
+        IsFocused       = 1 << 3,
+        IsBeingDragged  = 1 << 4,
     };
 
     void setFlags(Element& element, bool enable, OptionSet<Flag> flags) { enable ? setFlags(element, flags) : clearFlags(element, flags); }

Modified: trunk/Source/WebCore/platform/DragImage.cpp (258415 => 258416)


--- trunk/Source/WebCore/platform/DragImage.cpp	2020-03-13 18:52:01 UTC (rev 258415)
+++ trunk/Source/WebCore/platform/DragImage.cpp	2020-03-13 18:55:54 UTC (rev 258416)
@@ -79,22 +79,20 @@
 
 struct ScopedNodeDragEnabler {
     ScopedNodeDragEnabler(Frame& frame, Node& node)
-        : frame(frame)
-        , node(node)
+        : element(is<Element>(node) ? &downcast<Element>(node) : nullptr)
     {
-        if (node.renderer())
-            node.renderer()->updateDragState(true);
+        if (element)
+            element->setBeingDragged(true);
         frame.document()->updateLayout();
     }
 
     ~ScopedNodeDragEnabler()
     {
-        if (node.renderer())
-            node.renderer()->updateDragState(false);
+        if (element)
+            element->setBeingDragged(false);
     }
 
-    const Frame& frame;
-    const Node& node;
+    RefPtr<Element> element;
 };
 
 static DragImageRef createDragImageFromSnapshot(std::unique_ptr<ImageBuffer> snapshot, Node* node)

Modified: trunk/Source/WebCore/rendering/RenderBlock.cpp (258415 => 258416)


--- trunk/Source/WebCore/rendering/RenderBlock.cpp	2020-03-13 18:52:01 UTC (rev 258415)
+++ trunk/Source/WebCore/rendering/RenderBlock.cpp	2020-03-13 18:55:54 UTC (rev 258416)
@@ -2811,13 +2811,6 @@
     return r;
 }
 
-void RenderBlock::updateDragState(bool dragOn)
-{
-    RenderBox::updateDragState(dragOn);
-    if (RenderBoxModelObject* continuation = this->continuation())
-        continuation->updateDragState(dragOn);
-}
-
 const RenderStyle& RenderBlock::outlineStyleForRepaint() const
 {
     if (auto* continuation = this->continuation())

Modified: trunk/Source/WebCore/rendering/RenderBlock.h (258415 => 258416)


--- trunk/Source/WebCore/rendering/RenderBlock.h	2020-03-13 18:52:01 UTC (rev 258415)
+++ trunk/Source/WebCore/rendering/RenderBlock.h	2020-03-13 18:55:54 UTC (rev 258416)
@@ -459,8 +459,6 @@
     LayoutRect rectWithOutlineForRepaint(const RenderLayerModelObject* repaintContainer, LayoutUnit outlineWidth) const final;
     const RenderStyle& outlineStyleForRepaint() const final;
 
-    void updateDragState(bool dragOn) final;
-
     LayoutRect selectionRectForRepaint(const RenderLayerModelObject* repaintContainer, bool /*clipToVisibleContent*/) final
     {
         return selectionGapRectsForRepaint(repaintContainer);

Modified: trunk/Source/WebCore/rendering/RenderInline.cpp (258415 => 258416)


--- trunk/Source/WebCore/rendering/RenderInline.cpp	2020-03-13 18:52:01 UTC (rev 258415)
+++ trunk/Source/WebCore/rendering/RenderInline.cpp	2020-03-13 18:55:54 UTC (rev 258416)
@@ -1030,13 +1030,6 @@
     return ancestorSkipped ? ancestorToStopAt : container;
 }
 
-void RenderInline::updateDragState(bool dragOn)
-{
-    RenderBoxModelObject::updateDragState(dragOn);
-    if (RenderBoxModelObject* continuation = this->continuation())
-        continuation->updateDragState(dragOn);
-}
-
 void RenderInline::updateHitTestResult(HitTestResult& result, const LayoutPoint& point)
 {
     if (result.innerNode())

Modified: trunk/Source/WebCore/rendering/RenderInline.h (258415 => 258416)


--- trunk/Source/WebCore/rendering/RenderInline.h	2020-03-13 18:52:01 UTC (rev 258415)
+++ trunk/Source/WebCore/rendering/RenderInline.h	2020-03-13 18:55:54 UTC (rev 258416)
@@ -76,8 +76,6 @@
 #if PLATFORM(IOS_FAMILY)
     void absoluteQuadsForSelection(Vector<FloatQuad>& quads) const override;
 #endif
-
-    void updateDragState(bool dragOn) final;
     
     LayoutSize offsetForInFlowPositionedInline(const RenderBox* child) const;
 

Modified: trunk/Source/WebCore/rendering/RenderObject.cpp (258415 => 258416)


--- trunk/Source/WebCore/rendering/RenderObject.cpp	2020-03-13 18:52:01 UTC (rev 258415)
+++ trunk/Source/WebCore/rendering/RenderObject.cpp	2020-03-13 18:55:54 UTC (rev 258416)
@@ -1524,22 +1524,6 @@
     return createVisiblePosition(caretMinOffset(), DOWNSTREAM);
 }
 
-void RenderObject::updateDragState(bool dragOn)
-{
-    bool valueChanged = (dragOn != isDragging());
-    setIsDragging(dragOn);
-
-    if (!is<RenderElement>(*this))
-        return;
-    auto& renderElement = downcast<RenderElement>(*this);
-
-    if (valueChanged && renderElement.element() && (style().affectedByDrag() || renderElement.element()->childrenAffectedByDrag()))
-        renderElement.element()->invalidateStyleForSubtree();
-
-    for (auto& child : childrenOfType<RenderObject>(renderElement))
-        child.updateDragState(dragOn);
-}
-
 bool RenderObject::isComposited() const
 {
     return hasLayer() && downcast<RenderLayerModelObject>(*this).layer()->isComposited();
@@ -1856,12 +1840,6 @@
     }
 }
 
-void RenderObject::setIsDragging(bool isDragging)
-{
-    if (isDragging || hasRareData())
-        ensureRareData().setIsDragging(isDragging);
-}
-
 void RenderObject::setHasReflection(bool hasReflection)
 {
     if (hasReflection || hasRareData())

Modified: trunk/Source/WebCore/rendering/RenderObject.h (258415 => 258416)


--- trunk/Source/WebCore/rendering/RenderObject.h	2020-03-13 18:52:01 UTC (rev 258415)
+++ trunk/Source/WebCore/rendering/RenderObject.h	2020-03-13 18:55:54 UTC (rev 258416)
@@ -427,7 +427,6 @@
     bool isReplaced() const { return m_bitfields.isReplaced(); } // a "replaced" element (see CSS)
     bool isHorizontalWritingMode() const { return m_bitfields.horizontalWritingMode(); }
 
-    bool isDragging() const { return m_bitfields.hasRareData() && rareData().isDragging(); }
     bool hasReflection() const { return m_bitfields.hasRareData() && rareData().hasReflection(); }
     bool isRenderFragmentedFlow() const { return m_bitfields.hasRareData() && rareData().isRenderFragmentedFlow(); }
     bool hasOutlineAutoAncestor() const { return m_bitfields.hasRareData() && rareData().hasOutlineAutoAncestor(); }
@@ -477,8 +476,6 @@
 
     inline bool preservesNewline() const;
 
-    virtual void updateDragState(bool dragOn);
-
     RenderView& view() const { return *document().renderView(); };
 
     // Returns true if this renderer is rooted.
@@ -541,7 +538,6 @@
     void setHasLayer(bool b = true) { m_bitfields.setHasLayer(b); }
     void setHasTransformRelatedProperty(bool b = true) { m_bitfields.setHasTransformRelatedProperty(b); }
 
-    void setIsDragging(bool);
     void setHasReflection(bool = true);
     void setIsRenderFragmentedFlow(bool = true);
     void setHasOutlineAutoAncestor(bool = true);
@@ -968,13 +964,11 @@
         WTF_MAKE_FAST_ALLOCATED;
     public:
         RenderObjectRareData()
-            : m_isDragging(false)
-            , m_hasReflection(false)
+            : m_hasReflection(false)
             , m_isRenderFragmentedFlow(false)
             , m_hasOutlineAutoAncestor(false)
         {
         }
-        ADD_BOOLEAN_BITFIELD(isDragging, IsDragging);
         ADD_BOOLEAN_BITFIELD(hasReflection, HasReflection);
         ADD_BOOLEAN_BITFIELD(isRenderFragmentedFlow, IsRenderFragmentedFlow);
         ADD_BOOLEAN_BITFIELD(hasOutlineAutoAncestor, HasOutlineAutoAncestor);

Modified: trunk/Source/WebCore/rendering/style/RenderStyle.cpp (258415 => 258416)


--- trunk/Source/WebCore/rendering/style/RenderStyle.cpp	2020-03-13 18:52:01 UTC (rev 258415)
+++ trunk/Source/WebCore/rendering/style/RenderStyle.cpp	2020-03-13 18:55:54 UTC (rev 258416)
@@ -189,7 +189,6 @@
     m_nonInheritedFlags.emptyState = false;
     m_nonInheritedFlags.firstChildState = false;
     m_nonInheritedFlags.lastChildState = false;
-    m_nonInheritedFlags.affectedByDrag = false;
     m_nonInheritedFlags.isLink = false;
     m_nonInheritedFlags.styleType = static_cast<unsigned>(PseudoId::None);
     m_nonInheritedFlags.pseudoBits = static_cast<unsigned>(PseudoId::None);

Modified: trunk/Source/WebCore/rendering/style/RenderStyle.h (258415 => 258416)


--- trunk/Source/WebCore/rendering/style/RenderStyle.h	2020-03-13 18:52:01 UTC (rev 258415)
+++ trunk/Source/WebCore/rendering/style/RenderStyle.h	2020-03-13 18:55:54 UTC (rev 258416)
@@ -192,9 +192,6 @@
     void setHasViewportUnits(bool v = true) { m_nonInheritedFlags.hasViewportUnits = v; }
     bool hasViewportUnits() const { return m_nonInheritedFlags.hasViewportUnits; }
 
-    bool affectedByDrag() const { return m_nonInheritedFlags.affectedByDrag; }
-    void setAffectedByDrag() { m_nonInheritedFlags.affectedByDrag = true; }
-
     void setColumnStylesFromPaginationMode(const Pagination::Mode&);
     
     bool isFloating() const { return static_cast<Float>(m_nonInheritedFlags.floating) != Float::No; }
@@ -1801,7 +1798,6 @@
         unsigned emptyState : 1;
         unsigned firstChildState : 1;
         unsigned lastChildState : 1;
-        unsigned affectedByDrag : 1;
         unsigned isLink : 1;
 
         unsigned styleType : 4; // PseudoId
@@ -1933,7 +1929,6 @@
         && emptyState == other.emptyState
         && firstChildState == other.firstChildState
         && lastChildState == other.lastChildState
-        && affectedByDrag == other.affectedByDrag
         && isLink == other.isLink
         && styleType == other.styleType
         && pseudoBits == other.pseudoBits;

Modified: trunk/Source/WebCore/style/StyleRelations.cpp (258415 => 258416)


--- trunk/Source/WebCore/style/StyleRelations.cpp	2020-03-13 18:52:01 UTC (rev 258415)
+++ trunk/Source/WebCore/style/StyleRelations.cpp	2020-03-13 18:55:54 UTC (rev 258416)
@@ -50,9 +50,6 @@
             continue;
         }
         switch (relation.type) {
-        case Relation::AffectedByDrag:
-            style.setAffectedByDrag();
-            break;
         case Relation::AffectedByEmpty:
             style.setEmptyState(relation.value);
             appendStyleRelation(relation);
@@ -91,9 +88,6 @@
     for (auto& relation : *relations) {
         auto& element = const_cast<Element&>(*relation.element);
         switch (relation.type) {
-        case Relation::AffectedByDrag:
-            element.setChildrenAffectedByDrag();
-            break;
         case Relation::AffectedByEmpty:
             element.setStyleAffectedByEmpty();
             break;

Modified: trunk/Source/WebCore/style/StyleRelations.h (258415 => 258416)


--- trunk/Source/WebCore/style/StyleRelations.h	2020-03-13 18:52:01 UTC (rev 258415)
+++ trunk/Source/WebCore/style/StyleRelations.h	2020-03-13 18:55:54 UTC (rev 258416)
@@ -38,7 +38,6 @@
 
 struct Relation {
     enum Type {
-        AffectedByDrag,
         AffectedByEmpty,
         AffectedByPreviousSibling,
         DescendantsAffectedByPreviousSibling,

Modified: trunk/Source/WebCore/style/StyleSharingResolver.cpp (258415 => 258416)


--- trunk/Source/WebCore/style/StyleSharingResolver.cpp	2020-03-13 18:52:01 UTC (rev 258415)
+++ trunk/Source/WebCore/style/StyleSharingResolver.cpp	2020-03-13 18:55:54 UTC (rev 258416)
@@ -225,6 +225,8 @@
         return false;
     if (candidateElement.hasFocusWithin() != element.hasFocusWithin())
         return false;
+    if (candidateElement.isBeingDragged() != element.isBeingDragged())
+        return false;
     if (candidateElement.shadowPseudoId() != element.shadowPseudoId())
         return false;
     if (&candidateElement == m_document.cssTarget())
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to