<?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>38179</bug_id>
          
          <creation_ts>2010-04-27 00:49:42 -0700</creation_ts>
          <short_desc>Due to ScrollView, QWebPage::setViewportSize() forces two layout of the render tree</short_desc>
          <delta_ts>2013-12-23 19:22:50 -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>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>INVALID</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Performance, Qt, QtTriaged</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Benjamin Poulain">benjamin</reporter>
          <assigned_to name="Benjamin Poulain">benjamin</assigned_to>
          <cc>benjamin</cc>
    
    <cc>eric</cc>
    
    <cc>hausmann</cc>
    
    <cc>hyatt</cc>
    
    <cc>jamesr</cc>
    
    <cc>jcamerer</cc>
    
    <cc>jesus</cc>
    
    <cc>kenneth</cc>
    
    <cc>kling</cc>
    
    <cc>nathan.whetsell</cc>
    
    <cc>tonikitoo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>217564</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2010-04-27 00:49:42 -0700</bug_when>
    <thetext>QWebPage::setViewportSize() layout the render tree multiple times.

The call to setFrameRect() will trigger a full re-layout if the size have changed. Later in the function, a second full layout is done because we call view-&gt;forceLayout().

See the comments of Nate Whetsell on http://bugreports.qt.nokia.com/browse/QTBUG-5929</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>217641</commentid>
    <comment_count>1</comment_count>
      <attachid>54407</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-04-27 03:47:48 -0700</bug_when>
    <thetext>Created attachment 54407
Remove superfluous forceLayout() call</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>217648</commentid>
    <comment_count>2</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2010-04-27 04:15:24 -0700</bug_when>
    <thetext>*** Bug 34501 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>218540</commentid>
    <comment_count>3</comment_count>
      <attachid>54407</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2010-04-28 12:06:06 -0700</bug_when>
    <thetext>Comment on attachment 54407
Remove superfluous forceLayout() call

Good catch!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>218561</commentid>
    <comment_count>4</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-04-28 12:27:58 -0700</bug_when>
    <thetext>Anyway it shouldn&apos;t really make any difference. forceLayout is just a normal layout, and it will only layout if something is marked as needsLayout.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>218862</commentid>
    <comment_count>5</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2010-04-29 00:01:43 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Anyway it shouldn&apos;t really make any difference. forceLayout is just a normal
&gt; layout, and it will only layout if something is marked as needsLayout.

It does layout, the layout is invalidated earlier for the scrollbar. Nate Whetsell have other comments, we really layout 3 times.

Andreas is working on follow up patches for the last superfluous layout.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>218937</commentid>
    <comment_count>6</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2010-04-29 03:43:35 -0700</bug_when>
    <thetext>Committed r58497: &lt;http://trac.webkit.org/changeset/58497&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>218944</commentid>
    <comment_count>7</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2010-04-29 04:05:31 -0700</bug_when>
    <thetext>Revision r58497 cherry-picked into qtwebkit-2.0 with commit 1bfff59ac27f9382f6c11f18144bf129bcc9f1a4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>218952</commentid>
    <comment_count>8</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2010-04-29 04:23:17 -0700</bug_when>
    <thetext>Reopening, more patches should follow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>219027</commentid>
    <comment_count>9</comment_count>
      <attachid>54705</attachid>
    <who name="Nate Whetsell">nathan.whetsell</who>
    <bug_when>2010-04-29 07:33:16 -0700</bug_when>
    <thetext>Created attachment 54705
Shark trace showing three calls to WebCore::RenderView:layout</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>219028</commentid>
    <comment_count>10</comment_count>
    <who name="Nate Whetsell">nathan.whetsell</who>
    <bug_when>2010-04-29 07:34:29 -0700</bug_when>
    <thetext>Hi all,

Benjamin suggested I move over here from the Qt JIRA site.

I think that there is one more superfluous layout occurring. I&apos;ll try to distill what I think is causing this from my comments at http://bugreports.qt.nokia.com/browse/QTBUG-5929.

In WebCore::ScrollView::updateScrollbars, there are two calls to WebCore::FrameView::visibleContentsResized. The second call (currently line 414 of http://trac.webkit.org/browser/trunk/WebCore/platform/ScrollView.cpp) is immediately preceded by a call to WebCore::FrameView::contentsResized. I think this means that needsLayout is set to true before visibleContentsResized is called, which guarantees that a layout will occur here.

The call to WebCore:: FrameView:: visibleContentsResized eventually leads to WebCore::ScrollView::setContentsSize. In this function, WebCore::ScrollView::updateScrollbars is called again. If, in this second call to WebCore::ScrollView::updateScrollbars, execution gets to line 414, I believe there will be another layout. (The m_updateScrollbarsPass &lt; cMaxUpdateScrollbarsPass test at line 411 prevents additional layouts from occurring.)

For ease of reference, I&apos;ve attached a report (shark.txt) generated from a Shark trace I did to try and pin down this issue. The trace shows execution time divided evenly between three calls to WebCore::RenderView::layout, and two calls to WebCore::ScrollView::updateScrollbars.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223664</commentid>
    <comment_count>11</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-05-10 19:01:14 -0700</bug_when>
    <thetext>Nate, are you still looking into this? If not, we need to figure out whether to postpone it or get someone else to look at it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223679</commentid>
    <comment_count>12</comment_count>
    <who name="Nate Whetsell">nathan.whetsell</who>
    <bug_when>2010-05-10 19:14:13 -0700</bug_when>
    <thetext>Hi Kenneth,

I didn&apos;t realize I was the only one looking at this. My comments here and at http://bugreports.qt.nokia.com/browse/QTBUG-5929 are unfortunately all I&apos;m able to provide. I don&apos;t have enough experience with Qt and Webkit to take this further.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223734</commentid>
    <comment_count>13</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2010-05-10 21:50:48 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; Committed r58497: &lt;http://trac.webkit.org/changeset/58497&gt;

this change (believe it or not) broke tst_qgraphicswebview.cpp @ QGraphicsWebView::crashOnViewlessWebPages()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223737</commentid>
    <comment_count>14</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2010-05-10 21:57:15 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; (In reply to comment #6)
&gt; &gt; Committed r58497: &lt;http://trac.webkit.org/changeset/58497&gt;
&gt; 
&gt; this change (believe it or not) broke tst_qgraphicswebview.cpp @ QGraphicsWebView::crashOnViewlessWebPages()

or to  say it better, this bug might had revealed a real bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>225094</commentid>
    <comment_count>15</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2010-05-12 21:34:52 -0700</bug_when>
    <thetext>There is still 3 calls to FrameView::layout() going on when resizing to an inferior size.

In updateScrollbars:
1) When resizing to an inferior size, we always assume the scrollbars will be set: &quot;newHasHorizontalScrollbar = docSize.width() &gt; visibleWidth();&quot;. And we layout with this setting.
In FrameView::layout():
2) We now know we have enough space without the scrollbar, so we disable them and layout() again
3) contentsResized(); is called after updateScrollbars(). It mark the layout as dirty and we will call layout one more time as soon as we enter a function that the layout to be done.

The calls (1) and (2) do a full relayout of the page.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>225101</commentid>
    <comment_count>16</comment_count>
      <attachid>55939</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2010-05-12 21:39:41 -0700</bug_when>
    <thetext>Created attachment 55939
Temporary patch

This patch get rid of the 2 superfluous calls to layout().

Not ready yet because:
-I need to make sure the case (!newHasHorizontalScrollbar &amp;&amp; hasHorizontalScrollbar &amp;&amp; vScroll != ScrollbarAlwaysOn) will not fail because of cMaxUpdateScrollbarsPass == 2
-I need to understand why the call inside ScrollView::setFrameRect() were in reverse order
-I am way too tired to be confident in the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226657</commentid>
    <comment_count>17</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-17 00:48:01 -0700</bug_when>
    <thetext>Unclear what the status of this patch is.  Is it to be landed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226677</commentid>
    <comment_count>18</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-05-17 01:27:41 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; Unclear what the status of this patch is.  Is it to be landed?

Benjamin will finalize it when he returns to the office on Wednesday.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>228503</commentid>
    <comment_count>19</comment_count>
      <attachid>56621</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2010-05-20 12:31:56 -0700</bug_when>
    <thetext>Created attachment 56621
Patch

The real patch. From my previous comments:

&gt; -I need to make sure the case (!newHasHorizontalScrollbar &amp;&amp; hasHorizontalScrollbar &amp;&amp; vScroll != ScrollbarAlwaysOn) will not fail because of cMaxUpdateScrollbarsPass == 2
This is not a problem in the updated version because I only care about the case when newHasHorizontalScrollbar is true.
The other case does not need change since the behavior is already optimal.

&gt; -I need to understand why the call inside ScrollView::setFrameRect() were in reverse order
Unfortunately, there is no history for that. This code comes from a big merge from the Windows port of WebKit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>228506</commentid>
    <comment_count>20</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2010-05-20 12:33:58 -0700</bug_when>
    <thetext>&gt; The real patch.

Also, the patch does not include unit tests because I am not aware of a way to count the number of re-layout() of a page from JavaScript.

If there is a way, I would be happy to make a test case :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>228515</commentid>
    <comment_count>21</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-05-20 12:58:08 -0700</bug_when>
    <thetext>You could expose that yourself. It is very common to add such hooks when adding layout tests, given that they don&apos;t introduce a performance penalty.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>229300</commentid>
    <comment_count>22</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-05-22 12:22:21 -0700</bug_when>
    <thetext>Changing the title, as the patch only affects WebCore code.

Hyatt, this is scrollbar related, can you take a look if you have time? Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239255</commentid>
    <comment_count>23</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2010-06-16 23:31:21 -0700</bug_when>
    <thetext>AFAICS this is a bug and it&apos;s an annoying one. At the same time it&apos;s not a regression or a crash, but it&apos;s blocking the release. I suggest to move it to 39313 - Benjamin/Andreas, what do you think?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239951</commentid>
    <comment_count>24</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2010-06-18 08:50:14 -0700</bug_when>
    <thetext>(In reply to comment #23)
&gt; AFAICS this is a bug and it&apos;s an annoying one. At the same time it&apos;s not a regression or a crash, but it&apos;s blocking the release. I suggest to move it to 39313 - Benjamin/Andreas, what do you think?

Yep, that is a good idea. I did not know about 39313.

No big deal if this is only integrated for WebKit 2.1, it is just a performance boost for a corner case (resizing down).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>240804</commentid>
    <comment_count>25</comment_count>
      <attachid>56621</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2010-06-21 12:09:02 -0700</bug_when>
    <thetext>Comment on attachment 56621
Patch

I&apos;m not convinced these changes are right, especially the move of updateScrollbars to after contentsResized. You need to patch WebDynamicScrollbarsView.m on Mac as well so we keep the logic in sync. I&apos;d also recommend testing on Mac with the changes in place, since you may catch bugs with these changes when running layout tests there (since it has more test coverage).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>281302</commentid>
    <comment_count>26</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2010-09-19 13:32:32 -0700</bug_when>
    <thetext>Benjamin, planning on follow up here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>281308</commentid>
    <comment_count>27</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2010-09-19 13:52:40 -0700</bug_when>
    <thetext>(In reply to comment #26)
&gt; Benjamin, planning on follow up here?

I would love to update, but I am short on time unfortunately, and this might require a full day of work.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>54407</attachid>
            <date>2010-04-27 03:47:48 -0700</date>
            <delta_ts>2010-06-25 01:54:34 -0700</delta_ts>
            <desc>Remove superfluous forceLayout() call</desc>
            <filename>bug-38179.diff</filename>
            <type>text/plain</type>
            <size>1165</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9BcGkvcXdlYnBhZ2UuY3BwIGIvV2ViS2l0L3F0L0FwaS9x
d2VicGFnZS5jcHAKaW5kZXggMGEyNGYwYS4uMWZjZTgxNiAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0
L0FwaS9xd2VicGFnZS5jcHAKKysrIGIvV2ViS2l0L3F0L0FwaS9xd2VicGFnZS5jcHAKQEAgLTIw
NjMsNyArMjA2Myw2IEBAIHZvaWQgUVdlYlBhZ2U6OnNldFZpZXdwb3J0U2l6ZShjb25zdCBRU2l6
ZSAmc2l6ZSkgY29uc3QKICAgICBpZiAoZnJhbWUtPmQtPmZyYW1lICYmIGZyYW1lLT5kLT5mcmFt
ZS0+dmlldygpKSB7CiAgICAgICAgIFdlYkNvcmU6OkZyYW1lVmlldyogdmlldyA9IGZyYW1lLT5k
LT5mcmFtZS0+dmlldygpOwogICAgICAgICB2aWV3LT5zZXRGcmFtZVJlY3QoUVJlY3QoUVBvaW50
KDAsIDApLCBzaXplKSk7Ci0gICAgICAgIHZpZXctPmZvcmNlTGF5b3V0KCk7CiAgICAgICAgIHZp
ZXctPmFkanVzdFZpZXdTaXplKCk7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L0No
YW5nZUxvZyBiL1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5kZXggOWVmMTZlZi4uZjQyMjQ0NCAxMDA2
NDQKLS0tIGEvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMTAtMDQtMjcgIEFuZHJlYXMgS2xpbmcgIDxhbmRyZWFzLmtsaW5n
QG5va2lhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBSZW1vdmUgdW5uZWNlc3NhcnkgY2FsbCB0byBGcmFtZVZpZXc6OmZvcmNlTGF5b3V0KCkg
aW4gc2V0Vmlld3BvcnRTaXplKCkKKyAgICAgICAgVGhpcyBwcmV2ZW50cyBhIGRvdWJsZSByZWxh
eW91dCBvbiByZXNpemUuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTM4MTc5CisKKyAgICAgICAgVGhhbmtzIHRvIE5hdGUgV2hldHNlbGwgPG5hdGhh
bi53aGV0c2VsbEBnbWFpbC5jb20+IGZvciBzcG90dGluZyB0aGlzLgorCisgICAgICAgICogQXBp
L3F3ZWJwYWdlLmNwcDoKKyAgICAgICAgKFFXZWJQYWdlOjpzZXRWaWV3cG9ydFNpemUpOgorCiAy
MDEwLTA0LTI1ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgTWFjaWVqIFN0YWNob3dpYWsuCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>54705</attachid>
            <date>2010-04-29 07:33:16 -0700</date>
            <delta_ts>2010-04-29 07:33:16 -0700</delta_ts>
            <desc>Shark trace showing three calls to WebCore::RenderView:layout</desc>
            <filename>shark.txt</filename>
            <type>text/plain</type>
            <size>1681</size>
            <attacher name="Nate Whetsell">nathan.whetsell</attacher>
            
              <data encoding="base64">U2hhcmtQcm9maWxlVmlld2VyCiMgR2VuZXJhdGVkIGZyb20gdGhlIHZpc2libGUgcG9ydGlvbiBv
ZiB0aGUgb3V0bGluZSB2aWV3CisgMTAwLjAlLCBRV2ViUGFnZTo6c2V0Vmlld3BvcnRTaXplKFFT
aXplIGNvbnN0JikgY29uc3QsIFF0V2ViS2l0X2RlYnVnCnwgKyA2Ni42JSwgV2ViQ29yZTo6U2Ny
b2xsVmlldzo6c2V0RnJhbWVSZWN0KFdlYkNvcmU6OkludFJlY3QgY29uc3QmKSwgUXRXZWJLaXRf
ZGVidWcKfCB8ICsgNjYuNiUsIFdlYkNvcmU6OlNjcm9sbFZpZXc6OnVwZGF0ZVNjcm9sbGJhcnMo
V2ViQ29yZTo6SW50U2l6ZSBjb25zdCYpLCBRdFdlYktpdF9kZWJ1Zwp8IHwgfCArIDY2LjYlLCBX
ZWJDb3JlOjpGcmFtZVZpZXc6OnZpc2libGVDb250ZW50c1Jlc2l6ZWQoKSwgUXRXZWJLaXRfZGVi
dWcKfCB8IHwgfCArIDY2LjUlLCBXZWJDb3JlOjpGcmFtZVZpZXc6OmxheW91dChib29sKSwgUXRX
ZWJLaXRfZGVidWcKfCB8IHwgfCB8ICsgMzMuMyUsIFdlYkNvcmU6OkZyYW1lVmlldzo6YWRqdXN0
Vmlld1NpemUoKSwgUXRXZWJLaXRfZGVidWcKfCB8IHwgfCB8IHwgKyAzMy4zJSwgV2ViQ29yZTo6
RnJhbWVWaWV3OjpzZXRDb250ZW50c1NpemUoV2ViQ29yZTo6SW50U2l6ZSBjb25zdCYpLCBRdFdl
YktpdF9kZWJ1Zwp8IHwgfCB8IHwgfCB8ICsgMzMuMyUsIFdlYkNvcmU6OlNjcm9sbFZpZXc6OnNl
dENvbnRlbnRzU2l6ZShXZWJDb3JlOjpJbnRTaXplIGNvbnN0JiksIFF0V2ViS2l0X2RlYnVnCnwg
fCB8IHwgfCB8IHwgfCArIDMzLjMlLCBXZWJDb3JlOjpTY3JvbGxWaWV3Ojp1cGRhdGVTY3JvbGxi
YXJzKFdlYkNvcmU6OkludFNpemUgY29uc3QmKSwgUXRXZWJLaXRfZGVidWcKfCB8IHwgfCB8IHwg
fCB8IHwgKyAzMy4zJSwgV2ViQ29yZTo6RnJhbWVWaWV3Ojp2aXNpYmxlQ29udGVudHNSZXNpemVk
KCksIFF0V2ViS2l0X2RlYnVnCnwgfCB8IHwgfCB8IHwgfCB8IHwgKyAzMy4zJSwgV2ViQ29yZTo6
RnJhbWVWaWV3OjpsYXlvdXQoYm9vbCksIFF0V2ViS2l0X2RlYnVnCnwgfCB8IHwgfCB8IHwgfCB8
IHwgfCAtIDMzLjMlLCBXZWJDb3JlOjpSZW5kZXJWaWV3OjpsYXlvdXQoKSwgUXRXZWJLaXRfZGVi
dWcKfCB8IHwgfCB8IC0gMzMuMiUsIFdlYkNvcmU6OlJlbmRlclZpZXc6OmxheW91dCgpLCBRdFdl
YktpdF9kZWJ1Zwp8IHwgfCB8ICAgMC4wJSwgV2ViQ29yZTo6UmVuZGVyVmlldzo6bGF5b3V0KCks
IFF0V2ViS2l0X2RlYnVnCnwgfCAtIDAuMCUsIFdlYkNvcmU6OkZyYW1lVmlldzo6Y29udGVudHNS
ZXNpemVkKCksIFF0V2ViS2l0X2RlYnVnCnwgKyAzMy40JSwgV2ViQ29yZTo6RnJhbWVWaWV3Ojpm
b3JjZUxheW91dChib29sKSwgUXRXZWJLaXRfZGVidWcKfCB8ICsgMzMuNCUsIFdlYkNvcmU6OkZy
YW1lVmlldzo6bGF5b3V0KGJvb2wpLCBRdFdlYktpdF9kZWJ1Zwp8IHwgfCAtIDMzLjQlLCBXZWJD
b3JlOjpSZW5kZXJWaWV3OjpsYXlvdXQoKSwgUXRXZWJLaXRfZGVidWcKfCB8IHwgLSAwLjAlLCBX
ZWJDb3JlOjpSZW5kZXJMYXllcjo6dXBkYXRlTGF5ZXJQb3NpdGlvbnModW5zaWduZWQgaW50KSwg
UXRXZWJLaXRfZGVidWcKfCB8IHwgLSAwLjAlLCBXZWJDb3JlOjpGcmFtZVZpZXc6OmVuZERlZmVy
cmVkUmVwYWludHMoKSwgUXRXZWJLaXRfZGVidWcKfCAtIDAuMCUsIFFXZWJQYWdlOjptYWluRnJh
bWUoKSBjb25zdCwgUXRXZWJLaXRfZGVidWcKCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55939</attachid>
            <date>2010-05-12 21:39:41 -0700</date>
            <delta_ts>2010-05-12 21:39:41 -0700</delta_ts>
            <desc>Temporary patch</desc>
            <filename>38179.patch</filename>
            <type>text/plain</type>
            <size>1492</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAgYi9XZWJDb3JlL3Bs
YXRmb3JtL1Njcm9sbFZpZXcuY3BwCmluZGV4IDYyODZhOWMuLjQ2YzVmMDAgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9T
Y3JvbGxWaWV3LmNwcApAQCAtMzkwLDEyICszOTAsMTggQEAgdm9pZCBTY3JvbGxWaWV3Ojp1cGRh
dGVTY3JvbGxiYXJzKGNvbnN0IEludFNpemUmIGRlc2lyZWRPZmZzZXQpCiAgICAgICAgICAgICBu
ZXdIYXNIb3Jpem9udGFsU2Nyb2xsYmFyID0gZmFsc2U7CiAKICAgICAgICAgaWYgKGhhc0hvcml6
b250YWxTY3JvbGxiYXIgIT0gbmV3SGFzSG9yaXpvbnRhbFNjcm9sbGJhcikgewotICAgICAgICAg
ICAgc2V0SGFzSG9yaXpvbnRhbFNjcm9sbGJhcihuZXdIYXNIb3Jpem9udGFsU2Nyb2xsYmFyKTsK
KyAgICAgICAgICAgIGlmICghbV91cGRhdGVTY3JvbGxiYXJzUGFzcyAmJiBoU2Nyb2xsID09IFNj
cm9sbGJhckF1dG8pCisgICAgICAgICAgICAgICAgc2V0SGFzSG9yaXpvbnRhbFNjcm9sbGJhciho
YXNIb3Jpem9udGFsU2Nyb2xsYmFyKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAg
ICBzZXRIYXNIb3Jpem9udGFsU2Nyb2xsYmFyKG5ld0hhc0hvcml6b250YWxTY3JvbGxiYXIpOwog
ICAgICAgICAgICAgc2VuZENvbnRlbnRSZXNpemVkTm90aWZpY2F0aW9uID0gdHJ1ZTsKICAgICAg
ICAgfQogCiAgICAgICAgIGlmIChoYXNWZXJ0aWNhbFNjcm9sbGJhciAhPSBuZXdIYXNWZXJ0aWNh
bFNjcm9sbGJhcikgewotICAgICAgICAgICAgc2V0SGFzVmVydGljYWxTY3JvbGxiYXIobmV3SGFz
VmVydGljYWxTY3JvbGxiYXIpOworICAgICAgICAgICAgaWYgKCFtX3VwZGF0ZVNjcm9sbGJhcnNQ
YXNzICYmIHZTY3JvbGwgPT0gU2Nyb2xsYmFyQXV0bykKKyAgICAgICAgICAgICAgICBzZXRIYXNW
ZXJ0aWNhbFNjcm9sbGJhcihoYXNWZXJ0aWNhbFNjcm9sbGJhcik7CisgICAgICAgICAgICBlbHNl
CisgICAgICAgICAgICAgICAgc2V0SGFzVmVydGljYWxTY3JvbGxiYXIobmV3SGFzVmVydGljYWxT
Y3JvbGxiYXIpOwogICAgICAgICAgICAgc2VuZENvbnRlbnRSZXNpemVkTm90aWZpY2F0aW9uID0g
dHJ1ZTsKICAgICAgICAgfQogCkBAIC02OTAsOCArNjk2LDggQEAgdm9pZCBTY3JvbGxWaWV3Ojpz
ZXRGcmFtZVJlY3QoY29uc3QgSW50UmVjdCYgbmV3UmVjdCkKICAgICAgICAgcmV0dXJuOwogICAg
IAogICAgIGlmIChuZXdSZWN0LndpZHRoKCkgIT0gb2xkUmVjdC53aWR0aCgpIHx8IG5ld1JlY3Qu
aGVpZ2h0KCkgIT0gb2xkUmVjdC5oZWlnaHQoKSkgewotICAgICAgICB1cGRhdGVTY3JvbGxiYXJz
KG1fc2Nyb2xsT2Zmc2V0KTsKICAgICAgICAgY29udGVudHNSZXNpemVkKCk7CisgICAgICAgIHVw
ZGF0ZVNjcm9sbGJhcnMobV9zY3JvbGxPZmZzZXQpOwogICAgIH0KIAogICAgIGZyYW1lUmVjdHND
aGFuZ2VkKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56621</attachid>
            <date>2010-05-20 12:31:56 -0700</date>
            <delta_ts>2010-06-21 12:09:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>38179.patch</filename>
            <type>text/plain</type>
            <size>2955</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZDE2NDQxYy4uZDY0YmVmMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAxMC0wNS0yMCAgQmVuamFtaW4gUG91
bGFpbiAgPGJlbmphbWluLnBvdWxhaW5Abm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtRdF0gUVdlYlBhZ2U6OnNldFZpZXdwb3J0U2l6
ZSgpIGZvcmNlcyB0d28gbGF5b3V0IG9mIHRoZSByZW5kZXIgdHJlZQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzgxNzkKKworICAgICAgICBXaGVuIHJl
c2l6aW5nIHRoZSBmcmFtZSB0byBhIHNtYWxsZXIgc2l6ZSwgdGhlIGNvZGUgd2FzIGFzc3VtaW5n
IGEgc2Nyb2xsYmFyCisgICAgICAgIGlzIG5lY2Vzc2FyeSBpZiB0aGUgY29udGVudCBzaXplIGlz
IGJpZ2dlciB0aGFuIHRoZSBmcmFtZSBzaXplLgorICAgICAgICBUaGUgbGF5b3V0IHdhcyB0aGVu
IGRvbmUsIGFuZCBpbiBtb3N0IGNhc2VzLCB0aGUgc2Nyb2xsYmFyIGlzIG5vdCBuZWVkZWQgaWYg
dGhlcmUKKyAgICAgICAgd2FzIG5vdCBvbmUgYmVmb3JlLCBhbmQgMiBwYXNzZXMgYXJlIHJlcXVp
cmVkIHRvIHJlbW92ZSB0aGUgdHdvIHNjcm9sbGJhcnMuCisKKyAgICAgICAgT3ZlcmFsbCwgcmVz
aXppbmcgYSBmcmFtZSBkb3duIGFsd2F5cyB0b29rIDMgZnVsbCByZS1sYXlvdXQgb2YgdGhlIGZy
YW1lLgorCisgICAgICAgIFdpdGggdGhpcyBwYXRoLCB3aGVuIHJlc2l6aW5nIGRvd24sIGl0IGlz
IGFzc3VtZWQgdGhlcmUgaXMgbm8gc2Nyb2xsYmFyIG9uIHRoZSBmaXJzdAorICAgICAgICBwYXNz
IGlmIHRoZXJlIHdhcyBub25lIGJlZm9yZS4gVGhlIHNjcm9sbGJhciBhcmUgdGhlbiBhZGRlZCBv
biB0aGUgc2Vjb25kIHBhc3MuCisKKyAgICAgICAgT3ZlcmFsbCwgcmVzaXppbmcgYSBmcmFtZSBk
b3duIGdlbmVyYWxseSB0YWtlIDEgZnVsbCByZWxheW91dC4gSW4gdGhlIGNhc2Ugd2hlbiB0aGUg
c2Nyb2xsYmFyCisgICAgICAgIGFwcGVhciwgMiByZWxheW91dCBhcmUgbmVlZGVkLgorCisgICAg
ICAgICogcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxW
aWV3Ojp1cGRhdGVTY3JvbGxiYXJzKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6Ondo
ZWVsRXZlbnQpOgorCiAyMDEwLTA1LTEwICBDc2FiYSBPc3p0cm9nb27DoWMgIDxvc3N5QHdlYmtp
dC5vcmc+CiAKICAgICAgICAgUnViYmVyLXN0YW1wZWQgYnkgU2ltb24gSGF1c21hbm4uCmRpZmYg
LS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwIGIvV2ViQ29yZS9wbGF0Zm9y
bS9TY3JvbGxWaWV3LmNwcAppbmRleCA2Mjg2YTljLi5hNTBmYjZmIDEwMDY0NAotLS0gYS9XZWJD
b3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xs
Vmlldy5jcHAKQEAgLTM5MCwxMiArMzkwLDE2IEBAIHZvaWQgU2Nyb2xsVmlldzo6dXBkYXRlU2Ny
b2xsYmFycyhjb25zdCBJbnRTaXplJiBkZXNpcmVkT2Zmc2V0KQogICAgICAgICAgICAgbmV3SGFz
SG9yaXpvbnRhbFNjcm9sbGJhciA9IGZhbHNlOwogCiAgICAgICAgIGlmIChoYXNIb3Jpem9udGFs
U2Nyb2xsYmFyICE9IG5ld0hhc0hvcml6b250YWxTY3JvbGxiYXIpIHsKLSAgICAgICAgICAgIHNl
dEhhc0hvcml6b250YWxTY3JvbGxiYXIobmV3SGFzSG9yaXpvbnRhbFNjcm9sbGJhcik7CisgICAg
ICAgICAgICAvLyB3aGVuIHJlc2l6aW5nIGRvd24sIGFzc3VtZSB0aGUgc3RhdGUgb2YgdGhlIHNj
cm9sbGJhciBkb2VzIG5vdCBjaGFuZ2UgZm9yIHRoZSBmaXJzdCBwYXNzCisgICAgICAgICAgICBp
ZiAoISghbV91cGRhdGVTY3JvbGxiYXJzUGFzcyAmJiBoU2Nyb2xsID09IFNjcm9sbGJhckF1dG8g
JiYgIWhhc0hvcml6b250YWxTY3JvbGxiYXIpKQorICAgICAgICAgICAgICAgIHNldEhhc0hvcml6
b250YWxTY3JvbGxiYXIobmV3SGFzSG9yaXpvbnRhbFNjcm9sbGJhcik7CiAgICAgICAgICAgICBz
ZW5kQ29udGVudFJlc2l6ZWROb3RpZmljYXRpb24gPSB0cnVlOwogICAgICAgICB9CiAKICAgICAg
ICAgaWYgKGhhc1ZlcnRpY2FsU2Nyb2xsYmFyICE9IG5ld0hhc1ZlcnRpY2FsU2Nyb2xsYmFyKSB7
Ci0gICAgICAgICAgICBzZXRIYXNWZXJ0aWNhbFNjcm9sbGJhcihuZXdIYXNWZXJ0aWNhbFNjcm9s
bGJhcik7CisgICAgICAgICAgICAvLyB3aGVuIHJlc2l6aW5nIGRvd24sIGFzc3VtZSB0aGUgc3Rh
dGUgb2YgdGhlIHNjcm9sbGJhciBkb2VzIG5vdCBjaGFuZ2UgZm9yIHRoZSBmaXJzdCBwYXNzCisg
ICAgICAgICAgICBpZiAoISghbV91cGRhdGVTY3JvbGxiYXJzUGFzcyAmJiB2U2Nyb2xsID09IFNj
cm9sbGJhckF1dG8gJiYgIWhhc1ZlcnRpY2FsU2Nyb2xsYmFyKSkKKyAgICAgICAgICAgICAgICBz
ZXRIYXNWZXJ0aWNhbFNjcm9sbGJhcihuZXdIYXNWZXJ0aWNhbFNjcm9sbGJhcik7CiAgICAgICAg
ICAgICBzZW5kQ29udGVudFJlc2l6ZWROb3RpZmljYXRpb24gPSB0cnVlOwogICAgICAgICB9CiAK
QEAgLTY5MCw4ICs2OTQsOCBAQCB2b2lkIFNjcm9sbFZpZXc6OnNldEZyYW1lUmVjdChjb25zdCBJ
bnRSZWN0JiBuZXdSZWN0KQogICAgICAgICByZXR1cm47CiAgICAgCiAgICAgaWYgKG5ld1JlY3Qu
d2lkdGgoKSAhPSBvbGRSZWN0LndpZHRoKCkgfHwgbmV3UmVjdC5oZWlnaHQoKSAhPSBvbGRSZWN0
LmhlaWdodCgpKSB7Ci0gICAgICAgIHVwZGF0ZVNjcm9sbGJhcnMobV9zY3JvbGxPZmZzZXQpOwog
ICAgICAgICBjb250ZW50c1Jlc2l6ZWQoKTsKKyAgICAgICAgdXBkYXRlU2Nyb2xsYmFycyhtX3Nj
cm9sbE9mZnNldCk7CiAgICAgfQogCiAgICAgZnJhbWVSZWN0c0NoYW5nZWQoKTsK
</data>
<flag name="review"
          id="41078"
          type_id="1"
          status="-"
          setter="hyatt"
    />
    <flag name="commit-queue"
          id="41079"
          type_id="3"
          status="-"
          setter="hyatt"
    />
          </attachment>
      

    </bug>

</bugzilla>