PublicKeyCredential: isConditionalMediationAvailable() static method

Baseline 2023
Newly available

Since ⁨October 2023⁩, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

The isConditionalMediationAvailable() static method of the PublicKeyCredential interface returns a Promise which resolves to true if conditional mediation is available.

Syntax

js
PublicKeyCredential.isConditionalMediationAvailable() 

Parameters

None.

Return value

A Promise which resolves to a boolean value indicating whether or not conditional mediation is available.

Exceptions

The returned Promise may be rejected with the following values:

SecurityError DOMException

The RP domain is not valid.

Examples

Before invoking a conditional WebAuthn API call, check if:

  • The browser supports the Web Authentication API.
  • The browser supports WebAuthn conditional UI.
js
// Availability of `window.PublicKeyCredential` means WebAuthn is usable. if (   window.PublicKeyCredential &&   PublicKeyCredential.isConditionalMediationAvailable ) {   // Check if conditional mediation is available.   const isCMA = await PublicKeyCredential.isConditionalMediationAvailable();   if (isCMA) {     // Call WebAuthn authentication     const publicKeyCredentialRequestOptions = {       // Server generated challenge       challenge: challengeFromServer,       // The same RP ID as used during registration       rpId: "example.com",     };      const credential = await navigator.credentials.get({       publicKey: publicKeyCredentialRequestOptions,       signal: abortController.signal,       // Specify 'conditional' to activate conditional UI       mediation: "conditional",     });   } } 

Note: See Sign in with a passkey through form autofill for more information about using conditional mediation.

Specifications

Specification
Web Authentication: An API for accessing Public Key Credentials - Level 3>
# dom-publickeycredential-isconditionalmediationavailable>

Browser compatibility