<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>227652</bug_id>
          
          <creation_ts>2021-07-02 17:43:21 -0700</creation_ts>
          <short_desc>Shadow host stops rendering after removing a slot, updating style, then its assigned node</short_desc>
          <delta_ts>2021-07-08 07:48:17 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>Safari 14</version>
          <rep_platform>All</rep_platform>
          <op_sys>macOS 11</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>https://jsfiddle.net/ditman/rmwqjLah/</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>148695</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="David Iglesias">ditman</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>ditman</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>kangil.han</cc>
    
    <cc>koivisto</cc>
    
    <cc>rniwa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>svillar</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1774630</commentid>
    <comment_count>0</comment_count>
    <who name="David Iglesias">ditman</who>
    <bug_when>2021-07-02 17:43:21 -0700</bug_when>
    <thetext>Given this DOM:

  div#container
    :shadowRoot
    |  div#bg
    |    slot[name=something]
    `
    div#slotted[slot=something]

If the slot element is removed from the shadow root, and then (in a separate timeout) div#slotted is removed from the light DOM, the div#container will lose its layout and become invisible on the page.

Minimal repro case:

* https://jsfiddle.net/ditman/rmwqjLah/

The following things happen in the link above:

1. The output becomes yellow (background of #container)
2. The output becomes green, and has some text (the slot inside of a div#bg container has been appended into the Shadow DOM)
3. The output becomes green, without text (the slot has been deleted from the Shadow DOM)
4. The output becomes RED (the div#slotted is removed from the Light DOM, and #container loses layout, revealing the body of the page behind it!) 

I&apos;d expect that step 4 stays the same as step 3. I&apos;ve tested other browsers and that&apos;s what they do.

I&apos;ve seen this bug with Safari 14 and 15 (Tech preview) in MacOS 11.4 (Big Sur) and stock Safari on iOS 14.6.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1774633</commentid>
    <comment_count>1</comment_count>
    <who name="David Iglesias">ditman</who>
    <bug_when>2021-07-02 18:04:32 -0700</bug_when>
    <thetext>Original user report (Flutter Web): https://github.com/flutter/flutter/issues/84832

Issue workaround here:
https://github.com/flutter/engine/pull/27154

Cleanup ticket:
https://github.com/flutter/flutter/issues/85816</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775389</commentid>
    <comment_count>2</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-07-07 12:34:05 -0700</bug_when>
    <thetext>I can reproduce this at r279638.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775584</commentid>
    <comment_count>3</comment_count>
    <who name="David Iglesias">ditman</who>
    <bug_when>2021-07-07 19:38:34 -0700</bug_when>
    <thetext>Thanks for verifying in a more recent build!

(I couldn&apos;t get builds from the archives to run in my corporate laptop properly!)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775598</commentid>
    <comment_count>4</comment_count>
      <attachid>433113</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-07-07 20:54:24 -0700</bug_when>
    <thetext>Created attachment 433113
Reduction</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775657</commentid>
    <comment_count>5</comment_count>
      <attachid>433128</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-07-08 06:21:22 -0700</bug_when>
    <thetext>Created attachment 433128
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775663</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-07-08 07:47:42 -0700</bug_when>
    <thetext>Committed r279721 (239509@main): &lt;https://commits.webkit.org/239509@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 433128.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775664</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-07-08 07:48:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/80323422&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>433113</attachid>
            <date>2021-07-07 20:54:24 -0700</date>
            <delta_ts>2021-07-07 20:54:24 -0700</delta_ts>
            <desc>Reduction</desc>
            <filename>bug227652.html</filename>
            <type>text/html</type>
            <size>771</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxodG1sPgo8Ym9keT4KPHN0eWxlPiBkaXYgeyB3aWR0aDogMTAwcHg7
IGhlaWdodDogMTAwcHg7IH0gPC9zdHlsZT4KPGRpdiBpZD0iY29udGFpbmVyIiBzdHlsZT0iYmFj
a2dyb3VuZDogcmVkOyI+CjxkaXYgaWQ9Imhvc3QiIHN0eWxlPSJiYWNrZ3JvdW5kOiBibHVlOyI+
PGRpdiBpZD0iY2hpbGQiPlNvbWUgY29udGVudCAoRE9NKTwvZGl2PjwvZGl2Pgo8L2Rpdj4KPHNj
cmlwdD4KCmNvbnN0IHNsb3R0ZWQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjc2xvdHRlZCcp
OwoKY29uc3Qgc2hhZG93Um9vdCA9IGhvc3QuYXR0YWNoU2hhZG93KHttb2RlOiAnY2xvc2VkJ30p
OwpzaGFkb3dSb290LmlubmVySFRNTCA9ICc8ZGl2IHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdo
dDogMTAwcHg7IGJhY2tncm91bmQ6IGdyZWVuOyI+PHNsb3Q+PC9zbG90PjwvZGl2Pic7CnNoYWRv
d1Jvb3QucXVlcnlTZWxlY3Rvcignc2xvdCcpLnJlbW92ZSgpOwoKZG9jdW1lbnQuYm9keS5nZXRC
b3VuZGluZ0NsaWVudFJlY3QoKTsKCmNoaWxkLnJlbW92ZSgpOwoKZG9jdW1lbnQuYm9keS5nZXRC
b3VuZGluZ0NsaWVudFJlY3QoKTsKCigoKSA9PiB7CiAgICByZXR1cm47CiAgICBkb2N1bWVudC5i
b2R5LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CiAgICBkb2N1bWVudC5ib2R5LmdldEJvdW5kaW5n
Q2xpZW50UmVjdCgpOwogICAgZG9jdW1lbnQuYm9keS5zdHlsZS5kaXNwbGF5ID0gbnVsbDsKfSko
KTsKCjwvc2NyaXB0Pgo8L2JvZHk+CjwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433128</attachid>
            <date>2021-07-08 06:21:22 -0700</date>
            <delta_ts>2021-07-08 07:47:43 -0700</delta_ts>
            <desc>patch</desc>
            <filename>remove-slot-and-host-child.patch</filename>
            <type>text/plain</type>
            <size>3670</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyNGRjODU4ZjRhNzYuLjU1OTViNGJlYzFmZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBA
CisyMDIxLTA3LTA4ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAg
ICBTaGFkb3cgaG9zdCBzdG9wcyByZW5kZXJpbmcgYWZ0ZXIgcmVtb3ZpbmcgYSBzbG90LCB1cGRh
dGluZyBzdHlsZSwgdGhlbiBpdHMgYXNzaWduZWQgbm9kZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3NjUyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L3NoYWRvdy1kb20vcmVtb3ZlLXNsb3Qt
YW5kLWhvc3QtY2hpbGQtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9zaGFk
b3ctZG9tL3JlbW92ZS1zbG90LWFuZC1ob3N0LWNoaWxkLmh0bWw6IEFkZGVkLgorCiAyMDIxLTA3
LTA2ICBFcmljIEh1dGNoaXNvbiAgPGVodXRjaGlzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFtC
aWdTdXIgRSBXazIgUmVsZWFzZV0gaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDUnRwU2VuZGVyLWVuY29kZS1zYW1lLXRyYWNrLXR3aWNlLmh0dHBzLmh0bWwgaW4gZmxh
a3kgZmFpbHVyZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9tL3JlbW92
ZS1zbG90LWFuZC1ob3N0LWNoaWxkLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3No
YWRvdy1kb20vcmVtb3ZlLXNsb3QtYW5kLWhvc3QtY2hpbGQtZXhwZWN0ZWQuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjUxMzE0ZGVjMmFmNgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2hhZG93LWRvbS9yZW1vdmUtc2xvdC1hbmQtaG9z
dC1jaGlsZC1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEgQEAKKzxkaXYgc3R5bGU9IndpZHRoOiAx
MDBweDsgaGVpZ2h0OiAxMDBweDsgYmFja2dyb3VuZDogZ3JlZW47Ij4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3Qvc2hhZG93LWRvbS9yZW1vdmUtc2xvdC1hbmQtaG9zdC1jaGlsZC5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9tL3JlbW92ZS1zbG90LWFuZC1ob3N0LWNoaWxk
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi43YmRjMTQ3Zjdl
Y2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3NoYWRvdy1kb20vcmVtb3Zl
LXNsb3QtYW5kLWhvc3QtY2hpbGQuaHRtbApAQCAtMCwwICsxLDI0IEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGJvZHk+Cis8c3R5bGU+IGRpdiB7IHdpZHRoOiAxMDBweDsgaGVpZ2h0OiAx
MDBweDsgfSA8L3N0eWxlPgorPGRpdiBpZD0iY29udGFpbmVyIiBzdHlsZT0iYmFja2dyb3VuZDog
cmVkOyI+Cis8ZGl2IGlkPSJob3N0IiBzdHlsZT0iYmFja2dyb3VuZDogYmx1ZTsiPjxkaXYgaWQ9
ImNoaWxkIj5Tb21lIGNvbnRlbnQgKERPTSk8L2Rpdj48L2Rpdj4KKzwvZGl2PgorPHNjcmlwdD4K
KworY29uc3Qgc2xvdHRlZCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNzbG90dGVkJyk7CisK
K2NvbnN0IHNoYWRvd1Jvb3QgPSBob3N0LmF0dGFjaFNoYWRvdyh7bW9kZTogJ2Nsb3NlZCd9KTsK
K3NoYWRvd1Jvb3QuaW5uZXJIVE1MID0gJzxkaXYgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0
OiAxMDBweDsgYmFja2dyb3VuZDogZ3JlZW47Ij48c2xvdD48L3Nsb3Q+PC9kaXY+JzsKK3NoYWRv
d1Jvb3QucXVlcnlTZWxlY3Rvcignc2xvdCcpLnJlbW92ZSgpOworCitkb2N1bWVudC5ib2R5Lmdl
dEJvdW5kaW5nQ2xpZW50UmVjdCgpOworCitjaGlsZC5yZW1vdmUoKTsKKworZG9jdW1lbnQuYm9k
eS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKaW5kZXggMzU3M2M1NDdhOWU3Li42YmVkZTBmZWQyY2YgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNyBAQAorMjAyMS0wNy0wOCAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5j
b20+CisKKyAgICAgICAgU2hhZG93IGhvc3Qgc3RvcHMgcmVuZGVyaW5nIGFmdGVyIHJlbW92aW5n
IGEgc2xvdCwgdXBkYXRpbmcgc3R5bGUsIHRoZW4gaXRzIGFzc2lnbmVkIG5vZGUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzY1MgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGZhc3Qvc2hhZG93
LWRvbS9yZW1vdmUtc2xvdC1hbmQtaG9zdC1jaGlsZC5odG1sCisKKyAgICAgICAgKiBkb20vU2xv
dEFzc2lnbm1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2xvdEFzc2lnbm1lbnQ6OmRpZENo
YW5nZVNsb3QpOgorCisgICAgICAgIFdoZW4gd2UgdGVhciBkb3duIHRoZSByZW5kZXIgdHJlZSB3
ZSBhbHNvIG5lZWQgdG8gcmVxdWVzdCBpdHMgcmVidWlsZCB1bmNvbmRpdGlvbmFsbHkuCisKIDIw
MjEtMDctMDYgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJl
dmlld2VkLCByZXZlcnRpbmcgcjI3OTQ5NS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9TbG90QXNzaWdubWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2xvdEFzc2lnbm1lbnQu
Y3BwCmluZGV4IGNlYTE5YmEzMjQ4OS4uNjBlMmYwMGU2YTQ4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vU2xvdEFzc2lnbm1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9T
bG90QXNzaWdubWVudC5jcHAKQEAgLTMwOCw2ICszMDgsNyBAQCB2b2lkIFNsb3RBc3NpZ25tZW50
OjpkaWRDaGFuZ2VTbG90KGNvbnN0IEF0b21TdHJpbmcmIHNsb3RBdHRyVmFsdWUsIFNoYWRvd1Jv
b3QmCiAgICAgICAgIHJldHVybjsKIAogICAgIFJlbmRlclRyZWVVcGRhdGVyOjp0ZWFyRG93blJl
bmRlcmVycygqc2hhZG93Um9vdC5ob3N0KCkpOworICAgIHNoYWRvd1Jvb3QuaG9zdCgpLT5pbnZh
bGlkYXRlU3R5bGVBbmRSZW5kZXJlcnNGb3JTdWJ0cmVlKCk7CiAKICAgICBzbG90LT5hc3NpZ25l
ZE5vZGVzLmNsZWFyKCk7CiAgICAgbV9zbG90QXNzaWdubWVudHNJc1ZhbGlkID0gZmFsc2U7CkBA
IC0zMTYsOCArMzE3LDYgQEAgdm9pZCBTbG90QXNzaWdubWVudDo6ZGlkQ2hhbmdlU2xvdChjb25z
dCBBdG9tU3RyaW5nJiBzbG90QXR0clZhbHVlLCBTaGFkb3dSb290JgogICAgIGlmICghc2xvdEVs
ZW1lbnQpCiAgICAgICAgIHJldHVybjsKIAotICAgIHNoYWRvd1Jvb3QuaG9zdCgpLT5pbnZhbGlk
YXRlU3R5bGVBbmRSZW5kZXJlcnNGb3JTdWJ0cmVlKCk7Ci0KICAgICBpZiAoc2hhZG93Um9vdC5z
aG91bGRGaXJlU2xvdGNoYW5nZUV2ZW50KCkpCiAgICAgICAgIHNsb3RFbGVtZW50LT5lbnF1ZXVl
U2xvdENoYW5nZUV2ZW50KCk7CiB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>