Bug 271623

Summary: isConditionalMediationAvailable and isUserVerifyingPlatformAuthenticatorAvailable incorrectly returns false on Safari on macOS
Product: WebKit Reporter: James Manger <james>
Component: New BugsAssignee: pascoe <pascoe>
Status: NEW ---    
Severity: Normal CC: bfulgham, pascoe, webkit-bug-importer, wilander
Priority: P2 Keywords: InRadar
Version: Safari 17   
Hardware: Mac (Apple Silicon)   
OS: macOS 14   

Description James Manger 2024-03-24 21:30:24 PDT
PublicKeyCredential.isConditionalMediationAvailable() returns false (after the promise resolves) on Safari 17.4 on macOS 14.4 when it should return true.

PublicKeyCredential.getClientCapabilities() returns conditionalMediation: true. So passkey (aka WebAuthn) conditional mediation is supported, but the two ways to report that are inconsistent.

var icma = await window.PublicKeyCredential.isConditionalMediationAvailable();
console.log(icma);

PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable() also returns false incorrectly.
PublicKeyCredential.getClientCapabilities() correctly returns userVerifyingPlatformAuthenticator: true.
Comment 1 James Manger 2024-03-25 08:34:53 PDT
"iCloud > Passwords & Keychain" is off (by corporate policy).

It's good to know that the problem may be limited to people with less common settings. But it is still a bug.
Comment 2 Radar WebKit Bug Importer 2024-03-25 09:24:54 PDT
<rdar://problem/125357876>
Comment 3 pascoe@apple.com 2024-03-25 09:43:34 PDT
I'm unable to reproduce this on my machine running 14.4 and Safari 17.4. 

Is Keychain enabled in your iCloud settings?
Comment 4 James Manger 2024-03-26 16:25:55 PDT
"iCloud > Passwords & Keychain" is off (by corporate policy).

It's good to know that the problem may be limited to people with less common settings. But it is still a bug.