<?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>272165</bug_id>
          
          <creation_ts>2024-04-04 10:26:44 -0700</creation_ts>
          <short_desc>120Hz requestAnimationFrame is not supported on iPhone Pros, it is supported on iPad Pros</short_desc>
          <delta_ts>2024-09-23 06:19:01 -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 17</version>
          <rep_platform>iPhone / iPad</rep_platform>
          <op_sys>iOS 17</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=280183</see_also>
          <bug_file_loc>https://www.testufo.com/</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="Jeffrey Blanz">possum.bracing0v</reporter>
          <assigned_to name="Antoine Quint">graouts</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>graouts</cc>
    
    <cc>karlcow</cc>
    
    <cc>possum.bracing0v</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>2026018</commentid>
    <comment_count>0</comment_count>
    <who name="Jeffrey Blanz">possum.bracing0v</who>
    <bug_when>2024-04-04 10:26:44 -0700</bug_when>
    <thetext>On iPhones with a promotion display, so all iPhone 13 Pro or newer Pro devices, disabling the “Prefer Page Rending Updates near 60fps” feature flag does not work.

On iPad Pros and MacBook Pros with promotion display the feature flag works.

You can test this on https://www.testufo.com/

You will see that after disabling the feature flag. 120hz animations are not present on iPhone Pros, but they are on iPad Pros and MacBook Pros.

Also related: In PWA apps, 120fps is disabled regardless of the feature flag on iPad Pros and iPhone Pros. 120fps is enabled for MacBook Pro PWAs, but not iPhone Pros or iPad Pros.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2026316</commentid>
    <comment_count>1</comment_count>
    <who name="Jeffrey Blanz">possum.bracing0v</who>
    <bug_when>2024-04-05 10:25:27 -0700</bug_when>
    <thetext>Added that this also happens on the Vision Pro, which should have 90fps support, but is capped at 60fps.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2026662</commentid>
    <comment_count>2</comment_count>
    <who name="Jeffrey Blanz">possum.bracing0v</who>
    <bug_when>2024-04-07 18:18:30 -0700</bug_when>
    <thetext>Title renamed to more accurately reflect the bug.

visionOS removed because it is supported. I was using the simulator to test. The simulator is capped at 60fps while the actual device shows 90fps.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2026702</commentid>
    <comment_count>3</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2024-04-08 03:09:16 -0700</bug_when>
    <thetext>I am surprised that it is behaving differently between iPhone Pro and iPad Pro.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2026703</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2024-04-08 03:09:24 -0700</bug_when>
    <thetext>&lt;rdar://problem/126067757&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2028435</commentid>
    <comment_count>5</comment_count>
    <who name="Jeffrey Blanz">possum.bracing0v</who>
    <bug_when>2024-04-14 21:54:45 -0700</bug_when>
    <thetext>This is because native fps animations are not supported on iPhone Pros or Mac external displays above 120hz. Native fps animations are supported on iPads Pros, Macbook Pros, and Vision Pro.

Note: Chrome and Firefox support unlimited fps animations. The highest current monitor is 500hz and Chrome and Firefox support it.

Also Note: PWAs on Macbook Pros, iPhone Pros, and iPad Pros do not support native fps animations because the “prefer page rendering updates near 60fps” feature flag is on by default. PWAs only run off of system default feature flags.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2036104</commentid>
    <comment_count>6</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2024-05-17 13:20:58 -0700</bug_when>
    <thetext>We need to do the same thing for the CADisplayLink created in RemoteLayerTreeDrawingAreaProxyIOS that we did in WKKeyboardScrollingAnimator in 274234@main.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2036109</commentid>
    <comment_count>7</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2024-05-17 13:29:56 -0700</bug_when>
    <thetext>Pull request: https://github.com/WebKit/WebKit/pull/28729</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2036168</commentid>
    <comment_count>8</comment_count>
    <who name="Jeffrey Blanz">possum.bracing0v</who>
    <bug_when>2024-05-17 17:10:04 -0700</bug_when>
    <thetext>Not sure if it is possible to fix the iPhone bug as well as the Mac bug, but I got more information on the Mac bug:

When using Mac’s that have a built in screen (MacBook Pro, MacBook Air, iMac) and connecting them to an external display, the external display does not support the native refresh rate for safari.

If you close the lid of the MacBook, making the external display the main display, the monitor will correctly show the native refresh rate.

I actually can’t confirm that this happens on the iMac, but I can confirm this happens on the MacBook Pro and MacBook Air with the lid open. I am assuming the iMac might also have this issue because it also has its own screen, obviously.

I can also submit another bug form for the Mac bug if needed.


Also I have heard from a user in this form</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2036170</commentid>
    <comment_count>9</comment_count>
    <who name="Jeffrey Blanz">possum.bracing0v</who>
    <bug_when>2024-05-17 17:15:21 -0700</bug_when>
    <thetext>Accidentally hit save changes…

I have heard in this form (comment 53) https://bugs.webkit.org/show_bug.cgi?id=173434 that the M4 iPad Pros also do not support the 120hz requestanimationframe. The other iPad pros do, which I have a 2018 one and it works fine. I do not have a M4 iPad Pro to test this.

This may also need its own bug form. In case it doesn’t, and since this is probably a similar fix, I thought I would add.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2036198</commentid>
    <comment_count>10</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2024-05-18 01:07:42 -0700</bug_when>
    <thetext>Committed 278949@main (596b3b01497f): &lt;https://commits.webkit.org/278949@main&gt;

Reviewed commits have been landed. Closing PR #28729 and removing active labels.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2036201</commentid>
    <comment_count>11</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2024-05-18 02:45:52 -0700</bug_when>
    <thetext>I believe 278949@main will deal with the 2024 iPad Pro 120Hz requestAnimationFrame() issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2042818</commentid>
    <comment_count>12</comment_count>
    <who name="Jeffrey Blanz">possum.bracing0v</who>
    <bug_when>2024-06-24 14:17:20 -0700</bug_when>
    <thetext>This has been fixed for iPhone Pros with iOS 18.0 dev beta 2.

Possible it was fixed in iOS 17.6 dev beta 1. I was already on 18, so I am not sure.

I also do not have a M4 iPad to test if the fix works for it also.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2042879</commentid>
    <comment_count>13</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2024-06-24 22:59:51 -0700</bug_when>
    <thetext>With a 2024 iPad Pro, I get 120fps updates on testufo.com when the flag is disabled, as expected.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2042923</commentid>
    <comment_count>14</comment_count>
    <who name="Jeffrey Blanz">possum.bracing0v</who>
    <bug_when>2024-06-25 04:22:10 -0700</bug_when>
    <thetext>Getting 2 reports of it still being capped on a 15 Pro max.

Do you have the ability to test that?

Seems like the 13 Pros and 14 Pros are fixed. Probably would be smart to test all devices, but I have only gotten reports of 15 Pros max not working. I can confirm 13 Pro max and another person seems to confirm 14 Pro here: https://www.reddit.com/r/iOSBeta/s/S45Gt6hw9k</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2042924</commentid>
    <comment_count>15</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2024-06-25 04:52:49 -0700</bug_when>
    <thetext>I had a colleague check with an iPhone 15 Pro and 120Hz was indeed reached, as expected. I have no reason to believe that iPhone 15 Pro Max would behave differently.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2045281</commentid>
    <comment_count>16</comment_count>
    <who name="Jeffrey Blanz">possum.bracing0v</who>
    <bug_when>2024-07-09 04:16:20 -0700</bug_when>
    <thetext>I have verified this has been fixed on all affected devices.

I have also noticed the issue persists with PWAs on macOS, iOS, and iPadOS. It seems the “prefer page rendering updates near 60fps” feature flag does not affect PWAs. There are other feature flags that do affect PWAs, so it is surprising.

Not sure if it is something you could look into as well: https://bugs.webkit.org/show_bug.cgi?id=272226

This is easiest to test on Mac, open a PWA and find a link to TestUFO in that PWA, then open TestUFO in a new PWA window. There is a screenshot of this in the bug link above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2062226</commentid>
    <comment_count>17</comment_count>
    <who name="Jeffrey Blanz">possum.bracing0v</who>
    <bug_when>2024-09-22 17:59:22 -0700</bug_when>
    <thetext>This issue is still present on the iPhone 16 Pro and iPhone 16 Pro Max. I am currently using iOS 18.1 beta 4.

This issue is fixed on all other Apple devices including Macs, iPad Pros, and other iPhone Pros.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2062227</commentid>
    <comment_count>18</comment_count>
    <who name="Jeffrey Blanz">possum.bracing0v</who>
    <bug_when>2024-09-22 17:59:47 -0700</bug_when>
    <thetext>Reopening</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2062268</commentid>
    <comment_count>19</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2024-09-23 02:22:51 -0700</bug_when>
    <thetext>I don&apos;t think reopening is the best course of action here. This was filed before iPhone 16 was a thing. I would suggest filing a new bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2062313</commentid>
    <comment_count>20</comment_count>
    <who name="Jeffrey Blanz">possum.bracing0v</who>
    <bug_when>2024-09-23 06:19:01 -0700</bug_when>
    <thetext>See new bug:

https://bugs.webkit.org/show_bug.cgi?id=280183</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>