W3C home > Mailing lists > Public > public-media-capture@w3.org > October 2014

Re: Promise slides

From: Jan-Ivar Bruaroey <jib@mozilla.com>
Date: Thu, 02 Oct 2014 10:37:37 -0400
Message-ID: <542D6331.8080808@mozilla.com>
To: Adam Roach <adam@nostrum.com>, "public-media-capture@w3.org" <public-media-capture@w3.org>
On 10/2/14, 10:03 AM, Adam Roach wrote:
> Sorry for falling a bit behind on the issue, but I just want to make 
> sure I understand what's under discussion here. Fundamentally, this 
> looks like a proposal to delay spec publication for a change that can 
> be retrofit with a small handful of lines of code:

Things being easy cuts both ways. Saying things are easy enough to let 
consumers figure it out on their own, yet hard enough to delay the spec 
significantly, seems a precarious balance. Not sure that's possible.

> navigator.oldGum = navigator.getUserMedia ||
>                    navigator.mozGetUserMedia ||
>                    navigator.webkitGetUserMedia;
>
> navigator.getUserMedia =
> function(constraints, successCallback, errorCallback) {
>   return new Promise(function(resolve, reject){
>     try {
>       navigator.oldGum(constraints,
>         function(stream) {
>           resolve(stream);
>           if (successCallback)
>             successCallback(stream);
>         },
>         function(error) {
>           reject(error);
>           if (errorCallback)
>             errorCallback(error);
>         });
>       } catch (error) {
>         reject(error);
>         if (successCallback || errorCallback)
>           throw(error);
>       }
>   });
> };
>
>
> Is that right? Would it make more sense to publish this somewhere so 
> that users interested in promises can use them, while giving the rest 
> of the world a finalized v1 spec?

Ah, "people interested in promises" suggests that promises isn't a 
slam-dunk, that a future for non-promise APIs. Frankly, this is where 
the WebRTC group is behind the times by a year or probably several 
years. I hope to show this and that callback APIs are so broken when it 
comes to error-handling that the world is much better without them 
existing. Giant footguns is what they are.

So I don't think anyone deserves the old callback API, because it is a 
recipe for disaster, and wherever gUM goes now, WebRTC follows, and the 
WebRTC wrapper is more complicated btw. needing wrapping of all returned 
objects like RtpSender etc. We'll be stuck with the callback nonsense 
forever.

So I want to nip this in the bud and get rid of something, not add 
something, and the only time to do *that* is now unfortunately.

.: Jan-Ivar :.

[1] http://lists.w3.org/Archives/Public/public-webrtc/2014Sep/0063.html
Received on Thursday, 2 October 2014 14:38:07 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 21:24:50 UTC