Contact emails

y...@chromium.org, tanzach...@chromium.org, cbiesin...@chromium.org

Explainer

https://github.com/w3c-fedid/active-mode

Specification

Spec PR for the Mode API: https://github.com/w3c-fedid/FedCM/pull/660

Spec PR for the Use Another Account API:
https://github.com/w3c-fedid/FedCM/pull/678

Summary

We intend to ship two new extensions for FedCM to address two issue that
were collectively identified as CR blockers
<https://github.com/w3c-fedid/FedCM/wiki/Status-of-FPWD%E2%80%90identified-Issues>
by
the FedID WG: “A not-yet logged in IDP has no route to success”
<https://github.com/w3c-fedid/active-mode/issues/2> and “Allow signing in
to additional account(s) <https://github.com/w3c-fedid/FedCM/issues/511>”.

To address this issue, we intend to introduce the following extensions to
FedCM:

- Mode: The “active” mode allows websites to call FedCM inside a button
click (e.g. clicking on a “Sign-in to IdP” button), which requires FedCM to
guarantee it will always respond with a visible user interface (as opposed
to in “passive” mode, which doesn’t show any UI when users are logged out).
So, calling the FedCM API in “active mode” takes users to login to the
Identity Provider (IdP) when users are logged-out. Also, because the active
mode is called within an explicit user gesture, the UI is also more
prominent (e.g. centered and modal) compared to the UI from the passive
mode (which doesn’t require a user gesture requirement and can be called on
page load).

- Use Other Account: With this extension, an IdP can allow users to sign in
to other accounts.

In addition, the APIs are solving two related CR blockers
<https://github.com/w3c-fedid/FedCM/wiki/Status-of-FPWD%E2%80%90identified-Issues>
 identified
<https://lists.w3.org/Archives/Public/public-fedid-wg/2024Jul/0006.html> by
the FedID WG.

Feedback from Origin Trial:

We ran the Origin Trial
<https://developer.chrome.com/origintrials/#/view_trial/2288391560657633281>
with
30+ registrants. The feedback we got was positive.

>From the extension’s perspective, this proposal is sufficient
<https://github.com/w3c-fedid/active-mode/issues/2#issuecomment-2341644914> to
assist the users who are not signed in to their IdP when FedCM extension is
invoked. We also renamed the extension from “button” mode to “active” mode
to untie from certain UI affordances which was well received
<https://github.com/w3c-fedid/FedCM/pull/660#issuecomment-2414525421> by
partners as well.

>From UX’s perspective, we have been iterating on the Chrome implementation
based on feedback to address potential usability issues and provide users
better context about their login.

Blink component

Blink>Identity>FedCM
<https://bugs.chromium.org/p/chromium/issues/list?q=component:Blink%3EIdentity%3EFedCM>

Search tags

fedcm <https://chromestatus.com/features#tags:fedcm>

TAG review

https://github.com/w3ctag/design-reviews/issues/935

TAG review status

Pending

Chromium Trial Name

FedCmButtonMode, FedCmUseOtherAccount

Origin Trial documentation link

https://developers.google.com/privacy-sandbox/blog/fedcm-chrome-125-updates#button-mode-api

WebFeature UseCounter name

kFedCmButtonMode, kFedCmUseOtherAccount

Risks
Interoperability and Compatibility

Gecko: Not filing a standards position request for small additions at the
explicit request from Firefox (they prefer PRs). Positive on the “active”
mode based on TPAC discussions and GitHub issues
<https://github.com/w3c-fedid/active-mode/issues/2#issuecomment-2341644914>
.

WebKit: No signal on the particular FedCM extensions. Positive
<https://github.com/WebKit/standards-positions/issues/309#issuecomment-2008324563>
on
the initial FedCM API. Standards position requests for FedCM extensions
have been merged <https://github.com/WebKit/standards-positions/issues/309> so
not filing a new one.

Web developers: Positive <https://github.com/fedidcg/FedCM/issues/442> These
features are being developed to address existing feedback for the FedCM API.

Other signals: N/A

Activation
Similar to the FedCM API, we deliberately leave the bulk of the work to the
IdP to ensure that minimal RP change is needed.

This feature, specifically, is one that can be currently controlled by JS
SDKs, so we expect activation to have a similar profile as FedCM:
immediately enabled to websites (without redeployment) by IdPs making use
of it (by redeploying their JS SDKs).

Security

The active mode shares all of the security properties from the passive
mode. e.g. honoring CSP, CORS, using security headers, not asking users to
type in the browser UI etc.

It’s worth noting that the pop-up window has the same web platform
properties as what one would get with
window.open(url,””,”popup,noopener,noreferrer”)) that loads the login_url.
There's no communication between the website and this pop-up is allowed
(e.g. no postMessage, no window.opener).

WebView application risks

Does this intent deprecate or change behavior of existing APIs, such that
it has potentially high risk for Android WebView-based applications?

None

Debuggability

Same as FedCM in general – console messages in devtools and general JS
debugging. e.g. we show messages when transient activation is missing when
invoking an active mode, or when a passive flow is terminated in favor of
an active flow etc.

Will this feature be supported on all six Blink platforms (Windows, Mac,
Linux, ChromeOS, Android, and Android WebView)?

No, FedCM API is not available in WebView

Is this feature fully tested by web-platform-tests
<https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md>
?

Yes
<https://wpt.fyi/results/fedcm/fedcm-button-and-other-account?label=master&label=experimental&aligned&q=fedcm%2Ffedcm-button-and-other-account%2F>

Flag name on chrome://flags

FedCmButtonMode, FedCmUseOtherAccount

Finch feature name

FedCmButtonMode, FedCmUseOtherAccount

Requires code in //chrome?

True

Tracking bug

https://crbug.com/1490588, https://crbug.com/40939658

Launch bug

https://launch.corp.google.com/launch/4348674

Sample links

https://fedcm-button.glitch.me

Estimated milestones

Shipping on desktop

132

Origin trial desktop first

125

Origin trial desktop last

133

Origin trial extension 1 end milestone

130

Origin trial extension 2 end milestone

133

DevTrial on desktop

124

Shipping on Android

132

Origin trial Android first

128

Origin trial Android last

133

DevTrial on Android

125


Anticipated spec changes

Open questions about a feature may be a source of future web compat or
interop issues. Please list open issues (e.g. links to known github issues
in the project for the feature specification) whose resolution may
introduce web compat/interop risk (e.g., changing to naming or structure of
the API in a non-backward-compatible way).

None

Link to entry on the Chrome Platform Status

https://chromestatus.com/feature/4689551782313984?gate=4942283999019008

Links to previous Intent discussions

Intent to Prototype:
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CACh2XCPzJ1beiSbsmQqvu9x24zmf6LkGuup%3DgPVyXEx%2Bux9%3Dyg%40mail.gmail.com

Intent to Experiment:
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/1745ebe7-6c98-49c7-9d98-94b25d39b409n%40chromium.org

Intent to Extend Experiment 1:
https://groups.google.com/a/chromium.org/g/blink-dev/c/bQqXXv2S9q0/m/yHvhuFL3AQAJ
Intent to Extend Experiment 2:
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CACh2XCMPQ9s2hUR2UYuTTkRDra0qfjxBXA0bOme2baQGbPE6NA%40mail.gmail.com

-- 
You received this message because you are subscribed to the Google Groups 
"blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to blink-dev+unsubscr...@chromium.org.
To view this discussion visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAK9HhFkgmbC_UG8G5yYguB609UZY%3DV66qrJrVor3PdStbadY6g%40mail.gmail.com.

Reply via email to