LGTM3

On 4/2/25 10:14 AM, Daniel Bratell wrote:

LGTM2

/Daniel

On 2025-03-31 17:28, Rick Byers wrote:
LGTM1

FWIW I've always considered it a bug that FedCM only supported a single IDP at a time. I know there are complex UX design issues to address and a couple small tweaks in the API. The promise of FedCM always was that it could be a single UI surface that intersected the list of IDPs a site supports with the accounts the user has to help the user select the best choice for them. Thank you for delivering on this promise!

Rick


On Mon, Mar 31, 2025 at 10:57 AM Nicolás Peña <n...@chromium.org> wrote:

    Contact emails

    n...@chromium.org <mailto:n...@chromium.org>


    Explainer

    https://github.com/w3c-fedid/multi-idp/blob/main/README.md


    Specification

    https://github.com/w3c-fedid/FedCM/pull/686
    <https://github.com/w3c-fedid/FedCM/pull/686>


    Summary

    Allows FedCM to show multiple identity providers (IDPs) in the
    same dialog. This provides developers with a convenient way to
    present all supported identity providers to users. We are
    planning to first tackle the simple case of having all providers
    in the same get() call (e.g. allowing more than one entry in the
    existing array) and passive mode.


    We are also removing support for ‘add another account’ in FedCM
    passive mode. This feature allows showing a ‘use another account’
    button alongside other IdP accounts in the chooser. The feature
    is currently unused, and UX conversations have led us to believe
    that supporting this leads to a more complicated flow without
    much benefit. This feature will still work in FedCM active mode.


    Blink component

    Blink>Identity>FedCM
    
<https://issues.chromium.org/issues?q=customfield1222907:%22Blink%3EIdentity%3EFedCM%22>


    TAG review

    https://github.com/w3ctag/design-reviews/issues/803
    <https://github.com/w3ctag/design-reviews/issues/803>


    TAG review status

    Issues addressed


    Origin Trial Name

    FedCM Multiple Identity Providers


    Chromium Trial Name

    FedCmMultipleIdentityProviders


    Origin Trial documentation link

    https://developers.google.com/privacy-sandbox/blog/fedcm-chrome-128-updates
    
<https://developers.google.com/privacy-sandbox/blog/fedcm-chrome-128-updates>


    WebFeature UseCounter name

    kFedCmMultipleIdentityProviders


    Risks

    Interoperability and Compatibility

    This should not have additional interop risks on top of the
    existing FedCM API which is generally supported but not yet
    implemented by Gecko and WebKit.



    Gecko: No signal
    (https://github.com/mozilla/standards-positions/issues/730
    <https://github.com/mozilla/standards-positions/issues/730>) but
    they supported the extension in
    
https://github.com/mozilla/standards-positions/issues/730#issuecomment-1961733855
    
<https://github.com/mozilla/standards-positions/issues/730#issuecomment-1961733855>and
    https://github.com/w3ctag/design-reviews/issues/803#issuecomment-2697735993
    
<https://github.com/w3ctag/design-reviews/issues/803#issuecomment-2697735993>.



    WebKit: Closed Without a Position
    (https://github.com/WebKit/standards-positions/issues/120
    <https://github.com/WebKit/standards-positions/issues/120>) as
    they want to give a holistic review in
    https://github.com/WebKit/standards-positions/issues/309
    <https://github.com/WebKit/standards-positions/issues/309>.


    Web developers: Positive
    (https://github.com/fedidcg/FedCM/issues/319
    <https://github.com/fedidcg/FedCM/issues/319>)


    Other signals:


    Ergonomics

    Using this API will just require expanding the get() to use more
    providers, so it will benefit from the ergonomics of the initial
    FedCM API.



    Activation

    The main activation issue is having to include all IDPs in the
    same get() call, which is tough because IDPs generally are
    independent from each other. That said, solving this problem has
    been proved to be very challenging, and we do have developers who
    can use the single get() call, so we wish to start with the
    simpler version of multi IDP support.



    Security

    The security considerations are similar to those of the single
    IDP case. We do not require users to input usernames and
    passwords for spoofing concerns, and we also have input
    protection to prevent accidental click right after the UI is
    shown. Also, of course one IdP should not learn information from
    another IdP. The token received is passed directly to the RP.



    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?

    N/A. FedCM does not currently work in WebView



    Debuggability

    The debug tools are similar to that of original FedCM: console
    messages and DevTools issues. Seeing FedCM network requests is
    not supported in DevTools but can be achieved via net-export, per
    
https://github.com/w3c-fedid/FedCM/blob/e3e894c212e2b9c976fb9e2df268982bbdf947dd/explorations/debug-network-requests-chrome.md
    
<https://github.com/w3c-fedid/FedCM/blob/e3e894c212e2b9c976fb9e2df268982bbdf947dd/explorations/debug-network-requests-chrome.md>.



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

    No

    As with the initial FedCM, we do not support Android 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-multi-idp?label=experimental&label=master&aligned
    
<https://wpt.fyi/results/fedcm/fedcm-multi-idp?label=experimental&label=master&aligned>


    Flag name on about://flags

    FedCmMultiIdp


    Finch feature name

    FedCmMultipleIdentityProviders


    Requires code in //chrome?

    True


    Tracking bug

    issues.chromium.org/issues/392142260
    <http://issues.chromium.org/issues/392142260>


    Launch bug

    https://launch.corp.google.com/launch/4318007
    <https://launch.corp.google.com/launch/4318007>


    Availability expectation

    Feature is available only in Chromium browsers at first. Possibly
    available in Firefox later on since they have expressed interest
    in shipping FedCM.


    Adoption expectation

    Feature is used by specific partner(s) to provide functionality
    within 12 months of launch in Chrome. May later on be considered
    a best practice for federation in certain scenarios.


    Adoption plan

    We have been running an Origin Trial with our partners which is
    going well so far. We intend to also achieve greater adoption by
    notifying developers interested in FedCM about the availability
    of multiple IDPs at the same time.


    Non-OSS dependencies

    Does the feature depend on any code or APIs outside the Chromium
    open source repository and its open-source dependencies to function?

    No


    Estimated milestones

    Shipping on desktop


    136


    Origin trial desktop first


    128


    Origin trial desktop last


    135


    Origin trial extension 1 end milestone


    135


    DevTrial on desktop


    122


    Shipping on Android


    136



    Anticipated spec changes

    N/A


    Link to entry on the Chrome Platform Status

    https://chromestatus.com/feature/5067784766095360?gate=5297387694718976
    <https://chromestatus.com/feature/5067784766095360?gate=5297387694718976>


    Links to previous Intent discussions

    Intent to Experiment:
    
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/9c4ae5a9-5f36-4421-82c6-07b676ef768cn%40chromium.org
    
<https://groups.google.com/a/chromium.org/d/msgid/blink-dev/9c4ae5a9-5f36-4421-82c6-07b676ef768cn%40chromium.org>

    Intent to Extend Experiment 1:
    
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/eeb64bec-d48b-4479-8f89-c7a4054b906fn%40chromium.org
    
<https://groups.google.com/a/chromium.org/d/msgid/blink-dev/eeb64bec-d48b-4479-8f89-c7a4054b906fn%40chromium.org>


    I will note that we are still waiting on our Origin Trial (OT)
    partners to finish setting up their infrastructure to begin the
    OT testing real users, but they are very excited about the API
    and we have decided to ship this despite not having a lot of
    deployment feedback for the following reasons:

     *

        This API is almost a bugfix, in the sense that it enables
        FedCM to truly shine by allowing the website to request
        multiple IDPs at the same time. We knew we were going to ship
        this extension at some point in the future ever since our
        origin FedCM I2S.

     *

        Firefox is increasingly more interested in implementing
        FedCM, and in their view a minimal viable version requires
        multi-IDP support. Thus, this launch actually makes FedCM
        more cross browser compatible.

     *

        We believe that there are great use cases for FedCM when
        multiple IDPs are involved. Activation is just hard because,
        unlike single-IDP FedCM, there is just nothing like it
        currently. But developers gravitate towards APIs that they
        can already use today, so we believe shipping will help us
        advertise this FedCM extension for the use cases where it can
        be useful. The evidence of demand, while not super direct, is
        still strong in a couple of ways:

         o

            Through our OT: while our partners have not shipped, we
            had a lot of excitement from the dev trials.

         o

            Through future extensions of FedCM which have gathered
            lots of interest, such as IDP registration
            <https://github.com/w3c-fedid/idp-registration>. The
            multi IDP extension is a requirement for this feature,
            and it is a building block or enhances other extensions
            such as lightweight fedcm
            <https://github.com/fedidcg/LightweightFedCM>.


    This intent message was generated by Chrome Platform Status
    <https://chromestatus.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/2b869445-e362-47f9-acb9-61ab63d302e7n%40chromium.org
    
<https://groups.google.com/a/chromium.org/d/msgid/blink-dev/2b869445-e362-47f9-acb9-61ab63d302e7n%40chromium.org?utm_medium=email&utm_source=footer>.

--
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/CAFUtAY-6W%3D7jMvaimb%3D92BRjZqU_qpXvtqSZig%2BX_QDftrSGVw%40mail.gmail.com <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAFUtAY-6W%3D7jMvaimb%3D92BRjZqU_qpXvtqSZig%2BX_QDftrSGVw%40mail.gmail.com?utm_medium=email&utm_source=footer>.
--
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/99036f85-4ad4-4007-9fcc-4ed01f265556%40gmail.com <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/99036f85-4ad4-4007-9fcc-4ed01f265556%40gmail.com?utm_medium=email&utm_source=footer>.

--
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/01b0c8ea-f746-41f4-b360-0a02931cd2cb%40chromium.org.

Reply via email to