<?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>308027</bug_id>
          
          <creation_ts>2026-02-16 19:53:18 -0800</creation_ts>
          <short_desc>Dynamic slot insertion resets scroll</short_desc>
          <delta_ts>2026-04-03 18:04:31 -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>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jacob Thornton">jacob</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>karlcow</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>2182270</commentid>
    <comment_count>0</comment_count>
      <attachid>478382</attachid>
    <who name="Jacob Thornton">jacob</who>
    <bug_when>2026-02-16 19:53:18 -0800</bug_when>
    <thetext>Created attachment 478382
Simple reproduction test case

In WebKit, inserting a &lt;slot&gt; dynamically inside a shadow DOM component that&apos;s also using position sticky can reset the main page scroll position when the component uses container-type: inline-size.

This is reproducible in MiniBrowser (Release) and Safari/WebKit, and does not reproduce in Chromium/Firefox.

Steps to Reproduce
  1. Open the attached repro.
  2. Scroll the page down (for example, ~900px) to the example shadow dom container.
  3. Hover the target element in the shadow root.
  4. On hover, JS appends a new &lt;slot&gt; into a shadow subtree.
  5. if you are horizontally scrolled, as you moved your mouse when the slot is inserted, it will jump the scroll position back to the start of the container.
  5. Observe page scroll position.

  Actual Results
  The scroll position is changing when slot is injected.

  Expected Results
  The scroll position should not be affected by slot injection.

  Build / Hardware
  - WebKit local build (Release), reproduced on macOS (Apple Silicon).
  - Reproduced in MiniBrowser built from current branch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2182289</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2026-02-16 21:28:37 -0800</bug_when>
    <thetext>&lt;rdar://problem/170525902&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2196746</commentid>
    <comment_count>2</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2026-04-03 17:46:06 -0700</bug_when>
    <thetext>I see the scroll reset on the scroll container, but I don&apos;t see the page scrolling.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2196750</commentid>
    <comment_count>3</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2026-04-03 18:04:23 -0700</bug_when>
    <thetext>This happens when we do an interleaved layout, and layout the tree with most of the `EXAMPLE-CONTAINER` content missing; there&apos;s no overflow, so we scroll the overflow scroller to 0,0. Overflow is added back when we do the full layout later.

The fix probably involves having interleaved layouts never call `RenderBlock::updateScrollInfoAfterLayout()`.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>478382</attachid>
            <date>2026-02-16 19:53:18 -0800</date>
            <delta_ts>2026-02-16 19:53:18 -0800</delta_ts>
            <desc>Simple reproduction test case</desc>
            <filename>repro-2.html</filename>
            <type>text/html</type>
            <size>3618</size>
            <attacher name="Jacob Thornton">jacob</attacher>
            
              <data encoding="base64">PCFkb2N0eXBlIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CjxtZXRhIGNoYXJzZXQ9InV0
Zi04Ij4KPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwg
aW5pdGlhbC1zY2FsZT0xIj4KPHRpdGxlPnJlcHJvLTI8L3RpdGxlPgo8c3R5bGU+CiAgICBib2R5
IHsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0s
IEJsaW5rTWFjU3lzdGVtRm9udCwgIlNlZ29lIFVJIiwgc2Fucy1zZXJpZjsKICAgIH0KCiAgICAu
c3BhY2VyIHsKICAgICAgICBoZWlnaHQ6IDEyMDBweDsKICAgIH0KCiAgICAjbW91bnQgewogICAg
ICAgIHdpZHRoOiBtaW4oOTJ2dywgNjQwcHgpOwogICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAg
fQo8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5Pgo8ZGl2IGNsYXNzPSJzcGFjZXIiPjwvZGl2Pgo8ZGl2
IGlkPSJtb3VudCI+PC9kaXY+CjxkaXYgY2xhc3M9InNwYWNlciI+PC9kaXY+Cgo8c2NyaXB0Pgpj
bGFzcyBFeGFtcGxlQ29udGFpbmVyIGV4dGVuZHMgSFRNTEVsZW1lbnQgewogICAgY29ubmVjdGVk
Q2FsbGJhY2soKSB7CiAgICAgICAgaWYgKHRoaXMuc2hhZG93Um9vdCkKICAgICAgICAgICAgcmV0
dXJuOwoKICAgICAgICBjb25zdCBzaGFkb3cgPSB0aGlzLmF0dGFjaFNoYWRvdyh7IG1vZGU6ICdv
cGVuJyB9KTsKCiAgICAgICAgY29uc3Qgc3R5bGVTaGVldCA9IG5ldyBDU1NTdHlsZVNoZWV0KCk7
CiAgICAgICAgc3R5bGVTaGVldC5yZXBsYWNlU3luYyhgCiAgICAgICAgICAgICNyb290IHsKICAg
ICAgICAgICAgICAgIGNvbnRhaW5lci10eXBlOiBpbmxpbmUtc2l6ZTsKICAgICAgICAgICAgICAg
IG92ZXJmbG93OiBzY3JvbGwgY2xpcDsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLndyYXBw
ZXIgewogICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgIzFmMWYxZjsKICAgICAgICAg
ICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICAgICAgICAgIHBhZGRpbmc6IDhweDsK
ICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmZmY7CiAgICAgICAgICAgIH0KCiAgICAgICAg
ICAgIC5ob3Zlci1tZSB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAg
ICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZDZkNmQ2OwogICAgICAgICAgICAgICAgYm9y
ZGVyLXJhZGl1czogNHB4OwogICAgICAgICAgICAgICAgcGFkZGluZzogMTBweCAxMnB4IDEwcHgg
MjhweDsKICAgICAgICAgICAgICAgIG1hcmdpbjogNnB4IDA7CiAgICAgICAgICAgICAgICBiYWNr
Z3JvdW5kOiAjZjdmN2Y3OwogICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAg
ICAgICAgICAgfQoKICAgICAgICAgICAgLmhvdmVyLW1lOjpiZWZvcmUgewogICAgICAgICAgICAg
ICAgY29udGVudDogJ+KAoic7CiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5OwogICAg
ICAgICAgICAgICAgbGVmdDogMDsKICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9j
azsKICAgICAgICAgICAgICAgIHdpZHRoOiAxNnB4OwogICAgICAgICAgICAgICAgbWFyZ2luLWxl
ZnQ6IC0xOHB4OwogICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAg
ICAgICAgYmFja2dyb3VuZDogcmVkOwogICAgICAgICAgICAgICAgY29sb3I6IHdoaXRlOwogICAg
ICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgICAgICAgfQogICAgICAgIGApOwog
ICAgICAgIHNoYWRvdy5hZG9wdGVkU3R5bGVTaGVldHMgPSBbc3R5bGVTaGVldF07CgogICAgICAg
IGNvbnN0IG91dGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICAgICAgb3V0
ZXIuY2xhc3NOYW1lID0gJ3dyYXBwZXInOwoKICAgICAgICBjb25zdCByb290ID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICAgICAgcm9vdC5pZCA9ICdyb290JzsKCiAgICAgICAg
Zm9yIChsZXQgaSA9IDA7IGkgPCA3OyArK2kpIHsKICAgICAgICAgICAgY29uc3QgbGluZSA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgICAgICAgICBsaW5lLmNsYXNzTmFtZSA9
ICdob3Zlci1tZSc7CiAgICAgICAgICAgIGxpbmUudGV4dENvbnRlbnQgPSBBcnJheSgxMCkuZmls
bCgnVGVzdCBsaW5lJykuam9pbignICcpOwogICAgICAgICAgICByb290LmFwcGVuZENoaWxkKGxp
bmUpOwogICAgICAgIH0KCiAgICAgICAgb3V0ZXIuYXBwZW5kQ2hpbGQocm9vdCk7CiAgICAgICAg
c2hhZG93LmFwcGVuZENoaWxkKG91dGVyKTsKCiAgICAgICAgY29uc3Qgc2xvdHRlZFBsdXMgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAgICBzbG90dGVkUGx1cy5zbG90ID0g
J2hvdmVyLXNsb3QnOwogICAgICAgIHNsb3R0ZWRQbHVzLnNldEF0dHJpYnV0ZSgnc3R5bGUnLCAn
cG9zaXRpb246IGFic29sdXRlOyB0b3A6IDBweDsgYm90dG9tOiAwcHg7IHRleHQtYWxpZ246IGNl
bnRlcjsgd2hpdGUtc3BhY2U6IG5vcm1hbDsnKTsKCiAgICAgICAgY29uc3QgcGx1cyA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgICAgIHBsdXMuc2V0QXR0cmlidXRlKCdzdHls
ZScsICd3aWR0aDogMjBweDsgaGVpZ2h0OiAyMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOyBi
b3JkZXItcmFkaXVzOiAycHg7IG1hcmdpbi1yaWdodDogLTEwcHg7IHRleHQtYWxpZ246IGNlbnRl
cjsgY29sb3I6IHdoaXRlOycpOwogICAgICAgIHBsdXMudGV4dENvbnRlbnQgPSAnKyc7CiAgICAg
ICAgc2xvdHRlZFBsdXMuYXBwZW5kQ2hpbGQocGx1cyk7CgogICAgICAgIC8vIFNsb3R0ZWQgY29u
dGVudCBsaXZlcyBpbiBsaWdodCBET00gYW5kIGlzIHByb2plY3RlZCBieSBkeW5hbWljYWxseSBp
bnNlcnRlZCA8c2xvdD4uCiAgICAgICAgdGhpcy5hcHBlbmRDaGlsZChzbG90dGVkUGx1cyk7Cgog
ICAgICAgIHJvb3QucXVlcnlTZWxlY3RvckFsbCgnLmhvdmVyLW1lJykuZm9yRWFjaCgoaG92ZXJl
ZEVsZW1lbnQpID0+IHsKICAgICAgICAgICAgaG92ZXJlZEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5l
cignbW91c2VlbnRlcicsICgpID0+IHsKICAgICAgICAgICAgICAgIHJvb3QucXVlcnlTZWxlY3Rv
ckFsbCgnc2xvdFtuYW1lPSJob3Zlci1zbG90Il0nKS5mb3JFYWNoKChzbG90KSA9PiBzbG90LnJl
bW92ZSgpKTsKCiAgICAgICAgICAgICAgICBjb25zdCBzbG90RWxlbWVudCA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ3Nsb3QnKTsKICAgICAgICAgICAgICAgIHNsb3RFbGVtZW50Lm5hbWUgPSAn
aG92ZXItc2xvdCc7CiAgICAgICAgICAgICAgICBob3ZlcmVkRWxlbWVudC5hcHBlbmRDaGlsZChz
bG90RWxlbWVudCk7CiAgICAgICAgICAgIH0pOwogICAgICAgIH0pOwogICAgfQp9CgpjdXN0b21F
bGVtZW50cy5kZWZpbmUoJ2V4YW1wbGUtY29udGFpbmVyJywgRXhhbXBsZUNvbnRhaW5lcik7Cgpk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbW91bnQnKS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdleGFtcGxlLWNvbnRhaW5lcicpKTsKd2luZG93LnNjcm9sbFRvKDAsIDkwMCk7
Cjwvc2NyaXB0Pgo8L2JvZHk+CjwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>