<?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>236312</bug_id>
          
          <creation_ts>2022-02-08 10:18:41 -0800</creation_ts>
          <short_desc>Rapid changes in scroll position can cause JS-exposed scroll offsets to be stale</short_desc>
          <delta_ts>2023-02-23 05:50:51 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Scrolling</component>
          <version>Safari 15</version>
          <rep_platform>iPhone / iPad</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>Major</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jack Doyle">jack</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>hi</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1838750</commentid>
    <comment_count>0</comment_count>
    <who name="Jack Doyle">jack</who>
    <bug_when>2022-02-08 10:18:41 -0800</bug_when>
    <thetext>Set the scroll position via JavaScript and then immediately check it and it seems to work correctly but under heavy load it actually REVERTS to a previous scroll position on the next requestAnimationFrame()! From what I can tell, it&apos;s definitely a bug. Here is the proof (you must run this on iOS Safari in the /debug/ window of CodePen so that it&apos;s not in an iframe): https://codepen.io/GreenSock/pen/16c435b12ef09c38125204818e7b45fc?editors=0010

Again, this only happens under heavy load. 

I understand JS runs on a separate thread from scrolling but all of this is happening in JS world so the regression of the scroll position doesn&apos;t make sense to me. 

Can anyone explain why this is happening and how we can work around it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1841547</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-02-14 19:54:25 -0800</bug_when>
    <thetext>&lt;rdar://problem/88943486&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1841952</commentid>
    <comment_count>2</comment_count>
      <attachid>452091</attachid>
    <who name="Sam Sneddon [:gsnedders]">gsnedders</who>
    <bug_when>2022-02-15 14:44:11 -0800</bug_when>
    <thetext>Created attachment 452091
Testcase

I couldn&apos;t get the codepen to load in debug mode, so here&apos;s it attached.

&lt;rdar://88342742&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1841976</commentid>
    <comment_count>3</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-02-15 15:22:00 -0800</bug_when>
    <thetext>Scrolling on iOS involves an asynchronous round-trip to a different process, and it&apos;s possible we&apos;re getting a stale scroll position back to JS because of that.

I don&apos;t know of any workarounds currently.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1936144</commentid>
    <comment_count>4</comment_count>
    <who name="Cassie Evans">hi</who>
    <bug_when>2023-02-23 05:50:51 -0800</bug_when>
    <thetext>Are there any intentions to look into this?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>452091</attachid>
            <date>2022-02-15 14:44:11 -0800</date>
            <delta_ts>2022-02-15 14:44:11 -0800</delta_ts>
            <desc>Testcase</desc>
            <filename>test.html</filename>
            <type>text/html</type>
            <size>2258</size>
            <attacher name="Sam Sneddon [:gsnedders]">gsnedders</attacher>
            
              <data encoding="base64">CjwhRE9DVFlQRSBodG1sPgo8aHRtbCBsYW5nPSJlbiIgPgoKPGhlYWQ+CgogIDxtZXRhIGNoYXJz
ZXQ9IlVURi04Ij4KICAKCiAgPHRpdGxlPkNvZGVQZW4gLSBpT1MgU2FmYXJpIFNjcm9sbGluZyBC
dWc8L3RpdGxlPgogIAogIAogIAogIAo8c3R5bGU+CmJvZHkgewogIGZvbnQtZmFtaWx5OiBzYW5z
LXNlcmlmOwp9CiogewogIGJveC1zaXppbmc6IGJvcmRlci1ib3g7Cn0KYm9keSwgaHRtbCB7CiAg
bWFyZ2luOiAwOwogIHBhZGRpbmc6IDA7CiAgc2Nyb2xsLWJlaGF2aW9yOiBhdXRvOwogIHRyYW5z
aXRpb246IG5vbmU7Cn0KCi5vdmVybGF5IHsKICBwb3NpdGlvbjogZml4ZWQ7CiAgaGVpZ2h0OiAx
MDB2aDsKICBwYWRkaW5nOiAyMHB4OwogIGNvbG9yOiByZWQ7Cn0KLmNvbnRlbnQgewogIGhlaWdo
dDogODAwdmg7CiAgbGluZS1oZWlnaHQ6IDEwMHZoOwogIGZvbnQtc2l6ZTogNTBweDsKICB0ZXh0
LWFsaWduOiBjZW50ZXI7Cn0KPC9zdHlsZT4KCgo8L2hlYWQ+Cgo8Ym9keSB0cmFuc2xhdGU9Im5v
IiA+CiAgPGRpdiBjbGFzcz0ib3ZlcmxheSI+PC9kaXY+CjxkaXYgY2xhc3M9ImNvbnRlbnQiPmlP
UyBTYWZhcmkgQnVnPC9kaXY+CiAgICAgIDxzY3JpcHQgaWQ9InJlbmRlcmVkLWpzIiA+Ci8vIFlv
dSBNVVNUIHJ1biB0aGlzIGluIC9kZWJ1Zy8gbW9kZSB0byBleHBvc2UgdGhlIGJ1ZyAod29ya3Mg
ZmluZSBpbiBpZnJhbWUpLiAKLy8gaHR0cHM6Ly9jb2RlcGVuLmlvL0dyZWVuU29jay9kZWJ1Zy8x
NmM0MzViMTJlZjA5YzM4MTI1MjA0ODE4ZTdiNDVmYz9lZGl0b3JzPTAwMTAKLy8gaU9TIG1pc3Jl
cG9ydHMgc2Nyb2xsIHBvc2l0aW9uISBTZXQgaXQsIGNoZWNrIGl0IGltbWVkaWF0ZWx5IGFuZCBp
dCdzIGNvcnJlY3QgYnV0IHRoZW4gCi8vIG9uIHRoZSBuZXh0IHJlcXVlc3RBbmltYXRpb25GcmFt
ZSAob3Igc29tZXRpbWVzIGluIHRoZSBzYW1lIG9uZSksIGl0IFJFVkVSVFMgdG8gdGhlIHByZXZp
b3VzIHNjcm9sbCBwb3NpdGlvbiEhIQoKbGV0IGluY3JlYXNlTG9hZCA9IHRydWUsIC8vIGhlYXZp
ZXIgbG9hZCBjYXVzZXMgdGhlIHByb2JsZW0gdG8gc2hvdyB1cC4KaXRlcmF0aW9ucyA9IDUwLApj
dXJyZW50U2Nyb2xsID0gMCwKaXNDbG9zZUVub3VnaCA9ICh2MSwgdjIpID0+IE1hdGguYWJzKHYx
IC0gdjIpIDw9IDI7IC8vIFNhZmFyaSBpcyBvZnRlbiAxIHBpeGVsIG9mZiwgc28gd2UgZ2l2ZSBp
dCAyIHBpeGVscyBsZWV3YXk7CgovLyB0aGlzIGZ1bmN0aW9uIGp1c3QgY2hhbmdlcyB0aGUgc2Ny
b2xsIHBvc2l0aW9uIHRvIGEgcmFuZG9tIG9uZSwgYnV0IGJlZm9yZSBpdCBkb2VzIHNvLCBpdCBj
aGVja3MgdG8gc2VlIGlmIHRoZSBwcmV2aW91cyBzY3JvbGwgcG9zaXRpb24gdGhhdCB3YXMgc2V0
IGlzIHN0aWxsIHdoYXQgaXQgd2FzIHN1cHBvc2VkIHRvIGJlIChleHBvc2UgdGhlIGJ1ZykKZnVu
Y3Rpb24gY2hhbmdlU2Nyb2xsKCkgewogIGNoZWNrU2Nyb2xsKCk7IC8vIG1ha2Ugc3VyZSBpdCBt
YXRjaGVzIHdoYXQgd2Ugc2V0IHByZXZpb3VzbHkKICBjdXJyZW50U2Nyb2xsID0gTWF0aC5yb3Vu
ZChNYXRoLnJhbmRvbSgpICogODAwKTsgLy8gcGljayBhIHJhbmRvbSBzY3JvbGwgcG9zaXRpb24K
ICB3aW5kb3cuc2Nyb2xsVG8oMCwgY3VycmVudFNjcm9sbCk7IC8vIGdvIHRoZXJlCiAgaWYgKGl0
ZXJhdGlvbnMtLSkgey8vIG9ubHkgZG8gdGhpcyBmb3IgYSBjZXJ0YWluIG51bWJlciBvZiBpdGVy
YXRpb25zCiAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoY2hhbmdlU2Nyb2xsKTsKICB9Cn0KCi8v
IE9OTFkgV09SS1MgSUYgV0UgVVNFIEFTWU5DIEFORCBBV0FJVCBUUlVFIEhFUkUhISEKZnVuY3Rp
b24gY2hlY2tTY3JvbGwoKSB7CiAgaWYgKGluY3JlYXNlTG9hZCkgey8vIGp1c3QgY2hld3MgdXAg
Q1BVIHRpbWUuCiAgICBmb3IgKGxldCBpID0gMDsgaSA8IDk5OTk5OTk7IGkrKykgewogICAgICBs
ZXQgZHVtbXlWYWx1ZSA9IE1hdGgucmFuZG9tKCkgKiBNYXRoLnJhbmRvbSgpOwogICAgfQogIH0K
ICBpZiAoIWlzQ2xvc2VFbm91Z2god2luZG93LnBhZ2VZT2Zmc2V0LCBjdXJyZW50U2Nyb2xsKSkg
ey8vIGRvZXMgaXQgc3RpbGwgbWF0Y2g/CiAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIub3Zl
cmxheSIpLmlubmVySFRNTCArPSAiRVJST1IhICIgKyB3aW5kb3cucGFnZVlPZmZzZXQgKyAiICE9
PSAiICsgY3VycmVudFNjcm9sbCArICI8YnI+IjsKICB9Cn0KCmNoYW5nZVNjcm9sbCgpOwogICAg
PC9zY3JpcHQ+CgogIAoKPC9ib2R5PgoKPC9odG1sPgogCgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>