<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://www.w3.org/Bugs/Public/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4"
          urlbase="https://www.w3.org/Bugs/Public/"
          
          maintainer="sysbot+bugzilla@w3.org"
>

    <bug>
          <bug_id>27384</bug_id>
          
          <creation_ts>2014-11-20 22:38:57 +0000</creation_ts>
          <short_desc>CSSStyleSheet.insertRule&apos;s index argument should be optional with default 0</short_desc>
          <delta_ts>2017-04-10 14:46:41 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>CSS</product>
          <component>CSSOM</component>
          <version>unspecified</version>
          <rep_platform>PC</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Philip Jägenstedt">philipj</reporter>
          <assigned_to name="Simon Pieters">zcorpan</assigned_to>
          <cc>bzbarsky</cc>
    
    <cc>philip</cc>
    
    <cc>travil</cc>
          
          <qa_contact>public-css-bugzilla</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>115263</commentid>
    <comment_count>0</comment_count>
    <who name="Philip Jägenstedt">philipj</who>
    <bug_when>2014-11-20 22:38:57 +0000</bug_when>
    <thetext>http://dev.w3.org/csswg/cssom/#cssstylesheet

It&apos;s optional with default 0 in WebKit and Blink. There was an attempt to make it non-optional but it didn&apos;t work out:
https://code.google.com/p/chromium/issues/detail?id=319695

When the removal was reverted, a use counter and deprecation message was also added:
https://www.chromestatus.com/metrics/feature/timeline/popularity/198

This has been in since M32 (reaching stable in January 2014) but there&apos;s no sign of decreasing usage.

Gecko/IE throw an exception if the argument is missing, so maybe it&apos;s on WebKit-specific paths. Maybe there are some sites that would start working in Gecko/IE if this is spec&apos;d and they make it optional.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115273</commentid>
    <comment_count>1</comment_count>
    <who name="Simon Pieters">zcorpan</who>
    <bug_when>2014-11-21 09:43:01 +0000</bug_when>
    <thetext>Are you OK with changing this in Gecko/IE?

Should this be only for CSSStyleSheet#insertRule or also CSSGroupingRule#insertRule?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115298</commentid>
    <comment_count>2</comment_count>
    <who name="Boris Zbarsky">bzbarsky</who>
    <bug_when>2014-11-21 15:33:06 +0000</bug_when>
    <thetext>&gt; so maybe it&apos;s on WebKit-specific paths

I read through https://code.google.com/p/chromium/issues/detail?id=319695 (again; when I got to the end it became clear I&apos;d done that before) and it looks like the instances there were all on WebKit-specific paths.  Specifically, all of the reports seemed to be from a single jQuery plugin that uses dynamically-inserted CSS animation rules, but only if style.WebkitAnimationName tests not undefined (conveniently using a slower codepath in other browsers, yay.  :( ).

_If_ Chrome is planning to ever remove style.WebkitAnimationName, that would automatically fix the issue with this library.  I don&apos;t think it makes much sense to talk about use counters until that happens.  I did mention this in https://code.google.com/p/chromium/issues/detail?id=319695#c34 which got summarily ignored.

Past that, I&apos;m pretty loath to make this argument non-optional because then people would be more likely to use it without the second argument (implying 0), and the behavior of Chrome and other browsers differs wildly when the second argument is 0.  Specifically, because Chrome doesn&apos;t represent @namespace and @charset rules in the CSSOM at all, as far as I can tell, so insertion at index 0 would work in Chrome in stylesheets that use those but not @import rules, while they would fail in Firefox and IE (or at least fail in the @namespace case in IE; IE seems to not represent @charset in the CSSOM).

This interaction with @-rules means that insertRule at 0 is a huge footgun.  From an API design standpoint, I would be much happier if we had an appendRule on CSSStyleSheet, because that would actually be safe to call, unlike insertRule(..., 0).

Back to the original question, though, I guess I&apos;d be ok with doing it if browsers first align on the cases in which insertRule() throws.  Otherwise it feels like we&apos;re promoting a pattern which throws in some but not all browsers in very non-obvious ways...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115377</commentid>
    <comment_count>3</comment_count>
    <who name="Philip Jägenstedt">philipj</who>
    <bug_when>2014-11-24 11:52:20 +0000</bug_when>
    <thetext>I&apos;m sorry, I didn&apos;t actually read all of https://code.google.com/p/chromium/issues/detail?id=319695 myself before filing this bug.

Can this single jQuery plugin really be behind 0.1% of page views? Maybe, I guess getting rid of WebkitAnimationName is a fair way to find out.

Sadly, the use of -webkit-animation-name is very high:
https://www.chromestatus.com/metrics/css/timeline/popularity/172

And unprefixed CSS animations have not been shipped yet :/

Experimental support was added in https://codereview.chromium.org/22925002/ so I&apos;ll ask Alexis about the status.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115381</commentid>
    <comment_count>4</comment_count>
    <who name="Boris Zbarsky">bzbarsky</who>
    <bug_when>2014-11-24 14:27:24 +0000</bug_when>
    <thetext>&gt; Can this single jQuery plugin really be behind 0.1% of page views?

Could a use counter be added for that?  Hard to tell, I guess, since it might end up with random filenames.

&gt; Sadly, the use of -webkit-animation-name is very high:

I expect it would be possible to drop WebkitAnimationName without dropping -webkit-animation-name if needed.  But the fact that unprefixed hasn&apos;t shipped yet is a bigger issue, agree.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115382</commentid>
    <comment_count>5</comment_count>
    <who name="Philip Jägenstedt">philipj</who>
    <bug_when>2014-11-24 14:34:32 +0000</bug_when>
    <thetext>(In reply to Boris Zbarsky from comment #4)
&gt; &gt; Can this single jQuery plugin really be behind 0.1% of page views?
&gt; 
&gt; Could a use counter be added for that?  Hard to tell, I guess, since it
&gt; might end up with random filenames.

That would be tricky. One way would be to see if WebkitAnimationName has already been accessed in the same script execution, but we don&apos;t have any existing use counters like that. It would be useful in many cases, though.

&gt; &gt; Sadly, the use of -webkit-animation-name is very high:
&gt; 
&gt; I expect it would be possible to drop WebkitAnimationName without dropping
&gt; -webkit-animation-name if needed.  But the fact that unprefixed hasn&apos;t
&gt; shipped yet is a bigger issue, agree.

Yeah. I&apos;ll wait to hear back from Alexis, if unprefixing CSS Animations is in reach it seems best to wait for that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115385</commentid>
    <comment_count>6</comment_count>
    <who name="Boris Zbarsky">bzbarsky</who>
    <bug_when>2014-11-24 14:42:04 +0000</bug_when>
    <thetext>OK.

Note that it would still be good if UAs would align insertRule behavior, because it&apos;s still a nasty footgun...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115386</commentid>
    <comment_count>7</comment_count>
    <who name="Philip Jägenstedt">philipj</who>
    <bug_when>2014-11-24 14:51:29 +0000</bug_when>
    <thetext>Is there a tracking bug for that?

Note per Simon&apos;s request I added a use counter for CSSCharsetRule.encoding a while ago:
https://codereview.chromium.org/299443014
https://www.chromestatus.com/metrics/feature/timeline/popularity/426

Blink doesn&apos;t have CSSNamespaceRule at all, so kicking @namespace and @charset out of CSSOM and implementations seems feasible.

Are there other facets of insertRule interop that I&apos;m missing?

BTW, it seems plausible that making insertRule(rule) with no index append instead of prepend would work, if that would be less risky for others to adopt.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115391</commentid>
    <comment_count>8</comment_count>
    <who name="Boris Zbarsky">bzbarsky</who>
    <bug_when>2014-11-24 15:17:22 +0000</bug_when>
    <thetext>&gt; Is there a tracking bug for that?

I don&apos;t know.

&gt; so kicking @namespace and @charset out of CSSOM and implementations seems
&gt; feasible.

I&apos;m 99% sure there is stuff depending on existence of @namespace rules, at least (e.g. editors built on top of browser engines).  Not web content, but not things we really want to break nevertheless.  At least in my opinion.

&gt; Are there other facets of insertRule interop that I&apos;m missing?

I don&apos;t know.  There&apos;s clearly no set of decent exhaustive tests for this that has been run cross-browser...

&gt; it seems plausible that making insertRule(rule) with no index append
&gt; instead of prepend would work

Maybe.  What should insertRule(rule, undefined) do?  Right now it prepends in all UAs, right?

I mean, we could make that work differently from insertRule(rule) with the second argument omitted, but that&apos;s not all that desirable; we should only do that as a last resort.  Especially if we&apos;re only doing it as a workaround for WebkitAnimationName existing, since the long-term goal is for that to not exist.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115396</commentid>
    <comment_count>9</comment_count>
    <who name="Philip Jägenstedt">philipj</who>
    <bug_when>2014-11-24 15:48:04 +0000</bug_when>
    <thetext>(In reply to Boris Zbarsky from comment #8)
&gt; &gt; Is there a tracking bug for that?
&gt; 
&gt; I don&apos;t know.

Simon, do you know which spec and browser bugs are relevant to this?

&gt; &gt; so kicking @namespace and @charset out of CSSOM and implementations seems
&gt; &gt; feasible.
&gt; 
&gt; I&apos;m 99% sure there is stuff depending on existence of @namespace rules, at
&gt; least (e.g. editors built on top of browser engines).  Not web content, but
&gt; not things we really want to break nevertheless.  At least in my opinion.

Here&apos;s a quick test:
http://software.hixie.ch/utilities/js/live-dom-viewer/saved/3314

It looks like WebKit/Blink are the only to not represent it. Blink bug:
https://code.google.com/p/chromium/issues/detail?id=389549

Gecko doesn&apos;t have the CSSNamespaceRule interface, but instead CSSNameSpaceRule...

Simon, do you care whether CSSNamespaceRule lives or dies? Is it in the same bucket as CSSCharsetRule or does it actually make sense?

&gt; &gt; it seems plausible that making insertRule(rule) with no index append
&gt; &gt; instead of prepend would work
&gt; 
&gt; Maybe.  What should insertRule(rule, undefined) do?  Right now it prepends
&gt; in all UAs, right?

Per WebIDL trailing undefined arguments are treated as missing arguments, so I don&apos;t think this will be a problem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115397</commentid>
    <comment_count>10</comment_count>
    <who name="Boris Zbarsky">bzbarsky</who>
    <bug_when>2014-11-24 16:06:06 +0000</bug_when>
    <thetext>&gt; Per WebIDL trailing undefined arguments are treated as missing arguments

Right, so if we make insertRule(rule) append, that would make insertRule(rule, undefined) also append unless we took some special pains to avoid that (involving overloads that check the arg count).  Which is not what it does in any browser right now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115429</commentid>
    <comment_count>11</comment_count>
    <who name="Simon Pieters">zcorpan</who>
    <bug_when>2014-11-24 21:20:29 +0000</bug_when>
    <thetext>(In reply to Philip Jägenstedt from comment #9)
&gt; Simon, do you know which spec and browser bugs are relevant to this?

I&apos;m aware of this thread which is somewhat related
http://lists.w3.org/Archives/Public/www-style/2014Mar/0441.html

&gt; Simon, do you care whether CSSNamespaceRule lives or dies? Is it in the same
&gt; bucket as CSSCharsetRule or does it actually make sense?

I think it&apos;s not in the same bucket as @charset. If you want to build a stylesheet with namespaces you have to use @namespace. Not supporting it in CSSOM but supporting it in syntax means you can&apos;t use the API but you can use &lt;style&gt;.textContent, which seems silly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115441</commentid>
    <comment_count>12</comment_count>
    <who name="Philip Jägenstedt">philipj</who>
    <bug_when>2014-11-25 08:34:51 +0000</bug_when>
    <thetext>(In reply to Boris Zbarsky from comment #10)
&gt; &gt; Per WebIDL trailing undefined arguments are treated as missing arguments
&gt; 
&gt; Right, so if we make insertRule(rule) append, that would make
&gt; insertRule(rule, undefined) also append unless we took some special pains to
&gt; avoid that (involving overloads that check the arg count).  Which is not
&gt; what it does in any browser right now.

Oh, right you are.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115442</commentid>
    <comment_count>13</comment_count>
    <who name="Philip Jägenstedt">philipj</who>
    <bug_when>2014-11-25 09:04:22 +0000</bug_when>
    <thetext>OK, so I guess this is what needs to happen in Blink:

1. Support CSSNamespaceRule.
2. Unprefix CSS Animations.
3. See what happens to the CSSStyleSheetInsertRuleOptionalArg counter.

If any browser has a compat problem because of the optional argument before that, I&apos;m of course in favor of changing the spec.

Also, we should figure out what to do with CSSCharsetRule:
https://www.w3.org/Bugs/Public/show_bug.cgi?id=27422</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115508</commentid>
    <comment_count>14</comment_count>
    <who name="Philip Jägenstedt">philipj</who>
    <bug_when>2014-11-26 13:28:05 +0000</bug_when>
    <thetext>Something interesting came up while I was poking at the non-standard CSSStyleSheet.addRule that IE introduced and WebKit copied.

In IE it has two mandatory arguments while the index argument is optional. If left out, it default to appending, not prepending. It would make sense to do the same for insertRule, in case we end up having to standardize addRule:
https://www.chromestatus.com/metrics/feature/timeline/popularity/220</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115522</commentid>
    <comment_count>15</comment_count>
    <who name="Boris Zbarsky">bzbarsky</who>
    <bug_when>2014-11-26 15:18:51 +0000</bug_when>
    <thetext>Again, that requires treating &quot;missing&quot; and &quot;undefined&quot; differently, yes?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115527</commentid>
    <comment_count>16</comment_count>
    <who name="Philip Jägenstedt">philipj</who>
    <bug_when>2014-11-26 15:43:45 +0000</bug_when>
    <thetext>I think it would be spec&apos;d as addRule(DOMString selector, DOMString style, optional unsigned long index) with no default value for index. undefined vs. missing argument wouldn&apos;t be an issue because nobody has shipped addRule with a non-optional index argument, I assume.

It&apos;s not a given that addRule will have to be standardized, making insertRule append would just be a precaution, and it&apos;s not crazy independent of addRule either.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115528</commentid>
    <comment_count>17</comment_count>
    <who name="Boris Zbarsky">bzbarsky</who>
    <bug_when>2014-11-26 15:50:28 +0000</bug_when>
    <thetext>&gt; because nobody has shipped addRule with a non-optional index argument

I think you have this backwards.

What matters is precisely that the index argument is optional in UAs that ship this API and that those UAs don&apos;t actually implement the Web IDL spec around optional arguments and undefined last I checked, so in those browsers this call:

  addRule(foo, bar);

will append while this call:

  addRule(foo, bar, undefined);

will do the same thing as this call:

  addRule(foo, bar, 0);

Please do correct me if I&apos;m wrong on this, by the way.

If I am not wrong, then the proposal that we make insertRule behave like addRule precisely corresponds to specifying that it needs to treat missing and undefined differently, no?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115530</commentid>
    <comment_count>18</comment_count>
    <who name="Philip Jägenstedt">philipj</who>
    <bug_when>2014-11-26 16:07:19 +0000</bug_when>
    <thetext>You&apos;re right, until WebIDL&apos;s overload resolution algorithm is implemented correctly addRule(foo, bar, undefined) would behave like addRule(foo, bar, 0).

In Blink, &quot;Treat undefined as missing for optional arguments with defaults&quot; has landed:
https://code.google.com/p/chromium/issues/detail?id=335871

That isn&apos;t relevant to addRule case, but that&apos;s the bug to follow if you&apos;re interested.

I&apos;m not worried about compat issues around insertRule(rule, undefined), and it seems like Blink would be at greater risk, since inserting at 0 can throw an exception.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115531</commentid>
    <comment_count>19</comment_count>
    <who name="Boris Zbarsky">bzbarsky</who>
    <bug_when>2014-11-26 16:19:46 +0000</bug_when>
    <thetext>&gt; I&apos;m not worried about compat issues

I am, if browsers start shipping different behavior.  If everyone aligns on undefined == missing == append, I&apos;m less worried.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115535</commentid>
    <comment_count>20</comment_count>
    <who name="Philip Jägenstedt">philipj</who>
    <bug_when>2014-11-26 19:03:40 +0000</bug_when>
    <thetext>(In reply to Boris Zbarsky from comment #19)
&gt; &gt; I&apos;m not worried about compat issues
&gt; 
&gt; I am, if browsers start shipping different behavior.  If everyone aligns on
&gt; undefined == missing == append, I&apos;m less worried.

I take it Gecko already implements WebIDL&apos;s overload resolution algorithm?

By the time the things in comment #13 have happened maybe it will have happened in Blink and the point will be moot. We&apos;ll see.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115537</commentid>
    <comment_count>21</comment_count>
    <who name="Boris Zbarsky">bzbarsky</who>
    <bug_when>2014-11-26 19:08:54 +0000</bug_when>
    <thetext>&gt; I take it Gecko already implements WebIDL&apos;s overload resolution algorithm?

Yes, and has since Firefox 28.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115539</commentid>
    <comment_count>22</comment_count>
    <who name="Philip Jägenstedt">philipj</who>
    <bug_when>2014-11-26 19:13:05 +0000</bug_when>
    <thetext>That&apos;s great! Off-topically, did you get many regressions from content where f(x, undefined) changed behavior?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115546</commentid>
    <comment_count>23</comment_count>
    <who name="Boris Zbarsky">bzbarsky</who>
    <bug_when>2014-11-26 19:22:39 +0000</bug_when>
    <thetext>The only cases where that causes a problem is when the missing case is treated different from a &quot;falsey&quot; case or from explicit &quot;undefined&quot;.

We found two instances of that in specs, leading to &lt;https://www.w3.org/Bugs/Public/show_bug.cgi?id=25686&gt; and &lt;https://www.w3.org/Bugs/Public/show_bug.cgi?id=23565&gt;, which both resulted in spec changes (the former to explicitly treat undefined and missing differently, the latter to change the missing behavior to be the falsey behavior.

There was also an issue in window.open() for the feature string; it used to become &quot;undefined&quot; and now becomes &quot;&quot;.  The behavior of both is not specified, so it&apos;s hard to tell what the compat behavior is; it depends on what the UA does with those two values.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115561</commentid>
    <comment_count>24</comment_count>
    <who name="Philip Jägenstedt">philipj</who>
    <bug_when>2014-11-26 20:43:49 +0000</bug_when>
    <thetext>Alexis found the tracking bug for unprefixing CSS Animations in Blink:
https://code.google.com/p/chromium/issues/detail?id=154771</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115562</commentid>
    <comment_count>25</comment_count>
    <who name="Philip Jägenstedt">philipj</who>
    <bug_when>2014-11-26 20:55:31 +0000</bug_when>
    <thetext>(In reply to Boris Zbarsky from comment #23)
&gt; The only cases where that causes a problem is when the missing case is
&gt; treated different from a &quot;falsey&quot; case or from explicit &quot;undefined&quot;.
&gt; 
&gt; We found two instances of that in specs, leading to
&gt; &lt;https://www.w3.org/Bugs/Public/show_bug.cgi?id=25686&gt; and
&gt; &lt;https://www.w3.org/Bugs/Public/show_bug.cgi?id=23565&gt;, which both resulted
&gt; in spec changes (the former to explicitly treat undefined and missing
&gt; differently, the latter to change the missing behavior to be the falsey
&gt; behavior.

Thanks! Both alert() and cloneNode() seem to be in order in Blink.

&gt; There was also an issue in window.open() for the feature string; it used to
&gt; become &quot;undefined&quot; and now becomes &quot;&quot;.  The behavior of both is not
&gt; specified, so it&apos;s hard to tell what the compat behavior is; it depends on
&gt; what the UA does with those two values.

That&apos;s unfortunate :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115609</commentid>
    <comment_count>26</comment_count>
    <who name="Simon Pieters">zcorpan</who>
    <bug_when>2014-11-27 10:04:36 +0000</bug_when>
    <thetext>(In reply to Boris Zbarsky from comment #23)
&gt; There was also an issue in window.open() for the feature string; it used to
&gt; become &quot;undefined&quot; and now becomes &quot;&quot;.  The behavior of both is not
&gt; specified, so it&apos;s hard to tell what the compat behavior is; it depends on
&gt; what the UA does with those two values.

https://www.w3.org/Bugs/Public/show_bug.cgi?id=25685 seems related.

There&apos;s also scrollIntoView which is bending over backwards for undefined. I don&apos;t recall if someone tried shipping without the special-case and found it broke sites or not, though.

http://dev.w3.org/csswg/cssom-view/#dom-element-scrollintoview
http://lists.w3.org/Archives/Public/www-style/2014Jul/0510.html

Also XMLHttpRequest#open async argument.

I think there were more things but I don&apos;t recall.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115624</commentid>
    <comment_count>27</comment_count>
    <who name="Boris Zbarsky">bzbarsky</who>
    <bug_when>2014-11-27 14:43:06 +0000</bug_when>
    <thetext>&gt; There&apos;s also scrollIntoView which is bending over backwards for undefined.

Ah, yes, sorry.  When we ran into the cloneNode issue I just looked for the &quot;boolean foo = true&quot; pattern, and scrollIntoView was the other example I found.  So I proactively didn&apos;t change the behavior there and hence we never had bug reports about it, which is why I didn&apos;t notice it when writing comment 23.  :(

Gecko has never shipped a behavior change to scrollIntoView, so I can&apos;t guarantee that undefined is ever passed to it in the wild.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>127704</commentid>
    <comment_count>28</comment_count>
    <who name="Philip Jägenstedt">philip</who>
    <bug_when>2016-10-10 18:59:14 +0000</bug_when>
    <thetext>Usage of this doesn&apos;t seem to be going down, at least not far enough to start throwing exceptions:
https://www.chromestatus.com/metrics/feature/timeline/popularity/198

https://compat.spec.whatwg.org/#css-properties now has -webkit-animation-name and Gecko supports element.style.WebkitAnimationName so I think it&apos;d be best to just make this argument optional now to minimize risk for all.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>128484</commentid>
    <comment_count>29</comment_count>
    <who name="Boris Zbarsky">bzbarsky</who>
    <bug_when>2017-03-13 20:46:29 +0000</bug_when>
    <thetext>So which specific behavior are you proposing?  Has Blink fixed its CSSOM bugs wrt namespace rules and such?  Or are you proposing the append behavior?  With or without explicit undefined acting differently?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>128509</commentid>
    <comment_count>30</comment_count>
    <who name="Philip Jägenstedt">philip</who>
    <bug_when>2017-03-28 12:04:28 +0000</bug_when>
    <thetext>I was thinking just &quot;optional unsigned long index = 0&quot; with undefined meaning missing as for all optional arguments, and no other changes. In other words, prepend.

CSSNamespaceRule was added to Blink in https://bugs.chromium.org/p/chromium/issues/detail?id=389549 and CSSCharsetRule was removed from Gecko in https://bugzilla.mozilla.org/show_bug.cgi?id=1148694, were there other things that might go wrong if Gecko makes the argument non-optional to sort out?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>128510</commentid>
    <comment_count>31</comment_count>
    <who name="Boris Zbarsky">bzbarsky</who>
    <bug_when>2017-03-28 12:49:27 +0000</bug_when>
    <thetext>No, that seems like it should make it safe to make the argument optional, in the sense of everyone ending up with the same behavior as a result.  That&apos;s great!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>128526</commentid>
    <comment_count>32</comment_count>
    <who name="Simon Pieters">zcorpan</who>
    <bug_when>2017-04-10 14:43:19 +0000</bug_when>
    <thetext>https://github.com/w3c/csswg-drafts/commit/7949d41a2d86107f8ad4624c055b4b0c9c28ad0d</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>128527</commentid>
    <comment_count>33</comment_count>
    <who name="Boris Zbarsky">bzbarsky</who>
    <bug_when>2017-04-10 14:45:01 +0000</bug_when>
    <thetext>Are there web platform tests for the change?  Bug reports on UAs?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>128528</commentid>
    <comment_count>34</comment_count>
    <who name="Simon Pieters">zcorpan</who>
    <bug_when>2017-04-10 14:46:41 +0000</bug_when>
    <thetext>Issue to write tests:
https://github.com/w3c/web-platform-tests/issues/5524

Have not yet filed bugs for browsers.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>