Device Lab harness versions
Published
The harness is the set of pages loaded on the device during a Device Lab test. It includes the lab app, probe pages, and small installable apps. Each harness version has a lock file that lists its files with their SHA-256 hashes, so you can check whether the bytes a server sends later match the frozen version. The lab app page carries <meta name="robots" content="noindex, nofollow">.
Harness v1
Section titled “Harness v1”Harness v1 is the tree at /lab/device-tests/. Its lock file, lock.json, lists 52 files, and SHA256SUMS.txt gives one SHA-256 line per file for the bytes openpwa.net serves. The iOS 18.6.2 baseline on 2026-10-20 used these pages together with the demo pages. The study report records which pages each test used and the hashes of selected files, and notes that lab.js changed during the run.
The lab app’s manifest sets id, start_url and scope to /lab/device-tests/, and lab.js registers the service worker sw.js with that same scope. The Home Screen apps on the test iPhone were installed from these URLs.
Change rule
Section titled “Change rule”lock.json marks v1 as frozen in place, with no moves or redirects allowed. A file may change only to fix a privacy or security defect, with a dated erratum. Its errata list is empty.
To check the hashes before and after your own run, see Run Device Lab tests on iPhone and iPad.
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.