Changeset 269161 in webkit
- Timestamp:
- Oct 29, 2020, 12:24:41 PM (6 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 19 edited
-
ChangeLog (modified) (1 diff)
-
dom/CharacterData.cpp (modified) (3 diffs)
-
dom/CharacterData.h (modified) (1 diff)
-
dom/ContainerNode.cpp (modified) (22 diffs)
-
dom/ContainerNode.h (modified) (2 diffs)
-
dom/Element.cpp (modified) (2 diffs)
-
dom/ShadowRoot.cpp (modified) (1 diff)
-
html/HTMLElement.cpp (modified) (2 diffs)
-
html/HTMLElement.h (modified) (1 diff)
-
html/HTMLOutputElement.cpp (modified) (1 diff)
-
svg/SVGClipPathElement.cpp (modified) (1 diff)
-
svg/SVGElement.cpp (modified) (1 diff)
-
svg/SVGFELightElement.cpp (modified) (1 diff)
-
svg/SVGFilterElement.cpp (modified) (1 diff)
-
svg/SVGFilterPrimitiveStandardAttributes.cpp (modified) (1 diff)
-
svg/SVGGradientElement.cpp (modified) (1 diff)
-
svg/SVGMarkerElement.cpp (modified) (1 diff)
-
svg/SVGMaskElement.cpp (modified) (1 diff)
-
svg/SVGPatternElement.cpp (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r269160 r269161 1 2020-10-29 Tetsuharu Ohzeki <tetsuharu.ohzeki@gmail.com> 2 3 Make WebCore::ContainerNode::ChildChangeType enum class 4 https://bugs.webkit.org/show_bug.cgi?id=218298 5 Reviewed by Darin Adler. 6 7 And this patch moved to `ChildChangeType` to under `ChildChange`. 8 This patch also move `ChildChangeSource` to under `ChildChange` and specify a base type. 9 10 * dom/CharacterData.cpp: 11 (WebCore::CharacterData::parserAppendData): 12 (WebCore::CharacterData::setDataAndUpdate): 13 (WebCore::CharacterData::notifyParentAfterChange): 14 * dom/CharacterData.h: 15 * dom/ContainerNode.cpp: 16 (WebCore::ContainerNode::removeAllChildrenWithScriptAssertion): 17 (WebCore::ContainerNode::removeNodeWithScriptAssertion): 18 (WebCore::executeNodeInsertionWithScriptAssertion): 19 (WebCore::ContainerNode::takeAllChildrenFrom): 20 (WebCore::ContainerNode::insertBefore): 21 (WebCore::ContainerNode::parserInsertBefore): 22 (WebCore::ContainerNode::replaceChild): 23 (WebCore::ContainerNode::removeChild): 24 (WebCore::ContainerNode::parserRemoveChild): 25 (WebCore::ContainerNode::replaceAllChildrenWithNewText): 26 (WebCore::ContainerNode::removeChildren): 27 (WebCore::ContainerNode::appendChildWithoutPreInsertionValidityCheck): 28 (WebCore::ContainerNode::parserAppendChild): 29 (WebCore::affectsElements): 30 (WebCore::ContainerNode::childrenChanged): 31 (WebCore::ContainerNode::replaceChildren): 32 * dom/ContainerNode.h: 33 (WebCore::ContainerNode::ChildChange::isInsertion const): 34 * dom/Element.cpp: 35 (WebCore::Element::childrenChanged): 36 * dom/ShadowRoot.cpp: 37 (WebCore::ShadowRoot::childrenChanged): 38 * html/HTMLElement.cpp: 39 (WebCore::HTMLElement::adjustDirectionalityIfNeededAfterChildrenChanged): 40 * html/HTMLElement.h: 41 * html/HTMLOutputElement.cpp: 42 (WebCore::HTMLOutputElement::childrenChanged): 43 * svg/SVGClipPathElement.cpp: 44 (WebCore::SVGClipPathElement::childrenChanged): 45 * svg/SVGElement.cpp: 46 (WebCore::SVGElement::childrenChanged): 47 * svg/SVGFELightElement.cpp: 48 (WebCore::SVGFELightElement::childrenChanged): 49 * svg/SVGFilterElement.cpp: 50 (WebCore::SVGFilterElement::childrenChanged): 51 * svg/SVGFilterPrimitiveStandardAttributes.cpp: 52 (WebCore::SVGFilterPrimitiveStandardAttributes::childrenChanged): 53 * svg/SVGGradientElement.cpp: 54 (WebCore::SVGGradientElement::childrenChanged): 55 * svg/SVGMarkerElement.cpp: 56 (WebCore::SVGMarkerElement::childrenChanged): 57 * svg/SVGMaskElement.cpp: 58 (WebCore::SVGMaskElement::childrenChanged): 59 * svg/SVGPatternElement.cpp: 60 (WebCore::SVGPatternElement::childrenChanged): 61 1 62 2020-10-29 Sihui Liu <sihui_liu@apple.com> 2 63 -
trunk/Source/WebCore/dom/CharacterData.cpp
r267220 r269161 106 106 downcast<Text>(*this).updateRendererAfterContentChange(oldLength, 0); 107 107 108 notifyParentAfterChange(ContainerNode::ChildChange Source::Parser);108 notifyParentAfterChange(ContainerNode::ChildChange::Source::Parser); 109 109 110 110 auto mutationRecipients = MutationObserverInterestGroup::createForCharacterDataMutation(*this); … … 192 192 document().frame()->selection().textWasReplaced(this, offsetOfReplacedData, oldLength, newLength); 193 193 194 notifyParentAfterChange(ContainerNode::ChildChange Source::API);194 notifyParentAfterChange(ContainerNode::ChildChange::Source::API); 195 195 196 196 dispatchModifiedEvent(oldData); 197 197 } 198 198 199 void CharacterData::notifyParentAfterChange(ContainerNode::ChildChange Source source)199 void CharacterData::notifyParentAfterChange(ContainerNode::ChildChange::Source source) 200 200 { 201 201 document().incDOMTreeVersion(); … … 205 205 206 206 ContainerNode::ChildChange change = { 207 ContainerNode:: TextChanged,207 ContainerNode::ChildChange::Type::TextChanged, 208 208 ElementTraversal::previousSibling(*this), 209 209 ElementTraversal::nextSibling(*this), -
trunk/Source/WebCore/dom/CharacterData.h
r267220 r269161 66 66 String nodeValue() const final; 67 67 ExceptionOr<void> setNodeValue(const String&) final; 68 void notifyParentAfterChange(ContainerNode::ChildChange Source);68 void notifyParentAfterChange(ContainerNode::ChildChange::Source); 69 69 70 70 String m_data; -
trunk/Source/WebCore/dom/ContainerNode.cpp
r268314 r269161 79 79 #endif 80 80 81 ALWAYS_INLINE NodeVector ContainerNode::removeAllChildrenWithScriptAssertion(ChildChange Source source, DeferChildrenChanged deferChildrenChanged)81 ALWAYS_INLINE NodeVector ContainerNode::removeAllChildrenWithScriptAssertion(ChildChange::Source source, DeferChildrenChanged deferChildrenChanged) 82 82 { 83 83 auto children = collectChildNodes(*this); 84 84 85 if (source == C ontainerNode::ChildChangeSource::API) {85 if (source == ChildChange::Source::API) { 86 86 ChildListMutationScope mutation(*this); 87 87 for (auto& child : children) { … … 91 91 } 92 92 } else { 93 ASSERT(source == C ontainerNode::ChildChangeSource::Parser);93 ASSERT(source == ChildChange::Source::Parser); 94 94 ScriptDisallowedScope::InMainThread scriptDisallowedScope; 95 95 if (UNLIKELY(document().hasMutationObserversOfType(MutationObserver::ChildList))) { … … 116 116 117 117 if (deferChildrenChanged == DeferChildrenChanged::No) 118 childrenChanged(ContainerNode::ChildChange { C ontainerNode::AllChildrenRemoved, nullptr, nullptr, source });118 childrenChanged(ContainerNode::ChildChange { ChildChange::Type::AllChildrenRemoved, nullptr, nullptr, source }); 119 119 120 120 return children; 121 121 } 122 122 123 ALWAYS_INLINE bool ContainerNode::removeNodeWithScriptAssertion(Node& childToRemove, ChildChange Source source)123 ALWAYS_INLINE bool ContainerNode::removeNodeWithScriptAssertion(Node& childToRemove, ChildChange::Source source) 124 124 { 125 125 Ref<Node> protectedChildToRemove(childToRemove); … … 131 131 132 132 ASSERT_WITH_SECURITY_IMPLICATION(ScriptDisallowedScope::InMainThread::isEventDispatchAllowedInSubtree(childToRemove)); 133 if (source == C ontainerNode::ChildChangeSource::API) {133 if (source == ChildChange::Source::API) { 134 134 childToRemove.notifyMutationObserversNodeWillDetach(); 135 135 dispatchChildRemovalEvents(protectedChildToRemove); … … 138 138 } 139 139 140 if (source == C ontainerNode::ChildChangeSource::Parser) {140 if (source == ChildChange::Source::Parser) { 141 141 // FIXME: Merge these two code paths. It's a bug in the parser not to update connectedSubframeCount in time. 142 142 disconnectSubframesIfNeeded(*this, DescendantsOnly); … … 167 167 notifyChildNodeRemoved(*this, childToRemove); 168 168 169 change.type = is<Element>(childToRemove) ? ElementRemoved : (is<Text>(childToRemove) ? TextRemoved : NonContentsChildRemoved); 169 change.type = is<Element>(childToRemove) ? 170 ChildChange::Type::ElementRemoved : 171 (is<Text>(childToRemove) ? 172 ChildChange::Type::TextRemoved : 173 ChildChange::Type::NonContentsChildRemoved); 170 174 change.previousSiblingElement = (!previousSibling || is<Element>(*previousSibling)) ? downcast<Element>(previousSibling.get()) : ElementTraversal::previousSibling(*previousSibling); 171 175 change.nextSiblingElement = (!nextSibling || is<Element>(*nextSibling)) ? downcast<Element>(nextSibling.get()) : ElementTraversal::nextSibling(*nextSibling); … … 183 187 template<typename DOMInsertionWork> 184 188 static ALWAYS_INLINE void executeNodeInsertionWithScriptAssertion(ContainerNode& containerNode, Node& child, 185 ContainerNode::ChildChange Source source, ReplacedAllChildren replacedAllChildren, DOMInsertionWork doNodeInsertion)189 ContainerNode::ChildChange::Source source, ReplacedAllChildren replacedAllChildren, DOMInsertionWork doNodeInsertion) 186 190 { 187 191 NodeVector postInsertionNotificationTargets; … … 199 203 // FIXME: Move childrenChanged into ScriptDisallowedScope block. 200 204 if (replacedAllChildren == ReplacedAllChildren::Yes) 201 containerNode.childrenChanged(ContainerNode::ChildChange { ContainerNode:: AllChildrenReplaced, nullptr, nullptr, source });205 containerNode.childrenChanged(ContainerNode::ChildChange { ContainerNode::ChildChange::Type::AllChildrenReplaced, nullptr, nullptr, source }); 202 206 else { 203 207 containerNode.childrenChanged(ContainerNode::ChildChange { 204 child.isElementNode() ? ContainerNode::ElementInserted : (child.isTextNode() ? ContainerNode::TextInserted : ContainerNode::NonContentsChildInserted), 208 child.isElementNode() ? 209 ContainerNode::ChildChange::Type::ElementInserted : 210 (child.isTextNode() ? 211 ContainerNode::ChildChange::Type::TextInserted : 212 ContainerNode::ChildChange::Type::NonContentsChildInserted), 205 213 ElementTraversal::previousSibling(child), 206 214 ElementTraversal::nextSibling(child), … … 213 221 target->didFinishInsertingNode(); 214 222 215 if (source == ContainerNode::ChildChange Source::API)223 if (source == ContainerNode::ChildChange::Source::API) 216 224 dispatchChildInsertionEvents(child); 217 225 } … … 262 270 ASSERT(oldParent); 263 271 264 auto children = oldParent->removeAllChildrenWithScriptAssertion(ChildChange Source::Parser);272 auto children = oldParent->removeAllChildrenWithScriptAssertion(ChildChange::Source::Parser); 265 273 266 274 // FIXME: assert that we don't dispatch events here since this container node is still disconnected. … … 412 420 break; 413 421 414 executeNodeInsertionWithScriptAssertion(*this, child.get(), ChildChange Source::API, ReplacedAllChildren::No, [&] {422 executeNodeInsertionWithScriptAssertion(*this, child.get(), ChildChange::Source::API, ReplacedAllChildren::No, [&] { 415 423 child->setTreeScopeRecursively(treeScope()); 416 424 insertBeforeCommon(next, child); … … 471 479 return; 472 480 473 executeNodeInsertionWithScriptAssertion(*this, newChild, ChildChange Source::Parser, ReplacedAllChildren::No, [&] {481 executeNodeInsertionWithScriptAssertion(*this, newChild, ChildChange::Source::Parser, ReplacedAllChildren::No, [&] { 474 482 if (&document() != &newChild.document()) 475 483 document().adoptNode(newChild); … … 545 553 break; 546 554 547 executeNodeInsertionWithScriptAssertion(*this, child.get(), ChildChange Source::API, ReplacedAllChildren::No, [&] {555 executeNodeInsertionWithScriptAssertion(*this, child.get(), ChildChange::Source::API, ReplacedAllChildren::No, [&] { 548 556 child->setTreeScopeRecursively(treeScope()); 549 557 if (refChild) … … 575 583 return Exception { NotFoundError }; 576 584 577 if (!removeNodeWithScriptAssertion(oldChild, ChildChange Source::API))585 if (!removeNodeWithScriptAssertion(oldChild, ChildChange::Source::API)) 578 586 return Exception { NotFoundError }; 579 587 … … 620 628 void ContainerNode::parserRemoveChild(Node& oldChild) 621 629 { 622 removeNodeWithScriptAssertion(oldChild, ChildChange Source::Parser);630 removeNodeWithScriptAssertion(oldChild, ChildChange::Source::Parser); 623 631 } 624 632 … … 648 656 Ref<ContainerNode> protectedThis(*this); 649 657 ChildListMutationScope mutation(*this); 650 removeAllChildrenWithScriptAssertion(ChildChange Source::API, DeferChildrenChanged::Yes);651 652 executeNodeInsertionWithScriptAssertion(*this, node.get(), ChildChange Source::API, ReplacedAllChildren::Yes, [&] {658 removeAllChildrenWithScriptAssertion(ChildChange::Source::API, DeferChildrenChanged::Yes); 659 660 executeNodeInsertionWithScriptAssertion(*this, node.get(), ChildChange::Source::API, ReplacedAllChildren::Yes, [&] { 653 661 ASSERT(!ensurePreInsertionValidity(node, nullptr).hasException()); 654 662 InspectorInstrumentation::willInsertDOMNode(document(), *this); … … 675 683 676 684 Ref<ContainerNode> protectedThis(*this); 677 removeAllChildrenWithScriptAssertion(ChildChange Source::API);685 removeAllChildrenWithScriptAssertion(ChildChange::Source::API); 678 686 679 687 rebuildSVGExtensionsElementsIfNecessary(); … … 726 734 727 735 // Append child to the end of the list 728 executeNodeInsertionWithScriptAssertion(*this, child.get(), ChildChange Source::API, ReplacedAllChildren::No, [&] {736 executeNodeInsertionWithScriptAssertion(*this, child.get(), ChildChange::Source::API, ReplacedAllChildren::No, [&] { 729 737 child->setTreeScopeRecursively(treeScope()); 730 738 appendChildCommon(child); … … 742 750 ASSERT(!hasTagName(HTMLNames::templateTag)); 743 751 744 executeNodeInsertionWithScriptAssertion(*this, newChild, ChildChange Source::Parser, ReplacedAllChildren::No, [&] {752 executeNodeInsertionWithScriptAssertion(*this, newChild, ChildChange::Source::Parser, ReplacedAllChildren::No, [&] { 745 753 if (&document() != &newChild.document()) 746 754 document().adoptNode(newChild); … … 755 763 { 756 764 switch (change.type) { 757 case ContainerNode:: ElementInserted:758 case ContainerNode:: ElementRemoved:759 case ContainerNode:: AllChildrenRemoved:760 case ContainerNode:: AllChildrenReplaced:765 case ContainerNode::ChildChange::Type::ElementInserted: 766 case ContainerNode::ChildChange::Type::ElementRemoved: 767 case ContainerNode::ChildChange::Type::AllChildrenRemoved: 768 case ContainerNode::ChildChange::Type::AllChildrenReplaced: 761 769 return true; 762 case ContainerNode:: TextInserted:763 case ContainerNode:: TextRemoved:764 case ContainerNode:: TextChanged:765 case ContainerNode:: NonContentsChildInserted:766 case ContainerNode:: NonContentsChildRemoved:770 case ContainerNode::ChildChange::Type::TextInserted: 771 case ContainerNode::ChildChange::Type::TextRemoved: 772 case ContainerNode::ChildChange::Type::TextChanged: 773 case ContainerNode::ChildChange::Type::NonContentsChildInserted: 774 case ContainerNode::ChildChange::Type::NonContentsChildRemoved: 767 775 return false; 768 776 } … … 781 789 // FIXME: Seems like it's equally safe to skip for TextInserted and TextRemoved as for TextChanged. 782 790 // FIXME: Should use switch for change type so we remember to update when adding new types. 783 if (change.source == ChildChange Source::API && change.type !=TextChanged)791 if (change.source == ChildChange::Source::API && change.type != ChildChange::Type::TextChanged) 784 792 document().updateRangesAfterChildrenChanged(*this); 785 793 … … 973 981 auto protectedThis = makeRef(*this); 974 982 ChildListMutationScope mutation(*this); 975 removeAllChildrenWithScriptAssertion(ChildChange Source::API, DeferChildrenChanged::No);983 removeAllChildrenWithScriptAssertion(ChildChange::Source::API, DeferChildrenChanged::No); 976 984 977 985 if (node) { -
trunk/Source/WebCore/dom/ContainerNode.h
r266578 r269161 74 74 void cloneChildNodes(ContainerNode& clone); 75 75 76 enum ChildChangeType { ElementInserted, ElementRemoved, TextInserted, TextRemoved, TextChanged, AllChildrenRemoved, NonContentsChildRemoved, NonContentsChildInserted, AllChildrenReplaced };77 enum class ChildChangeSource { Parser, API };78 76 struct ChildChange { 79 ChildChangeType type; 77 enum class Type : uint8_t { ElementInserted, ElementRemoved, TextInserted, TextRemoved, TextChanged, AllChildrenRemoved, NonContentsChildRemoved, NonContentsChildInserted, AllChildrenReplaced }; 78 enum class Source : bool { Parser, API }; 79 80 ChildChange::Type type; 80 81 Element* previousSiblingElement; 81 82 Element* nextSiblingElement; 82 ChildChange Source source;83 ChildChange::Source source; 83 84 84 85 bool isInsertion() const 85 86 { 86 87 switch (type) { 87 case ElementInserted:88 case TextInserted:89 case NonContentsChildInserted:90 case AllChildrenReplaced:88 case ChildChange::Type::ElementInserted: 89 case ChildChange::Type::TextInserted: 90 case ChildChange::Type::NonContentsChildInserted: 91 case ChildChange::Type::AllChildrenReplaced: 91 92 return true; 92 case ElementRemoved:93 case TextRemoved:94 case TextChanged:95 case AllChildrenRemoved:96 case NonContentsChildRemoved:93 case ChildChange::Type::ElementRemoved: 94 case ChildChange::Type::TextRemoved: 95 case ChildChange::Type::TextChanged: 96 case ChildChange::Type::AllChildrenRemoved: 97 case ChildChange::Type::NonContentsChildRemoved: 97 98 return false; 98 99 } … … 146 147 void executePreparedChildrenRemoval(); 147 148 enum class DeferChildrenChanged { Yes, No }; 148 NodeVector removeAllChildrenWithScriptAssertion(ChildChange Source, DeferChildrenChanged = DeferChildrenChanged::No);149 bool removeNodeWithScriptAssertion(Node&, ChildChange Source);149 NodeVector removeAllChildrenWithScriptAssertion(ChildChange::Source, DeferChildrenChanged = DeferChildrenChanged::No); 150 bool removeNodeWithScriptAssertion(Node&, ChildChange::Source); 150 151 151 152 void removeBetween(Node* previousChild, Node* nextChild, Node& oldChild); -
trunk/Source/WebCore/dom/Element.cpp
r269144 r269161 2622 2622 { 2623 2623 ContainerNode::childrenChanged(change); 2624 if (change.source == ChildChange Source::Parser)2624 if (change.source == ChildChange::Source::Parser) 2625 2625 checkForEmptyStyleChange(*this); 2626 2626 else { 2627 SiblingCheckType checkType = change.type ==ElementRemoved ? SiblingElementRemoved : Other;2627 auto checkType = change.type == ChildChange::Type::ElementRemoved ? SiblingElementRemoved : Other; 2628 2628 checkForSiblingStyleChanges(*this, checkType, change.previousSiblingElement, change.nextSiblingElement); 2629 2629 } … … 2631 2631 if (ShadowRoot* shadowRoot = this->shadowRoot()) { 2632 2632 switch (change.type) { 2633 case ElementInserted:2634 case ElementRemoved:2633 case ChildChange::Type::ElementInserted: 2634 case ChildChange::Type::ElementRemoved: 2635 2635 // For elements, we notify shadowRoot in Element::insertedIntoAncestor and Element::removedFromAncestor. 2636 2636 break; 2637 case AllChildrenRemoved:2638 case AllChildrenReplaced:2637 case ChildChange::Type::AllChildrenRemoved: 2638 case ChildChange::Type::AllChildrenReplaced: 2639 2639 shadowRoot->didRemoveAllChildrenOfShadowHost(); 2640 2640 break; 2641 case TextInserted:2642 case TextRemoved:2643 case TextChanged:2641 case ChildChange::Type::TextInserted: 2642 case ChildChange::Type::TextRemoved: 2643 case ChildChange::Type::TextChanged: 2644 2644 shadowRoot->didChangeDefaultSlot(); 2645 2645 break; 2646 case NonContentsChildInserted:2647 case NonContentsChildRemoved:2646 case ChildChange::Type::NonContentsChildInserted: 2647 case ChildChange::Type::NonContentsChildRemoved: 2648 2648 break; 2649 2649 } -
trunk/Source/WebCore/dom/ShadowRoot.cpp
r267172 r269161 129 129 // FIXME: Avoid always invalidating style just for first-child, etc... as done in Element::childrenChanged. 130 130 switch (childChange.type) { 131 case ElementInserted:132 case ElementRemoved:131 case ChildChange::Type::ElementInserted: 132 case ChildChange::Type::ElementRemoved: 133 133 m_host->invalidateStyleForSubtreeInternal(); 134 134 break; 135 case TextInserted:136 case TextRemoved:137 case TextChanged:138 case AllChildrenRemoved:139 case NonContentsChildRemoved:140 case NonContentsChildInserted:141 case AllChildrenReplaced:135 case ChildChange::Type::TextInserted: 136 case ChildChange::Type::TextRemoved: 137 case ChildChange::Type::TextChanged: 138 case ChildChange::Type::AllChildrenRemoved: 139 case ChildChange::Type::NonContentsChildRemoved: 140 case ChildChange::Type::NonContentsChildInserted: 141 case ChildChange::Type::AllChildrenReplaced: 142 142 break; 143 143 } -
trunk/Source/WebCore/html/HTMLElement.cpp
r267939 r269161 947 947 } 948 948 949 void HTMLElement::adjustDirectionalityIfNeededAfterChildrenChanged(Element* beforeChange, ChildChange Type changeType)949 void HTMLElement::adjustDirectionalityIfNeededAfterChildrenChanged(Element* beforeChange, ChildChange::Type changeType) 950 950 { 951 951 // FIXME: This function looks suspicious. … … 956 956 RefPtr<Node> oldMarkedNode; 957 957 if (beforeChange) 958 oldMarkedNode = changeType == ElementInserted ? ElementTraversal::nextSibling(*beforeChange) : beforeChange->nextSibling();958 oldMarkedNode = changeType == ChildChange::Type::ElementInserted ? ElementTraversal::nextSibling(*beforeChange) : beforeChange->nextSibling(); 959 959 960 960 while (oldMarkedNode && elementAffectsDirectionality(*oldMarkedNode)) -
trunk/Source/WebCore/html/HTMLElement.h
r262235 r269161 152 152 void dirAttributeChanged(const AtomString&); 153 153 void adjustDirectionalityIfNeededAfterChildAttributeChanged(Element* child); 154 void adjustDirectionalityIfNeededAfterChildrenChanged(Element* beforeChange, ChildChange Type);154 void adjustDirectionalityIfNeededAfterChildrenChanged(Element* beforeChange, ChildChange::Type); 155 155 TextDirection directionality(Node** strongDirectionalityTextNode= 0) const; 156 156 -
trunk/Source/WebCore/html/HTMLOutputElement.cpp
r261013 r269161 80 80 HTMLFormControlElement::childrenChanged(change); 81 81 82 if (change.source == ChildChange Source::Parser || m_isSetTextContentInProgress) {82 if (change.source == ChildChange::Source::Parser || m_isSetTextContentInProgress) { 83 83 m_isSetTextContentInProgress = false; 84 84 return; -
trunk/Source/WebCore/svg/SVGClipPathElement.cpp
r259241 r269161 80 80 SVGGraphicsElement::childrenChanged(change); 81 81 82 if (change.source == ChildChange Source::Parser)82 if (change.source == ChildChange::Source::Parser) 83 83 return; 84 84 -
trunk/Source/WebCore/svg/SVGElement.cpp
r267783 r269161 875 875 StyledElement::childrenChanged(change); 876 876 877 if (change.source == ChildChange Source::Parser)877 if (change.source == ChildChange::Source::Parser) 878 878 return; 879 879 invalidateInstances(); -
trunk/Source/WebCore/svg/SVGFELightElement.cpp
r246490 r269161 152 152 SVGElement::childrenChanged(change); 153 153 154 if (change.source == ChildChange Source::Parser)154 if (change.source == ChildChange::Source::Parser) 155 155 return; 156 156 auto parent = makeRefPtr(parentNode()); -
trunk/Source/WebCore/svg/SVGFilterElement.cpp
r251318 r269161 111 111 SVGElement::childrenChanged(change); 112 112 113 if (change.source == ChildChange Source::Parser)113 if (change.source == ChildChange::Source::Parser) 114 114 return; 115 115 -
trunk/Source/WebCore/svg/SVGFilterPrimitiveStandardAttributes.cpp
r251499 r269161 89 89 SVGElement::childrenChanged(change); 90 90 91 if (change.source == ChildChange Source::Parser)91 if (change.source == ChildChange::Source::Parser) 92 92 return; 93 93 invalidate(); -
trunk/Source/WebCore/svg/SVGGradientElement.cpp
r264290 r269161 92 92 SVGElement::childrenChanged(change); 93 93 94 if (change.source == ChildChange Source::Parser)94 if (change.source == ChildChange::Source::Parser) 95 95 return; 96 96 -
trunk/Source/WebCore/svg/SVGMarkerElement.cpp
r252444 r269161 117 117 SVGElement::childrenChanged(change); 118 118 119 if (change.source == ChildChange Source::Parser)119 if (change.source == ChildChange::Source::Parser) 120 120 return; 121 121 -
trunk/Source/WebCore/svg/SVGMaskElement.cpp
r251318 r269161 117 117 SVGElement::childrenChanged(change); 118 118 119 if (change.source == ChildChange Source::Parser)119 if (change.source == ChildChange::Source::Parser) 120 120 return; 121 121 -
trunk/Source/WebCore/svg/SVGPatternElement.cpp
r251318 r269161 130 130 SVGElement::childrenChanged(change); 131 131 132 if (change.source == ChildChange Source::Parser)132 if (change.source == ChildChange::Source::Parser) 133 133 return; 134 134
Note:
See TracChangeset
for help on using the changeset viewer.