Android PWA viewport-fit mode switch sampler

Standalone PWADynamic cover / auto / containNo native select

Purpose

Isolate browser behavior from the original page

This sampler removes the native select dialog, responsive card layout, theme colors, and orientation lock. It keeps only fixed top and bottom bars, safe-area padding, mode switching, and geometry telemetry.

Open installable repro

Install and run

Install the standalone vs fullscreen pair to compare manifest display modes.

Standalone flag comparison

Pixel 6a, Android 17, Chromium 156.0.8067.0. Launched the same installed display: standalone PWA with viewport-fit=cover, restarting Chromium after each flag change. With WebAppShortEdgesCutoutMode disabled, the page reported 411 x 914 CSS px and safe-area top/bottom 51/48px. With it enabled, the fresh launch reported 411 x 816 CSS px and zero safe-area insets. The status and navigation bars stayed visible in both runs. This demonstrates that the fullscreen experiment also changes standalone layout; it does not establish which behavior is desirable for every site.

Same standalone PWA in portrait: flag off reports 411 x 914 and flag on reports 411 x 816

To repeat: install the repro as Fit Switch, set debug_app to the Chromium package, then launch the home-screen shortcut after restarting Chromium with --disable-features=WebAppShortEdgesCutoutMode and again with --enable-features=WebAppShortEdgesCutoutMode. Restore the original command line afterward. This older capture used Chromium 156.0.8067.0; it is not a baseline for the newer build used by the standalone vs fullscreen sampler. Only the fresh-launch cover case was compared here; the dynamic auto/contain matrix was not completed.

Landscape auto result

Install the live page as a PWA to exercise system bars. Baseline device capture: PNG.

Expected landscape auto result with fitted content and system bar colors covering the cutout inset
Pixel difference between baseline and expected landscape auto result

Interpretation