-
Notifications
You must be signed in to change notification settings - Fork 10
Cropping non-self-capture tracks #63
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
As mentioned during the interim yesterday (2022-06-23), it's incumbent on those who wish to maintain this limitation to explain why it's necessary. Barring a good explanation, we have resolved[1] to remove this limitation in the interim after the next one. One argument mentioned by @jan-ivar[2] during that meeting as well as in the past, was his concern that a captured application might falsely advertise a CropTarget consisting of 0x0 pixels, and the capturer might mindlessly apply this CropTarget, to the detriment of the user. I do not find that concern compelling:
I am looking forward to hearing either counter-counter-arguments or alternative rationales for maintaining the limitation. Barring those, I hope that we can all agree that removing the limitation would be useful; we don't necessarily have to wait two interim meetings for that. CC interested parties as reflected by the active participants of the meeting: @dontcallmedom, @aboba, @alvestrand, @jan-ivar, @youennf, @steely-glint. -- |
I'm building a screen recording PWA that uses |
@DannyMoerkerke how would you like to define what to crop to in the window or screen case? |
Is that different from the tab case? In the app I preview the stream returned from |
In the tab case, we crop to an element of the source page. Read the spec for the considerations (security among them) that led to this design rather than "crop to these coordinates". |
Hello @DannyMoerkerke, as said in https://developer.chrome.com/docs/web-platform/region-capture/#future, we hope to bring improvements to the current state of Region Capture:
|
I disagree with this summary, as no such promises were made. Let's stick to discussing the issue itself here, keep conversation inclusive, and limit comments to new information on the issue topic. Feel free to email chairs with questions about process. My action was to clarify my concerns, which I'll do next. |
Mozilla judges the impact of API changes not just on API users, but on end-users as well. The more sites become involved in what was traditionally a 100% user-controlled power tool ( My concern is about unintentionally enabling self-censoring:
Allowing sites to self-censor may have merit or not, and merits explicit discussion, which we haven't had. Hopefully this isn't controversial. I'd like to separate comprehension of this argument from whether we agree what weight to put on it. This has been an ongoing concern, but I'll explain why I think this particular feature crosses the Rubicon.
Mozilla isn't necessarily opposed to self-censoring, provided users can override it. But step one is acknowledging this risk. Step two for us is, to find ways to mitigate this concern, which for us to support this feature, would require some language around this, e.g.
|
Where your chairman hat is right now? This proposal was supported by (1) yours truly, (2) @steely-glint, (3) @alvestrand and (4) @dontcallmedom. It does not look like it would be necessary to help us build consensus, so I assume you're taking the chairman hat off? |
The app-based solution of not applying CropTargets from unknown sources, or offering app-based overrides to stop cropping, seems perfectly sufficient. I don't see why the user agent should step in and help. Capturing apps can do crazy things like invert pixels, reshuffle them, etc. We don't offer user-overrides for those, nor should we. Nevertheless, if adding that user agents MAY offer overrides builds consensus - let's do it! Quoting your proposed text again:
I don't think it's useful, but I have no desire to block Mozilla from offering that option to its users. Let's add that text. |
Jan-Ivar, the repeated use of the term "censoring" confuses me. This is usually a negatively loaded term, used to describe undesired behavior. I can easily see how this feature could allow non-useful things to happen, but API design is not about preventing stupid things. The sentence "censoring with a cropTarget" sounds far less dangerous if described as "proposing a crop with a cropTarget". I do not understand what the behavior is that is perceived as a risk here - who is at risk, and what is the impact? |
It seems to me we already have this - at both ends. The captured webapp can choose not to create (or transfer) a cropTarget. The capturing webapp can choose not to apply any cropTarget it gets. 'self-censorship' isn't possible - both ends have to collaborate to get the 'censor' effect. |
Why is it impossible for both ends to collaborate to get the 'censor' effect? The end-user is the one browsing the web in a browser, and there's precedent for "undesired behaviors" not aligning between them and sites. E.g. popups and autoplay. Maybe an example would help:
I purposely picked an example with some merit on the side of censoring being desirable to protect users from themselves and scammers. But we also know restraints can get in the way of user choice, which is why most browsers offer choices around popups and autoplay. That's what we're asking for here. |
I appreciate discussions involving a co-chair can be confusing. FWIW I never invoke my chair role without stating it. My rationale for this is we have 3 co-chairs, and weekly co-chair meetings, so chairs speaking as chairs on their own should be rare (and with ⅓ weight anyway). I'll say "For the chairs" if I'm speaking for all chairs, or "with my chair-hat on" if I'm not. |
Jan-Ivar, this message of yours clarifies the scenario that worries you. But I believe all participants were clear on that matter. The issue of unclarity that I believe Harald, Tim and I share, is that the app can expose app-based user-facing controls to stop cropping. (Bonus: App-based user-overrides are equally available on all platforms, and look the same for all users of the app.) So I don't think users would benefit from these browser-based overrides. But I am curious to see what UX Mozilla will implement for them. I hereby volunteer to participate in the beta. Action item: Shall I prepare the PR for removing the self-capture limitation, and you (@jan-ivar) the PR for adding the |
App-based user-facing controls to stop cropping sound great! Do we know if Google Meet is planning to have them? Not all sites will have sufficient incentives to provide such controls however — imagine app-based controls for popups and autoplay — That's where user agents can help. We don't need help on UX though thanks, nor does that need to block the spec. I'd prefer reviewing a single PR adding both changes at once. |
I am not aware of a Meet plan to automatically receive and apply CropTargets, so why would user-facing controls to stop cropping be needed? That's the only case where this concern would be applicable, after all.
Sites are incentivized to keep their users happy by implementing functionality that users deem necessary. Otherwise, users migrate to competing products - as well they should.
I don't think these scenarios are similar to auto-cropping. And let's not forget that auto-cropping is highly-hypothetical. But that doesn't matter, as we've agreed to add
What if we merge your PR, which adds this |
I'm happy with the formulation I provided in #63 (comment). We're both editors tasked with merging what the WG decides, so I'd expect a single PR to close this issue to do the trick. I'm not worried about attribution. Thanks |
Jan-Ivar, please do your own work and sign your own name to it. This You're also welcome to |
Discussion of #63 in June 23 interim: https://www.w3.org/2022/06/23-webrtc-minutes#t06 |
Assume
getDisplayMedia()
is called and the user chooses to capture another tab. The spec currently disallows cropping in such scenarios. But why?With Capture Handle Identity, it is possible for the capturing application to discover that it is capturing a tab with a known application. For example, maybe meet.google.com is capturing docs.google.com. Such same-site applications will be able to communicate with each other using a BroadcastChannel[*], and the capturee can postMessage() a CropTarget to the capturer. Usecases are obvious (see example above). Why should we disallow this?
--
[*] Using the mailman pattern. If the top-level documents are same-site, this communication method will not be blocked by Storage Partitioning.
The text was updated successfully, but these errors were encountered: