[webkit-changes] [WebKit/WebKit] ea5e30: Move Node flags for ownerships and relationships t...
Ryosuke Niwa
noreply at github.com
Thu Dec 21 10:21:50 PST 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: ea5e30e46342b0e755281a1ffb2f23c37a2b9bcd
https://github.com/WebKit/WebKit/commit/ea5e30e46342b0e755281a1ffb2f23c37a2b9bcd
Author: Ryosuke Niwa <rniwa at webkit.org>
Date: 2023-12-21 (Thu, 21 Dec 2023)
Changed paths:
M Source/WebCore/dom/Document.cpp
M Source/WebCore/dom/Element.cpp
M Source/WebCore/dom/Element.h
M Source/WebCore/dom/EventTarget.h
M Source/WebCore/dom/GCReachableRef.cpp
M Source/WebCore/dom/GCReachableRef.h
M Source/WebCore/dom/Node.cpp
M Source/WebCore/dom/Node.h
M Source/WebCore/dom/PseudoElement.cpp
M Source/WebCore/dom/ShadowRoot.cpp
M Source/WebCore/html/HTMLMaybeFormAssociatedCustomElement.cpp
M Source/WebCore/html/HTMLMaybeFormAssociatedCustomElement.h
M Source/WebCore/svg/SVGElement.h
Log Message:
-----------
Move Node flags for ownerships and relationships to EventTargetFlag
https://bugs.webkit.org/show_bug.cgi?id=266754
Reviewed by Tim Nguyen.
This PR consolidates NodeFlag flags that express ownership and relationships with other objects
to EventTargetFlag. NodeFlag now represents Node's types and its own state.
The lower 16-bit of NodeFlag is now reserved for type information, and only upper 16-bits can be
used to express Node's states.
It also generalizes GCReachableRefMap so that it works with any EventTarget instead of just Node.
* Source/WebCore/dom/Document.cpp:
(WebCore::Document::Document):
* Source/WebCore/dom/Element.cpp:
(WebCore::Element::addToTopLayer):
(WebCore::Element::removeFromTopLayer):
* Source/WebCore/dom/Element.h:
(WebCore::Element::isInTopLayer const):
(WebCore::Element::effectiveLangKnownToMatchDocumentElement const):
(WebCore::Element::setEffectiveLangKnownToMatchDocumentElement):
(WebCore::Element::hasEverHadSmoothScroll const):
(WebCore::Element::setHasEverHadSmoothScroll):
* Source/WebCore/dom/EventTarget.h:
(WebCore::EventTarget::isInGCReacheableRefMap const): Moved from Node.
(WebCore::EventTarget::setIsInGCReacheableRefMap): Ditto.
(WebCore::EventTarget::clearEventTargetFlag): Added.
(WebCore::EventTarget::setEventTargetFlag): Use OptionSet to manipulate bitfields for clarity
and simplicity.
* Source/WebCore/dom/GCReachableRef.cpp:
(WebCore::GCReachableRefMap::map):
* Source/WebCore/dom/GCReachableRef.h:
(WebCore::GCReachableRefMap::contains): Now works with any EventTarget, not just Node.
(WebCore::GCReachableRefMap::add): Ditto.
(WebCore::GCReachableRefMap::remove): Ditto.
* Source/WebCore/dom/Node.cpp:
(WebCore::Node::insertedIntoAncestor):
(WebCore::Node::removedFromAncestor):
(WebCore::Node::moveTreeToNewScope):
* Source/WebCore/dom/Node.h:
(WebCore::Node::hasSyntheticAttrChildNodes const):
(WebCore::Node::setHasSyntheticAttrChildNodes):
(WebCore::Node::hasShadowRootContainingSlots const):
(WebCore::Node::setHasShadowRootContainingSlots):
(WebCore::Node::isConnected const):
(WebCore::Node::isInShadowTree const):
(WebCore::Node::isInTreeScope const):
(WebCore::Node::hasBeenInUserAgentShadowTree const):
(WebCore::Node::isInGCReacheableRefMap const): Deleted.
(WebCore::Node::setIsInGCReacheableRefMap): Deleted.
* Source/WebCore/dom/PseudoElement.cpp:
(WebCore::PseudoElement::PseudoElement):
* Source/WebCore/dom/ShadowRoot.cpp:
(WebCore::ShadowRoot::ShadowRoot):
* Source/WebCore/html/HTMLMaybeFormAssociatedCustomElement.cpp:
(WebCore::HTMLMaybeFormAssociatedCustomElement::setInterfaceIsFormAssociated):
* Source/WebCore/html/HTMLMaybeFormAssociatedCustomElement.h:
* Source/WebCore/svg/SVGElement.h:
(WebCore::SVGElement::hasPendingResources const):
(WebCore::SVGElement::setHasPendingResources):
(WebCore::SVGElement::clearHasPendingResources):
Canonical link: https://commits.webkit.org/272421@main
More information about the webkit-changes
mailing list