LGTM2

On 12/12/22 11:03 PM, Yoav Weiss wrote:
LGTM1

On Mon, Dec 12, 2022 at 8:14 PM Nicolás Peña <[email protected]> wrote:

    I was not aware that Permissions-Policy enables having support for
    just JS or just HTTP header support, but in our case we want to
    ship both, which is the default. I have added a couple of examples
    at the bottom of that explainer.


Thanks for adding those examples! :)


    On Monday, December 12, 2022 at 4:41:49 AM UTC-5 Yoav Weiss wrote:

        On Thu, Dec 8, 2022 at 4:38 PM Nicolás Peña <[email protected]>
        wrote:

            Contact emails

            [email protected]

            Explainer

            
https://github.com/fedidcg/FedCM/blob/main/explorations/iframe_support.md
            
<https://github.com/fedidcg/FedCM/blob/main/explorations/iframe_support.md>



        Would be great to have some more explicit examples in the
        explainer. For example, it's not immediately obvious to me if
        this would support both HTTP header based delegation as well
        as the "allow" attribute on the iframe itself. Would it? Such
        support can have implications on the ergonomics story here.

            Specification

            https://fedidcg.github.io/FedCM/#permissions-policy-integration

            Summary

            Adds support for calling the FedCM API inside cross-origin
            iframes via a permissions policy which sites are opted out
            of by default. It enables websites to sandbox the scripts
            from identity providers which trigger the FedCM API in an
            iframe. We also considered whether this feature could
            support "authenticated embeds" use cases where the iframe
            itself needs a sign-in from the user. While the UI
            currently does not support this scenario, we invite
            requirements and feedback from interested parties. In both
            cases, the parent frame must provide the cross-origin
            iframe with the permissions policy
            'identity-credentials-get'. This also allows top-level
            contexts to opt out of using FedCM through the Permissions
            Policy header.

            Blink component

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

            TAG review

            This is a small addition to FedCM API that uses an
            existing mechanism to give cross-origin iframe control
            (permissions policy), so we do not consider this change to
            be substantive enough to warrant a separate review.
            Previous reviews:
            https://github.com/w3ctag/design-reviews/issues/622
            <https://github.com/w3ctag/design-reviews/issues/622>
            https://github.com/w3ctag/design-reviews/issues/718
            <https://github.com/w3ctag/design-reviews/issues/718>

            TAG review status

            Not applicable

            Risks
            *
            *Interoperability and Compatibility

            This is a small addition to the FedCM API, and as such
            mostly inherits the interop and compatibility risks from
            that API.
            
Seehttps://groups.google.com/a/chromium.org/g/blink-dev/c/URpYPPH-YQ4/m/E9pgS7GEBAAJ
            for the discussion.

            Gecko: Positive for the API in general
            (https://github.com/mozilla/standards-positions/issues/618),
            positive for cross-origin iframe support specifically
            (https://github.com/mozilla/standards-positions/issues/701
            <https://github.com/mozilla/standards-positions/issues/701>)

            WebKit: Positive for the API in general
            
(https://lists.webkit.org/pipermail/webkit-dev/2022-March/032162.html),
            requested signal on cross-origin iframe support
            specifically
            (https://github.com/WebKit/standards-positions/issues/83
            <https://github.com/WebKit/standards-positions/issues/83>)

            Web developers: Positive (we know several sites that use
            cross-origin iframes for authentication of users via
            federation)

            Other signals: -

            Ergonomics

            The main ergonomics risk is that the website must
            explicitly add the permissions policy for the iframe where
            the identity provider invokes FedCM, which breaks the
            FedCM benefit of deploying with no RP change.

            Another issue is having a page where both the main frame
            and some iframes decide to invoke the FedCM API. Because
            we produce a very user visible dialog, we've decided that
            multiple calls within the same page are not allowed,
            i.e.https://bugs.chromium.org/p/chromium/issues/detail?id=1374422.
            In practice, this means that if there were multiple frames
            interested in using FedCM within the same page, then the
            RP needs to ensure that those frames collaborate so that
            they do not try to invoke themselves at the same time, as
            otherwise only one of them will be successful in showing
            the FedCM dialog.

            Activation

            Similar to the baseline FedCM API that this I2S is
            extending from, the bulk of the work is on the identity
            provider to ensure that they call the FedCM API
            appropriately. The added work for the RP in the iframe
            case is the requirement of a permissions policy, but this
            is needed because the FedCM API is very powerful and it's
            not reasonable to automatically grant arbitrary
            cross-origin iframes with the power to invoke it.

            Security

            User annoyance from the dialog is dealt with by the
            requirement of permissions policy. The top-level frame
            needs to explicitly allow any cross-origin iframe to
            invoke the FedCM API. The other security consideration
            here is the accountability for the dialog: what domain do
            we show as the requestor for the FedCM dialog: the
            top-level or the cross-origin iframe? The current status
            is that we always show the top-level domain. We considered
            showing the cross-origin iframe domain in addition to the
            top-level, but we are not currently planning to ship it
            due to lack of concrete demand for it. Note that this is
            consistent with other powerful APIs such as camera and GPS
            access.

            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 as this feature is not available on WebView.

            Debuggability

            Besides regular FedCM support, we show a clear error
            message stating when the API has failed due to missing
            permissions policy.

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

            No

            The current implementation is available on all platforms
            (Windows, Mac, Linux, ChromeOS and Android) except 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/credential-management/fedcm-iframe.https.html?label=master&label=experimental&aligned
            
<https://wpt.fyi/results/credential-management/fedcm-iframe.https.html?label=master&label=experimental&aligned>
            (we’re still working on making tests behave as intended on
            WPT.fyi)

            Flag name

            This can be enabled by going to chrome://flags, and
            setting the FedCM feature to “FedCM (Enabled - with iframe
            support)”

            Requires code in //chrome?

            True

            Tracking bug

            https://bugs.chromium.org/p/chromium/issues/detail?id=1322320

            Launch bug

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

            Sample links

            https://fedcm-main-frame.glitch.me

            Estimated milestones

            Ship 110

            Anticipated spec changes

            The main spec change
            <https://github.com/fedidcg/FedCM/issues/320> that we
            anticipated on the initial FedCM I2S has a good path
            towards being resolved.

            Link to entry on the Chrome Platform Status

            https://chromestatus.com/feature/5162418615877632

            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 [email protected].
            To view this discussion on the web visit
            
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/1231135a-a379-4e4a-80e0-db2cd9f366abn%40chromium.org
            
<https://groups.google.com/a/chromium.org/d/msgid/blink-dev/1231135a-a379-4e4a-80e0-db2cd9f366abn%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 [email protected]. To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAL5BFfWuVf-woOCPEOa9t%2Bx7k29YKix456JKkt6n%3Dm2mm2dxeQ%40mail.gmail.com <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAL5BFfWuVf-woOCPEOa9t%2Bx7k29YKix456JKkt6n%3Dm2mm2dxeQ%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 [email protected].
To view this discussion on the web visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/68eb3591-b9c1-5634-2002-6396558d5a0d%40chromium.org.

Reply via email to