Re: Defining ConstraintSet and the constrainable algorithm in terms of it

On 02/07/2014 12:52 AM, Jim Barnett wrote:
> I don't think that this definition captures the interactions between
> constraints.  If aspectRatio and width have already been constrained,
> it is not enough to check that the requested value  for width is
> within the range specified by the relevant Capability.  Your first
> four points are more precise than what's currently in the spec, but
> the last two have to be modified to talk of a set of property values
> satisfying a set of ConstraintSets.

You're right. The "intersection" has to be in terms of what's possible
given the already-satisfied constraints, not just what that particular
constraint has been constrained to.


>
> - Jim
> On 2/6/2014 5:49 PM, Harald Alvestrand wrote:
>> 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.
>
> -- 
> Jim Barnett
> Genesys


-- 
Surveillance is pervasive. Go Dark.

Received on Friday, 7 February 2014 04:29:19 UTC