- From: Rob Manson <roBman@mob-labs.com>
- Date: Wed, 17 Aug 2011 22:35:47 +1000
- To: Harald Alvestrand <harald@alvestrand.no>, "public-webrtc@w3.org" <public-webrtc@w3.org>
- Cc: Rich Tibbett <richt@opera.com>
I could really see how the complexity of this goal could have created overwhelming complexity...but Rich's solution does seem to kill quite a few birds with one stone. So I think I'd like to flip my position back again 8) > > 2. Require the web app to assign and display the tainted Stream object > > in a <video> element in order for the user to authorize its allowed > > capabilities (in Step 4 below). > Is this synonymous with "let only a Video element have the capability of > untainting a stream"? That's covered in point 4. below isn't it? > > 3. Let the web app to provide a hint to the Stream object (or <video> > > element) for the type of access to the camera it actually requires - a > > list of one or more of the following tokens: 'camera', 'camcorder', > > 'streaming', 'telephony'. > > > > 4. Let the UA present the following <video>-overlaid stream control > > buttons to the user depending on the access hint(s) registered above: > > > > - a 'camera' button > to take a still image capture to generate an > > image file that the web app can register a callback to receive. > > - a 'camcorder' button > to take a video capture to generate a video > > file that the web app can register a callback to receive. > > - a 'streaming' button > to allow the current web page to un-taint > > the Stream object and allow the web app to access that streaming data > > (e.g. via a <canvas> element or an Audio API). Either ON or OFF > > (default). > > - a 'telephony' button > to allow the current web page to then > > assign the Stream object to the P2P communication API without throwing > > e.g. a Security Violation error. Either ON or OFF (default). > > > > 5. On user click of any of the stream control buttons presented, > > enable the inferred functionality, fire a callback to the web app and > > let it continue about it's intended business. > Doesn't this mean that we're back to "click a button to allow access > every time you call"? Well it allows the user to see/hear a preview first before they give approval/click start. So it is an extra click but it's not like it is just a redundant click that's being added. This could really be an improvement in the overall UX. > I kind of like the idea that we use a <video> element with > browser-controlled controls on it for the authorization step (presumably > the app can hide that <video> element after having obtained the > authorization, if he so desires), but I'm fundamentally worried about > "extra click every time you call". Really, an app having the ability to stream video without the user seeing a preview is worse in many ways. And of course it could possibly work in a similar way to the current geolocation API permissions, etc. so that it's not required EVERY time. > > This approach immediately lets the user see that the page is ready to > > do something with their camera without requiring an up-front > > prompt/access authorization. It lets the user get comfortable with the > > fact that the camera is on rather than it happening all at once. It > > lets them adjust their hair before they go live. It presents > > UA-controlled buttons within a <video> element for the user to > > authorize (or not) the requested, targeted usage when they are ready. > > > > FWIW, this discussion is entirely orthogonal to the P2P aspects > > ('streaming' in this email refers to streaming the video to the web > > page, or, untainting the provided Stream object. 'telephony' refers to > > the p2p communication stuff). > > > > I can understand the push-back but I'd be interested for webrtc to > > explore such an approach a little further. Accessing the camera > > without streaming the results to a remote server has > > wide-applicability e.g. AR guides, bar-code scanning web apps, > > camera/snapshot/fx web apps, on-demand a/v recording uploads, personal > > introductions, etc. > It does, and if we can accept "click every time you <scan, photograph, > videotape, .....>" in all those contexts, this might be a general mechanism. +1 to further exploration of this model. roBman
Received on Wednesday, 17 August 2011 12:36:23 UTC