<?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>25458</bug_id>
          
          <creation_ts>2014-04-25 08:14:01 +0000</creation_ts>
          <short_desc>[Shadow]: The return type of Event.path should leverage WebIDL sequences</short_desc>
          <delta_ts>2015-05-27 02:59:29 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebAppsWG</product>
          <component>HISTORICAL - Component Model</component>
          <version>unspecified</version>
          <rep_platform>PC</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>MOVED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>minor</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>23682</dependson>
          <blocked>28552</blocked>
    
    <blocked>28564</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Hayato Ito">hayato</reporter>
          <assigned_to name="Hayato Ito">hayato</assigned_to>
          <cc>annevk</cc>
    
    <cc>bugs</cc>
    
    <cc>bzbarsky</cc>
    
    <cc>d</cc>
    
    <cc>dglazkov</cc>
    
    <cc>erik.arvidsson</cc>
    
    <cc>kojiishi</cc>
    
    <cc>mike</cc>
    
    <cc>public-webapps</cc>
          
          <qa_contact>public-webapps-bugzilla</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>104413</commentid>
    <comment_count>0</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2014-04-25 08:14:01 +0000</bug_when>
    <thetext>The subject explains well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>104414</commentid>
    <comment_count>1</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2014-04-25 08:18:18 +0000</bug_when>
    <thetext>Committed at
https://github.com/w3c/webcomponents/commit/4e9b329f62cf2451901455d0cf1b7066fc86c1eb</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>104415</commentid>
    <comment_count>2</comment_count>
    <who name="Anne">annevk</who>
    <bug_when>2014-04-25 08:47:22 +0000</bug_when>
    <thetext>Note that [] is an IDL array which are going away. I guess we can still fix that down the road?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>104416</commentid>
    <comment_count>3</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2014-04-25 08:50:29 +0000</bug_when>
    <thetext>Thanks.

Do you have a pointer about what we should use instead of T[]?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>104417</commentid>
    <comment_count>4</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2014-04-25 08:55:00 +0000</bug_when>
    <thetext>I guess we should use `Sequence&lt;EventTarget&gt;`. Is that correct?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>104418</commentid>
    <comment_count>5</comment_count>
    <who name="Anne">annevk</who>
    <bug_when>2014-04-25 08:58:30 +0000</bug_when>
    <thetext>I don&apos;t think it exists yet because nobody is maintaining IDL :-(

sequence&lt;&gt; does not work with attributes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>104446</commentid>
    <comment_count>6</comment_count>
    <who name="Domenic Denicola">d</who>
    <bug_when>2014-04-25 13:38:28 +0000</bug_when>
    <thetext>Can they be real arrays with the exact semantics specified in prose?

This seems related to https://github.com/w3c/screen-orientation/issues/13</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>104452</commentid>
    <comment_count>7</comment_count>
    <who name="Boris Zbarsky">bzbarsky</who>
    <bug_when>2014-04-25 16:17:40 +0000</bug_when>
    <thetext>&gt; Can they be real arrays with the exact semantics specified in prose?

Yes.  You can put &quot;object&quot; in the IDL and then specify in prose.

That specification could even leverage WebIDL sequences in the sense of creating one, converting to a JS value, and caching the result.

The only open question is whether the result should be frozen or whether we should just let the consumer munge it.  Does anything internal look at .path on events?  If so, we may want to either freeze it or specify an internal accessor that returns the actual path.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>104527</commentid>
    <comment_count>8</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2014-04-28 07:11:57 +0000</bug_when>
    <thetext>(In reply to Boris Zbarsky from comment #7)
&gt; &gt; Can they be real arrays with the exact semantics specified in prose?
&gt; 
&gt; Yes.  You can put &quot;object&quot; in the IDL and then specify in prose.
&gt; 
&gt; That specification could even leverage WebIDL sequences in the sense of
&gt; creating one, converting to a JS value, and caching the result.
&gt; 
&gt; The only open question is whether the result should be frozen or whether we
&gt; should just let the consumer munge it.  Does anything internal look at .path
&gt; on events?  If so, we may want to either freeze it or specify an internal
&gt; accessor that returns the actual path.

My expected behavior is &apos;frozen&apos;.

If the following event listener is given,

button.addEventListener(&quot;click&quot;, function(event) {
  console.log(event.path.length);
  var p = event.path;
  p.pop();
  console.log(event.path.length);
  console.log(p.length);
  event.path = [];
  console.log(event.path);
});


this event listener should print the following as example:
  4
  4
  3
  4

As far as I tested, the current WebIDL implementation of blink for `readonly attribute T[]` behaves like that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>104528</commentid>
    <comment_count>9</comment_count>
    <who name="Boris Zbarsky">bzbarsky</who>
    <bug_when>2014-04-28 07:25:05 +0000</bug_when>
    <thetext>&gt; this event listener should print the following as example:

If event.path is a frozen array, this event listener will throw an exception on the &quot;p.pop()&quot; line.

&gt; the current WebIDL implementation of blink for `readonly attribute T[]` behaves
&gt; like that.

I&apos;m not aware of Blink having any support for &quot;attribute T[]&quot; in IDL, readonly or not.  What it does instead is fake it with interfaces with indexed getters/setters.  For example, event.path in Blink is a NodeList.

That said Array.prototype.pop.call(someNonemptyNodeList), as currently specced, would land us in http://heycam.github.io/webidl/#delete which would return false, since there is no deleter defined.  And then http://people.mozilla.org/~jorendorff/es6-draft.html#sec-deletepropertyorthrow would throw.  This is in fact what happens in Firefox, though Blink seems to get this wrong.

And if Blink _did_ implement IDL arrays as currently specced for some reason, then you&apos;d land in http://heycam.github.io/webidl/#platform-array-object-delete and once again throw, if the IDL array is not empty.

I have no idea where the &quot;3&quot; in your suggested log output came from, by the way, unless you think event.path should return a new object on every get (so that event.path == event.path always tests false)....</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>104531</commentid>
    <comment_count>10</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2014-04-28 07:50:36 +0000</bug_when>
    <thetext>Thank you.

WebIDL looks too complicated to me :)

I don&apos;t have any intention to say the current WebIDL implementation of blink is correct. I just assumed that WebIDL is *mature* and there is no significant difference between every user agents.

I am now feeling that we should make event.path into a method rather than an attribute unless we have a well-defined way to represent a *frozen* array.
I always get uncomfortable when an attribute returns something array-like.

We might want to fix the blink&apos;s implementation at first.
Let me investigate further.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>104558</commentid>
    <comment_count>11</comment_count>
    <who name="Boris Zbarsky">bzbarsky</who>
    <bug_when>2014-04-28 14:55:04 +0000</bug_when>
    <thetext>&gt; I just assumed that WebIDL is *mature* and there is no significant difference
&gt; between every user agents.

Things keep being added as needed, so it&apos;s not stable in the sense of frozen feature set.  But IE and Firefox are pretty close in following WebIDL in the parts they implement.

Blink and WebKit are off in their own world in all sorts of ways, as far as I can tell, WebKit more so than Blink.

&gt; unless we have a well-defined way to represent a *frozen* array

See comment 7.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>104561</commentid>
    <comment_count>12</comment_count>
    <who name="Domenic Denicola">d</who>
    <bug_when>2014-04-28 15:07:11 +0000</bug_when>
    <thetext>It is the TAG&apos;s opinion that in cases like these, the arrays should be mutable (non-frozen). It is un-JavaScript-ey to attempt to protect consumers from themselves.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>104569</commentid>
    <comment_count>13</comment_count>
    <who name="Boris Zbarsky">bzbarsky</who>
    <bug_when>2014-04-28 15:54:40 +0000</bug_when>
    <thetext>This case is a bit weird because the &quot;consumers&quot; of an event, esp with web components (which I assume is a given for event.path), are all sorts of pieces of unrelated code.  So it&apos;s more like protecting one consumer from another one that the first doesn&apos;t even know exists.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>104571</commentid>
    <comment_count>14</comment_count>
    <who name="Domenic Denicola">d</who>
    <bug_when>2014-04-28 15:57:26 +0000</bug_when>
    <thetext>Sure, but the reasoning stands. Nobody does that in JS. The DOM sometimes tries to, but the TAG&apos;s opinion is that doing so is not good API design and should be discontinued if possible in new DOM APIs. (Historically, it seems like this was sometimes done because implementations did not distinguish between the integrity of the model layer and the integrity of the user-exposed data layer. This distinction is important and something the TAG highlighted recently.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>104572</commentid>
    <comment_count>15</comment_count>
    <who name="Boris Zbarsky">bzbarsky</who>
    <bug_when>2014-04-28 15:59:37 +0000</bug_when>
    <thetext>&gt; Nobody does that in JS.

In all fairness, until recently there weren&apos;t any tools in the language for people to do that, no?

I don&apos;t actually have a strong opinion on this stuff, as long as we make it clear that the internal implementation is not using the modified data.  I just want to make sure we&apos;re considering all the issues here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>104783</commentid>
    <comment_count>16</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2014-04-30 06:42:04 +0000</bug_when>
    <thetext>(In reply to Boris Zbarsky from comment #15)
&gt; &gt; Nobody does that in JS.
&gt; 
&gt; In all fairness, until recently there weren&apos;t any tools in the language for
&gt; people to do that, no?
&gt; 
&gt; I don&apos;t actually have a strong opinion on this stuff, as long as we make it
&gt; clear that the internal implementation is not using the modified data.  I
&gt; just want to make sure we&apos;re considering all the issues here.

In the current blink&apos;s implementation, the internal implementation is not using the modified data.
An even.path always creates a new array instance and returns it. Modifying the returned array doesn&apos;t have any affect to the internal implementation.

Anyway, I&apos;d like to know what is a recommended way for event.path.
Is there any suggestion?

1). Use &apos;readonly attribute EventTarget[] event.path&apos; and fix the blink&apos;s implementation of T[].

2). Because T[] is going away in IDL, find the other reasonable way, though I&apos;m not sure what is an available option here.

3). Make event.path an operation: &apos;sequence[EventTarget] getPath()&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>104802</commentid>
    <comment_count>17</comment_count>
    <who name="Anne">annevk</who>
    <bug_when>2014-04-30 11:12:59 +0000</bug_when>
    <thetext>We want 2. The way you could define this is by saying it returns an &quot;object&quot; in IDL and define in prose that a JavaScript Array Object is returned which represents a copy of the underlying path concept (which is a list of EventTarget objects).

You should also keep an XXX somewhere in the specification to update this once IDL is fixed with proper support for JavaScript Array Objects.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>104822</commentid>
    <comment_count>18</comment_count>
    <who name="Boris Zbarsky">bzbarsky</who>
    <bug_when>2014-04-30 16:55:02 +0000</bug_when>
    <thetext>And define when that object is created and when a new one is created (presumably as part of event dispatch).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>104888</commentid>
    <comment_count>19</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2014-05-01 04:03:08 +0000</bug_when>
    <thetext>Thank you. 2 looks a reasonable option here.

I updated the spec at
https://github.com/w3c/webcomponents/commit/6f296e4bb73238a15baab805a0079c16f9dfac7f

I appreciate any feedbacks for that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>104889</commentid>
    <comment_count>20</comment_count>
    <who name="Domenic Denicola">d</who>
    <bug_when>2014-05-01 04:10:19 +0000</bug_when>
    <thetext>It should not be a new array on each get; it should be the same array. Otherwise e.path !== e.path.

You should create the array object upon construction of the event, and return the same one each time.

I also think the issues you linked to are not really related to the problem at hand.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>104892</commentid>
    <comment_count>21</comment_count>
    <who name="Boris Zbarsky">bzbarsky</who>
    <bug_when>2014-05-01 04:42:35 +0000</bug_when>
    <thetext>&gt; You should create the array object upon construction of the event

Construction or dispatch?  Dispatch would make more sense, since that&apos;s when the path is determined, and events can be redispatched.

Apart from that, I totally agree with comment 20.

Also, one more issue: I suggest you create the array by creating a WebIDL sequence&lt;EventTarget&gt; in your prose and then explicitly invoking the &quot;convert to an ECMAScript value&quot; concept from WebIDL.  That will actually rigorously define how the array is set up and avoid different implementations disagreeing about whether to use [[Set]] or [[DefineOwnProperty]] for the array entries.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>104893</commentid>
    <comment_count>22</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2014-05-01 05:53:42 +0000</bug_when>
    <thetext>(In reply to Domenic Denicola from comment #20)
&gt; It should not be a new array on each get; it should be the same array.
&gt; Otherwise e.path !== e.path.
&gt; 
&gt; You should create the array object upon construction of the event, and
&gt; return the same one each time.
&gt; 
&gt; I also think the issues you linked to are not really related to the problem
&gt; at hand.

The situation might be complex here in event.path.
The return value of event.path can differ even in the lifecycle of the same event object.

For example,

- an event listener, A, is added to a node, NODE_A.
- an event listener, B, is added to a node, NODE_B.
- Suppose NODE_A and NODE_B are in the different node trees.
- Suppose NODE_A and NODE_B are in the same event path for an event. (Don&apos;t confuse &quot;event path&quot; with event.path API).

Suppose, an event listener A is invoked at first. Then an event listener B is invoked.

var pathInA;

function eventListenerA(event) {
  pathInA = event.path;
  // pathInA is something like [D, C, A] here.
}

function eventListenerB(event) {
  var pathInB = event.path;
  // pathInB is something like [D, C, B] here, which is different what we saw in eventListenerA.
  // pathInA and pathInB should be the same JavaScript Array object?
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>104894</commentid>
    <comment_count>23</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2014-05-01 06:01:20 +0000</bug_when>
    <thetext>FYI.
This is a related on-going discussion: https://www.w3.org/Bugs/Public/show_bug.cgi?id=25423

If we could give away an *encapsulation* from &quot;event.path&quot;, event.path could return the same JavaScript Array object.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>104895</commentid>
    <comment_count>24</comment_count>
    <who name="Boris Zbarsky">bzbarsky</who>
    <bug_when>2014-05-01 06:04:59 +0000</bug_when>
    <thetext>If this API is not exposing the full, immutable-during-the-dispatch event path from the target to the root, then it should be a method, not a getter, imo.  And it needs a better name.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>104896</commentid>
    <comment_count>25</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2014-05-01 06:47:56 +0000</bug_when>
    <thetext>+Dimitri to CC List.

(In reply to Boris Zbarsky from comment #24)
&gt; If this API is not exposing the full, immutable-during-the-dispatch event
&gt; path from the target to the root, then it should be a method, not a getter,
&gt; imo.  And it needs a better name.

That reminds me of the old discussion here.
See the comment https://code.google.com/p/chromium/issues/detail?id=234030#c22

Dimitri, WDYT?


One more note:

As I recall, the same event object can be *re-used* between event dispatching if we dispatch an event explicitly by calling EventTarget.dispatchEvent(event), re-using the same event object.
So the result of event.path could be *different* anyway for the same event object.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>104897</commentid>
    <comment_count>26</comment_count>
    <who name="Boris Zbarsky">bzbarsky</who>
    <bug_when>2014-05-01 07:15:53 +0000</bug_when>
    <thetext>&gt; As I recall, the same event object can be *re-used* between event dispatching

Yes, see comment 21.  Creating a new array on explicit action like array dispatch is probably fine.  Creating one seemingly-randomly during event propagation seems a lot weirder.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>104901</commentid>
    <comment_count>27</comment_count>
    <who name="Anne">annevk</who>
    <bug_when>2014-05-01 09:36:58 +0000</bug_when>
    <thetext>The way you want to define this is that events have an associated path and an associated path object. Then at various points in the lifetime of the event, you change the associated concepts as appropriate. E.g. initially, when you create an event, its associated path is the empty list and its associated path object is a new Array representing its associated path.

Then during dispatch when the path is calculated you set a new path and a new Array representing it.

Event.prototype.path meanwhile returns the path object. The specification algorithms use the path.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>104911</commentid>
    <comment_count>28</comment_count>
    <who name="Dimitri Glazkov">dglazkov</who>
    <bug_when>2014-05-01 16:40:15 +0000</bug_when>
    <thetext>(In reply to Anne from comment #27)
&gt; The way you want to define this is that events have an associated path and
&gt; an associated path object. Then at various points in the lifetime of the
&gt; event, you change the associated concepts as appropriate. E.g. initially,
&gt; when you create an event, its associated path is the empty list and its
&gt; associated path object is a new Array representing its associated path.
&gt; 
&gt; Then during dispatch when the path is calculated you set a new path and a
&gt; new Array representing it.
&gt; 
&gt; Event.prototype.path meanwhile returns the path object. The specification
&gt; algorithms use the path.

Love it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>106837</commentid>
    <comment_count>29</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2014-05-27 11:26:03 +0000</bug_when>
    <thetext>Let me resume this work after I resolve this issue:
https://www.w3.org/Bugs/Public/show_bug.cgi?id=25458</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>106838</commentid>
    <comment_count>30</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2014-05-27 11:27:01 +0000</bug_when>
    <thetext>Correction:
https://www.w3.org/Bugs/Public/show_bug.cgi?id=25423</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>107011</commentid>
    <comment_count>31</comment_count>
    <who name="Erik Arvidsson">erik.arvidsson</who>
    <bug_when>2014-05-29 23:17:26 +0000</bug_when>
    <thetext>This discussion has mostly been about the IDL. I assume this bug is also about including the Window object in the event path?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>107013</commentid>
    <comment_count>32</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2014-05-30 03:57:14 +0000</bug_when>
    <thetext>(In reply to Erik Arvidsson from comment #31)
&gt; This discussion has mostly been about the IDL. I assume this bug is also
&gt; about including the Window object in the event path?

Yep, I remember that we had a discussion about Window object, however, I am lost and couldn&apos;t find the discussion.

Could someone give me the link to the discussion?

I am feeling that we should file a bug for that as another bug.


I couldn&apos;t find any mention about Window object &quot;in 4.7 Dispatching events&quot; of DOM standard.

http://dom.spec.whatwg.org/#dispatching-events says:

&gt; If event&apos;s target attribute value is participating in a tree, let event path be a static ordered list of all its ancestors in tree order, and let event path be the empty list otherwise.

I am not sure what is the best way to deal with Window object in event path. I am assuming that Window object is not the parent of Document. Please correct me if I&apos;m wrong.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>107019</commentid>
    <comment_count>33</comment_count>
    <who name="Anne">annevk</who>
    <bug_when>2014-05-30 06:46:15 +0000</bug_when>
    <thetext>Window is bug 21066. And yes, HTML defines Window and defines it as a parent of Document for the purposes of event dispatch. Ideally we make that a bit more explicit down the road. I still haven&apos;t figured out a good way to integrate shadow trees into DOM/HTML.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>107065</commentid>
    <comment_count>34</comment_count>
    <who name="Olli Pettay">bugs</who>
    <bug_when>2014-05-30 22:08:11 +0000</bug_when>
    <thetext>Note, load event dispatched somewhere in the dom (or shadow dom) doesn&apos;t
propagate to Window.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>107075</commentid>
    <comment_count>35</comment_count>
    <who name="Anne">annevk</who>
    <bug_when>2014-05-31 07:25:08 +0000</bug_when>
    <thetext>Yeah, that is noted by HTML. We should probably formalize that a bit better somehow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>119509</commentid>
    <comment_count>36</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2015-04-15 05:31:22 +0000</bug_when>
    <thetext>|Window| was already addressed in the spec tentatively.
https://github.com/w3c/webcomponents/commit/73b64edd930a623616923c9cfc0f118fc8cc6abc

So I think we can&apos;t resolve this issue until we can leverage WebIDL sequences.

Let me move this into &quot;15480: [Shadow]: Things to Consider in the Future&quot; category.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>120507</commentid>
    <comment_count>37</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2015-05-27 02:59:29 +0000</bug_when>
    <thetext>Moved to https://github.com/w3c/webcomponents/issues/101</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>