<!DOCTYPE html><metacharset="utf-8"/><title>Credential Management API Test: non-fully active document</title><linkrel="help"href="https://github.com/w3c/webappsec-credential-management"/><scriptsrc="/resources/testharness.js"></script><scriptsrc="/resources/testharnessreport.js"></script><scriptsrc="/resources/testdriver.js"></script><scriptsrc="/resources/testdriver-vendor.js"></script><body><iframe></iframe></body><script>promise_setup(async()=>{constiframe=document.querySelector("iframe");awaitnewPromise((resolve)=>{iframe.addEventListener("load",resolve,{once:true});iframe.src="about:blank";document.body.appendChild(iframe);});});promise_test(async(t)=>{constiframe=document.querySelector("iframe");// The signal check happens after the fully active check.// This allows us to confirm the right error is thrown// and in the right order.constcontroller=newiframe.contentWindow.AbortController();constsignal=controller.signal;controller.abort();// Steal all the needed references.const{credentials}=iframe.contentWindow.navigator;constDOMExceptionCtor=iframe.contentWindow.DOMException;// No longer fully active.iframe.remove();// Try to get credentials while not fully active...awaitpromise_rejects_dom(t,"InvalidStateError",DOMExceptionCtor,credentials.get({signal}),"Expected InvalidStateError for get() on non-fully-active document");// Try to create credentials while not fully active...awaitpromise_rejects_dom(t,"InvalidStateError",DOMExceptionCtor,credentials.create({signal}),"Expected InvalidStateError for create() on non-fully-active document");// Try to prevent silent access while not fully active...awaitpromise_rejects_dom(t,"InvalidStateError",DOMExceptionCtor,credentials.preventSilentAccess(),"Expected InvalidStateError for preventSilentAccess() on non-fully-active document");},"non-fully active document behavior for CredentialsContainer");</script>