Title: [275756] trunk/Source/WebCore
- Revision
- 275756
- Author
- [email protected]
- Date
- 2021-04-09 03:25:22 -0700 (Fri, 09 Apr 2021)
Log Message
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: trunk/Source/WebCore/ChangeLog (275755 => 275756)
--- trunk/Source/WebCore/ChangeLog 2021-04-09 09:29:51 UTC (rev 275755)
+++ trunk/Source/WebCore/ChangeLog 2021-04-09 10:25:22 UTC (rev 275756)
@@ -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-04-09 Philippe Normand <[email protected]>
[GStreamer] fast/canvas/canvas-createPattern-video-loading.html is failing since r218170
Modified: trunk/Source/WebCore/dom/SlotAssignment.cpp (275755 => 275756)
--- trunk/Source/WebCore/dom/SlotAssignment.cpp 2021-04-09 09:29:51 UTC (rev 275755)
+++ trunk/Source/WebCore/dom/SlotAssignment.cpp 2021-04-09 10:25:22 UTC (rev 275756)
@@ -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: trunk/Source/WebCore/dom/SlotAssignment.h (275755 => 275756)
--- trunk/Source/WebCore/dom/SlotAssignment.h 2021-04-09 09:29:51 UTC (rev 275755)
+++ trunk/Source/WebCore/dom/SlotAssignment.h 2021-04-09 10:25:22 UTC (rev 275756)
@@ -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