Re: Why ignoring unknown mandatory constraints is not stupid

On Thu, Nov 14, 2013 at 6:36 PM, Jan-Ivar Bruaroey <jib@mozilla.com> wrote:
> Someone mentioned that constraints are about needs and wants. I love that,
> because it's as descriptive of the application as it is prescriptive of the
> browser and its user (unlike those other unilateral terms).
>
> It's getUserMedia(), not getBrowserMedia(). The browser negotiates between
> the app and the user, not the app and the machine.
>
> But enough hippie stuff...
>
> WHICH WAY GIVES YOU ACCESS TO THE USER'S NOSEBLEED5000 3D CAMERA MOST OFTEN?
>
> A) getUserMedia({ mandatory: { 3D: true } }, success, fail);-> Firefox 28:
> ConstraintNotSatisfiedError
> Firefox 29: 3D
>
> B) getUserMedia({ optional: [{ 3D: true }]}, success, fail); -> Firefox 28:
> something
>      Firefox 29: 3D
>
> It's B, because the user wants this to work, and will try to pick the right
> camera when his browser and/or camera driver are clueless.
>
> Reaction card (check one):
>
>   [  ] But he may pick the wrong thing!! Burn! 404!
>   [  ] Let him play. The goal is not to control, but to make the experience
> work seamlessly or work.
>
> So why not:
>
> C) getUserMedia({ mandatory: { 3D: true } }, success, fail);-> Firefox 28:
> something
> Firefox 29: 3D
>
> Because Firefox 28 doesn't know it's NOT a 3D camera...

So your argument is: the browser doesn't understand the constraint, so
should pass the camera through because it could potentially be the
correct device.

The problem with that argument is: it's a new constraint because it
enables new features that were not before available. For example: a 3D
camera may provide two video streams requiring two video elements for
display, so the app dev might have required 3D as mandatory because he
is expecting two streams to connect. Since the browser is not
supporting the 3D camera, it may provide only 1 stream or potentially
none.

Basically, you're just delaying the failure to a later time where the
app dev relies on a certain functionality.

If he/she didn't rely on this functionality, he/she wouldn't have
specified it as mandatory.


> C is better than B, because it wont list irrelevant cameras in Firefox 29.

In B the browser would not need to list the cameras either.

Silvia.

Received on Thursday, 14 November 2013 17:02:44 UTC