<?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>30055</bug_id>
          
          <creation_ts>2009-10-04 03:08:50 -0700</creation_ts>
          <short_desc>Bad DOM performance in large SVG files</short_desc>
          <delta_ts>2010-02-17 11:54:03 -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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Windows XP</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://paroga.com/webkit/rect.php?c=10000&amp;s=10</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>32815</dependson>
    
    <dependson>33012</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Patrick R. Gansterer">paroga</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>bdakin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dglazkov</cc>
    
    <cc>emacemac7</cc>
    
    <cc>eric</cc>
    
    <cc>krit</cc>
    
    <cc>oliver</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>152143</commentid>
    <comment_count>0</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2009-10-04 03:08:50 -0700</bug_when>
    <thetext>When you click on the 1st rect all rects get yellow, on the 2nd they get blue.
When you click on the 3rd the first rect gets lime, on the 4th it gets red.

Setting only one rect is as slow as setting all rects.
In Firefox 3 you see a big difference between setting all or only one rect.

With the c-parameter you can change the count of the rects, with the s-parameter the size.

Setting only one rect is much faster in http://paroga.com/webkit/rect.php?c=4 than in http://paroga.com/webkit/rect.php?c=10000.
In Firefox there is no difference.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>152183</commentid>
    <comment_count>1</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2009-10-04 13:01:58 -0700</bug_when>
    <thetext>Most of the time ist spent in:
RenderLayer::paintLayer
RenderSVGRoot::paint

It seems that the complete SVG will be rendered every time.

I tested it with the Qt port where the dirtyRect is always the size of the whole frame.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>152701</commentid>
    <comment_count>2</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2009-10-06 06:28:27 -0700</bug_when>
    <thetext>The same page as html (HTML:div insted of SVG:rect):
http://paroga.com/webkit/div.php?c=4
http://paroga.com/webkit/div.php?c=10000

When only setting a single rect (click on rect 3 or 4) the HTML version is much faster. When changing the color of all rects the SVG version is faster.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>153153</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-10-07 12:47:18 -0700</bug_when>
    <thetext>I&apos;m not sure I see the difference.  WebKit only seems to be drawing the SVG rects as their added.  Using Quartz Debug, I do not see it repainting the whole SVG every time.

Bug 14015 is sorta related (drawing too much).

I think we need to see a better example to see the performance difference, if there is one.  Your example does not convince me that we&apos;re drawing too much.  However having written the code, I believe you that we&apos;re drawing too much. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>153291</commentid>
    <comment_count>4</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2009-10-07 22:37:11 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; I&apos;m not sure I see the difference.  WebKit only seems to be drawing the SVG
&gt; rects as their added.  Using Quartz Debug, I do not see it repainting the whole
&gt; SVG every time.
Have you tried it wit rect.php?c=10000&amp;s=3? Maybay it there to many rects out of the frame, you can&apos;t see a difference. It is not the inital rendering, you can see the difference only when click on rect 1, 2, 3 or 4.

I think that the dirtyRegion is calculatet correctly, but nothing cares about it (at least in the Qt port)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>153502</commentid>
    <comment_count>5</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-10-08 13:23:54 -0700</bug_when>
    <thetext>OK, so clicking is important, yes.  I didn&apos;t realize I had to click on them.

I tried these just now in Safari 4.0.3 and SVG was correctly redrawing only one svg rect when toggling the color on one rect.  If Qt is re-drawing the whole page, that seems like a qt bug.  I did not try on tip of tree, but I kinda doubt this regressed... but maybe it did.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>153514</commentid>
    <comment_count>6</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2009-10-08 13:44:40 -0700</bug_when>
    <thetext>(In reply to comment #5)
1) open http://paroga.com/webkit/rect.php?c=4&amp;s=3
2) click on the 1st rect and stop the time until the first rect changes its color
3) click on the 3rd rect and stop the time until the first rect changes its color
4) open http://paroga.com/webkit/rect.php?c=10000&amp;s=3
5) click on the 1st rect and stop the time until the first rect changes its color
6) click on the 3rd rect and stop the time until the first rect changes its color
7) time in step 6 is much bigger than in step 3

Both times should be the same, because only one rect changes it&apos;s color. When time in step 2 is much bigger than in step 5 this is ok, because in the second page are much more items to be redrawn.

You can see the expected result when you open the page with Firefox.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>155490</commentid>
    <comment_count>7</comment_count>
      <attachid>41379</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2009-10-18 09:10:27 -0700</bug_when>
    <thetext>Created attachment 41379
Paint RenderPath only when necessary

With this path clicking on the 3rd or 4th rect in http://paroga.com/webkit/rect.php?c=10000&amp;s=3 is about 4 times faster on my computer. (time from click event until the first rect changes it&apos;s color)
I&apos;m not sure if this is the right place for my changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>156412</commentid>
    <comment_count>8</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-10-20 23:17:48 -0700</bug_when>
    <thetext>This looks great!  I&apos;d like to test the patch myself first before I r+ this though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>158667</commentid>
    <comment_count>9</comment_count>
      <attachid>41379</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2009-10-28 12:52:31 -0700</bug_when>
    <thetext>Comment on attachment 41379
Paint RenderPath only when necessary

Why are you checking for intersection prior to applying the local transform to the paintInfo region?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>158686</commentid>
    <comment_count>10</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2009-10-28 13:40:14 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; Why are you checking for intersection prior to applying the local transform to
&gt; the paintInfo region?
I only tried to find an easy way to demonstate the performance problem. The paintInfo.context-&gt;save(); stuff takes a significant amount of time on my machine. In my optinion there must be a better way to handle &quot;DOM repaints&quot; in general. Always iterateing over _all_ items isn&apos;t very cool.
Maybe you can confirm this issue and tell me the prefered solution.

If you take a look at http://paroga.com/webkit/livedemo.php you can see a (not so good) example what people do with SVG.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>158714</commentid>
    <comment_count>11</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-10-28 14:49:24 -0700</bug_when>
    <thetext>This patch is exactly the right idea.  I just need to confirm that it&apos;s implemented correctly.  I need to make space in my schedule to test your patch locally and check to see if other if statements like this one should be added to SVG renderers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159130</commentid>
    <comment_count>12</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-10-29 15:56:25 -0700</bug_when>
    <thetext>Ok, I&apos;m not able to reproduce the slowness you mention about clicking on the 3rd or 4th rect in http://paroga.com/webkit/rect.php?c=10000&amp;s=3.

That example is actually really poor, because it requires someone to know that they&apos;re supposed to click on a special rect to demonstrate the bug.  Much better would be a self-documenting page with buttons one could click on which say what they do.

I agree we should probably make a change like this.  I just don&apos;t think we&apos;ve justified it very well up until now.

The pathalogical case that you&apos;re trying to demonstrate is a single group containing a large number of path objects (&lt;rect&gt;, etc) where only one of them changes.  In current SVG code, all of them will be asked to paint and then the results will be clipped out. It appears that the clipping is rather cheap in CoreGraphics, but whatever platform you are using is slower.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159242</commentid>
    <comment_count>13</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2009-10-30 01:00:14 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; That example is actually really poor, because it requires someone to know that
&gt; they&apos;re supposed to click on a special rect to demonstrate the bug.  Much
&gt; better would be a self-documenting page with buttons one could click on which
&gt; say what they do.
I&apos;ve improved the example.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159407</commentid>
    <comment_count>14</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2009-10-30 12:45:26 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; Ok, I&apos;m not able to reproduce the slowness you mention about clicking on the
&gt; 3rd or 4th rect in http://paroga.com/webkit/rect.php?c=10000&amp;s=3.
I can&apos;t believe you! ;-) I now compiled r50334 with the Qt-port (4.6 beta) on windows and tested the following patch (with g_checkIntersect true and false):
&gt;  if (paintInfo.context-&gt;paintingDisabled() || style()-&gt;visibility() ...)
&gt;          return;
&gt; 
&gt; +    FloatRect boundingBox = repaintRectInLocalCoordinates();
&gt; +    if (g_checkIntersect &amp;&amp; !boundingBox.intersects(paintInfo.rect))
&gt; +        return;
&gt; +
&gt;      paintInfo.context-&gt;save();
&gt;      paintInfo.context-&gt;concatCTM(localToParentTransform());
&gt;  
&gt;      SVGResourceFilter* filter = 0;
&gt;  
&gt; -    FloatRect boundingBox = repaintRectInLocalCoordinates();
&gt;      if (paintInfo.phase == PaintPhaseForeground) {
&gt;          PaintInfo savedInfo(paintInfo);
When I open http://paroga.com/webkit/rect.php?c=80000&amp;s=3 with g_checkIntersect = true it takes about 2 seconds to change the color of the first element. With g_checkIntersect = false the same action takes about 10 seconds on my machine.

Maybe the rendering/clipping isn&apos;t as time-consuming with your port? Is it possible that you try it with the Qt-port? When i apply this patch to WebCore it can&apos;t be a Qt-specific rendering problem?!?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>161786</commentid>
    <comment_count>15</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2009-11-09 14:19:36 -0800</bug_when>
    <thetext>&gt; Maybe the rendering/clipping isn&apos;t as time-consuming with your port? Is it
&gt; possible that you try it with the Qt-port? When i apply this patch to WebCore
&gt; it can&apos;t be a Qt-specific rendering problem?!?

WebCore uses the platform&apos;s graphics library, if that graphics library has bad perf in some cases it can easily cause all sorts of badness.  I&apos;m unsure whether the solution should be to get Qt to fix this issue (presumably it&apos;s a problem in their graphics library) or fix it in WebCore itself (which may negatively impact performance of other platforms)

Maybe this logic should be in GrpahicsContextQt?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>161979</commentid>
    <comment_count>16</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2009-11-10 01:01:12 -0800</bug_when>
    <thetext>(In reply to comment #15)
&gt; WebCore uses the platform&apos;s graphics library, if that graphics library has bad
&gt; perf in some cases it can easily cause all sorts of badness.  I&apos;m unsure
&gt; whether the solution should be to get Qt to fix this issue (presumably it&apos;s a
&gt; problem in their graphics library) or fix it in WebCore itself (which may
&gt; negatively impact performance of other platforms)
&gt; 
&gt; Maybe this logic should be in GrpahicsContextQt?
Do you think rendering anything ist better than checking if it is necessary? I think WebCore should render as least as possible. In GrpahicsContextQt there won&apos;t be any information to check if painting is required. Rely on a &quot;perfect performing&quot; graphics library isn&apos;t the right way in opinion. There might be some other ports with slow graphics librarys too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>163779</commentid>
    <comment_count>17</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2009-11-15 15:01:06 -0800</bug_when>
    <thetext>(In reply to comment #16)
&gt; (In reply to comment #15)
&gt; &gt; WebCore uses the platform&apos;s graphics library, if that graphics library has bad
&gt; &gt; perf in some cases it can easily cause all sorts of badness.  I&apos;m unsure
&gt; &gt; whether the solution should be to get Qt to fix this issue (presumably it&apos;s a
&gt; &gt; problem in their graphics library) or fix it in WebCore itself (which may
&gt; &gt; negatively impact performance of other platforms)
&gt; &gt; 
&gt; &gt; Maybe this logic should be in GrpahicsContextQt?
&gt; Do you think rendering anything ist better than checking if it is necessary? I
&gt; think WebCore should render as least as possible. In GrpahicsContextQt there
&gt; won&apos;t be any information to check if painting is required. Rely on a &quot;perfect
&gt; performing&quot; graphics library isn&apos;t the right way in opinion. There might be
&gt; some other ports with slow graphics librarys too.

The problem is that if the underlying graphics library is already doing the tests it may have a more efficient way of doing so, add to that the fact that the underlying graphics libraries that do perform sensible clipping optimisations will still be doing their own clip tests this seems like a patch that has bad perf impact on good libraries to deal with poor performance in others.

I suspect if we really do want webcore to work around what is arguably a perf bug in Qts graphics subsystem the fix should be placed in GraphicsContextQt directly</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>163828</commentid>
    <comment_count>18</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-11-15 18:32:46 -0800</bug_when>
    <thetext>I think we can use both approaches, and I think that this approach has some usefulness.  It needs to be well tested though.  I also agree with Oliver, that if Qt is not properly ignoring drawing commands which are issued outside of the clip region, than that seems like a major bug in Qt.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>163831</commentid>
    <comment_count>19</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2009-11-15 18:48:26 -0800</bug_when>
    <thetext>(In reply to comment #17)
&gt; The problem is that if the underlying graphics library is already doing the
&gt; tests it may have a more efficient way of doing so, add to that the fact that
&gt; the underlying graphics libraries that do perform sensible clipping
&gt; optimisations will still be doing their own clip tests this seems like a patch
&gt; that has bad perf impact on good libraries to deal with poor performance in
&gt; others.
So this patch has to move to a higher level where &quot;more intelligent&quot; test can
be done and the clipping should be fixed in GraphicsContextQt directly.

However the following test is much slower(!) in Safari/Chrome than in FF:
Click on &quot;Set first lime/red&quot; at http://paroga.com/webkit/rect.php?c=80000&amp;s=2
On my machine: FF ~150ms, Opera ~300ms, Chrome ~2s, Safari ~10s

How to get the same performance of FF/Opera in WebCore? Any suggestions?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>167320</commentid>
    <comment_count>20</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-11-30 12:17:58 -0800</bug_when>
    <thetext>Attachment 41379 passed the style-queue</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170456</commentid>
    <comment_count>21</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2009-12-10 10:22:12 -0800</bug_when>
    <thetext>(In reply to comment #19)
&gt; (In reply to comment #17)
&gt; &gt; The problem is that if the underlying graphics library is already doing the
&gt; &gt; tests it may have a more efficient way of doing so, add to that the fact that
&gt; &gt; the underlying graphics libraries that do perform sensible clipping
&gt; &gt; optimisations will still be doing their own clip tests this seems like a patch
&gt; &gt; that has bad perf impact on good libraries to deal with poor performance in
&gt; &gt; others.
&gt; So this patch has to move to a higher level where &quot;more intelligent&quot; test can
&gt; be done and the clipping should be fixed in GraphicsContextQt directly.
&gt; 
&gt; However the following test is much slower(!) in Safari/Chrome than in FF:
&gt; Click on &quot;Set first lime/red&quot; at http://paroga.com/webkit/rect.php?c=80000&amp;s=2
&gt; On my machine: FF ~150ms, Opera ~300ms, Chrome ~2s, Safari ~10s
&gt; 
&gt; How to get the same performance of FF/Opera in WebCore? Any suggestions?

I don&apos;t see this 10s delay you&apos;re referring to what platform are you testing on?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170468</commentid>
    <comment_count>22</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2009-12-10 11:12:14 -0800</bug_when>
    <thetext>(In reply to comment #21)
&gt; I don&apos;t see this 10s delay you&apos;re referring to what platform are you testing
&gt; on?
Safari 4.0.4, Windows XP SP3, IBM T60 2GHz, 3GB</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>171172</commentid>
    <comment_count>23</comment_count>
      <attachid>41379</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2009-12-12 23:22:35 -0800</bug_when>
    <thetext>Comment on attachment 41379
Paint RenderPath only when necessary

I found another testcase where we get pathologically bad perf due to this issue which would imply that there&apos;s just too much cost in not clipping prior to calling the graphics library -- my test case just created many many many (~50000 odd) nodes mostly off the screen and this patch represents a huge improvement in that case.

Still not sure why i don&apos;t see the perf problems you do in your example, but with a testcase that is too slow this shows up as a clear problem in shark.

r=me.

The patch applies cleanly lets see how the commit bot deals with the changelog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>171174</commentid>
    <comment_count>24</comment_count>
      <attachid>41379</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-12-13 01:14:20 -0800</bug_when>
    <thetext>Comment on attachment 41379
Paint RenderPath only when necessary

Rejecting patch 41379 from commit-queue.

Failed to run &quot;[&apos;WebKitTools/Scripts/run-webkit-tests&apos;, &apos;--no-launch-safari&apos;, &apos;--exit-after-n-failures=1&apos;, &apos;--quiet&apos;]&quot; exit_code: 1
Running build-dumprendertree
Running tests from /Users/eseidel/Projects/CommitQueue/LayoutTests
Testing 11771 test cases.
svg/batik/filters/filterRegions.svg -&gt; failed

Exiting early after 1 failures. 10019 tests run.
313.92s total testing time

10018 test cases (99%) succeeded
1 test case (&lt;1%) had incorrect layout
6 test cases (&lt;1%) had stderr output</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>171175</commentid>
    <comment_count>25</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2009-12-13 01:23:31 -0800</bug_when>
    <thetext>(In reply to comment #23)
&gt; (From update of attachment 41379 [details])
&gt; I found another testcase where we get pathologically bad perf due to this issue
&gt; which would imply that there&apos;s just too much cost in not clipping prior to
&gt; calling the graphics library -- my test case just created many many many
&gt; (~50000 odd) nodes mostly off the screen and this patch represents a huge
&gt; improvement in that case.

offscreen:
It depends. If the SVG size is also bigger than the screensize, we shouldn&apos;t clip to the currently visible area. smfr remind me, that we can include a SVG into a HTML-file and make some 3D transformations (via CSS3) with it. That might not work correctly, if the SVG is clipped.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>171222</commentid>
    <comment_count>26</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2009-12-13 12:59:51 -0800</bug_when>
    <thetext>(In reply to comment #25)
&gt; (In reply to comment #23)
&gt; &gt; (From update of attachment 41379 [details] [details])
&gt; &gt; I found another testcase where we get pathologically bad perf due to this issue
&gt; &gt; which would imply that there&apos;s just too much cost in not clipping prior to
&gt; &gt; calling the graphics library -- my test case just created many many many
&gt; &gt; (~50000 odd) nodes mostly off the screen and this patch represents a huge
&gt; &gt; improvement in that case.
&gt; 
&gt; offscreen:
&gt; It depends. If the SVG size is also bigger than the screensize, we shouldn&apos;t
&gt; clip to the currently visible area. smfr remind me, that we can include a SVG
&gt; into a HTML-file and make some 3D transformations (via CSS3) with it. That
&gt; might not work correctly, if the SVG is clipped.

We should simply be clipping to the region that is going to actually be drawn to, assuming everything is working correctly that is correct -- if i can apply a 3d transform and that will result in incorrect clipping area then thats a serious bug in the 3d transform paths</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>173849</commentid>
    <comment_count>27</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-12-20 19:07:05 -0800</bug_when>
    <thetext>Curious what the status of this patch is?  Should this be r-&apos;d now that we know that this patch will at least cause one layout test to fail?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>175394</commentid>
    <comment_count>28</comment_count>
      <attachid>41379</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-12-28 22:16:01 -0800</bug_when>
    <thetext>Comment on attachment 41379
Paint RenderPath only when necessary

Marking r- since this causes a test to fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>175395</commentid>
    <comment_count>29</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-12-28 22:16:39 -0800</bug_when>
    <thetext>Also the second OOPS in the ChangeLog would have caused the commit to fail.  ChangeLogs should mention tests affected by a change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>175561</commentid>
    <comment_count>30</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2009-12-29 08:26:04 -0800</bug_when>
    <thetext>(In reply to comment #28)
&gt; (From update of attachment 41379 [details])
&gt; Marking r- since this causes a test to fail.
The problem is that an other area of Webkit does something wrong. This patch is ok, but i depends on an &quot;not created bug&quot;. Can we create a new bug, make the patch depend on in r+ it again?  Who is responsible for the code tested with filterRegions.svg? Maybe he can make a change there to get this patch in?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>175589</commentid>
    <comment_count>31</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-12-29 09:19:56 -0800</bug_when>
    <thetext>Yes, if we&apos;re waiting to commit this because a problem exists that we&apos;ve never actually created a bug for, then definitely we should create a bug. :)

Getting an r+ is relatively easy.  Especially since this patch already had one.  But if we can&apos;t land it due to another bug, we should file the other bug and mark this one blocked.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>175833</commentid>
    <comment_count>32</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2009-12-29 23:52:58 -0800</bug_when>
    <thetext>Can we move this fix to SVGRenderBase::prepareToRenderSVGContent??

This would stop rendering earlier and can improve the rendering time on other parts like images too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>175858</commentid>
    <comment_count>33</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2009-12-30 02:19:59 -0800</bug_when>
    <thetext>(In reply to comment #31)
&gt; Yes, if we&apos;re waiting to commit this because a problem exists that we&apos;ve never
&gt; actually created a bug for, then definitely we should create a bug. :)
Can we r+ and cq+ it again since bug 32815 is fixed now?

(In reply to comment #32)
&gt; Can we move this fix to SVGRenderBase::prepareToRenderSVGContent??
&gt; 
&gt; This would stop rendering earlier and can improve the rendering time on other
&gt; parts like images too.
I think we should commit this change and maybe another too. This patch is not in the SVG part so it might improve also some other parts.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>175862</commentid>
    <comment_count>34</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2009-12-30 03:12:06 -0800</bug_when>
    <thetext>&gt; (In reply to comment #32)
&gt; (In reply to comment #32)
&gt; &gt; Can we move this fix to SVGRenderBase::prepareToRenderSVGContent??
&gt; &gt; 
&gt; &gt; This would stop rendering earlier and can improve the rendering time on other
&gt; &gt; parts like images too.
&gt; I think we should commit this change and maybe another too. This patch is not
&gt; in the SVG part so it might improve also some other parts.

RenderPath is SVG only.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>175872</commentid>
    <comment_count>35</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2009-12-30 03:57:10 -0800</bug_when>
    <thetext>(In reply to comment #34)
&gt; RenderPath is SVG only.
I meant that maybe another componet will use RenderPath in the future, but thats not a real reason.

Moving it to prepareToRenderSVGContent won&apos;t prevent _unnecessary_ paintInfo.context-&gt;save(), concatCTM(...), restore() and so on.
It should be done as early as possible! Iterating over _all_ items, even if only one pixel changed, is already not very performant. (checking which items need a repaint might be even more cpu consuming)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>175874</commentid>
    <comment_count>36</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2009-12-30 04:22:13 -0800</bug_when>
    <thetext>(In reply to comment #35)
&gt; (In reply to comment #34)
&gt; &gt; RenderPath is SVG only.
&gt; I meant that maybe another componet will use RenderPath in the future, but
&gt; thats not a real reason.
&gt; 
&gt; Moving it to prepareToRenderSVGContent won&apos;t prevent _unnecessary_
&gt; paintInfo.context-&gt;save(), concatCTM(...), restore() and so on.
&gt; It should be done as early as possible! Iterating over _all_ items, even if
&gt; only one pixel changed, is already not very performant. (checking which items
&gt; need a repaint might be even more cpu consuming)

Can you please upload a new patch with a link to the bugreport Changelog and the title of the bug? There shouldn&apos;t be Oops&apos;es in a Changelog. Please write why it is not possible to test the speed improvement and I think we can commit it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>175888</commentid>
    <comment_count>37</comment_count>
      <attachid>45658</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2009-12-30 05:47:41 -0800</bug_when>
    <thetext>Created attachment 45658
Paint RenderPath only when necessary</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>175890</commentid>
    <comment_count>38</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-30 05:49:17 -0800</bug_when>
    <thetext>style-queue ran check-webkit-style on attachment 45658 without any errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>175922</commentid>
    <comment_count>39</comment_count>
      <attachid>45658</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2009-12-30 08:01:52 -0800</bug_when>
    <thetext>Comment on attachment 45658
Paint RenderPath only when necessary

LGTM. Thanks for the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>175923</commentid>
    <comment_count>40</comment_count>
      <attachid>45658</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-12-30 08:10:48 -0800</bug_when>
    <thetext>Comment on attachment 45658
Paint RenderPath only when necessary

Rejecting patch 45658 from commit-queue.

Failed to run &quot;[&apos;WebKitTools/Scripts/run-webkit-tests&apos;, &apos;--no-launch-safari&apos;, &apos;--exit-after-n-failures=1&apos;, &apos;--quiet&apos;]&quot; exit_code: 1
Running build-dumprendertree
Running tests from /Users/eseidel/Projects/CommitQueueSVN/LayoutTests
Testing 11854 test cases.
svg/custom/marker-overflow-clip.svg -&gt; failed

Exiting early after 1 failures. 10306 tests run.
313.90s total testing time

10305 test cases (99%) succeeded
1 test case (&lt;1%) had incorrect layout
7 test cases (&lt;1%) had stderr output

Full output: http://webkit-commit-queue.appspot.com/results/152351</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>175931</commentid>
    <comment_count>41</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2009-12-30 08:56:48 -0800</bug_when>
    <thetext>(In reply to comment #40)
&gt; (From update of attachment 45658 [details])
&gt; Rejecting patch 45658 from commit-queue.
&gt; 
&gt; Failed to run &quot;[&apos;WebKitTools/Scripts/run-webkit-tests&apos;, &apos;--no-launch-safari&apos;,
&gt; &apos;--exit-after-n-failures=1&apos;, &apos;--quiet&apos;]&quot; exit_code: 1
&gt; Running build-dumprendertree
&gt; Running tests from /Users/eseidel/Projects/CommitQueueSVN/LayoutTests
&gt; Testing 11854 test cases.
&gt; svg/custom/marker-overflow-clip.svg -&gt; failed
&gt; 
&gt; Exiting early after 1 failures. 10306 tests run.
&gt; 313.90s total testing time
&gt; 
&gt; 10305 test cases (99%) succeeded
&gt; 1 test case (&lt;1%) had incorrect layout
&gt; 7 test cases (&lt;1%) had stderr output
&gt; 
&gt; Full output: http://webkit-commit-queue.appspot.com/results/152351

Ahhh sorry. There is another bug about markers and boundingBoxes: bug 33012 . Without knowing the actual result with your patch, I guess that this fixes the problem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176502</commentid>
    <comment_count>42</comment_count>
      <attachid>45658</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-01-03 18:46:18 -0800</bug_when>
    <thetext>Comment on attachment 45658
Paint RenderPath only when necessary

Marking r- since this seems to cause a test to fail?  Correct me if I&apos;m wrong Dirk.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176546</commentid>
    <comment_count>43</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2010-01-03 23:58:23 -0800</bug_when>
    <thetext>(In reply to comment #42)
&gt; (From update of attachment 45658 [details])
&gt; Marking r- since this seems to cause a test to fail?  Correct me if I&apos;m wrong
&gt; Dirk.
No, the patch is ok. It just depends on anotherone. I&apos;ll commot-queue+ the patch again, once Niko fixed the marker bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>177810</commentid>
    <comment_count>44</comment_count>
      <attachid>45658</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2010-01-06 15:33:07 -0800</bug_when>
    <thetext>Comment on attachment 45658
Paint RenderPath only when necessary

Markers and repaintRects are fixed. Lets try it again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>177980</commentid>
    <comment_count>45</comment_count>
      <attachid>45658</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-01-06 21:30:37 -0800</bug_when>
    <thetext>Comment on attachment 45658
Paint RenderPath only when necessary

Clearing flags on attachment: 45658

Committed r52900: &lt;http://trac.webkit.org/changeset/52900&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>177981</commentid>
    <comment_count>46</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-01-06 21:30:50 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>177983</commentid>
    <comment_count>47</comment_count>
      <attachid>45658</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-01-06 21:34:53 -0800</bug_when>
    <thetext>Comment on attachment 45658
Paint RenderPath only when necessary

This type of fix would be more interesting to apply to the hit-testing code path.  But this fix should be fine.  Thanks for the patch Patrick and the review Dirk!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178235</commentid>
    <comment_count>48</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2010-01-07 09:53:32 -0800</bug_when>
    <thetext>This change broke a bunch of SVG tests, all pixel results. For illustration, visit this at ToT: http://trac.webkit.org/export/52929/trunk/LayoutTests/fast/backgrounds/size/contain-and-cover.html

I think we should roll this change out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178242</commentid>
    <comment_count>49</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2010-01-07 10:09:13 -0800</bug_when>
    <thetext>Reverted as http://trac.webkit.org/changeset/52930.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178251</commentid>
    <comment_count>50</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2010-01-07 10:23:32 -0800</bug_when>
    <thetext>(In reply to comment #48)
&gt; This change broke a bunch of SVG tests, all pixel results. For illustration,
&gt; visit this at ToT:
&gt; http://trac.webkit.org/export/52929/trunk/LayoutTests/fast/backgrounds/size/contain-and-cover.html
&gt; 
&gt; I think we should roll this change out.

A problem of transparent and half transparent parts of some objects?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179179</commentid>
    <comment_count>51</comment_count>
      <attachid>46243</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2010-01-10 15:18:39 -0800</bug_when>
    <thetext>Created attachment 46243
Bad DOM performance in large SVG files</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179180</commentid>
    <comment_count>52</comment_count>
      <attachid>46244</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2010-01-10 15:19:10 -0800</bug_when>
    <thetext>Created attachment 46244
Bad DOM performance in large SVG files</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179199</commentid>
    <comment_count>53</comment_count>
      <attachid>46243</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-01-10 17:02:31 -0800</bug_when>
    <thetext>Comment on attachment 46243
Bad DOM performance in large SVG files

LGTM, I assume there are no pixel test regressions, r+.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179200</commentid>
    <comment_count>54</comment_count>
      <attachid>46244</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-01-10 17:03:27 -0800</bug_when>
    <thetext>Comment on attachment 46244
Bad DOM performance in large SVG files

Interessting that CGPathIsEmpty is that slow... I assume you see a good benefit, so r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179213</commentid>
    <comment_count>55</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2010-01-10 19:05:16 -0800</bug_when>
    <thetext>First patch landed in r53057.

I&apos;m actually slightly uneasy about landing the isempty caching so i&apos;m going to see if there&apos;s something that can be done to get a bigger win.  That said i think that this patch should resolve all of the perf issues in the main testcase attached to this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179260</commentid>
    <comment_count>56</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2010-01-10 21:03:50 -0800</bug_when>
    <thetext>Sorry guys, still no luck on pixel tests. Running &quot;run-webkit-tests --pixel-tests svg&quot; produces: 

Enabling pixel tests with a tolerance of 0.1%
WARNING: Temporarily changing the main display color profile:
	The colors on your screen will change for the duration of the testing.
	This allows the pixel tests to have consistent color values across all machines.
Testing 945 test cases.
svg/W3C-SVG-1.1 .......................................................................
svg/W3C-SVG-1.1/coords-units-01-b.svg -&gt; pixel test failed
.........
svg/W3C-SVG-1.1/filters-composite-02-b.svg -&gt; pixel test failed
..........................................
svg/W3C-SVG-1.1/masking-intro-01-f.svg -&gt; pixel test failed
.
svg/W3C-SVG-1.1/masking-mask-01-b.svg -&gt; pixel test failed
......................................
svg/W3C-SVG-1.1/pservers-grad-03-b.svg -&gt; pixel test failed
...
svg/W3C-SVG-1.1/pservers-grad-06-b.svg -&gt; pixel test failed
.......
svg/W3C-SVG-1.1/pservers-grad-13-b.svg -&gt; pixel hash failed (but pixel test still passes)
....
svg/W3C-SVG-1.1/pservers-grad-17-b.svg -&gt; pixel hash failed (but pixel test still passes)
...
svg/W3C-SVG-1.1/pservers-pattern-01-b.svg -&gt; pixel test failed
.......................................................................
svg/W3C-SVG-1.1/text-deco-01-b.svg -&gt; pixel hash failed (but pixel test still passes)
....
svg/W3C-SVG-1.1/text-path-01-b.svg -&gt; pixel hash failed (but pixel test still passes)
...
svg/W3C-SVG-1.1/text-text-03-b.svg -&gt; pixel hash failed (but pixel test still passes)
....
svg/W3C-SVG-1.1/text-text-07-t.svg -&gt; pixel hash failed (but pixel test still passes)
........
svg/animations .
svg/batik/filters ..
svg/batik/masking .
svg/batik/masking/maskRegions.svg -&gt; pixel test failed
svg/batik/paints ..
svg/batik/paints/patternPreserveAspectRatioA.svg -&gt; pixel test failed
.
svg/batik/paints/patternRegionA.svg -&gt; pixel test failed
.
svg/batik/paints/patternRegions.svg -&gt; pixel test failed
svg/batik/text .....
svg/batik/text/textDecoration2.svg -&gt; pixel hash failed (but pixel test still passes)
..
svg/batik/text/textEffect3.svg -&gt; pixel hash failed (but pixel test still passes)
..
svg/batik/text/textFeatures.svg -&gt; pixel hash failed (but pixel test still passes)
.
svg/batik/text/textGlyphOrientationHorizontal.svg -&gt; pixel hash failed (but pixel test still passes)
.......
svg/batik/text/textOnPathSpaces.svg -&gt; pixel hash failed (but pixel test still passes)
.....
svg/batik/text/textProperties.svg -&gt; pixel hash failed (but pixel test still passes)
.
svg/batik/text/textStyles.svg -&gt; pixel hash failed (but pixel test still passes)
.
svg/batik/text/verticalText.svg -&gt; pixel hash failed (but pixel test still passes)
.
svg/batik/text/verticalTextOnPath.svg -&gt; pixel hash failed (but pixel test still passes)
.
svg/carto.net ..........
svg/css .
svg/css/arrow-with-shadow.svg -&gt; pixel hash failed (but pixel test still passes)
.
svg/css/circle-in-mask-with-shadow.svg -&gt; pixel test failed
..
svg/css/composite-shadow-example.html -&gt; pixel hash failed (but pixel test still passes)
.
svg/css/composite-shadow-with-opacity.html -&gt; pixel hash failed (but pixel test still passes)
....
svg/css/group-with-shadow.svg -&gt; pixel hash failed (but pixel test still passes)
.
svg/css/mask-with-shadow.svg -&gt; pixel test failed
.
svg/css/path-with-shadow.svg -&gt; pixel hash failed (but pixel test still passes)
.
svg/css/stars-with-shadow.html -&gt; pixel hash failed (but pixel test still passes)
svg/custom .......................................
svg/custom/deep-dynamic-updates.svg -&gt; pixel test failed
...................................................
svg/custom/grayscale-gradient-mask.svg -&gt; pixel test failed
............
svg/custom/image-with-transform-clip-filter.svg -&gt; pixel hash failed (but pixel test still passes)
.................
svg/custom/js-late-mask-and-object-creation.svg -&gt; pixel test failed
.
svg/custom/js-late-mask-creation.svg -&gt; pixel test failed
.
svg/custom/js-late-pattern-and-object-creation.svg -&gt; pixel test failed
.
svg/custom/js-late-pattern-creation.svg -&gt; pixel test failed
............
svg/custom/js-update-pattern-child.svg -&gt; pixel test failed
.
svg/custom/js-update-pattern.svg -&gt; pixel test failed
.......................
svg/custom/marker-changes.svg -&gt; pixel hash failed (but pixel test still passes)
.
svg/custom/marker-child-changes.svg -&gt; pixel hash failed (but pixel test still passes)
......
svg/custom/marker-strokeWidth-changes.svg -&gt; pixel hash failed (but pixel test still passes)
..
svg/custom/mask-changes.svg -&gt; pixel test failed
.
svg/custom/mask-child-changes.svg -&gt; pixel test failed
.
svg/custom/mask-excessive-malloc.svg -&gt; pixel test failed
.
svg/custom/mask-inside-defs.svg -&gt; pixel test failed
.
svg/custom/mask-on-multiple-objects.svg -&gt; pixel test failed
.
svg/custom/mask-with-all-units.svg -&gt; pixel test failed
..............
svg/custom/pattern-cycle-detection.svg -&gt; pixel test failed
.
svg/custom/pattern-deep-referencing.svg -&gt; pixel test failed
.
svg/custom/pattern-in-defs.svg -&gt; pixel test failed
.
svg/custom/pattern-rotate.svg -&gt; pixel test failed
.
svg/custom/pattern-with-transformation.svg -&gt; pixel test failed
.
svg/custom/pattern-y-offset.svg -&gt; pixel test failed
...............
svg/custom/radial-gradient-with-outstanding-focalPoint.svg -&gt; pixel test failed
....
svg/custom/resource-invalidate-on-target-update.svg -&gt; pixel test failed
................
svg/custom/stroked-pattern.svg -&gt; pixel test failed
...........................................................................
svg/custom/use-on-symbol-inside-pattern.svg -&gt; pixel test failed
.........................
svg/custom/visibility-override-mask.svg -&gt; pixel test failed
....
svg/dom .........................
svg/dom/SVGRectElement .
svg/dom/SVGScriptElement ....
svg/dom/SVGStyleElement .
svg/dynamic-updates ................................................................................................................................
svg/filters ..........
svg/filters/filter-clip.svg -&gt; pixel test failed
........
svg/hittest ..
svg/hixie/cascade ..
svg/hixie/data-types ..
svg/hixie/dynamic ......
svg/hixie/error ..................
svg/hixie/links ...
svg/hixie/mixed .........
svg/hixie/painting .
svg/hixie/perf .....
svg/hixie/processing-model ...
svg/hixie/rendering-model .....
svg/hixie/shapes/path .
svg/hixie/text .....
svg/hixie/transform .
svg/hixie/use ...
svg/hixie/viewbox ....
svg/hixie/viewbox/preserveAspectRatio ..
svg/text ....
svg/text/selection-background-color.xhtml -&gt; pixel hash failed (but pixel test still passes)
....
svg/text/text-align-04-b.svg -&gt; pixel hash failed (but pixel test still passes)
....
svg/text/text-deco-01-b.svg -&gt; pixel hash failed (but pixel test still passes)
.......
svg/text/text-path-01-b.svg -&gt; pixel hash failed (but pixel test still passes)
....
svg/text/text-text-01-b.svg -&gt; pixel hash failed (but pixel test still passes)
.
svg/text/text-text-03-b.svg -&gt; pixel hash failed (but pixel test still passes)
.
svg/text/text-text-04-t.svg -&gt; pixel hash failed (but pixel test still passes)
...
svg/text/text-text-07-t.svg -&gt; pixel hash failed (but pixel test still passes)
.
svg/text/text-text-08-b.svg -&gt; pixel hash failed (but pixel test still passes)
.......
svg/transforms ..
svg/transforms/text-with-pattern-inside-transformed-html.xhtml -&gt; pixel test failed
.
svg/transforms/text-with-pattern-with-svg-transform.svg -&gt; pixel test failed
svg/webarchive ...
72.68s total testing time

904 test cases (95%) succeeded
41 test cases (4%) had incorrect layout
1 test case (&lt;1%) had stderr output</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179263</commentid>
    <comment_count>57</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2010-01-10 21:06:03 -0800</bug_when>
    <thetext>You can see the failures clearly here:

http://build.chromium.org/buildbot/waterfall.fyi/waterfall?branch=&amp;builder=Webkit+(webkit.org)&amp;builder=Webkit+Linux+(webkit.org)&amp;builder=Webkit+Mac+(webkit.org)&amp;builder=XP+Perf+(webkit.org)&amp;builder=Linux+Perf+(webkit.org)&amp;builder=Webkit+(purify+webkit.org)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179281</commentid>
    <comment_count>58</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2010-01-10 21:22:09 -0800</bug_when>
    <thetext>Just to make sure, with the patch rolled out locally, same command produces:

944 test cases (99%) succeeded
1 test case (&lt;1%) had incorrect layout
1 test case (&lt;1%) had stderr output</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179311</commentid>
    <comment_count>59</comment_count>
      <attachid>46243</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-01-11 02:42:42 -0800</bug_when>
    <thetext>Comment on attachment 46243
Bad DOM performance in large SVG files

Clearing review flag, this patch needs to be revisited. Anyone who works on this has to be aware that regressions can only be spotted when running _PIXEL TESTS_.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179312</commentid>
    <comment_count>60</comment_count>
      <attachid>46244</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-01-11 02:43:00 -0800</bug_when>
    <thetext>Comment on attachment 46244
Bad DOM performance in large SVG files

Taking back review, as discussed with Oliver.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>181186</commentid>
    <comment_count>61</comment_count>
      <attachid>46667</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2010-01-15 03:49:24 -0800</bug_when>
    <thetext>Created attachment 46667
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>181189</commentid>
    <comment_count>62</comment_count>
      <attachid>46668</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2010-01-15 03:51:56 -0800</bug_when>
    <thetext>Created attachment 46668
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>181198</commentid>
    <comment_count>63</comment_count>
      <attachid>46668</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-01-15 04:19:41 -0800</bug_when>
    <thetext>Comment on attachment 46668
Patch

Okay, let&apos;s hope it fixes it this time... Can you file a follow-up bug regarding PaintInfo fixes is renderSubtreeToImage?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>181201</commentid>
    <comment_count>64</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2010-01-15 04:25:40 -0800</bug_when>
    <thetext>Committed r53331: &lt;http://trac.webkit.org/changeset/53331&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>181250</commentid>
    <comment_count>65</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2010-01-15 09:21:33 -0800</bug_when>
    <thetext>Darnit! One test still broke: http://trac.webkit.org/browser/trunk/LayoutTests/fast/borders/svg-as-border-image-2.html

Can you take a look and see what&apos;s happening there?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>181255</commentid>
    <comment_count>66</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2010-01-15 09:48:27 -0800</bug_when>
    <thetext>Rolled out Oliver&apos;s patch in http://trac.webkit.org/changeset/53334, per IRC discussion w/Nikolas.

But you&apos;re really, really close now! Don&apos;t give up!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>181326</commentid>
    <comment_count>67</comment_count>
      <attachid>46701</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2010-01-15 12:48:23 -0800</bug_when>
    <thetext>Created attachment 46701
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>181337</commentid>
    <comment_count>68</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2010-01-15 12:54:47 -0800</bug_when>
    <thetext>Committed r53343: &lt;http://trac.webkit.org/changeset/53343&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>181422</commentid>
    <comment_count>69</comment_count>
      <attachid>46715</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2010-01-15 16:04:23 -0800</bug_when>
    <thetext>Created attachment 46715
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>181423</commentid>
    <comment_count>70</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2010-01-15 16:05:44 -0800</bug_when>
    <thetext>Just opening for a improvement to culling</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>181425</commentid>
    <comment_count>71</comment_count>
      <attachid>46715</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-01-15 16:14:56 -0800</bug_when>
    <thetext>Comment on attachment 46715
Patch

Please add more complete explanation to the ChangeLog.  r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>181426</commentid>
    <comment_count>72</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2010-01-15 16:16:35 -0800</bug_when>
    <thetext>Committed r53349: &lt;http://trac.webkit.org/changeset/53349&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>41379</attachid>
            <date>2009-10-18 09:10:27 -0700</date>
            <delta_ts>2009-12-30 05:47:41 -0800</delta_ts>
            <desc>Paint RenderPath only when necessary</desc>
            <filename>bug-30055-20091018155000.patch</filename>
            <type>text/plain</type>
            <size>1375</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0OTc0OCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTQgQEAKKzIwMDktMTAtMTggIFBhdHJpY2sgR2Fuc3RlcmVyICA8cGFyb2dhQHBh
cm9nYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQ2hlY2sgdGhlIGRpcnR5IGFyZWEgd2hlbiBwYWludGluZyBhIHBhdGguCisKKyAgICAgICAg
Tm8gbmV3IHRlc3RzLiAoT09QUyEpCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUGF0aC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJQYXRoOjpwYWludCk6CisKIDIwMDktMTAtMTcg
IE5pa29sYXMgWmltbWVybWFubiAgPG56aW1tZXJtYW5uQHJpbS5jb20+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgR2VvcmdlIFN0YWlrb3MuCkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJQ
YXRoLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJQYXRoLmNwcAko
cmV2aXNpb24gNDk3MzkpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJQYXRoLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMTgwLDEzICsxODAsMTYgQEAgdm9pZCBSZW5kZXJQYXRoOjpwYWludChQ
YWludEluZm8mIHBhaW50SQogewogICAgIGlmIChwYWludEluZm8uY29udGV4dC0+cGFpbnRpbmdE
aXNhYmxlZCgpIHx8IHN0eWxlKCktPnZpc2liaWxpdHkoKSA9PSBISURERU4gfHwgbV9wYXRoLmlz
RW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgCisKKyAgICBGbG9hdFJlY3Qg
Ym91bmRpbmdCb3ggPSByZXBhaW50UmVjdEluTG9jYWxDb29yZGluYXRlcygpOworICAgIGlmICgh
Ym91bmRpbmdCb3guaW50ZXJzZWN0cyhwYWludEluZm8ucmVjdCkpCisgICAgICAgIHJldHVybjsK
KwogICAgIHBhaW50SW5mby5jb250ZXh0LT5zYXZlKCk7CiAgICAgcGFpbnRJbmZvLmNvbnRleHQt
PmNvbmNhdENUTShsb2NhbFRvUGFyZW50VHJhbnNmb3JtKCkpOwogCiAgICAgU1ZHUmVzb3VyY2VG
aWx0ZXIqIGZpbHRlciA9IDA7CiAKLSAgICBGbG9hdFJlY3QgYm91bmRpbmdCb3ggPSByZXBhaW50
UmVjdEluTG9jYWxDb29yZGluYXRlcygpOwogICAgIGlmIChwYWludEluZm8ucGhhc2UgPT0gUGFp
bnRQaGFzZUZvcmVncm91bmQpIHsKICAgICAgICAgUGFpbnRJbmZvIHNhdmVkSW5mbyhwYWludElu
Zm8pOwogCg==
</data>
<flag name="review"
          id="22754"
          type_id="1"
          status="-"
          setter="eric"
    />
    <flag name="commit-queue"
          id="26656"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>45658</attachid>
            <date>2009-12-30 05:47:41 -0800</date>
            <delta_ts>2010-01-10 15:18:33 -0800</delta_ts>
            <desc>Paint RenderPath only when necessary</desc>
            <filename>bug-30055-20091230.patch</filename>
            <type>text/plain</type>
            <size>1547</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MjYwNikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMDktMTAtMTggUGF0cmljayBHYW5zdGVyZXIgPHBhcm9nYUBwYXJv
Z2EuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEltcHJvdmUgRE9NIHBlcmZvcm1hbmNlIGluIGxhcmdlIFNWRyBmaWxlcy4KKyAgICAgICAgQ2hl
Y2sgdGhlIGRpcnR5IGFyZWEgYmVmb3JlIHBhaW50aW5nIGEgcGF0aCwgd2hpY2ggcHJldmVudHMg
dW5uZWNlc3NhcnkKKyAgICAgICAgY2xpcHBpbmcgYW5kIGNoYW5nZXMgdG8gdGhlIEdyYXBoaWNz
Q29udGV4dC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTMwMDU1CisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUGF0aC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJQYXRoOjpwYWludCk6CisKIDIwMDktMTItMjggIEd1c3Rhdm8gTm9yb25o
YSBTaWx2YSAgPGd1c3Rhdm8ubm9yb25oYUBjb2xsYWJvcmEuY28udWs+CiAKICAgICAgICAgUnVi
YmVyLXN0YW1wZWQgYnkgWGFuIExvcGV6LgpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
UGF0aC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUGF0aC5jcHAJ
KHJldmlzaW9uIDUyNTk1KQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUGF0aC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTE4MCwxMyArMTgwLDE2IEBAIHZvaWQgUmVuZGVyUGF0aDo6cGFpbnQo
UGFpbnRJbmZvJiBwYWludEkKIHsKICAgICBpZiAocGFpbnRJbmZvLmNvbnRleHQtPnBhaW50aW5n
RGlzYWJsZWQoKSB8fCBzdHlsZSgpLT52aXNpYmlsaXR5KCkgPT0gSElEREVOIHx8IG1fcGF0aC5p
c0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIAorCisgICAgRmxvYXRSZWN0
IGJvdW5kaW5nQm94ID0gcmVwYWludFJlY3RJbkxvY2FsQ29vcmRpbmF0ZXMoKTsKKyAgICBpZiAo
IWJvdW5kaW5nQm94LmludGVyc2VjdHMocGFpbnRJbmZvLnJlY3QpKQorICAgICAgICByZXR1cm47
CisKICAgICBwYWludEluZm8uY29udGV4dC0+c2F2ZSgpOwogICAgIHBhaW50SW5mby5jb250ZXh0
LT5jb25jYXRDVE0obG9jYWxUb1BhcmVudFRyYW5zZm9ybSgpKTsKIAogICAgIFNWR1Jlc291cmNl
RmlsdGVyKiBmaWx0ZXIgPSAwOwogCi0gICAgRmxvYXRSZWN0IGJvdW5kaW5nQm94ID0gcmVwYWlu
dFJlY3RJbkxvY2FsQ29vcmRpbmF0ZXMoKTsKICAgICBpZiAocGFpbnRJbmZvLnBoYXNlID09IFBh
aW50UGhhc2VGb3JlZ3JvdW5kKSB7CiAgICAgICAgIFBhaW50SW5mbyBzYXZlZEluZm8ocGFpbnRJ
bmZvKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>46243</attachid>
            <date>2010-01-10 15:18:39 -0800</date>
            <delta_ts>2010-01-15 03:49:07 -0800</delta_ts>
            <desc>Bad DOM performance in large SVG files</desc>
            <filename>bug-30055-20100110151838.patch</filename>
            <type>text/plain</type>
            <size>3885</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
N2E2MmNkMS4uNTUyZmQxYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMC0wMS0xMCAgT2xpdmVyIEh1bnQg
IDxvbGl2ZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEJhZCBET00gcGVyZm9ybWFuY2UgaW4gbGFyZ2UgU1ZHIGZpbGVzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMDA1NQorCisgICAg
ICAgIEN1bGwgUmVuZGVyUGF0aHMgYmVmb3JlIHBhc3Npbmcgb24gdG8gdGhlIHVuZGVybHlpbmcg
Z3JhcGhpY3Mgc3lzdGVtLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclBhdGguY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUGF0aDo6cGFpbnQpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyUGF0aDo6bm9kZUF0RmxvYXRQb2ludCk6CisKIDIwMTAtMDEtMDggIEx1aXogQWdvc3Rp
bmkgIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3NzYS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
S2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4uCmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJQYXRoLmNwcCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclBhdGguY3BwCmluZGV4
IDMwY2JlZGYuLmEyYWMzMzEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclBh
dGguY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclBhdGguY3BwCkBAIC0yMTQsMzIg
KzIxNCwzNiBAQCB2b2lkIFJlbmRlclBhdGg6OnBhaW50KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBp
bnQsIGludCkKIHsKICAgICBpZiAocGFpbnRJbmZvLmNvbnRleHQtPnBhaW50aW5nRGlzYWJsZWQo
KSB8fCBzdHlsZSgpLT52aXNpYmlsaXR5KCkgPT0gSElEREVOIHx8IG1fcGF0aC5pc0VtcHR5KCkp
CiAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIAotICAgIHBhaW50SW5mby5jb250ZXh0LT5z
YXZlKCk7Ci0gICAgcGFpbnRJbmZvLmNvbnRleHQtPmNvbmNhdENUTShsb2NhbFRvUGFyZW50VHJh
bnNmb3JtKCkpOworICAgIFBhaW50SW5mbyBjaGlsZFBhaW50SW5mbyhwYWludEluZm8pOworICAg
IGNoaWxkUGFpbnRJbmZvLmNvbnRleHQtPnNhdmUoKTsKKyAgICBhcHBseVRyYW5zZm9ybVRvUGFp
bnRJbmZvKGNoaWxkUGFpbnRJbmZvLCBtX2xvY2FsVHJhbnNmb3JtKTsKKyAgICBGbG9hdFJlY3Qg
Ym91bmRpbmdCb3ggPSByZXBhaW50UmVjdEluTG9jYWxDb29yZGluYXRlcygpOworICAgIGlmICgh
Ym91bmRpbmdCb3guaW50ZXJzZWN0cyhjaGlsZFBhaW50SW5mby5yZWN0KSkgeworICAgICAgICBj
aGlsZFBhaW50SW5mby5jb250ZXh0LT5yZXN0b3JlKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CiAKICAgICBTVkdSZXNvdXJjZUZpbHRlciogZmlsdGVyID0gMDsKIAotICAgIEZsb2F0UmVjdCBi
b3VuZGluZ0JveCA9IHJlcGFpbnRSZWN0SW5Mb2NhbENvb3JkaW5hdGVzKCk7Ci0gICAgaWYgKHBh
aW50SW5mby5waGFzZSA9PSBQYWludFBoYXNlRm9yZWdyb3VuZCkgewotICAgICAgICBQYWludElu
Zm8gc2F2ZWRJbmZvKHBhaW50SW5mbyk7CisgICAgaWYgKGNoaWxkUGFpbnRJbmZvLnBoYXNlID09
IFBhaW50UGhhc2VGb3JlZ3JvdW5kKSB7CisgICAgICAgIFBhaW50SW5mbyBzYXZlZEluZm8oY2hp
bGRQYWludEluZm8pOwogCi0gICAgICAgIGlmIChwcmVwYXJlVG9SZW5kZXJTVkdDb250ZW50KHRo
aXMsIHBhaW50SW5mbywgYm91bmRpbmdCb3gsIGZpbHRlcikpIHsKKyAgICAgICAgaWYgKHByZXBh
cmVUb1JlbmRlclNWR0NvbnRlbnQodGhpcywgY2hpbGRQYWludEluZm8sIGJvdW5kaW5nQm94LCBm
aWx0ZXIpKSB7CiAgICAgICAgICAgICBpZiAoc3R5bGUoKS0+c3ZnU3R5bGUoKS0+c2hhcGVSZW5k
ZXJpbmcoKSA9PSBTUl9DUklTUEVER0VTKQotICAgICAgICAgICAgICAgIHBhaW50SW5mby5jb250
ZXh0LT5zZXRTaG91bGRBbnRpYWxpYXMoZmFsc2UpOwotICAgICAgICAgICAgZmlsbEFuZFN0cm9r
ZVBhdGgobV9wYXRoLCBwYWludEluZm8uY29udGV4dCwgc3R5bGUoKSwgdGhpcyk7CisgICAgICAg
ICAgICAgICAgY2hpbGRQYWludEluZm8uY29udGV4dC0+c2V0U2hvdWxkQW50aWFsaWFzKGZhbHNl
KTsKKyAgICAgICAgICAgIGZpbGxBbmRTdHJva2VQYXRoKG1fcGF0aCwgY2hpbGRQYWludEluZm8u
Y29udGV4dCwgc3R5bGUoKSwgdGhpcyk7CiAKICAgICAgICAgICAgIGlmIChzdGF0aWNfY2FzdDxT
VkdTdHlsZWRFbGVtZW50Kj4obm9kZSgpKS0+c3VwcG9ydHNNYXJrZXJzKCkpCi0gICAgICAgICAg
ICAgICAgbV9tYXJrZXJMYXlvdXRJbmZvLmRyYXdNYXJrZXJzKHBhaW50SW5mbyk7CisgICAgICAg
ICAgICAgICAgbV9tYXJrZXJMYXlvdXRJbmZvLmRyYXdNYXJrZXJzKGNoaWxkUGFpbnRJbmZvKTsK
ICAgICAgICAgfQotICAgICAgICBmaW5pc2hSZW5kZXJTVkdDb250ZW50KHRoaXMsIHBhaW50SW5m
bywgZmlsdGVyLCBzYXZlZEluZm8uY29udGV4dCk7CisgICAgICAgIGZpbmlzaFJlbmRlclNWR0Nv
bnRlbnQodGhpcywgY2hpbGRQYWludEluZm8sIGZpbHRlciwgc2F2ZWRJbmZvLmNvbnRleHQpOwog
ICAgIH0KIAotICAgIGlmICgocGFpbnRJbmZvLnBoYXNlID09IFBhaW50UGhhc2VPdXRsaW5lIHx8
IHBhaW50SW5mby5waGFzZSA9PSBQYWludFBoYXNlU2VsZk91dGxpbmUpICYmIHN0eWxlKCktPm91
dGxpbmVXaWR0aCgpKQotICAgICAgICBwYWludE91dGxpbmUocGFpbnRJbmZvLmNvbnRleHQsIHN0
YXRpY19jYXN0PGludD4oYm91bmRpbmdCb3gueCgpKSwgc3RhdGljX2Nhc3Q8aW50Pihib3VuZGlu
Z0JveC55KCkpLAorICAgIGlmICgoY2hpbGRQYWludEluZm8ucGhhc2UgPT0gUGFpbnRQaGFzZU91
dGxpbmUgfHwgY2hpbGRQYWludEluZm8ucGhhc2UgPT0gUGFpbnRQaGFzZVNlbGZPdXRsaW5lKSAm
JiBzdHlsZSgpLT5vdXRsaW5lV2lkdGgoKSkKKyAgICAgICAgcGFpbnRPdXRsaW5lKGNoaWxkUGFp
bnRJbmZvLmNvbnRleHQsIHN0YXRpY19jYXN0PGludD4oYm91bmRpbmdCb3gueCgpKSwgc3RhdGlj
X2Nhc3Q8aW50Pihib3VuZGluZ0JveC55KCkpLAogICAgICAgICAgICAgc3RhdGljX2Nhc3Q8aW50
Pihib3VuZGluZ0JveC53aWR0aCgpKSwgc3RhdGljX2Nhc3Q8aW50Pihib3VuZGluZ0JveC5oZWln
aHQoKSksIHN0eWxlKCkpOwogICAgIAotICAgIHBhaW50SW5mby5jb250ZXh0LT5yZXN0b3JlKCk7
CisgICAgY2hpbGRQYWludEluZm8uY29udGV4dC0+cmVzdG9yZSgpOwogfQogCiAvLyBUaGlzIG1l
dGhvZCBpcyBjYWxsZWQgZnJvbSBpbnNpZGUgcGFpbnRPdXRsaW5lKCkgc2luY2Ugd2UgY2FsbCBw
YWludE91dGxpbmUoKQpAQCAtMjU3LDcgKzI2MSw3IEBAIGJvb2wgUmVuZGVyUGF0aDo6bm9kZUF0
RmxvYXRQb2ludChjb25zdCBIaXRUZXN0UmVxdWVzdCYsIEhpdFRlc3RSZXN1bHQmIHJlc3VsdCwK
ICAgICBpZiAoaGl0VGVzdEFjdGlvbiAhPSBIaXRUZXN0Rm9yZWdyb3VuZCkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCi0gICAgRmxvYXRQb2ludCBsb2NhbFBvaW50ID0gbG9jYWxUb1BhcmVudFRy
YW5zZm9ybSgpLmludmVyc2UoKS5tYXBQb2ludChwb2ludEluUGFyZW50KTsKKyAgICBGbG9hdFBv
aW50IGxvY2FsUG9pbnQgPSBtX2xvY2FsVHJhbnNmb3JtLmludmVyc2UoKS5tYXBQb2ludChwb2lu
dEluUGFyZW50KTsKIAogICAgIFBvaW50ZXJFdmVudHNIaXRSdWxlcyBoaXRSdWxlcyhQb2ludGVy
RXZlbnRzSGl0UnVsZXM6OlNWR19QQVRIX0hJVFRFU1RJTkcsIHN0eWxlKCktPnBvaW50ZXJFdmVu
dHMoKSk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>46244</attachid>
            <date>2010-01-10 15:19:10 -0800</date>
            <delta_ts>2010-01-15 03:49:17 -0800</delta_ts>
            <desc>Bad DOM performance in large SVG files</desc>
            <filename>bug-30055-20100110151909.patch</filename>
            <type>text/plain</type>
            <size>5658</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NTUyZmQxYS4uYzVhYzNlMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTUsNiArNSwzNCBAQAogICAgICAgICBCYWQgRE9NIHBlcmZvcm1h
bmNlIGluIGxhcmdlIFNWRyBmaWxlcwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MzAwNTUKIAorICAgICAgICBDR1BhdGhJc0VtcHR5IGlzIHZlcnkgZXhw
ZW5zaXZlLCBzbyB3ZSBuZWVkIHRvIGNhY2hlIHRoZSByZXN1bHQuCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9QYXRoLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvUGF0
aENHLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhdGg6OlBhdGgpOgorICAgICAgICAoV2ViQ29y
ZTo6UGF0aDo6b3BlcmF0b3I9KToKKyAgICAgICAgKFdlYkNvcmU6OlBhdGg6OnRyYW5zbGF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpQYXRoOjpzdHJva2VCb3VuZGluZ1JlY3QpOgorICAgICAgICAo
V2ViQ29yZTo6UGF0aDo6bW92ZVRvKToKKyAgICAgICAgKFdlYkNvcmU6OlBhdGg6OmFkZExpbmVU
byk6CisgICAgICAgIChXZWJDb3JlOjpQYXRoOjphZGRRdWFkQ3VydmVUbyk6CisgICAgICAgIChX
ZWJDb3JlOjpQYXRoOjphZGRCZXppZXJDdXJ2ZVRvKToKKyAgICAgICAgKFdlYkNvcmU6OlBhdGg6
OmFkZEFyY1RvKToKKyAgICAgICAgKFdlYkNvcmU6OlBhdGg6OmNsb3NlU3VicGF0aCk6CisgICAg
ICAgIChXZWJDb3JlOjpQYXRoOjphZGRBcmMpOgorICAgICAgICAoV2ViQ29yZTo6UGF0aDo6YWRk
UmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpQYXRoOjphZGRFbGxpcHNlKToKKyAgICAgICAgKFdl
YkNvcmU6OlBhdGg6OmNsZWFyKToKKyAgICAgICAgKFdlYkNvcmU6OlBhdGg6OmlzRW1wdHkpOgor
ICAgICAgICAoV2ViQ29yZTo6UGF0aDo6dHJhbnNmb3JtKToKKworMjAxMC0wMS0xMCAgT2xpdmVy
IEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEJhZCBET00gcGVyZm9ybWFuY2UgaW4gbGFyZ2UgU1ZHIGZpbGVz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMDA1NQor
CiAgICAgICAgIEN1bGwgUmVuZGVyUGF0aHMgYmVmb3JlIHBhc3Npbmcgb24gdG8gdGhlIHVuZGVy
bHlpbmcgZ3JhcGhpY3Mgc3lzdGVtLgogCiAgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclBhdGgu
Y3BwOgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QYXRoLmggYi9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BhdGguaAppbmRleCBiZjRjZDlkLi4xODRhOWMyIDEwMDY0
NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BhdGguaAorKysgYi9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL1BhdGguaApAQCAtMTQ1LDYgKzE0NSwxMSBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKICAgICBwcml2YXRlOgogICAgICAgICBQbGF0Zm9ybVBhdGgqIG1fcGF0aDsKKyNp
ZiBQTEFURk9STShDRykKKyAgICAgICAgLy8gQ0dQYXRoSXNFbXB0eSBpcyBleHBlbnNpdmUgc28g
d2UgbmVlZCB0byBjYWNoZSB0aGUgcmVzdWx0CisgICAgICAgIG11dGFibGUgYm9vbCBtX2lzRW1w
dHlDYWNoZVZhbGlkIDogMTsKKyAgICAgICAgbXV0YWJsZSBib29sIG1fY2FjaGVkSXNFbXB0eSA6
IDE7CisjZW5kaWYKICAgICB9OwogCiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NnL1BhdGhDRy5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL1BhdGhD
Ry5jcHAKaW5kZXggM2IwNTY0MS4uOWY5MjM5MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jZy9QYXRoQ0cuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2cvUGF0aENHLmNwcApAQCAtNjcsNiArNjcsOCBAQCBzdGF0aWMgaW5saW5lIENHQ29udGV4dFJl
ZiBzY3JhdGNoQ29udGV4dCgpCiAKIFBhdGg6OlBhdGgoKQogICAgIDogbV9wYXRoKENHUGF0aENy
ZWF0ZU11dGFibGUoKSkKKyAgICAsIG1faXNFbXB0eUNhY2hlVmFsaWQodHJ1ZSkKKyAgICAsIG1f
Y2FjaGVkSXNFbXB0eSh0cnVlKQogewogfQogCkBAIC03Nyw2ICs3OSw4IEBAIFBhdGg6On5QYXRo
KCkKIAogUGF0aDo6UGF0aChjb25zdCBQYXRoJiBvdGhlcikKICAgICA6IG1fcGF0aChDR1BhdGhD
cmVhdGVNdXRhYmxlQ29weShvdGhlci5tX3BhdGgpKQorICAgICwgbV9pc0VtcHR5Q2FjaGVWYWxp
ZChmYWxzZSkKKyAgICAsIG1fY2FjaGVkSXNFbXB0eShmYWxzZSkKIHsKIH0KIApAQCAtODUsNiAr
ODksNyBAQCBQYXRoJiBQYXRoOjpvcGVyYXRvcj0oY29uc3QgUGF0aCYgb3RoZXIpCiAgICAgQ0dN
dXRhYmxlUGF0aFJlZiBwYXRoID0gQ0dQYXRoQ3JlYXRlTXV0YWJsZUNvcHkob3RoZXIubV9wYXRo
KTsKICAgICBDR1BhdGhSZWxlYXNlKG1fcGF0aCk7CiAgICAgbV9wYXRoID0gcGF0aDsKKyAgICBt
X2lzRW1wdHlDYWNoZVZhbGlkID0gZmFsc2U7CiAgICAgcmV0dXJuICp0aGlzOwogfQogCkBAIC0x
NTksNiArMTY0LDcgQEAgdm9pZCBQYXRoOjp0cmFuc2xhdGUoY29uc3QgRmxvYXRTaXplJiBzaXpl
KQogICAgIENHUGF0aEFkZFBhdGgobmV3UGF0aCwgJnRyYW5zbGF0aW9uLCBtX3BhdGgpOwogICAg
IENHUGF0aFJlbGVhc2UobV9wYXRoKTsKICAgICBtX3BhdGggPSBuZXdQYXRoOworICAgIG1faXNF
bXB0eUNhY2hlVmFsaWQgPSBmYWxzZTsKIH0KIAogRmxvYXRSZWN0IFBhdGg6OmJvdW5kaW5nUmVj
dCgpIGNvbnN0CkBAIC0xODIsNjcgKzE4OCw4NCBAQCBGbG9hdFJlY3QgUGF0aDo6c3Ryb2tlQm91
bmRpbmdSZWN0KFN0cm9rZVN0eWxlQXBwbGllciogYXBwbGllcikKICAgICBDR0NvbnRleHRSZXBs
YWNlUGF0aFdpdGhTdHJva2VkUGF0aChjb250ZXh0KTsKICAgICBDR1JlY3QgYm94ID0gQ0dDb250
ZXh0SXNQYXRoRW1wdHkoY29udGV4dCkgPyBDR1JlY3RaZXJvIDogQ0dDb250ZXh0R2V0UGF0aEJv
dW5kaW5nQm94KGNvbnRleHQpOwogICAgIENHQ29udGV4dFJlc3RvcmVHU3RhdGUoY29udGV4dCk7
Ci0KKyAgICAKKyAgICBtX2lzRW1wdHlDYWNoZVZhbGlkID0gZmFsc2U7CiAgICAgcmV0dXJuIGJv
eDsKIH0KIAogdm9pZCBQYXRoOjptb3ZlVG8oY29uc3QgRmxvYXRQb2ludCYgcG9pbnQpCiB7CiAg
ICAgQ0dQYXRoTW92ZVRvUG9pbnQobV9wYXRoLCAwLCBwb2ludC54KCksIHBvaW50LnkoKSk7Cisg
ICAgbV9pc0VtcHR5Q2FjaGVWYWxpZCA9IGZhbHNlOwogfQogCiB2b2lkIFBhdGg6OmFkZExpbmVU
byhjb25zdCBGbG9hdFBvaW50JiBwKQogewogICAgIENHUGF0aEFkZExpbmVUb1BvaW50KG1fcGF0
aCwgMCwgcC54KCksIHAueSgpKTsKKyAgICBtX2lzRW1wdHlDYWNoZVZhbGlkID0gZmFsc2U7CiB9
CiAKIHZvaWQgUGF0aDo6YWRkUXVhZEN1cnZlVG8oY29uc3QgRmxvYXRQb2ludCYgY3AsIGNvbnN0
IEZsb2F0UG9pbnQmIHApCiB7CiAgICAgQ0dQYXRoQWRkUXVhZEN1cnZlVG9Qb2ludChtX3BhdGgs
IDAsIGNwLngoKSwgY3AueSgpLCBwLngoKSwgcC55KCkpOworICAgIG1faXNFbXB0eUNhY2hlVmFs
aWQgPSBmYWxzZTsKIH0KIAogdm9pZCBQYXRoOjphZGRCZXppZXJDdXJ2ZVRvKGNvbnN0IEZsb2F0
UG9pbnQmIGNwMSwgY29uc3QgRmxvYXRQb2ludCYgY3AyLCBjb25zdCBGbG9hdFBvaW50JiBwKQog
ewogICAgIENHUGF0aEFkZEN1cnZlVG9Qb2ludChtX3BhdGgsIDAsIGNwMS54KCksIGNwMS55KCks
IGNwMi54KCksIGNwMi55KCksIHAueCgpLCBwLnkoKSk7CisgICAgbV9pc0VtcHR5Q2FjaGVWYWxp
ZCA9IGZhbHNlOwogfQogCiB2b2lkIFBhdGg6OmFkZEFyY1RvKGNvbnN0IEZsb2F0UG9pbnQmIHAx
LCBjb25zdCBGbG9hdFBvaW50JiBwMiwgZmxvYXQgcmFkaXVzKQogewogICAgIENHUGF0aEFkZEFy
Y1RvUG9pbnQobV9wYXRoLCAwLCBwMS54KCksIHAxLnkoKSwgcDIueCgpLCBwMi55KCksIHJhZGl1
cyk7CisgICAgbV9pc0VtcHR5Q2FjaGVWYWxpZCA9IGZhbHNlOwogfQogCiB2b2lkIFBhdGg6OmNs
b3NlU3VicGF0aCgpCiB7Ci0gICAgaWYgKCFDR1BhdGhJc0VtcHR5KG1fcGF0aCkpIC8vIHRvIHNp
bGVuY2UgYSB3YXJuaW5nIHdoZW4gdHJ5aW5nIHRvIGNsb3NlIGFuIGVtcHR5IHBhdGgKKyAgICBp
ZiAoIWlzRW1wdHkoKSkgeyAvLyB0byBzaWxlbmNlIGEgd2FybmluZyB3aGVuIHRyeWluZyB0byBj
bG9zZSBhbiBlbXB0eSBwYXRoCiAgICAgICAgIENHUGF0aENsb3NlU3VicGF0aChtX3BhdGgpOwor
ICAgICAgICBtX2lzRW1wdHlDYWNoZVZhbGlkID0gZmFsc2U7CisgICAgfQogfQogCiB2b2lkIFBh
dGg6OmFkZEFyYyhjb25zdCBGbG9hdFBvaW50JiBwLCBmbG9hdCByLCBmbG9hdCBzYSwgZmxvYXQg
ZWEsIGJvb2wgY2xvY2t3aXNlKQogewogICAgIC8vIFdvcmthcm91bmQgZm9yIDxyZGFyOi8vcHJv
YmxlbS81MTg5MjMzPiBDR1BhdGhBZGRBcmMgaGFuZ3Mgb3IgY3Jhc2hlcyB3aGVuIHBhc3NlZCBp
bmYgYXMgc3RhcnQgb3IgZW5kIGFuZ2xlCi0gICAgaWYgKGlzZmluaXRlKHNhKSAmJiBpc2Zpbml0
ZShlYSkpCisgICAgaWYgKGlzZmluaXRlKHNhKSAmJiBpc2Zpbml0ZShlYSkpIHsKICAgICAgICAg
Q0dQYXRoQWRkQXJjKG1fcGF0aCwgMCwgcC54KCksIHAueSgpLCByLCBzYSwgZWEsIGNsb2Nrd2lz
ZSk7CisgICAgICAgIG1faXNFbXB0eUNhY2hlVmFsaWQgPSBmYWxzZTsKKyAgICB9CiB9CiAKIHZv
aWQgUGF0aDo6YWRkUmVjdChjb25zdCBGbG9hdFJlY3QmIHIpCiB7CiAgICAgQ0dQYXRoQWRkUmVj
dChtX3BhdGgsIDAsIHIpOworICAgIG1faXNFbXB0eUNhY2hlVmFsaWQgPSBmYWxzZTsKIH0KIAog
dm9pZCBQYXRoOjphZGRFbGxpcHNlKGNvbnN0IEZsb2F0UmVjdCYgcikKIHsKICAgICBDR1BhdGhB
ZGRFbGxpcHNlSW5SZWN0KG1fcGF0aCwgMCwgcik7CisgICAgbV9pc0VtcHR5Q2FjaGVWYWxpZCA9
IGZhbHNlOwogfQogCiB2b2lkIFBhdGg6OmNsZWFyKCkKIHsKICAgICBDR1BhdGhSZWxlYXNlKG1f
cGF0aCk7CiAgICAgbV9wYXRoID0gQ0dQYXRoQ3JlYXRlTXV0YWJsZSgpOworICAgIG1faXNFbXB0
eUNhY2hlVmFsaWQgPSB0cnVlOworICAgIG1fY2FjaGVkSXNFbXB0eSA9IHRydWU7CiB9CiAKIGJv
b2wgUGF0aDo6aXNFbXB0eSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIENHUGF0aElzRW1wdHkobV9w
YXRoKTsKKyAgICBpZiAobV9pc0VtcHR5Q2FjaGVWYWxpZCkKKyAgICAgICAgcmV0dXJuIG1fY2Fj
aGVkSXNFbXB0eTsKKyAgICBtX2lzRW1wdHlDYWNoZVZhbGlkID0gdHJ1ZTsKKyAgICByZXR1cm4g
bV9jYWNoZWRJc0VtcHR5ID0gQ0dQYXRoSXNFbXB0eShtX3BhdGgpOwogfQogCiBib29sIFBhdGg6
Omhhc0N1cnJlbnRQb2ludCgpIGNvbnN0CkBAIC0zNTMsNiArMzc2LDcgQEAgdm9pZCBQYXRoOjp0
cmFuc2Zvcm0oY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybSkKICAgICBDR1Bh
dGhBZGRQYXRoKHBhdGgsICZ0cmFuc2Zvcm1DRywgbV9wYXRoKTsKICAgICBDR1BhdGhSZWxlYXNl
KG1fcGF0aCk7CiAgICAgbV9wYXRoID0gcGF0aDsKKyAgICBtX2lzRW1wdHlDYWNoZVZhbGlkID0g
ZmFsc2U7CiB9CiAKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>46667</attachid>
            <date>2010-01-15 03:49:24 -0800</date>
            <delta_ts>2010-01-15 03:51:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-30055-20100115034923.patch</filename>
            <type>text/plain</type>
            <size>3055</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclBhdGguY3BwIGIvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyUGF0aC5jcHAKaW5kZXggOGNlODdjZC4uODA5ZGZlYyAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUGF0aC5jcHAKKysrIGIvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyUGF0aC5jcHAKQEAgLTIxMywzMiArMjEzLDQwIEBAIHZvaWQgUmVuZGVyUGF0aDo6
cGFpbnQoUGFpbnRJbmZvJiBwYWludEluZm8sIGludCwgaW50KQogewogICAgIGlmIChwYWludElu
Zm8uY29udGV4dC0+cGFpbnRpbmdEaXNhYmxlZCgpIHx8IHN0eWxlKCktPnZpc2liaWxpdHkoKSA9
PSBISURERU4gfHwgbV9wYXRoLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwotICAgICAgICAg
ICAgCi0gICAgcGFpbnRJbmZvLmNvbnRleHQtPnNhdmUoKTsKLSAgICBwYWludEluZm8uY29udGV4
dC0+Y29uY2F0Q1RNKGxvY2FsVG9QYXJlbnRUcmFuc2Zvcm0oKSk7CisKKyAgICBQYWludEluZm8g
Y2hpbGRQYWludEluZm8ocGFpbnRJbmZvKTsKKyAgICBjaGlsZFBhaW50SW5mby5jb250ZXh0LT5z
YXZlKCk7CisgICAgYXBwbHlUcmFuc2Zvcm1Ub1BhaW50SW5mbyhjaGlsZFBhaW50SW5mbywgbV9s
b2NhbFRyYW5zZm9ybSk7CisgICAgRmxvYXRSZWN0IGJvdW5kaW5nQm94ID0gcmVwYWludFJlY3RJ
bkxvY2FsQ29vcmRpbmF0ZXMoKTsKKyAgICAvLyBGSVhNRTogVGhlIGVtcHR5IHJlY3QgY2hlY2sg
aXMgdG8gZGVhbCB3aXRoIGluY29ycmVjdCBpbml0aWFsIGNsaXAgaW4gcmVuZGVyU3VidHJlZVRv
SW1hZ2UKKyAgICAvLyB1bmZvcnR1bmF0ZWx5IGZpeGluZyB0aGF0IHByb2JsZW0gaXMgZmFpcmx5
IGNvbXBsZXggdW5sZXNzIHdlIHdlcmUgd2lsbGluZyB0byBqdXN0IGZ1dHogdGhlCisgICAgLy8g
cmVjdCB0byBzb21ldGhpbmcgImNsb3NlIGVub3VnaCIKKyAgICBpZiAoIWJvdW5kaW5nQm94Lmlu
dGVyc2VjdHMoY2hpbGRQYWludEluZm8ucmVjdCkgJiYgIWNoaWxkUGFpbnRJbmZvLnJlY3QuaXNF
bXB0eSgpKSB7CisgICAgICAgIGNoaWxkUGFpbnRJbmZvLmNvbnRleHQtPnJlc3RvcmUoKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KIAogICAgIFNWR1Jlc291cmNlRmlsdGVyKiBmaWx0ZXIgPSAw
OwogCi0gICAgRmxvYXRSZWN0IGJvdW5kaW5nQm94ID0gcmVwYWludFJlY3RJbkxvY2FsQ29vcmRp
bmF0ZXMoKTsKLSAgICBpZiAocGFpbnRJbmZvLnBoYXNlID09IFBhaW50UGhhc2VGb3JlZ3JvdW5k
KSB7Ci0gICAgICAgIFBhaW50SW5mbyBzYXZlZEluZm8ocGFpbnRJbmZvKTsKKyAgICBpZiAoY2hp
bGRQYWludEluZm8ucGhhc2UgPT0gUGFpbnRQaGFzZUZvcmVncm91bmQpIHsKKyAgICAgICAgUGFp
bnRJbmZvIHNhdmVkSW5mbyhjaGlsZFBhaW50SW5mbyk7CiAKLSAgICAgICAgaWYgKHByZXBhcmVU
b1JlbmRlclNWR0NvbnRlbnQodGhpcywgcGFpbnRJbmZvLCBib3VuZGluZ0JveCwgZmlsdGVyKSkg
eworICAgICAgICBpZiAocHJlcGFyZVRvUmVuZGVyU1ZHQ29udGVudCh0aGlzLCBjaGlsZFBhaW50
SW5mbywgYm91bmRpbmdCb3gsIGZpbHRlcikpIHsKICAgICAgICAgICAgIGlmIChzdHlsZSgpLT5z
dmdTdHlsZSgpLT5zaGFwZVJlbmRlcmluZygpID09IFNSX0NSSVNQRURHRVMpCi0gICAgICAgICAg
ICAgICAgcGFpbnRJbmZvLmNvbnRleHQtPnNldFNob3VsZEFudGlhbGlhcyhmYWxzZSk7Ci0gICAg
ICAgICAgICBmaWxsQW5kU3Ryb2tlUGF0aChtX3BhdGgsIHBhaW50SW5mby5jb250ZXh0LCBzdHls
ZSgpLCB0aGlzKTsKKyAgICAgICAgICAgICAgICBjaGlsZFBhaW50SW5mby5jb250ZXh0LT5zZXRT
aG91bGRBbnRpYWxpYXMoZmFsc2UpOworICAgICAgICAgICAgZmlsbEFuZFN0cm9rZVBhdGgobV9w
YXRoLCBjaGlsZFBhaW50SW5mby5jb250ZXh0LCBzdHlsZSgpLCB0aGlzKTsKIAogICAgICAgICAg
ICAgaWYgKHN0YXRpY19jYXN0PFNWR1N0eWxlZEVsZW1lbnQqPihub2RlKCkpLT5zdXBwb3J0c01h
cmtlcnMoKSkKLSAgICAgICAgICAgICAgICBtX21hcmtlckxheW91dEluZm8uZHJhd01hcmtlcnMo
cGFpbnRJbmZvKTsKKyAgICAgICAgICAgICAgICBtX21hcmtlckxheW91dEluZm8uZHJhd01hcmtl
cnMoY2hpbGRQYWludEluZm8pOwogICAgICAgICB9Ci0gICAgICAgIGZpbmlzaFJlbmRlclNWR0Nv
bnRlbnQodGhpcywgcGFpbnRJbmZvLCBmaWx0ZXIsIHNhdmVkSW5mby5jb250ZXh0KTsKKyAgICAg
ICAgZmluaXNoUmVuZGVyU1ZHQ29udGVudCh0aGlzLCBjaGlsZFBhaW50SW5mbywgZmlsdGVyLCBz
YXZlZEluZm8uY29udGV4dCk7CiAgICAgfQogCi0gICAgaWYgKChwYWludEluZm8ucGhhc2UgPT0g
UGFpbnRQaGFzZU91dGxpbmUgfHwgcGFpbnRJbmZvLnBoYXNlID09IFBhaW50UGhhc2VTZWxmT3V0
bGluZSkgJiYgc3R5bGUoKS0+b3V0bGluZVdpZHRoKCkpCi0gICAgICAgIHBhaW50T3V0bGluZShw
YWludEluZm8uY29udGV4dCwgc3RhdGljX2Nhc3Q8aW50Pihib3VuZGluZ0JveC54KCkpLCBzdGF0
aWNfY2FzdDxpbnQ+KGJvdW5kaW5nQm94LnkoKSksCisgICAgaWYgKChjaGlsZFBhaW50SW5mby5w
aGFzZSA9PSBQYWludFBoYXNlT3V0bGluZSB8fCBjaGlsZFBhaW50SW5mby5waGFzZSA9PSBQYWlu
dFBoYXNlU2VsZk91dGxpbmUpICYmIHN0eWxlKCktPm91dGxpbmVXaWR0aCgpKQorICAgICAgICBw
YWludE91dGxpbmUoY2hpbGRQYWludEluZm8uY29udGV4dCwgc3RhdGljX2Nhc3Q8aW50Pihib3Vu
ZGluZ0JveC54KCkpLCBzdGF0aWNfY2FzdDxpbnQ+KGJvdW5kaW5nQm94LnkoKSksCiAgICAgICAg
ICAgICBzdGF0aWNfY2FzdDxpbnQ+KGJvdW5kaW5nQm94LndpZHRoKCkpLCBzdGF0aWNfY2FzdDxp
bnQ+KGJvdW5kaW5nQm94LmhlaWdodCgpKSwgc3R5bGUoKSk7CiAgICAgCi0gICAgcGFpbnRJbmZv
LmNvbnRleHQtPnJlc3RvcmUoKTsKKyAgICBjaGlsZFBhaW50SW5mby5jb250ZXh0LT5yZXN0b3Jl
KCk7CiB9CiAKIC8vIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBmcm9tIGluc2lkZSBwYWludE91dGxp
bmUoKSBzaW5jZSB3ZSBjYWxsIHBhaW50T3V0bGluZSgpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>46668</attachid>
            <date>2010-01-15 03:51:56 -0800</date>
            <delta_ts>2010-01-15 12:48:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-30055-20100115035155.patch</filename>
            <type>text/plain</type>
            <size>3670</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
Yzg1ODBlMC4uMWM1Y2M4MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMC0wMS0xNSAgT2xpdmVyIEh1bnQg
IDxvbGl2ZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEJhZCBET00gcGVyZm9ybWFuY2UgaW4gbGFyZ2UgU1ZHIGZpbGVzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMDA1NQorCisgICAg
ICAgIEFkZCBhbiBlYXJseSByZXR1cm4gd2hlbiB3ZSBnbyB0byBwYWludCBhIFJlbmRlclBhdGgg
dGhhdAorICAgICAgICBpc24ndCBpbiB0aGUgY3VycmVudCBjbGlwLgorCisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlclBhdGguY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUGF0aDo6cGFp
bnQpOgorCiAyMDEwLTAxLTE0ICBLd2FuZyBZdWwgU2VvICA8c2t5dWxAY29tcGFueTEwMC5uZXQ+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWxleGV5IFByb3NrdXJ5YWtvdi4KZGlmZiAtLWdpdCBh
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclBhdGguY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyUGF0aC5jcHAKaW5kZXggOGNlODdjZC4uODA5ZGZlYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyUGF0aC5jcHAKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUGF0
aC5jcHAKQEAgLTIxMywzMiArMjEzLDQwIEBAIHZvaWQgUmVuZGVyUGF0aDo6cGFpbnQoUGFpbnRJ
bmZvJiBwYWludEluZm8sIGludCwgaW50KQogewogICAgIGlmIChwYWludEluZm8uY29udGV4dC0+
cGFpbnRpbmdEaXNhYmxlZCgpIHx8IHN0eWxlKCktPnZpc2liaWxpdHkoKSA9PSBISURERU4gfHwg
bV9wYXRoLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgCi0gICAgcGFp
bnRJbmZvLmNvbnRleHQtPnNhdmUoKTsKLSAgICBwYWludEluZm8uY29udGV4dC0+Y29uY2F0Q1RN
KGxvY2FsVG9QYXJlbnRUcmFuc2Zvcm0oKSk7CisKKyAgICBQYWludEluZm8gY2hpbGRQYWludElu
Zm8ocGFpbnRJbmZvKTsKKyAgICBjaGlsZFBhaW50SW5mby5jb250ZXh0LT5zYXZlKCk7CisgICAg
YXBwbHlUcmFuc2Zvcm1Ub1BhaW50SW5mbyhjaGlsZFBhaW50SW5mbywgbV9sb2NhbFRyYW5zZm9y
bSk7CisgICAgRmxvYXRSZWN0IGJvdW5kaW5nQm94ID0gcmVwYWludFJlY3RJbkxvY2FsQ29vcmRp
bmF0ZXMoKTsKKyAgICAvLyBGSVhNRTogVGhlIGVtcHR5IHJlY3QgY2hlY2sgaXMgdG8gZGVhbCB3
aXRoIGluY29ycmVjdCBpbml0aWFsIGNsaXAgaW4gcmVuZGVyU3VidHJlZVRvSW1hZ2UKKyAgICAv
LyB1bmZvcnR1bmF0ZWx5IGZpeGluZyB0aGF0IHByb2JsZW0gaXMgZmFpcmx5IGNvbXBsZXggdW5s
ZXNzIHdlIHdlcmUgd2lsbGluZyB0byBqdXN0IGZ1dHogdGhlCisgICAgLy8gcmVjdCB0byBzb21l
dGhpbmcgImNsb3NlIGVub3VnaCIKKyAgICBpZiAoIWJvdW5kaW5nQm94LmludGVyc2VjdHMoY2hp
bGRQYWludEluZm8ucmVjdCkgJiYgIWNoaWxkUGFpbnRJbmZvLnJlY3QuaXNFbXB0eSgpKSB7Cisg
ICAgICAgIGNoaWxkUGFpbnRJbmZvLmNvbnRleHQtPnJlc3RvcmUoKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KIAogICAgIFNWR1Jlc291cmNlRmlsdGVyKiBmaWx0ZXIgPSAwOwogCi0gICAgRmxv
YXRSZWN0IGJvdW5kaW5nQm94ID0gcmVwYWludFJlY3RJbkxvY2FsQ29vcmRpbmF0ZXMoKTsKLSAg
ICBpZiAocGFpbnRJbmZvLnBoYXNlID09IFBhaW50UGhhc2VGb3JlZ3JvdW5kKSB7Ci0gICAgICAg
IFBhaW50SW5mbyBzYXZlZEluZm8ocGFpbnRJbmZvKTsKKyAgICBpZiAoY2hpbGRQYWludEluZm8u
cGhhc2UgPT0gUGFpbnRQaGFzZUZvcmVncm91bmQpIHsKKyAgICAgICAgUGFpbnRJbmZvIHNhdmVk
SW5mbyhjaGlsZFBhaW50SW5mbyk7CiAKLSAgICAgICAgaWYgKHByZXBhcmVUb1JlbmRlclNWR0Nv
bnRlbnQodGhpcywgcGFpbnRJbmZvLCBib3VuZGluZ0JveCwgZmlsdGVyKSkgeworICAgICAgICBp
ZiAocHJlcGFyZVRvUmVuZGVyU1ZHQ29udGVudCh0aGlzLCBjaGlsZFBhaW50SW5mbywgYm91bmRp
bmdCb3gsIGZpbHRlcikpIHsKICAgICAgICAgICAgIGlmIChzdHlsZSgpLT5zdmdTdHlsZSgpLT5z
aGFwZVJlbmRlcmluZygpID09IFNSX0NSSVNQRURHRVMpCi0gICAgICAgICAgICAgICAgcGFpbnRJ
bmZvLmNvbnRleHQtPnNldFNob3VsZEFudGlhbGlhcyhmYWxzZSk7Ci0gICAgICAgICAgICBmaWxs
QW5kU3Ryb2tlUGF0aChtX3BhdGgsIHBhaW50SW5mby5jb250ZXh0LCBzdHlsZSgpLCB0aGlzKTsK
KyAgICAgICAgICAgICAgICBjaGlsZFBhaW50SW5mby5jb250ZXh0LT5zZXRTaG91bGRBbnRpYWxp
YXMoZmFsc2UpOworICAgICAgICAgICAgZmlsbEFuZFN0cm9rZVBhdGgobV9wYXRoLCBjaGlsZFBh
aW50SW5mby5jb250ZXh0LCBzdHlsZSgpLCB0aGlzKTsKIAogICAgICAgICAgICAgaWYgKHN0YXRp
Y19jYXN0PFNWR1N0eWxlZEVsZW1lbnQqPihub2RlKCkpLT5zdXBwb3J0c01hcmtlcnMoKSkKLSAg
ICAgICAgICAgICAgICBtX21hcmtlckxheW91dEluZm8uZHJhd01hcmtlcnMocGFpbnRJbmZvKTsK
KyAgICAgICAgICAgICAgICBtX21hcmtlckxheW91dEluZm8uZHJhd01hcmtlcnMoY2hpbGRQYWlu
dEluZm8pOwogICAgICAgICB9Ci0gICAgICAgIGZpbmlzaFJlbmRlclNWR0NvbnRlbnQodGhpcywg
cGFpbnRJbmZvLCBmaWx0ZXIsIHNhdmVkSW5mby5jb250ZXh0KTsKKyAgICAgICAgZmluaXNoUmVu
ZGVyU1ZHQ29udGVudCh0aGlzLCBjaGlsZFBhaW50SW5mbywgZmlsdGVyLCBzYXZlZEluZm8uY29u
dGV4dCk7CiAgICAgfQogCi0gICAgaWYgKChwYWludEluZm8ucGhhc2UgPT0gUGFpbnRQaGFzZU91
dGxpbmUgfHwgcGFpbnRJbmZvLnBoYXNlID09IFBhaW50UGhhc2VTZWxmT3V0bGluZSkgJiYgc3R5
bGUoKS0+b3V0bGluZVdpZHRoKCkpCi0gICAgICAgIHBhaW50T3V0bGluZShwYWludEluZm8uY29u
dGV4dCwgc3RhdGljX2Nhc3Q8aW50Pihib3VuZGluZ0JveC54KCkpLCBzdGF0aWNfY2FzdDxpbnQ+
KGJvdW5kaW5nQm94LnkoKSksCisgICAgaWYgKChjaGlsZFBhaW50SW5mby5waGFzZSA9PSBQYWlu
dFBoYXNlT3V0bGluZSB8fCBjaGlsZFBhaW50SW5mby5waGFzZSA9PSBQYWludFBoYXNlU2VsZk91
dGxpbmUpICYmIHN0eWxlKCktPm91dGxpbmVXaWR0aCgpKQorICAgICAgICBwYWludE91dGxpbmUo
Y2hpbGRQYWludEluZm8uY29udGV4dCwgc3RhdGljX2Nhc3Q8aW50Pihib3VuZGluZ0JveC54KCkp
LCBzdGF0aWNfY2FzdDxpbnQ+KGJvdW5kaW5nQm94LnkoKSksCiAgICAgICAgICAgICBzdGF0aWNf
Y2FzdDxpbnQ+KGJvdW5kaW5nQm94LndpZHRoKCkpLCBzdGF0aWNfY2FzdDxpbnQ+KGJvdW5kaW5n
Qm94LmhlaWdodCgpKSwgc3R5bGUoKSk7CiAgICAgCi0gICAgcGFpbnRJbmZvLmNvbnRleHQtPnJl
c3RvcmUoKTsKKyAgICBjaGlsZFBhaW50SW5mby5jb250ZXh0LT5yZXN0b3JlKCk7CiB9CiAKIC8v
IFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBmcm9tIGluc2lkZSBwYWludE91dGxpbmUoKSBzaW5jZSB3
ZSBjYWxsIHBhaW50T3V0bGluZSgpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>46701</attachid>
            <date>2010-01-15 12:48:23 -0800</date>
            <delta_ts>2010-01-15 16:04:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-30055-20100115124821.patch</filename>
            <type>text/plain</type>
            <size>4308</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NWZlNjM5OC4uYTI0NjljNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMC0wMS0xNSAgT2xpdmVyIEh1bnQg
IDxvbGl2ZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEJhZCBET00gcGVyZm9ybWFuY2UgaW4gbGFyZ2UgU1ZHIGZpbGVzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMDA1NQorCisgICAg
ICAgIEFkZCBhbiBlYXJseSByZXR1cm4gd2hlbiB3ZSBnbyB0byBwYWludCBhIFJlbmRlclBhdGgg
dGhhdAorICAgICAgICBpc24ndCBpbiB0aGUgY3VycmVudCBjbGlwLgorCisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlclBhdGguY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUGF0aDo6cGFp
bnQpOgorICAgICAgICAqIHN2Zy9ncmFwaGljcy9TVkdJbWFnZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTVkdJbWFnZTo6ZHJhdyk6CisKIDIwMTAtMDEtMTUgIEFsZXhhbmRlciBQYXZsb3YgIDxh
cGF2bG92QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBQYXZlbCBGZWxkbWFu
LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUGF0aC5jcHAgYi9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJQYXRoLmNwcAppbmRleCA4NmQyODBiLi44MWNkZGZhIDEwMDY0NAot
LS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJQYXRoLmNwcAorKysgYi9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJQYXRoLmNwcApAQCAtMjE1LDMyICsyMTUsNDAgQEAgdm9pZCBSZW5kZXJQYXRo
OjpwYWludChQYWludEluZm8mIHBhaW50SW5mbywgaW50LCBpbnQpCiB7CiAgICAgaWYgKHBhaW50
SW5mby5jb250ZXh0LT5wYWludGluZ0Rpc2FibGVkKCkgfHwgc3R5bGUoKS0+dmlzaWJpbGl0eSgp
ID09IEhJRERFTiB8fCBtX3BhdGguaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47Ci0gICAgICAg
ICAgICAKLSAgICBwYWludEluZm8uY29udGV4dC0+c2F2ZSgpOwotICAgIHBhaW50SW5mby5jb250
ZXh0LT5jb25jYXRDVE0obG9jYWxUb1BhcmVudFRyYW5zZm9ybSgpKTsKKworICAgIFBhaW50SW5m
byBjaGlsZFBhaW50SW5mbyhwYWludEluZm8pOworICAgIGNoaWxkUGFpbnRJbmZvLmNvbnRleHQt
PnNhdmUoKTsKKyAgICBhcHBseVRyYW5zZm9ybVRvUGFpbnRJbmZvKGNoaWxkUGFpbnRJbmZvLCBt
X2xvY2FsVHJhbnNmb3JtKTsKKyAgICBGbG9hdFJlY3QgYm91bmRpbmdCb3ggPSByZXBhaW50UmVj
dEluTG9jYWxDb29yZGluYXRlcygpOworICAgIC8vIEZJWE1FOiBUaGUgZW1wdHkgcmVjdCBjaGVj
ayBpcyB0byBkZWFsIHdpdGggaW5jb3JyZWN0IGluaXRpYWwgY2xpcCBpbiByZW5kZXJTdWJ0cmVl
VG9JbWFnZQorICAgIC8vIHVuZm9ydHVuYXRlbHkgZml4aW5nIHRoYXQgcHJvYmxlbSBpcyBmYWly
bHkgY29tcGxleCB1bmxlc3Mgd2Ugd2VyZSB3aWxsaW5nIHRvIGp1c3QgZnV0eiB0aGUKKyAgICAv
LyByZWN0IHRvIHNvbWV0aGluZyAiY2xvc2UgZW5vdWdoIgorICAgIGlmICghYm91bmRpbmdCb3gu
aW50ZXJzZWN0cyhjaGlsZFBhaW50SW5mby5yZWN0KSAmJiAhY2hpbGRQYWludEluZm8ucmVjdC5p
c0VtcHR5KCkpIHsKKyAgICAgICAgY2hpbGRQYWludEluZm8uY29udGV4dC0+cmVzdG9yZSgpOwor
ICAgICAgICByZXR1cm47CisgICAgfQogCiAgICAgU1ZHUmVzb3VyY2VGaWx0ZXIqIGZpbHRlciA9
IDA7CiAKLSAgICBGbG9hdFJlY3QgYm91bmRpbmdCb3ggPSByZXBhaW50UmVjdEluTG9jYWxDb29y
ZGluYXRlcygpOwotICAgIGlmIChwYWludEluZm8ucGhhc2UgPT0gUGFpbnRQaGFzZUZvcmVncm91
bmQpIHsKLSAgICAgICAgUGFpbnRJbmZvIHNhdmVkSW5mbyhwYWludEluZm8pOworICAgIGlmIChj
aGlsZFBhaW50SW5mby5waGFzZSA9PSBQYWludFBoYXNlRm9yZWdyb3VuZCkgeworICAgICAgICBQ
YWludEluZm8gc2F2ZWRJbmZvKGNoaWxkUGFpbnRJbmZvKTsKIAotICAgICAgICBpZiAocHJlcGFy
ZVRvUmVuZGVyU1ZHQ29udGVudCh0aGlzLCBwYWludEluZm8sIGJvdW5kaW5nQm94LCBmaWx0ZXIp
KSB7CisgICAgICAgIGlmIChwcmVwYXJlVG9SZW5kZXJTVkdDb250ZW50KHRoaXMsIGNoaWxkUGFp
bnRJbmZvLCBib3VuZGluZ0JveCwgZmlsdGVyKSkgewogICAgICAgICAgICAgaWYgKHN0eWxlKCkt
PnN2Z1N0eWxlKCktPnNoYXBlUmVuZGVyaW5nKCkgPT0gU1JfQ1JJU1BFREdFUykKLSAgICAgICAg
ICAgICAgICBwYWludEluZm8uY29udGV4dC0+c2V0U2hvdWxkQW50aWFsaWFzKGZhbHNlKTsKLSAg
ICAgICAgICAgIGZpbGxBbmRTdHJva2VQYXRoKG1fcGF0aCwgcGFpbnRJbmZvLmNvbnRleHQsIHN0
eWxlKCksIHRoaXMpOworICAgICAgICAgICAgICAgIGNoaWxkUGFpbnRJbmZvLmNvbnRleHQtPnNl
dFNob3VsZEFudGlhbGlhcyhmYWxzZSk7CisgICAgICAgICAgICBmaWxsQW5kU3Ryb2tlUGF0aCht
X3BhdGgsIGNoaWxkUGFpbnRJbmZvLmNvbnRleHQsIHN0eWxlKCksIHRoaXMpOwogCiAgICAgICAg
ICAgICBpZiAoc3RhdGljX2Nhc3Q8U1ZHU3R5bGVkRWxlbWVudCo+KG5vZGUoKSktPnN1cHBvcnRz
TWFya2VycygpKQotICAgICAgICAgICAgICAgIG1fbWFya2VyTGF5b3V0SW5mby5kcmF3TWFya2Vy
cyhwYWludEluZm8pOworICAgICAgICAgICAgICAgIG1fbWFya2VyTGF5b3V0SW5mby5kcmF3TWFy
a2VycyhjaGlsZFBhaW50SW5mbyk7CiAgICAgICAgIH0KLSAgICAgICAgZmluaXNoUmVuZGVyU1ZH
Q29udGVudCh0aGlzLCBwYWludEluZm8sIGZpbHRlciwgc2F2ZWRJbmZvLmNvbnRleHQpOworICAg
ICAgICBmaW5pc2hSZW5kZXJTVkdDb250ZW50KHRoaXMsIGNoaWxkUGFpbnRJbmZvLCBmaWx0ZXIs
IHNhdmVkSW5mby5jb250ZXh0KTsKICAgICB9CiAKLSAgICBpZiAoKHBhaW50SW5mby5waGFzZSA9
PSBQYWludFBoYXNlT3V0bGluZSB8fCBwYWludEluZm8ucGhhc2UgPT0gUGFpbnRQaGFzZVNlbGZP
dXRsaW5lKSAmJiBzdHlsZSgpLT5vdXRsaW5lV2lkdGgoKSkKLSAgICAgICAgcGFpbnRPdXRsaW5l
KHBhaW50SW5mby5jb250ZXh0LCBzdGF0aWNfY2FzdDxpbnQ+KGJvdW5kaW5nQm94LngoKSksIHN0
YXRpY19jYXN0PGludD4oYm91bmRpbmdCb3gueSgpKSwKKyAgICBpZiAoKGNoaWxkUGFpbnRJbmZv
LnBoYXNlID09IFBhaW50UGhhc2VPdXRsaW5lIHx8IGNoaWxkUGFpbnRJbmZvLnBoYXNlID09IFBh
aW50UGhhc2VTZWxmT3V0bGluZSkgJiYgc3R5bGUoKS0+b3V0bGluZVdpZHRoKCkpCisgICAgICAg
IHBhaW50T3V0bGluZShjaGlsZFBhaW50SW5mby5jb250ZXh0LCBzdGF0aWNfY2FzdDxpbnQ+KGJv
dW5kaW5nQm94LngoKSksIHN0YXRpY19jYXN0PGludD4oYm91bmRpbmdCb3gueSgpKSwKICAgICAg
ICAgICAgIHN0YXRpY19jYXN0PGludD4oYm91bmRpbmdCb3gud2lkdGgoKSksIHN0YXRpY19jYXN0
PGludD4oYm91bmRpbmdCb3guaGVpZ2h0KCkpLCBzdHlsZSgpKTsKICAgICAKLSAgICBwYWludElu
Zm8uY29udGV4dC0+cmVzdG9yZSgpOworICAgIGNoaWxkUGFpbnRJbmZvLmNvbnRleHQtPnJlc3Rv
cmUoKTsKIH0KIAogLy8gVGhpcyBtZXRob2QgaXMgY2FsbGVkIGZyb20gaW5zaWRlIHBhaW50T3V0
bGluZSgpIHNpbmNlIHdlIGNhbGwgcGFpbnRPdXRsaW5lKCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
c3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmNwcCBiL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdl
LmNwcAppbmRleCAwNTBkY2NhLi4zNDhkZjRmIDEwMDY0NAotLS0gYS9XZWJDb3JlL3N2Zy9ncmFw
aGljcy9TVkdJbWFnZS5jcHAKKysrIGIvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3Bw
CkBAIC0xOTMsNyArMTkzLDcgQEAgdm9pZCBTVkdJbWFnZTo6ZHJhdyhHcmFwaGljc0NvbnRleHQq
IGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgRmwKIAogICAgIGlmICh2
aWV3LT5uZWVkc0xheW91dCgpKQogICAgICAgICB2aWV3LT5sYXlvdXQoKTsKLSAgICB2aWV3LT5w
YWludChjb250ZXh0LCBlbmNsb3NpbmdJbnRSZWN0KHNyY1JlY3QpKTsKKyAgICB2aWV3LT5wYWlu
dChjb250ZXh0LCBJbnRSZWN0KDAsIDAsIHZpZXctPndpZHRoKCksIHZpZXctPmhlaWdodCgpKSk7
CiAKICAgICBpZiAoY29tcG9zaXRlT3AgIT0gQ29tcG9zaXRlU291cmNlT3ZlcikKICAgICAgICAg
Y29udGV4dC0+ZW5kVHJhbnNwYXJlbmN5TGF5ZXIoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>46715</attachid>
            <date>2010-01-15 16:04:23 -0800</date>
            <delta_ts>2010-01-15 16:14:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-30055-20100115160422.patch</filename>
            <type>text/plain</type>
            <size>2008</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZWZmNmYwZS4uMDM5YTgyNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwxNyBAQAogMjAxMC0wMS0xNSAgT2xpdmVyIEh1bnQg
IDxvbGl2ZXJAYXBwbGUuY29tPgogCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEJhZCBET00gcGVyZm9ybWFuY2UgaW4gbGFyZ2UgU1ZHIGZpbGVzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMDA1NQorCisgICAg
ICAgIEltcHJvdmUgdGhlIHBlcmZvcm1hbmNlIG9mIHRoZSBlYXJseSBjdWxsaW5nIGNoZWNrCisK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUGF0aC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJQYXRoOjpwYWludCk6CisKKzIwMTAtMDEtMTUgIE9saXZlciBIdW50ICA8b2xpdmVyQGFw
cGxlLmNvbT4KKwogICAgICAgICBSZXZpZXdlZCBieSBEaXJrIFNjaHVsemUuCiAKICAgICAgICAg
QmFkIERPTSBwZXJmb3JtYW5jZSBpbiBsYXJnZSBTVkcgZmlsZXMKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclBhdGguY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUGF0
aC5jcHAKaW5kZXggODFjZGRmYS4uMWQ0MmQ3ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyUGF0aC5jcHAKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUGF0aC5jcHAK
QEAgLTIxNiwxOCArMjE2LDE3IEBAIHZvaWQgUmVuZGVyUGF0aDo6cGFpbnQoUGFpbnRJbmZvJiBw
YWludEluZm8sIGludCwgaW50KQogICAgIGlmIChwYWludEluZm8uY29udGV4dC0+cGFpbnRpbmdE
aXNhYmxlZCgpIHx8IHN0eWxlKCktPnZpc2liaWxpdHkoKSA9PSBISURERU4gfHwgbV9wYXRoLmlz
RW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgUGFpbnRJbmZvIGNoaWxkUGFpbnRJbmZv
KHBhaW50SW5mbyk7Ci0gICAgY2hpbGRQYWludEluZm8uY29udGV4dC0+c2F2ZSgpOwotICAgIGFw
cGx5VHJhbnNmb3JtVG9QYWludEluZm8oY2hpbGRQYWludEluZm8sIG1fbG9jYWxUcmFuc2Zvcm0p
OwogICAgIEZsb2F0UmVjdCBib3VuZGluZ0JveCA9IHJlcGFpbnRSZWN0SW5Mb2NhbENvb3JkaW5h
dGVzKCk7CisgICAgRmxvYXRSZWN0IG5vbkxvY2FsQm91bmRpbmdCb3ggPSBtX2xvY2FsVHJhbnNm
b3JtLm1hcFJlY3QoYm91bmRpbmdCb3gpOwogICAgIC8vIEZJWE1FOiBUaGUgZW1wdHkgcmVjdCBj
aGVjayBpcyB0byBkZWFsIHdpdGggaW5jb3JyZWN0IGluaXRpYWwgY2xpcCBpbiByZW5kZXJTdWJ0
cmVlVG9JbWFnZQogICAgIC8vIHVuZm9ydHVuYXRlbHkgZml4aW5nIHRoYXQgcHJvYmxlbSBpcyBm
YWlybHkgY29tcGxleCB1bmxlc3Mgd2Ugd2VyZSB3aWxsaW5nIHRvIGp1c3QgZnV0eiB0aGUKICAg
ICAvLyByZWN0IHRvIHNvbWV0aGluZyAiY2xvc2UgZW5vdWdoIgotICAgIGlmICghYm91bmRpbmdC
b3guaW50ZXJzZWN0cyhjaGlsZFBhaW50SW5mby5yZWN0KSAmJiAhY2hpbGRQYWludEluZm8ucmVj
dC5pc0VtcHR5KCkpIHsKLSAgICAgICAgY2hpbGRQYWludEluZm8uY29udGV4dC0+cmVzdG9yZSgp
OworICAgIGlmICghbm9uTG9jYWxCb3VuZGluZ0JveC5pbnRlcnNlY3RzKHBhaW50SW5mby5yZWN0
KSAmJiAhcGFpbnRJbmZvLnJlY3QuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47Ci0gICAgfQog
CisgICAgUGFpbnRJbmZvIGNoaWxkUGFpbnRJbmZvKHBhaW50SW5mbyk7CisgICAgY2hpbGRQYWlu
dEluZm8uY29udGV4dC0+c2F2ZSgpOworICAgIGFwcGx5VHJhbnNmb3JtVG9QYWludEluZm8oY2hp
bGRQYWludEluZm8sIG1fbG9jYWxUcmFuc2Zvcm0pOwogICAgIFNWR1Jlc291cmNlRmlsdGVyKiBm
aWx0ZXIgPSAwOwogCiAgICAgaWYgKGNoaWxkUGFpbnRJbmZvLnBoYXNlID09IFBhaW50UGhhc2VG
b3JlZ3JvdW5kKSB7Cg==
</data>
<flag name="review"
          id="29021"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>