⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 282498 in webkit


Ignore:
Timestamp:
Sep 16, 2021, 1:00:19 AM (5 years ago)
Author:
Adrian Perez de Castro
Message:

Merge r275756 - Teardown shadow root renderers on SlotAssignment::didChangeSlot
​https://bugs.webkit.org/show_bug.cgi?id=221386

Patch by Carlos Garcia Campos <​cgarcia@igalia.com> 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):

Location:
releases/WebKitGTK/webkit-2.32/Source/WebCore
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • releases/WebKitGTK/webkit-2.32/Source/WebCore/ChangeLog

    r282495 r282498  
     12021-04-09  Carlos Garcia Campos  <cgarcia@igalia.com>
     2
     3        Teardown shadow root renderers on SlotAssignment::didChangeSlot
     4        https://bugs.webkit.org/show_bug.cgi?id=221386
     5
     6        Reviewed by Ryosuke Niwa.
     7
     8        This reverts r272900 to move the call to RenderTreeUpdater::tearDownRenderers() from hostChildElementDidChange()
     9        to didChangeSlot(). This ensures the renderers are also cleared for other shadow root trees not using details
     10        element.
     11
     12        * dom/SlotAssignment.cpp:
     13        (WebCore::SlotAssignment::addSlotElementByName):
     14        (WebCore::SlotAssignment::didChangeSlot):
     15        * dom/SlotAssignment.h:
     16        (WebCore::ShadowRoot::hostChildElementDidChange):
     17
    1182021-03-24  Sergio Villar Senin  <svillar@igalia.com>
    219
  • releases/WebKitGTK/webkit-2.32/Source/WebCore/dom/SlotAssignment.cpp

    r266212 r282498  
    121121    });
    122122    auto& slot = *addResult.iterator->value;
     123
     124    if (!m_slotAssignmentsIsValid)
     125        assignSlots(shadowRoot);
     126
    123127    bool needsSlotchangeEvent = shadowRoot.shouldFireSlotchangeEvent() && hasAssignedNodes(shadowRoot, slot);
    124128
    … …  
    293297    if (!slot)
    294298        return;
    295    
     299
     300    RenderTreeUpdater::tearDownRenderers(*shadowRoot.host());
     301
    296302    slot->assignedNodes.clear();
    297303    m_slotAssignmentsIsValid = false;
  • releases/WebKitGTK/webkit-2.32/Source/WebCore/dom/SlotAssignment.h

    r272900 r282498  
    132132inline void ShadowRoot::hostChildElementDidChange(const Element& childElement)
    133133{
    134     if (!m_slotAssignment)
    135         return;
    136     if (m_host)
    137         RenderTreeUpdater::tearDownRenderers(*m_host);
    138     m_slotAssignment->hostChildElementDidChange(childElement, *this);
     134    if (m_slotAssignment)
     135        m_slotAssignment->hostChildElementDidChange(childElement, *this);
    139136}
    140137
Note: See TracChangeset for help on using the changeset viewer.