Capabilities
Published
Capabilities are the device and platform APIs that let a PWA do what native apps do: read and write local files, share content, reach hardware, accelerate graphics, and take payments. Most are gated behind a secure context, a user gesture, and an explicit permission, and support varies by engine.
Each entry explains what an API does, its permission and security model, where it is supported, and the fallback when it is not.
In this section
Section titled “In this section”File System Access APIshowOpenFilePicker(), showSaveFilePicker(), and showDirectoryPicker() return handles to real files. Every option, the exceptions they reject with, fallbacks.
Web Share APInavigator.share() hands a URL, title, text, or files to the OS share sheet; canShare() validates first. ShareData members, every DOMException, fallbacks.
Payment Request APInew PaymentRequest(methodData, details, options), canMakePayment(), show(), complete(), every exception the W3C spec defines, and a hosted-checkout fallback.
Geolocation APIgetCurrentPosition() and watchPosition() report the device position after a permission prompt. PositionOptions members, the three error codes, and fallbacks.
Async Clipboard APInavigator.clipboard read(), readText(), write(), and writeText(), ClipboardItem members, every DOMException the spec defines, and copy and paste fallbacks.
Web Bluetooth APInavigator.bluetooth.requestDevice() opens a chooser for one Bluetooth Low Energy device and exposes its GATT services. Filters, every exception, examples.
Screen Wake Lock APInavigator.wakeLock.request("screen") keeps the display on while the page is visible. WakeLockSentinel, each NotAllowedError condition, auto-release, iOS caveat.
WebCodecs APIVideoDecoder, VideoEncoder, AudioDecoder, and AudioEncoder give per-frame codec access: configure, decode, encode, flush, every exception, runnable examples.
WebRTC APIRTCPeerConnection offer/answer and ICE, RTCDataChannel, and getUserMedia constraints. Configuration members, the exceptions the specs define, and fallbacks.
Idle Detection APIIdleDetector reports whether the user is active or idle and whether the screen is locked. Permission model, 60-second minimum threshold, exceptions, examples.
Contact Picker APInavigator.contacts.select() opens a browser-drawn picker and returns only the contacts and properties the user chose. Members, exceptions, support, fallbacks.
Credential Management APInavigator.credentials get(), store(), create(), and preventSilentAccess(): options, four mediation modes, every DOMException, and PasswordCredential gaps.
Digital Goods APIwindow.getDigitalGoodsService() exposes Google Play Billing to a PWA in a Trusted Web Activity: getDetails(), listPurchases(), consume(), errors, fallbacks.
Document Picture-in-Picture APIdocumentPictureInPicture.requestWindow() opens an always-on-top window holding arbitrary HTML. Options, the exceptions it rejects with, examples with fallbacks.
EyeDropper APInew EyeDropper().open() samples the colour of any pixel on screen for a custom colour picker. The signal option, every exception it rejects with, fallbacks.
Local Font Access APIwindow.queryLocalFonts() lists installed fonts as FontData objects behind a local-fonts permission. Options, FontData members, exceptions, examples.
Local Network AccessChrome 142 asks permission before a public page may request a local-network or loopback address. Address spaces, permissions, targetAddressSpace, prompt text.
Media Session APInavigator.mediaSession describes what is playing and receives play, pause, seek, and track actions from OS media controls. Members, actions, errors, examples.
Navigation APIwindow.navigation centralises SPA routing: navigate(), the navigate event, intercept(), every exception the HTML Standard defines, and a History API fallback.
registerProtocolHandler() and manifest protocol handlersnavigator.registerProtocolHandler() and manifest protocol_handlers share one rule set; web+ scheme rules, the %s placeholder, SecurityError and SyntaxError.
Screen Capture API (getDisplayMedia)getDisplayMedia() prompts for a screen, window, or tab and returns a MediaStream: every option, every exception the W3C spec defines, feature-detected examples.
Generic Sensor APIAccelerometer, Gyroscope, orientation, Magnetometer, and AmbientLightSensor on one Sensor base. Options, error event names, Chromium frequency caps, fallbacks.
Storage Buckets APInavigator.storageBuckets.open() creates named storage partitions with their own IndexedDB, caches, persistence, quota, and expiry. Options, names, rejections.
VirtualKeyboard APInavigator.virtualKeyboard.overlaysContent stops the on-screen keyboard from resizing the viewport. boundingRect, geometrychange, show(), hide(), env() insets.
WebHID APInavigator.hid.requestDevice() pairs a Human Interface Device and HIDDevice exchanges input, output, and feature reports. Filters, every exception, examples.
Web Locks APInavigator.locks.request() runs a callback while holding a named exclusive or shared lock across tabs and workers. LockOptions, every rejection, examples.
Web NFC APINDEFReader.scan() delivers NDEF messages from NFC tags as reading events and write() pushes records to a tag. Record members, every exception, examples.
Web Serial APInavigator.serial.requestPort() and SerialPort.open() connect a page to a serial device: options, every exception, and runnable read and write examples.
WebUSB APInavigator.usb.requestDevice() pairs a page with a USB device that has no class driver: filters, USBDevice transfers, every exception, and runnable examples.
WebAuthn and passkeysnavigator.credentials.create() and get() with publicKey register and verify passkeys: every option member, the DOMExceptions, and runnable sign-in examples.
WebGPU APIrequestAdapter() and requestDevice() expose the GPU for rendering and compute. Options, every rejection the spec defines, device loss, and the WebGL2 fallback.
WebTransport APIWebTransport() opens an HTTP/3 session with reliable streams and unreliable datagrams. Constructor options, each exception the spec defines, WebSocket fallback.
Window Management APIwindow.getScreenDetails() lists attached screens so a PWA can place windows on a chosen one. ScreenDetailed members, window-management permission, fallbacks.
User activation and the APIs it gatesSticky and transient activation in the HTML Standard: which input events grant them, which APIs consume them, and what navigator.userActivation reads.
← Back to the Reference overview.