Re: [Bug 23933] Proposal: Change constraints to use WebIDL dictionaries

On 12/6/13 11:56 AM, cowwoc wrote:
> On 06/12/2013 2:59 AM, Jan-Ivar Bruaroey wrote:
>>
>> The only reason I can see to pick it would be to keep what I call the 
>> footgun, the default behavior where webdevs who don't think about the 
>> complicated unknown case, make apps that (perhaps inadvertently) 
>> block everyone indiscriminately, including both legitimate and 
>> illegitimate users, until a browser is upgraded with a new 
>> constraint. Since the webdev can flip the default and the user 
>> cannot, I think we should default to the way that doesn't block the 
>> user. I already have evidence that webdevs aren't thinking ahead when 
>> they use mandatory.
>>
>
> I almost understand this point, but not quite yet. Can you please give 
> a concrete example/scenario of this taking place?

I already included https://bugzilla.mozilla.org/show_bug.cgi?id=927358 
which shows the footgun. The introduction of getGumKnownConstraints() 
will not cure this syndrome, since the footgun is what happens by 
default for people who do NOT bother or know the right procedure of 
calling getGumKnownConstraints() to handle unknowns properly.

The lesson is that people don't think twice about using mandatory, 
probably because constraints are too complicated. They test until it 
works, and expect browsers to "do the right thing" from there. You and I 
disagree about what "the right thing" is for unknowns. I argue the 
current default, while logically sound, is too harsh, and 
un-webAPI-like. I further argue that only webdevs like you who care 
about unknowns, will call getKnownConstraints(), and even then probably 
only if you have a strong incentive to (you dislike the default). 
Defaults for dummies.

Since you asked, let me try to imagine another example:

  * Someone adds an "auto-night-detection" constraint to IANA (or
    wherever), and Chrome Canary implements it.
  * Sometime later (I'm not saying when) someone adds { mandatory: {
    auto-night-detection: true } } to their existing app (I'm not
    talking about people who add optional).

Question 1: when is this ok to do?

  * Now their app stops working on anything but Chrome Canary. How is
    this useful?
  * Say for argument's sake that 50% of web-cams out there already have
    auto-night-detection built in as an inherent property that doesn't
    even need to be turned on.
  * Now the UA is blocking 49% of legitimate users at nighttime, and
    everyone during daytime (user can't tell the difference).


I don't want the UA to do that. You, the app can do that.

As I've stated before, this only applies to inherent properties, since 
the minute you try to control a camera, you learn from getCapabilities() 
if it's not supported.

.: Jan-Ivar :.

Received on Friday, 6 December 2013 19:41:15 UTC