react/fixtures
Sebastian Markbåge dcf83f7c2d
Disable ScrollTimeline in Safari (#33499)
Stacked on #33501.

This disables the use of ScrollTimeline when detected in Safari in the
recommended SwipeRecognizer approach. I'm instead using a polyfill using
touch events on iOS.

Safari seems set to [release ScrollTimeline
soon](https://webkit.org/blog/16993/news-from-wwdc25-web-technology-coming-this-fall-in-safari-26-beta/).
Unfortunately it's not really what you'd expect.

First of all, [it's not running in sync with the
scroll](https://bugs.webkit.org/show_bug.cgi?id=288402) which is kind of
its main point. Instead, it is running at 60fps and out of sync with the
scroll just like JS. In fact, it is worse than JS because with JS you
can at least spawn CSS animations that run at 120fps. So our polyfill
can respond to touches at 60fps while gesturing and then run at 120fps
upon release. That's better than with ScrollTimeline.

Second, [there's a bug which interrupts scrolling if you start a
ViewTransition](https://bugs.webkit.org/show_bug.cgi?id=288795) when the
element is being removed as part of that. The element can still respond
to touches so in a polyfill this isn't an issue. But it essentially
makes it useless to use ScrollTimeline with swipe-away gestures.

So we're better off in every scenario by not using it.

The UA detection is a bit unfortunate. Not sure if there's something
more specific but we also had to do a UA detection for Chrome for View
Transitions. Those are the only two we have in all of React.


![safarimeme](https://github.com/user-attachments/assets/d4ca9eba-489e-4ade-b462-2ffeee3a470c)
2025-07-02 17:01:49 -04:00
..
art Bump canary versions to v19-canary (#28646) 2024-03-26 15:31:57 -04:00
attribute-behavior React DOM: Add support for Popover API (#27981) 2024-05-20 22:01:39 +02:00
concurrent/time-slicing Bump follow-redirects from 1.15.4 to 1.15.6 in /fixtures/concurrent/time-slicing (#28572) 2024-03-18 11:56:04 -04:00
devtools Rename "next" prerelease channel to "canary" (#26761) 2023-05-03 12:10:32 -04:00
dom Add dispatchEvent to fragment instances (#32813) 2025-05-07 14:00:59 -04:00
eslint-v6 feat(eslint-plugin-react-hooks): merge rule from eslint-plugin-react-compiler into react-hooks plugin (#32416) 2025-03-12 21:43:06 -04:00
eslint-v7 feat(eslint-plugin-react-hooks): merge rule from eslint-plugin-react-compiler into react-hooks plugin (#32416) 2025-03-12 21:43:06 -04:00
eslint-v8 feat(eslint-plugin-react-hooks): merge rule from eslint-plugin-react-compiler into react-hooks plugin (#32416) 2025-03-12 21:43:06 -04:00
eslint-v9 feat(eslint-plugin-react-hooks): merge rule from eslint-plugin-react-compiler into react-hooks plugin (#32416) 2025-03-12 21:43:06 -04:00
expiration Bump browserify-sign from 4.0.4 to 4.2.2 in /fixtures/expiration (#27600) 2023-11-01 19:31:28 +00:00
fiber-debugger Rename yarn start to yarn dev and yarn start:prod to yarn start (#26209) 2023-02-21 14:18:21 -05:00
fizz Clear bundler cache before bundling fixtures (#33426) 2025-06-03 21:10:13 +02:00
fizz-ssr-browser [UMD] Remove umd builds (#28735) 2024-04-17 11:15:27 -07:00
flight [Flight] Add Debug Channel option for stateful connection to the backend in DEV (#33627) 2025-06-24 11:16:09 -04:00
flight-esm Clear bundler cache before bundling fixtures (#33426) 2025-06-03 21:10:13 +02:00
flight-parcel [Flight Parcel] Implement findSourceMapURL (#32294) 2025-02-04 14:17:13 -05:00
legacy-jsx-runtimes Bump braces from 3.0.2 to 3.0.3 in /fixtures/legacy-jsx-runtimes (#29844) 2024-06-11 11:36:36 -04:00
nesting docs: fix typo in fixtures/nesting/README.md (#27507) 2024-04-06 19:11:19 +02:00
owner-stacks Clear bundler cache before bundling fixtures (#33426) 2025-06-03 21:10:13 +02:00
packaging Bump browserify-sign from 4.0.4 to 4.2.2 in /fixtures/packaging/brunch/prod (#27598) 2023-11-01 19:30:25 +00:00
scheduler [flags] Delete enableSchedulerDebugger (#31826) 2024-12-18 13:29:22 -05:00
ssr Replace Implicit Options on SuspenseList with Explicit Options (#33424) 2025-06-03 17:40:30 -04:00
ssr2 Bump canary versions to v19-canary (#28646) 2024-03-26 15:31:57 -04:00
stacks Bump braces from 3.0.2 to 3.0.3 in /fixtures/stacks (#29843) 2024-06-11 11:35:40 -04:00
view-transition Disable ScrollTimeline in Safari (#33499) 2025-07-02 17:01:49 -04:00