Skip to content

v0.2.0 — FedCM (federated one-tap sign-in)

Choose a tag to compare

@acunningham-ship-it acunningham-ship-it released this 05 Jul 14:20

Agents get walled out of Google-SSO apps because "Sign in with Google" one-tap and navigator.credentials.get({identity}) render their account chooser as native browser UI — the button is a cross-origin IdP iframe and the chooser is browser chrome, so no synthetic click can reach either. Veil now drives it over CDP's FedCM domain.

New — FedCM

  • Page: enableFedCm({autoSelectFirst}), waitForFedCmDialog(), selectFedCmAccount(), dismissFedCm(), disableFedCm(), and a one-call signInWithFedCm({triggerRef}).
  • MCP: veil_fedcm_enable + veil_fedcm_signin (10 tools total).
  • Verified end-to-end (headless, exit 0) against the canonical Chrome FedCM demo IdP/RP — run it: bun run examples/fedcm.ts.

Three things that are easy to get wrong and are handled for you:

  • Enable on demand, never at startup — any site that silently probes FedCM at load hangs if interception is on and nothing resolves the probe.
  • Selection is bound to the page's own CDP session — the dialogShown event drops the sessionId, and selecting on the wrong target leaves the dialog (and the page's credentials.get()) hanging forever.
  • resetCooldown on enable — Chrome suppresses the dialog after repeated dismissals.

Also

  • Fix: page.close() RAM leak (Target.closeTarget + CDP handler cleanup).

Full Changelog: v0.1.0...v0.2.0