HTTP/2 301
content-length: 162
content-type: text/html
date: Thu, 16 Oct 2025 04:21:46 GMT
location: https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps/Reference
server: nginx
strict-transport-security: max-age=60; includeSubDomains
via: 1.1 google
alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000
HTTP/2 200
x-guploader-uploadid: AAwnv3K5jbHS-ixDa0XAe14iQQJ33KIzatiGDs-c1LlBq4KIx6Z1yMlzaBlLXgsmEK2cnEXhRPIlBOM
x-goog-generation: 1760576913617122
x-goog-metageneration: 1
x-goog-stored-content-encoding: identity
x-goog-stored-content-length: 139052
x-goog-meta-goog-reserved-file-mtime: 1760575136
x-goog-hash: crc32c=fBwp9w==, md5=xfkTWM6o0gIDYebXf7AhGQ==
x-goog-storage-class: STANDARD
accept-ranges: none
expires: Thu, 16 Oct 2025 05:18:52 GMT
cache-control: public, max-age=3600
last-modified: Thu, 16 Oct 2025 01:08:33 GMT
etag: W/"c5f91358cea8d2020361e6d77fb02119"
content-type: text/html
age: 174
alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000
alt-svc: clear
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
strict-transport-security: max-age=63072000
content-security-policy: default-src 'self'; script-src 'report-sample' 'self' 'wasm-unsafe-eval' https://www.google-analytics.com/analytics.js https://www.googletagmanager.com/gtag/js assets.codepen.io production-assets.codepen.io https://js.stripe.com 'sha256-XNBp89FG76amD8BqrJzyflxOF9PaWPqPqvJfKZPCv7M=' 'sha256-YCNoU9DNiinACbd8n6UPyB/8vj0kXvhkOni9/06SuYw=' 'sha256-PZjP7OR6mBEtnvXIZfCZ5PuOlxoDF1LDZL8aj8c42rw='; script-src-elem 'report-sample' 'self' 'wasm-unsafe-eval' https://www.google-analytics.com/analytics.js https://www.googletagmanager.com/gtag/js assets.codepen.io production-assets.codepen.io https://js.stripe.com 'sha256-XNBp89FG76amD8BqrJzyflxOF9PaWPqPqvJfKZPCv7M=' 'sha256-YCNoU9DNiinACbd8n6UPyB/8vj0kXvhkOni9/06SuYw=' 'sha256-PZjP7OR6mBEtnvXIZfCZ5PuOlxoDF1LDZL8aj8c42rw='; style-src 'report-sample' 'self' 'unsafe-inline'; object-src 'none'; base-uri 'self'; connect-src 'self' developer.allizom.org bcd.developer.allizom.org bcd.developer.mozilla.org updates.developer.allizom.org updates.developer.mozilla.org https://*.google-analytics.com https://*.analytics.google.com https://*.googletagmanager.com https://incoming.telemetry.mozilla.org https://observatory-api.mdn.allizom.net https://observatory-api.mdn.mozilla.net https://api.github.com/search/issues stats.g.doubleclick.net https://api.stripe.com; font-src 'self'; frame-src 'self' interactive-examples.mdn.mozilla.net interactive-examples.mdn.allizom.net mdn.github.io live-samples.mdn.mozilla.net live-samples.mdn.allizom.net *.mdnplay.dev *.mdnyalp.dev *.play.test.mdn.allizom.net https://v2.scrimba.com https://scrimba.com jsfiddle.net www.youtube-nocookie.com codepen.io survey.alchemer.com https://js.stripe.com; img-src 'self' data: *.githubusercontent.com *.googleusercontent.com *.gravatar.com mozillausercontent.com firefoxusercontent.com profile.stage.mozaws.net profile.accounts.firefox.com developer.mozilla.org mdn.dev interactive-examples.mdn.mozilla.net interactive-examples.mdn.allizom.net wikipedia.org upload.wikimedia.org https://mdn.github.io/shared-assets/ https://mdn.dev/ https://*.google-analytics.com https://*.googletagmanager.com www.gstatic.com; manifest-src 'self'; media-src 'self' archive.org videos.cdn.mozilla.net https://mdn.github.io/shared-assets/; child-src 'self'; worker-src 'self';
x-frame-options: DENY
origin-trial: AxVILwizhbMjxFeHOn1P3R8niO1RJY/smaK4B4d1rLzc1gTaxtXMSaTi+FoigYgCw40uFRDwFcEAeqDR+vVLOW4AAABfeyJvcmlnaW4iOiJodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZyIsImZlYXR1cmUiOiJQcml2YXRlQXR0cmlidXRpb25WMiIsImV4cGlyeSI6MTc0MjA3OTYwMH0=
x-cloud-trace-context: 67c1bc7b9b30c67f002e3dead981a4ba
date: Thu, 16 Oct 2025 04:21:46 GMT
server: Google Frontend
via: 1.1 google
vary: Accept-Encoding
content-encoding: gzip
x-cache: miss
Progressive Web Apps reference - Progressive web apps | MDN
Web app manifest members
Developers can use web app manifest members to describe a PWA, customize its appearance, and more deeply integrate it into the operating system.
The following APIs can be used by a service worker to communicate with its associated client PWA:
Client.postMessage()
Allows a service worker to send a message to its client PWA.
Broadcast Channel API
Allows a service worker and its client PWA to establish a basic two-way communication channel.
The following APIs can be used by a service worker to make your app work offline:
Cache
A persistent storage mechanism for HTTP responses used to store assets that can be reused when the app is offline.
Clients
An interface used to provide access to the documents that are controlled by the service worker.
FetchEvent
An event, dispatched in the service worker with every HTTP request made by the client PWA. The event can be used to either send the request to the server as normal and save the response for future use, or intercept the request and immediately respond with a response cached previously.
The following APIs can be used by a service worker to perform tasks in the background, even when your app is not running:
Background Synchronization API
A way to defer tasks to run in a service worker once there is a stable network connection.
Web Periodic Background Synchronization API
A way to register tasks to be run in a service worker at periodic intervals with network connectivity.
Background Fetch API
A method for a service worker to manage downloads that may take a significant amount of time, such as video or audio files.
IndexedDB
A client-side storage API for significant amounts of structured data, including files.
Badging API
A method of setting a badge on the application icon, providing a low-distraction notification.
Notifications API
A way to send notifications that are displayed at the operating system level.
Web Share API
A mechanism for sharing text, links, files, and other content to other apps selected by the user on their device.
Window Controls Overlay API
An API for PWAs installed on desktop operating systems that enables hiding the default window title bar, enabling displaying the app over the full surface area of the app window.