Re: Why ignoring unknown mandatory constraints is not stupid

On 11/15/2013 01:31 AM, Jan-Ivar Bruaroey wrote:
> On 11/14/13 12:01 PM, Silvia Pfeiffer wrote:
>> On Thu, Nov 14, 2013 at 6:36 PM, Jan-Ivar Bruaroey <jib@mozilla.com> 
>> wrote:
>>> 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.
>
> Yes, well said. Thanks for that.
>
> For example, if the new 3D camera also has an extremely high 
> resolution you want, then the width/height constraints you'd add 
> (mandatory or optional) increase the likelihood of finding this camera 
> even on a system with an old browser and multiple cameras.

I don't understand this argument at all.

The JS programmer says "I want a 3D camera. If I can't get a 3D camera, 
I don't want any camera".

Firefox 28 says "I have no idea whether this is a 3D camera or not. I'll 
pass it up just in case it's usable."

I don't see how this can be constructed as acting in accordance with the 
programmer's wishes. If he was willing to accept a camera that was not a 
3D camera, he would not have specified a mandatory constraint.

Mandatory constraints guarantee that the resulting object is something 
that satisfies the constraints.

If they don't give such a guarantee, the JS script has to recheck all 
the properties it depends on after it gets the device, just in case the 
browser chose to ignore some of them.

I don't see how this makes the JS programmer's life easier.

Received on Friday, 15 November 2013 10:59:22 UTC