diff --git a/dom/webauthn/WebAuthnTransactionParent.cpp b/dom/webauthn/WebAuthnTransactionParent.cpp index 48931846388f..b868694c856a 100644 --- a/dom/webauthn/WebAuthnTransactionParent.cpp +++ b/dom/webauthn/WebAuthnTransactionParent.cpp @@ -25,22 +25,37 @@ mozilla::ipc::IPCResult WebAuthnTransactionParent::RecvRequestRegister( ::mozilla::ipc::AssertIsOnBackgroundThread(); #ifdef XP_WIN - if (WinWebAuthnManager::AreWebAuthNApisAvailable()) { + bool usingTestToken = + StaticPrefs::security_webauth_webauthn_enable_softtoken(); + if (!usingTestToken && WinWebAuthnManager::AreWebAuthNApisAvailable()) { WinWebAuthnManager* mgr = WinWebAuthnManager::Get(); - mgr->Register(this, aTransactionId, aTransactionInfo); + if (mgr) { + mgr->Register(this, aTransactionId, aTransactionInfo); + } return IPC_OK(); } #endif +// Bug 1819414 will reroute requests on Android through WebAuthnController and +// allow us to remove this. +#ifdef MOZ_WIDGET_ANDROID + bool usingTestToken = + StaticPrefs::security_webauth_webauthn_enable_softtoken(); bool androidFido2 = StaticPrefs::security_webauth_webauthn_enable_android_fido2(); - if (!androidFido2) { - WebAuthnController* ctrl = WebAuthnController::Get(); - ctrl->Register(this, aTransactionId, aTransactionInfo); - } else { + if (!usingTestToken && androidFido2) { U2FTokenManager* mgr = U2FTokenManager::Get(); - mgr->Register(this, aTransactionId, aTransactionInfo); + if (mgr) { + mgr->Register(this, aTransactionId, aTransactionInfo); + } + return IPC_OK(); + } +#endif + + WebAuthnController* ctrl = WebAuthnController::Get(); + if (ctrl) { + ctrl->Register(this, aTransactionId, aTransactionInfo); } return IPC_OK(); @@ -52,23 +67,36 @@ mozilla::ipc::IPCResult WebAuthnTransactionParent::RecvRequestSign( ::mozilla::ipc::AssertIsOnBackgroundThread(); #ifdef XP_WIN - if (WinWebAuthnManager::AreWebAuthNApisAvailable()) { + bool usingTestToken = + StaticPrefs::security_webauth_webauthn_enable_softtoken(); + if (!usingTestToken && WinWebAuthnManager::AreWebAuthNApisAvailable()) { WinWebAuthnManager* mgr = WinWebAuthnManager::Get(); - mgr->Sign(this, aTransactionId, aTransactionInfo); + if (mgr) { + mgr->Sign(this, aTransactionId, aTransactionInfo); + } return IPC_OK(); } #endif +// Bug 1819414 will reroute requests on Android through WebAuthnController and +// allow us to remove this. +#ifdef MOZ_WIDGET_ANDROID + bool usingTestToken = + StaticPrefs::security_webauth_webauthn_enable_softtoken(); bool androidFido2 = StaticPrefs::security_webauth_webauthn_enable_android_fido2(); - if (!androidFido2) { - WebAuthnController* ctrl = WebAuthnController::Get(); - ctrl->Sign(this, aTransactionId, aTransactionInfo); - } else { + if (!usingTestToken && androidFido2) { U2FTokenManager* mgr = U2FTokenManager::Get(); - mgr->Sign(this, aTransactionId, aTransactionInfo); + if (mgr) { + mgr->Sign(this, aTransactionId, aTransactionInfo); + } + return IPC_OK(); } +#endif + + WebAuthnController* ctrl = WebAuthnController::Get(); + ctrl->Sign(this, aTransactionId, aTransactionInfo); return IPC_OK(); } @@ -80,22 +108,27 @@ mozilla::ipc::IPCResult WebAuthnTransactionParent::RecvRequestCancel( #ifdef XP_WIN if (WinWebAuthnManager::AreWebAuthNApisAvailable()) { WinWebAuthnManager* mgr = WinWebAuthnManager::Get(); - mgr->Cancel(this, aTransactionId); - return IPC_OK(); + if (mgr) { + mgr->Cancel(this, aTransactionId); + } } + // fall through in case WebAuthnController was used. #endif - // We don't know whether WebAuthnController or U2FTokenManager was used, so - // try cancelling both. - WebAuthnController* ctrl = WebAuthnController::Get(); - if (ctrl) { - ctrl->Cancel(this, aTransactionId); - } - +// Bug 1819414 will reroute requests on Android through WebAuthnController and +// allow us to remove this. +#ifdef MOZ_WIDGET_ANDROID U2FTokenManager* mgr = U2FTokenManager::Get(); if (mgr) { mgr->Cancel(this, aTransactionId); } + // fall through in case WebAuthnController was used. +#endif + + WebAuthnController* ctrl = WebAuthnController::Get(); + if (ctrl) { + ctrl->Cancel(this, aTransactionId); + } return IPC_OK(); } @@ -130,19 +163,24 @@ void WebAuthnTransactionParent::ActorDestroy(ActorDestroyReason aWhy) { if (mgr) { mgr->MaybeClearTransaction(this); } - return; } + // fall through in case WebAuthnController was used. +#endif + +// Bug 1819414 will reroute requests on Android through WebAuthnController and +// allow us to remove this. +#ifdef MOZ_WIDGET_ANDROID + U2FTokenManager* mgr = U2FTokenManager::Get(); + if (mgr) { + mgr->MaybeClearTransaction(this); + } + // fall through in case WebAuthnController was used. #endif WebAuthnController* ctrl = WebAuthnController::Get(); if (ctrl) { ctrl->MaybeClearTransaction(this); } - - U2FTokenManager* mgr = U2FTokenManager::Get(); - if (mgr) { - mgr->MaybeClearTransaction(this); - } } } // namespace mozilla::dom diff --git a/testing/web-platform/meta/webauthn/__dir__.ini b/testing/web-platform/meta/webauthn/__dir__.ini index f46a5a160609..1e33628bf270 100644 --- a/testing/web-platform/meta/webauthn/__dir__.ini +++ b/testing/web-platform/meta/webauthn/__dir__.ini @@ -1,2 +1 @@ -prefs: [security.webauth.webauthn:true, security.webauth.webauthn_enable_softtoken:true, security.webauth.webauthn_enable_android_fido2:false] -disabled: true +prefs: [security.webauth.webauthn:true, security.webauth.webauthn_testing_allow_direct_attestation:true, security.webauth.webauthn_enable_softtoken:true, security.webauth.webauthn_enable_usbtoken:false, security.webauth.webauthn_enable_android_fido2:false] diff --git a/testing/web-platform/meta/webauthn/conditional-mediation.https.html.ini b/testing/web-platform/meta/webauthn/conditional-mediation.https.html.ini new file mode 100644 index 000000000000..9bb1f6ccc276 --- /dev/null +++ b/testing/web-platform/meta/webauthn/conditional-mediation.https.html.ini @@ -0,0 +1,6 @@ +[conditional-mediation.https.html] + [Conditional mediation supported] + expected: FAIL + + [Conditional mediation not supported] + expected: FAIL diff --git a/testing/web-platform/meta/webauthn/createcredential-abort.https.html.ini b/testing/web-platform/meta/webauthn/createcredential-abort.https.html.ini new file mode 100644 index 000000000000..ab1b2545154c --- /dev/null +++ b/testing/web-platform/meta/webauthn/createcredential-abort.https.html.ini @@ -0,0 +1,12 @@ +[createcredential-abort.https.html] + [navigator.credentials.create() after abort reason] + expected: FAIL + + [navigator.credentials.create() before abort reason] + expected: FAIL + + [navigator.credentials.create() after abort reason with Error] + expected: FAIL + + [navigator.credentials.create() before abort reason with Error] + expected: FAIL diff --git a/testing/web-platform/meta/webauthn/createcredential-attachment.https.html.ini b/testing/web-platform/meta/webauthn/createcredential-attachment.https.html.ini new file mode 100644 index 000000000000..431882e60f70 --- /dev/null +++ b/testing/web-platform/meta/webauthn/createcredential-attachment.https.html.ini @@ -0,0 +1,12 @@ +[createcredential-attachment.https.html] + [navigator.credentials.create() with usb authenticator, attachment as cross-platform] + expected: FAIL + + [navigator.credentials.create() with ble authenticator, attachment as cross-platform] + expected: FAIL + + [navigator.credentials.create() with nfc authenticator, attachment as cross-platform] + expected: FAIL + + [navigator.credentials.create() with internal authenticator, attachment as platform] + expected: FAIL diff --git a/testing/web-platform/meta/webauthn/createcredential-badargs-authnrselection.https.html.ini b/testing/web-platform/meta/webauthn/createcredential-badargs-authnrselection.https.html.ini index f5e791f803c2..c13f207410d3 100644 --- a/testing/web-platform/meta/webauthn/createcredential-badargs-authnrselection.https.html.ini +++ b/testing/web-platform/meta/webauthn/createcredential-badargs-authnrselection.https.html.ini @@ -1,7 +1,4 @@ [createcredential-badargs-authnrselection.https.html] - disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1546662 - expected: - TIMEOUT [Bad AuthenticatorSelectionCriteria: authenticatorSelection is empty array] expected: if debug and (os == "win"): FAIL @@ -12,16 +9,6 @@ if debug and (os == "win"): FAIL NOTRUN - [Bad AuthenticatorSelectionCriteria: authenticatorSelection is empty string] - expected: - if debug and (os == "win"): PASS - NOTRUN - - [Bad AuthenticatorSelectionCriteria: authenticatorSelection is string] - expected: - if debug and (os == "win"): PASS - NOTRUN - [Bad AuthenticatorSelectionCriteria: authenticatorSelection attachment is empty string] expected: if debug and (os == "win"): PASS @@ -37,36 +24,23 @@ if debug and (os == "win"): PASS NOTRUN - [Bad AuthenticatorSelectionCriteria: authenticatorSelection attachment platform] - expected: - if debug and (os == "win"): PASS - NOTRUN - - [Bad AuthenticatorSelectionCriteria: authenticatorSelection residentKey true] - expected: - NOTRUN - [Bad AuthenticatorSelectionCriteria: authenticatorSelection residentKey is string] - expected: - NOTRUN + expected: NOTRUN [Bad AuthenticatorSelectionCriteria: authenticatorSelection userVerification empty string] - expected: - NOTRUN + expected: NOTRUN [Bad AuthenticatorSelectionCriteria: authenticatorSelection userVerification empty object] - expected: - NOTRUN + expected: NOTRUN [Bad AuthenticatorSelectionCriteria: authenticatorSelection userVerification bad value] - expected: - NOTRUN + expected: NOTRUN [Bad AuthenticatorSelectionCriteria: authenticatorSelection userVerification null] - expected: - NOTRUN + expected: NOTRUN + + [Bad AuthenticatorSelectionCriteria: authenticatorSelection residentKey true] + expected: FAIL [Bad AuthenticatorSelectionCriteria: authenticatorSelection userVerification required] - expected: - NOTRUN - + expected: FAIL diff --git a/testing/web-platform/meta/webauthn/createcredential-badargs-rp.https.html.ini b/testing/web-platform/meta/webauthn/createcredential-badargs-rp.https.html.ini index 687e8da0c778..629154890bd0 100644 --- a/testing/web-platform/meta/webauthn/createcredential-badargs-rp.https.html.ini +++ b/testing/web-platform/meta/webauthn/createcredential-badargs-rp.https.html.ini @@ -1,7 +1,4 @@ [createcredential-badargs-rp.https.html] - disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1546662 - expected: - TIMEOUT [Bad rp: id is object] expected: FAIL @@ -21,21 +18,13 @@ NOTRUN [Bad rp: icon is object] - expected: - NOTRUN + expected: NOTRUN [Bad rp: icon is null] - expected: - NOTRUN + expected: NOTRUN [Bad rp: icon is empty String] - expected: - NOTRUN + expected: NOTRUN [Bad rp: icon is insecure] - expected: - NOTRUN - - [Bad rp: rp null] - expected: FAIL - + expected: NOTRUN diff --git a/testing/web-platform/meta/webauthn/createcredential-excludecredentials.https.html.ini b/testing/web-platform/meta/webauthn/createcredential-excludecredentials.https.html.ini deleted file mode 100644 index 146e1a5e0795..000000000000 --- a/testing/web-platform/meta/webauthn/createcredential-excludecredentials.https.html.ini +++ /dev/null @@ -1,23 +0,0 @@ -[createcredential-excludecredentials.https.html] - disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1546662 - expected: - TIMEOUT - [excludeCredentials missing] - expected: - if debug and (os == "win"): FAIL - TIMEOUT - - [excludeCredentials empty array] - expected: - if debug and (os == "win"): FAIL - NOTRUN - - [exclude existing credential] - expected: - if debug and (os == "win"): TIMEOUT - NOTRUN - - [exclude random (non-existing) credential] - expected: - NOTRUN - diff --git a/testing/web-platform/meta/webauthn/createcredential-extensions.https.html.ini b/testing/web-platform/meta/webauthn/createcredential-extensions.https.html.ini index 3e7cf42e4192..02daf6f21552 100644 --- a/testing/web-platform/meta/webauthn/createcredential-extensions.https.html.ini +++ b/testing/web-platform/meta/webauthn/createcredential-extensions.https.html.ini @@ -1,7 +1,4 @@ [createcredential-extensions.https.html] - disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1546662 - expected: - TIMEOUT [Bad extensions: extensions is null] expected: if debug and (os == "win"): FAIL @@ -18,30 +15,13 @@ NOTRUN [Bad extensions: malformatted JSON] - expected: - NOTRUN + expected: NOTRUN [Bad extensions: JavaScript object] - expected: - NOTRUN + expected: NOTRUN [Bad extensions: extension ID too long] - expected: - NOTRUN - - [extensions is a nonsensical JSON string] - expected: - NOTRUN - - [empty appid in create request] - expected: - NOTRUN - - [null appid in create request] - expected: - NOTRUN - - [appid in create request] - expected: - NOTRUN + expected: NOTRUN + [navigator.credentials.create() with prf requested but no support in authenticator] + expected: FAIL diff --git a/testing/web-platform/meta/webauthn/createcredential-getpublickey.https.html.ini b/testing/web-platform/meta/webauthn/createcredential-getpublickey.https.html.ini new file mode 100644 index 000000000000..5b48634d2f45 --- /dev/null +++ b/testing/web-platform/meta/webauthn/createcredential-getpublickey.https.html.ini @@ -0,0 +1,3 @@ +[createcredential-getpublickey.https.html] + [WebAuthn getPublicKey] + expected: FAIL diff --git a/testing/web-platform/meta/webauthn/createcredential-large-blob-not-supported.https.html.ini b/testing/web-platform/meta/webauthn/createcredential-large-blob-not-supported.https.html.ini new file mode 100644 index 000000000000..6387bd821d6b --- /dev/null +++ b/testing/web-platform/meta/webauthn/createcredential-large-blob-not-supported.https.html.ini @@ -0,0 +1,15 @@ +[createcredential-large-blob-not-supported.https.html] + [navigator.credentials.create() with largeBlob.write set] + expected: FAIL + + [navigator.credentials.create() with largeBlob.read set] + expected: FAIL + + [navigator.credentials.create() with largeBlob.support set to preferred and not supported by authenticator] + expected: FAIL + + [navigator.credentials.create() with largeBlob.support not set and not supported by authenticator] + expected: FAIL + + [navigator.credentials.create() with largeBlob.support set to required and not supported by authenticator] + expected: FAIL diff --git a/testing/web-platform/meta/webauthn/createcredential-large-blob-supported.https.html.ini b/testing/web-platform/meta/webauthn/createcredential-large-blob-supported.https.html.ini new file mode 100644 index 000000000000..7afed098dc4c --- /dev/null +++ b/testing/web-platform/meta/webauthn/createcredential-large-blob-supported.https.html.ini @@ -0,0 +1,9 @@ +[createcredential-large-blob-supported.https.html] + [navigator.credentials.create() with largeBlob.support set to preferred and supported by authenticator] + expected: FAIL + + [navigator.credentials.create() with largeBlob.support not set and supported by authenticator] + expected: FAIL + + [navigator.credentials.create() with largeBlob.support set to required and supported by authenticator] + expected: FAIL diff --git a/testing/web-platform/meta/webauthn/createcredential-minpinlength.https.html.ini b/testing/web-platform/meta/webauthn/createcredential-minpinlength.https.html.ini new file mode 100644 index 000000000000..b6fc698e818c --- /dev/null +++ b/testing/web-platform/meta/webauthn/createcredential-minpinlength.https.html.ini @@ -0,0 +1,3 @@ +[createcredential-minpinlength.https.html] + [navigator.credentials.create() with minPinLength requested] + expected: FAIL diff --git a/testing/web-platform/meta/webauthn/createcredential-passing.https.html.ini b/testing/web-platform/meta/webauthn/createcredential-passing.https.html.ini index 42acd23c2c47..4b2d4a502527 100644 --- a/testing/web-platform/meta/webauthn/createcredential-passing.https.html.ini +++ b/testing/web-platform/meta/webauthn/createcredential-passing.https.html.ini @@ -1,158 +1,19 @@ [createcredential-passing.https.html] - disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1546662 - expected: TIMEOUT [WebAuthn credential.create() Passing Tests] expected: TIMEOUT - [passing credentials.create() with default arguments] - expected: - if debug and (os == "win"): FAIL - TIMEOUT - [passing credentials.create() with rpId (host and port)] expected: if debug and (os == "win"): FAIL NOTRUN - [passing credentials.create() with rpId (hostname)] - expected: - if debug and (os == "win"): FAIL - NOTRUN - [passing credentials.create() without rp.icon] expected: if debug and (os == "win"): TIMEOUT NOTRUN - [very short user id] - expected: - NOTRUN - - [max length user id] - expected: - NOTRUN - - [Uint8Array user id] - expected: - NOTRUN - - [Int8Array user id] - expected: - NOTRUN - - [Int16Array user id] - expected: - NOTRUN - - [Int32Array user id] - expected: - NOTRUN - - [Float32Array user id] - expected: - NOTRUN - - [DataView user id] - expected: - NOTRUN - [passing credentials.create() without user.icon] - expected: - NOTRUN - - [Int16Array challenge] - expected: - NOTRUN - - [Int32Array challenge] - expected: - NOTRUN - - [Float32Array challenge] - expected: - NOTRUN - - [Float64Array challenge] - expected: - NOTRUN - - [DataView challenge] - expected: - NOTRUN - - [Absurdly large challenge] - expected: - NOTRUN + expected: NOTRUN [Bad pubKeyCredParams: pubKeyCredParams is empty Array] - expected: - NOTRUN - - [EC256 pubKeyCredParams] - expected: - NOTRUN - - [SelectEC256 pubKeyCredParams from a list] - expected: - NOTRUN - - [passing credentials.create() with no timeout] - expected: - NOTRUN - - [authenticatorSelection is undefined] - expected: - NOTRUN - - [authenticatorSelection is empty object] - expected: - NOTRUN - - [authenticatorSelection default values] - expected: - NOTRUN - - [authenticatorSelection attachment undefined] - expected: - NOTRUN - - [authenticatorSelection residentKey undefined] - expected: - NOTRUN - - [authenticatorSelection residentKey false] - expected: - NOTRUN - - [authenticatorSelection userVerification undefined] - expected: - NOTRUN - - [authenticatorSelection userVerification discouraged] - expected: - NOTRUN - - [attestation parameter: attestation is "none"] - expected: - NOTRUN - - [attestation parameter: attestation is "indirect"] - expected: - NOTRUN - - [attestation parameter: attestation is "direct"] - expected: - NOTRUN - - [attestation parameter: attestation is undefined] expected: NOTRUN - - [extensions undefined] - expected: NOTRUN - - [extensions are empty object] - expected: NOTRUN - - [extensions are dict of empty strings] - expected: NOTRUN - diff --git a/testing/web-platform/meta/webauthn/createcredential-prf.https.html.ini b/testing/web-platform/meta/webauthn/createcredential-prf.https.html.ini new file mode 100644 index 000000000000..d3af595006a0 --- /dev/null +++ b/testing/web-platform/meta/webauthn/createcredential-prf.https.html.ini @@ -0,0 +1,6 @@ +[createcredential-prf.https.html] + [navigator.credentials.create() with prf requested] + expected: FAIL + + [navigator.credentials.create() with nonsensical evalByCredential] + expected: FAIL diff --git a/testing/web-platform/meta/webauthn/createcredential-pubkeycredparams.https.html.ini b/testing/web-platform/meta/webauthn/createcredential-pubkeycredparams.https.html.ini index 04afecd80771..e53bec4bccde 100644 --- a/testing/web-platform/meta/webauthn/createcredential-pubkeycredparams.https.html.ini +++ b/testing/web-platform/meta/webauthn/createcredential-pubkeycredparams.https.html.ini @@ -1,9 +1,12 @@ [createcredential-pubkeycredparams.https.html] - [Bad pubKeyCredParams: first param has bad alg (0)] - expected: - FAIL + [Bad pubKeyCredParams: first param has bad type ("something-else")] + expected: FAIL - [Bad pubKeyCredParams: first param has bad alg (42)] - expected: - FAIL + [Bad pubKeyCredParams: first param has bad type ("")] + expected: FAIL + [Bad pubKeyCredParams: first param has bad type (null)] + expected: FAIL + + [Bad pubKeyCredParams: first param has bad type (empty object)] + expected: FAIL diff --git a/testing/web-platform/meta/webauthn/createcredential-resident-key.https.html.ini b/testing/web-platform/meta/webauthn/createcredential-resident-key.https.html.ini new file mode 100644 index 000000000000..d9a9e2f53370 --- /dev/null +++ b/testing/web-platform/meta/webauthn/createcredential-resident-key.https.html.ini @@ -0,0 +1,45 @@ +[createcredential-resident-key.https.html] + [U2F: navigator.credentials.create() with credProps extension, rk=discouraged] + expected: FAIL + + [U2F: navigator.credentials.create() with credProps extension, rk=preferred] + expected: FAIL + + [U2F: navigator.credentials.create() with credProps extension, rk=required] + expected: FAIL + + [CTAP 2.0 without resident key support: navigator.credentials.create() with credProps extension, rk=discouraged] + expected: FAIL + + [CTAP 2.0 without resident key support: navigator.credentials.create() with credProps extension, rk=preferred] + expected: FAIL + + [CTAP 2.0 without resident key support: navigator.credentials.create() with credProps extension, rk=required] + expected: FAIL + + [CTAP 2.0 with resident key support: navigator.credentials.create() with credProps extension, rk=discouraged] + expected: FAIL + + [CTAP 2.0 with resident key support: navigator.credentials.create() with credProps extension, rk=preferred] + expected: FAIL + + [CTAP 2.0 with resident key support: navigator.credentials.create() with credProps extension, rk=required] + expected: FAIL + + [CTAP 2.1 without resident key support: navigator.credentials.create() with credProps extension, rk=discouraged] + expected: FAIL + + [CTAP 2.1 without resident key support: navigator.credentials.create() with credProps extension, rk=preferred] + expected: FAIL + + [CTAP 2.1 without resident key support: navigator.credentials.create() with credProps extension, rk=required] + expected: FAIL + + [CTAP 2.1 with resident key support: navigator.credentials.create() with credProps extension, rk=discouraged] + expected: FAIL + + [CTAP 2.1 with resident key support: navigator.credentials.create() with credProps extension, rk=preferred] + expected: FAIL + + [CTAP 2.1 with resident key support: navigator.credentials.create() with credProps extension, rk=required] + expected: FAIL diff --git a/testing/web-platform/meta/webauthn/createcredential-timeout.https.html.ini b/testing/web-platform/meta/webauthn/createcredential-timeout.https.html.ini index 1beedb9d24cc..04cb2aa23afd 100644 --- a/testing/web-platform/meta/webauthn/createcredential-timeout.https.html.ini +++ b/testing/web-platform/meta/webauthn/createcredential-timeout.https.html.ini @@ -1,5 +1,3 @@ [createcredential-timeout.https.html] [ensure create credential times out] - expected: - if os == "android": FAIL - + expected: FAIL diff --git a/testing/web-platform/meta/webauthn/credblob-not-supported.https.html.ini b/testing/web-platform/meta/webauthn/credblob-not-supported.https.html.ini new file mode 100644 index 000000000000..072b94e47a43 --- /dev/null +++ b/testing/web-platform/meta/webauthn/credblob-not-supported.https.html.ini @@ -0,0 +1,3 @@ +[credblob-not-supported.https.html] + [creation requesting credBlob without authenticator support] + expected: FAIL diff --git a/testing/web-platform/meta/webauthn/credblob-supported.https.html.ini b/testing/web-platform/meta/webauthn/credblob-supported.https.html.ini new file mode 100644 index 000000000000..abd350445d0e --- /dev/null +++ b/testing/web-platform/meta/webauthn/credblob-supported.https.html.ini @@ -0,0 +1,6 @@ +[credblob-supported.https.html] + [assertion without credBlob] + expected: FAIL + + [assertion with credBlob] + expected: FAIL diff --git a/testing/web-platform/meta/webauthn/getcredential-abort.https.html.ini b/testing/web-platform/meta/webauthn/getcredential-abort.https.html.ini new file mode 100644 index 000000000000..1ea6b6c7318b --- /dev/null +++ b/testing/web-platform/meta/webauthn/getcredential-abort.https.html.ini @@ -0,0 +1,12 @@ +[getcredential-abort.https.html] + [navigator.credentials.get() after abort reason] + expected: FAIL + + [navigator.credentials.get() before abort reason] + expected: FAIL + + [navigator.credentials.get() after abort reason with Error] + expected: FAIL + + [navigator.credentials.get() before abort reason with Error] + expected: FAIL diff --git a/testing/web-platform/meta/webauthn/getcredential-attachment.https.html.ini b/testing/web-platform/meta/webauthn/getcredential-attachment.https.html.ini new file mode 100644 index 000000000000..ee414e284b54 --- /dev/null +++ b/testing/web-platform/meta/webauthn/getcredential-attachment.https.html.ini @@ -0,0 +1,12 @@ +[getcredential-attachment.https.html] + [navigator.credentials.get() with usb authenticator, attachment as cross-platform] + expected: FAIL + + [navigator.credentials.get() with ble authenticator, attachment as cross-platform] + expected: FAIL + + [navigator.credentials.get() with nfc authenticator, attachment as cross-platform] + expected: FAIL + + [navigator.credentials.get() with internal authenticator, attachment as platform] + expected: FAIL diff --git a/testing/web-platform/meta/webauthn/getcredential-badargs-rpid.https.html.ini b/testing/web-platform/meta/webauthn/getcredential-badargs-rpid.https.html.ini deleted file mode 100644 index a3f3ee3508ba..000000000000 --- a/testing/web-platform/meta/webauthn/getcredential-badargs-rpid.https.html.ini +++ /dev/null @@ -1,30 +0,0 @@ -[getcredential-badargs-rpid.https.html] - disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1546662 - expected: - if debug and (os == "win"): OK - TIMEOUT - [Bad rpId: empty string] - expected: - if debug and (os == "win"): FAIL - TIMEOUT - - [Bad rpId: null] - expected: - if debug and (os == "win"): FAIL - NOTRUN - - [Bad rpId: invalid domain (has space)] - expected: - if debug and (os == "win"): FAIL - NOTRUN - - [Bad rpId: invalid domain (starts with dash)] - expected: - if debug and (os == "win"): FAIL - NOTRUN - - [Bad rpId: invalid domain (starts with number)] - expected: - if debug and (os == "win"): FAIL - NOTRUN - diff --git a/testing/web-platform/meta/webauthn/getcredential-badargs-userverification.https.html.ini b/testing/web-platform/meta/webauthn/getcredential-badargs-userverification.https.html.ini index 18cb887b1519..5449c72722f7 100644 --- a/testing/web-platform/meta/webauthn/getcredential-badargs-userverification.https.html.ini +++ b/testing/web-platform/meta/webauthn/getcredential-badargs-userverification.https.html.ini @@ -1,8 +1,4 @@ [getcredential-badargs-userverification.https.html] - disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1546662 - expected: - if debug and (os == "win"): OK - TIMEOUT [Bad userVerification: empty string] expected: if debug and (os == "win"): FAIL @@ -24,7 +20,4 @@ NOTRUN [Bad userVerification: "required"] - expected: - if debug and (os == "win"): FAIL - NOTRUN - + expected: FAIL diff --git a/testing/web-platform/meta/webauthn/getcredential-extensions.https.html.ini b/testing/web-platform/meta/webauthn/getcredential-extensions.https.html.ini index 399f6fd218fa..d8281b857260 100644 --- a/testing/web-platform/meta/webauthn/getcredential-extensions.https.html.ini +++ b/testing/web-platform/meta/webauthn/getcredential-extensions.https.html.ini @@ -1,13 +1,4 @@ [getcredential-extensions.https.html] - disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1546662 - expected: - if debug and (os == "win"): OK - TIMEOUT - [Bad extensions: extensions is string] - expected: - if debug and (os == "win"): FAIL - TIMEOUT - [Bad extensions: extensions is null] expected: if debug and (os == "win"): FAIL @@ -43,3 +34,11 @@ if debug and (os == "win"): FAIL NOTRUN + [credProps is only supported at registration] + expected: FAIL + + [Payment extension is only supported at registration] + expected: FAIL + + [navigator.credentials.get() with prf requested but no support in authenticator] + expected: FAIL diff --git a/testing/web-platform/meta/webauthn/getcredential-large-blob-not-supported.https.html.ini b/testing/web-platform/meta/webauthn/getcredential-large-blob-not-supported.https.html.ini new file mode 100644 index 000000000000..58cd455c8103 --- /dev/null +++ b/testing/web-platform/meta/webauthn/getcredential-large-blob-not-supported.https.html.ini @@ -0,0 +1,12 @@ +[getcredential-large-blob-not-supported.https.html] + [navigator.credentials.get() with largeBlob.support set] + expected: FAIL + + [navigator.credentials.get() with largeBlob.read and largeBlob.write set] + expected: FAIL + + [navigator.credentials.get() with largeBlob.read set without authenticator support] + expected: FAIL + + [navigator.credentials.get() with largeBlob.write set without authenticator support] + expected: FAIL diff --git a/testing/web-platform/meta/webauthn/getcredential-large-blob-supported.https.html.ini b/testing/web-platform/meta/webauthn/getcredential-large-blob-supported.https.html.ini new file mode 100644 index 000000000000..8a349cf4f175 --- /dev/null +++ b/testing/web-platform/meta/webauthn/getcredential-large-blob-supported.https.html.ini @@ -0,0 +1,6 @@ +[getcredential-large-blob-supported.https.html] + [navigator.credentials.get() with largeBlob.read set with no blob on authenticator] + expected: FAIL + + [navigator.credentials.get() read and write blob] + expected: FAIL diff --git a/testing/web-platform/meta/webauthn/getcredential-passing.https.html.ini b/testing/web-platform/meta/webauthn/getcredential-passing.https.html.ini index 6151e9bb2198..95e0cb7d6a9c 100644 --- a/testing/web-platform/meta/webauthn/getcredential-passing.https.html.ini +++ b/testing/web-platform/meta/webauthn/getcredential-passing.https.html.ini @@ -1,65 +1,10 @@ [getcredential-passing.https.html] - disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1546662 - expected: - if debug and (os == "win"): OK - TIMEOUT - [passing credentials.get() with default args] - expected: - if debug and (os == "win"): FAIL - TIMEOUT - - [passing credentials.create() with no timeout] - expected: - if debug and (os == "win"): FAIL - NOTRUN - - [rpId undefined] - expected: - if debug and (os == "win"): FAIL - NOTRUN - [passing credentials.get() with rpId (host and port)] expected: if debug and (os == "win"): FAIL NOTRUN - [passing credentials.get() with rpId (hostname)] - expected: - if debug and (os == "win"): FAIL - NOTRUN - [no credential specified] expected: if debug and (os == "win"): FAIL NOTRUN - - [authenticatorSelection userVerification undefined] - expected: - if debug and (os == "win"): FAIL - NOTRUN - - [authenticatorSelection userVerification preferred] - expected: - if debug and (os == "win"): FAIL - NOTRUN - - [authenticatorSelection userVerification discouraged] - expected: - if debug and (os == "win"): FAIL - NOTRUN - - [extensions undefined] - expected: - if debug and (os == "win"): FAIL - NOTRUN - - [extensions are empty object] - expected: - if debug and (os == "win"): FAIL - NOTRUN - - [extensions are dict of empty strings] - expected: - if debug and (os == "win"): FAIL - NOTRUN - diff --git a/testing/web-platform/meta/webauthn/getcredential-prf.https.html.ini b/testing/web-platform/meta/webauthn/getcredential-prf.https.html.ini new file mode 100644 index 000000000000..e6e5c2c66a6a --- /dev/null +++ b/testing/web-platform/meta/webauthn/getcredential-prf.https.html.ini @@ -0,0 +1,27 @@ +[getcredential-prf.https.html] + [navigator.credentials.get() with single evaluation point] + expected: FAIL + + [navigator.credentials.get() with two equal evaluation points] + expected: FAIL + + [navigator.credentials.get() with two distinct evaluation points] + expected: FAIL + + [navigator.credentials.get() using credential ID with one evaluation point] + expected: FAIL + + [navigator.credentials.get() using credential ID with two evaluation points] + expected: FAIL + + [navigator.credentials.get() with credential ID not in allowedCredentials] + expected: FAIL + + [navigator.credentials.get() with Uint8Array credential ID not in allowedCredentials] + expected: FAIL + + [navigator.credentials.get() using invalid base64url credential ID] + expected: FAIL + + [navigator.credentials.get() with an empty allow list but also using evalByCredential] + expected: FAIL diff --git a/testing/web-platform/meta/webauthn/getcredential-rk-passing.https.html.ini b/testing/web-platform/meta/webauthn/getcredential-rk-passing.https.html.ini index 108b5a0dd7e5..aac6b36826e8 100644 --- a/testing/web-platform/meta/webauthn/getcredential-rk-passing.https.html.ini +++ b/testing/web-platform/meta/webauthn/getcredential-rk-passing.https.html.ini @@ -1,19 +1,7 @@ [getcredential-rk-passing.https.html] - expected: - if not debug and (os == "linux"): TIMEOUT - if not debug and (os == "win"): TIMEOUT - [empty allowCredentials] - expected: - if ccov and (os == "win"): FAIL - if not debug and (os == "linux"): TIMEOUT - if not debug and (os == "win"): TIMEOUT - FAIL - [undefined allowCredentials] expected: if ccov and (os == "win"): FAIL - if not debug and (os == "linux"): NOTRUN - if not debug and (os == "win"): NOTRUN - if not debug and (os == "mac"): ["NOTRUN", "FAIL"] - FAIL - + if not debug and (os == "linux"): FAIL + if not debug and (os == "win"): FAIL + if not debug and (os == "mac"): [NOTRUN, FAIL] diff --git a/testing/web-platform/meta/webauthn/getcredential-timeout.https.html.ini b/testing/web-platform/meta/webauthn/getcredential-timeout.https.html.ini index 2caae81c9010..28098d40c9b9 100644 --- a/testing/web-platform/meta/webauthn/getcredential-timeout.https.html.ini +++ b/testing/web-platform/meta/webauthn/getcredential-timeout.https.html.ini @@ -1,10 +1,8 @@ [getcredential-timeout.https.html] - disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1546662 - expected: - if debug and (os == "win"): OK - TIMEOUT [ensure create credential times out] expected: if debug and (os == "win"): FAIL TIMEOUT + [WebAuthn navigator.credentials.get() timeout Tests] + expected: FAIL diff --git a/testing/web-platform/meta/webauthn/public-key-credential-to-json.https.window.js.ini b/testing/web-platform/meta/webauthn/public-key-credential-to-json.https.window.js.ini new file mode 100644 index 000000000000..8e853b92c722 --- /dev/null +++ b/testing/web-platform/meta/webauthn/public-key-credential-to-json.https.window.js.ini @@ -0,0 +1,2 @@ +[public-key-credential-to-json.https.window.html] + expected: ERROR diff --git a/testing/web-platform/meta/webauthn/remote-desktop-client-override.tentative.https.html.ini b/testing/web-platform/meta/webauthn/remote-desktop-client-override.tentative.https.html.ini new file mode 100644 index 000000000000..660c9cf00227 --- /dev/null +++ b/testing/web-platform/meta/webauthn/remote-desktop-client-override.tentative.https.html.ini @@ -0,0 +1,6 @@ +[remote-desktop-client-override.tentative.https.html] + [create() with remoteDesktopClientOverride] + expected: FAIL + + [get() with remoteDesktopClientOverride on an unauthorized site] + expected: FAIL diff --git a/testing/web-platform/meta/webauthn/webauthn-testdriver-basic.https.html.ini b/testing/web-platform/meta/webauthn/webauthn-testdriver-basic.https.html.ini index b922bf878698..55d91ffe9ef6 100644 --- a/testing/web-platform/meta/webauthn/webauthn-testdriver-basic.https.html.ini +++ b/testing/web-platform/meta/webauthn/webauthn-testdriver-basic.https.html.ini @@ -1,22 +1,16 @@ [webauthn-testdriver-basic.https.html] - expected: - if os == "android": OK - TIMEOUT [Get an assertion] expected: if os == "android": PASS - NOTRUN + FAIL [Create a credential] expected: if os == "android": PASS - TIMEOUT + FAIL [Set up the test environment] expected: FAIL [Clean up the test environment] - expected: - if os == "android": FAIL - NOTRUN - + expected: FAIL