Skip to content

Device Lab test roadmap

Published

Planned Device Lab tests have a question, target platforms, a reason to run, and an order. None has a published result yet. For completed measurements, see the behaviour pages.

An item marked scheduled names its assigned run. The four statuses distinguish tests that can run, tests with missing prerequisites, and tests assigned to a run.

Status Meaning
planned The test is designed and can run on hardware the Lab has
needs-device The test needs a device the Lab does not have, such as an Android phone
needs-origin The test needs a service worker scoped to the root of a site, which harness v1 does not register
scheduled <run> The test is assigned to a named run
Test roadmap
QuestionPlatformsStatusWhy
Do the 13 published behaviours hold on iOS 27.x, on the same iPhone 16 Pro with the same installed v1 apps?iOSScheduled: iOS 27.x rerunA before and after comparison on one device is the second study in Field notes.
When a notification is tapped and no window of the app is alive, does clients.openWindow() open the app at the given URL?
notificationclick-openwindow-path T8b
iOS, Android, DesktopPlannedThe 18.6.2 run never reached this path, because a window was alive at every tap.
Does navigator.clearAppBadge() remove the badge from the Home Screen or dock icon?
app-badge-clear T11b
iOS, Desktop ChromiumPlannedClearing has no recorded evidence yet.
Does an installed web app with a share_target member appear in the system share sheet?
share-target T12
Android Chrome, Samsung Internet, iOSNeeds a deviceHarness v1 has no share_target, and the Lab has no Android device yet.
When a file is opened with an installed web app, does launchQueue deliver the file handles to the page?
file-handling-launch-queue T13
Desktop ChromiumPlannedThe demo declares file handlers, and nothing has been recorded for them.
Where BeforeInstallPromptEvent and navigator.install exist, when do they fire or resolve, and what does the install UI show?
install-prompt-and-navigator-install T14
Android Chrome, Desktop Chromium, Edge, Samsung InternetNeeds a deviceT9 covers only their absence on iOS.
Which install surfaces does Firefox offer for a web app, on Android and on desktop where Mozilla documents them?
firefox-install-surfaces T15
Firefox Android, Firefox desktopNeeds a deviceMozilla's documentation is to be re-checked when the test is built.
Does launch_handler client_mode decide whether a launch reuses an existing app window or opens a new one?
launch-handler-client-mode T16
Desktop ChromiumPlannedThe manifest rows for launch_handler have no measurement behind them.
Does navigator.storage.persist() change whether a Home Screen web app's data survives storage pressure?
storage-persistence-and-eviction T17
iOS, AndroidPlannedThe storage isolation page would gain a measured persistence condition.
With a service worker scoped to the site root, does window.pushManager return the worker's subscription on iOS 18.4 or later?
dwp-root-scoped-worker T18
iOSNeeds a separate originIt needs a root-scoped worker, which means a separate origin such as lab.openpwa.net, an owner decision.
Which of the iPhone behaviours differ on iPadOS, including multitasking windows and the Add to Home Screen sheet?iPadOSNeeds a deviceiPadOS has its own Add to Home Screen UI and window model.

The root-scoped worker item is marked needs-origin because harness v1 has no root-scoped worker. Harness v1 registers its service worker with the scope /lab/device-tests/ (see registerLabWorker in lab.js). The WebKit post on Declarative Web Push (webkit.org) says that a service worker scoped to the root of the site shares the push subscription of the window object, so this test needs a worker registered at the root.

Device steps performed by an OpenPWA operator on an iPhone 16 Pro. AI agent sessions read page state over USB, kept the notebook and drafted this text; automated gates and an AI fact-check checked it. No person reviews each entry.