Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: cd960b2c7a549558d0b3923bb5508779e29c8d8c
      
https://github.com/WebKit/WebKit/commit/cd960b2c7a549558d0b3923bb5508779e29c8d8c
  Author: Ryosuke Niwa <rn...@webkit.org>
  Date:   2024-01-02 (Tue, 02 Jan 2024)
  Changed paths:
    M Source/WebCore/Modules/model-element/HTMLModelElement.cpp
    M Source/WebCore/Modules/model-element/HTMLModelElement.h
    M Source/WebCore/dom/Attr.cpp
    M Source/WebCore/dom/CDATASection.cpp
    M Source/WebCore/dom/CharacterData.h
    M Source/WebCore/dom/ContainerNode.h
    M Source/WebCore/dom/DocumentFragment.cpp
    M Source/WebCore/dom/DocumentFragment.h
    M Source/WebCore/dom/DocumentType.cpp
    M Source/WebCore/dom/Element.cpp
    M Source/WebCore/dom/Node.h
    M Source/WebCore/dom/PseudoElement.cpp
    M Source/WebCore/dom/ShadowRoot.cpp
    M Source/WebCore/dom/Text.cpp
    M Source/WebCore/dom/Text.h
    M Source/WebCore/html/HTMLDivElement.cpp
    M Source/WebCore/html/HTMLDivElement.h
    M Source/WebCore/html/HTMLElement.h
    M Source/WebCore/html/HTMLFormControlElement.cpp
    M Source/WebCore/html/HTMLFormControlElement.h
    M Source/WebCore/html/HTMLFrameElementBase.cpp
    M Source/WebCore/html/HTMLFrameElementBase.h
    M Source/WebCore/html/HTMLFrameOwnerElement.h
    M Source/WebCore/html/HTMLFrameSetElement.cpp
    M Source/WebCore/html/HTMLFrameSetElement.h
    M Source/WebCore/html/HTMLImageElement.cpp
    M Source/WebCore/html/HTMLImageElement.h
    M Source/WebCore/html/HTMLLIElement.cpp
    M Source/WebCore/html/HTMLLIElement.h
    M Source/WebCore/html/HTMLMediaElement.cpp
    M Source/WebCore/html/HTMLMediaElement.h
    M Source/WebCore/html/HTMLOptionElement.cpp
    M Source/WebCore/html/HTMLOptionElement.h
    M Source/WebCore/html/HTMLPlugInElement.cpp
    M Source/WebCore/html/HTMLPlugInElement.h
    M Source/WebCore/html/HTMLProgressElement.cpp
    M Source/WebCore/html/HTMLProgressElement.h
    M Source/WebCore/html/HTMLUnknownElement.h
    M Source/WebCore/html/shadow/DateTimeFieldElement.cpp
    M Source/WebCore/html/shadow/DateTimeFieldElement.h
    M Source/WebCore/html/shadow/SliderThumbElement.cpp
    M Source/WebCore/html/shadow/SliderThumbElement.h
    M Source/WebCore/html/shadow/SpinButtonElement.cpp
    M Source/WebCore/html/shadow/SpinButtonElement.h
    M Source/WebCore/html/shadow/SwitchThumbElement.cpp
    M Source/WebCore/html/shadow/SwitchThumbElement.h
    M Source/WebCore/html/shadow/SwitchTrackElement.cpp
    M Source/WebCore/html/shadow/SwitchTrackElement.h
    M Source/WebCore/html/shadow/TextControlInnerElements.cpp
    M Source/WebCore/html/shadow/TextControlInnerElements.h
    M Source/WebCore/html/track/TextTrackCue.cpp
    M Source/WebCore/html/track/TextTrackCue.h
    M Source/WebCore/html/track/WebVTTElement.cpp
    M Source/WebCore/mathml/MathMLElement.cpp
    M Source/WebCore/mathml/MathMLElement.h
    M Source/WebCore/mathml/MathMLMathElement.cpp
    M Source/WebCore/mathml/MathMLMathElement.h
    M Source/WebCore/mathml/MathMLPresentationElement.h
    M Source/WebCore/mathml/MathMLRowElement.h
    M Source/WebCore/mathml/MathMLTokenElement.cpp
    M Source/WebCore/mathml/MathMLTokenElement.h
    M Source/WebCore/mathml/MathMLUnknownElement.h
    M Source/WebCore/svg/SVGElement.cpp
    M Source/WebCore/svg/SVGElement.h
    M Source/WebCore/svg/SVGUnknownElement.h

  Log Message:
  -----------
  Make Node's OptionSet<TypeFlag> more robust
https://bugs.webkit.org/show_bug.cgi?id=266836

Reviewed by Wenson Hsieh.

Prior to this PR, each most derived class which specifies OptionSet<TypeFlag> 
was responsible for
specifying the union of all super classes' TypeFlag. This is rather fragile 
since each derived class
which specifies OptionSet<TypeFlag> needs to be updated when any new value of 
TypeFlag gets introduced
or an existing TypeFlag gets removed.

This PR changes it so that each Node's subclass adds TypeFlag which is 
responsible for representing
the subclass. In other words, each class specifies the difference between the 
class and its superclass.
The PR removes all Create* declarations and adds more debug assertions in 
various constructors.

* Source/WebCore/Modules/model-element/HTMLModelElement.cpp:
(WebCore::HTMLModelElement::HTMLModelElement):
* Source/WebCore/Modules/model-element/HTMLModelElement.h:
* Source/WebCore/dom/Attr.cpp:
(WebCore::Attr::Attr):
* Source/WebCore/dom/CDATASection.cpp:
(WebCore::CDATASection::CDATASection):
* Source/WebCore/dom/CharacterData.h:
(WebCore::CharacterData::CharacterData):
* Source/WebCore/dom/ContainerNode.h:
(WebCore::ContainerNode::ContainerNode):
* Source/WebCore/dom/DocumentFragment.cpp:
(WebCore::DocumentFragment::DocumentFragment):
(WebCore::DocumentFragment::createForInnerOuterHTML):
* Source/WebCore/dom/DocumentFragment.h:
(WebCore::DocumentFragment::DocumentFragment):
* Source/WebCore/dom/DocumentType.cpp:
(WebCore::DocumentType::DocumentType):
* Source/WebCore/dom/Element.cpp:
(WebCore::Element::create):
(WebCore::Element::Element):
* Source/WebCore/dom/Node.h:
* Source/WebCore/dom/PseudoElement.cpp:
(WebCore::PseudoElement::PseudoElement):
* Source/WebCore/dom/ShadowRoot.cpp:
(WebCore::ShadowRoot::ShadowRoot):
* Source/WebCore/dom/Text.cpp:
(WebCore::Text::create):
(WebCore::Text::createEditingText):
* Source/WebCore/dom/Text.h:
(WebCore::Text::Text):
* Source/WebCore/html/HTMLDivElement.cpp:
(WebCore::HTMLDivElement::HTMLDivElement):
* Source/WebCore/html/HTMLDivElement.h:
(WebCore::HTMLDivElement::HTMLDivElement):
* Source/WebCore/html/HTMLElement.h:
(WebCore::HTMLElement::HTMLElement):
* Source/WebCore/html/HTMLFormControlElement.cpp:
(WebCore::HTMLFormControlElement::HTMLFormControlElement):
* Source/WebCore/html/HTMLFormControlElement.h:
* Source/WebCore/html/HTMLFrameElementBase.cpp:
(WebCore::HTMLFrameElementBase::HTMLFrameElementBase):
* Source/WebCore/html/HTMLFrameElementBase.h:
* Source/WebCore/html/HTMLFrameOwnerElement.h:
(WebCore::HTMLFrameOwnerElement::HTMLFrameOwnerElement):
* Source/WebCore/html/HTMLFrameSetElement.cpp:
(WebCore::HTMLFrameSetElement::HTMLFrameSetElement):
* Source/WebCore/html/HTMLFrameSetElement.h:
* Source/WebCore/html/HTMLImageElement.cpp:
(WebCore::HTMLImageElement::HTMLImageElement):
* Source/WebCore/html/HTMLImageElement.h:
* Source/WebCore/html/HTMLLIElement.cpp:
(WebCore::HTMLLIElement::HTMLLIElement):
* Source/WebCore/html/HTMLLIElement.h:
* Source/WebCore/html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::HTMLMediaElement):
* Source/WebCore/html/HTMLMediaElement.h:
* Source/WebCore/html/HTMLOptionElement.cpp:
(WebCore::HTMLOptionElement::HTMLOptionElement):
* Source/WebCore/html/HTMLOptionElement.h:
* Source/WebCore/html/HTMLPlugInElement.cpp:
(WebCore::HTMLPlugInElement::HTMLPlugInElement):
* Source/WebCore/html/HTMLPlugInElement.h:
* Source/WebCore/html/HTMLProgressElement.cpp:
(WebCore::HTMLProgressElement::HTMLProgressElement):
* Source/WebCore/html/HTMLProgressElement.h:
* Source/WebCore/html/HTMLUnknownElement.h:
* Source/WebCore/html/shadow/DateTimeFieldElement.cpp:
(WebCore::DateTimeFieldElement::DateTimeFieldElement):
* Source/WebCore/html/shadow/DateTimeFieldElement.h:
* Source/WebCore/html/shadow/SliderThumbElement.cpp:
(WebCore::SliderThumbElement::SliderThumbElement):
(WebCore::SliderContainerElement::SliderContainerElement):
* Source/WebCore/html/shadow/SliderThumbElement.h:
* Source/WebCore/html/shadow/SpinButtonElement.cpp:
(WebCore::SpinButtonElement::SpinButtonElement):
* Source/WebCore/html/shadow/SpinButtonElement.h:
* Source/WebCore/html/shadow/SwitchThumbElement.cpp:
(WebCore::SwitchThumbElement::SwitchThumbElement):
* Source/WebCore/html/shadow/SwitchThumbElement.h:
* Source/WebCore/html/shadow/SwitchTrackElement.cpp:
(WebCore::SwitchTrackElement::SwitchTrackElement):
* Source/WebCore/html/shadow/SwitchTrackElement.h:
* Source/WebCore/html/shadow/TextControlInnerElements.cpp:
(WebCore::TextControlInnerContainer::TextControlInnerContainer):
(WebCore::TextControlInnerElement::TextControlInnerElement):
(WebCore::TextControlInnerTextElement::TextControlInnerTextElement):
(WebCore::TextControlPlaceholderElement::TextControlPlaceholderElement):
(WebCore::SearchFieldResultsButtonElement::SearchFieldResultsButtonElement):
(WebCore::SearchFieldCancelButtonElement::SearchFieldCancelButtonElement):
* Source/WebCore/html/shadow/TextControlInnerElements.h:
* Source/WebCore/html/track/TextTrackCue.cpp:
(WebCore::TextTrackCueBox::TextTrackCueBox):
* Source/WebCore/html/track/TextTrackCue.h:
* Source/WebCore/html/track/WebVTTElement.cpp:
(WebCore::WebVTTElement::WebVTTElement):
* Source/WebCore/mathml/MathMLElement.cpp:
(WebCore::MathMLElement::MathMLElement):
* Source/WebCore/mathml/MathMLElement.h:
(WebCore::MathMLElement::MathMLElement):
* Source/WebCore/mathml/MathMLMathElement.cpp:
(WebCore::MathMLMathElement::MathMLMathElement):
* Source/WebCore/mathml/MathMLMathElement.h:
* Source/WebCore/mathml/MathMLPresentationElement.h:
(WebCore::MathMLPresentationElement::MathMLPresentationElement):
* Source/WebCore/mathml/MathMLRowElement.h:
(WebCore::MathMLRowElement::MathMLRowElement):
* Source/WebCore/mathml/MathMLTokenElement.cpp:
(WebCore::MathMLTokenElement::MathMLTokenElement):
* Source/WebCore/mathml/MathMLTokenElement.h:
* Source/WebCore/mathml/MathMLUnknownElement.h:
* Source/WebCore/svg/SVGElement.cpp:
(WebCore::SVGElement::SVGElement):
* Source/WebCore/svg/SVGElement.h:
(WebCore::SVGElement::SVGElement):
* Source/WebCore/svg/SVGUnknownElement.h:

Canonical link: https://commits.webkit.org/272587@main


_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to