Bug 1551342 - Update U2F, WebAuthn, and CredMan tests for Android r=keeler
authorJ.C. Jones <jjones@mozilla.com>
Wed, 15 May 2019 21:34:58 +0000
changeset 535886 d9a6ddf122884cf34e3fc650d2b21a4ab5076124
parent 535885 be2fb503011adec5a8d387f2bc531e13fab0fd8e
child 535887 f60174a073074838ef9142cd11cd4395aed7b5df
push id2082
push userffxbld-merge
push dateMon, 01 Jul 2019 08:34:18 +0000
treeherdermozilla-release@2fb19d0466d2 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewerskeeler
bugs1551342
milestone68.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1551342 - Update U2F, WebAuthn, and CredMan tests for Android r=keeler The new Android functionality can conflict with the tests' expected behavior, so it should be generally disabled, like the Rust module. Differential Revision: https://phabricator.services.mozilla.com/D31266
dom/credentialmanagement/tests/mochitest/test_credman_iframes.html
dom/u2f/tests/browser/browser_abort_visibility.js
dom/u2f/tests/browser/browser_appid_localhost.js
dom/u2f/tests/test_appid_facet.html
dom/u2f/tests/test_appid_facet_insecure.html
dom/u2f/tests/test_appid_facet_subdomain.html
dom/u2f/tests/test_multiple_keys.html
dom/u2f/tests/test_no_token.html
dom/u2f/tests/test_override_request.html
dom/u2f/tests/test_register.html
dom/u2f/tests/test_register_sign.html
dom/webauthn/tests/browser/browser_abort_visibility.js
dom/webauthn/tests/browser/browser_fido_appid_extension.js
dom/webauthn/tests/browser/browser_webauthn_prompts.js
dom/webauthn/tests/browser/browser_webauthn_telemetry.js
dom/webauthn/tests/test_webauthn_abort_signal.html
dom/webauthn/tests/test_webauthn_attestation_conveyance.html
dom/webauthn/tests/test_webauthn_authenticator_selection.html
dom/webauthn/tests/test_webauthn_authenticator_transports.html
dom/webauthn/tests/test_webauthn_get_assertion.html
dom/webauthn/tests/test_webauthn_isexternalctap2securitykeysupported.html
dom/webauthn/tests/test_webauthn_isplatformauthenticatoravailable.html
dom/webauthn/tests/test_webauthn_loopback.html
dom/webauthn/tests/test_webauthn_make_credential.html
dom/webauthn/tests/test_webauthn_no_token.html
dom/webauthn/tests/test_webauthn_override_request.html
dom/webauthn/tests/test_webauthn_sameorigin.html
dom/webauthn/tests/test_webauthn_store_credential.html
--- a/dom/credentialmanagement/tests/mochitest/test_credman_iframes.html
+++ b/dom/credentialmanagement/tests/mochitest/test_credman_iframes.html
@@ -40,17 +40,18 @@ function handleEventMessage(event) {
   } else {
     ok(false, "Unexpected message in the test harness: " + event.data);
   }
 }
 
 window.addEventListener("message", handleEventMessage);
 SpecialPowers.pushPrefEnv({"set": [["security.webauth.webauthn", true],
                                    ["security.webauth.webauthn_enable_softtoken", true],
-                                   ["security.webauth.webauthn_enable_usbtoken", false]]},
+                                   ["security.webauth.webauthn_enable_usbtoken", false],
+                                   ["security.webauth.webauthn_enable_android_fido2", false]]},
 function() {
   document.getElementById("frame_top").src = "https://example.com/tests/dom/credentialmanagement/tests/mochitest/frame_credman_iframes.html";
 
   document.getElementById("frame_bottom").src = "https://test1.example.com/tests/dom/credentialmanagement/tests/mochitest/frame_credman_iframes.html";
 });
 </script>
 </body>
 </html>
--- a/dom/u2f/tests/browser/browser_abort_visibility.js
+++ b/dom/u2f/tests/browser/browser_abort_visibility.js
@@ -65,16 +65,17 @@ function startGetAssertionRequest(tab) {
 
 // Test that MakeCredential() and GetAssertion() requests
 // are aborted when the current tab loses its focus.
 add_task(async function test_abort() {
   // Enable the USB token.
   Services.prefs.setBoolPref("security.webauth.u2f", true);
   Services.prefs.setBoolPref("security.webauth.webauthn_enable_softtoken", false);
   Services.prefs.setBoolPref("security.webauth.webauthn_enable_usbtoken", true);
+  Services.prefs.setBoolPref("security.webauth.webauthn_enable_android_fido2", false);
 
   // Create a new tab for the MakeCredential() request.
   let tab_create = await BrowserTestUtils.openNewForegroundTab(gBrowser, TEST_URL);
 
   // Start the request.
   await startMakeCredentialRequest(tab_create);
   await assertStatus(tab_create, "pending");
 
--- a/dom/u2f/tests/browser/browser_appid_localhost.js
+++ b/dom/u2f/tests/browser/browser_appid_localhost.js
@@ -20,16 +20,17 @@ function promiseU2FRegister(tab, app_id)
 
 add_task(async function () {
   // By default, proxies don't apply to localhost. We need them to for this test, though:
   await SpecialPowers.pushPrefEnv({set: [["network.proxy.allow_hijacking_localhost", true],]});
   // Enable the soft token.
   Services.prefs.setBoolPref("security.webauth.u2f", true);
   Services.prefs.setBoolPref("security.webauth.webauthn_enable_softtoken", true);
   Services.prefs.setBoolPref("security.webauth.webauthn_enable_usbtoken", false);
+  Services.prefs.setBoolPref("security.webauth.webauthn_enable_android_fido2", false);
 
   // Open a new tab.
   let tab = await BrowserTestUtils.openNewForegroundTab(gBrowser, TEST_URL);
 
   // Check that we have the right origin, and U2F is available.
   let ready = await ContentTask.spawn(tab.linkedBrowser, null, async () => {
     return content.location.origin == "https://localhost" && content.u2f;
   });
--- a/dom/u2f/tests/test_appid_facet.html
+++ b/dom/u2f/tests/test_appid_facet.html
@@ -28,16 +28,17 @@
 "use strict";
 
 SimpleTest.waitForExplicitFinish();
 
 // listen for messages from the test harness
 window.addEventListener("message", handleEventMessage);
 SpecialPowers.pushPrefEnv({"set": [["security.webauth.u2f", true],
                                    ["security.webauth.webauthn_enable_softtoken", true],
+                                   ["security.webauth.webauthn_enable_android_fido2", false],
                                    ["security.webauth.webauthn_enable_usbtoken", false]]},
   function(){
     document.getElementById('testing_frame').src = "https://example.com/tests/dom/u2f/tests/frame_appid_facet.html";
   });
 
 </script>
 </body>
 </html>
--- a/dom/u2f/tests/test_appid_facet_insecure.html
+++ b/dom/u2f/tests/test_appid_facet_insecure.html
@@ -28,16 +28,17 @@
 "use strict";
 
 SimpleTest.waitForExplicitFinish();
 
 // listen for messages from the test harness
 window.addEventListener("message", handleEventMessage);
 SpecialPowers.pushPrefEnv({"set": [["security.webauth.u2f", true],
                                    ["security.webauth.webauthn_enable_softtoken", true],
+                                   ["security.webauth.webauthn_enable_android_fido2", false],
                                    ["security.webauth.webauthn_enable_usbtoken", false]]},
   function(){
     document.getElementById('testing_frame').src = "http://test2.example.com/tests/dom/u2f/tests/frame_appid_facet_insecure.html";
   });
 
 </script>
 </body>
 </html>
--- a/dom/u2f/tests/test_appid_facet_subdomain.html
+++ b/dom/u2f/tests/test_appid_facet_subdomain.html
@@ -28,16 +28,17 @@
 "use strict";
 
 SimpleTest.waitForExplicitFinish();
 
 // listen for messages from the test harness
 window.addEventListener("message", handleEventMessage);
 SpecialPowers.pushPrefEnv({"set": [["security.webauth.u2f", true],
                                    ["security.webauth.webauthn_enable_softtoken", true],
+                                   ["security.webauth.webauthn_enable_android_fido2", false],
                                    ["security.webauth.webauthn_enable_usbtoken", false]]},
   function(){
     document.getElementById('testing_frame').src = "https://test1.example.com/tests/dom/u2f/tests/frame_appid_facet_subdomain.html";
   });
 
 </script>
 
 </body>
--- a/dom/u2f/tests/test_multiple_keys.html
+++ b/dom/u2f/tests/test_multiple_keys.html
@@ -28,16 +28,17 @@
 "use strict";
 
 SimpleTest.waitForExplicitFinish();
 
 // listen for messages from the test harness
 window.addEventListener("message", handleEventMessage);
 SpecialPowers.pushPrefEnv({"set": [["security.webauth.u2f", true],
                                    ["security.webauth.webauthn_enable_softtoken", true],
+                                   ["security.webauth.webauthn_enable_android_fido2", false],
                                    ["security.webauth.webauthn_enable_usbtoken", false]]},
   function(){
     document.getElementById('testing_frame').src = "https://test2.example.com/tests/dom/u2f/tests/frame_multiple_keys.html";
   });
 
 
 </script>
 
--- a/dom/u2f/tests/test_no_token.html
+++ b/dom/u2f/tests/test_no_token.html
@@ -26,16 +26,17 @@
 
 <script class="testbody" type="text/javascript">
 "use strict";
 
 SimpleTest.waitForExplicitFinish();
 
 SpecialPowers.pushPrefEnv({"set": [["security.webauth.u2f", true],
                                    ["security.webauth.webauthn_enable_softtoken", false],
+                                   ["security.webauth.webauthn_enable_android_fido2", false],
                                    ["security.webauth.webauthn_enable_usbtoken", false]]},
 function() {
   // listen for messages from the test harness
   window.addEventListener("message", handleEventMessage);
   document.getElementById('testing_frame').src = "https://test1.example.com/tests/dom/u2f/tests/frame_no_token.html";
 });
 
 </script>
--- a/dom/u2f/tests/test_override_request.html
+++ b/dom/u2f/tests/test_override_request.html
@@ -18,16 +18,17 @@
     "use strict";
 
     SimpleTest.waitForExplicitFinish();
 
     // Enable USB tokens.
     SpecialPowers.pushPrefEnv({"set": [
       ["security.webauth.u2f", true],
       ["security.webauth.webauthn_enable_softtoken", false],
+      ["security.webauth.webauthn_enable_android_fido2", false],
       ["security.webauth.webauthn_enable_usbtoken", true],
     ]}, () => {
       addEventListener("message", handleEventMessage);
       document.getElementById("testing_frame").src = "https://example.com/tests/dom/u2f/tests/frame_override_request.html";
     });
   </script>
 
 </body>
--- a/dom/u2f/tests/test_register.html
+++ b/dom/u2f/tests/test_register.html
@@ -26,16 +26,17 @@
 
 <script class="testbody" type="text/javascript">
 "use strict";
 
 SimpleTest.waitForExplicitFinish();
 
 SpecialPowers.pushPrefEnv({"set": [["security.webauth.u2f", true],
                                    ["security.webauth.webauthn_enable_softtoken", true],
+                                   ["security.webauth.webauthn_enable_android_fido2", false],
                                    ["security.webauth.webauthn_enable_usbtoken", false]]},
 function() {
   // listen for messages from the test harness
   window.addEventListener("message", handleEventMessage);
   document.getElementById('testing_frame').src = "https://example.com/tests/dom/u2f/tests/frame_register.html";
 });
 </script>
 
--- a/dom/u2f/tests/test_register_sign.html
+++ b/dom/u2f/tests/test_register_sign.html
@@ -22,16 +22,17 @@
 
 <script class="testbody" type="text/javascript">
 "use strict";
 
 SimpleTest.waitForExplicitFinish();
 
 SpecialPowers.pushPrefEnv({"set": [["security.webauth.u2f", true],
                                    ["security.webauth.webauthn_enable_softtoken", true],
+                                   ["security.webauth.webauthn_enable_android_fido2", false],
                                    ["security.webauth.webauthn_enable_usbtoken", false]]},
 function() {
   // listen for messages from the test harness
   window.addEventListener("message", handleEventMessage);
   document.getElementById('testing_frame').src = "https://example.com/tests/dom/u2f/tests/frame_register_sign.html";
 });
 </script>
 
--- a/dom/webauthn/tests/browser/browser_abort_visibility.js
+++ b/dom/webauthn/tests/browser/browser_abort_visibility.js
@@ -81,16 +81,17 @@ function startGetAssertionRequest(tab) {
   });
 }
 
 add_task(async function test_setup() {
   await SpecialPowers.pushPrefEnv({
     "set": [
       ["security.webauth.webauthn", true],
       ["security.webauth.webauthn_enable_softtoken", false],
+      ["security.webauth.webauthn_enable_android_fido2", false],
       ["security.webauth.webauthn_enable_usbtoken", true]
     ]
   });
 });
 
 // Test that MakeCredential() and GetAssertion() requests
 // are aborted when the current tab loses its focus.
 add_task(async function test_switch_tab() {
--- a/dom/webauthn/tests/browser/browser_fido_appid_extension.js
+++ b/dom/webauthn/tests/browser/browser_fido_appid_extension.js
@@ -88,16 +88,17 @@ function promiseWebAuthnSign(tab, key_ha
           };
         })
     });
 }
 
 add_task(function test_setup() {
   Services.prefs.setBoolPref("security.webauth.u2f", true);
   Services.prefs.setBoolPref("security.webauth.webauthn", true);
+  Services.prefs.setBoolPref("security.webauth.webauthn_enable_android_fido2", false);
   Services.prefs.setBoolPref("security.webauth.webauthn_enable_softtoken", true);
   Services.prefs.setBoolPref("security.webauth.webauthn_enable_usbtoken", false);
 });
 
 add_task(async function test_appid() {
   // Open a new tab.
   let tab = await BrowserTestUtils.openNewForegroundTab(gBrowser, TEST_URL);
 
--- a/dom/webauthn/tests/browser/browser_webauthn_prompts.js
+++ b/dom/webauthn/tests/browser/browser_webauthn_prompts.js
@@ -94,16 +94,17 @@ function promiseWebAuthnSign(tab) {
 }
 
 add_task(async function test_setup_usbtoken() {
   await SpecialPowers.pushPrefEnv({
     "set": [
       ["security.webauth.u2f", false],
       ["security.webauth.webauthn", true],
       ["security.webauth.webauthn_enable_softtoken", false],
+      ["security.webauth.webauthn_enable_android_fido2", false],
       ["security.webauth.webauthn_enable_usbtoken", true]
     ]
   });
 });
 
 add_task(async function test_register() {
   // Open a new tab.
   let tab = await BrowserTestUtils.openNewForegroundTab(gBrowser, TEST_URL);
--- a/dom/webauthn/tests/browser/browser_webauthn_telemetry.js
+++ b/dom/webauthn/tests/browser/browser_webauthn_telemetry.js
@@ -93,16 +93,17 @@ function checkRpIdHash(rpIdHash) {
 add_task(async function test_setup() {
   cleanupTelemetry();
 
   await SpecialPowers.pushPrefEnv({
     "set": [
       ["security.webauth.webauthn", true],
       ["security.webauth.webauthn_enable_softtoken", true],
       ["security.webauth.webauthn_enable_usbtoken", false],
+      ["security.webauth.webauthn_enable_android_fido2", false],
       ["security.webauth.webauthn_testing_allow_direct_attestation", true]
     ]
   });
 });
 
 add_task(async function test() {
   // These tests can't run simultaneously as the preference changes will race.
   // So let's run them sequentially here, but in an async function so we can
--- a/dom/webauthn/tests/test_webauthn_abort_signal.html
+++ b/dom/webauthn/tests/test_webauthn_abort_signal.html
@@ -23,16 +23,17 @@
     }
 
     add_task(() => {
       // Enable USB tokens.
       return SpecialPowers.pushPrefEnv({"set": [
         ["security.webauth.webauthn", true],
         ["security.webauth.webauthn_enable_softtoken", false],
         ["security.webauth.webauthn_enable_usbtoken", true],
+        ["security.webauth.webauthn_enable_android_fido2", false],
       ]});
     });
 
     // Start a new MakeCredential() request.
     function requestMakeCredential(signal) {
       let publicKey = {
         rp: {id: document.domain, name: "none", icon: "none"},
         user: {id: new Uint8Array(), name: "none", icon: "none", displayName: "none"},
--- a/dom/webauthn/tests/test_webauthn_attestation_conveyance.html
+++ b/dom/webauthn/tests/test_webauthn_attestation_conveyance.html
@@ -57,16 +57,17 @@
     }
 
     add_task(() => {
       // Enable the softtoken.
       return SpecialPowers.pushPrefEnv({"set": [
         ["security.webauth.webauthn", true],
         ["security.webauth.webauthn_enable_softtoken", true],
         ["security.webauth.webauthn_enable_usbtoken", false],
+        ["security.webauth.webauthn_enable_android_fido2", false],
         ["security.webauth.webauthn_testing_allow_direct_attestation", true],
       ]});
     });
 
     // Start a new MakeCredential() request.
     function requestMakeCredential(attestation) {
       let publicKey = {
         rp: {id: document.domain, name: "none", icon: "none"},
--- a/dom/webauthn/tests/test_webauthn_authenticator_selection.html
+++ b/dom/webauthn/tests/test_webauthn_authenticator_selection.html
@@ -32,16 +32,17 @@
     let gCredential;
 
     add_task(() => {
       // Enable the softtoken.
       return SpecialPowers.pushPrefEnv({"set": [
         ["security.webauth.webauthn", true],
         ["security.webauth.webauthn_enable_softtoken", true],
         ["security.webauth.webauthn_enable_usbtoken", false],
+        ["security.webauth.webauthn_enable_android_fido2", false],
       ]});
     });
 
     // Start a new MakeCredential() request.
     function requestMakeCredential(authenticatorSelection) {
       let publicKey = {
         rp: {id: document.domain, name: "none", icon: "none"},
         user: {id: new Uint8Array(), name: "none", icon: "none", displayName: "none"},
--- a/dom/webauthn/tests/test_webauthn_authenticator_transports.html
+++ b/dom/webauthn/tests/test_webauthn_authenticator_transports.html
@@ -35,16 +35,17 @@
     let gCredential;
 
     add_task(() => {
       // Enable the softtoken.
       return SpecialPowers.pushPrefEnv({"set": [
         ["security.webauth.webauthn", true],
         ["security.webauth.webauthn_enable_softtoken", true],
         ["security.webauth.webauthn_enable_usbtoken", false],
+        ["security.webauth.webauthn_enable_android_fido2", false],
       ]});
     });
 
     // Start a new MakeCredential() request.
     function requestMakeCredential(excludeCredentials) {
       let publicKey = {
         rp: {id: document.domain, name: "none", icon: "none"},
         user: {id: new Uint8Array(), name: "none", icon: "none", displayName: "none"},
--- a/dom/webauthn/tests/test_webauthn_get_assertion.html
+++ b/dom/webauthn/tests/test_webauthn_get_assertion.html
@@ -57,17 +57,18 @@
     function expectAbortError(aResult) {
       is(aResult.code, DOMException.ABORT_ERR, "Expecting an AbortError");
     }
 
     add_task(() => {
       return SpecialPowers.pushPrefEnv({"set": [
         ["security.webauth.webauthn", true],
         ["security.webauth.webauthn_enable_softtoken", true],
-        ["security.webauth.webauthn_enable_usbtoken", false]
+        ["security.webauth.webauthn_enable_usbtoken", false],
+        ["security.webauth.webauthn_enable_android_fido2", false],
       ]});
     });
 
     // Set up a valid credential
     add_task(async () => {
       let publicKey = {
         rp: {id: document.domain, name: "none", icon: "none"},
         user: {id: new Uint8Array(), name: "none", icon: "none", displayName: "none"},
--- a/dom/webauthn/tests/test_webauthn_isexternalctap2securitykeysupported.html
+++ b/dom/webauthn/tests/test_webauthn_isexternalctap2securitykeysupported.html
@@ -18,17 +18,19 @@
 <script class="testbody" type="text/javascript">
 "use strict";
 
 // Execute the full-scope test
 SimpleTest.waitForExplicitFinish();
 
 SpecialPowers.pushPrefEnv({"set": [["security.webauth.webauthn", true],
                                    ["security.webauth.webauthn_enable_softtoken", true],
-                                   ["security.webauth.webauthn_enable_usbtoken", false]]},
+                                   ["security.webauth.webauthn_enable_usbtoken", false],
+                                   ["security.webauth.webauthn_enable_android_fido2", false],
+                                  ]},
 function() {
   PublicKeyCredential.isExternalCTAP2SecurityKeySupported()
   .then(aResult => ok(true, `Should always return either true or false: ${aResult}`))
   .catch(aProblem => ok(false, `We shouldn't get here: ${aProblem}`))
   .then(() => SimpleTest.finish());
 });
 
 </script>
--- a/dom/webauthn/tests/test_webauthn_isplatformauthenticatoravailable.html
+++ b/dom/webauthn/tests/test_webauthn_isplatformauthenticatoravailable.html
@@ -18,17 +18,19 @@
 <script class="testbody" type="text/javascript">
 "use strict";
 
 // Execute the full-scope test
 SimpleTest.waitForExplicitFinish();
 
 SpecialPowers.pushPrefEnv({"set": [["security.webauth.webauthn", true],
                                    ["security.webauth.webauthn_enable_softtoken", true],
-                                   ["security.webauth.webauthn_enable_usbtoken", false]]},
+                                   ["security.webauth.webauthn_enable_usbtoken", false],
+                                   ["security.webauth.webauthn_enable_android_fido2", false],
+                                  ]},
 async function() {
   // This test ensures that isUserVerifyingPlatformAuthenticatorAvailable()
   // is a callable method, but with the softtoken enabled, it's not useful to
   // figure out what it actually returns, so we'll just make sure it runs.
   await PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable()
   .then(function(aResult) {
     ok(true, "Resolved: " + aResult);
   })
--- a/dom/webauthn/tests/test_webauthn_loopback.html
+++ b/dom/webauthn/tests/test_webauthn_loopback.html
@@ -20,16 +20,17 @@
 "use strict";
 
 // Execute the full-scope test
 SimpleTest.waitForExplicitFinish();
 
 SpecialPowers.pushPrefEnv({"set": [["security.webauth.webauthn", true],
                                    ["security.webauth.webauthn_enable_softtoken", true],
                                    ["security.webauth.webauthn_enable_usbtoken", false],
+                                   ["security.webauth.webauthn_enable_android_fido2", false],
                                    ["security.webauth.webauthn_testing_allow_direct_attestation", true]]},
 function() {
   is(navigator.authentication, undefined, "navigator.authentication does not exist any longer");
   isnot(navigator.credentials, undefined, "Credential Management API endpoint must exist");
   isnot(navigator.credentials.create, undefined, "CredentialManagement create API endpoint must exist");
   isnot(navigator.credentials.get, undefined, "CredentialManagement get API endpoint must exist");
 
   let credm = navigator.credentials;
--- a/dom/webauthn/tests/test_webauthn_make_credential.html
+++ b/dom/webauthn/tests/test_webauthn_make_credential.html
@@ -43,16 +43,17 @@
 
     function expectNotSupportedError(aResult) {
       ok(aResult.toString().startsWith("NotSupportedError"), "Expecting a NotSupportedError");
       return Promise.resolve();
     }
 
     SpecialPowers.pushPrefEnv({"set": [["security.webauth.webauthn", true],
                                        ["security.webauth.webauthn_enable_softtoken", true],
+                                       ["security.webauth.webauthn_enable_android_fido2", false],
                                        ["security.webauth.webauthn_enable_usbtoken", false]]}, runTests);
     function runTests() {
       is(navigator.authentication, undefined, "navigator.authentication does not exist any longer");
       isnot(navigator.credentials, undefined, "Credential Management API endpoint must exist");
       isnot(navigator.credentials.create, undefined, "CredentialManagement create API endpoint must exist");
       isnot(navigator.credentials.get, undefined, "CredentialManagement get API endpoint must exist");
 
       let credm = navigator.credentials;
--- a/dom/webauthn/tests/test_webauthn_no_token.html
+++ b/dom/webauthn/tests/test_webauthn_no_token.html
@@ -19,16 +19,17 @@
 "use strict";
 
 // Execute the full-scope test
 SimpleTest.waitForExplicitFinish();
 
 // Turn off all tokens. This should result in "not allowed" failures
 SpecialPowers.pushPrefEnv({"set": [["security.webauth.webauthn", true],
                                    ["security.webauth.webauthn_enable_softtoken", false],
+                                   ["security.webauth.webauthn_enable_android_fido2", false],
                                    ["security.webauth.webauthn_enable_usbtoken", false]]},
 function() {
   is(navigator.authentication, undefined, "navigator.authentication does not exist any longer");
   isnot(navigator.credentials, undefined, "Credential Management API endpoint must exist");
   isnot(navigator.credentials.create, undefined, "CredentialManagement create API endpoint must exist");
   isnot(navigator.credentials.get, undefined, "CredentialManagement get API endpoint must exist");
 
   let credm = navigator.credentials;
--- a/dom/webauthn/tests/test_webauthn_override_request.html
+++ b/dom/webauthn/tests/test_webauthn_override_request.html
@@ -17,16 +17,17 @@
     // Last request status.
     let status = "";
 
     add_task(() => {
       // Enable USB tokens.
       return SpecialPowers.pushPrefEnv({"set": [
         ["security.webauth.webauthn", true],
         ["security.webauth.webauthn_enable_softtoken", false],
+        ["security.webauth.webauthn_enable_android_fido2", false],
         ["security.webauth.webauthn_enable_usbtoken", true],
       ]});
     });
 
     // Start a new MakeCredential() request.
     async function requestMakeCredential(status_value) {
       let publicKey = {
         rp: {id: document.domain, name: "none", icon: "none"},
--- a/dom/webauthn/tests/test_webauthn_sameorigin.html
+++ b/dom/webauthn/tests/test_webauthn_sameorigin.html
@@ -294,15 +294,16 @@
         console.log(i, testFuncs[i], testFuncs.length);
         testFuncs[i]().then(() => { runNextTest(); });
         i = i + 1;
       };
       runNextTest();
     };
     SpecialPowers.pushPrefEnv({"set": [["security.webauth.webauthn", true],
                                        ["security.webauth.webauthn_enable_softtoken", true],
+                                       ["security.webauth.webauthn_enable_android_fido2", false],
                                        ["security.webauth.webauthn_enable_usbtoken", false]]},
                               runTests);
 
   </script>
 
 </body>
 </html>
--- a/dom/webauthn/tests/test_webauthn_store_credential.html
+++ b/dom/webauthn/tests/test_webauthn_store_credential.html
@@ -21,16 +21,17 @@
     function expectNotSupportedError(aResult) {
       ok(aResult.toString().startsWith("NotSupportedError"), "Expecting a NotSupportedError, received: " + aResult);
       return Promise.resolve();
     }
 
     add_task(async function(){
       await SpecialPowers.pushPrefEnv({"set": [["security.webauth.webauthn", true],
                                    ["security.webauth.webauthn_enable_softtoken", true],
+                                   ["security.webauth.webauthn_enable_android_fido2", false],
                                    ["security.webauth.webauthn_enable_usbtoken", false]]});
 
       isnot(navigator.credentials, undefined, "Credential Management API endpoint must exist");
       isnot(navigator.credentials.create, undefined, "CredentialManagement create API endpoint must exist");
       isnot(navigator.credentials.get, undefined, "CredentialManagement get API endpoint must exist");
       isnot(navigator.credentials.store, undefined, "CredentialManagement store API endpoint must exist");
 
       let credentialChallenge = new Uint8Array(16);