Bug 301485
| Summary: | Video playback fails on PWA after reopening stuck on first frame | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | ziyak97 |
| Component: | New Bugs | Assignee: | Nobody <webkit-unassigned> |
| Status: | RESOLVED DUPLICATE | ||
| Severity: | Major | ||
| Priority: | P2 | ||
| Version: | Safari 26 | ||
| Hardware: | iPhone / iPad | ||
| OS: | iOS 26 | ||
ziyak97
Title
iOS: Videos in Home-Screen web apps (PWAs) show poster/first frame but don’t advance; play() resolves, frames don’t decode
Summary
When websites are added to the Home Screen and launched as standalone web apps, HTML5 video often gets stuck on the poster/first frame. HTMLMediaElement.play() resolves and media events fire (loadeddata → canplay → playing), but playback does not advance. This occurs across multiple, unrelated sites, including **YouTube** installed to the Home Screen and custom apps (e.g., Cloudinary MP4/HLS), indicating a system-wide iOS/WebKit issue in PWA context.
Steps to Reproduce
1) In Safari, open https://youtube.com.
2) Share → Add to Home Screen.
3) Launch the YouTube icon (standalone PWA).
4) Start any video (autoplay or manual play).
5) Observe: Events fire; but the poster/first frame remains and the picture does not update.
Expected
Video frames decode and advance; poster is replaced by video frames.
Actual
- play() promise resolves; loadeddata/canplay/playing fire.
- currentTime remains 0.
- No new frames decode: getVideoPlaybackQuality().totalVideoFrames stays constant (delta = 0).
Diagnostics (from Web Inspector on device)
- Event log shows playing without visual motion.
- Playback quality sampled at 500 ms intervals shows delta = 0 while paused = false.
Workarounds Tried
- Remove poster + tiny seek (currentTime += 0.01) after loadeddata → does not work.
Impact
Affects video playback across any Home-Screen web app, including major sites (YouTube) and enterprise PWAs; severe impact on media use-cases.
| Attachments | ||
|---|---|---|
| Add attachment proposed patch, testcase, etc. |
Sam Sneddon [:gsnedders]
*** This bug has been marked as a duplicate of bug 301484 ***