<?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>28614</bug_id>
          
          <creation_ts>2009-08-21 09:32:40 -0700</creation_ts>
          <short_desc>Unnecessary horizontal scrollbar in Gmail under Chromium.  ScrollView::updateScrollbars uses stale value for off/on/auto scrollbar mode.</short_desc>
          <delta_ts>2010-04-04 20:11:58 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Frames</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Mentovai">mark</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>hyatt</cc>
    
    <cc>me</cc>
    
    <cc>playmobil</cc>
    
    <cc>sam</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>141889</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Mentovai">mark</who>
    <bug_when>2009-08-21 09:32:40 -0700</bug_when>
    <thetext>While using Gmail in Chromium on Mac and Linux, WebKit shows a horizontal scrollbar when it shouldn&apos;t.

http://crbug.com/7976
http://crbug.com/14647

Assuming that the window is wide enough to not need a horizontal scrollbar in Gmail, and assuming that Chromium doesn&apos;t pop open any info bars or anything that change the size of the view causing a relayout:

The document width is remaining at the frame width when the page is loaded, even though the appearance of the vertical scrollbar should cause the document width to be constrained to the visible width.  This causes a horizontal scrollbar to appear.

When the window is resized, the horizontal scrollbar disappears (assuming that the visible width is at least the page&apos;s minimum width).

ScrollView::updateScrollbars is using stale data for the scrollbar modes, hScroll and vScroll, by setting them prior to performing the initial layout.  In the case of Gmail, the vertical scrollbar mode is ScrollbarAuto prior to layout, but after the call to visibleContentsResized(), it changes to ScrollbarAlwaysOn.  However, for the remainder of updateScrollbars, even after visibleContentsResized() returns, the stale cached value of ScrollbarAuto will be used.  This results in no vertical scrollbar being set during this initial run of updateScrollbars, because the document size at that point matches the frame size exactly.

The above describes the underlying bug.  The appearance of the horizontal scrollbar is actually a symptom of this bug in conjunction with peculiarities of Gmail.  With no vertical scrollbar, Gmail will remember the visible width as the width of the frame without the scrollbar, and will adjust itself to fill that space.  The next time updateScrollbars is reached, a vertical scrollbar will be enabled (owing to its being set to ScrollbarAlwaysOn), shrinking the actual visible width, but Gmail will continue to use the original value.  When updateScrollbars recurses back into itself, a horizontal scrollbar will be enabled: the horizontal scrollbar is set to ScrollbarAuto, and the document width is now narrower than the visible width, because the vertical scrollbar is present.

I have a patch, which I&apos;ll attach to this bug shortly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>141893</commentid>
    <comment_count>1</comment_count>
      <attachid>38376</attachid>
    <who name="Mark Mentovai">mark</who>
    <bug_when>2009-08-21 09:41:53 -0700</bug_when>
    <thetext>Created attachment 38376
Perform layout before checking scrollbar modes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142101</commentid>
    <comment_count>2</comment_count>
      <attachid>38376</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2009-08-21 20:56:47 -0700</bug_when>
    <thetext>Comment on attachment 38376
Perform layout before checking scrollbar modes

I am not convinced this is right.  You aren&apos;t supposed to just always invoke visibleContentsResized.

Also note that any change to this logic has to be replicated in WebDynamicScrollbarsView on Mac to keep the two in sync.

Finally I see no reason to change the word &quot;recur&quot; to &quot;recurse.&quot;  They mean exactly the same thing, and changing around English just because you don&apos;t like it pisses me off.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142148</commentid>
    <comment_count>3</comment_count>
      <attachid>38436</attachid>
    <who name="Mark Mentovai">mark</who>
    <bug_when>2009-08-22 13:53:49 -0700</bug_when>
    <thetext>Created attachment 38436
Perform layout before checking scrollbar modes

&gt; I am not convinced this is right.  You aren&apos;t supposed to just always invoke
&gt; visibleContentsResized.

The existing code always calls visibleContentsResized, though.  I&apos;m just moving the call up earlier to avoid using stale data for the off/on/auto value.

There&apos;s one additional behavior change.  The existing code avoids visibleContentsResized if if both the horizontal and vertical scrollbars are forced on or off.  With the proposed patch, this is not taken into account.  I considered writing the patch to respect these values, but felt that would be unwise.  The bug as it relates to Gmail involves the vertical scrollbar mode being changed from auto to forced-on during the call to visibleContentsResized.  It seems just as plausible for forced-on/off scrollbars to change back to auto in that call.

&gt; Also note that any change to this logic has to be replicated in
&gt; WebDynamicScrollbarsView on Mac to keep the two in sync.

This version of the patch takes that into account.  It also moves a couple of minor things around, with no functional changes, to keep it synchronized with ScrollView::updateScrollbars.

&gt; Finally I see no reason to change the word &quot;recur&quot; to &quot;recurse.&quot;  They mean
&gt; exactly the same thing, and changing around English just because you don&apos;t like
&gt; it pisses me off.

OK.  It should be pretty clear that I didn&apos;t intend to piss anyone off.

I&apos;ve run this through the layout test suite and it doesn&apos;t introduce any regressions.  It fixes the Gmail bug in Chromium.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142705</commentid>
    <comment_count>4</comment_count>
    <who name="Mark Mentovai">mark</who>
    <bug_when>2009-08-25 14:59:03 -0700</bug_when>
    <thetext>Ping?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142863</commentid>
    <comment_count>5</comment_count>
      <attachid>38436</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2009-08-26 09:16:26 -0700</bug_when>
    <thetext>Comment on attachment 38436
Perform layout before checking scrollbar modes

When both scrollbars are forced on, this is because of overflow:scroll.  That&apos;s why we checked that case... since you know you don&apos;t need to do a layout if both scrollbars are locked on.  That was my concern.  I don&apos;t think you want to cause a layout to happen in that case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142873</commentid>
    <comment_count>6</comment_count>
    <who name="Mark Mentovai">mark</who>
    <bug_when>2009-08-26 09:50:02 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; When both scrollbars are forced on, this is because of overflow:scroll.  That&apos;s
&gt; why we checked that case... since you know you don&apos;t need to do a layout if
&gt; both scrollbars are locked on.  That was my concern.  I don&apos;t think you want to
&gt; cause a layout to happen in that case.

Dave, I still think that there is still a reason that layout might be necessary in that case.  For example:

 - page has overflow:scroll
 - page is resized
 - page&apos;s JS responds to resize by changing the value of overflow

The only way to handle that case properly is to do the layout before even looking at the state of m_horizontalScrollbarMode and m_verticalScrollbarMode.  If you&apos;re worried about &quot;too much layout,&quot; FrameView::visibleContentsResized should only do the layout if one is actually needed, and the common case is &quot;auto&quot; anyway and there doesn&apos;t seem to be &quot;too much layout&quot; with the code structured as-is.  I do think that the existing patch (v2) is the correct one.

I&apos;m primarily concerned with fixing the horizontal scrollbar bug as it relates to Gmail, so if you really think that further limiting the conditions in which visibleContentsResized is called, I&apos;m happy to change it.  I&apos;ll upload another patch in a moment, feel free to pick which one you prefer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142874</commentid>
    <comment_count>7</comment_count>
      <attachid>38616</attachid>
    <who name="Mark Mentovai">mark</who>
    <bug_when>2009-08-26 09:53:03 -0700</bug_when>
    <thetext>Created attachment 38616
v3, only do early layout when at least one scrollbar is in &quot;auto&quot; mode

See comment 6.  I believe that attachment 38436 is the correct approach here, but if you prefer this one, it should also fix the specific bug I&apos;m working on right now too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142978</commentid>
    <comment_count>8</comment_count>
    <who name="Mark Mentovai">mark</who>
    <bug_when>2009-08-26 15:32:41 -0700</bug_when>
    <thetext>Both v2 (attachment 38436) and v3 (attachment 38616) fix my specific Gmail bug (http://crbug.com/7976), and neither introduces any layout test regressions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>143708</commentid>
    <comment_count>9</comment_count>
      <attachid>38436</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2009-08-31 13:27:25 -0700</bug_when>
    <thetext>Comment on attachment 38436
Perform layout before checking scrollbar modes

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>143713</commentid>
    <comment_count>10</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2009-08-31 13:38:33 -0700</bug_when>
    <thetext>Landed as http://trac.webkit.org/changeset/47904.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>143727</commentid>
    <comment_count>11</comment_count>
    <who name="Mark Mentovai">mark</who>
    <bug_when>2009-08-31 14:36:53 -0700</bug_when>
    <thetext>This may have caused fast/dom/Window/new-window-opener.htm to fail on the Mac according to the buildbot.  It didn&apos;t locally, but my working copy is not completely up to date.  I&apos;ll investigate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>143738</commentid>
    <comment_count>12</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2009-08-31 15:29:25 -0700</bug_when>
    <thetext>Reverted http://trac.webkit.org/changeset/47909.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>143762</commentid>
    <comment_count>13</comment_count>
    <who name="Mark Mentovai">mark</who>
    <bug_when>2009-08-31 18:08:21 -0700</bug_when>
    <thetext>The test that&apos;s failing, fast/dom/Window/new-window-opener.html, passes in &quot;run-safari&quot; when pop-up blocking is disabled.  The test depends on disabling the pop-up blocker.  It fails when run via DumpRenderTree (&quot;run-webkit-tests&quot;), but not because pop-ups are blocked (they aren&apos;t).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>143783</commentid>
    <comment_count>14</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-09-01 00:30:08 -0700</bug_when>
    <thetext>You can control preferences in DRT tests via:
        layoutTestController.overridePreference(&quot;WebKitJavaScriptEnabled&quot;, false);

see examples in:
LayoutTests/fast/harness</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>143815</commentid>
    <comment_count>15</comment_count>
      <attachid>38436</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-09-01 03:05:21 -0700</bug_when>
    <thetext>Comment on attachment 38436
Perform layout before checking scrollbar modes

Clearing hyatt&apos;s r+ since there are newer patches.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>144683</commentid>
    <comment_count>16</comment_count>
      <attachid>39036</attachid>
    <who name="Mark Mentovai">mark</who>
    <bug_when>2009-09-03 21:52:12 -0700</bug_when>
    <thetext>Created attachment 39036
v4, Eliminate duplicated (and incorrect) scrollbar mode tracking between FrameView and ScrollView

I figured out why fast/dom/Window/new-window-opener.html was failing in DumpRenderTree on the Mac.  Both FrameView and its superclass ScrollView maintain members that track the off/on/auto state of each scrollbar.  In certain cases, they could become desynchronized.

The problem occurs when setCanHaveScrollbars is called.  In this layout test, that method was being called to turn off the scrollbars in response to a JavaScript window.open(..., &quot;scrollbars=no&quot;).  In the existing code, FrameView::setCanHaveScrollbars first calls the superclass method ScrollView::setCanHaveScrollbars, and then updates its m_[hv]mode members used to track the scrollbar state.  Unfortunately (for me), ScrollView::setCanHaveScrollbars eventually enters FrameView::layout, which uses m_[hv]mode before they have been properly set.

I can&apos;t see any good reason to maintain the duplication between m_[hv]mode in FrameView and m_{horizontal|vertical}ScrollbarMode in ScrollView.  In this patch, I&apos;m getting rid of the duplicated fields in FrameView, along with some extra bookkeeping methods and members that were supposed keep everything synchronized.

The ScrollView.cpp and WebDynamicScrollBarsView.mm parts of this patch already had r+ from hyatt in v2, and are unchanged in this version.

This produced no layout test regressions on the Mac in DumpRenderTree, or on any of Chromium&apos;s three platforms.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>144823</commentid>
    <comment_count>17</comment_count>
      <attachid>39036</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2009-09-04 09:14:32 -0700</bug_when>
    <thetext>Comment on attachment 39036
v4, Eliminate duplicated (and incorrect) scrollbar mode tracking between FrameView and ScrollView

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>144893</commentid>
    <comment_count>18</comment_count>
    <who name="Mark Mentovai">mark</who>
    <bug_when>2009-09-04 12:24:49 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/48064</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>38376</attachid>
            <date>2009-08-21 09:41:53 -0700</date>
            <delta_ts>2009-08-22 13:53:49 -0700</delta_ts>
            <desc>Perform layout before checking scrollbar modes</desc>
            <filename>webkit.28614.1.patch</filename>
            <type>text/plain</type>
            <size>2807</size>
            <attacher name="Mark Mentovai">mark</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NzYzMCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMDktMDgtMjEgIE1hcmsgTWVudG92YWkgIDxtYXJrQGNocm9taXVt
Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjg2MTQKKworICAgICAgICBQ
ZXJmb3JtIGEgbGF5b3V0IHByaW9yIHRvIGNoZWNraW5nIHdoZXRoZXIgdGhlIHNjcm9sbGJhciBt
b2RlcyBhcmUKKyAgICAgICAgb2ZmLCBvbiwgb3IgYXV0b21hdGljLiAgVGhlIG1vZGVzIG1heSBj
aGFuZ2UgZHVyaW5nIGxheW91dC4KKworICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbFZpZXcuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6dXBkYXRlU2Nyb2xsYmFycyk6CisKIDIw
MDktMDgtMjEgIEJldGggRGFraW4gIDxiZGFraW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IERhbiBCZXJuc3RlaW4uCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAJKHJldmlz
aW9uIDQ3NjI5KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzI5LDYgKzMyOSwxNSBAQCB2b2lkIFNjcm9sbFZpZXc6OnVwZGF0ZVNjcm9sbGJh
cnMoY29uc3QgCiAgICAgaWYgKG1faW5VcGRhdGVTY3JvbGxiYXJzIHx8IHByb2hpYml0c1Njcm9s
bGluZygpIHx8IHBsYXRmb3JtV2lkZ2V0KCkpCiAgICAgICAgIHJldHVybjsKIAorICAgIGlmICgh
bV9zY3JvbGxiYXJzU3VwcHJlc3NlZCkgeworICAgICAgICAvLyBJZiB3ZSBjYW1lIGluIGhlcmUg
d2l0aCB0aGUgdmlldyBhbHJlYWR5IG5lZWRpbmcgYSBsYXlvdXQsIHRoZW4gZ28gYWhlYWQgYW5k
IGRvIHRoYXQKKyAgICAgICAgLy8gZmlyc3QuICAoVGhpcyB3aWxsIGJlIHRoZSBjb21tb24gY2Fz
ZSwgZS5nLiwgd2hlbiB0aGUgcGFnZSBjaGFuZ2VzIGR1ZSB0byB3aW5kb3cgcmVzaXppbmcgZm9y
IGV4YW1wbGUpLgorICAgICAgICAvLyBUaGlzIGxheW91dCB3aWxsIG5vdCByZS1lbnRlciB1cGRh
dGVTY3JvbGxiYXJzIGFuZCBkb2VzIG5vdCBjb3VudCB0b3dhcmRzIG91ciBtYXggbGF5b3V0IHBh
c3MgdG90YWwuCisgICAgICAgIG1faW5VcGRhdGVTY3JvbGxiYXJzID0gdHJ1ZTsKKyAgICAgICAg
dmlzaWJsZUNvbnRlbnRzUmVzaXplZCgpOworICAgICAgICBtX2luVXBkYXRlU2Nyb2xsYmFycyA9
IGZhbHNlOworICAgIH0KKwogICAgIGJvb2wgaGFzSG9yaXpvbnRhbFNjcm9sbGJhciA9IG1faG9y
aXpvbnRhbFNjcm9sbGJhcjsKICAgICBib29sIGhhc1ZlcnRpY2FsU2Nyb2xsYmFyID0gbV92ZXJ0
aWNhbFNjcm9sbGJhcjsKICAgICAKQEAgLTM0OSwxMyArMzU4LDYgQEAgdm9pZCBTY3JvbGxWaWV3
Ojp1cGRhdGVTY3JvbGxiYXJzKGNvbnN0IAogICAgICAgICBpZiAoaGFzVmVydGljYWxTY3JvbGxi
YXIgIT0gbmV3SGFzVmVydGljYWxTY3JvbGxiYXIpCiAgICAgICAgICAgICBzZXRIYXNWZXJ0aWNh
bFNjcm9sbGJhcihuZXdIYXNWZXJ0aWNhbFNjcm9sbGJhcik7CiAgICAgfSBlbHNlIHsKLSAgICAg
ICAgLy8gSWYgd2UgY2FtZSBpbiBoZXJlIHdpdGggdGhlIHZpZXcgYWxyZWFkeSBuZWVkaW5nIGEg
bGF5b3V0LCB0aGVuIGdvIGFoZWFkIGFuZCBkbyB0aGF0Ci0gICAgICAgIC8vIGZpcnN0LiAgKFRo
aXMgd2lsbCBiZSB0aGUgY29tbW9uIGNhc2UsIGUuZy4sIHdoZW4gdGhlIHBhZ2UgY2hhbmdlcyBk
dWUgdG8gd2luZG93IHJlc2l6aW5nIGZvciBleGFtcGxlKS4KLSAgICAgICAgLy8gVGhpcyBsYXlv
dXQgd2lsbCBub3QgcmUtZW50ZXIgdXBkYXRlU2Nyb2xsZXJzIGFuZCBkb2VzIG5vdCBjb3VudCB0
b3dhcmRzIG91ciBtYXggbGF5b3V0IHBhc3MgdG90YWwuCi0gICAgICAgIG1faW5VcGRhdGVTY3Jv
bGxiYXJzID0gdHJ1ZTsKLSAgICAgICAgdmlzaWJsZUNvbnRlbnRzUmVzaXplZCgpOwotICAgICAg
ICBtX2luVXBkYXRlU2Nyb2xsYmFycyA9IGZhbHNlOwotCiAgICAgICAgIGJvb2wgc2VuZENvbnRl
bnRSZXNpemVkTm90aWZpY2F0aW9uID0gZmFsc2U7CiAgICAgICAgIAogICAgICAgICBJbnRTaXpl
IGRvY1NpemUgPSBjb250ZW50c1NpemUoKTsKQEAgLTM5Nyw3ICszOTksNyBAQCB2b2lkIFNjcm9s
bFZpZXc6OnVwZGF0ZVNjcm9sbGJhcnMoY29uc3QgCiAgICAgICAgICAgICBpZiAobmV3RG9jU2l6
ZSA9PSBkb2NTaXplKSB7CiAgICAgICAgICAgICAgICAgLy8gVGhlIGxheW91dCB3aXRoIHRoZSBu
ZXcgc2Nyb2xsIHN0YXRlIGhhZCBubyBpbXBhY3Qgb24KICAgICAgICAgICAgICAgICAvLyB0aGUg
ZG9jdW1lbnQncyBvdmVyYWxsIHNpemUsIHNvIHVwZGF0ZVNjcm9sbGJhcnMgZGlkbid0IGdldCBj
YWxsZWQuCi0gICAgICAgICAgICAgICAgLy8gUmVjdXIgbWFudWFsbHkuCisgICAgICAgICAgICAg
ICAgLy8gUmVjdXJzZSBtYW51YWxseS4KICAgICAgICAgICAgICAgICB1cGRhdGVTY3JvbGxiYXJz
KGRlc2lyZWRPZmZzZXQpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgbV91cGRhdGVTY3Jv
bGxiYXJzUGFzcy0tOwo=
</data>
<flag name="review"
          id="19411"
          type_id="1"
          status="-"
          setter="hyatt"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>38436</attachid>
            <date>2009-08-22 13:53:49 -0700</date>
            <delta_ts>2009-09-01 03:05:21 -0700</delta_ts>
            <desc>Perform layout before checking scrollbar modes</desc>
            <filename>webkit.28614.2.patch</filename>
            <type>text/plain</type>
            <size>5482</size>
            <attacher name="Mark Mentovai">mark</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NzY3NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMDktMDgtMjIgIE1hcmsgTWVudG92YWkgIDxtYXJrQGNocm9taXVt
Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjg2MTQKKworICAgICAgICBQ
ZXJmb3JtIGEgbGF5b3V0IHByaW9yIHRvIGNoZWNraW5nIHdoZXRoZXIgdGhlIHNjcm9sbGJhciBt
b2RlcyBhcmUKKyAgICAgICAgb2ZmLCBvbiwgb3IgYXV0b21hdGljLiAgVGhlIG1vZGVzIG1heSBj
aGFuZ2UgZHVyaW5nIGxheW91dC4KKworICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbFZpZXcuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6dXBkYXRlU2Nyb2xsYmFycyk6CisKIDIw
MDktMDgtMjIgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vU2Nyb2xs
Vmlldy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAko
cmV2aXNpb24gNDc2NzYpCisrKyBXZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMjksNiArMzI5LDE1IEBAIHZvaWQgU2Nyb2xsVmlldzo6dXBkYXRlU2Ny
b2xsYmFycyhjb25zdCAKICAgICBpZiAobV9pblVwZGF0ZVNjcm9sbGJhcnMgfHwgcHJvaGliaXRz
U2Nyb2xsaW5nKCkgfHwgcGxhdGZvcm1XaWRnZXQoKSkKICAgICAgICAgcmV0dXJuOwogCisgICAg
Ly8gSWYgd2UgY2FtZSBpbiBoZXJlIHdpdGggdGhlIHZpZXcgYWxyZWFkeSBuZWVkaW5nIGEgbGF5
b3V0LCB0aGVuIGdvIGFoZWFkIGFuZCBkbyB0aGF0CisgICAgLy8gZmlyc3QuICAoVGhpcyB3aWxs
IGJlIHRoZSBjb21tb24gY2FzZSwgZS5nLiwgd2hlbiB0aGUgcGFnZSBjaGFuZ2VzIGR1ZSB0byB3
aW5kb3cgcmVzaXppbmcgZm9yIGV4YW1wbGUpLgorICAgIC8vIFRoaXMgbGF5b3V0IHdpbGwgbm90
IHJlLWVudGVyIHVwZGF0ZVNjcm9sbGJhcnMgYW5kIGRvZXMgbm90IGNvdW50IHRvd2FyZHMgb3Vy
IG1heCBsYXlvdXQgcGFzcyB0b3RhbC4KKyAgICBpZiAoIW1fc2Nyb2xsYmFyc1N1cHByZXNzZWQp
IHsKKyAgICAgICAgbV9pblVwZGF0ZVNjcm9sbGJhcnMgPSB0cnVlOworICAgICAgICB2aXNpYmxl
Q29udGVudHNSZXNpemVkKCk7CisgICAgICAgIG1faW5VcGRhdGVTY3JvbGxiYXJzID0gZmFsc2U7
CisgICAgfQorCiAgICAgYm9vbCBoYXNIb3Jpem9udGFsU2Nyb2xsYmFyID0gbV9ob3Jpem9udGFs
U2Nyb2xsYmFyOwogICAgIGJvb2wgaGFzVmVydGljYWxTY3JvbGxiYXIgPSBtX3ZlcnRpY2FsU2Ny
b2xsYmFyOwogICAgIApAQCAtMzQ5LDEzICszNTgsNiBAQCB2b2lkIFNjcm9sbFZpZXc6OnVwZGF0
ZVNjcm9sbGJhcnMoY29uc3QgCiAgICAgICAgIGlmIChoYXNWZXJ0aWNhbFNjcm9sbGJhciAhPSBu
ZXdIYXNWZXJ0aWNhbFNjcm9sbGJhcikKICAgICAgICAgICAgIHNldEhhc1ZlcnRpY2FsU2Nyb2xs
YmFyKG5ld0hhc1ZlcnRpY2FsU2Nyb2xsYmFyKTsKICAgICB9IGVsc2UgewotICAgICAgICAvLyBJ
ZiB3ZSBjYW1lIGluIGhlcmUgd2l0aCB0aGUgdmlldyBhbHJlYWR5IG5lZWRpbmcgYSBsYXlvdXQs
IHRoZW4gZ28gYWhlYWQgYW5kIGRvIHRoYXQKLSAgICAgICAgLy8gZmlyc3QuICAoVGhpcyB3aWxs
IGJlIHRoZSBjb21tb24gY2FzZSwgZS5nLiwgd2hlbiB0aGUgcGFnZSBjaGFuZ2VzIGR1ZSB0byB3
aW5kb3cgcmVzaXppbmcgZm9yIGV4YW1wbGUpLgotICAgICAgICAvLyBUaGlzIGxheW91dCB3aWxs
IG5vdCByZS1lbnRlciB1cGRhdGVTY3JvbGxlcnMgYW5kIGRvZXMgbm90IGNvdW50IHRvd2FyZHMg
b3VyIG1heCBsYXlvdXQgcGFzcyB0b3RhbC4KLSAgICAgICAgbV9pblVwZGF0ZVNjcm9sbGJhcnMg
PSB0cnVlOwotICAgICAgICB2aXNpYmxlQ29udGVudHNSZXNpemVkKCk7Ci0gICAgICAgIG1faW5V
cGRhdGVTY3JvbGxiYXJzID0gZmFsc2U7Ci0KICAgICAgICAgYm9vbCBzZW5kQ29udGVudFJlc2l6
ZWROb3RpZmljYXRpb24gPSBmYWxzZTsKICAgICAgICAgCiAgICAgICAgIEludFNpemUgZG9jU2l6
ZSA9IGNvbnRlbnRzU2l6ZSgpOwpJbmRleDogV2ViS2l0L21hYy9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDQ3Njc2KQorKysgV2ViS2l0L21h
Yy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAwOS0wOC0yMiAg
TWFyayBNZW50b3ZhaSAgPG1hcmtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yODYxNAorCisgICAgICAgIFBlcmZvcm0gYSBsYXlvdXQgcHJpb3IgdG8gY2hl
Y2tpbmcgd2hldGhlciB0aGUgc2Nyb2xsYmFyIG1vZGVzIGFyZQorICAgICAgICBvZmYsIG9uLCBv
ciBhdXRvbWF0aWMuICBUaGUgbW9kZXMgbWF5IGNoYW5nZSBkdXJpbmcgbGF5b3V0LgorCisgICAg
ICAgICogV2ViVmlldy9XZWJEeW5hbWljU2Nyb2xsQmFyc1ZpZXcubW06CisgICAgICAgICgtW1dl
YkR5bmFtaWNTY3JvbGxCYXJzVmlldyB1cGRhdGVTY3JvbGxlcnNdKToKKwogMjAwOS0wOC0yMSAg
QW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IERhcmluIEFkbGVyLgpJbmRleDogV2ViS2l0L21hYy9XZWJWaWV3L1dlYkR5bmFtaWNTY3Jv
bGxCYXJzVmlldy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvbWFjL1dlYlZpZXcvV2ViRHluYW1p
Y1Njcm9sbEJhcnNWaWV3Lm1tCShyZXZpc2lvbiA0NzY3NikKKysrIFdlYktpdC9tYWMvV2ViVmll
dy9XZWJEeW5hbWljU2Nyb2xsQmFyc1ZpZXcubW0JKHdvcmtpbmcgY29weSkKQEAgLTg5LDE1ICs4
OSwyNiBAQCBzdGF0aWMgY29uc3QgdW5zaWduZWQgY01heFVwZGF0ZVNjcm9sbGJhCiAKIC0gKHZv
aWQpdXBkYXRlU2Nyb2xsZXJzCiB7Ci0gICAgQk9PTCBoYXNWZXJ0aWNhbFNjcm9sbGVyID0gW3Nl
bGYgaGFzVmVydGljYWxTY3JvbGxlcl07CisgICAgTlNWaWV3ICpkb2N1bWVudFZpZXcgPSBbc2Vs
ZiBkb2N1bWVudFZpZXddOworCisgICAgLy8gSWYgd2UgY2FtZSBpbiBoZXJlIHdpdGggdGhlIHZp
ZXcgYWxyZWFkeSBuZWVkaW5nIGEgbGF5b3V0LCB0aGVuIGdvIGFoZWFkIGFuZCBkbyB0aGF0Cisg
ICAgLy8gZmlyc3QuICAoVGhpcyB3aWxsIGJlIHRoZSBjb21tb24gY2FzZSwgZS5nLiwgd2hlbiB0
aGUgcGFnZSBjaGFuZ2VzIGR1ZSB0byB3aW5kb3cgcmVzaXppbmcgZm9yIGV4YW1wbGUpLgorICAg
IC8vIFRoaXMgbGF5b3V0IHdpbGwgbm90IHJlLWVudGVyIHVwZGF0ZVNjcm9sbGVycyBhbmQgZG9l
cyBub3QgY291bnQgdG93YXJkcyBvdXIgbWF4IGxheW91dCBwYXNzIHRvdGFsLgorICAgIGlmICgh
c3VwcHJlc3NMYXlvdXQgJiYgIXN1cHByZXNzU2Nyb2xsZXJzICYmIFtkb2N1bWVudFZpZXcgaXNL
aW5kT2ZDbGFzczpbV2ViSFRNTFZpZXcgY2xhc3NdXSkgeworICAgICAgICBXZWJIVE1MVmlldyog
aHRtbFZpZXcgPSAoV2ViSFRNTFZpZXcqKWRvY3VtZW50VmlldzsKKyAgICAgICAgaWYgKFtodG1s
VmlldyBfbmVlZHNMYXlvdXRdKSB7CisgICAgICAgICAgICBpblVwZGF0ZVNjcm9sbGVycyA9IFlF
UzsKKyAgICAgICAgICAgIFsoaWQgPFdlYkRvY3VtZW50Vmlldz4pZG9jdW1lbnRWaWV3IGxheW91
dF07CisgICAgICAgICAgICBpblVwZGF0ZVNjcm9sbGVycyA9IE5POworICAgICAgICB9CisgICAg
fQorCiAgICAgQk9PTCBoYXNIb3Jpem9udGFsU2Nyb2xsZXIgPSBbc2VsZiBoYXNIb3Jpem9udGFs
U2Nyb2xsZXJdOworICAgIEJPT0wgaGFzVmVydGljYWxTY3JvbGxlciA9IFtzZWxmIGhhc1ZlcnRp
Y2FsU2Nyb2xsZXJdOwogICAgIAogICAgIEJPT0wgbmV3SGFzSG9yaXpvbnRhbFNjcm9sbGVyID0g
aGFzSG9yaXpvbnRhbFNjcm9sbGVyOwogICAgIEJPT0wgbmV3SGFzVmVydGljYWxTY3JvbGxlciA9
IGhhc1ZlcnRpY2FsU2Nyb2xsZXI7CiAgICAgCi0gICAgQk9PTCBuZWVkc0xheW91dCA9IE5POwot
Ci0gICAgTlNWaWV3ICpkb2N1bWVudFZpZXcgPSBbc2VsZiBkb2N1bWVudFZpZXddOwogICAgIGlm
ICghZG9jdW1lbnRWaWV3KSB7CiAgICAgICAgIG5ld0hhc0hvcml6b250YWxTY3JvbGxlciA9IE5P
OwogICAgICAgICBuZXdIYXNWZXJ0aWNhbFNjcm9sbGVyID0gTk87CkBAIC0xMjIsMTkgKzEzMyw3
IEBAIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBjTWF4VXBkYXRlU2Nyb2xsYmEKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIAotICAgIG5lZWRzTGF5b3V0ID0gTk87Ci0KLSAgICAvLyBJZiB3ZSBjYW1l
IGluIGhlcmUgd2l0aCB0aGUgdmlldyBhbHJlYWR5IG5lZWRpbmcgYSBsYXlvdXQsIHRoZW4gZ28g
YWhlYWQgYW5kIGRvIHRoYXQKLSAgICAvLyBmaXJzdC4gIChUaGlzIHdpbGwgYmUgdGhlIGNvbW1v
biBjYXNlLCBlLmcuLCB3aGVuIHRoZSBwYWdlIGNoYW5nZXMgZHVlIHRvIHdpbmRvdyByZXNpemlu
ZyBmb3IgZXhhbXBsZSkuCi0gICAgLy8gVGhpcyBsYXlvdXQgd2lsbCBub3QgcmUtZW50ZXIgdXBk
YXRlU2Nyb2xsZXJzIGFuZCBkb2VzIG5vdCBjb3VudCB0b3dhcmRzIG91ciBtYXggbGF5b3V0IHBh
c3MgdG90YWwuCi0gICAgaWYgKFtkb2N1bWVudFZpZXcgaXNLaW5kT2ZDbGFzczpbV2ViSFRNTFZp
ZXcgY2xhc3NdXSkgewotICAgICAgICBXZWJIVE1MVmlldyogaHRtbFZpZXcgPSAoV2ViSFRNTFZp
ZXcqKWRvY3VtZW50VmlldzsKLSAgICAgICAgaWYgKFtodG1sVmlldyBfbmVlZHNMYXlvdXRdKSB7
Ci0gICAgICAgICAgICBpblVwZGF0ZVNjcm9sbGVycyA9IFlFUzsKLSAgICAgICAgICAgIFsoaWQg
PFdlYkRvY3VtZW50Vmlldz4pZG9jdW1lbnRWaWV3IGxheW91dF07Ci0gICAgICAgICAgICBpblVw
ZGF0ZVNjcm9sbGVycyA9IE5POwotICAgICAgICB9Ci0gICAgfQorICAgIEJPT0wgbmVlZHNMYXlv
dXQgPSBOTzsKIAogICAgIE5TU2l6ZSBkb2N1bWVudFNpemUgPSBbZG9jdW1lbnRWaWV3IGZyYW1l
XS5zaXplOwogICAgIE5TU2l6ZSB2aXNpYmxlU2l6ZSA9IFtzZWxmIGRvY3VtZW50VmlzaWJsZVJl
Y3RdLnNpemU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>38616</attachid>
            <date>2009-08-26 09:53:03 -0700</date>
            <delta_ts>2009-08-31 13:32:18 -0700</delta_ts>
            <desc>v3, only do early layout when at least one scrollbar is in &quot;auto&quot; mode</desc>
            <filename>webkit.28614.3.patch</filename>
            <type>text/plain</type>
            <size>5632</size>
            <attacher name="Mark Mentovai">mark</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NzY3NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMDktMDgtMjIgIE1hcmsgTWVudG92YWkgIDxtYXJrQGNocm9taXVt
Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjg2MTQKKworICAgICAgICBQ
ZXJmb3JtIGEgbGF5b3V0IHByaW9yIHRvIGNoZWNraW5nIHdoZXRoZXIgdGhlIHNjcm9sbGJhciBt
b2RlcyBhcmUKKyAgICAgICAgb2ZmLCBvbiwgb3IgYXV0b21hdGljLiAgVGhlIG1vZGVzIG1heSBj
aGFuZ2UgZHVyaW5nIGxheW91dC4KKworICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbFZpZXcuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6dXBkYXRlU2Nyb2xsYmFycyk6CisKIDIw
MDktMDgtMjIgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vU2Nyb2xs
Vmlldy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAko
cmV2aXNpb24gNDc2NzYpCisrKyBXZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMjksNiArMzI5LDE1IEBAIHZvaWQgU2Nyb2xsVmlldzo6dXBkYXRlU2Ny
b2xsYmFycyhjb25zdCAKICAgICBpZiAobV9pblVwZGF0ZVNjcm9sbGJhcnMgfHwgcHJvaGliaXRz
U2Nyb2xsaW5nKCkgfHwgcGxhdGZvcm1XaWRnZXQoKSkKICAgICAgICAgcmV0dXJuOwogCisgICAg
Ly8gSWYgd2UgY2FtZSBpbiBoZXJlIHdpdGggdGhlIHZpZXcgYWxyZWFkeSBuZWVkaW5nIGEgbGF5
b3V0LCB0aGVuIGdvIGFoZWFkIGFuZCBkbyB0aGF0CisgICAgLy8gZmlyc3QuICAoVGhpcyB3aWxs
IGJlIHRoZSBjb21tb24gY2FzZSwgZS5nLiwgd2hlbiB0aGUgcGFnZSBjaGFuZ2VzIGR1ZSB0byB3
aW5kb3cgcmVzaXppbmcgZm9yIGV4YW1wbGUpLgorICAgIC8vIFRoaXMgbGF5b3V0IHdpbGwgbm90
IHJlLWVudGVyIHVwZGF0ZVNjcm9sbGJhcnMgYW5kIGRvZXMgbm90IGNvdW50IHRvd2FyZHMgb3Vy
IG1heCBsYXlvdXQgcGFzcyB0b3RhbC4KKyAgICBpZiAoIW1fc2Nyb2xsYmFyc1N1cHByZXNzZWQg
JiYgKG1faG9yaXpvbnRhbFNjcm9sbGJhck1vZGUgPT0gU2Nyb2xsYmFyQXV0byB8fCBtX3ZlcnRp
Y2FsU2Nyb2xsYmFyTW9kZSA9PSBTY3JvbGxiYXJBdXRvKSkgeworICAgICAgICBtX2luVXBkYXRl
U2Nyb2xsYmFycyA9IHRydWU7CisgICAgICAgIHZpc2libGVDb250ZW50c1Jlc2l6ZWQoKTsKKyAg
ICAgICAgbV9pblVwZGF0ZVNjcm9sbGJhcnMgPSBmYWxzZTsKKyAgICB9CisKICAgICBib29sIGhh
c0hvcml6b250YWxTY3JvbGxiYXIgPSBtX2hvcml6b250YWxTY3JvbGxiYXI7CiAgICAgYm9vbCBo
YXNWZXJ0aWNhbFNjcm9sbGJhciA9IG1fdmVydGljYWxTY3JvbGxiYXI7CiAgICAgCkBAIC0zNDks
MTMgKzM1OCw2IEBAIHZvaWQgU2Nyb2xsVmlldzo6dXBkYXRlU2Nyb2xsYmFycyhjb25zdCAKICAg
ICAgICAgaWYgKGhhc1ZlcnRpY2FsU2Nyb2xsYmFyICE9IG5ld0hhc1ZlcnRpY2FsU2Nyb2xsYmFy
KQogICAgICAgICAgICAgc2V0SGFzVmVydGljYWxTY3JvbGxiYXIobmV3SGFzVmVydGljYWxTY3Jv
bGxiYXIpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIC8vIElmIHdlIGNhbWUgaW4gaGVyZSB3aXRo
IHRoZSB2aWV3IGFscmVhZHkgbmVlZGluZyBhIGxheW91dCwgdGhlbiBnbyBhaGVhZCBhbmQgZG8g
dGhhdAotICAgICAgICAvLyBmaXJzdC4gIChUaGlzIHdpbGwgYmUgdGhlIGNvbW1vbiBjYXNlLCBl
LmcuLCB3aGVuIHRoZSBwYWdlIGNoYW5nZXMgZHVlIHRvIHdpbmRvdyByZXNpemluZyBmb3IgZXhh
bXBsZSkuCi0gICAgICAgIC8vIFRoaXMgbGF5b3V0IHdpbGwgbm90IHJlLWVudGVyIHVwZGF0ZVNj
cm9sbGVycyBhbmQgZG9lcyBub3QgY291bnQgdG93YXJkcyBvdXIgbWF4IGxheW91dCBwYXNzIHRv
dGFsLgotICAgICAgICBtX2luVXBkYXRlU2Nyb2xsYmFycyA9IHRydWU7Ci0gICAgICAgIHZpc2li
bGVDb250ZW50c1Jlc2l6ZWQoKTsKLSAgICAgICAgbV9pblVwZGF0ZVNjcm9sbGJhcnMgPSBmYWxz
ZTsKLQogICAgICAgICBib29sIHNlbmRDb250ZW50UmVzaXplZE5vdGlmaWNhdGlvbiA9IGZhbHNl
OwogICAgICAgICAKICAgICAgICAgSW50U2l6ZSBkb2NTaXplID0gY29udGVudHNTaXplKCk7Cklu
ZGV4OiBXZWJLaXQvbWFjL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvbWFjL0NoYW5n
ZUxvZwkocmV2aXNpb24gNDc2NzYpCisrKyBXZWJLaXQvbWFjL0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDA5LTA4LTIyICBNYXJrIE1lbnRvdmFpICA8bWFya0Bj
aHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI4NjE0CisKKyAg
ICAgICAgUGVyZm9ybSBhIGxheW91dCBwcmlvciB0byBjaGVja2luZyB3aGV0aGVyIHRoZSBzY3Jv
bGxiYXIgbW9kZXMgYXJlCisgICAgICAgIG9mZiwgb24sIG9yIGF1dG9tYXRpYy4gIFRoZSBtb2Rl
cyBtYXkgY2hhbmdlIGR1cmluZyBsYXlvdXQuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYkR5bmFt
aWNTY3JvbGxCYXJzVmlldy5tbToKKyAgICAgICAgKC1bV2ViRHluYW1pY1Njcm9sbEJhcnNWaWV3
IHVwZGF0ZVNjcm9sbGVyc10pOgorCiAyMDA5LTA4LTIxICBBbmRlcnMgQ2FybHNzb24gIDxhbmRl
cnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCkluZGV4
OiBXZWJLaXQvbWFjL1dlYlZpZXcvV2ViRHluYW1pY1Njcm9sbEJhcnNWaWV3Lm1tCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYktpdC9tYWMvV2ViVmlldy9XZWJEeW5hbWljU2Nyb2xsQmFyc1ZpZXcubW0JKHJl
dmlzaW9uIDQ3Njc2KQorKysgV2ViS2l0L21hYy9XZWJWaWV3L1dlYkR5bmFtaWNTY3JvbGxCYXJz
Vmlldy5tbQkod29ya2luZyBjb3B5KQpAQCAtODksMTUgKzg5LDI2IEBAIHN0YXRpYyBjb25zdCB1
bnNpZ25lZCBjTWF4VXBkYXRlU2Nyb2xsYmEKIAogLSAodm9pZCl1cGRhdGVTY3JvbGxlcnMKIHsK
LSAgICBCT09MIGhhc1ZlcnRpY2FsU2Nyb2xsZXIgPSBbc2VsZiBoYXNWZXJ0aWNhbFNjcm9sbGVy
XTsKKyAgICBOU1ZpZXcgKmRvY3VtZW50VmlldyA9IFtzZWxmIGRvY3VtZW50Vmlld107CisKKyAg
ICAvLyBJZiB3ZSBjYW1lIGluIGhlcmUgd2l0aCB0aGUgdmlldyBhbHJlYWR5IG5lZWRpbmcgYSBs
YXlvdXQsIHRoZW4gZ28gYWhlYWQgYW5kIGRvIHRoYXQKKyAgICAvLyBmaXJzdC4gIChUaGlzIHdp
bGwgYmUgdGhlIGNvbW1vbiBjYXNlLCBlLmcuLCB3aGVuIHRoZSBwYWdlIGNoYW5nZXMgZHVlIHRv
IHdpbmRvdyByZXNpemluZyBmb3IgZXhhbXBsZSkuCisgICAgLy8gVGhpcyBsYXlvdXQgd2lsbCBu
b3QgcmUtZW50ZXIgdXBkYXRlU2Nyb2xsZXJzIGFuZCBkb2VzIG5vdCBjb3VudCB0b3dhcmRzIG91
ciBtYXggbGF5b3V0IHBhc3MgdG90YWwuCisgICAgaWYgKCFzdXBwcmVzc0xheW91dCAmJiAhc3Vw
cHJlc3NTY3JvbGxlcnMgJiYgW2RvY3VtZW50VmlldyBpc0tpbmRPZkNsYXNzOltXZWJIVE1MVmll
dyBjbGFzc11dICYmIChoU2Nyb2xsID09IFNjcm9sbGJhckF1dG8gfHwgdlNjcm9sbCA9PSBTY3Jv
bGxiYXJBdXRvKSkgeworICAgICAgICBXZWJIVE1MVmlldyogaHRtbFZpZXcgPSAoV2ViSFRNTFZp
ZXcqKWRvY3VtZW50VmlldzsKKyAgICAgICAgaWYgKFtodG1sVmlldyBfbmVlZHNMYXlvdXRdKSB7
CisgICAgICAgICAgICBpblVwZGF0ZVNjcm9sbGVycyA9IFlFUzsKKyAgICAgICAgICAgIFsoaWQg
PFdlYkRvY3VtZW50Vmlldz4pZG9jdW1lbnRWaWV3IGxheW91dF07CisgICAgICAgICAgICBpblVw
ZGF0ZVNjcm9sbGVycyA9IE5POworICAgICAgICB9CisgICAgfQorCiAgICAgQk9PTCBoYXNIb3Jp
em9udGFsU2Nyb2xsZXIgPSBbc2VsZiBoYXNIb3Jpem9udGFsU2Nyb2xsZXJdOworICAgIEJPT0wg
aGFzVmVydGljYWxTY3JvbGxlciA9IFtzZWxmIGhhc1ZlcnRpY2FsU2Nyb2xsZXJdOwogICAgIAog
ICAgIEJPT0wgbmV3SGFzSG9yaXpvbnRhbFNjcm9sbGVyID0gaGFzSG9yaXpvbnRhbFNjcm9sbGVy
OwogICAgIEJPT0wgbmV3SGFzVmVydGljYWxTY3JvbGxlciA9IGhhc1ZlcnRpY2FsU2Nyb2xsZXI7
CiAgICAgCi0gICAgQk9PTCBuZWVkc0xheW91dCA9IE5POwotCi0gICAgTlNWaWV3ICpkb2N1bWVu
dFZpZXcgPSBbc2VsZiBkb2N1bWVudFZpZXddOwogICAgIGlmICghZG9jdW1lbnRWaWV3KSB7CiAg
ICAgICAgIG5ld0hhc0hvcml6b250YWxTY3JvbGxlciA9IE5POwogICAgICAgICBuZXdIYXNWZXJ0
aWNhbFNjcm9sbGVyID0gTk87CkBAIC0xMjIsMTkgKzEzMyw3IEBAIHN0YXRpYyBjb25zdCB1bnNp
Z25lZCBjTWF4VXBkYXRlU2Nyb2xsYmEKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIG5l
ZWRzTGF5b3V0ID0gTk87Ci0KLSAgICAvLyBJZiB3ZSBjYW1lIGluIGhlcmUgd2l0aCB0aGUgdmll
dyBhbHJlYWR5IG5lZWRpbmcgYSBsYXlvdXQsIHRoZW4gZ28gYWhlYWQgYW5kIGRvIHRoYXQKLSAg
ICAvLyBmaXJzdC4gIChUaGlzIHdpbGwgYmUgdGhlIGNvbW1vbiBjYXNlLCBlLmcuLCB3aGVuIHRo
ZSBwYWdlIGNoYW5nZXMgZHVlIHRvIHdpbmRvdyByZXNpemluZyBmb3IgZXhhbXBsZSkuCi0gICAg
Ly8gVGhpcyBsYXlvdXQgd2lsbCBub3QgcmUtZW50ZXIgdXBkYXRlU2Nyb2xsZXJzIGFuZCBkb2Vz
IG5vdCBjb3VudCB0b3dhcmRzIG91ciBtYXggbGF5b3V0IHBhc3MgdG90YWwuCi0gICAgaWYgKFtk
b2N1bWVudFZpZXcgaXNLaW5kT2ZDbGFzczpbV2ViSFRNTFZpZXcgY2xhc3NdXSkgewotICAgICAg
ICBXZWJIVE1MVmlldyogaHRtbFZpZXcgPSAoV2ViSFRNTFZpZXcqKWRvY3VtZW50VmlldzsKLSAg
ICAgICAgaWYgKFtodG1sVmlldyBfbmVlZHNMYXlvdXRdKSB7Ci0gICAgICAgICAgICBpblVwZGF0
ZVNjcm9sbGVycyA9IFlFUzsKLSAgICAgICAgICAgIFsoaWQgPFdlYkRvY3VtZW50Vmlldz4pZG9j
dW1lbnRWaWV3IGxheW91dF07Ci0gICAgICAgICAgICBpblVwZGF0ZVNjcm9sbGVycyA9IE5POwot
ICAgICAgICB9Ci0gICAgfQorICAgIEJPT0wgbmVlZHNMYXlvdXQgPSBOTzsKIAogICAgIE5TU2l6
ZSBkb2N1bWVudFNpemUgPSBbZG9jdW1lbnRWaWV3IGZyYW1lXS5zaXplOwogICAgIE5TU2l6ZSB2
aXNpYmxlU2l6ZSA9IFtzZWxmIGRvY3VtZW50VmlzaWJsZVJlY3RdLnNpemU7Cg==
</data>
<flag name="review"
          id="19618"
          type_id="1"
          status="-"
          setter="hyatt"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39036</attachid>
            <date>2009-09-03 21:52:12 -0700</date>
            <delta_ts>2009-09-04 09:14:31 -0700</delta_ts>
            <desc>v4, Eliminate duplicated (and incorrect) scrollbar mode tracking between FrameView and ScrollView</desc>
            <filename>webkit.28614.4.patch</filename>
            <type>text/plain</type>
            <size>14904</size>
            <attacher name="Mark Mentovai">mark</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0ODAzNykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzEgQEAKKzIwMDktMDktMDMgIE1hcmsgTWVudG92YWkgIDxtYXJrQGNocm9taXVt
Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjg2MTQKKworICAgICAgICBB
Y2NvdW50IGZvciBzY3JvbGxiYXIgc3RhdGUgY2hhbmdlcyB0aGF0IG9jY3VyIGR1cmluZyBsYXlv
dXQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNjcm9sbFZpZXc6OnVwZGF0ZVNjcm9sbGJhcnMpOgorCisgICAgICAgIFBlcmZvcm0gYSBs
YXlvdXQgcHJpb3IgdG8gY2hlY2tpbmcgd2hldGhlciB0aGUgc2Nyb2xsYmFyIG1vZGVzIGFyZQor
ICAgICAgICBvZmYsIG9uLCBvciBhdXRvbWF0aWMuICBUaGUgbW9kZXMgbWF5IGNoYW5nZSBkdXJp
bmcgbGF5b3V0LgorCisgICAgICAgICogV2ViQ29yZS5iYXNlLmV4cDoKKyAgICAgICAgKiBXZWJD
b3JlLm9yZGVyOgorICAgICAgICAqIHBhZ2UvRnJhbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWU6OmNyZWF0ZVZpZXcpOgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6RnJhbWVWaWV3KToKKyAgICAgICAgKFdlYkNvcmU6OkZy
YW1lVmlldzo6cmVzZXRTY3JvbGxiYXJzKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6
bGF5b3V0KToKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5oOgorICAgICAgICAqIHBsYXRmb3Jt
L1Njcm9sbFZpZXcuaDoKKworICAgICAgICBFbGltaW5hdGUgZHVwbGljYXRlZCAoYW5kIGluY29y
cmVjdCkgc2Nyb2xsYmFyIG1vZGUgdHJhY2tpbmcgYmV0d2VlbgorICAgICAgICBGcmFtZVZpZXcg
YW5kIFNjcm9sbFZpZXcuCisKIDIwMDktMDktMDMgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBh
cHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCkluZGV4OiBXZWJD
b3JlL1dlYkNvcmUuYmFzZS5leHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLmJhc2Uu
ZXhwCShyZXZpc2lvbiA0ODAzNSkKKysrIFdlYkNvcmUvV2ViQ29yZS5iYXNlLmV4cAkod29ya2lu
ZyBjb3B5KQpAQCAtNjkyLDcgKzY5Miw2IEBAIF9fWk43V2ViQ29yZTlGcmFtZVRyZWU5Y2xlYXJO
YW1lRXYKIF9fWk43V2ViQ29yZTlGcmFtZVZpZXcxMWZvcmNlTGF5b3V0RWIKIF9fWk43V2ViQ29y
ZTlGcmFtZVZpZXcxMnNldE1lZGlhVHlwZUVSS05TXzZTdHJpbmdFCiBfX1pON1dlYkNvcmU5RnJh
bWVWaWV3MTRhZGp1c3RWaWV3U2l6ZUV2Ci1fX1pON1dlYkNvcmU5RnJhbWVWaWV3MTRpbml0U2Ny
b2xsYmFyc0V2CiBfX1pON1dlYkNvcmU5RnJhbWVWaWV3MTRzZXRNYXJnaW5XaWR0aEVpCiBfX1pO
N1dlYkNvcmU5RnJhbWVWaWV3MTRzZXROZWVkc0xheW91dEV2CiBfX1pON1dlYkNvcmU5RnJhbWVW
aWV3MTRzZXRUcmFuc3BhcmVudEViCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUub3JkZXIKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLm9yZGVyCShyZXZpc2lvbiA0ODAzNSkKKysrIFdlYkNv
cmUvV2ViQ29yZS5vcmRlcgkod29ya2luZyBjb3B5KQpAQCAtMzM0LDggKzMzNCw2IEBAIF9fWk43
V2ViQ29yZTlGcmFtZVZpZXcyOXNldFNob3VsZFVwZGF0ZVcKIF9fWk5LN1dlYkNvcmU5RnJhbWVU
cmVlMTJ0cmF2ZXJzZU5leHRFUEtOU181RnJhbWVFCiBfX1pON1dlYkNvcmU2V2lkZ2V0MjFyZWxl
YXNlUGxhdGZvcm1XaWRnZXRFdgogX19aTjdXZWJDb3JlNldpZGdldDIwcmV0YWluUGxhdGZvcm1X
aWRnZXRFdgotX19aTjdXZWJDb3JlOUZyYW1lVmlldzE0aW5pdFNjcm9sbGJhcnNFdgotX19aTjdX
ZWJDb3JlOUZyYW1lVmlldzI3dXBkYXRlRGVmYXVsdFNjcm9sbGJhclN0YXRlRXYKIF9fWk5LN1dl
YkNvcmUxMFNjcm9sbFZpZXcxNHNjcm9sbGJhck1vZGVzRVJOU18xM1Njcm9sbGJhck1vZGVFUzJf
CiBfX1pOSzdXZWJDb3JlMTBTY3JvbGxWaWV3MjJwbGF0Zm9ybVNjcm9sbGJhck1vZGVzRVJOU18x
M1Njcm9sbGJhck1vZGVFUzJfCiBfX1pON1dlYkNvcmUxMFNjcm9sbFZpZXcxN3NldFNjcm9sbGJh
ck1vZGVzRU5TXzEzU2Nyb2xsYmFyTW9kZUVTMV8KQEAgLTU3NTksNyArNTc1Nyw2IEBAIF9fWk4z
V1RGOUhhc2hUYWJsZUlQTjdXZWJDb3JlNldpZGdldEVTM18KIF9fWk4zV1RGOUhhc2hUYWJsZUlQ
TjdXZWJDb3JlNldpZGdldEVTM19OU18xN0lkZW50aXR5RXh0cmFjdG9ySVMzX0VFTlNfN1B0ckhh
c2hJUzNfRUVOU18xMEhhc2hUcmFpdHNJUzNfRUVTOV9FMTNhbGxvY2F0ZVRhYmxlRWkKIF9fWk43
V2ViQ29yZTEwU2Nyb2xsVmlldzE2cGxhdGZvcm1BZGRDaGlsZEVQTlNfNldpZGdldEUKIF9fWk43
V2ViQ29yZTE2UmVuZGVyUGFydE9iamVjdDExdmlld0NsZWFyZWRFdgotX19aTjdXZWJDb3JlOUZy
YW1lVmlldzIwc2V0Q2FuSGF2ZVNjcm9sbGJhcnNFYgogX19aTjdXZWJDb3JlMTBTY3JvbGxWaWV3
MjBzZXRDYW5IYXZlU2Nyb2xsYmFyc0ViCiBfX1pOSzdXZWJDb3JlMTRTZWN1cml0eU9yaWdpbjlj
YW5BY2Nlc3NFUEtTMF8KIF9fWk4zV1RGNlZlY3RvcklOU182UmVmUHRySU43V2ViQ29yZTVGcmFt
ZUVFRUxtMTBFRTZzaHJpbmtFbQpJbmRleDogV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCShyZXZpc2lvbiA0ODAzNSkKKysrIFdlYkNv
cmUvcGFnZS9GcmFtZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE3NTksNyArMTc1OSw2IEBAIHZv
aWQgRnJhbWU6OmNyZWF0ZVZpZXcoY29uc3QgSW50U2l6ZSYgdmkKICAgICAgICAgZnJhbWVWaWV3
ID0gRnJhbWVWaWV3OjpjcmVhdGUodGhpcyk7CiAKICAgICBmcmFtZVZpZXctPnNldFNjcm9sbGJh
ck1vZGVzKGhvcml6b250YWxTY3JvbGxiYXJNb2RlLCB2ZXJ0aWNhbFNjcm9sbGJhck1vZGUpOwot
ICAgIGZyYW1lVmlldy0+dXBkYXRlRGVmYXVsdFNjcm9sbGJhclN0YXRlKCk7CiAKICAgICBzZXRW
aWV3KGZyYW1lVmlldyk7CiAKSW5kZXg6IFdlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCShyZXZpc2lvbiA0ODAzNSkKKysr
IFdlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05MywxMyArOTMs
MTAgQEAgc3RydWN0IFNjaGVkdWxlZEV2ZW50IHsKIAogRnJhbWVWaWV3OjpGcmFtZVZpZXcoRnJh
bWUqIGZyYW1lKQogICAgIDogbV9mcmFtZShmcmFtZSkKLSAgICAsIG1fdm1vZGUoU2Nyb2xsYmFy
QXV0bykKLSAgICAsIG1faG1vZGUoU2Nyb2xsYmFyQXV0bykKICAgICAsIG1fc2xvd1JlcGFpbnRP
YmplY3RDb3VudCgwKQogICAgICwgbV9sYXlvdXRUaW1lcih0aGlzLCAmRnJhbWVWaWV3OjpsYXlv
dXRUaW1lckZpcmVkKQogICAgICwgbV9sYXlvdXRSb290KDApCiAgICAgLCBtX3Bvc3RMYXlvdXRU
YXNrc1RpbWVyKHRoaXMsICZGcmFtZVZpZXc6OnBvc3RMYXlvdXRUaW1lckZpcmVkKQotICAgICwg
bV9uZWVkVG9Jbml0U2Nyb2xsYmFycyh0cnVlKQogICAgICwgbV9pc1RyYW5zcGFyZW50KGZhbHNl
KQogICAgICwgbV9iYXNlQmFja2dyb3VuZENvbG9yKENvbG9yOjp3aGl0ZSkKICAgICAsIG1fbWVk
aWFUeXBlKCJzY3JlZW4iKQpAQCAtMjEwLDcgKzIwNyw3IEBAIHZvaWQgRnJhbWVWaWV3OjpyZXNl
dFNjcm9sbGJhcnMoKQogICAgIC8vIFJlc2V0IHRoZSBkb2N1bWVudCdzIHNjcm9sbGJhcnMgYmFj
ayB0byBvdXIgZGVmYXVsdHMgYmVmb3JlIHdlIHlpZWxkIHRoZSBmbG9vci4KICAgICBtX2ZpcnN0
TGF5b3V0ID0gdHJ1ZTsKICAgICBzZXRTY3JvbGxiYXJzU3VwcHJlc3NlZCh0cnVlKTsKLSAgICBz
ZXRTY3JvbGxiYXJNb2RlcyhtX2htb2RlLCBtX3Ztb2RlKTsKKyAgICBzZXRTY3JvbGxiYXJNb2Rl
cyhTY3JvbGxiYXJBdXRvLCBTY3JvbGxiYXJBdXRvKTsKICAgICBzZXRTY3JvbGxiYXJzU3VwcHJl
c3NlZChmYWxzZSk7CiB9CiAKQEAgLTI4NCwyMSArMjgxLDYgQEAgYm9vbCBGcmFtZVZpZXc6OmRp
ZEZpcnN0TGF5b3V0KCkgY29uc3QKICAgICByZXR1cm4gIW1fZmlyc3RMYXlvdXQ7CiB9CiAKLXZv
aWQgRnJhbWVWaWV3Ojppbml0U2Nyb2xsYmFycygpCi17Ci0gICAgaWYgKCFtX25lZWRUb0luaXRT
Y3JvbGxiYXJzKQotICAgICAgICByZXR1cm47Ci0gICAgbV9uZWVkVG9Jbml0U2Nyb2xsYmFycyA9
IGZhbHNlOwotICAgIHVwZGF0ZURlZmF1bHRTY3JvbGxiYXJTdGF0ZSgpOwotfQotCi12b2lkIEZy
YW1lVmlldzo6dXBkYXRlRGVmYXVsdFNjcm9sbGJhclN0YXRlKCkKLXsKLSAgICBtX2htb2RlID0g
aG9yaXpvbnRhbFNjcm9sbGJhck1vZGUoKTsKLSAgICBtX3Ztb2RlID0gdmVydGljYWxTY3JvbGxi
YXJNb2RlKCk7Ci0gICAgc2V0U2Nyb2xsYmFyTW9kZXMobV9obW9kZSwgbV92bW9kZSk7Ci19Ci0K
IHZvaWQgRnJhbWVWaWV3OjppbnZhbGlkYXRlUmVjdChjb25zdCBJbnRSZWN0JiByZWN0KQogewog
ICAgIGlmICghcGFyZW50KCkpIHsKQEAgLTMzMiwxMiArMzE0LDYgQEAgdm9pZCBGcmFtZVZpZXc6
OnNldE1hcmdpbkhlaWdodChpbnQgaCkKICAgICBtX21hcmdpbnMuc2V0SGVpZ2h0KGgpOwogfQog
Ci12b2lkIEZyYW1lVmlldzo6c2V0Q2FuSGF2ZVNjcm9sbGJhcnMoYm9vbCBjYW5TY3JvbGwpCi17
Ci0gICAgU2Nyb2xsVmlldzo6c2V0Q2FuSGF2ZVNjcm9sbGJhcnMoY2FuU2Nyb2xsKTsKLSAgICBz
Y3JvbGxiYXJNb2RlcyhtX2htb2RlLCBtX3Ztb2RlKTsKLX0KLQogUGFzc1JlZlB0cjxTY3JvbGxi
YXI+IEZyYW1lVmlldzo6Y3JlYXRlU2Nyb2xsYmFyKFNjcm9sbGJhck9yaWVudGF0aW9uIG9yaWVu
dGF0aW9uKQogewogICAgIC8vIEZJWE1FOiBXZSBuZWVkIHRvIHVwZGF0ZSB0aGUgc2Nyb2xsYmFy
IGR5bmFtaWNhbGx5IGFzIGRvY3VtZW50cyBjaGFuZ2UgKG9yIGFzIGRvYyBlbGVtZW50cyBhbmQg
Ym9kaWVzIGdldCBkaXNjb3ZlcmVkIHRoYXQgaGF2ZSBjdXN0b20gc3R5bGVzKS4KQEAgLTU3Nyw4
ICs1NTMsOSBAQCB2b2lkIEZyYW1lVmlldzo6bGF5b3V0KGJvb2wgYWxsb3dTdWJ0cmVlCiAKICAg
ICBtX25lc3RlZExheW91dENvdW50Kys7CiAKLSAgICBTY3JvbGxiYXJNb2RlIGhNb2RlID0gbV9o
bW9kZTsKLSAgICBTY3JvbGxiYXJNb2RlIHZNb2RlID0gbV92bW9kZTsKKyAgICBTY3JvbGxiYXJN
b2RlIGhNb2RlOworICAgIFNjcm9sbGJhck1vZGUgdk1vZGU7CisgICAgc2Nyb2xsYmFyTW9kZXMo
aE1vZGUsIHZNb2RlKTsKIAogICAgIGlmICghc3VidHJlZSkgewogICAgICAgICBSZW5kZXJPYmpl
Y3QqIHJvb3RSZW5kZXJlciA9IGRvY3VtZW50LT5kb2N1bWVudEVsZW1lbnQoKSA/IGRvY3VtZW50
LT5kb2N1bWVudEVsZW1lbnQoKS0+cmVuZGVyZXIoKSA6IDA7CkluZGV4OiBXZWJDb3JlL3BhZ2Uv
RnJhbWVWaWV3LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCShyZXZp
c2lvbiA0ODAzNSkKKysrIFdlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAkod29ya2luZyBjb3B5KQpA
QCAtNjksOCArNjksNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRNYXJnaW5XaWR0aChpbnQpOwog
ICAgIHZvaWQgc2V0TWFyZ2luSGVpZ2h0KGludCk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q2Fu
SGF2ZVNjcm9sbGJhcnMoYm9vbCk7Ci0KICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8U2Nyb2xsYmFy
PiBjcmVhdGVTY3JvbGxiYXIoU2Nyb2xsYmFyT3JpZW50YXRpb24pOwogCiAgICAgdmlydHVhbCB2
b2lkIHNldENvbnRlbnRzU2l6ZShjb25zdCBJbnRTaXplJik7CkBAIC0xMjIsOCArMTIwLDYgQEAg
cHVibGljOgogICAgIHZvaWQgc2V0U2hvdWxkVXBkYXRlV2hpbGVPZmZzY3JlZW4oYm9vbCk7CiAK
ICAgICB2b2lkIGFkanVzdFZpZXdTaXplKCk7Ci0gICAgdm9pZCBpbml0U2Nyb2xsYmFycygpOwot
ICAgIHZvaWQgdXBkYXRlRGVmYXVsdFNjcm9sbGJhclN0YXRlKCk7CiAgICAgCiAgICAgdmlydHVh
bCBJbnRSZWN0IHdpbmRvd0NsaXBSZWN0KGJvb2wgY2xpcFRvQ29udGVudHMgPSB0cnVlKSBjb25z
dDsKICAgICBJbnRSZWN0IHdpbmRvd0NsaXBSZWN0Rm9yTGF5ZXIoY29uc3QgUmVuZGVyTGF5ZXIq
LCBib29sIGNsaXBUb0xheWVyQ29udGVudHMpIGNvbnN0OwpAQCAtMjUxLDggKzI0Nyw2IEBAIHBy
aXZhdGU6CiAKICAgICBib29sIG1fZG9GdWxsUmVwYWludDsKICAgICAKLSAgICBTY3JvbGxiYXJN
b2RlIG1fdm1vZGU7Ci0gICAgU2Nyb2xsYmFyTW9kZSBtX2htb2RlOwogICAgIGJvb2wgbV91c2VT
bG93UmVwYWludHM7CiAgICAgYm9vbCBtX2lzT3ZlcmxhcHBlZDsKICAgICBib29sIG1fY29udGVu
dElzT3BhcXVlOwpAQCAtMjcyLDcgKzI2Niw2IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2ZpcnN0
TGF5b3V0Q2FsbGJhY2tQZW5kaW5nOwogCiAgICAgYm9vbCBtX2ZpcnN0TGF5b3V0OwotICAgIGJv
b2wgbV9uZWVkVG9Jbml0U2Nyb2xsYmFyczsKICAgICBib29sIG1faXNUcmFuc3BhcmVudDsKICAg
ICBDb2xvciBtX2Jhc2VCYWNrZ3JvdW5kQ29sb3I7CiAgICAgSW50U2l6ZSBtX2xhc3RMYXlvdXRT
aXplOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCShyZXZpc2lvbiA0ODAzNSkKKysrIFdl
YkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyOSw2ICsz
MjksMTUgQEAgdm9pZCBTY3JvbGxWaWV3Ojp1cGRhdGVTY3JvbGxiYXJzKGNvbnN0IAogICAgIGlm
IChtX2luVXBkYXRlU2Nyb2xsYmFycyB8fCBwcm9oaWJpdHNTY3JvbGxpbmcoKSB8fCBwbGF0Zm9y
bVdpZGdldCgpKQogICAgICAgICByZXR1cm47CiAKKyAgICAvLyBJZiB3ZSBjYW1lIGluIGhlcmUg
d2l0aCB0aGUgdmlldyBhbHJlYWR5IG5lZWRpbmcgYSBsYXlvdXQsIHRoZW4gZ28gYWhlYWQgYW5k
IGRvIHRoYXQKKyAgICAvLyBmaXJzdC4gIChUaGlzIHdpbGwgYmUgdGhlIGNvbW1vbiBjYXNlLCBl
LmcuLCB3aGVuIHRoZSBwYWdlIGNoYW5nZXMgZHVlIHRvIHdpbmRvdyByZXNpemluZyBmb3IgZXhh
bXBsZSkuCisgICAgLy8gVGhpcyBsYXlvdXQgd2lsbCBub3QgcmUtZW50ZXIgdXBkYXRlU2Nyb2xs
YmFycyBhbmQgZG9lcyBub3QgY291bnQgdG93YXJkcyBvdXIgbWF4IGxheW91dCBwYXNzIHRvdGFs
LgorICAgIGlmICghbV9zY3JvbGxiYXJzU3VwcHJlc3NlZCkgeworICAgICAgICBtX2luVXBkYXRl
U2Nyb2xsYmFycyA9IHRydWU7CisgICAgICAgIHZpc2libGVDb250ZW50c1Jlc2l6ZWQoKTsKKyAg
ICAgICAgbV9pblVwZGF0ZVNjcm9sbGJhcnMgPSBmYWxzZTsKKyAgICB9CisKICAgICBib29sIGhh
c0hvcml6b250YWxTY3JvbGxiYXIgPSBtX2hvcml6b250YWxTY3JvbGxiYXI7CiAgICAgYm9vbCBo
YXNWZXJ0aWNhbFNjcm9sbGJhciA9IG1fdmVydGljYWxTY3JvbGxiYXI7CiAgICAgCkBAIC0zNDks
MTMgKzM1OCw2IEBAIHZvaWQgU2Nyb2xsVmlldzo6dXBkYXRlU2Nyb2xsYmFycyhjb25zdCAKICAg
ICAgICAgaWYgKGhhc1ZlcnRpY2FsU2Nyb2xsYmFyICE9IG5ld0hhc1ZlcnRpY2FsU2Nyb2xsYmFy
KQogICAgICAgICAgICAgc2V0SGFzVmVydGljYWxTY3JvbGxiYXIobmV3SGFzVmVydGljYWxTY3Jv
bGxiYXIpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIC8vIElmIHdlIGNhbWUgaW4gaGVyZSB3aXRo
IHRoZSB2aWV3IGFscmVhZHkgbmVlZGluZyBhIGxheW91dCwgdGhlbiBnbyBhaGVhZCBhbmQgZG8g
dGhhdAotICAgICAgICAvLyBmaXJzdC4gIChUaGlzIHdpbGwgYmUgdGhlIGNvbW1vbiBjYXNlLCBl
LmcuLCB3aGVuIHRoZSBwYWdlIGNoYW5nZXMgZHVlIHRvIHdpbmRvdyByZXNpemluZyBmb3IgZXhh
bXBsZSkuCi0gICAgICAgIC8vIFRoaXMgbGF5b3V0IHdpbGwgbm90IHJlLWVudGVyIHVwZGF0ZVNj
cm9sbGVycyBhbmQgZG9lcyBub3QgY291bnQgdG93YXJkcyBvdXIgbWF4IGxheW91dCBwYXNzIHRv
dGFsLgotICAgICAgICBtX2luVXBkYXRlU2Nyb2xsYmFycyA9IHRydWU7Ci0gICAgICAgIHZpc2li
bGVDb250ZW50c1Jlc2l6ZWQoKTsKLSAgICAgICAgbV9pblVwZGF0ZVNjcm9sbGJhcnMgPSBmYWxz
ZTsKLQogICAgICAgICBib29sIHNlbmRDb250ZW50UmVzaXplZE5vdGlmaWNhdGlvbiA9IGZhbHNl
OwogICAgICAgICAKICAgICAgICAgSW50U2l6ZSBkb2NTaXplID0gY29udGVudHNTaXplKCk7Cklu
ZGV4OiBXZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3BsYXRmb3JtL1Njcm9sbFZpZXcuaAkocmV2aXNpb24gNDgwMzUpCisrKyBXZWJDb3JlL3BsYXRm
b3JtL1Njcm9sbFZpZXcuaAkod29ya2luZyBjb3B5KQpAQCAtODksNyArODksNyBAQCBwdWJsaWM6
CiAgICAgdm9pZCBzY3JvbGxiYXJNb2RlcyhTY3JvbGxiYXJNb2RlJiBob3Jpem9udGFsTW9kZSwg
U2Nyb2xsYmFyTW9kZSYgdmVydGljYWxNb2RlKSBjb25zdDsKICAgICBTY3JvbGxiYXJNb2RlIGhv
cml6b250YWxTY3JvbGxiYXJNb2RlKCkgY29uc3QgeyBTY3JvbGxiYXJNb2RlIGhvcml6b250YWws
IHZlcnRpY2FsOyBzY3JvbGxiYXJNb2Rlcyhob3Jpem9udGFsLCB2ZXJ0aWNhbCk7IHJldHVybiBo
b3Jpem9udGFsOyB9CiAgICAgU2Nyb2xsYmFyTW9kZSB2ZXJ0aWNhbFNjcm9sbGJhck1vZGUoKSBj
b25zdCB7IFNjcm9sbGJhck1vZGUgaG9yaXpvbnRhbCwgdmVydGljYWw7IHNjcm9sbGJhck1vZGVz
KGhvcml6b250YWwsIHZlcnRpY2FsKTsgcmV0dXJuIHZlcnRpY2FsOyB9Ci0gICAgdmlydHVhbCB2
b2lkIHNldENhbkhhdmVTY3JvbGxiYXJzKGJvb2wgZmxhZyk7CisgICAgdm9pZCBzZXRDYW5IYXZl
U2Nyb2xsYmFycyhib29sIGZsYWcpOwogICAgIGJvb2wgY2FuSGF2ZVNjcm9sbGJhcnMoKSBjb25z
dCB7IHJldHVybiBob3Jpem9udGFsU2Nyb2xsYmFyTW9kZSgpICE9IFNjcm9sbGJhckFsd2F5c09m
ZiB8fCB2ZXJ0aWNhbFNjcm9sbGJhck1vZGUoKSAhPSBTY3JvbGxiYXJBbHdheXNPZmY7IH0KIAog
ICAgIC8vIE92ZXJyaWRkZW4gYnkgRnJhbWVWaWV3IHRvIGNyZWF0ZSBjdXN0b20gQ1NTIHNjcm9s
bGJhcnMgaWYgYXBwbGljYWJsZS4KSW5kZXg6IFdlYktpdC9tYWMvQ2hhbmdlTG9nCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYktpdC9tYWMvQ2hhbmdlTG9nCShyZXZpc2lvbiA0ODAzNykKKysrIFdlYktpdC9t
YWMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjMgQEAKKzIwMDktMDktMDMg
IE1hcmsgTWVudG92YWkgIDxtYXJrQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9Mjg2MTQKKworICAgICAgICBBY2NvdW50IGZvciBzY3JvbGxiYXIgc3RhdGUg
Y2hhbmdlcyB0aGF0IG9jY3VyIGR1cmluZyBsYXlvdXQuCisKKyAgICAgICAgKiBXZWJWaWV3L1dl
YkR5bmFtaWNTY3JvbGxCYXJzVmlldy5tbToKKyAgICAgICAgKC1bV2ViRHluYW1pY1Njcm9sbEJh
cnNWaWV3IHVwZGF0ZVNjcm9sbGVyc10pOgorCisgICAgICAgIFBlcmZvcm0gYSBsYXlvdXQgcHJp
b3IgdG8gY2hlY2tpbmcgd2hldGhlciB0aGUgc2Nyb2xsYmFyIG1vZGVzIGFyZQorICAgICAgICBv
ZmYsIG9uLCBvciBhdXRvbWF0aWMuICBUaGUgbW9kZXMgbWF5IGNoYW5nZSBkdXJpbmcgbGF5b3V0
LgorCisgICAgICAgICogV2ViVmlldy9XZWJGcmFtZVZpZXcubW06CisgICAgICAgICgtW1dlYkZy
YW1lVmlldyBfaW5zdGFsbF0pOgorCisgICAgICAgIEVsaW1pbmF0ZSBkdXBsaWNhdGVkIChhbmQg
aW5jb3JyZWN0KSBzY3JvbGxiYXIgbW9kZSB0cmFja2luZyBiZXR3ZWVuCisgICAgICAgIEZyYW1l
VmlldyBhbmQgU2Nyb2xsVmlldy4KKwogMjAwOS0wOS0wMyAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3
ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQgYnVpbGQgZml4LgpJbmRleDogV2ViS2l0
L21hYy9XZWJWaWV3L1dlYkR5bmFtaWNTY3JvbGxCYXJzVmlldy5tbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViRHluYW1pY1Njcm9sbEJhcnNWaWV3Lm1tCShyZXZpc2lvbiA0
ODAzNSkKKysrIFdlYktpdC9tYWMvV2ViVmlldy9XZWJEeW5hbWljU2Nyb2xsQmFyc1ZpZXcubW0J
KHdvcmtpbmcgY29weSkKQEAgLTg5LDE1ICs4OSwyNiBAQCBzdGF0aWMgY29uc3QgdW5zaWduZWQg
Y01heFVwZGF0ZVNjcm9sbGJhCiAKIC0gKHZvaWQpdXBkYXRlU2Nyb2xsZXJzCiB7Ci0gICAgQk9P
TCBoYXNWZXJ0aWNhbFNjcm9sbGVyID0gW3NlbGYgaGFzVmVydGljYWxTY3JvbGxlcl07CisgICAg
TlNWaWV3ICpkb2N1bWVudFZpZXcgPSBbc2VsZiBkb2N1bWVudFZpZXddOworCisgICAgLy8gSWYg
d2UgY2FtZSBpbiBoZXJlIHdpdGggdGhlIHZpZXcgYWxyZWFkeSBuZWVkaW5nIGEgbGF5b3V0LCB0
aGVuIGdvIGFoZWFkIGFuZCBkbyB0aGF0CisgICAgLy8gZmlyc3QuICAoVGhpcyB3aWxsIGJlIHRo
ZSBjb21tb24gY2FzZSwgZS5nLiwgd2hlbiB0aGUgcGFnZSBjaGFuZ2VzIGR1ZSB0byB3aW5kb3cg
cmVzaXppbmcgZm9yIGV4YW1wbGUpLgorICAgIC8vIFRoaXMgbGF5b3V0IHdpbGwgbm90IHJlLWVu
dGVyIHVwZGF0ZVNjcm9sbGVycyBhbmQgZG9lcyBub3QgY291bnQgdG93YXJkcyBvdXIgbWF4IGxh
eW91dCBwYXNzIHRvdGFsLgorICAgIGlmICghc3VwcHJlc3NMYXlvdXQgJiYgIXN1cHByZXNzU2Ny
b2xsZXJzICYmIFtkb2N1bWVudFZpZXcgaXNLaW5kT2ZDbGFzczpbV2ViSFRNTFZpZXcgY2xhc3Nd
XSkgeworICAgICAgICBXZWJIVE1MVmlldyogaHRtbFZpZXcgPSAoV2ViSFRNTFZpZXcqKWRvY3Vt
ZW50VmlldzsKKyAgICAgICAgaWYgKFtodG1sVmlldyBfbmVlZHNMYXlvdXRdKSB7CisgICAgICAg
ICAgICBpblVwZGF0ZVNjcm9sbGVycyA9IFlFUzsKKyAgICAgICAgICAgIFsoaWQgPFdlYkRvY3Vt
ZW50Vmlldz4pZG9jdW1lbnRWaWV3IGxheW91dF07CisgICAgICAgICAgICBpblVwZGF0ZVNjcm9s
bGVycyA9IE5POworICAgICAgICB9CisgICAgfQorCiAgICAgQk9PTCBoYXNIb3Jpem9udGFsU2Ny
b2xsZXIgPSBbc2VsZiBoYXNIb3Jpem9udGFsU2Nyb2xsZXJdOworICAgIEJPT0wgaGFzVmVydGlj
YWxTY3JvbGxlciA9IFtzZWxmIGhhc1ZlcnRpY2FsU2Nyb2xsZXJdOwogICAgIAogICAgIEJPT0wg
bmV3SGFzSG9yaXpvbnRhbFNjcm9sbGVyID0gaGFzSG9yaXpvbnRhbFNjcm9sbGVyOwogICAgIEJP
T0wgbmV3SGFzVmVydGljYWxTY3JvbGxlciA9IGhhc1ZlcnRpY2FsU2Nyb2xsZXI7CiAgICAgCi0g
ICAgQk9PTCBuZWVkc0xheW91dCA9IE5POwotCi0gICAgTlNWaWV3ICpkb2N1bWVudFZpZXcgPSBb
c2VsZiBkb2N1bWVudFZpZXddOwogICAgIGlmICghZG9jdW1lbnRWaWV3KSB7CiAgICAgICAgIG5l
d0hhc0hvcml6b250YWxTY3JvbGxlciA9IE5POwogICAgICAgICBuZXdIYXNWZXJ0aWNhbFNjcm9s
bGVyID0gTk87CkBAIC0xMjIsMTkgKzEzMyw3IEBAIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBjTWF4
VXBkYXRlU2Nyb2xsYmEKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIG5lZWRzTGF5b3V0
ID0gTk87Ci0KLSAgICAvLyBJZiB3ZSBjYW1lIGluIGhlcmUgd2l0aCB0aGUgdmlldyBhbHJlYWR5
IG5lZWRpbmcgYSBsYXlvdXQsIHRoZW4gZ28gYWhlYWQgYW5kIGRvIHRoYXQKLSAgICAvLyBmaXJz
dC4gIChUaGlzIHdpbGwgYmUgdGhlIGNvbW1vbiBjYXNlLCBlLmcuLCB3aGVuIHRoZSBwYWdlIGNo
YW5nZXMgZHVlIHRvIHdpbmRvdyByZXNpemluZyBmb3IgZXhhbXBsZSkuCi0gICAgLy8gVGhpcyBs
YXlvdXQgd2lsbCBub3QgcmUtZW50ZXIgdXBkYXRlU2Nyb2xsZXJzIGFuZCBkb2VzIG5vdCBjb3Vu
dCB0b3dhcmRzIG91ciBtYXggbGF5b3V0IHBhc3MgdG90YWwuCi0gICAgaWYgKFtkb2N1bWVudFZp
ZXcgaXNLaW5kT2ZDbGFzczpbV2ViSFRNTFZpZXcgY2xhc3NdXSkgewotICAgICAgICBXZWJIVE1M
VmlldyogaHRtbFZpZXcgPSAoV2ViSFRNTFZpZXcqKWRvY3VtZW50VmlldzsKLSAgICAgICAgaWYg
KFtodG1sVmlldyBfbmVlZHNMYXlvdXRdKSB7Ci0gICAgICAgICAgICBpblVwZGF0ZVNjcm9sbGVy
cyA9IFlFUzsKLSAgICAgICAgICAgIFsoaWQgPFdlYkRvY3VtZW50Vmlldz4pZG9jdW1lbnRWaWV3
IGxheW91dF07Ci0gICAgICAgICAgICBpblVwZGF0ZVNjcm9sbGVycyA9IE5POwotICAgICAgICB9
Ci0gICAgfQorICAgIEJPT0wgbmVlZHNMYXlvdXQgPSBOTzsKIAogICAgIE5TU2l6ZSBkb2N1bWVu
dFNpemUgPSBbZG9jdW1lbnRWaWV3IGZyYW1lXS5zaXplOwogICAgIE5TU2l6ZSB2aXNpYmxlU2l6
ZSA9IFtzZWxmIGRvY3VtZW50VmlzaWJsZVJlY3RdLnNpemU7CkluZGV4OiBXZWJLaXQvbWFjL1dl
YlZpZXcvV2ViRnJhbWVWaWV3Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9tYWMvV2ViVmlldy9X
ZWJGcmFtZVZpZXcubW0JKHJldmlzaW9uIDQ4MDM1KQorKysgV2ViS2l0L21hYy9XZWJWaWV3L1dl
YkZyYW1lVmlldy5tbQkod29ya2luZyBjb3B5KQpAQCAtMjczLDggKzI3Myw2IEBAIHN0YXRpYyBp
bmxpbmUgdm9pZCBhZGRUeXBlc0Zyb21DbGFzcyhOU00KICAgICAgICAgb3duZXItPnNldFdpZGdl
dCh2aWV3KTsKICAgICAgICAgLy8gTm93IHRoZSByZW5kZXIgcGFydCBvd25zIHRoZSB2aWV3LCBz
byB3ZSBkb24ndCBhbnkgbW9yZS4KICAgICB9Ci0KLSAgICB2aWV3LT5pbml0U2Nyb2xsYmFycygp
OwogfQogCiBAZW5kCkluZGV4OiBXZWJLaXQvcXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YktpdC9xdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDQ4MDM3KQorKysgV2ViS2l0L3F0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDA5LTA5LTAzICBNYXJrIE1lbnRv
dmFpICA8bWFya0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTI4NjE0CisKKyAgICAgICAgQWNjb3VudCBmb3Igc2Nyb2xsYmFyIHN0YXRlIGNoYW5nZXMgdGhh
dCBvY2N1ciBkdXJpbmcgbGF5b3V0LgorCisgICAgICAgICogQXBpL3F3ZWJmcmFtZS5jcHA6Cisg
ICAgICAgIChRV2ViRnJhbWU6OnNldFNjcm9sbEJhclBvbGljeSk6CisKKyAgICAgICAgRWxpbWlu
YXRlIGR1cGxpY2F0ZWQgKGFuZCBpbmNvcnJlY3QpIHNjcm9sbGJhciBtb2RlIHRyYWNraW5nIGJl
dHdlZW4KKyAgICAgICAgRnJhbWVWaWV3IGFuZCBTY3JvbGxWaWV3LgorCiAyMDA5LTA5LTAzICBB
ZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgZXJp
Y0B3ZWJraXQub3JnLgpJbmRleDogV2ViS2l0L3F0L0FwaS9xd2ViZnJhbWUuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYktpdC9xdC9BcGkvcXdlYmZyYW1lLmNwcAkocmV2aXNpb24gNDgwMzUpCisrKyBX
ZWJLaXQvcXQvQXBpL3F3ZWJmcmFtZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgwMSwxMyArODAx
LDExIEBAIHZvaWQgUVdlYkZyYW1lOjpzZXRTY3JvbGxCYXJQb2xpY3koUXQ6Ok8KICAgICAgICAg
ZC0+aG9yaXpvbnRhbFNjcm9sbEJhclBvbGljeSA9IHBvbGljeTsKICAgICAgICAgaWYgKGQtPmZy
YW1lLT52aWV3KCkpIHsKICAgICAgICAgICAgIGQtPmZyYW1lLT52aWV3KCktPnNldEhvcml6b250
YWxTY3JvbGxiYXJNb2RlKChTY3JvbGxiYXJNb2RlKXBvbGljeSk7Ci0gICAgICAgICAgICBkLT5m
cmFtZS0+dmlldygpLT51cGRhdGVEZWZhdWx0U2Nyb2xsYmFyU3RhdGUoKTsKICAgICAgICAgfQog
ICAgIH0gZWxzZSB7CiAgICAgICAgIGQtPnZlcnRpY2FsU2Nyb2xsQmFyUG9saWN5ID0gcG9saWN5
OwogICAgICAgICBpZiAoZC0+ZnJhbWUtPnZpZXcoKSkgewogICAgICAgICAgICAgZC0+ZnJhbWUt
PnZpZXcoKS0+c2V0VmVydGljYWxTY3JvbGxiYXJNb2RlKChTY3JvbGxiYXJNb2RlKXBvbGljeSk7
Ci0gICAgICAgICAgICBkLT5mcmFtZS0+dmlldygpLT51cGRhdGVEZWZhdWx0U2Nyb2xsYmFyU3Rh
dGUoKTsKICAgICAgICAgfQogICAgIH0KIH0K
</data>
<flag name="review"
          id="20058"
          type_id="1"
          status="+"
          setter="hyatt"
    />
          </attachment>
      

    </bug>

</bugzilla>