Title: [282498] releases/WebKitGTK/webkit-2.32/Source/WebCore
- Revision
- 282498
- Author
- [email protected]
- Date
- 2021-09-16 01:00:19 -0700 (Thu, 16 Sep 2021)
Log Message
Merge r275756 - Teardown shadow root renderers on SlotAssignment::didChangeSlot
https://bugs.webkit.org/show_bug.cgi?id=221386
Patch by Carlos Garcia Campos <[email protected]> on 2021-04-09
Reviewed by Ryosuke Niwa.
This reverts r272900 to move the call to RenderTreeUpdater::tearDownRenderers() from hostChildElementDidChange()
to didChangeSlot(). This ensures the renderers are also cleared for other shadow root trees not using details
element.
* dom/SlotAssignment.cpp:
(WebCore::SlotAssignment::addSlotElementByName):
(WebCore::SlotAssignment::didChangeSlot):
* dom/SlotAssignment.h:
(WebCore::ShadowRoot::hostChildElementDidChange):
Modified Paths
Diff
Modified: releases/WebKitGTK/webkit-2.32/Source/WebCore/ChangeLog (282497 => 282498)
--- releases/WebKitGTK/webkit-2.32/Source/WebCore/ChangeLog 2021-09-16 08:00:13 UTC (rev 282497)
+++ releases/WebKitGTK/webkit-2.32/Source/WebCore/ChangeLog 2021-09-16 08:00:19 UTC (rev 282498)
@@ -1,3 +1,20 @@
+2021-04-09 Carlos Garcia Campos <[email protected]>
+
+ Teardown shadow root renderers on SlotAssignment::didChangeSlot
+ https://bugs.webkit.org/show_bug.cgi?id=221386
+
+ Reviewed by Ryosuke Niwa.
+
+ This reverts r272900 to move the call to RenderTreeUpdater::tearDownRenderers() from hostChildElementDidChange()
+ to didChangeSlot(). This ensures the renderers are also cleared for other shadow root trees not using details
+ element.
+
+ * dom/SlotAssignment.cpp:
+ (WebCore::SlotAssignment::addSlotElementByName):
+ (WebCore::SlotAssignment::didChangeSlot):
+ * dom/SlotAssignment.h:
+ (WebCore::ShadowRoot::hostChildElementDidChange):
+
2021-03-24 Sergio Villar Senin <[email protected]>
[css-grid] Initialize auto-repeat data in RenderStyle in applyInitialGridTemplate{Columns|Rows}
Modified: releases/WebKitGTK/webkit-2.32/Source/WebCore/dom/SlotAssignment.cpp (282497 => 282498)
--- releases/WebKitGTK/webkit-2.32/Source/WebCore/dom/SlotAssignment.cpp 2021-09-16 08:00:13 UTC (rev 282497)
+++ releases/WebKitGTK/webkit-2.32/Source/WebCore/dom/SlotAssignment.cpp 2021-09-16 08:00:19 UTC (rev 282498)
@@ -120,6 +120,10 @@
return makeUnique<Slot>();
});
auto& slot = *addResult.iterator->value;
+
+ if (!m_slotAssignmentsIsValid)
+ assignSlots(shadowRoot);
+
bool needsSlotchangeEvent = shadowRoot.shouldFireSlotchangeEvent() && hasAssignedNodes(shadowRoot, slot);
slot.elementCount++;
@@ -292,7 +296,9 @@
auto* slot = m_slots.get(slotName);
if (!slot)
return;
-
+
+ RenderTreeUpdater::tearDownRenderers(*shadowRoot.host());
+
slot->assignedNodes.clear();
m_slotAssignmentsIsValid = false;
Modified: releases/WebKitGTK/webkit-2.32/Source/WebCore/dom/SlotAssignment.h (282497 => 282498)
--- releases/WebKitGTK/webkit-2.32/Source/WebCore/dom/SlotAssignment.h 2021-09-16 08:00:13 UTC (rev 282497)
+++ releases/WebKitGTK/webkit-2.32/Source/WebCore/dom/SlotAssignment.h 2021-09-16 08:00:19 UTC (rev 282498)
@@ -131,11 +131,8 @@
inline void ShadowRoot::hostChildElementDidChange(const Element& childElement)
{
- if (!m_slotAssignment)
- return;
- if (m_host)
- RenderTreeUpdater::tearDownRenderers(*m_host);
- m_slotAssignment->hostChildElementDidChange(childElement, *this);
+ if (m_slotAssignment)
+ m_slotAssignment->hostChildElementDidChange(childElement, *this);
}
inline void ShadowRoot::hostChildElementDidChangeSlotAttribute(Element& element, const AtomString& oldValue, const AtomString& newValue)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes