Credential Management

navigator.credentials (Baseline Widely available) offers get(), store(), create() and preventSilentAccess(). The get() option picks the credential: password (saved passwords), identity (FedCM "Sign in with..."), otp (SMS codes), all Chromium 4,389 only, or publicKey (passkeys, WebAuthn and Passkeys). mediation is 'silent', 'optional', 'required' or 'conditional'; it replaced the old unmediated: true.

Silent sign-in with a saved password, storing it, and signing outJavaScript
if ('PasswordCredential' in window) {
  const saved = await navigator.credentials.get({ password: true, mediation: 'silent' });
  if (saved) await signIn(saved.id, saved.password);  // returning user skips the form
}
async function onLoginSucceeded(form) {  // inputs use autocomplete="username" / "current-password"
  if (window.PasswordCredential) await navigator.credentials.store(new PasswordCredential(form));
}
logoutButton.onclick = () => navigator.credentials.preventSilentAccess();

Firefox 555 and Safari 10 save the same form through autofill, so the API is an enhancement.