[css3-conditional] specifying behavior of CSSGroupingRule.insertRule

The remaining issue on css3-conditional that needs to be resolved
before it goes to CR is specifying the behavior of insertRule
correctly.

In particular, it needs to specify:
 * when it throws SYNTAX_ERR (in particular, whether it does when
   the input string is something other than a single syntactically
   valid CSS rule, e.g., when it's the empty string, when it
   contains garbage after a rule, or when it contains more than one
   rule)
 * what the return value is

Existing implementations don't appear to be interoperable on the
first point, though they are on the second (it returns the index,
which is one of the function's arguments).

Chrome's behavior is that anything other than a single syntactically
valid rule throws SYNTAX_ERR.  This means an empty string, garbage
after a rule, or multiple rules, lead to SYNTAX_ERR.  This seems to
me to be a clear, simple, and reasonable behavior.  I have a test
for this behavior here:
http://lists.w3.org/Archives/Public/www-archive/2013Feb/att-0012/test_group_insertRule_option1.html

Firefox and IE behave differently.  They don't throw for an empty
string, garbage after a rule, or multiple rules.  I wrote a test for
what I considered an alternative clear, simple, and reasonable
behavior here:
http://lists.w3.org/Archives/Public/www-archive/2013Feb/att-0012/test_group_insertRule_option2.html
testing that any number of rules were inserted, and garbage dropped,
just as in a style sheet.  However, the actual behavior of
implementations doesn't match this test; neither Firefox nor IE
throws SYNTAX_ERR when multiple rules are given; Firefox inserts the
first rule only, and IE inserts no rules at all.

So my conclusion is that I'd like to specify the WebKit behavior
here, i.e., the option1 test above.

I expect these clarifications should also apply to
CSSStyleSheet.insertRule as well.

-David

-- 
𝄞   L. David Baron                         http://dbaron.org/   𝄂
𝄢   Mozilla                           http://www.mozilla.org/   𝄂

Received on Thursday, 7 February 2013 21:34:11 UTC