demo · v136

Passive-mode "add account" removal

The second half of the v136 feature: passive-mode FedCM (where the chooser shows up without a fresh user gesture) used to surface an "Add account" row that could trigger an IdP popup. That sub-flow was removed because users couldn't tell where the popup came from. Active-mode keeps the row. Switch modes below.

UI mockup. navigator.credentials.get({mediation: "..."}) drives mode.
Real FedCM chooser requires registered IdPs. The chooser layout below mirrors the spec's active/passive mode differences.

FedCM mediation mode:

sign in to news.example

the code

// Passive: chooser may appear without a user gesture (e.g. on page load).
// Active:  requires a button-click gesture; chooser can also offer an
//          "add account" flow that pops out to the IdP.
await navigator.credentials.get({
  mediation: "optional",                 // passive
  identity: { providers: [g, m] },
});
await navigator.credentials.get({
  mediation: "required",                 // active
  identity: { providers: [g, m] },
});

why this angle

The sibling concept demos multi-IdP selection in one get() call. This concept covers the other half of the v136 changes — the removal of the "Add account" affordance in passive mode. The reasoning in the spec PR: when the chooser pops up without a user gesture, an "Add account" row that also opens a popup is doubly confusing — users have no anchor for either UI.

see also