<?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>33373</bug_id>
          
          <creation_ts>2010-01-08 03:27:33 -0800</creation_ts>
          <short_desc>[Qt] Enable scrolling optimization for pages with embedded widgets</short_desc>
          <delta_ts>2010-01-29 06:19:38 -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>WebKit Qt</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</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="Andreas Kling">kling</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>girish</cc>
    
    <cc>hausmann</cc>
    
    <cc>kenneth</cc>
    
    <cc>skyul</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zecke</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>178604</commentid>
    <comment_count>0</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-01-08 03:27:33 -0800</bug_when>
    <thetext>Currently QtWebKit repaints the entire viewport when scrolling any page with embedded widgets (e.g flash plugins)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178609</commentid>
    <comment_count>1</comment_count>
      <attachid>46127</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-01-08 03:34:32 -0800</bug_when>
    <thetext>Created attachment 46127
Proposed patch

This patch enables optimized scrolling and makes sure that (Qt) PluginViews are invalidated when scrolling. (This is needed for them to move themselves properly.)

No regressions in the existing auto and manual tests on Qt/X11. Comments very welcome!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178613</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-01-08 03:38:46 -0800</bug_when>
    <thetext>style-queue ran check-webkit-style on attachment 46127 without any errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179075</commentid>
    <comment_count>3</comment_count>
      <attachid>46127</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-01-09 15:56:34 -0800</bug_when>
    <thetext>Comment on attachment 46127
Proposed patch

This looks sane to me.  It seems whoever put in the previous Qt scrolling code might want to look at this though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179127</commentid>
    <comment_count>4</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2010-01-10 01:35:03 -0800</bug_when>
    <thetext>Holger, Kenneth: Could you take a look at this one? It appears that the workaround for full repaints on pages with widgets isn&apos;t needed anymore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179134</commentid>
    <comment_count>5</comment_count>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2010-01-10 05:24:48 -0800</bug_when>
    <thetext>First thing. Have you encountered a crash or why are you adding a null check? If you have encountered a crash please create a LayoutTest for this if not please remove it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179135</commentid>
    <comment_count>6</comment_count>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2010-01-10 05:31:02 -0800</bug_when>
    <thetext>The second thing starts with an apology. The commit message I used when adding this it total crap, it lacks a reference to a testcase, a bug report... I&apos;m really sorry about this.

IIRC I added the code before we even supported Netscape Plugins in QtWebKIt. This means we will need to check this patach not only against Netscape Plugins support but also the QWidget embedding.

Now to the second apology. We currently do not have any (automatic/manual) test for scrolling of embedded Qt plugins. Could you help out on this?

The manual test should be a testshell that embeds a QLabel as &quot;alien&quot; and non-alien widget and then asks the user to scroll it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179305</commentid>
    <comment_count>7</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-01-11 02:24:33 -0800</bug_when>
    <thetext>Yes, I agree that we need to make sure that there are no regressions with this patch with regard to Qt plugins. I already wanted to remove this earlier as it is not really required for Netscape plugins, so the patch is heading in the right direction.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179318</commentid>
    <comment_count>8</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-01-11 03:41:19 -0800</bug_when>
    <thetext>I added the null pointer check due to a crash that occurs when loading WebCore/manual-tests/qt/qtplugin.html:

WebCore::PluginView::invalidateRect(WebCore::IntRect const&amp;) (PluginViewQt.cpp:653)
WebCore::Widget::invalidate() (Widget.h:147)
WebCore::PluginView::updatePluginWidget() (PluginViewQt.cpp:133)
WebCore::PluginView::frameRectsChanged() (PluginView.cpp:140)
WebCore::Widget::setFrameRect(WebCore::IntRect const&amp;) (WidgetQt.cpp:75)
WebCore::PluginView::setFrameRect(WebCore::IntRect const&amp;) (PluginView.cpp:124)
WebCore::RenderWidget::setWidgetGeometry(WebCore::IntRect const&amp;) (RenderWidget.cpp:159)
WebCore::RenderWidget::updateWidgetPosition() (RenderWidget.cpp:308)
WebCore::RenderView::updateWidgetPositions() (RenderView.cpp:543)
WebCore::FrameView::performPostLayoutTasks() (FrameView.cpp:1380)
WebCore::FrameView::layout(bool) (FrameView.cpp:732)
WebCore::FrameView::visibleContentsResized() (FrameView.cpp:1010)
WebCore::ScrollView::updateScrollbars(WebCore::IntSize const&amp;) (ScrollView.cpp:403)
WebCore::ScrollView::setContentsSize(WebCore::IntSize const&amp;) (ScrollView.cpp:239)
WebCore::FrameView::setContentsSize(WebCore::IntSize const&amp;) (FrameView.cpp:372)
WebCore::FrameView::adjustViewSize() (FrameView.cpp:392)
WebCore::FrameView::layout(bool) (FrameView.cpp:698)
WebCore::FrameView::layoutTimerFired(WebCore::Timer&lt;WebCore::FrameView&gt;*) (FrameView.cpp:1119)
WebCore::Timer&lt;WebCore::FrameView&gt;::fired() (Timer.h:98)
WebCore::ThreadTimers::sharedTimerFiredInternal() (ThreadTimers.cpp:112)
WebCore::ThreadTimers::sharedTimerFired() (ThreadTimers.cpp:90)
WebCore::SharedTimerQt::timerEvent(QTimerEvent*) (SharedTimerQt.cpp:105)
QObject::event(QEvent*) (qobject.cpp:1204)
...
QApplication::exec() (qapplication.cpp:3576)
main (main.cpp:37)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179397</commentid>
    <comment_count>9</comment_count>
      <attachid>46284</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-01-11 09:36:51 -0800</bug_when>
    <thetext>Created attachment 46284
Same patch, with a manual test added

Added a simple manual test with one alien and one non-alien QLabel as per Holger&apos;s suggestion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179399</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-01-11 09:42:40 -0800</bug_when>
    <thetext>Attachment 46284 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebKitTools/QtLauncher/main.cpp:656:  Declaration has space between type name and * in QLabel *l  [whitespace/declaration] [3]
Total errors found: 1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179402</commentid>
    <comment_count>11</comment_count>
      <attachid>46285</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-01-11 09:48:09 -0800</bug_when>
    <thetext>Created attachment 46285
Same patch, style complaints addressed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179721</commentid>
    <comment_count>12</comment_count>
      <attachid>46285</attachid>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2010-01-12 01:19:58 -0800</bug_when>
    <thetext>Comment on attachment 46285
Same patch, style complaints addressed

Cool. The patch looks ready. I wish we could automate the crasher too. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>180673</commentid>
    <comment_count>13</comment_count>
      <attachid>46285</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-01-14 04:15:13 -0800</bug_when>
    <thetext>Comment on attachment 46285
Same patch, style complaints addressed

Clearing flags on attachment: 46285

Committed r53259: &lt;http://trac.webkit.org/changeset/53259&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>180674</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-01-14 04:15:19 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>185833</commentid>
    <comment_count>15</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2010-01-29 05:36:34 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; (From update of attachment 46285 [details])
&gt; Clearing flags on attachment: 46285
&gt; 
&gt; Committed r53259: &lt;http://trac.webkit.org/changeset/53259&gt;

Cherry-picked into qtwebkit-4.6 with commit ca7b2e1e1ca558050cf49dd8f7c9b35e4b9d4df5</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>46127</attachid>
            <date>2010-01-08 03:34:32 -0800</date>
            <delta_ts>2010-01-11 09:36:51 -0800</delta_ts>
            <desc>Proposed patch</desc>
            <filename>bug-33373.diff</filename>
            <type>text/plain</type>
            <size>4761</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NjgyNzQwOC4uYjZmZGMwOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxMC0wMS0wOCAgQW5kcmVhcyBLbGlu
ZyAgPGFuZHJlYXMua2xpbmdAbm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFtRdF0gRW5hYmxlIHNjcm9sbGluZyBvcHRpbWl6YXRpb24g
Zm9yIHBhZ2VzIHdpdGggZW1iZWRkZWQgd2lkZ2V0cworCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMzM3MworCisgICAgICAgICogcGxhdGZvcm0vU2Ny
b2xsVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3OjpzY3JvbGxDb250ZW50
cyk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3OjpzZXRQYXJlbnQpOgorICAgICAgICAq
IHBsYXRmb3JtL1Njcm9sbFZpZXcuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9TY3JvbGxWaWV3
UXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6cGxhdGZvcm1Jbml0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnBsYXRmb3JtQWRkQ2hpbGQpOgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsVmlldzo6cGxhdGZvcm1SZW1vdmVDaGlsZCk6CisgICAgICAgICogcGx1
Z2lucy9xdC9QbHVnaW5WaWV3UXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6
dXBkYXRlUGx1Z2luV2lkZ2V0KToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OmludmFs
aWRhdGVSZWN0KToKKwogMjAxMC0wMS0wNyAgTWlrZSBCZWxzaGUgIDxtYmVsc2hlQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KZGlmZiAtLWdpdCBhL1dl
YkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZp
ZXcuY3BwCmluZGV4IDEzNzkyNWIuLjBmNjkyMGMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZv
cm0vU2Nyb2xsVmlldy5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcApA
QCAtNTEzLDcgKzUxMyw3IEBAIHZvaWQgU2Nyb2xsVmlldzo6c2Nyb2xsQ29udGVudHMoY29uc3Qg
SW50U2l6ZSYgc2Nyb2xsRGVsdGEpCiAgICAgICAgIGhvc3RXaW5kb3coKS0+cmVwYWludChwYW5T
Y3JvbGxJY29uRGlydHlSZWN0LCB0cnVlKTsKICAgICB9CiAKLSAgICBpZiAoY2FuQmxpdE9uU2Ny
b2xsKCkgJiYgIXJvb3RQcmV2ZW50c0JsaXR0aW5nKCkpIHsgLy8gVGhlIG1haW4gZnJhbWUgY2Fu
IGp1c3QgYmxpdCB0aGUgV2ViVmlldyB3aW5kb3cKKyAgICBpZiAoY2FuQmxpdE9uU2Nyb2xsKCkp
IHsgLy8gVGhlIG1haW4gZnJhbWUgY2FuIGp1c3QgYmxpdCB0aGUgV2ViVmlldyB3aW5kb3cKICAg
ICAgICAvLyBGSVhNRTogRmluZCBhIHdheSB0byBibGl0IHN1YmZyYW1lcyB3aXRob3V0IGJsaXR0
aW5nIG92ZXJsYXBwaW5nIGNvbnRlbnQKICAgICAgICBob3N0V2luZG93KCktPnNjcm9sbCgtc2Ny
b2xsRGVsdGEsIHNjcm9sbFZpZXdSZWN0LCBjbGlwUmVjdCk7CiAgICAgfSBlbHNlIHsgCkBAIC02
MDMsMTQgKzYwMyw2IEBAIHZvaWQgU2Nyb2xsVmlldzo6c2V0UGFyZW50KFNjcm9sbFZpZXcqIHBh
cmVudFZpZXcpCiAgICAgaWYgKG1fc2Nyb2xsYmFyc0F2b2lkaW5nUmVzaXplciAmJiBwYXJlbnQo
KSkKICAgICAgICAgcGFyZW50KCktPmFkanVzdFNjcm9sbGJhcnNBdm9pZGluZ1Jlc2l6ZXJDb3Vu
dCgtbV9zY3JvbGxiYXJzQXZvaWRpbmdSZXNpemVyKTsKIAotI2lmIFBMQVRGT1JNKFFUKQotICAg
IGlmIChtX3dpZGdldHNQcmV2ZW50aW5nQmxpdHRpbmcgJiYgcGFyZW50KCkpCi0gICAgICAgIHBh
cmVudCgpLT5hZGp1c3RXaWRnZXRzUHJldmVudGluZ0JsaXR0aW5nQ291bnQoLW1fd2lkZ2V0c1By
ZXZlbnRpbmdCbGl0dGluZyk7Ci0KLSAgICBpZiAobV93aWRnZXRzUHJldmVudGluZ0JsaXR0aW5n
ICYmIHBhcmVudFZpZXcpCi0gICAgICAgIHBhcmVudFZpZXctPmFkanVzdFdpZGdldHNQcmV2ZW50
aW5nQmxpdHRpbmdDb3VudChtX3dpZGdldHNQcmV2ZW50aW5nQmxpdHRpbmcpOwotI2VuZGlmCi0K
ICAgICBXaWRnZXQ6OnNldFBhcmVudChwYXJlbnRWaWV3KTsKIAogICAgIGlmIChtX3Njcm9sbGJh
cnNBdm9pZGluZ1Jlc2l6ZXIgJiYgcGFyZW50KCkpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRm
b3JtL1Njcm9sbFZpZXcuaCBiL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5oCmluZGV4IGNh
NzI5MDAuLmE3MTczYTcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5o
CisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5oCkBAIC0zMTIsMTYgKzMxMiw2IEBA
IHByaXZhdGU6CiAgICAgTlNTY3JvbGxWaWV3PFdlYkNvcmVGcmFtZVNjcm9sbFZpZXc+KiBzY3Jv
bGxWaWV3KCkgY29uc3Q7CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKFFUKQotcHVibGljOgotICAg
IHZvaWQgYWRqdXN0V2lkZ2V0c1ByZXZlbnRpbmdCbGl0dGluZ0NvdW50KGludCBkZWx0YSk7Ci1w
cml2YXRlOgotICAgIGJvb2wgcm9vdFByZXZlbnRzQmxpdHRpbmcoKSBjb25zdCB7IHJldHVybiBy
b290KCktPm1fd2lkZ2V0c1ByZXZlbnRpbmdCbGl0dGluZyA+IDA7IH0KLSAgICB1bnNpZ25lZCBt
X3dpZGdldHNQcmV2ZW50aW5nQmxpdHRpbmc7Ci0jZWxzZQotICAgIGJvb2wgcm9vdFByZXZlbnRz
QmxpdHRpbmcoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotI2VuZGlmCi0KICNpZiBQTEFURk9S
TShHVEspCiBwdWJsaWM6CiAgICAgdm9pZCBzZXRHdGtBZGp1c3RtZW50cyhHdGtBZGp1c3RtZW50
KiBoYWRqLCBHdGtBZGp1c3RtZW50KiB2YWRqKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZv
cm0vcXQvU2Nyb2xsVmlld1F0LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vcXQvU2Nyb2xsVmlld1F0
LmNwcAppbmRleCBjY2JkNzUxLi4xN2FkMjUzIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3Jt
L3F0L1Njcm9sbFZpZXdRdC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9xdC9TY3JvbGxWaWV3
UXQuY3BwCkBAIC0zNiwzMiArMzYsMTkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB2b2lkIFNj
cm9sbFZpZXc6OnBsYXRmb3JtSW5pdCgpCiB7Ci0gICAgbV93aWRnZXRzUHJldmVudGluZ0JsaXR0
aW5nID0gMDsKIH0KIAogdm9pZCBTY3JvbGxWaWV3OjpwbGF0Zm9ybURlc3Ryb3koKQogewogfQog
Ci0vLyBXaW5kb3dlZCBwbHVnaW5zIGFyZSB1c2luZyBuYXRpdmUgd2luZG93cyBhbmQgYXJlIHRo
dXMgcHJldmVudGluZwotLy8gdXMgZnJvbSBkb2luZyBhbnkga2luZCBvZiBzY3JvbGxpbmcgb3B0
aW1pemF0aW9uLgotCi12b2lkIFNjcm9sbFZpZXc6OmFkanVzdFdpZGdldHNQcmV2ZW50aW5nQmxp
dHRpbmdDb3VudChpbnQgZGVsdGEpCi17Ci0gICAgbV93aWRnZXRzUHJldmVudGluZ0JsaXR0aW5n
ICs9IGRlbHRhOwotICAgIGlmIChwYXJlbnQoKSkKLSAgICAgICAgcGFyZW50KCktPmFkanVzdFdp
ZGdldHNQcmV2ZW50aW5nQmxpdHRpbmdDb3VudChkZWx0YSk7Ci19Ci0KIHZvaWQgU2Nyb2xsVmll
dzo6cGxhdGZvcm1BZGRDaGlsZChXaWRnZXQqKQogewotICAgIGFkanVzdFdpZGdldHNQcmV2ZW50
aW5nQmxpdHRpbmdDb3VudCgxKTsKIH0KIAogdm9pZCBTY3JvbGxWaWV3OjpwbGF0Zm9ybVJlbW92
ZUNoaWxkKFdpZGdldCogY2hpbGQpCiB7CiAgICAgY2hpbGQtPmhpZGUoKTsKLSAgICBhZGp1c3RX
aWRnZXRzUHJldmVudGluZ0JsaXR0aW5nQ291bnQoLTEpOwogfQogCiB9CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL3BsdWdpbnMvcXQvUGx1Z2luVmlld1F0LmNwcCBiL1dlYkNvcmUvcGx1Z2lucy9xdC9Q
bHVnaW5WaWV3UXQuY3BwCmluZGV4IGZiOGJhMDguLmEwMzE1YmQgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvcGx1Z2lucy9xdC9QbHVnaW5WaWV3UXQuY3BwCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9xdC9Q
bHVnaW5WaWV3UXQuY3BwCkBAIC0xMjcsNiArMTI3LDEwIEBAIHZvaWQgUGx1Z2luVmlldzo6dXBk
YXRlUGx1Z2luV2lkZ2V0KCkKICAgICAvLyBzY3JvbGwsIHdlIG5lZWQgdG8gbW92ZS9yZXNpemUg
aW1tZWRpYXRlbHkuCiAgICAgaWYgKCFtX3dpbmRvd1JlY3QuaW50ZXJzZWN0cyhmcmFtZVZpZXct
PmZyYW1lUmVjdCgpKSkKICAgICAgICAgc2V0TlBXaW5kb3dJZk5lZWRlZCgpOworCisgICAgLy8g
TWFrZSBzdXJlIHdlIGdldCByZXBhaW50ZWQgYWZ0ZXJ3YXJkcy4gVGhpcyBpcyBuZWNlc3Nhcnkg
Zm9yIGRvd253YXJkCisgICAgLy8gc2Nyb2xsaW5nIHRvIG1vdmUgdGhlIHBsdWdpbiB3aWRnZXQg
cHJvcGVybHkuCisgICAgaW52YWxpZGF0ZSgpOwogfQogCiB2b2lkIFBsdWdpblZpZXc6OnNldEZv
Y3VzKCkKQEAgLTY0NCw3ICs2NDgsOCBAQCBOUEVycm9yIFBsdWdpblZpZXc6OmdldFZhbHVlKE5Q
TlZhcmlhYmxlIHZhcmlhYmxlLCB2b2lkKiB2YWx1ZSkKIHZvaWQgUGx1Z2luVmlldzo6aW52YWxp
ZGF0ZVJlY3QoY29uc3QgSW50UmVjdCYgcmVjdCkKIHsKICAgICBpZiAobV9pc1dpbmRvd2VkKSB7
Ci0gICAgICAgIHBsYXRmb3JtV2lkZ2V0KCktPnVwZGF0ZShyZWN0KTsKKyAgICAgICAgaWYgKHBs
YXRmb3JtV2lkZ2V0KCkpCisgICAgICAgICAgICBwbGF0Zm9ybVdpZGdldCgpLT51cGRhdGUocmVj
dCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>46284</attachid>
            <date>2010-01-11 09:36:51 -0800</date>
            <delta_ts>2010-01-11 09:48:09 -0800</delta_ts>
            <desc>Same patch, with a manual test added</desc>
            <filename>bug-33373.diff</filename>
            <type>text/plain</type>
            <size>6932</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZDU1NjBkMC4uOTM2NTNjNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxMC0wMS0xMSAgQW5kcmVhcyBLbGlu
ZyAgPGFuZHJlYXMua2xpbmdAbm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFtRdF0gRW5hYmxlIHNjcm9sbGluZyBvcHRpbWl6YXRpb24g
Zm9yIHBhZ2VzIHdpdGggZW1iZWRkZWQgd2lkZ2V0cworCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMzM3MworCisgICAgICAgIEFkZGVkIGEgYmFzaWMg
bWFudWFsIHRlc3QgZm9yIHNjcm9sbGluZyBvZiBlbWJlZGRlZCBRV2lkZ2V0cy4KKworICAgICAg
ICAqIG1hbnVhbC10ZXN0cy9xdC9xdHBsdWdpbi1zY3JvbGxpbmcuaHRtbDogQWRkZWQuCisgICAg
ICAgICogcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxW
aWV3OjpzY3JvbGxDb250ZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3OjpzZXRQ
YXJlbnQpOgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbFZpZXcuaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9xdC9TY3JvbGxWaWV3UXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6
cGxhdGZvcm1Jbml0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnBsYXRmb3JtQWRk
Q2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6cGxhdGZvcm1SZW1vdmVDaGls
ZCk6CisgICAgICAgICogcGx1Z2lucy9xdC9QbHVnaW5WaWV3UXQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UGx1Z2luVmlldzo6dXBkYXRlUGx1Z2luV2lkZ2V0KToKKyAgICAgICAgKFdlYkNvcmU6
OlBsdWdpblZpZXc6OmludmFsaWRhdGVSZWN0KToKKwogMjAxMC0wMS0xMSAgSm9hbm1hcmllIERp
Z2dzICA8am9hbm1hcmllLmRpZ2dzQGdtYWlsLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBY
YW4gTG9wZXouCmRpZmYgLS1naXQgYS9XZWJDb3JlL21hbnVhbC10ZXN0cy9xdC9xdHBsdWdpbi1z
Y3JvbGxpbmcuaHRtbCBiL1dlYkNvcmUvbWFudWFsLXRlc3RzL3F0L3F0cGx1Z2luLXNjcm9sbGlu
Zy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg1MDM4MzIKLS0tIC9k
ZXYvbnVsbAorKysgYi9XZWJDb3JlL21hbnVhbC10ZXN0cy9xdC9xdHBsdWdpbi1zY3JvbGxpbmcu
aHRtbApAQCAtMCwwICsxLDMyIEBACis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorICAgICNzcGFj
ZXIgeworICAgICAgICB3aWR0aDogMTAwJTsKKyAgICAgICAgaGVpZ2h0OiAxMDAwcHg7CisgICAg
ICAgIGJhY2tncm91bmQtY29sb3I6IHllbGxvdzsKKyAgICB9Cis8L3N0eWxlPgorPC9oZWFkPgor
PGJvZHk+CisKKzxwPgorICAgIFNjcm9sbCB0aGUgcGFnZSwgZW5zdXJlIHRoYXQgdGhlIHR3byBs
YWJlbHMgbW92ZSBuaWNlbHkgYWxvbmcgd2l0aCB0aGUgcmVzdCBvZiB0aGUgZG9jdW1lbnQuCis8
L3A+CisKKzxkaXY+Cis8b2JqZWN0IHR5cGU9ImFwcGxpY2F0aW9uL3gtcXQtcGx1Z2luIiBjbGFz
c2lkPSJhbGllbl9RTGFiZWwiIG5hbWU9ImxhYmVsMSIgaGVpZ2h0PSIzMCI+PC9vYmplY3Q+Cis8
L2Rpdj4KKworPGRpdj4KKzxvYmplY3QgdHlwZT0iYXBwbGljYXRpb24veC1xdC1wbHVnaW4iIGNs
YXNzaWQ9IlFMYWJlbCIgbmFtZT0ibGFiZWwyIiBoZWlnaHQ9IjMwIj48L29iamVjdD4KKzwvZGl2
PgorCis8ZGl2IGlkPSJzcGFjZXIiPjxwPiZuYnNwOzwvcD48L2Rpdj4KKworPHNjcmlwdD4KK2Rv
Y3VtZW50LmxhYmVsMS5zZXRUZXh0KCJMYWJlbCBvbmUiKTsKK2RvY3VtZW50LmxhYmVsMi5zZXRU
ZXh0KCJMYWJlbCB0d28iKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vU2Ny
b2xsVmlldy5jcHAKaW5kZXggMTM3OTI1Yi4uMGY2OTIwYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9w
bGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcu
Y3BwCkBAIC01MTMsNyArNTEzLDcgQEAgdm9pZCBTY3JvbGxWaWV3OjpzY3JvbGxDb250ZW50cyhj
b25zdCBJbnRTaXplJiBzY3JvbGxEZWx0YSkKICAgICAgICAgaG9zdFdpbmRvdygpLT5yZXBhaW50
KHBhblNjcm9sbEljb25EaXJ0eVJlY3QsIHRydWUpOwogICAgIH0KIAotICAgIGlmIChjYW5CbGl0
T25TY3JvbGwoKSAmJiAhcm9vdFByZXZlbnRzQmxpdHRpbmcoKSkgeyAvLyBUaGUgbWFpbiBmcmFt
ZSBjYW4ganVzdCBibGl0IHRoZSBXZWJWaWV3IHdpbmRvdworICAgIGlmIChjYW5CbGl0T25TY3Jv
bGwoKSkgeyAvLyBUaGUgbWFpbiBmcmFtZSBjYW4ganVzdCBibGl0IHRoZSBXZWJWaWV3IHdpbmRv
dwogICAgICAgIC8vIEZJWE1FOiBGaW5kIGEgd2F5IHRvIGJsaXQgc3ViZnJhbWVzIHdpdGhvdXQg
YmxpdHRpbmcgb3ZlcmxhcHBpbmcgY29udGVudAogICAgICAgIGhvc3RXaW5kb3coKS0+c2Nyb2xs
KC1zY3JvbGxEZWx0YSwgc2Nyb2xsVmlld1JlY3QsIGNsaXBSZWN0KTsKICAgICB9IGVsc2UgeyAK
QEAgLTYwMywxNCArNjAzLDYgQEAgdm9pZCBTY3JvbGxWaWV3OjpzZXRQYXJlbnQoU2Nyb2xsVmll
dyogcGFyZW50VmlldykKICAgICBpZiAobV9zY3JvbGxiYXJzQXZvaWRpbmdSZXNpemVyICYmIHBh
cmVudCgpKQogICAgICAgICBwYXJlbnQoKS0+YWRqdXN0U2Nyb2xsYmFyc0F2b2lkaW5nUmVzaXpl
ckNvdW50KC1tX3Njcm9sbGJhcnNBdm9pZGluZ1Jlc2l6ZXIpOwogCi0jaWYgUExBVEZPUk0oUVQp
Ci0gICAgaWYgKG1fd2lkZ2V0c1ByZXZlbnRpbmdCbGl0dGluZyAmJiBwYXJlbnQoKSkKLSAgICAg
ICAgcGFyZW50KCktPmFkanVzdFdpZGdldHNQcmV2ZW50aW5nQmxpdHRpbmdDb3VudCgtbV93aWRn
ZXRzUHJldmVudGluZ0JsaXR0aW5nKTsKLQotICAgIGlmIChtX3dpZGdldHNQcmV2ZW50aW5nQmxp
dHRpbmcgJiYgcGFyZW50VmlldykKLSAgICAgICAgcGFyZW50Vmlldy0+YWRqdXN0V2lkZ2V0c1By
ZXZlbnRpbmdCbGl0dGluZ0NvdW50KG1fd2lkZ2V0c1ByZXZlbnRpbmdCbGl0dGluZyk7Ci0jZW5k
aWYKLQogICAgIFdpZGdldDo6c2V0UGFyZW50KHBhcmVudFZpZXcpOwogCiAgICAgaWYgKG1fc2Ny
b2xsYmFyc0F2b2lkaW5nUmVzaXplciAmJiBwYXJlbnQoKSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
cGxhdGZvcm0vU2Nyb2xsVmlldy5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmgKaW5k
ZXggY2E3MjkwMC4uYTcxNzNhNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxW
aWV3LmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmgKQEAgLTMxMiwxNiArMzEy
LDYgQEAgcHJpdmF0ZToKICAgICBOU1Njcm9sbFZpZXc8V2ViQ29yZUZyYW1lU2Nyb2xsVmlldz4q
IHNjcm9sbFZpZXcoKSBjb25zdDsKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oUVQpCi1wdWJsaWM6
Ci0gICAgdm9pZCBhZGp1c3RXaWRnZXRzUHJldmVudGluZ0JsaXR0aW5nQ291bnQoaW50IGRlbHRh
KTsKLXByaXZhdGU6Ci0gICAgYm9vbCByb290UHJldmVudHNCbGl0dGluZygpIGNvbnN0IHsgcmV0
dXJuIHJvb3QoKS0+bV93aWRnZXRzUHJldmVudGluZ0JsaXR0aW5nID4gMDsgfQotICAgIHVuc2ln
bmVkIG1fd2lkZ2V0c1ByZXZlbnRpbmdCbGl0dGluZzsKLSNlbHNlCi0gICAgYm9vbCByb290UHJl
dmVudHNCbGl0dGluZygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0jZW5kaWYKLQogI2lmIFBM
QVRGT1JNKEdUSykKIHB1YmxpYzoKICAgICB2b2lkIHNldEd0a0FkanVzdG1lbnRzKEd0a0FkanVz
dG1lbnQqIGhhZGosIEd0a0FkanVzdG1lbnQqIHZhZGopOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9w
bGF0Zm9ybS9xdC9TY3JvbGxWaWV3UXQuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9xdC9TY3JvbGxW
aWV3UXQuY3BwCmluZGV4IGNjYmQ3NTEuLjE3YWQyNTMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxh
dGZvcm0vcXQvU2Nyb2xsVmlld1F0LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL3F0L1Njcm9s
bFZpZXdRdC5jcHAKQEAgLTM2LDMyICszNiwxOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHZv
aWQgU2Nyb2xsVmlldzo6cGxhdGZvcm1Jbml0KCkKIHsKLSAgICBtX3dpZGdldHNQcmV2ZW50aW5n
QmxpdHRpbmcgPSAwOwogfQogCiB2b2lkIFNjcm9sbFZpZXc6OnBsYXRmb3JtRGVzdHJveSgpCiB7
CiB9CiAKLS8vIFdpbmRvd2VkIHBsdWdpbnMgYXJlIHVzaW5nIG5hdGl2ZSB3aW5kb3dzIGFuZCBh
cmUgdGh1cyBwcmV2ZW50aW5nCi0vLyB1cyBmcm9tIGRvaW5nIGFueSBraW5kIG9mIHNjcm9sbGlu
ZyBvcHRpbWl6YXRpb24uCi0KLXZvaWQgU2Nyb2xsVmlldzo6YWRqdXN0V2lkZ2V0c1ByZXZlbnRp
bmdCbGl0dGluZ0NvdW50KGludCBkZWx0YSkKLXsKLSAgICBtX3dpZGdldHNQcmV2ZW50aW5nQmxp
dHRpbmcgKz0gZGVsdGE7Ci0gICAgaWYgKHBhcmVudCgpKQotICAgICAgICBwYXJlbnQoKS0+YWRq
dXN0V2lkZ2V0c1ByZXZlbnRpbmdCbGl0dGluZ0NvdW50KGRlbHRhKTsKLX0KLQogdm9pZCBTY3Jv
bGxWaWV3OjpwbGF0Zm9ybUFkZENoaWxkKFdpZGdldCopCiB7Ci0gICAgYWRqdXN0V2lkZ2V0c1By
ZXZlbnRpbmdCbGl0dGluZ0NvdW50KDEpOwogfQogCiB2b2lkIFNjcm9sbFZpZXc6OnBsYXRmb3Jt
UmVtb3ZlQ2hpbGQoV2lkZ2V0KiBjaGlsZCkKIHsKICAgICBjaGlsZC0+aGlkZSgpOwotICAgIGFk
anVzdFdpZGdldHNQcmV2ZW50aW5nQmxpdHRpbmdDb3VudCgtMSk7CiB9CiAKIH0KZGlmZiAtLWdp
dCBhL1dlYkNvcmUvcGx1Z2lucy9xdC9QbHVnaW5WaWV3UXQuY3BwIGIvV2ViQ29yZS9wbHVnaW5z
L3F0L1BsdWdpblZpZXdRdC5jcHAKaW5kZXggZmI4YmEwOC4uYTAzMTViZCAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9wbHVnaW5zL3F0L1BsdWdpblZpZXdRdC5jcHAKKysrIGIvV2ViQ29yZS9wbHVnaW5z
L3F0L1BsdWdpblZpZXdRdC5jcHAKQEAgLTEyNyw2ICsxMjcsMTAgQEAgdm9pZCBQbHVnaW5WaWV3
Ojp1cGRhdGVQbHVnaW5XaWRnZXQoKQogICAgIC8vIHNjcm9sbCwgd2UgbmVlZCB0byBtb3ZlL3Jl
c2l6ZSBpbW1lZGlhdGVseS4KICAgICBpZiAoIW1fd2luZG93UmVjdC5pbnRlcnNlY3RzKGZyYW1l
Vmlldy0+ZnJhbWVSZWN0KCkpKQogICAgICAgICBzZXROUFdpbmRvd0lmTmVlZGVkKCk7CisKKyAg
ICAvLyBNYWtlIHN1cmUgd2UgZ2V0IHJlcGFpbnRlZCBhZnRlcndhcmRzLiBUaGlzIGlzIG5lY2Vz
c2FyeSBmb3IgZG93bndhcmQKKyAgICAvLyBzY3JvbGxpbmcgdG8gbW92ZSB0aGUgcGx1Z2luIHdp
ZGdldCBwcm9wZXJseS4KKyAgICBpbnZhbGlkYXRlKCk7CiB9CiAKIHZvaWQgUGx1Z2luVmlldzo6
c2V0Rm9jdXMoKQpAQCAtNjQ0LDcgKzY0OCw4IEBAIE5QRXJyb3IgUGx1Z2luVmlldzo6Z2V0VmFs
dWUoTlBOVmFyaWFibGUgdmFyaWFibGUsIHZvaWQqIHZhbHVlKQogdm9pZCBQbHVnaW5WaWV3Ojpp
bnZhbGlkYXRlUmVjdChjb25zdCBJbnRSZWN0JiByZWN0KQogewogICAgIGlmIChtX2lzV2luZG93
ZWQpIHsKLSAgICAgICAgcGxhdGZvcm1XaWRnZXQoKS0+dXBkYXRlKHJlY3QpOworICAgICAgICBp
ZiAocGxhdGZvcm1XaWRnZXQoKSkKKyAgICAgICAgICAgIHBsYXRmb3JtV2lkZ2V0KCktPnVwZGF0
ZShyZWN0KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9v
bHMvQ2hhbmdlTG9nIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCmluZGV4IDhlYWY0NTUuLjc1MDQ4
M2UgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZworKysgYi9XZWJLaXRUb29scy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMC0wMS0xMSAgQW5kcmVhcyBLbGluZyAgPGFu
ZHJlYXMua2xpbmdAbm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFtRdF0gQWRkIGFuICJhbGllbl9RTGFiZWwiIGNsYXNzSWQgZm9yIG1h
bnVhbCB0ZXN0aW5nIG9mIGFsaWVuIHdpZGdldHMuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMzMzczCisKKyAgICAgICAgKiBRdExhdW5jaGVyL21h
aW4uY3BwOgorICAgICAgICAoV2ViUGFnZTo6Y3JlYXRlUGx1Z2luKToKKwogMjAxMC0wMS0xMCAg
QWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFJ1YmJlciBzdGFtcGVk
IGJ5IERhdmlkIEtpbHplci4KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1F0TGF1bmNoZXIvbWFp
bi5jcHAgYi9XZWJLaXRUb29scy9RdExhdW5jaGVyL21haW4uY3BwCmluZGV4IGRkZjg3MjkuLjMw
ZmE3OWYgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1F0TGF1bmNoZXIvbWFpbi5jcHAKKysrIGIv
V2ViS2l0VG9vbHMvUXRMYXVuY2hlci9tYWluLmNwcApAQCAtNjUxLDYgKzY1MSwxMyBAQCBRT2Jq
ZWN0KiBXZWJQYWdlOjpjcmVhdGVQbHVnaW4oY29uc3QgUVN0cmluZyAmY2xhc3NJZCwgY29uc3Qg
UVVybCAmdXJsLCBjb25zdCBRUwogICAgIFFfVU5VU0VEKHVybCk7CiAgICAgUV9VTlVTRUQocGFy
YW1OYW1lcyk7CiAgICAgUV9VTlVTRUQocGFyYW1WYWx1ZXMpOworCisgICAgaWYgKGNsYXNzSWQg
PT0gImFsaWVuX1FMYWJlbCIpIHsKKyAgICAgICAgUUxhYmVsICpsID0gbmV3IFFMYWJlbDsKKyAg
ICAgICAgKHZvaWQpIGwtPndpbklkKCk7CisgICAgICAgIHJldHVybiBsOworICAgIH0KKwogI2lm
bmRlZiBRVF9OT19VSVRPT0xTCiAgICAgUVVpTG9hZGVyIGxvYWRlcjsKICAgICByZXR1cm4gbG9h
ZGVyLmNyZWF0ZVdpZGdldChjbGFzc0lkLCB2aWV3KCkpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>46285</attachid>
            <date>2010-01-11 09:48:09 -0800</date>
            <delta_ts>2010-01-14 04:15:13 -0800</delta_ts>
            <desc>Same patch, style complaints addressed</desc>
            <filename>bug-33373.diff</filename>
            <type>text/plain</type>
            <size>6925</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZDU1NjBkMC4uOTM2NTNjNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxMC0wMS0xMSAgQW5kcmVhcyBLbGlu
ZyAgPGFuZHJlYXMua2xpbmdAbm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFtRdF0gRW5hYmxlIHNjcm9sbGluZyBvcHRpbWl6YXRpb24g
Zm9yIHBhZ2VzIHdpdGggZW1iZWRkZWQgd2lkZ2V0cworCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMzM3MworCisgICAgICAgIEFkZGVkIGEgYmFzaWMg
bWFudWFsIHRlc3QgZm9yIHNjcm9sbGluZyBvZiBlbWJlZGRlZCBRV2lkZ2V0cy4KKworICAgICAg
ICAqIG1hbnVhbC10ZXN0cy9xdC9xdHBsdWdpbi1zY3JvbGxpbmcuaHRtbDogQWRkZWQuCisgICAg
ICAgICogcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxW
aWV3OjpzY3JvbGxDb250ZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3OjpzZXRQ
YXJlbnQpOgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbFZpZXcuaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9xdC9TY3JvbGxWaWV3UXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6
cGxhdGZvcm1Jbml0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnBsYXRmb3JtQWRk
Q2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6cGxhdGZvcm1SZW1vdmVDaGls
ZCk6CisgICAgICAgICogcGx1Z2lucy9xdC9QbHVnaW5WaWV3UXQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UGx1Z2luVmlldzo6dXBkYXRlUGx1Z2luV2lkZ2V0KToKKyAgICAgICAgKFdlYkNvcmU6
OlBsdWdpblZpZXc6OmludmFsaWRhdGVSZWN0KToKKwogMjAxMC0wMS0xMSAgSm9hbm1hcmllIERp
Z2dzICA8am9hbm1hcmllLmRpZ2dzQGdtYWlsLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBY
YW4gTG9wZXouCmRpZmYgLS1naXQgYS9XZWJDb3JlL21hbnVhbC10ZXN0cy9xdC9xdHBsdWdpbi1z
Y3JvbGxpbmcuaHRtbCBiL1dlYkNvcmUvbWFudWFsLXRlc3RzL3F0L3F0cGx1Z2luLXNjcm9sbGlu
Zy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg1MDM4MzIKLS0tIC9k
ZXYvbnVsbAorKysgYi9XZWJDb3JlL21hbnVhbC10ZXN0cy9xdC9xdHBsdWdpbi1zY3JvbGxpbmcu
aHRtbApAQCAtMCwwICsxLDMyIEBACis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorICAgICNzcGFj
ZXIgeworICAgICAgICB3aWR0aDogMTAwJTsKKyAgICAgICAgaGVpZ2h0OiAxMDAwcHg7CisgICAg
ICAgIGJhY2tncm91bmQtY29sb3I6IHllbGxvdzsKKyAgICB9Cis8L3N0eWxlPgorPC9oZWFkPgor
PGJvZHk+CisKKzxwPgorICAgIFNjcm9sbCB0aGUgcGFnZSwgZW5zdXJlIHRoYXQgdGhlIHR3byBs
YWJlbHMgbW92ZSBuaWNlbHkgYWxvbmcgd2l0aCB0aGUgcmVzdCBvZiB0aGUgZG9jdW1lbnQuCis8
L3A+CisKKzxkaXY+Cis8b2JqZWN0IHR5cGU9ImFwcGxpY2F0aW9uL3gtcXQtcGx1Z2luIiBjbGFz
c2lkPSJhbGllbl9RTGFiZWwiIG5hbWU9ImxhYmVsMSIgaGVpZ2h0PSIzMCI+PC9vYmplY3Q+Cis8
L2Rpdj4KKworPGRpdj4KKzxvYmplY3QgdHlwZT0iYXBwbGljYXRpb24veC1xdC1wbHVnaW4iIGNs
YXNzaWQ9IlFMYWJlbCIgbmFtZT0ibGFiZWwyIiBoZWlnaHQ9IjMwIj48L29iamVjdD4KKzwvZGl2
PgorCis8ZGl2IGlkPSJzcGFjZXIiPjxwPiZuYnNwOzwvcD48L2Rpdj4KKworPHNjcmlwdD4KK2Rv
Y3VtZW50LmxhYmVsMS5zZXRUZXh0KCJMYWJlbCBvbmUiKTsKK2RvY3VtZW50LmxhYmVsMi5zZXRU
ZXh0KCJMYWJlbCB0d28iKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vU2Ny
b2xsVmlldy5jcHAKaW5kZXggMTM3OTI1Yi4uMGY2OTIwYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9w
bGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcu
Y3BwCkBAIC01MTMsNyArNTEzLDcgQEAgdm9pZCBTY3JvbGxWaWV3OjpzY3JvbGxDb250ZW50cyhj
b25zdCBJbnRTaXplJiBzY3JvbGxEZWx0YSkKICAgICAgICAgaG9zdFdpbmRvdygpLT5yZXBhaW50
KHBhblNjcm9sbEljb25EaXJ0eVJlY3QsIHRydWUpOwogICAgIH0KIAotICAgIGlmIChjYW5CbGl0
T25TY3JvbGwoKSAmJiAhcm9vdFByZXZlbnRzQmxpdHRpbmcoKSkgeyAvLyBUaGUgbWFpbiBmcmFt
ZSBjYW4ganVzdCBibGl0IHRoZSBXZWJWaWV3IHdpbmRvdworICAgIGlmIChjYW5CbGl0T25TY3Jv
bGwoKSkgeyAvLyBUaGUgbWFpbiBmcmFtZSBjYW4ganVzdCBibGl0IHRoZSBXZWJWaWV3IHdpbmRv
dwogICAgICAgIC8vIEZJWE1FOiBGaW5kIGEgd2F5IHRvIGJsaXQgc3ViZnJhbWVzIHdpdGhvdXQg
YmxpdHRpbmcgb3ZlcmxhcHBpbmcgY29udGVudAogICAgICAgIGhvc3RXaW5kb3coKS0+c2Nyb2xs
KC1zY3JvbGxEZWx0YSwgc2Nyb2xsVmlld1JlY3QsIGNsaXBSZWN0KTsKICAgICB9IGVsc2UgeyAK
QEAgLTYwMywxNCArNjAzLDYgQEAgdm9pZCBTY3JvbGxWaWV3OjpzZXRQYXJlbnQoU2Nyb2xsVmll
dyogcGFyZW50VmlldykKICAgICBpZiAobV9zY3JvbGxiYXJzQXZvaWRpbmdSZXNpemVyICYmIHBh
cmVudCgpKQogICAgICAgICBwYXJlbnQoKS0+YWRqdXN0U2Nyb2xsYmFyc0F2b2lkaW5nUmVzaXpl
ckNvdW50KC1tX3Njcm9sbGJhcnNBdm9pZGluZ1Jlc2l6ZXIpOwogCi0jaWYgUExBVEZPUk0oUVQp
Ci0gICAgaWYgKG1fd2lkZ2V0c1ByZXZlbnRpbmdCbGl0dGluZyAmJiBwYXJlbnQoKSkKLSAgICAg
ICAgcGFyZW50KCktPmFkanVzdFdpZGdldHNQcmV2ZW50aW5nQmxpdHRpbmdDb3VudCgtbV93aWRn
ZXRzUHJldmVudGluZ0JsaXR0aW5nKTsKLQotICAgIGlmIChtX3dpZGdldHNQcmV2ZW50aW5nQmxp
dHRpbmcgJiYgcGFyZW50VmlldykKLSAgICAgICAgcGFyZW50Vmlldy0+YWRqdXN0V2lkZ2V0c1By
ZXZlbnRpbmdCbGl0dGluZ0NvdW50KG1fd2lkZ2V0c1ByZXZlbnRpbmdCbGl0dGluZyk7Ci0jZW5k
aWYKLQogICAgIFdpZGdldDo6c2V0UGFyZW50KHBhcmVudFZpZXcpOwogCiAgICAgaWYgKG1fc2Ny
b2xsYmFyc0F2b2lkaW5nUmVzaXplciAmJiBwYXJlbnQoKSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
cGxhdGZvcm0vU2Nyb2xsVmlldy5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmgKaW5k
ZXggY2E3MjkwMC4uYTcxNzNhNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxW
aWV3LmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmgKQEAgLTMxMiwxNiArMzEy
LDYgQEAgcHJpdmF0ZToKICAgICBOU1Njcm9sbFZpZXc8V2ViQ29yZUZyYW1lU2Nyb2xsVmlldz4q
IHNjcm9sbFZpZXcoKSBjb25zdDsKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oUVQpCi1wdWJsaWM6
Ci0gICAgdm9pZCBhZGp1c3RXaWRnZXRzUHJldmVudGluZ0JsaXR0aW5nQ291bnQoaW50IGRlbHRh
KTsKLXByaXZhdGU6Ci0gICAgYm9vbCByb290UHJldmVudHNCbGl0dGluZygpIGNvbnN0IHsgcmV0
dXJuIHJvb3QoKS0+bV93aWRnZXRzUHJldmVudGluZ0JsaXR0aW5nID4gMDsgfQotICAgIHVuc2ln
bmVkIG1fd2lkZ2V0c1ByZXZlbnRpbmdCbGl0dGluZzsKLSNlbHNlCi0gICAgYm9vbCByb290UHJl
dmVudHNCbGl0dGluZygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0jZW5kaWYKLQogI2lmIFBM
QVRGT1JNKEdUSykKIHB1YmxpYzoKICAgICB2b2lkIHNldEd0a0FkanVzdG1lbnRzKEd0a0FkanVz
dG1lbnQqIGhhZGosIEd0a0FkanVzdG1lbnQqIHZhZGopOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9w
bGF0Zm9ybS9xdC9TY3JvbGxWaWV3UXQuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9xdC9TY3JvbGxW
aWV3UXQuY3BwCmluZGV4IGNjYmQ3NTEuLjE3YWQyNTMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxh
dGZvcm0vcXQvU2Nyb2xsVmlld1F0LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL3F0L1Njcm9s
bFZpZXdRdC5jcHAKQEAgLTM2LDMyICszNiwxOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHZv
aWQgU2Nyb2xsVmlldzo6cGxhdGZvcm1Jbml0KCkKIHsKLSAgICBtX3dpZGdldHNQcmV2ZW50aW5n
QmxpdHRpbmcgPSAwOwogfQogCiB2b2lkIFNjcm9sbFZpZXc6OnBsYXRmb3JtRGVzdHJveSgpCiB7
CiB9CiAKLS8vIFdpbmRvd2VkIHBsdWdpbnMgYXJlIHVzaW5nIG5hdGl2ZSB3aW5kb3dzIGFuZCBh
cmUgdGh1cyBwcmV2ZW50aW5nCi0vLyB1cyBmcm9tIGRvaW5nIGFueSBraW5kIG9mIHNjcm9sbGlu
ZyBvcHRpbWl6YXRpb24uCi0KLXZvaWQgU2Nyb2xsVmlldzo6YWRqdXN0V2lkZ2V0c1ByZXZlbnRp
bmdCbGl0dGluZ0NvdW50KGludCBkZWx0YSkKLXsKLSAgICBtX3dpZGdldHNQcmV2ZW50aW5nQmxp
dHRpbmcgKz0gZGVsdGE7Ci0gICAgaWYgKHBhcmVudCgpKQotICAgICAgICBwYXJlbnQoKS0+YWRq
dXN0V2lkZ2V0c1ByZXZlbnRpbmdCbGl0dGluZ0NvdW50KGRlbHRhKTsKLX0KLQogdm9pZCBTY3Jv
bGxWaWV3OjpwbGF0Zm9ybUFkZENoaWxkKFdpZGdldCopCiB7Ci0gICAgYWRqdXN0V2lkZ2V0c1By
ZXZlbnRpbmdCbGl0dGluZ0NvdW50KDEpOwogfQogCiB2b2lkIFNjcm9sbFZpZXc6OnBsYXRmb3Jt
UmVtb3ZlQ2hpbGQoV2lkZ2V0KiBjaGlsZCkKIHsKICAgICBjaGlsZC0+aGlkZSgpOwotICAgIGFk
anVzdFdpZGdldHNQcmV2ZW50aW5nQmxpdHRpbmdDb3VudCgtMSk7CiB9CiAKIH0KZGlmZiAtLWdp
dCBhL1dlYkNvcmUvcGx1Z2lucy9xdC9QbHVnaW5WaWV3UXQuY3BwIGIvV2ViQ29yZS9wbHVnaW5z
L3F0L1BsdWdpblZpZXdRdC5jcHAKaW5kZXggZmI4YmEwOC4uYTAzMTViZCAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9wbHVnaW5zL3F0L1BsdWdpblZpZXdRdC5jcHAKKysrIGIvV2ViQ29yZS9wbHVnaW5z
L3F0L1BsdWdpblZpZXdRdC5jcHAKQEAgLTEyNyw2ICsxMjcsMTAgQEAgdm9pZCBQbHVnaW5WaWV3
Ojp1cGRhdGVQbHVnaW5XaWRnZXQoKQogICAgIC8vIHNjcm9sbCwgd2UgbmVlZCB0byBtb3ZlL3Jl
c2l6ZSBpbW1lZGlhdGVseS4KICAgICBpZiAoIW1fd2luZG93UmVjdC5pbnRlcnNlY3RzKGZyYW1l
Vmlldy0+ZnJhbWVSZWN0KCkpKQogICAgICAgICBzZXROUFdpbmRvd0lmTmVlZGVkKCk7CisKKyAg
ICAvLyBNYWtlIHN1cmUgd2UgZ2V0IHJlcGFpbnRlZCBhZnRlcndhcmRzLiBUaGlzIGlzIG5lY2Vz
c2FyeSBmb3IgZG93bndhcmQKKyAgICAvLyBzY3JvbGxpbmcgdG8gbW92ZSB0aGUgcGx1Z2luIHdp
ZGdldCBwcm9wZXJseS4KKyAgICBpbnZhbGlkYXRlKCk7CiB9CiAKIHZvaWQgUGx1Z2luVmlldzo6
c2V0Rm9jdXMoKQpAQCAtNjQ0LDcgKzY0OCw4IEBAIE5QRXJyb3IgUGx1Z2luVmlldzo6Z2V0VmFs
dWUoTlBOVmFyaWFibGUgdmFyaWFibGUsIHZvaWQqIHZhbHVlKQogdm9pZCBQbHVnaW5WaWV3Ojpp
bnZhbGlkYXRlUmVjdChjb25zdCBJbnRSZWN0JiByZWN0KQogewogICAgIGlmIChtX2lzV2luZG93
ZWQpIHsKLSAgICAgICAgcGxhdGZvcm1XaWRnZXQoKS0+dXBkYXRlKHJlY3QpOworICAgICAgICBp
ZiAocGxhdGZvcm1XaWRnZXQoKSkKKyAgICAgICAgICAgIHBsYXRmb3JtV2lkZ2V0KCktPnVwZGF0
ZShyZWN0KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9v
bHMvQ2hhbmdlTG9nIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCmluZGV4IDhlYWY0NTUuLjc1MDQ4
M2UgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZworKysgYi9XZWJLaXRUb29scy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMC0wMS0xMSAgQW5kcmVhcyBLbGluZyAgPGFu
ZHJlYXMua2xpbmdAbm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFtRdF0gQWRkIGFuICJhbGllbl9RTGFiZWwiIGNsYXNzSWQgZm9yIG1h
bnVhbCB0ZXN0aW5nIG9mIGFsaWVuIHdpZGdldHMuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMzMzczCisKKyAgICAgICAgKiBRdExhdW5jaGVyL21h
aW4uY3BwOgorICAgICAgICAoV2ViUGFnZTo6Y3JlYXRlUGx1Z2luKToKKwogMjAxMC0wMS0xMCAg
QWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFJ1YmJlciBzdGFtcGVk
IGJ5IERhdmlkIEtpbHplci4KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1F0TGF1bmNoZXIvbWFp
bi5jcHAgYi9XZWJLaXRUb29scy9RdExhdW5jaGVyL21haW4uY3BwCmluZGV4IGRkZjg3MjkuLjMw
ZmE3OWYgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1F0TGF1bmNoZXIvbWFpbi5jcHAKKysrIGIv
V2ViS2l0VG9vbHMvUXRMYXVuY2hlci9tYWluLmNwcApAQCAtNjUxLDYgKzY1MSwxMyBAQCBRT2Jq
ZWN0KiBXZWJQYWdlOjpjcmVhdGVQbHVnaW4oY29uc3QgUVN0cmluZyAmY2xhc3NJZCwgY29uc3Qg
UVVybCAmdXJsLCBjb25zdCBRUwogICAgIFFfVU5VU0VEKHVybCk7CiAgICAgUV9VTlVTRUQocGFy
YW1OYW1lcyk7CiAgICAgUV9VTlVTRUQocGFyYW1WYWx1ZXMpOworCisgICAgaWYgKGNsYXNzSWQg
PT0gImFsaWVuX1FMYWJlbCIpIHsKKyAgICAgICAgUUxhYmVsKiBsID0gbmV3IFFMYWJlbDsKKyAg
ICAgICAgbC0+d2luSWQoKTsKKyAgICAgICAgcmV0dXJuIGw7CisgICAgfQorCiAjaWZuZGVmIFFU
X05PX1VJVE9PTFMKICAgICBRVWlMb2FkZXIgbG9hZGVyOwogICAgIHJldHVybiBsb2FkZXIuY3Jl
YXRlV2lkZ2V0KGNsYXNzSWQsIHZpZXcoKSk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>