Hi Mustaq,

On 1/25/22 4:45 PM, Mustaq Ahmed wrote:


        Contact emails

mus...@chromium.org, smcgr...@chromium.org


        Explainer

https://github.com/WICG/capability-delegation <https://github.com/WICG/capability-delegation>


        Specification

https://wicg.github.io/capability-delegation/spec.html <https://wicg.github.io/capability-delegation/spec.html>


        Design doc

https://docs.google.com/document/d/1IYN0mVy7yi4Afnm2Y0uda0JH8L2KwLgaBqsMVLMYXtk/edit?usp=sharing <https://docs.google.com/document/d/1IYN0mVy7yi4Afnm2Y0uda0JH8L2KwLgaBqsMVLMYXtk/edit?usp=sharing>


        Summary

Capability delegation means allowing a frame to relinquish its ability to call a restricted API and transfer the ability to another (sub)frame it trusts.

Can you expand more on the relinquishing aspect and how regaining the capability happens? I can't find any normative text in https://wicg.github.io/capability-delegation/spec.html that explains how it happens. Do we look for expired timestamps in DELEGATED_CAPABILITY_TIMESTAMPS["feature"] of all frames? Something else?

(maybe I'm looking in the wrong place!)

If an app wants to delegate its ability to call a restricted JS capability (e.g. popups, fullscreen, etc) to a known+trusted third-party frame, the app would utilize a Capability Delegation API to "transfer" the ability to the target frame in a time-constrained manner (unlike static mechanisms like <iframe allow>attributes).

What happens if the delegation is refused (or fails) by the browser for some reason? As a developer, how do I know that I shouldn't fire off a PaymentRequest that's going to fail? Do we signal anything in the message event, if not, should we?

(From the PaymentRequest side, I guess I can handle the failure if PaymentRequest.show() is rejected.)


        Blink component

Blink>Input <https://bugs.chromium.org/p/chromium/issues/list?q=component:Blink%3EInput>


        TAG review

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


        TAG review status

Approved subject to minor changes.

(Work in progress, see https://github.com/WICG/capability-delegation/pull/23 <https://github.com/WICG/capability-delegation/pull/23>).


        Risks


          Interoperability

Interop risk here like any new API: new use-cases relying on delegation will fail in a browser that hasn't implemented this feature.  In such a browser, the new API (postMessage()call with an additional option) will silently get ignored while preserving the legacy behavior.  More precisely, the postMessage()call will be treated as if it was meant to send the message object only, and the delegated capability will behave in the target Windowas if no delegation has taken place.


          Compatibility

There is no compat risk because this is a new feature.


        External signals


          Gecko:Positive
          (https://github.com/mozilla/standards-positions/issues/565
          <https://github.com/mozilla/standards-positions/issues/565>)


          WebKit:No signal


          Web developers:Positive
          (https://discourse.wicg.io/t/capability-delegation/4821/3
          <https://discourse.wicg.io/t/capability-delegation/4821/3>)


        Debuggability

Developers can test the delegated API by calling it from the console of postMessage-target Window.  Additionally, on the console of the sender Window, navigator.userActivation.isActiveAPI can be utilized to check the consumption of user activation as a side-effect of delegation.


        Ongoing technical constraints

None.


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

Yes


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

Work in progress: https://chromium-review.googlesource.com/c/chromium/src/+/3413851 <https://chromium-review.googlesource.com/c/chromium/src/+/3413851>


        Flag name

--enable-blink-features=CapabilityDelegationPaymentRequest


        Requires code in //chrome?

False


        Tracking bug

https://crbug.com/1130558 <https://crbug.com/1130558>


        Estimated milestone

M100


        Link to entry on the Chrome Platform Status

https://www.chromestatus.com/feature/5708770829139968 <https://www.chromestatus.com/feature/5708770829139968>


        Links to previous Intent discussions

Intent to prototype: https://groups.google.com/a/chromium.org/g/blink-dev/c/9CeLYndESPE/m/AhEttheMBQAJ <https://groups.google.com/a/chromium.org/g/blink-dev/c/9CeLYndESPE/m/AhEttheMBQAJ>

Intent to Experiment: https://groups.google.com/a/chromium.org/g/blink-dev/c/i6pAWsjU7zg/m/UK0lGnKuAAAJ <https://groups.google.com/a/chromium.org/g/blink-dev/c/i6pAWsjU7zg/m/UK0lGnKuAAAJ>




This intent message was generated by Chrome Platform Status <https://www.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 on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAB0cuO7vK4UUEzD%3DwJGnAdyTRxgRrmx7AgfoQjCndi91DF2hGA%40mail.gmail.com <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAB0cuO7vK4UUEzD%3DwJGnAdyTRxgRrmx7AgfoQjCndi91DF2hGA%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 on the web visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/aeb36084-b98e-ba99-755f-c26e2edbf00d%40chromium.org.

Reply via email to