- From: Harald Alvestrand <harald@alvestrand.no>
- Date: Mon, 16 Dec 2013 18:43:45 +0100
- To: "public-media-capture@w3.org" <public-media-capture@w3.org>
- Message-ID: <52AF3BD1.6030001@alvestrand.no>
I think we're landing on the basic structure of constraints as retaining
the properties it has:
- Mandatory is a set of key/value pairs, where all of them need to be
satisfied in order for the allocation to succeed. If the browser does
not understand a key, it does not succeed. (I know Jan-Ivar doesn't agree.)
- Optional is a sequence of sets of key/value pairs. (I'm suggesting
that we relax the rule of only one key/value pair for each element in
the sequence). The browser will try to satisfy as many constraint sets
as it can, but will ignore constraint sets that cannot be satisified,
these will not cause the call to fail.
The Mandatory set of key/value pairs doesn't have the same semantics as
Dictionary. Therefore it is not a Dictionary.
Existing deployed code is expecting this code to be correctly parsed:
getUserMedia(.... { mandatory: { a=b}, optional: [ {c=d} ]})
It would be nice to keep that representation parsing.
The following suggestions are all valid IDL for the Constraints
construct in section 10.1.4.4 of the current getusermedia spec (which is
currently incomplete):
dictionary Constraints {
ConstraintSet? mandatory;
sequence<ConstraintSet> _optional;
};
Alternative 1:
ConstraintSet = object. This will Just Work, with the usual caveats
about generated code needing to deal with Object.
Alternative 2:
[MapClass(DOMString, Constraint)] interface ConstraintSet {
... boilerplate may go here ...
}
Alternative 3:
[Constructor that takes an Object prototype]
interface ConstraintSet {
get Constraint(DOMString)
set(DOMString, Constraint)
}
These may or may not parse the constant notation mentioned earlier. I
can't read the IDL spec to affirm or deny that.
Constraint can be a Dictionary. No property of Dictionary was harmed in
this writing.
But I think Jan-Ivar's proposal for "valid IDL" may work better at this
level.
http://lists.w3.org/Archives/Public/public-media-capture/2013Nov/0084.html
Received on Monday, 16 December 2013 17:44:04 UTC