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

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>109939</bug_id>
          
          <creation_ts>2013-02-15 07:28:06 -0800</creation_ts>
          <short_desc>WheelEvent should not target text nodes.</short_desc>
          <delta_ts>2013-03-05 07:31:10 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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>
          <dependson>111439</dependson>
          <blocked>110007</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mike West">mkwst</reporter>
          <assigned_to name="Mike West">mkwst</assigned_to>
          <cc>ap</cc>
    
    <cc>arv</cc>
    
    <cc>darin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>hayato</cc>
    
    <cc>morrita</cc>
    
    <cc>ojan</cc>
    
    <cc>syoichi</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>834005</commentid>
    <comment_count>0</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2013-02-15 07:28:06 -0800</bug_when>
    <thetext>MouseWheel events should not target text nodes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834008</commentid>
    <comment_count>1</comment_count>
      <attachid>188566</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2013-02-15 07:30:17 -0800</bug_when>
    <thetext>Created attachment 188566
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834009</commentid>
    <comment_count>2</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2013-02-15 07:30:49 -0800</bug_when>
    <thetext>So. Let&apos;s see if this explodes before asking for opinions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834055</commentid>
    <comment_count>3</comment_count>
      <attachid>188580</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2013-02-15 08:39:46 -0800</bug_when>
    <thetext>Created attachment 188580
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834060</commentid>
    <comment_count>4</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2013-02-15 08:47:18 -0800</bug_when>
    <thetext>Ok, this is too broadly done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834063</commentid>
    <comment_count>5</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2013-02-15 08:49:13 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; Ok, this is too broadly done.

Some DOM Events should, apparently, target text nodes. DOMCharacterDataModified, DOMNodeInserted, and DOMSubtreeModified, for instance, are all breaking in tests. Someone better informed about the spec will have to help me out here.

Ojan? Opinions? :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834064</commentid>
    <comment_count>6</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2013-02-15 08:50:04 -0800</bug_when>
    <thetext>For background, this report is coming from jQuery, which is currently working around WebKit&apos;s behavior in this regard: https://github.com/jquery/jquery/commit/c61150427fc8ccc8e884df8f221a6c9bb5477929</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834101</commentid>
    <comment_count>7</comment_count>
      <attachid>188580</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-15 09:31:32 -0800</bug_when>
    <thetext>Comment on attachment 188580
Patch

Attachment 188580 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/16589175

New failing tests:
fast/parser/nested-fragment-parser-crash.html
svg/custom/tref-remove-target-crash.svg
fast/events/crash-on-mutate-during-drop.html
editing/inserting/insert-paragraph-separator-crash.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834107</commentid>
    <comment_count>8</comment_count>
      <attachid>188580</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-02-15 09:38:10 -0800</bug_when>
    <thetext>Comment on attachment 188580
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=188580&amp;action=review

&gt; Source/WebCore/dom/EventRetargeter.h:70
&gt; +    if (referenceNode-&gt;isPseudoElement() || referenceNode-&gt;isTextNode())

To me this seems like the wrong level to fix the bug. What code is sending an event with a target of a text node? Having the event system retarget the event will cover all events, but it’s really sloppy to patch it up at this level instead of doing it right at the higher level.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834108</commentid>
    <comment_count>9</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-02-15 09:39:27 -0800</bug_when>
    <thetext>Further, putting the fix at this low level, but adding only one test, is not a good idea. We would like tests covering all the cases that are malfunctioning.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834109</commentid>
    <comment_count>10</comment_count>
      <attachid>188580</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-02-15 09:40:13 -0800</bug_when>
    <thetext>Comment on attachment 188580
Patch

Thanks for tackling this; I’m going to say review- for now. Maybe you can convince me (or other experts, since there’s no guarantee I will be around to review again) that this is the best approach; I may be missing something.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834114</commentid>
    <comment_count>11</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2013-02-15 09:44:57 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 188580 [details])
&gt; Thanks for tackling this; I’m going to say review- for now. Maybe you can convince me (or other experts, since there’s no guarantee I will be around to review again) that this is the best approach; I may be missing something.

For the record, I completely agree that we need more tests here. This was really just for the bots to see what would break. I didn&apos;t actually intend for it to be r?. :)

As far as the level at which we make the change, I think I agree with you. Since there are likely events that do need to target text nodes, this is the wrong place to make the change. It&apos;s overly broad. I&apos;ll work to narrow down the events we should care about, and find better places to retarget them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834342</commentid>
    <comment_count>12</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2013-02-15 13:37:26 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; &gt; Ok, this is too broadly done.
&gt; 
&gt; Some DOM Events should, apparently, target text nodes. DOMCharacterDataModified, DOMNodeInserted, and DOMSubtreeModified, for instance, are all breaking in tests. Someone better informed about the spec will have to help me out here.

I&apos;m pretty sure these are the only events that will target text nodes. Arv might know of others. FWIW, we&apos;re trying to remove these events from the platform. In the meantime we need to support it though.

Do we know if jquery is hitting this through code other than by creating their own synthetic wheelevent and calling dispatchEvent on it? If so, it sounds like we have a bug somewhere else.

Whether dispatchEvent on a text node should ever work is another question. As best I can tell, the current DOM spec allows it: http://dom.spec.whatwg.org/#concept-event-dispatch. What do other browsers do? It&apos;s not clear to me what the best behavior here is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834473</commentid>
    <comment_count>13</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-02-15 16:26:42 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; Do we know if jquery is hitting this through code other than by creating their own synthetic wheelevent and calling dispatchEvent on it? If so, it sounds like we have a bug somewhere else.

That’s a good question. If real wheel events are coming through with text nodes as their targets, then that’s one thing, and something we should fix. But dispatchEvent allowing you to dispatch that kind of event is another thing entirely.

&gt; Whether dispatchEvent on a text node should ever work is another question. As best I can tell, the current DOM spec allows it: http://dom.spec.whatwg.org/#concept-event-dispatch. What do other browsers do? It&apos;s not clear to me what the best behavior here is.

Seems clear our current behavior is right. I doubt very much the other browsers retarget when dispatchEvent is called. If someone is claiming that, we should test to verify and then get the DOM specification updated if it’s not matching the de facto standard.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834530</commentid>
    <comment_count>14</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2013-02-15 17:19:19 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; (In reply to comment #12)
&gt; &gt; Whether dispatchEvent on a text node should ever work is another question. As best I can tell, the current DOM spec allows it: http://dom.spec.whatwg.org/#concept-event-dispatch. What do other browsers do? It&apos;s not clear to me what the best behavior here is.
&gt; 
&gt; Seems clear our current behavior is right. I doubt very much the other browsers retarget when dispatchEvent is called. If someone is claiming that, we should test to verify and then get the DOM specification updated if it’s not matching the de facto standard.

Yes!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834639</commentid>
    <comment_count>15</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2013-02-15 22:47:49 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; (In reply to comment #12)
&gt; &gt; Do we know if jquery is hitting this through code other than by creating their own synthetic wheelevent and calling dispatchEvent on it? If so, it sounds like we have a bug somewhere else.
&gt; 
&gt; That’s a good question. If real wheel events are coming through with text nodes as their targets, then that’s one thing, and something we should fix. But dispatchEvent allowing you to dispatch that kind of event is another thing entirely.

Real wheel events are targeting text nodes: http://bugs.jquery.com/ticket/13143 is the original report against jQuery, and I&apos;ve verified it at http://jsfiddle.net/RuCjf/.

I wrote the test with dispatchEvent, as it seemed like the simplest way of testing the behavior, but I&apos;m sure there&apos;s a testRunner method to simulate a real mouse. I&apos;ll track that down.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834677</commentid>
    <comment_count>16</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2013-02-16 01:23:52 -0800</bug_when>
    <thetext>(In reply to comment #15)
&gt; (In reply to comment #13)
&gt; &gt; (In reply to comment #12)
&gt; &gt; &gt; Do we know if jquery is hitting this through code other than by creating their own synthetic wheelevent and calling dispatchEvent on it? If so, it sounds like we have a bug somewhere else.
&gt; &gt; 
&gt; &gt; That’s a good question. If real wheel events are coming through with text nodes as their targets, then that’s one thing, and something we should fix. But dispatchEvent allowing you to dispatch that kind of event is another thing entirely.
&gt; 
&gt; Real wheel events are targeting text nodes: http://bugs.jquery.com/ticket/13143 is the original report against jQuery, and I&apos;ve verified it at http://jsfiddle.net/RuCjf/.

http://jsfiddle.net/RuCjf/1/, sorry.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834679</commentid>
    <comment_count>17</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2013-02-16 01:39:42 -0800</bug_when>
    <thetext>Digging through EventHandler, it looks like we&apos;re already handling other mouse events correctly. I&apos;ll limit this bug down to WheelEvents, as those are missing the step up to the parent node.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834681</commentid>
    <comment_count>18</comment_count>
      <attachid>188701</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2013-02-16 02:09:03 -0800</bug_when>
    <thetext>Created attachment 188701
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834683</commentid>
    <comment_count>19</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2013-02-16 02:12:29 -0800</bug_when>
    <thetext>(In reply to comment #18)
&gt; Created an attachment (id=188701) [details]
&gt; Patch

This patch is much narrower than the previous patch, as it looks like we&apos;re already doing the right thing for other mouse events, drag events, and touch events. WDYT?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834744</commentid>
    <comment_count>20</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2013-02-16 09:49:12 -0800</bug_when>
    <thetext>It looks like mouse events do something a bit more complicated. Either they are doing something too complicated, or this code is too simple. I&apos;m not sure which. :) The shadow DOM folks hopefully can explain why mouse events need to use AncestorChainWalker instead of just grabbing parentNode.

http://trac.webkit.org/browser/trunk/Source/WebCore/page/EventHandler.cpp#L2118</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834747</commentid>
    <comment_count>21</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2013-02-16 09:56:09 -0800</bug_when>
    <thetext>(In reply to comment #20)
&gt; It looks like mouse events do something a bit more complicated. Either they are doing something too complicated, or this code is too simple. I&apos;m not sure which. :) The shadow DOM folks hopefully can explain why mouse events need to use AncestorChainWalker instead of just grabbing parentNode.
&gt; 
&gt; http://trac.webkit.org/browser/trunk/Source/WebCore/page/EventHandler.cpp#L2118

Hrm. You&apos;re right. Drag and touch are much simpler. Funky. Seems like we should unify these somehow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834759</commentid>
    <comment_count>22</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2013-02-16 10:37:00 -0800</bug_when>
    <thetext>(In reply to comment #21)
&gt; Hrm. You&apos;re right. Drag and touch are much simpler. Funky. Seems like we should unify these somehow.

Totally. We just need to understand what the case is where we need to use AncestorChainWalker instead of just grabbing parent. Looks like this code was added in http://trac.webkit.org/changeset/131070.

Hayato-san, can you explain to us the cases where this is necessary so that we can create a wheel event case that hits it as well?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834789</commentid>
    <comment_count>23</comment_count>
      <attachid>188701</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-02-16 13:13:04 -0800</bug_when>
    <thetext>Comment on attachment 188701
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=188701&amp;action=review

Patch is OK, but probably not 100% correct since it’s not the same as for mouse events.

&gt; Source/WebCore/page/EventHandler.cpp:2399
&gt; +    // Wheel events should not dispatch to text nodes.
&gt; +    if (node &amp;&amp; node-&gt;isTextNode())
&gt; +        node = node-&gt;parentNode();

The code to do this for mouse events is in EventHandler::updateMouseEventTargetNode, which is in turn called by EventHandler::dispatchMouseEvent. It uses AncestorChainWalker instead of just calling parentNode. It would be best if this code was shared for mouse and wheel events. It’s hard to imagine the AncestorChainWalker being needed for mouse events but not wheel events!

Also, I think this logic should take effect before the code that sets m_latchedWheelEventNode. We don’t want it to latch to the text node.

Aside from this particular patch, it’s not good that wheel events have similar requirements, but functions that are factored and named completely differently. I think that choice led more-or-less directly to this bug.

Seeing the ancestor chain walker code upset me because I assume it’s some kind of subtle new rule about Shadow DOM that is not clearly explained anywhere, so I have no idea how we are supposed to get this sort of thing right. I am uncomfortable with how we are doing the shadow DOM work in the WebKit tree.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834795</commentid>
    <comment_count>24</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-02-16 13:24:26 -0800</bug_when>
    <thetext>Heh, that’s funny. I see other people discussing the mouse vs. wheel event thing here too. I didn’t see those comments before my review. Glad you all discovered that stuff too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834836</commentid>
    <comment_count>25</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2013-02-16 15:02:45 -0800</bug_when>
    <thetext>(In reply to comment #24)
&gt; Heh, that’s funny. I see other people discussing the mouse vs. wheel event thing here too. I didn’t see those comments before my review. Glad you all discovered that stuff too.

Thanks for the review, Darin.

I do think I&apos;ll wait until there&apos;s some clarity around AncestorChainWalker before landing this just to avoid churn. Depending on the intended usage, it might be worth changing drag and touch in a followup patch... If it&apos;s necessary for mouse events, I&apos;d guess that it&apos;s necessary for those as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834841</commentid>
    <comment_count>26</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-02-16 15:17:50 -0800</bug_when>
    <thetext>I want the code shared, not just similar, though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834849</commentid>
    <comment_count>27</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2013-02-16 15:38:33 -0800</bug_when>
    <thetext>Consider this scenario:

1) a shadow tree is hosted by element A
2) element A has a child text node B
3) shadow tree has an insertion point
4) B is distributed into this insertion point.

If you need more background on the terminology/plumbing, seek knowledge here: https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#dfn-distribution

If we just use B&apos;s parent as initial target, it will be impossible for an event listener inside the shadow tree to ever hear this event. That seems bad. Thus, we should use AncestorChainWalker.

As a rule of thumb, AncestorChainWalker will do the right thing for any ancestor traversal related to events.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834851</commentid>
    <comment_count>28</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2013-02-16 15:38:56 -0800</bug_when>
    <thetext>(In reply to comment #26)
&gt; I want the code shared, not just similar, though.

That&apos;s the point of AncestorChainWalker.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834852</commentid>
    <comment_count>29</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-02-16 15:40:49 -0800</bug_when>
    <thetext>Are the uses of parentNode in EventHandler::handleMouseDraggedEvent, EventHandler::updateDragAndDrop, closestScrollableNodeCandidate, and EventHandler::handleTouchEvent all incorrect? And if so, who is going to fix those?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834854</commentid>
    <comment_count>30</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2013-02-16 15:41:52 -0800</bug_when>
    <thetext>(In reply to comment #29)
&gt; Are the uses of parentNode in EventHandler::handleMouseDraggedEvent, EventHandler::updateDragAndDrop, closestScrollableNodeCandidate, and EventHandler::handleTouchEvent all incorrect?

Sounds like it.

&gt; And if so, who is going to fix those?

Me. In a bug I&apos;m about to file. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834861</commentid>
    <comment_count>31</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2013-02-16 15:48:09 -0800</bug_when>
    <thetext>(In reply to comment #30)
&gt; 
&gt; Me. In a bug I&apos;m about to file. :)

Hayato-san is working on gesture/touch-related events in bug 107796, make sure to check with him.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834870</commentid>
    <comment_count>32</comment_count>
      <attachid>188736</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2013-02-16 15:56:35 -0800</bug_when>
    <thetext>Created attachment 188736
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834873</commentid>
    <comment_count>33</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2013-02-16 16:00:07 -0800</bug_when>
    <thetext>(In reply to comment #26)
&gt; I want the code shared, not just similar, though.

Darin, would you be OK with landing this patch to fix the narrow WheelEvent bug, and covering the merger of the text node logic in https://bugs.webkit.org/show_bug.cgi?id=110037?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834874</commentid>
    <comment_count>34</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2013-02-16 16:01:16 -0800</bug_when>
    <thetext>(In reply to comment #23)
&gt; Seeing the ancestor chain walker code upset me because I assume it’s some kind of subtle new rule about Shadow DOM that is not clearly explained anywhere, so I have no idea how we are supposed to get this sort of thing right. I am uncomfortable with how we are doing the shadow DOM work in the WebKit tree.

I don&apos;t want you to be upset :) How can help to fix this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834876</commentid>
    <comment_count>35</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-02-16 16:06:42 -0800</bug_when>
    <thetext>(In reply to comment #33)
&gt; Darin, would you be OK with landing this patch to fix the narrow WheelEvent bug, and covering the merger of the text node logic in https://bugs.webkit.org/show_bug.cgi?id=110037?

Yes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835062</commentid>
    <comment_count>36</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2013-02-17 17:19:02 -0800</bug_when>
    <thetext>The change to EventHandler in  http://trac.webkit.org/changeset/131070 seems to be just a mechanical renaming (from ComposedShadowTreeParentWalker to AncestorChainWalker).

It seems I&apos;ve introduced ComposedShadowTreeWalker to MouseEvent handler in https://bugs.webkit.org/show_bug.cgi?id=86999, which handles only MouseEvent&apos;s bug.

I think we can do the similar things to the other events.
We should adress that in https://bugs.webkit.org/show_bug.cgi?id=110037 as Mike has filed.

We should dig into EventHandler more and more.


(In reply to comment #22)
&gt; (In reply to comment #21)
&gt; &gt; Hrm. You&apos;re right. Drag and touch are much simpler. Funky. Seems like we should unify these somehow.
&gt; 
&gt; Totally. We just need to understand what the case is where we need to use AncestorChainWalker instead of just grabbing parent. Looks like this code was added in http://trac.webkit.org/changeset/131070.
&gt; 
&gt; Hayato-san, can you explain to us the cases where this is necessary so that we can create a wheel event case that hits it as well?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835137</commentid>
    <comment_count>37</comment_count>
      <attachid>188736</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-17 22:32:59 -0800</bug_when>
    <thetext>Comment on attachment 188736
Patch

Clearing flags on attachment: 188736

Committed r143148: &lt;http://trac.webkit.org/changeset/143148&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835138</commentid>
    <comment_count>38</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-17 22:33:05 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188566</attachid>
            <date>2013-02-15 07:30:17 -0800</date>
            <delta_ts>2013-02-15 08:39:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109939-20130215162642.patch</filename>
            <type>text/plain</type>
            <size>4104</size>
            <attacher name="Mike West">mkwst</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyOTk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWJiMmU4MGE3NzZjMTg3
ZjYyM2VkMGIyYWNhY2U4ZGY5MjgyNGEyYS4uMTAzZmVkYmU3MjVmMWFiZmZhYzlhNWI0NzM4YjZj
ZjI2NzQyMmU2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEzLTAyLTE1ICBNaWtl
IFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgRE9NIEV2ZW50cyBzaG91bGQg
bm90IHRhcmdldCB0ZXh0IG5vZGVzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTA5OTM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgalF1ZXJ5IHJlcG9ydHMgdGhhdCBldmVudCB0YXJnZXRzIHNob3VsZCBu
ZXZlciBiZSB0ZXh0IG5vZGVzOyB0aGV5J3JlCisgICAgICAgIHdvcmtpbmcgYXJvdW5kIFdlYktp
dCdzIGJlaGF2aW9yIGluIHRoaXMgcmVnYXJkWzFdLgorCisgICAgICAgIFsxXTogaHR0cHM6Ly9n
aXRodWIuY29tL2pxdWVyeS9qcXVlcnkvY29tbWl0L2M2MTE1MDQyN2ZjOGNjYzhlODg0ZGY4ZjIy
MWE2YzliYjU0Nzc5MjkKKworICAgICAgICBUZXN0OiBmYXN0L2V2ZW50cy93aGVlbGV2ZW50LWlu
LXRleHQtbm9kZS5odG1sCisKKyAgICAgICAgKiBkb20vRXZlbnRSZXRhcmdldGVyLmg6CisgICAg
ICAgIChXZWJDb3JlOjpFdmVudFJldGFyZ2V0ZXI6OmV2ZW50VGFyZ2V0UmVzcGVjdGluZ1Rhcmdl
dFJ1bGVzKToKKwogMjAxMy0wMi0xNSAgVnNldm9sb2QgVmxhc292ICA8dnNldmlrQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBSZWRvIGluIHRleHQgZWRpdG9yIHNob3Vs
ZCBhbHdheXMgY29sbGFwc2Ugc2VsZWN0aW9uIHRvIGVuZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FdmVudFJldGFyZ2V0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFJl
dGFyZ2V0ZXIuaAppbmRleCBjNzExYTk2ZTgzMjZiZTUwMzYxZTYxZDM4YzUzNmFkODc4MzE4MTM2
Li45ZWQyZDlhMjViZWExNzU2OTcxMGM0NGU4ODQzNjRiM2YxZGY5MmRhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRXZlbnRSZXRhcmdldGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0V2ZW50UmV0YXJnZXRlci5oCkBAIC02Nyw3ICs2Nyw3IEBAIGlubGluZSBFdmVudFRhcmdl
dCogRXZlbnRSZXRhcmdldGVyOjpldmVudFRhcmdldFJlc3BlY3RpbmdUYXJnZXRSdWxlcyhOb2Rl
KiByZWZlCiB7CiAgICAgQVNTRVJUKHJlZmVyZW5jZU5vZGUpOwogCi0gICAgaWYgKHJlZmVyZW5j
ZU5vZGUtPmlzUHNldWRvRWxlbWVudCgpKQorICAgIGlmIChyZWZlcmVuY2VOb2RlLT5pc1BzZXVk
b0VsZW1lbnQoKSB8fCByZWZlcmVuY2VOb2RlLT5pc1RleHROb2RlKCkpCiAgICAgICAgIHJldHVy
biByZWZlcmVuY2VOb2RlLT5wYXJlbnROb2RlKCk7CiAKICNpZiBFTkFCTEUoU1ZHKQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4
IDk5YWQzOGQzNWZlODE1MTk3ZTRhMDQ1M2Y4MTk2YmVlYjViMmIwMTAuLmQ1NjM1OTk2ZDdhMDRj
YTBiM2I5YTYwZTQ5OTU5NmZlMDU3MTA2YTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMy0w
Mi0xNSAgTWlrZSBXZXN0ICA8bWt3c3RAY2hyb21pdW0ub3JnPgorCisgICAgICAgIERPTSBFdmVu
dHMgc2hvdWxkIG5vdCB0YXJnZXQgdGV4dCBub2Rlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTkzOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9ldmVudHMvd2hlZWxldmVudC1pbi10ZXh0
LW5vZGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy93aGVlbGV2
ZW50LWluLXRleHQtbm9kZS5odG1sOiBBZGRlZC4KKwogMjAxMy0wMi0xNSAgQW5kcmV3IFdpbHNv
biAgPGF0d2lsc29uQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkIGNocm9taXVt
IHJlYmFzZWxpbmVzIGZvciByMTQyOTQ3LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvd2hlZWxldmVudC1pbi10ZXh0LW5vZGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvd2hlZWxldmVudC1pbi10ZXh0LW5vZGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjFlNzFhMTBiYWQ5OGNlODE4NDJkYTZmNzM5Y2Q1ZjRhN2I1NjA0NzEKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aGVlbGV2ZW50LWluLXRleHQtbm9kZS1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitGQUlMIHRoZUV2ZW50LnRhcmdldC5ub2RlTmFt
ZSBzaG91bGQgYmUgRElWLiBXYXMgI3RleHQuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKK1RoaXMgdGVzdCBlbnN1cmVzIHRoYXQgYSB3aGVlbCBldmVu
dCB0cmlnZ2VyZWQgb24gYSB0ZXh0IG5vZGUgdGFyZ2V0cyBpdHMgcGFyZW50IGVsZW1lbnQuCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aGVlbGV2ZW50LWluLXRleHQtbm9k
ZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2hlZWxldmVudC1pbi10ZXh0LW5vZGUu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4zODFjZTMzMjU2NjgxMGNiYTgwZTNjOTI0N2ExN2Q2NzA4ZjUyMTZk
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2hlZWxldmVudC1p
bi10ZXh0LW5vZGUuaHRtbApAQCAtMCwwICsxLDMxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgd2luZG93LmpzVGVzdElzQXN5bmMg
PSB0cnVlOworCisgICAgICAgIHdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7CisgICAgICAg
ICAgICB2YXIgZGl2ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignZGl2Jyk7CisgICAgICAgICAg
ICB2YXIgbm9kZSA9IGRpdi5jaGlsZE5vZGVzWzBdOworCisgICAgICAgICAgICBkaXYuYWRkRXZl
bnRMaXN0ZW5lcignbW91c2V3aGVlbCcsIGhhbmRsZVdoZWVsRXZlbnQpOworCisgICAgICAgICAg
ICB2YXIgd2hlZWxFdmVudCA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCJXaGVlbEV2ZW50Iik7Cisg
ICAgICAgICAgICB3aGVlbEV2ZW50LmluaXRXZWJLaXRXaGVlbEV2ZW50KC0xMjAsIC0xMjAsIHdp
bmRvdywgMCwgMCwgMCwgMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UpOworICAgICAgICAg
ICAgbm9kZS5kaXNwYXRjaEV2ZW50KHdoZWVsRXZlbnQpOworICAgICAgICB9OworCisgICAgICAg
IGZ1bmN0aW9uIGhhbmRsZVdoZWVsRXZlbnQoZSkgeworICAgICAgICAgICAgd2luZG93LnRoZUV2
ZW50ID0gZTsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygndGhlRXZlbnQudGFy
Z2V0Lm5vZGVOYW1lJywgJ0RJVicpOworICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAg
ICAgIH0KKyAgICA8L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8ZGl2PlRoaXMg
dGVzdCBlbnN1cmVzIHRoYXQgYSB3aGVlbCBldmVudCB0cmlnZ2VyZWQgb24gYSB0ZXh0IG5vZGUg
dGFyZ2V0cworICAgIGl0cyBwYXJlbnQgZWxlbWVudC48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188580</attachid>
            <date>2013-02-15 08:39:46 -0800</date>
            <delta_ts>2013-02-16 02:08:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109939-20130215173611.patch</filename>
            <type>text/plain</type>
            <size>4087</size>
            <attacher name="Mike West">mkwst</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyOTk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWJiMmU4MGE3NzZjMTg3
ZjYyM2VkMGIyYWNhY2U4ZGY5MjgyNGEyYS4uMTAzZmVkYmU3MjVmMWFiZmZhYzlhNWI0NzM4YjZj
ZjI2NzQyMmU2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEzLTAyLTE1ICBNaWtl
IFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgRE9NIEV2ZW50cyBzaG91bGQg
bm90IHRhcmdldCB0ZXh0IG5vZGVzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTA5OTM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgalF1ZXJ5IHJlcG9ydHMgdGhhdCBldmVudCB0YXJnZXRzIHNob3VsZCBu
ZXZlciBiZSB0ZXh0IG5vZGVzOyB0aGV5J3JlCisgICAgICAgIHdvcmtpbmcgYXJvdW5kIFdlYktp
dCdzIGJlaGF2aW9yIGluIHRoaXMgcmVnYXJkWzFdLgorCisgICAgICAgIFsxXTogaHR0cHM6Ly9n
aXRodWIuY29tL2pxdWVyeS9qcXVlcnkvY29tbWl0L2M2MTE1MDQyN2ZjOGNjYzhlODg0ZGY4ZjIy
MWE2YzliYjU0Nzc5MjkKKworICAgICAgICBUZXN0OiBmYXN0L2V2ZW50cy93aGVlbGV2ZW50LWlu
LXRleHQtbm9kZS5odG1sCisKKyAgICAgICAgKiBkb20vRXZlbnRSZXRhcmdldGVyLmg6CisgICAg
ICAgIChXZWJDb3JlOjpFdmVudFJldGFyZ2V0ZXI6OmV2ZW50VGFyZ2V0UmVzcGVjdGluZ1Rhcmdl
dFJ1bGVzKToKKwogMjAxMy0wMi0xNSAgVnNldm9sb2QgVmxhc292ICA8dnNldmlrQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBSZWRvIGluIHRleHQgZWRpdG9yIHNob3Vs
ZCBhbHdheXMgY29sbGFwc2Ugc2VsZWN0aW9uIHRvIGVuZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FdmVudFJldGFyZ2V0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFJl
dGFyZ2V0ZXIuaAppbmRleCBjNzExYTk2ZTgzMjZiZTUwMzYxZTYxZDM4YzUzNmFkODc4MzE4MTM2
Li45ZWQyZDlhMjViZWExNzU2OTcxMGM0NGU4ODQzNjRiM2YxZGY5MmRhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRXZlbnRSZXRhcmdldGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0V2ZW50UmV0YXJnZXRlci5oCkBAIC02Nyw3ICs2Nyw3IEBAIGlubGluZSBFdmVudFRhcmdl
dCogRXZlbnRSZXRhcmdldGVyOjpldmVudFRhcmdldFJlc3BlY3RpbmdUYXJnZXRSdWxlcyhOb2Rl
KiByZWZlCiB7CiAgICAgQVNTRVJUKHJlZmVyZW5jZU5vZGUpOwogCi0gICAgaWYgKHJlZmVyZW5j
ZU5vZGUtPmlzUHNldWRvRWxlbWVudCgpKQorICAgIGlmIChyZWZlcmVuY2VOb2RlLT5pc1BzZXVk
b0VsZW1lbnQoKSB8fCByZWZlcmVuY2VOb2RlLT5pc1RleHROb2RlKCkpCiAgICAgICAgIHJldHVy
biByZWZlcmVuY2VOb2RlLT5wYXJlbnROb2RlKCk7CiAKICNpZiBFTkFCTEUoU1ZHKQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4
IDk5YWQzOGQzNWZlODE1MTk3ZTRhMDQ1M2Y4MTk2YmVlYjViMmIwMTAuLmQ1NjM1OTk2ZDdhMDRj
YTBiM2I5YTYwZTQ5OTU5NmZlMDU3MTA2YTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMy0w
Mi0xNSAgTWlrZSBXZXN0ICA8bWt3c3RAY2hyb21pdW0ub3JnPgorCisgICAgICAgIERPTSBFdmVu
dHMgc2hvdWxkIG5vdCB0YXJnZXQgdGV4dCBub2Rlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTkzOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9ldmVudHMvd2hlZWxldmVudC1pbi10ZXh0
LW5vZGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy93aGVlbGV2
ZW50LWluLXRleHQtbm9kZS5odG1sOiBBZGRlZC4KKwogMjAxMy0wMi0xNSAgQW5kcmV3IFdpbHNv
biAgPGF0d2lsc29uQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkIGNocm9taXVt
IHJlYmFzZWxpbmVzIGZvciByMTQyOTQ3LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvd2hlZWxldmVudC1pbi10ZXh0LW5vZGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvd2hlZWxldmVudC1pbi10ZXh0LW5vZGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmFmNzQwOGZiY2VhZDkxY2UxZTVhNTlhODRjM2E3YTc4OTE1Yjk3ZDkKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aGVlbGV2ZW50LWluLXRleHQtbm9kZS1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitQQVNTIHRoZUV2ZW50LnRhcmdldC5ub2RlTmFt
ZSBpcyAiRElWIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCitUaGlzIHRlc3QgZW5zdXJlcyB0aGF0IGEgd2hlZWwgZXZlbnQgdHJpZ2dlcmVkIG9uIGEg
dGV4dCBub2RlIHRhcmdldHMgaXRzIHBhcmVudCBlbGVtZW50LgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvd2hlZWxldmVudC1pbi10ZXh0LW5vZGUuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL3doZWVsZXZlbnQtaW4tdGV4dC1ub2RlLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MzgxY2UzMzI1NjY4MTBjYmE4MGUzYzkyNDdhMTdkNjcwOGY1MjE2ZAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3doZWVsZXZlbnQtaW4tdGV4dC1ub2RlLmh0bWwK
QEAgLTAsMCArMSwzMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxz
Y3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorICAg
IDxzY3JpcHQ+CisgICAgICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgICAg
ICB3aW5kb3cub25sb2FkID0gZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgdmFyIGRpdiA9IGRv
Y3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2RpdicpOworICAgICAgICAgICAgdmFyIG5vZGUgPSBkaXYu
Y2hpbGROb2Rlc1swXTsKKworICAgICAgICAgICAgZGl2LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNl
d2hlZWwnLCBoYW5kbGVXaGVlbEV2ZW50KTsKKworICAgICAgICAgICAgdmFyIHdoZWVsRXZlbnQg
PSBkb2N1bWVudC5jcmVhdGVFdmVudCgiV2hlZWxFdmVudCIpOworICAgICAgICAgICAgd2hlZWxF
dmVudC5pbml0V2ViS2l0V2hlZWxFdmVudCgtMTIwLCAtMTIwLCB3aW5kb3csIDAsIDAsIDAsIDAs
IGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlKTsKKyAgICAgICAgICAgIG5vZGUuZGlzcGF0Y2hF
dmVudCh3aGVlbEV2ZW50KTsKKyAgICAgICAgfTsKKworICAgICAgICBmdW5jdGlvbiBoYW5kbGVX
aGVlbEV2ZW50KGUpIHsKKyAgICAgICAgICAgIHdpbmRvdy50aGVFdmVudCA9IGU7CisgICAgICAg
ICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3RoZUV2ZW50LnRhcmdldC5ub2RlTmFtZScsICdE
SVYnKTsKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICB9CisgICAgPC9zY3Jp
cHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAgPGRpdj5UaGlzIHRlc3QgZW5zdXJlcyB0aGF0
IGEgd2hlZWwgZXZlbnQgdHJpZ2dlcmVkIG9uIGEgdGV4dCBub2RlIHRhcmdldHMKKyAgICBpdHMg
cGFyZW50IGVsZW1lbnQuPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188701</attachid>
            <date>2013-02-16 02:09:03 -0800</date>
            <delta_ts>2013-02-16 15:56:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109939-20130216110526.patch</filename>
            <type>text/plain</type>
            <size>4857</size>
            <attacher name="Mike West">mkwst</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyOTE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWMxNmE1ODBlYzA4MTkx
YmQ3NWYzZGQ3MmRjZjNlYTdmZThiNjUxMC4uYjYzMWQ2MWQ3NzQzZmFjNTFhNTJlYTBkZTBjYzA0
NjEwYTY3NmUzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEzLTAyLTE2ICBNaWtl
IFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2hlZWxFdmVudCBzaG91bGQg
bm90IHRhcmdldCB0ZXh0IG5vZGVzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTA5OTM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgV2hlZWxFdmVudCwgbGlrZSBvdGhlciBtb3VzZSBldmVudHMsIHNob3Vs
ZCBub3QgdGFyZ2V0IHRleHQgbm9kZXMuCisgICAgICAgIEV2ZW50SGFuZGxlciBjb3JyZWN0bHkg
aGFuZGxlcyBvdGhlciBtb3VzZSBldmVudHMgYnkgcmV0YXJnZXRpbmcKKyAgICAgICAgZXZlbnRz
IHRvIHRleHQgbm9kZXMnIHBhcmVudHM7IHRoaXMgcGF0Y2ggYWRkcyB0aGF0IGxvZ2ljIHRvIHRo
ZQorICAgICAgICBXaGVlbEV2ZW50IGhhbmRsZXIuCisKKyAgICAgICAgVGhpcyBzaG91bGQgYWxs
b3cgalF1ZXJ5IHRvIHN0b3Agd29ya2luZyBhcm91bmQgV2ViS2l0J3MgYmVoYXZpb3JbMV0uCisK
KyAgICAgICAgWzFdOiBodHRwczovL2dpdGh1Yi5jb20vanF1ZXJ5L2pxdWVyeS9jb21taXQvYzYx
MTUwNDI3ZmM4Y2NjOGU4ODRkZjhmMjIxYTZjOWJiNTQ3NzkyOQorCisgICAgICAgIFRlc3Q6IGZh
c3QvZXZlbnRzL3doZWVsZXZlbnQtaW4tdGV4dC1ub2RlLmh0bWwKKworICAgICAgICAqIHBhZ2Uv
RXZlbnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFuZGxl
V2hlZWxFdmVudCk6CisgICAgICAgICAgICBJZiBhIFdoZWVsRXZlbnQncyBoaXQgdGVzdCBsYW5k
cyBvbiBhIHRleHQgbm9kZSwgcmV0YXJnZXQgdGhlCisgICAgICAgICAgICBldmVudCB0byB0aGUg
dGV4dCBub2RlJ3MgcGFyZW50LgorCiAyMDEzLTAyLTE0ICBUb255IENoYW5nICA8dG9ueUBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgc2V0IHN2bjplb2wtc3R5bGUgQ1JMRiBm
b3IgLnNsbiBmaWxlcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5k
bGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCA2Nzc3
NmZjNDI1ZTIzNmU3NWRlMjViYTk4OGI2N2U5MTVkMTMyMzE3Li4wYmMzZWQzMGJjZGI1NGFmOTAw
MmJlZmQyMWM0ZTg3MTk3Nzc4ZTg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2
ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3Bw
CkBAIC0yMzk0LDYgKzIzOTQsMTAgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZVdoZWVsRXZl
bnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiBlKQogICAgICAgICBpc092ZXJXaWRnZXQgPSBy
ZXN1bHQuaXNPdmVyV2lkZ2V0KCk7CiAgICAgfQogCisgICAgLy8gV2hlZWwgZXZlbnRzIHNob3Vs
ZCBub3QgZGlzcGF0Y2ggdG8gdGV4dCBub2Rlcy4KKyAgICBpZiAobm9kZSAmJiBub2RlLT5pc1Rl
eHROb2RlKCkpCisgICAgICAgIG5vZGUgPSBub2RlLT5wYXJlbnROb2RlKCk7CisKICAgICAvLyBG
SVhNRTogSXQgc2hvdWxkIG5vdCBiZSBuZWNlc3NhcnkgdG8gZG8gdGhpcyBtdXRhdGlvbiBoZXJl
LgogICAgIC8vIEluc3RlYWQsIHRoZSBoYW5kbGVycyBzaG91bGQga25vdyBjb252ZXJ0IHZlcnRp
Y2FsIHNjcm9sbHMKICAgICAvLyBhcHByb3ByaWF0ZWx5LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDgxMTdkNzI5NzQ1OTJl
N2JmZDdlZTRkMzc1MjliYTM4NDRhYmJkMzIuLjMyMGNjZGVlNTRjNDU5OTYyNmY0OGRkNzJmZjRl
ZmU4Y2I3ODI1YmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMy0wMi0xNiAgTWlrZSBXZXN0
ICA8bWt3c3RAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdoZWVsRXZlbnQgc2hvdWxkIG5vdCB0
YXJnZXQgdGV4dCBub2Rlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEwOTkzOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogZmFzdC9ldmVudHMvd2hlZWxldmVudC1pbi10ZXh0LW5vZGUtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy93aGVlbGV2ZW50LWluLXRleHQtbm9k
ZS5odG1sOiBBZGRlZC4KKwogMjAxMy0wMi0xNCAgTGFtYXJxdWUgVi4gU291emEgIDxMYW1hcnF1
ZS5Tb3V6YUBiYXN5c2tvbS5jb20+CiAKICAgICAgICAgU3VwcG9ydCB0aGUgY2ggdW5pdCBmcm9t
IGNzczMtdmFsdWVzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aGVlbGV2
ZW50LWluLXRleHQtbm9kZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93
aGVlbGV2ZW50LWluLXRleHQtbm9kZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2RmYzZmZDI5
NDRlYTE1M2UwMGNlN2Y0YTAwMmJjMzhiMGJjOWZmNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL3doZWVsZXZlbnQtaW4tdGV4dC1ub2RlLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDYgQEAKKydSZWFsJyBNb3VzZVdoZWVsIGV2ZW50cyBzaG91bGQgbm90IGJlIGRp
c3BhdGNoZWQgb24gdGhlIHRleHQgbm9kZSwgYnV0IGluc3RlYWQgb24gaXRzIHBhcmVudC4KK1BB
U1MgdGhlRXZlbnQudGFyZ2V0Lm5vZGVOYW1lIGlzICJESVYiCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK1RoaXMgaXMgYSBkaXYgY29udGFpbmluZyB0
ZXh0LiBXaGVlbCBldmVudHMgb3JpZ2luYXRpbmcgb24gdGhlIHRleHQgbm9kZSBzaG91bGQgdGFy
Z2V0IHRoZSBkaXYuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aGVlbGV2
ZW50LWluLXRleHQtbm9kZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2hlZWxldmVu
dC1pbi10ZXh0LW5vZGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZWNkMzg1ZjhlY2FlMTJlYTk0NmRiYzVl
MDAyZTljOTQ3MjVhNzg3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvd2hlZWxldmVudC1pbi10ZXh0LW5vZGUuaHRtbApAQCAtMCwwICsxLDM5IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgd2luZG93
LmpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgICAgIGZ1bmN0aW9uIHRlc3QoKSB7CisgICAg
ICAgICAgICB2YXIgZGl2ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignZGl2Jyk7CisgICAgICAg
ICAgICBpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAgICAgICAgICAgICAgZXZlbnRTZW5k
ZXIubW91c2VNb3ZlVG8oZGl2Lm9mZnNldExlZnQgKyA1LCBkaXYub2Zmc2V0VG9wICsgNSk7Cisg
ICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeSgwLDEyMCk7CisgICAgICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGRlYnVnKCJGQUlMOiBUaGlzIHRlc3QgcmVx
dWlyZXMgd2luZG93LmV2ZW50U2VuZGVyLiIpOworICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVz
dCgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gd2hlZWxI
YW5kbGVyKGUpIHsKKyAgICAgICAgICAgIHdpbmRvdy50aGVFdmVudCA9IGU7CisKKyAgICAgICAg
ICAgIGRlYnVnKCInUmVhbCcgTW91c2VXaGVlbCBldmVudHMgc2hvdWxkIG5vdCBiZSBkaXNwYXRj
aGVkIG9uIHRoZSB0ZXh0IG5vZGUsIGJ1dCBpbnN0ZWFkIG9uIGl0cyBwYXJlbnQuIik7CisgICAg
ICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3RoZUV2ZW50LnRhcmdldC5ub2RlTmFtZScs
ICdESVYnKTsKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICB9CisKKyAgICAg
ICAgd2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHZhciBkaXYgPSBk
b2N1bWVudC5xdWVyeVNlbGVjdG9yKCdkaXYnKTsKKyAgICAgICAgICAgIGRpdi5hZGRFdmVudExp
c3RlbmVyKCdtb3VzZXdoZWVsJywgd2hlZWxIYW5kbGVyKTsKKyAgICAgICAgICAgIHRlc3QoKTsK
KyAgICAgICAgfTsKKyAgICA8L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8ZGl2
PlRoaXMgaXMgYSBkaXYgY29udGFpbmluZyB0ZXh0LiBXaGVlbCBldmVudHMgb3JpZ2luYXRpbmcg
b24gdGhlIHRleHQKKyAgICBub2RlIHNob3VsZCB0YXJnZXQgdGhlIGRpdi48L2Rpdj4KKzwvYm9k
eT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188736</attachid>
            <date>2013-02-16 15:56:35 -0800</date>
            <delta_ts>2013-02-17 22:32:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109939-20130217005246.patch</filename>
            <type>text/plain</type>
            <size>5884</size>
            <attacher name="Mike West">mkwst</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyOTE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWMxNmE1ODBlYzA4MTkx
YmQ3NWYzZGQ3MmRjZjNlYTdmZThiNjUxMC4uNWQ4NmEzZDMwZTUyYWU4ZmVhNmMzYzFiODkyYmZh
MGYwMWUwMDAzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEzLTAyLTE2ICBNaWtl
IFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2hlZWxFdmVudCBzaG91bGQg
bm90IHRhcmdldCB0ZXh0IG5vZGVzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTA5OTM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIu
CisKKyAgICAgICAgV2hlZWxFdmVudCwgbGlrZSBvdGhlciBtb3VzZSBldmVudHMsIHNob3VsZCBu
b3QgdGFyZ2V0IHRleHQgbm9kZXMuCisgICAgICAgIEV2ZW50SGFuZGxlciBjb3JyZWN0bHkgaGFu
ZGxlcyBvdGhlciBtb3VzZSBldmVudHMgYnkgcmV0YXJnZXRpbmcKKyAgICAgICAgZXZlbnRzIHRv
IHRleHQgbm9kZXMnIHBhcmVudHM7IHRoaXMgcGF0Y2ggYWRkcyB0aGF0IGxvZ2ljIHRvIHRoZQor
ICAgICAgICBXaGVlbEV2ZW50IGhhbmRsZXIuCisKKyAgICAgICAgVGhpcyBzaG91bGQgYWxsb3cg
alF1ZXJ5IHRvIHN0b3Agd29ya2luZyBhcm91bmQgV2ViS2l0J3MgYmVoYXZpb3JbMV0uCisKKyAg
ICAgICAgWzFdOiBodHRwczovL2dpdGh1Yi5jb20vanF1ZXJ5L2pxdWVyeS9jb21taXQvYzYxMTUw
NDI3ZmM4Y2NjOGU4ODRkZjhmMjIxYTZjOWJiNTQ3NzkyOQorCisgICAgICAgIFRlc3Q6IGZhc3Qv
ZXZlbnRzL3doZWVsZXZlbnQtaW4tdGV4dC1ub2RlLmh0bWwKKworICAgICAgICAqIHBhZ2UvRXZl
bnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFuZGxlV2hl
ZWxFdmVudCk6CisgICAgICAgICAgICBJZiBhIFdoZWVsRXZlbnQncyBoaXQgdGVzdCBsYW5kcyBv
biBhIHRleHQgbm9kZSwgcmV0YXJnZXQgdGhlCisgICAgICAgICAgICBldmVudCB0byB0aGUgdGV4
dCBub2RlJ3MgcGFyZW50LiBEbyB0aGlzIGJlZm9yZSBsYXRjaGluZyB0aGUgbm9kZS4KKwogMjAx
My0wMi0xNCAgVG9ueSBDaGFuZyAgPHRvbnlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2
aWV3ZWQsIHNldCBzdm46ZW9sLXN0eWxlIENSTEYgZm9yIC5zbG4gZmlsZXMuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggNjc3NzZmYzQyNWUyMzZlNzVkZTI1YmE5ODhiNjdl
OTE1ZDEzMjMxNy4uZWFhNjg2YTdmNzU5YzRiZjU0YTJlZDNiNmFjNzVhNGFmZmIzYTNiYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtMjM2NywyMiArMjM2NywyOCBAQCBi
b29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZl
bnQmIGUpCiAgICAgc2V0RnJhbWVXYXNTY3JvbGxlZEJ5VXNlcigpOwogICAgIExheW91dFBvaW50
IHZQb2ludCA9IHZpZXctPndpbmRvd1RvQ29udGVudHMoZS5wb3NpdGlvbigpKTsKIAotICAgIE5v
ZGUqIG5vZGU7Ci0gICAgYm9vbCBpc092ZXJXaWRnZXQ7Ci0KICAgICBIaXRUZXN0UmVxdWVzdCBy
ZXF1ZXN0KEhpdFRlc3RSZXF1ZXN0OjpSZWFkT25seSk7CiAgICAgSGl0VGVzdFJlc3VsdCByZXN1
bHQodlBvaW50KTsKICAgICBkb2MtPnJlbmRlclZpZXcoKS0+aGl0VGVzdChyZXF1ZXN0LCByZXN1
bHQpOwogCiAgICAgYm9vbCB1c2VMYXRjaGVkV2hlZWxFdmVudE5vZGUgPSBlLnVzZUxhdGNoZWRF
dmVudE5vZGUoKTsKIAorICAgIE5vZGUqIG5vZGUgPSByZXN1bHQuaW5uZXJOb2RlKCk7CisgICAg
Ly8gV2hlZWwgZXZlbnRzIHNob3VsZCBub3QgZGlzcGF0Y2ggdG8gdGV4dCBub2Rlcy4KKyAgICBp
ZiAobm9kZSAmJiBub2RlLT5pc1RleHROb2RlKCkpIHsKKyAgICAgICAgQW5jZXN0b3JDaGFpbldh
bGtlciB3YWxrZXIobm9kZSk7CisgICAgICAgIHdhbGtlci5wYXJlbnQoKTsKKyAgICAgICAgbm9k
ZSA9IHdhbGtlci5nZXQoKTsKKyAgICB9CisKKyAgICBib29sIGlzT3ZlcldpZGdldDsKICAgICBp
ZiAodXNlTGF0Y2hlZFdoZWVsRXZlbnROb2RlKSB7CiAgICAgICAgIGlmICghbV9sYXRjaGVkV2hl
ZWxFdmVudE5vZGUpIHsKLSAgICAgICAgICAgIG1fbGF0Y2hlZFdoZWVsRXZlbnROb2RlID0gcmVz
dWx0LmlubmVyTm9kZSgpOworICAgICAgICAgICAgbV9sYXRjaGVkV2hlZWxFdmVudE5vZGUgPSBu
b2RlOwogICAgICAgICAgICAgbV93aWRnZXRJc0xhdGNoZWQgPSByZXN1bHQuaXNPdmVyV2lkZ2V0
KCk7Ci0gICAgICAgIH0KKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBub2RlID0gbV9sYXRj
aGVkV2hlZWxFdmVudE5vZGUuZ2V0KCk7CiAKLSAgICAgICAgbm9kZSA9IG1fbGF0Y2hlZFdoZWVs
RXZlbnROb2RlLmdldCgpOwogICAgICAgICBpc092ZXJXaWRnZXQgPSBtX3dpZGdldElzTGF0Y2hl
ZDsKICAgICB9IGVsc2UgewogICAgICAgICBpZiAobV9sYXRjaGVkV2hlZWxFdmVudE5vZGUpCkBA
IC0yMzkwLDcgKzIzOTYsNiBAQCBib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlV2hlZWxFdmVudChj
b25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIGUpCiAgICAgICAgIGlmIChtX3ByZXZpb3VzV2hlZWxT
Y3JvbGxlZE5vZGUpCiAgICAgICAgICAgICBtX3ByZXZpb3VzV2hlZWxTY3JvbGxlZE5vZGUgPSAw
OwogCi0gICAgICAgIG5vZGUgPSByZXN1bHQuaW5uZXJOb2RlKCk7CiAgICAgICAgIGlzT3Zlcldp
ZGdldCA9IHJlc3VsdC5pc092ZXJXaWRnZXQoKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA4MTE3ZDcyOTc0
NTkyZTdiZmQ3ZWU0ZDM3NTI5YmEzODQ0YWJiZDMyLi4yYmNkNjgzZTVkNzhjOTk1MzgyNzc0ODIz
NzdiMDIwOWRhYjExMGMyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTMtMDItMTYgIE1pa2Ug
V2VzdCAgPG1rd3N0QGNocm9taXVtLm9yZz4KKworICAgICAgICBXaGVlbEV2ZW50IHNob3VsZCBu
b3QgdGFyZ2V0IHRleHQgbm9kZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMDk5MzkKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4K
KworICAgICAgICAqIGZhc3QvZXZlbnRzL3doZWVsZXZlbnQtaW4tdGV4dC1ub2RlLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvd2hlZWxldmVudC1pbi10ZXh0LW5v
ZGUuaHRtbDogQWRkZWQuCisKIDIwMTMtMDItMTQgIExhbWFycXVlIFYuIFNvdXphICA8TGFtYXJx
dWUuU291emFAYmFzeXNrb20uY29tPgogCiAgICAgICAgIFN1cHBvcnQgdGhlIGNoIHVuaXQgZnJv
bSBjc3MzLXZhbHVlcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2hlZWxl
dmVudC1pbi10ZXh0LW5vZGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
d2hlZWxldmVudC1pbi10ZXh0LW5vZGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNkZmM2ZmQy
OTQ0ZWExNTNlMDBjZTdmNGEwMDJiYzM4YjBiYzlmZjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy93aGVlbGV2ZW50LWluLXRleHQtbm9kZS1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSw2IEBACisnUmVhbCcgTW91c2VXaGVlbCBldmVudHMgc2hvdWxkIG5vdCBiZSBk
aXNwYXRjaGVkIG9uIHRoZSB0ZXh0IG5vZGUsIGJ1dCBpbnN0ZWFkIG9uIGl0cyBwYXJlbnQuCitQ
QVNTIHRoZUV2ZW50LnRhcmdldC5ub2RlTmFtZSBpcyAiRElWIgorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitUaGlzIGlzIGEgZGl2IGNvbnRhaW5pbmcg
dGV4dC4gV2hlZWwgZXZlbnRzIG9yaWdpbmF0aW5nIG9uIHRoZSB0ZXh0IG5vZGUgc2hvdWxkIHRh
cmdldCB0aGUgZGl2LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2hlZWxl
dmVudC1pbi10ZXh0LW5vZGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3doZWVsZXZl
bnQtaW4tdGV4dC1ub2RlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWVjZDM4NWY4ZWNhZTEyZWE5NDZkYmM1
ZTAwMmU5Yzk0NzI1YTc4NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL3doZWVsZXZlbnQtaW4tdGV4dC1ub2RlLmh0bWwKQEAgLTAsMCArMSwzOSBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAgIHdpbmRv
dy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgICAgICBmdW5jdGlvbiB0ZXN0KCkgeworICAg
ICAgICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2RpdicpOworICAgICAg
ICAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgeworICAgICAgICAgICAgICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlTW92ZVRvKGRpdi5vZmZzZXRMZWZ0ICsgNSwgZGl2Lm9mZnNldFRvcCArIDUpOwor
ICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnkoMCwxMjApOworICAgICAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBkZWJ1ZygiRkFJTDogVGhpcyB0ZXN0IHJl
cXVpcmVzIHdpbmRvdy5ldmVudFNlbmRlci4iKTsKKyAgICAgICAgICAgICAgICBmaW5pc2hKU1Rl
c3QoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHdoZWVs
SGFuZGxlcihlKSB7CisgICAgICAgICAgICB3aW5kb3cudGhlRXZlbnQgPSBlOworCisgICAgICAg
ICAgICBkZWJ1ZygiJ1JlYWwnIE1vdXNlV2hlZWwgZXZlbnRzIHNob3VsZCBub3QgYmUgZGlzcGF0
Y2hlZCBvbiB0aGUgdGV4dCBub2RlLCBidXQgaW5zdGVhZCBvbiBpdHMgcGFyZW50LiIpOworICAg
ICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0aGVFdmVudC50YXJnZXQubm9kZU5hbWUn
LCAnRElWJyk7CisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgfQorCisgICAg
ICAgIHdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICB2YXIgZGl2ID0g
ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignZGl2Jyk7CisgICAgICAgICAgICBkaXYuYWRkRXZlbnRM
aXN0ZW5lcignbW91c2V3aGVlbCcsIHdoZWVsSGFuZGxlcik7CisgICAgICAgICAgICB0ZXN0KCk7
CisgICAgICAgIH07CisgICAgPC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAgPGRp
dj5UaGlzIGlzIGEgZGl2IGNvbnRhaW5pbmcgdGV4dC4gV2hlZWwgZXZlbnRzIG9yaWdpbmF0aW5n
IG9uIHRoZSB0ZXh0CisgICAgbm9kZSBzaG91bGQgdGFyZ2V0IHRoZSBkaXYuPC9kaXY+Cis8L2Jv
ZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>