demo · v140

IWA Kiosk Config

Chrome 140 adds device-attributes as a Permissions Policy feature. The chromestatus motivation: VDI clients migrating from Chrome Apps to Isolated Web Apps need device info (serial, asset tag) with less admin config but still under admin control. Toggle the policy and see what the API exposes.

Managed ChromeOS only

The Device Attributes API itself only resolves inside policy-installed kiosk apps and IWAs on managed ChromeOS devices. This page models the policy header + getter responses so you can see the gate shape.

Policy:

HTTP response header

manifest snippet (IWA)

{
  "permissions_policy": {
    "device-attributes": ["self"]
  }
}

navigator.managed.* in this context

checking…

in the iframe

depends on header
// in the IWA top-level page
const dirId = await navigator.managed.getDirectoryId();      // requires device-attributes
const serial = await navigator.managed.getSerialNumber();    // requires device-attributes
const asset = await navigator.managed.getAnnotatedAssetId(); // requires device-attributes

// inside an iframe, the call rejects unless the parent's header
// allowed this iframe's origin via Permissions-Policy.

see also