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.
Order and status
Section titled “Order and status”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 |
Planned items
Section titled “Planned items”| Question | Platforms | Status | Why |
|---|---|---|---|
| Do the 13 published behaviours hold on iOS 27.x, on the same iPhone 16 Pro with the same installed v1 apps? | iOS | Scheduled: iOS 27.x rerun | A 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? | iOS, Android, Desktop | Planned | The 18.6.2 run never reached this path, because a window was alive at every tap. |
| Is the Safari cookie copied into a Home Screen app when the icon is added or at the app's first launch? | iOS | Planned | The 18.6.2 evidence for the copy time is of moderate strength; a retest with a longer gap separates the two. |
| Does navigator.clearAppBadge() remove the badge from the Home Screen or dock icon? | iOS, Desktop Chromium | Planned | Clearing has no recorded evidence yet. |
| Does an installed web app with a share_target member appear in the system share sheet? | Android Chrome, Samsung Internet, iOS | Needs a device | Harness 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? | Desktop Chromium | Planned | The 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? | Android Chrome, Desktop Chromium, Edge, Samsung Internet | Needs a device | T9 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 Android, Firefox desktop | Needs a device | Mozilla'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? | Desktop Chromium | Planned | The 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? | iOS, Android | Planned | The 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? | iOS | Needs a separate origin | It 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? | iPadOS | Needs a device | iPadOS 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.