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

Changeset 285732 in webkit


Ignore:
Timestamp:
Nov 12, 2021, 11:02:40 AM (5 years ago)
Author:
commit-queue@webkit.org
Message:

Null check host in SlotAssignment::assignSlots
https://bugs.webkit.org/show_bug.cgi?id=230899

Patch by Rob Buis <rbuis@igalia.com> on 2021-11-12
Reviewed by Darin Adler.

Source/WebCore:

Null check host in SlotAssignment::assignSlots.

Tests: fast/shadow-dom/shadow-root-gc-crash.html

  • dom/SlotAssignment.cpp:

(WebCore::SlotAssignment::assignSlots):

LayoutTests:

  • fast/shadow-dom/shadow-root-gc-crash-expected.txt: Added.
  • fast/shadow-dom/shadow-root-gc-crash.html: Added.
Location:
trunk
Files:
2 added
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r285728 r285732  
     12021-11-12  Rob Buis  <rbuis@igalia.com>
     2
     3        Null check host in SlotAssignment::assignSlots
     4        https://bugs.webkit.org/show_bug.cgi?id=230899
     5
     6        Reviewed by Darin Adler.
     7
     8        * fast/shadow-dom/shadow-root-gc-crash-expected.txt: Added.
     9        * fast/shadow-dom/shadow-root-gc-crash.html: Added.
     10
    1112021-11-12  Antoine Quint  <graouts@webkit.org>
    212
  • trunk/Source/WebCore/ChangeLog

    r285731 r285732  
     12021-11-12  Rob Buis  <rbuis@igalia.com>
     2
     3        Null check host in SlotAssignment::assignSlots
     4        https://bugs.webkit.org/show_bug.cgi?id=230899
     5
     6        Reviewed by Darin Adler.
     7
     8        Null check host in SlotAssignment::assignSlots.
     9
     10        Tests: fast/shadow-dom/shadow-root-gc-crash.html
     11
     12        * dom/SlotAssignment.cpp:
     13        (WebCore::SlotAssignment::assignSlots):
     14
    1152021-11-12  Chris Dumez  <cdumez@apple.com>
    216
  • trunk/Source/WebCore/dom/SlotAssignment.cpp

    r284969 r285732  
    357357        entry.value->assignedNodes.shrink(0);
    358358
    359     auto& host = *shadowRoot.host();
    360     for (auto* child = host.firstChild(); child; child = child->nextSibling()) {
    361         if (!is<Text>(*child) && !is<Element>(*child))
    362             continue;
    363         auto slotName = slotNameForHostChild(*child);
    364         assignToSlot(*child, slotName);
     359    if (auto* host = shadowRoot.host()) {
     360        for (auto* child = host->firstChild(); child; child = child->nextSibling()) {
     361            if (!is<Text>(*child) && !is<Element>(*child))
     362                continue;
     363            auto slotName = slotNameForHostChild(*child);
     364            assignToSlot(*child, slotName);
     365        }
    365366    }
    366367
Note: See TracChangeset for help on using the changeset viewer.