W3C home > Mailing lists > Public > public-css-bugzilla@w3.org > February 2012

[Bug 15964] Behavior on invalid arguments for CSSMatrix underspecified

From: <bugzilla@jessica.w3.org>
Date: Thu, 23 Feb 2012 05:22:23 +0000
To: public-css-bugzilla@w3.org
Message-Id: <E1S0R8J-0007fC-RS@jessica.w3.org>
https://www.w3.org/Bugs/Public/show_bug.cgi?id=15964

Dirk Schulze <dschulze@adobe.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |LATER

--- Comment #2 from Dirk Schulze <dschulze@adobe.com> 2012-02-23 05:22:22 UTC ---
(In reply to comment #1)
> These are all handled by WebIDL.  E.g., the declaration "CSSMatrix  
> multiply(in CSSMatrix secondMatrix);" means that if anything other than a
> CSSMatrix is passed to multiply(), an exception will be thrown.  This is the
> algorithm implementations must use for executing operations:
> 
> http://dev.w3.org/2006/webapi/WebIDL/#es-operations
> 
> It includes the step "Let values be the result of passing entry and arg0..n−1
> to the argument resolution algorithm."  That says:
> 
> """
> Initialize values0..m−1 to be a list of IDL values, where valuesi is the result
> of converting argi to an IDL value of type ti. These conversions must be done
> in order from arg0 to argm−1.
> """
> http://dev.w3.org/2006/webapi/WebIDL/#dfn-argument-resolution-algorithm
> 
> CSSMatrix is an interface type, and to convert to an interface type UAs must
> follow this algorithm:
> 
> http://dev.w3.org/2006/webapi/WebIDL/#es-interface
> 
> . . . which will throw a TypeError.
> 
> So more specifically:
> 
> (In reply to comment #0)
> > For instance what happens with multiply if null gets passed?
> 
> Throws a TypeError, per above.
> 
> > What happens if one of the attributes get set with NaN?
> 
> Then it gets set as NaN.  WebIDL allows any values for float/double that IEEE
> 754 does, same as ECMAScript.  This is probably not desired, but it's a WebIDL
> bug, not a CSS bug.  I filed bug 16075 against WebIDL.
> 
> > What happens on translate, scale, rotate on passing NaN? What will be the
> > resulting Matrix?
> > What happens if multiply gets a CSSMatrix but some of its attributes are NaN?
> 
> In theory, you should follow IEEE 754 rules for multiplication here.  This will
> probably result in a bunch more matrix entries getting set to NaN or infinite
> values.  This isn't wanted, obviously, which is why WebIDL should specify
> throwing a TypeError here.

I agree. We should come to this topic later again. At the moment we delay it to
CSS4 Transforms.

-- 
Configure bugmail: https://www.w3.org/Bugs/Public/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
Received on Thursday, 23 February 2012 05:22:25 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Thursday, 23 February 2012 05:22:25 GMT