Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: b033b4db86adffed8d81cd195731dd59efa9a1d7
https://github.com/WebKit/WebKit/commit/b033b4db86adffed8d81cd195731dd59efa9a1d7
Author: Ryosuke Niwa <[email protected]>
Date: 2024-02-26 (Mon, 26 Feb 2024)
Changed paths:
M Source/WebCore/dom/ContainerNode.cpp
M Source/WebCore/html/HTMLDetailsElement.cpp
M Source/WebCore/html/HTMLDetailsElement.h
Log Message:
-----------
HTMLDetailsElement::insertedIntoAncestor shouldn't mutate DOM tree
https://bugs.webkit.org/show_bug.cgi?id=270075
Reviewed by Chris Dumez.
This PR moves the code to close other details elements, which mutates DOM
state, from
HTMLDetailsElement::insertedIntoAncestor to
HTMLDetailsElement::didFinishInsertingNode.
It also reinstates the unconditional debug assertion that the tree is allowed
to mutate
in ContainerNode::removeNodeWithScriptAssertion. There is no point in making
this a
release assert as
ScriptDisallowedScope::InMainThread::isEventDispatchAllowedInSubtree
trivially returns true in release builds.
In addition, this PR moves the check of Document::shouldNotFireMutationEvents
from
ContainerNode::removeNodeWithScriptAssertion to dispatchChildRemovalEvents so
that
both removeAllChildrenWithScriptAssertion and removeNodeWithScriptAssertion will
respect this boolean state of document.
* Source/WebCore/dom/ContainerNode.cpp:
(WebCore::ContainerNode::removeAllChildrenWithScriptAssertion):
(WebCore::ContainerNode::removeNodeWithScriptAssertion):
(WebCore::dispatchChildRemovalEvents):
* Source/WebCore/html/HTMLDetailsElement.cpp:
(WebCore::HTMLDetailsElement::attributeChanged):
(WebCore::HTMLDetailsElement::insertedIntoAncestor):
(WebCore::HTMLDetailsElement::didFinishInsertingNode):
* Source/WebCore/html/HTMLDetailsElement.h:
Canonical link: https://commits.webkit.org/275332@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes