- From: Harald Alvestrand <harald@alvestrand.no>
- Date: Thu, 06 Feb 2014 23:49:42 +0100
- To: "public-media-capture@w3.org" <public-media-capture@w3.org>
- Message-ID: <52F41186.9050802@alvestrand.no>
As promised, hashing out the language of ConstraintSet.... First, an admission: I don't understand how initialization of complex argument types in WebIDL is supposed to work. I tried to parse the WebIDL spec to figure out "here is how you specify that an argument of type T can be constructed from a JS Object O when O is passed as an argument to the function that takes an argument of type T", but I did not find it. So I guess I'm left with prose - and possibly supporting WebIDL. The algorithm I have in mind, which is a making-more-precise of section 11.1.2 of the current (abbreviated) draft, says: WebIDL: typedef object ConstraintSet; The following operation is executed to figure out if the Constrainable object O, which has capabilities CA, satisfies ConstraintSet C: - For each immediate attribute A of C (as defined by HasOwnProperty): - If N, the name of A, is not a member of CA, fail. - If V, the value of A, cannot be interpreted as a ConstraintValues, fail. - If V does not permit any of the allowed values for CA(N), fail. - Set the constraint of N in O to be the intersection of any previous constraint and V. If the result of this intersection is empty, fail. - If satisfaction succeeded, return the newly-constrained object O. Here's where the now-deleted definition of ConstraintSet may come in useful: In this algorithm specification, the access to C is done as if C had the WebIDL definition: [NoInterfaceObject] interface ConstraintSetInternalRepresentation { ConstraintValues getter (DOMString name); }; (this may need extension. I'm not sure how. Or it may have no value, and should be deleted.) Does this seem like a precise (and therefore implementable) algorithm? -- Surveillance is pervasive. Go Dark.
Received on Thursday, 6 February 2014 22:50:12 UTC