HTTP/2 301
server: nginx
date: Thu, 24 Jul 2025 01:19:19 GMT
content-type: text/html
content-length: 162
location: https://developer.mozilla.org/en-US/docs/Web/API/PresentationRequest/getAvailability
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
content-type: text/html
x-guploader-uploadid: ABgVH8-wQKa4OyyzxuGIgxkeBBd02xxf9G17291okIqtrsOJBlbWKcq94HPwJ3V4M14OYd6Nx7qQq6Q
cache-control: public, max-age=3600
expires: Thu, 24 Jul 2025 02:19:20 GMT
last-modified: Wed, 23 Jul 2025 00:46:00 GMT
etag: W/"4fbef32dc1688ffd5f116cff511a1a21"
x-goog-generation: 1753231560292581
x-goog-metageneration: 1
x-goog-stored-content-encoding: identity
x-goog-stored-content-length: 63993
x-goog-meta-goog-reserved-file-mtime: 1753230355
x-goog-hash: crc32c=dezayw==, md5=T77zLcFoj/1fEWz/URoaIQ==
x-goog-storage-class: STANDARD
accept-ranges: none
alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000
alt-svc: clear
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-EehWlTYp7Bqy57gDeQttaWKp0ukTTEUKGP44h8GVeik=' 'sha256-XNBp89FG76amD8BqrJzyflxOF9PaWPqPqvJfKZPCv7M='; 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-EehWlTYp7Bqy57gDeQttaWKp0ukTTEUKGP44h8GVeik=' 'sha256-XNBp89FG76amD8BqrJzyflxOF9PaWPqPqvJfKZPCv7M='; 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: 61c42f1965b00d18ab863d9293e6f034
date: Thu, 24 Jul 2025 01:19:20 GMT
server: Google Frontend
via: 1.1 google
vary: Accept-Encoding
content-encoding: gzip
x-cache: miss
PresentationRequest: getAvailability() method - Web APIs | MDNPresentationRequest: getAvailability() method
Limited availability
When the getAvailability()
method is called, the user agent MUST run the following steps:
- Input
-
presentationUrls, a list of presentation request URLs
- Output
-
P, a Promise
-
If one of the following conditions is true:
Run the following substeps:
- Return a Promise rejected with a
SecurityError
DOMException
.
- Abort these steps.
-
Let P be a new Promise.
-
Return P, but continue running these steps in parallel.
-
If the user agent is unable to monitor the list of available presentation displays for the entire duration of the controlling browsing context (e.g., because the user has disabled this feature), then:
- Resolve P with a new
PresentationAvailability
object with its value
property set to false
.
- Abort all the remaining steps.
-
If the user agent is unable to continuously monitor the list of available presentation displays but can find presentation displays in order to start a connection, then:
- Reject P with a
NotSupportedError
DOMException
.
- Abort all the remaining steps.
-
If there exists a tuple (A, presentationUrls) in the set of availability objects, then:
- Resolve P with A.
- Abort all the remaining steps.
-
Let A be a new PresentationAvailability
object with its value
property set as follows:
false
if the list of available presentation displays is empty.
true
if there is at least one compatible presentation display for some member of presentationUrls. Meaning there is an entry (presentationUrl, display) in the list of available presentation displays for some presentationUrl in presentationUrls.
false
otherwise.
-
Create a tuple (A, presentationUrls) and add it to the set of availability objects.
-
Run the algorithm to monitor the list of available presentation displays.
-
Resolve P with A.