Bug 240666

Summary: WebAuthn API Promises Do Not Resolve in WKWebView
Product: WebKit Reporter: Kevin Flanagan <kevin.flanagan>
Component: WebCore Misc.Assignee: Nobody <webkit-unassigned>
Status: RESOLVED DUPLICATE    
Severity: Normal CC: bfulgham, kkinnunen, pascoe, rmondello
Priority: P2    
Version: Safari 15   
Hardware: iPhone / iPad   
OS: iOS 15   

Description Kevin Flanagan 2022-05-19 10:14:02 PDT
Overview

To my understanding WebAuthn is not supported by WKWebView. However, when accessing APIs related to WebAuthn in an iOS WKWebView promises returned by those functions never resolve. Specifically this behavior can be seen at least with `window.PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable()` and `navigator.credentials.create()`.

Steps to Reproduce:
1. Open an app with a WBWebView on an iOS device (this does not reproduce with iOS simulator to my knowledge)
2. Load a site that uses one of these functions, or invoke from the console of the web inspector (isUserVerifyingPlatformAuthenticatorAvailable() is the easier function to use)
    - https://demo.yubico.com/webauthn-technical/registration shows this behavior
3. Observe that a promise is returned by the promise is never resolved or rejected

Actual Results:
A promise is returned that is never resolved or rejected

Expected Results:
I would expect that these promises either return with false (in the isUserVerifyingPlatformAuthenticatorAvailable case) or are rejected for not being supported in WKWebView.
Comment 1 pascoe@apple.com 2022-05-19 10:57:08 PDT

*** This bug has been marked as a duplicate of bug 237380 ***