Either m104 or m105. (The Origin Trial is approved until m104, inclusive.) On Mon, May 2, 2022 at 7:46 PM Joe Medley <jmed...@google.com> wrote:
> When do you intend to ship this? 103? > Joe Medley | Technical Writer, Chrome DevRel | jmed...@google.com | > 816-678-7195 <(816)%20678-7195> > *If an API's not documented it doesn't exist.* > > > On Mon, May 2, 2022 at 7:55 AM Chris Harrelson <chris...@chromium.org> > wrote: > >> LGTM3 >> >> On Mon, May 2, 2022 at 6:50 AM Mike Taylor <miketa...@chromium.org> >> wrote: >> >>> LGTM2 >>> >>> On 5/2/22 7:15 AM, Yoav Weiss wrote: >>> >>> LGTM1 >>> >>> Thanks for initiating those discussions. My read of the minutes is that >>> they consider the async approach to be fine, and don't arbitrate on the >>> naming questions, other than saying that none of the proposals seem better >>> than where this API has landed. (and some may add confusion) >>> As such it seems that going with the API as currently defined doesn't >>> bear significant interoperability risk. >>> >>> >>> >>> On Mon, May 2, 2022 at 1:03 PM Elad Alon <elada...@google.com> wrote: >>> >>>> The discussions around Region Capture have been brought up with TAG >>>> again (after their original approval >>>> <https://github.com/w3ctag/design-reviews/issues/710#issuecomment-1055212077> >>>> of the design). Here are the minutes from that second meeting: >>>> >>>> https://github.com/w3ctag/meetings/blob/gh-pages/2022/telcons/04-25-minutes.md#media-capture-region >>>> >>>> On Wednesday, April 20, 2022 at 6:33:52 PM UTC+2 yoav...@chromium.org >>>> wrote: >>>> >>>>> Just to (belatedly) update this thread: Following a discussion with >>>>> the API owners and the intent owner a few weeks back, they are planning to >>>>> try and get more folks to weigh in on the open issues, and hopefully break >>>>> the tie. >>>>> >>>>> On Wednesday, March 23, 2022 at 6:28:30 PM UTC+1 Elad Alon wrote: >>>>> >>>>>> It may be better to ask actual web developers regarding the least >>>>>>> confusing option amongst those proposed. >>>>>> >>>>>> >>>>>> The Web-developers I am in contact with are happiest with CropTarget. >>>>>> One of them has mentioned that on issue #18 >>>>>> <https://github.com/w3c/mediacapture-region/issues/18>. >>>>>> Other Web-developers have not shown up with a preference one way or >>>>>> another. >>>>>> >>>>>> It bears mentioning that we have been discussing the API in the >>>>>> WebRTC Working Group for approximately 14 >>>>>> <https://docs.google.com/presentation/d/1crumgYj4eHkjo04faLktPTg0QoYJhTFoosEBudfJBuw/edit#slide=id.g7954c29f8a_2_0> >>>>>> months >>>>>> <https://docs.google.com/presentation/d/1crumgYj4eHkjo04faLktPTg0QoYJhTFoosEBudfJBuw/edit#slide=id.g7954c29f8a_2_0>. >>>>>> The initial name for this part of the API was CropID. It was changed >>>>>> <https://github.com/w3c/mediacapture-region/commit/a60b62cb8946d2c6f79de57ff54bb8cd2a0b8550> >>>>>> to >>>>>> CropTarget ~4 months ago, following discussions in the WG. Youenn filed >>>>>> issue >>>>>> #18 <https://github.com/w3c/mediacapture-region/issues/18> ~2 months >>>>>> ago. During those two months, no WG member, browser-implementer or >>>>>> Web-developer voiced concerns about the "CropTarget" name. Youenn has >>>>>> made >>>>>> several suggestions (Viewport, LayoutBox). I believe I have addressed >>>>>> these >>>>>> suggestions. I do not think there is interest in the WG for changing the >>>>>> name. I think the name CropTarget will end up sticking, and not produce a >>>>>> compat risk. >>>>>> >>>>>> Sync vs. async cropTarget creation seems like something you'd want to >>>>>>> decide on before shipping. >>>>>> >>>>>> >>>>>> It is something we have tried reaching consensus on. But I am not >>>>>> observing convergence. I proposed the following: >>>>>> >>>>>> - For Chrome, it is important to use a Promise<CropTarget>. >>>>>> - For any browser that does not feel a Promise is necessary, they >>>>>> can immediately return a pre-resolved Promise<CropTarget>. >>>>>> - Web-developers would be virtually unaffected by the addition of >>>>>> a Promise even - for the sake of argument - if it isn't strictly >>>>>> necessary. >>>>>> (I still think it is necessary.) >>>>>> >>>>>> You mentioned on the thread that the browser can refuse to mint new >>>>>>> cropTargets in some cases. What happens then? Is it specified? How are >>>>>>> developers supposed to defensively program their API use against that? >>>>>> >>>>>> >>>>>> Failure to mint additional tokens happens if excessive tokens are >>>>>> minted. (Defends against memory-overuse in the browser process.) >>>>>> Failure is reflected by a Promise being rejected rather than >>>>>> fulfilled - which is an established pattern and well-understood by >>>>>> Web-developers. >>>>>> >>>>>> >>>>>> If minting couldn't fail, then (naively) writing the >>>>>>> process/origin<->token mapping in the browser process could've been done >>>>>>> async, while the creation of the token could be sync. >>>>>> >>>>>> >>>>>> That is an interesting alternative; thank you for suggesting it. I >>>>>> have given it thought, and I see some issues with it. To start with, an >>>>>> application could be given a "dead" token. Such a token will never be >>>>>> useful, but the application would not be able detect that until it calls >>>>>> cropTo(token), and that call fails. Then, this failure would only be >>>>>> detected by inspecting the error returned by cropTo(). But note that >>>>>> often, >>>>>> produceCropTarget() and cropTo() are called by different documents, so >>>>>> now >>>>>> we even need to postMessage() back a message that "your call to >>>>>> produceCropTarget didn't really work, you have a dead token." >>>>>> >>>>>> So, if minting itself fails, that's preferable in two ways: >>>>>> >>>>>> 1. The failure is recognized closer to the actual point of >>>>>> failure. (And detected by the concerned entity.) >>>>>> 2. The application might even wish to *forego calling >>>>>> getDisplayMedia()* if it knows it's got a bad token (or rather - >>>>>> no token). >>>>>> 3. The application is *not* left holding a "dead" token. Instead, >>>>>> it holds a rejected Promise<CropTarget> - an established pattern for >>>>>> failed >>>>>> async-construction. >>>>>> 4. If the conditions that caused minting to fail change, then >>>>>> it's clear that calling produceCropTarget() again might work. >>>>>> (Whereas a >>>>>> dead token raises a question - is it *now* OK to use, or should we >>>>>> produce >>>>>> a new non-dead token?) >>>>>> >>>>>> Does that make sense? >>>>>> >>>>>> This seems mostly like a developer ergonomics question. As such, (and >>>>>>> like above) a signal from web developers could go a long way to break >>>>>>> the >>>>>>> tie. >>>>>> >>>>>> >>>>>> One of my partners from Google Slides has commented >>>>>> <https://github.com/w3c/mediacapture-region/issues/11#issuecomment-1076543965> >>>>>> as >>>>>> much. She prefers the approach we took - MediaDevices.produceCropTarget. >>>>>> (No Web-developers have mentioned a preference for the other approach - >>>>>> Element.produceCropTarget.) >>>>>> >>>>>> On Wed, Mar 23, 2022 at 7:01 AM Yoav Weiss <yoav...@chromium.org> >>>>>> wrote: >>>>>> >>>>>>> >>>>>>> >>>>>>> On Monday, March 21, 2022 at 9:15:21 PM UTC+1 Elad Alon wrote: >>>>>>> >>>>>>>> P.S: Requesting to ship gaplessly. >>>>>>>> >>>>>>>> On Monday, March 21, 2022 at 9:13:30 PM UTC+1 Elad Alon wrote: >>>>>>>> >>>>>>>>> Contact emails elad...@chromium.org, mfo...@chromium.org, >>>>>>>>> jop...@chromium.org >>>>>>>>> >>>>>>>>> Explainer >>>>>>>>> https://github.com/w3c/mediacapture-region/blob/main/README.md >>>>>>>>> >>>>>>>>> Specification https://w3c.github.io/mediacapture-region/ >>>>>>>>> >>>>>>>>> Summary >>>>>>>>> >>>>>>>>> We introduce a performant and robust API for cropping a >>>>>>>>> self-capture video track. (Recall that applications may *already* >>>>>>>>> video-capture the tab in which the application is run using >>>>>>>>> getDisplayMedia(). Using our new Region Capture, such an application >>>>>>>>> may >>>>>>>>> now *crop* that track and remove some content from it; typically >>>>>>>>> before >>>>>>>>> sharing it remotely.) >>>>>>>>> >>>>>>>>> >>>>>>>>> Blink component Blink >>>>>>>>> <https://bugs.chromium.org/p/chromium/issues/list?q=component:Blink> >>>>>>>>> >>>>>>>>> TAG review https://github.com/w3ctag/design-reviews/issues/710 >>>>>>>>> >>>>>>>>> TAG review status Not applicable >>>>>>>>> TAG was positive: "Thank you for bringing this to our attention, >>>>>>>>> and we are happy to see this proposal move forward." >>>>>>>>> They did suggest a change of name (Region Capture -> Tab Region >>>>>>>>> Capture), but that does not affect the API. This proposal to refine >>>>>>>>> the >>>>>>>>> name will be brought up with the WG. >>>>>>>>> >>>>>>>>> Risks >>>>>>>>> >>>>>>>>> Interoperability and Compatibility >>>>>>>>> >>>>>>>>> Remaining open issues with Mozilla and Apple: >>>>>>>>> >>>>>>>> >>>>>>> Thanks for summing up the open issues! :) >>>>>>> >>>>>>>> >>>>>>>>> - The name "CropTarget" - see >>>>>>>>> https://github.com/w3c/mediacapture-region/issues/18. No >>>>>>>>> alternative has yet been presented which garnered more support than >>>>>>>>> "CropTarget". This seems unlikely to change. >>>>>>>>> >>>>>>>>> It may be better to ask actual web developers regarding the least >>>>>>> confusing option amongst those proposed. >>>>>>> In the past I've used Twitter polls and developer surveys for that >>>>>>> purpose. Is this something you considered? >>>>>>> Maybe devrel folks can help on that front. >>>>>>> >>>>>>>> >>>>>>>>> - Whether produceCropTarget should return a >>>>>>>>> Promise<CropTarget> or a CropTarget - see >>>>>>>>> https://github.com/w3c/mediacapture-region/issues/17. In >>>>>>>>> internal discussions we have consensus that returning a Promise is >>>>>>>>> preferrable. However, if the WG settles on returning a CropTarget >>>>>>>>> directly, >>>>>>>>> a migration plan would be needed to ensure Web applications are >>>>>>>>> not broken. >>>>>>>>> This would be easier if such a change is either not made at all, >>>>>>>>> or is made >>>>>>>>> in concert with the next bullet-point. >>>>>>>>> >>>>>>>>> Sync vs. async cropTarget creation seems like something you'd want >>>>>>> to decide on before shipping. You mentioned on the thread that the >>>>>>> browser >>>>>>> can refuse to mint new cropTargets in some cases. What happens then? Is >>>>>>> it >>>>>>> specified? How are developers supposed to defensively program their API >>>>>>> use >>>>>>> against that? >>>>>>> If minting couldn't fail, then (naively) writing the >>>>>>> process/origin<->token mapping in the browser process could've been done >>>>>>> async, while the creation of the token could be sync. >>>>>>> >>>>>>> >>>>>>>>> - API surface of produceCropTarget - see >>>>>>>>> https://github.com/w3c/mediacapture-region/issues/11. We want >>>>>>>>> MediaDevices.produceCropTarget(), whereas Apple wants >>>>>>>>> Element.produceCropTarget or possibly Element.cropTarget(). Should >>>>>>>>> the WG >>>>>>>>> settle on Apple's current preference, migration would be very >>>>>>>>> easy, as we >>>>>>>>> can first expose on the new surface *in addition* and then >>>>>>>>> deprecate the >>>>>>>>> old surface gradually. Moreover, such a migration would actually >>>>>>>>> have the >>>>>>>>> potential of making a (Promise<CropTarget> -> CropTarget) migration >>>>>>>>> simpler, should such a change also be adopted by the WG. >>>>>>>>> >>>>>>>>> This seems mostly like a developer ergonomics question. As such, >>>>>>> (and like above) a signal from web developers could go a long way to >>>>>>> break >>>>>>> the tie. >>>>>>> >>>>>>>> Other topics under discussion mostly deal with changes to >>>>>>>>> spec-language, and will not affect the shipped API. Exception - >>>>>>>>> serializability, but that wouldn't break Web-apps (since it's mostly >>>>>>>>> opaque >>>>>>>>> to the application, which would typically only postMessage the >>>>>>>>> CropTarget >>>>>>>>> and use it on the other side). >>>>>>>>> >>>>>>>>> *Gecko:* No signal ( >>>>>>>>> https://github.com/mozilla/standards-positions/issues/621) See >>>>>>>>> above clarification about remaining open issues under discussion. >>>>>>>>> >>>>>>>>> *WebKit:* No signal ( >>>>>>>>> https://lists.webkit.org/pipermail/webkit-dev/2022-March/032157.html >>>>>>>>> ) See above clarification about remaining open issues under >>>>>>>>> discussion. >>>>>>>>> >>>>>>>>> *Web developers:* Strongly positive This work saw strong support >>>>>>>>> from Web developers inside of Google (Meet, Docs, Slides). >>>>>>>>> >>>>>>>>> Other signals: >>>>>>>>> >>>>>>>>> Ergonomics >>>>>>>>> >>>>>>>>> N/A >>>>>>>>> >>>>>>>>> >>>>>>>>> Activation >>>>>>>>> >>>>>>>>> Unchallenging to use. >>>>>>>>> >>>>>>>>> >>>>>>>>> Security >>>>>>>>> >>>>>>>>> This is a mechanism by which an application purposefully strips >>>>>>>>> away information which it already has access to (via pre-existing >>>>>>>>> mechanisms such as getDisplayMedia). >>>>>>>>> >>>>>>>>> >>>>>>>>> WebView Application Risks >>>>>>>>> >>>>>>>>> N/A >>>>>>>>> >>>>>>>>> >>>>>>>>> Debuggability >>>>>>>>> >>>>>>>>> - >>>>>>>>> >>>>>>>>> Is this feature fully tested by web-platform-tests >>>>>>>>> <https://chromium.googlesource.com/chromium/src/+/master/docs/testing/web_platform_tests.md> >>>>>>>>> ? No >>>>>>>>> >>>>>>>>> Flag name RegionCapture >>>>>>>>> >>>>>>>>> Tracking bug >>>>>>>>> https://bugs.chromium.org/p/chromium/issues/detail?id=1247761 >>>>>>>>> >>>>>>>>> Launch bug >>>>>>>>> https://bugs.chromium.org/p/chromium/issues/detail?id=1168076 >>>>>>>>> >>>>>>>>> Sample links https://w3c.github.io/mediacapture-region/demo/ >>>>>>>>> >>>>>>>>> Estimated milestones >>>>>>>>> OriginTrial desktop last 101 >>>>>>>>> OriginTrial desktop first 98 >>>>>>>>> >>>>>>>>> Link to entry on the Chrome Platform Status >>>>>>>>> https://chromestatus.com/feature/5712447794053120 >>>>>>>>> >>>>>>>>> Links to previous Intent discussions Intent to prototype: >>>>>>>>> https://groups.google.com/a/chromium.org/g/blink-dev/c/dib14W1B0Xc >>>>>>>>> Intent to Experiment: >>>>>>>>> https://groups.google.com/a/chromium.org/g/blink-dev/c/yFUX0KfuUlo >>>>>>>>> Intent to Extend Experiment: >>>>>>>>> https://groups.google.com/a/chromium.org/g/blink-dev/c/ZqndGb9e1wM >>>>>>>>> >>>>>>>>> >>>>>>>>> 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 on the web visit >>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAL5BFfUZueknsW5KhHd0F6-tdSQND_QBCCiD0fyYZ5prGjR2Kw%40mail.gmail.com >>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAL5BFfUZueknsW5KhHd0F6-tdSQND_QBCCiD0fyYZ5prGjR2Kw%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/7dad6c95-c653-a8d7-d50d-69ab16bdf442%40chromium.org >>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/7dad6c95-c653-a8d7-d50d-69ab16bdf442%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 on the web visit >> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAOMQ%2Bw-DxUfEeNT4ffftE-d_k5nBVVF2oLNY8W_GP1bRRWBn7w%40mail.gmail.com >> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAOMQ%2Bw-DxUfEeNT4ffftE-d_k5nBVVF2oLNY8W_GP1bRRWBn7w%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/CAMO6jDP-9L-x3bfM687XWBNke_P65R2YT5YeGbhCZRgHyAfUTQ%40mail.gmail.com.