test_credman_iframes.html (2700B)
1 <!DOCTYPE html> 2 <head> 3 <title>Credential Management: Prohibit use in cross-origin iframes</title> 4 <script src="/tests/SimpleTest/SimpleTest.js"></script> 5 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" /> 6 <meta charset=utf-8> 7 </head> 8 <body> 9 <h1>Credential Management: Prohibit use in cross-origin iframes</h1> 10 <ul> 11 <li><a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1407789">Mozilla Bug 1407789</a></li> 12 </ul> 13 14 <div id="framediv"> 15 <h2>Same Origin Test</h2> 16 <iframe id="frame_top"></iframe> 17 18 <h2>Cross-Origin Test</h2> 19 <iframe id="frame_bottom"></iframe> 20 </div> 21 22 <script class="testbody" type="text/javascript"> 23 "use strict"; 24 25 var _countCompletes = 0; 26 var _expectedCompletes = 2; // 2 iframes 27 28 var _done = new Promise((resolve) => { 29 function handleEventMessage(event) { 30 if ("test" in event.data) { 31 let summary = event.data.test + ": " + event.data.msg; 32 ok(event.data.status, summary); 33 } else if ("done" in event.data) { 34 _countCompletes += 1; 35 if (_countCompletes == _expectedCompletes) { 36 console.log("Test compeleted. Finished."); 37 resolve(); 38 } 39 } else { 40 ok(false, "Unexpected message in the test harness: " + event.data); 41 } 42 } 43 44 window.addEventListener("message", handleEventMessage); 45 }); 46 47 async function addVirtualAuthenticator() { 48 let id = await SpecialPowers.spawnChrome([], () => { 49 let webauthnService = Cc["@mozilla.org/webauthn/service;1"].getService( 50 Ci.nsIWebAuthnService 51 ); 52 return webauthnService.addVirtualAuthenticator( 53 "ctap2", 54 "internal", 55 true, 56 true, 57 true, 58 true 59 ); 60 }); 61 62 SimpleTest.registerCleanupFunction(async () => { 63 await SpecialPowers.spawnChrome([id], (authenticatorId) => { 64 let webauthnService = Cc["@mozilla.org/webauthn/service;1"].getService( 65 Ci.nsIWebAuthnService 66 ); 67 webauthnService.removeVirtualAuthenticator(authenticatorId); 68 }); 69 }); 70 } 71 72 add_task(async () => { 73 await SpecialPowers.pushPrefEnv({"set": [["security.webauth.webauthn", true], 74 ["security.webauth.webauthn_enable_softtoken", true], 75 ["security.webauth.webauthn_enable_usbtoken", false]]}); 76 await addVirtualAuthenticator(); 77 }); 78 79 add_task(async () => { 80 document.getElementById("frame_top").src = "https://example.com/tests/dom/credentialmanagement/tests/mochitest/frame_credman_iframes.html"; 81 82 document.getElementById("frame_bottom").src = "https://test1.example.com/tests/dom/credentialmanagement/tests/mochitest/frame_credman_iframes.html"; 83 84 await _done; 85 }); 86 </script> 87 </body> 88 </html>