Bug 311569
| Summary: | White brief full-screen flash after cold start, despite dark background_color / early document background | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | andreisovidiu |
| Component: | Layout and Rendering | Assignee: | Nobody <webkit-unassigned> |
| Status: | NEW | ||
| Severity: | Normal | CC: | bfulgham, formularsumo, simon.fraser, thorton, webkit-bug-importer, zalan |
| Priority: | P2 | Keywords: | InRadar |
| Version: | Safari 26 | ||
| Hardware: | iPhone / iPad | ||
| OS: | iOS 26 | ||
| See Also: |
https://bugs.webkit.org/show_bug.cgi?id=300249 https://bugs.webkit.org/show_bug.cgi?id=45640 |
||
andreisovidiu
When opening an installed PWA on iOS 26 and iOS 17 from a cold start (e.g. after force-quit), there is often a very short full-viewport white flash after the system/launch splash.
The visible sequence:
1. Dark - native splash / theme-aligned frame
2. White - one or a few frames
3. Dark - first meaningful web paint (shell or content)
The flash is transient but highly noticeable and hurts perceived quality for dark-themed apps. The flash is not perceived if the OS is set to light and not dark but only when the OS is dark and the app dark (when OS is set to light, there is a smooth transition from light to dark theme of the app)
- We have tried web-side mitigations verified in production HTML, including:
- Manifest background_color / theme_color aligned with the app
- Inline background-color on <html> and <body> from the root document
- Critical CSS in <head> (html, body { background-color: …; color-scheme: dark })
- Global CSS on html after stylesheet load
None of these eliminated the white frame on iOS standalone cold start. Android (installed PWA) does not show a comparable flash with the same deployment.
| Attachments | ||
|---|---|---|
| Add attachment proposed patch, testcase, etc. |
andreisovidiu
Expected result:
The viewport should remain continuously dark from the launch through first web paint, matching manifest and document background, with no full-screen white frame.
Actual result:
A brief white full-screen flash appears between splash and first dark web paint on iOS standalone PWA cold start. Android Chrome installed PWA: not reproduced with the same site.
Stack (for context only): Next.js 15, React 19, Firebase Auth on client; issue reproduced on production builds, not only dev server.
To reproduce add to home screen the following app and cold start multiple times.
https://gympulsed.vercel.app/
Alexey Proskuryakov
Thank you for the report! Possibly a dupe of the bugs I'm relating, but leaving it to the experts to decide.
andreisovidiu
(In reply to Alexey Proskuryakov from comment #2)
> Thank you for the report! Possibly a dupe of the bugs I'm relating, but
> leaving it to the experts to decide.
Thank you Alexey, can you please share the link to your bug report?
andreisovidiu
Any update on the bug?
Radar WebKit Bug Importer
<rdar://problem/174668890>