<?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>86284</bug_id>
          
          <creation_ts>2012-05-12 01:08:22 -0700</creation_ts>
          <short_desc>[Gtk][LayoutTests] Repaint the complete WebKitWebView before dumping pixel results</short_desc>
          <delta_ts>2019-09-09 10:55:46 -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>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Zan Dobersek">zan</reporter>
          <assigned_to name="Zan Dobersek">zan</assigned_to>
          <cc>abucur</cc>
    
    <cc>alex</cc>
    
    <cc>d-r</cc>
    
    <cc>mrobinson</cc>
    
    <cc>pnormand</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>622269</commentid>
    <comment_count>0</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2012-05-12 01:08:22 -0700</bug_when>
    <thetext>Currently some reftests fail (some consistently, some randomly) because of changes being made that have a visual impact are not immediately visible. In some tests, after these changes are committed, layoutTestController.notifyDone() is called, moving the test process straight do dumping the results, not giving the web view enough time to update these changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>622277</commentid>
    <comment_count>1</comment_count>
      <attachid>141557</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2012-05-12 01:22:47 -0700</bug_when>
    <thetext>Created attachment 141557
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>622368</commentid>
    <comment_count>2</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-05-12 08:58:18 -0700</bug_when>
    <thetext>The harness already spins the main loop for a bit before dumping. Theoretically this should  cause the WebView to repaint if there are any pending paints. I&apos;m worried that this is hiding a real bug by forcing the repaint.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>622381</commentid>
    <comment_count>3</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2012-05-12 09:59:43 -0700</bug_when>
    <thetext>The problem here - I think - is the ChromeClient::paint. It paints into the backing store at around 60 frames per second which sometimes results in changes that were made not being visually visible in the pixel output.

For example, in the fast/css/tab-size.html reftest, the last part of that test[1] sets the tab size to 2 and the immediately calls notifyDone[2]. In the dump()[3] method the main loop only seems to be spun if dumping the render tree. But spinning the loop while events are pending even if calling gtk_widget_queue_draw before that doesn&apos;t help with the main problem, and to my understanding it&apos;s because calling that Gtk method only sends an expose event which is handled in webkit_web_view_expose_event if using the gtk2 API. If calling gtk_widget_draw on the WebView (which is actually how the pixel results are gathered), the process is similar - in webkit_web_view_draw we draw whatever is in the backing store into the passed-in Cairo context.

But the problem is that that backing store is not up-to-date - there are possibly visible changes pending for the timer to fire so the dirty rects can be updated in the backing store.

1: http://trac.webkit.org/browser/trunk/LayoutTests/fast/css/tab-size.html#L33
2: http://trac.webkit.org/browser/trunk/Tools/DumpRenderTree/gtk/LayoutTestControllerGtk.cpp#L185
3: http://trac.webkit.org/browser/trunk/Tools/DumpRenderTree/gtk/DumpRenderTree.cpp#L509</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>622382</commentid>
    <comment_count>4</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-05-12 10:06:17 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; The problem here - I think - is the ChromeClient::paint. It paints into the backing store at around 60 frames per second which sometimes results in changes that were made not being visually visible in the pixel output.

I think I understand what you&apos;re getting at now. Perhaps the solution  is to disable the repaint throttle for the layout tests? Can you confirm that just removing the throttle manually fixes all the issues?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>622386</commentid>
    <comment_count>5</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2012-05-12 10:35:28 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; &gt; The problem here - I think - is the ChromeClient::paint. It paints into the backing store at around 60 frames per second which sometimes results in changes that were made not being visually visible in the pixel output.
&gt; 
&gt; I think I understand what you&apos;re getting at now. Perhaps the solution  is to disable the repaint throttle for the layout tests? Can you confirm that just removing the throttle manually fixes all the issues?

No, unfortunately it doesn&apos;t. Completely removing the throttle and calling ChromeClient::paint whenever there&apos;s nothing more important on the loop (i.e. calling m_displayTimer.startOneShot(0) at the end of ChromeClient::paint) just hogs the DumpRenderTree program.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>622388</commentid>
    <comment_count>6</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-05-12 10:48:47 -0700</bug_when>
    <thetext>(In reply to comment #5)

&gt; No, unfortunately it doesn&apos;t. Completely removing the throttle and calling ChromeClient::paint whenever there&apos;s nothing more important on the loop (i.e. calling m_displayTimer.startOneShot(0) at the end of ChromeClient::paint) just hogs the DumpRenderTree program.

I&apos;m not sure that you&apos;d want to call m_displayTimer.startOneShot(0) ever from ChromeClient::paint. That seems like it would indeed starve the main loop, because relayouts / repaints are expensive. Instead maybe just removing the repaint throttle and spinning the main loop for reftests is enough. Perhaps I&apos;m misunderstanding this whole situation though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>622398</commentid>
    <comment_count>7</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2012-05-12 11:28:11 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; I&apos;m not sure that you&apos;d want to call m_displayTimer.startOneShot(0) ever from ChromeClient::paint. That seems like it would indeed starve the main loop, because relayouts / repaints are expensive. Instead maybe just removing the repaint throttle and spinning the main loop for reftests is enough. Perhaps I&apos;m misunderstanding this whole situation though.

No, just removing the repaint throttle wouldn&apos;t help either because ChromeClient::paint would still have to be called between LayoutTestController::notifyDone() and gtk_widget_draw() in PixelDumpSupportGtk.cpp to get the backing store updated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>622847</commentid>
    <comment_count>8</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2012-05-14 04:58:18 -0700</bug_when>
    <thetext>I&apos;ve investigated a bit more why the call to ChromeClient::paint (i.e. the display timer being fired) won&apos;t occur when spinning the main loop. It turns out that because of some odd and unknown reason the shared timer for the main thread gets stopped, not firing WebCore timers anymore. As far as it is annoying I don&apos;t think it should be an obstacle.

I&apos;m again leaning towards doing a forced paint before dumping the pixel results, but this time without updating the complete backing store but only the regions that were marked dirty until that moment. Given that in WebCore visual changes are synchronously producing dirty regions which are to be repainted, I don&apos;t think there would be any problem in that.

Another problem I&apos;ve encountered is that probably the preferred way of either solution would be done through DumpRenderTreeSupport class, but including ChromeClientGtk.h in DumpRenderTreeSupportGtk.cpp causes name conflicts as it seems that xlib headers are included via the inclusion of FrameLoaderClientGtk.h. That&apos;s unfortunate and also the reason the current patch implements this through a private function in webkitwebview.cpp.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>622995</commentid>
    <comment_count>9</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-05-14 08:19:37 -0700</bug_when>
    <thetext>Thanks for looking at this. From what I understand, Alex was/is writing a patch that replaces the shared timer with a higher priority GLib timer. Perhaps that would solve most of the problems here. 

Take a look at my patch here: https://bugs.webkit.org/attachment.cgi?id=141086&amp;action=prettypatch for how to deal with the name conflicts. Specifically search for &quot;#undef&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>623074</commentid>
    <comment_count>10</comment_count>
      <attachid>141747</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2012-05-14 10:17:35 -0700</bug_when>
    <thetext>Created attachment 141747
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>623077</commentid>
    <comment_count>11</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2012-05-14 10:22:15 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; Created an attachment (id=141747) [details]
&gt; Patch

Bypasses the compilation issues by removing the use of WebKit::FrameLoaderClient and using the kit() function instead (which uses the WebKit::FrameLoaderClient in the same way itself).

Otherwise this is still pushing for the instant and forced repaint, but now only of the regions that are marked dirty, not the complete backing store.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>629867</commentid>
    <comment_count>12</comment_count>
      <attachid>141747</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-05-21 19:32:28 -0700</bug_when>
    <thetext>Comment on attachment 141747
Patch

Okay. Let&apos;s give this a try.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>630218</commentid>
    <comment_count>13</comment_count>
      <attachid>141747</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2012-05-22 04:20:56 -0700</bug_when>
    <thetext>Comment on attachment 141747
Patch

Clearing flags on attachment: 141747

Committed r117947: &lt;http://trac.webkit.org/changeset/117947&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>630227</commentid>
    <comment_count>14</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2012-05-22 04:27:12 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; (From update of attachment 141747 [details])
&gt; Clearing flags on attachment: 141747
&gt; 
&gt; Committed r117947: &lt;http://trac.webkit.org/changeset/117947&gt;

I&apos;ll wait for the bots to process this commit to see if there are any regressions. After that I&apos;ll remove expectations for tests that now hopefully pass. If that goes well I&apos;ll close this bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>630256</commentid>
    <comment_count>15</comment_count>
    <who name="Dominik Röttsches (drott)">d-r</who>
    <bug_when>2012-05-22 04:58:07 -0700</bug_when>
    <thetext>Zan, there are some related cases in bug 73409. Do you have these?

I am not sure these reftest are designed 100% correctly. They work like repaint tests in fact. And for repaint tests Nikolas developed a harness to force a layout and call &quot;display()&quot;. When we add this harness to those reftests (at least the ones mentioned in 73409, it worked as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>630296</commentid>
    <comment_count>16</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2012-05-22 05:50:20 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; Zan, there are some related cases in bug 73409. Do you have these?
&gt; 
&gt; I am not sure these reftest are designed 100% correctly. They work like repaint tests in fact. And for repaint tests Nikolas developed a harness to force a layout and call &quot;display()&quot;. When we add this harness to those reftests (at least the ones mentioned in 73409, it worked as well.

Two of those three tests pass now, I&apos;ll remove their test expectations. Still failing is fast/forms/textarea-placeholder-set-attribute.html. Loading it manually the &apos;Placeholder&apos; text at first is not visible but that changes when I hover over the textarea. This seems as another, unrelated bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>630435</commentid>
    <comment_count>17</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2012-05-22 09:16:22 -0700</bug_when>
    <thetext>Committed r117983: &lt;http://trac.webkit.org/changeset/117983&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>735860</commentid>
    <comment_count>18</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2012-10-05 12:09:58 -0700</bug_when>
    <thetext>... and closing.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>141557</attachid>
            <date>2012-05-12 01:22:47 -0700</date>
            <delta_ts>2012-05-14 10:17:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86284-20120512102245.patch</filename>
            <type>text/plain</type>
            <size>7206</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2ODM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0
ay9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggZmE2OWJhYzhj
MjQyNTIwZjY2MDU3MzJlNmE2NzA5ZGQzZWQ5YjNjYy4uNWVjNzM1NjdkMjJlZTkyZjkzYjJmZjQ5
ODBlNWJhNWRhZTBlYTVhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEy
LTA1LTEyICBaYW4gRG9iZXJzZWsgIDx6YW5kb2JlcnNla0BnbWFpbC5jb20+CisKKyAgICAgICAg
W0d0a11bTGF5b3V0VGVzdHNdIFJlcGFpbnQgdGhlIGNvbXBsZXRlIFdlYktpdFdlYlZpZXcgYmVm
b3JlIGR1bXBpbmcgcGl4ZWwgcmVzdWx0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9ODYyODQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBZGQgYSBmdW5jdGlvbiB0byB0aGUgQ2hyb21lQ2xpZW50IHRoYXQg
ZG9lcyBhIGZvcmNlZCByZXBhaW50IG9mIHRoZQorICAgICAgICBjb21wbGV0ZSBiYWNraW5nIHN0
b3JlIHdoZW4gY2FsbGVkLgorCisgICAgICAgIEFkZCBhIHByaXZhdGUgZnVuY3Rpb24gdGhhdCBy
ZXBhaW50cyB0aGUgV2ViS2l0V2ViVmlldyBieSBjYWxsaW5nIHRoZQorICAgICAgICBuZXcgcmVw
YWludC1mb3JjaW5nIGZ1bmN0aW9uIGluIENocm9tZUNsaWVudC4KKworICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNs
aWVudDo6Q2hyb21lQ2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50Ojpmb3Jj
ZUNvbXBsZXRlUmVwYWludCk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpD
aHJvbWVDbGllbnQ6OnBhaW50KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRHdGsuaDoKKyAgICAgICAgKENocm9tZUNsaWVudCk6CisgICAgICAgICogd2Via2l0L3dlYmtp
dHdlYnZpZXcuY3BwOgorICAgICAgICAod2Via2l0X3dlYl92aWV3X2ZvcmNlX3JlcGFpbnQpOgor
ICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5oOgorCiAyMDEyLTA1LTExICBH
dXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxnbnNAZ25vbWUub3JnPgogCiAgICAgICAgIFJFR1JFU1NJ
T04ocjExNjIwNSk6IFtHVEtdOiBidWlsZCBubyBsb25nZXIgc3VwcG9ydHMgdGhpbiBhcmNoaXZl
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xp
ZW50R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVu
dEd0ay5jcHAKaW5kZXggMGYyN2IxNDI4MTA2MTE5OGM0YTk0N2ExMWRkNDcyZGUyZGZhMTM3Yi4u
NzJjNzM2MDhhYzU3MjQwMGVhNWFiYmE5MTUyMTM1ODdjZmZkNGEzMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwCkBAIC04
NSw2ICs4NSw3IEBAIENocm9tZUNsaWVudDo6Q2hyb21lQ2xpZW50KFdlYktpdFdlYlZpZXcqIHdl
YlZpZXcpCiAgICAgLCBtX2FkanVzdG1lbnRXYXRjaGVyKHdlYlZpZXcpCiAgICAgLCBtX2Nsb3Nl
U29vblRpbWVyKDApCiAgICAgLCBtX2Rpc3BsYXlUaW1lcih0aGlzLCAmQ2hyb21lQ2xpZW50Ojpw
YWludCkKKyAgICAsIG1fZm9yY2VSZXBhaW50KGZhbHNlKQogICAgICwgbV9sYXN0RGlzcGxheVRp
bWUoMCkKICAgICAsIG1fcmVwYWludFNvb25Tb3VyY2VJZCgwKQogewpAQCAtNTYwLDEzICs1NjEs
MjEgQEAgdm9pZCBDaHJvbWVDbGllbnQ6OnBlcmZvcm1BbGxQZW5kaW5nU2Nyb2xscygpCiAgICAg
bV9zY3JvbGxPZmZzZXRzLmNsZWFyKCk7CiB9CiAKK3ZvaWQgQ2hyb21lQ2xpZW50Ojpmb3JjZUNv
bXBsZXRlUmVwYWludCgpCit7CisgICAgbV9mb3JjZVJlcGFpbnQgPSB0cnVlOworICAgIGlmICht
X3dlYlZpZXctPnByaXYtPmJhY2tpbmdTdG9yZSkKKyAgICAgICAgbV9kaXJ0eVJlZ2lvbi51bml0
ZShJbnRSZWN0KEludFBvaW50KCksIG1fd2ViVmlldy0+cHJpdi0+YmFja2luZ1N0b3JlLT5zaXpl
KCkpKTsKKyAgICBwYWludCgwKTsKK30KKwogdm9pZCBDaHJvbWVDbGllbnQ6OnBhaW50KFdlYkNv
cmU6OlRpbWVyPENocm9tZUNsaWVudD4qKQogewogICAgIHN0YXRpYyBjb25zdCBkb3VibGUgbWlu
aW11bUZyYW1lSW50ZXJ2YWwgPSAxLjAgLyA2MC4wOyAvLyBObyBtb3JlIHRoYW4gNjAgZnJhbWVz
IGEgc2Vjb25kLgogICAgIGRvdWJsZSB0aW1lU2luY2VMYXN0RGlzcGxheSA9IGN1cnJlbnRUaW1l
KCkgLSBtX2xhc3REaXNwbGF5VGltZTsKICAgICBkb3VibGUgdGltZVVudGlsTmV4dERpc3BsYXkg
PSBtaW5pbXVtRnJhbWVJbnRlcnZhbCAtIHRpbWVTaW5jZUxhc3REaXNwbGF5OwogCi0gICAgaWYg
KHRpbWVVbnRpbE5leHREaXNwbGF5ID4gMCkgeworICAgIGlmICh0aW1lVW50aWxOZXh0RGlzcGxh
eSA+IDAgJiYgIW1fZm9yY2VSZXBhaW50KSB7CiAgICAgICAgIG1fZGlzcGxheVRpbWVyLnN0YXJ0
T25lU2hvdCh0aW1lVW50aWxOZXh0RGlzcGxheSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBA
IC01OTksNiArNjA4LDcgQEAgdm9pZCBDaHJvbWVDbGllbnQ6OnBhaW50KFdlYkNvcmU6OlRpbWVy
PENocm9tZUNsaWVudD4qKQogICAgIG1fZGlydHlSZWdpb24gPSBSZWdpb24oKTsKICAgICBtX2xh
c3REaXNwbGF5VGltZSA9IGN1cnJlbnRUaW1lKCk7CiAgICAgbV9yZXBhaW50U29vblNvdXJjZUlk
ID0gMDsKKyAgICBtX2ZvcmNlUmVwYWludCA9IGZhbHNlOwogCiAgICAgLy8gV2UgdXBkYXRlIHRo
ZSBJTSBjb250ZXh0IHdpbmRvdyBsb2NhdGlvbiBoZXJlLCBiZWNhdXNlIHdlIHdhbnQgaXQgdG8g
YmUKICAgICAvLyBzeW5jZWQgd2l0aCBjdXJzb3IgbW92ZW1lbnQuIEZvciBpbnN0YW5jZSwgYSB0
ZXh0IGZpZWxkIGNhbiBtb3ZlIHdpdGhvdXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3Rr
L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oIGIvU291cmNlL1dlYktpdC9ndGsvV2Vi
Q29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmgKaW5kZXggMjJiNTRmN2M3MjYxNGM2MGU3Y2Iy
NzM3MGQ3MjJmZTdkZDkxODMzZC4uOWYwYjk1NTg4OGQyM2I2ODI1ZWNkZDIyZGZiOGUyYTIxMmVi
MTAxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21l
Q2xpZW50R3RrLmgKKysrIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21l
Q2xpZW50R3RrLmgKQEAgLTE2NSw2ICsxNjUsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKICNlbmRp
ZiAKIAogICAgICAgICB2b2lkIHBlcmZvcm1BbGxQZW5kaW5nU2Nyb2xscygpOworICAgICAgICB2
b2lkIGZvcmNlQ29tcGxldGVSZXBhaW50KCk7CiAgICAgICAgIHZvaWQgcGFpbnQoVGltZXI8Q2hy
b21lQ2xpZW50PiopOwogICAgICAgICB2b2lkIHdpZGdldFNpemVDaGFuZ2VkKGNvbnN0IEludFNp
emUmIG9sZFdpZGdldFNpemUsIEludFNpemUgbmV3U2l6ZSk7CiAKQEAgLTE3NSw2ICsxNzYsNyBA
QCBuYW1lc3BhY2UgV2ViS2l0IHsKICAgICAgICAgdW5zaWduZWQgaW50IG1fY2xvc2VTb29uVGlt
ZXI7CiAKICAgICAgICAgVGltZXIgPENocm9tZUNsaWVudD4gbV9kaXNwbGF5VGltZXI7CisgICAg
ICAgIGJvb2wgbV9mb3JjZVJlcGFpbnQ7CiAgICAgICAgIFJlZ2lvbiBtX2RpcnR5UmVnaW9uOwog
ICAgICAgICBWZWN0b3I8SW50UmVjdD4gbV9yZWN0c1RvU2Nyb2xsOwogICAgICAgICBWZWN0b3I8
SW50U2l6ZT4gbV9zY3JvbGxPZmZzZXRzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsv
d2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtp
dHdlYnZpZXcuY3BwCmluZGV4IDMwMGVhOGM5OTU2OTVmMGY0MWVlYTVhMWQyM2Q1MDZjMTBjYTJh
MDkuLjY1NWQwYTEyOWQ5NjkzYjNjY2E4OWIzY2MwYWQwYjFlMzFiMjNjNGYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAKQEAgLTUyMzQsNiArNTIzNCwxMSBA
QCB2b2lkIHdlYmtpdFdlYlZpZXdSZWdpc3RlckZvckljb25Ob3RpZmljYXRpb24oV2ViS2l0V2Vi
Vmlldyogd2ViVmlldywgYm9vbCBzaG91bAogfQogI2VuZGlmCiAKK3ZvaWQgd2Via2l0X3dlYl92
aWV3X2ZvcmNlX3JlcGFpbnQoV2ViS2l0V2ViVmlldyogd2ViVmlldykKK3sKKyAgICBzdGF0aWNf
Y2FzdDxXZWJLaXQ6OkNocm9tZUNsaWVudCo+KGNvcmUod2ViVmlldyktPmNocm9tZSgpLT5jbGll
bnQoKSktPmZvcmNlQ29tcGxldGVSZXBhaW50KCk7Cit9CisKIG5hbWVzcGFjZSBXZWJLaXQgewog
CiBXZWJDb3JlOjpQYWdlKiBjb3JlKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlld3ByaXZhdGUuaCBiL1NvdXJj
ZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5oCmluZGV4IDBiYzVhNTZm
YWIwMzBlYjRhZTdiZTk4Y2NlY2Q4YWYyMDIxYWQxYjkuLmNjMDdjOWEzYmYwOWNiZGExYWU1YTgz
MWE4ZTVkNTMwZWZhNDMyYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93
ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJr
aXR3ZWJ2aWV3cHJpdmF0ZS5oCkBAIC0xMjgsNiArMTI4LDggQEAgdm9pZCB3ZWJWaWV3RXhpdEZ1
bGxzY3JlZW4oV2ViS2l0V2ViVmlldyogd2ViVmlldyk7CiB2b2lkIHdlYmtpdFdlYlZpZXdSZWdp
c3RlckZvckljb25Ob3RpZmljYXRpb24oV2ViS2l0V2ViVmlldyosIGJvb2wgc2hvdWxkUmVnaXN0
ZXIpOwogdm9pZCB3ZWJraXRXZWJWaWV3SWNvbkxvYWRlZChXZWJLaXRGYXZpY29uRGF0YWJhc2Uq
LCBjb25zdCBjaGFyKiBmcmFtZVVSSSwgV2ViS2l0V2ViVmlldyopOwogI2VuZGlmCisKK3ZvaWQg
d2Via2l0X3dlYl92aWV3X2ZvcmNlX3JlcGFpbnQoV2ViS2l0V2ViVmlldyopOwogfQogCiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAz
NjE3YmNmMjZhZThlNDM3NDY5Y2I4YjQxYzg4NTBiYWViMzA5ZjA5Li5jYmE0MzdhNzIwMWY5ZGY5
NDIyYzI5OWJhY2MwMDk1ZTRjNzVjODk2IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysr
IGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDUtMTIgIFphbiBEb2Jl
cnNlayAgPHphbmRvYmVyc2VrQGdtYWlsLmNvbT4KKworICAgICAgICBbR3RrXVtMYXlvdXRUZXN0
c10gUmVwYWludCB0aGUgY29tcGxldGUgV2ViS2l0V2ViVmlldyBiZWZvcmUgZHVtcGluZyBwaXhl
bCByZXN1bHRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD04NjI4NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEZvcmNlIGEgcmVwYWludCBvZiB0aGUgV2ViS2l0V2ViVmlldyBiZWZvcmUgZHVtcGluZyB0aGUg
cGl4ZWwgb3V0cHV0LgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZ3RrL0R1bXBSZW5kZXJU
cmVlLmNwcDoKKyAgICAgICAgKGR1bXApOgorCiAyMDEyLTA1LTExICBPamFuIFZhZmFpICA8b2ph
bkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQWRkIHByZXZpb3VzL25leHQgYnV0dG9ucyB0aGUg
Z2FyZGVuLW8tbWF0aWNzIHBlcmYgcGFuZWwKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2d0ay9EdW1wUmVuZGVyVHJlZS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvRHVt
cFJlbmRlclRyZWUuY3BwCmluZGV4IDY1MmM3MjhjZDBjNTlmNjU4MTQ1NDEzMTlhMTMyODM1YTFl
OTY5OTAuLjE0NmYzNGQ2MDk1YjA2ZjY3YTdkOTFiZDZjMzgyYjhhZTZmNDZjOWYgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9EdW1wUmVuZGVyVHJlZS5jcHAKKysrIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvZ3RrL0R1bXBSZW5kZXJUcmVlLmNwcApAQCAtNjksNiArNjksNyBA
QCBleHRlcm4gZ2Jvb2xlYW4gd2Via2l0X3dlYl9oaXN0b3J5X2l0ZW1faXNfdGFyZ2V0X2l0ZW0o
V2ViS2l0V2ViSGlzdG9yeUl0ZW0qKTsKIGV4dGVybiBHTGlzdCogd2Via2l0X3dlYl9oaXN0b3J5
X2l0ZW1fZ2V0X2NoaWxkcmVuKFdlYktpdFdlYkhpc3RvcnlJdGVtKik7CiBleHRlcm4gdm9pZCB3
ZWJraXRfd2ViX3NldHRpbmdzX2FkZF9leHRyYV9wbHVnaW5fZGlyZWN0b3J5KFdlYktpdFdlYlZp
ZXcqIHZpZXcsIGNvbnN0IGdjaGFyKiBkaXJlY3RvcnkpOwogZXh0ZXJuIGdjaGFyKiB3ZWJraXRf
d2ViX2ZyYW1lX2dldF9yZXNwb25zZV9taW1lX3R5cGUoV2ViS2l0V2ViRnJhbWUqIGZyYW1lKTsK
K2V4dGVybiB2b2lkIHdlYmtpdF93ZWJfdmlld19mb3JjZV9yZXBhaW50KFdlYktpdFdlYlZpZXcq
IHZpZXcpOwogfQogCiB2b2xhdGlsZSBib29sIGRvbmU7CkBAIC01NzEsOCArNTcyLDEwIEBAIHZv
aWQgZHVtcCgpCiAgICAgaWYgKGR1bXBQaXhlbHMKICAgICAgJiYgZ0xheW91dFRlc3RDb250cm9s
bGVyLT5nZW5lcmF0ZVBpeGVsUmVzdWx0cygpCiAgICAgICYmICFnTGF5b3V0VGVzdENvbnRyb2xs
ZXItPmR1bXBET01Bc1dlYkFyY2hpdmUoKQotICAgICAmJiAhZ0xheW91dFRlc3RDb250cm9sbGVy
LT5kdW1wU291cmNlQXNXZWJBcmNoaXZlKCkpCisgICAgICYmICFnTGF5b3V0VGVzdENvbnRyb2xs
ZXItPmR1bXBTb3VyY2VBc1dlYkFyY2hpdmUoKSkgeworICAgICAgICB3ZWJraXRfd2ViX3ZpZXdf
Zm9yY2VfcmVwYWludCh3ZWJWaWV3KTsKICAgICAgICAgZHVtcFdlYlZpZXdBc1BpeGVsc0FuZENv
bXBhcmVXaXRoRXhwZWN0ZWQoZ0xheW91dFRlc3RDb250cm9sbGVyLT5leHBlY3RlZFBpeGVsSGFz
aCgpKTsKKyAgICB9CiAKICAgICAvLyBGSVhNRTogY2FsbCBkaXNwbGF5V2ViVmlldyBoZXJlIHdo
ZW4gd2Ugc3VwcG9ydCAtLXBhaW50CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>141747</attachid>
            <date>2012-05-14 10:17:35 -0700</date>
            <delta_ts>2012-05-22 04:20:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86284-20120514191733.patch</filename>
            <type>text/plain</type>
            <size>8739</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2OTE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0
ay9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggZmE2OWJhYzhj
MjQyNTIwZjY2MDU3MzJlNmE2NzA5ZGQzZWQ5YjNjYy4uNzlkYzQyNWU3M2YxZDYyNzFmMDVkZTJm
MDMxMjkxYzdkN2NlM2YwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDEy
LTA1LTE0ICBaYW4gRG9iZXJzZWsgIDx6YW5kb2JlcnNla0BnbWFpbC5jb20+CisKKyAgICAgICAg
W0d0a11bTGF5b3V0VGVzdHNdIFJlcGFpbnQgdGhlIGNvbXBsZXRlIFdlYktpdFdlYlZpZXcgYmVm
b3JlIGR1bXBpbmcgcGl4ZWwgcmVzdWx0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9ODYyODQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBZGQgYW4gYWRkaXRpb25hbCBtZXRob2QgdG8gdGhlIENocm9tZUNs
aWVudCB0aHJvdWdoIHdoaWNoIGl0IGlzCisgICAgICAgIHBvc3NpYmxlIHRvIGJ5cGFzcyB0aGUg
cGFpbnRpbmcgdGltZXIgYW5kIGZvcmNlIGFuIGltbWVkaWF0ZSByZXBhaW50IG9mCisgICAgICAg
IHRoZSBjdXJyZW50IGRpcnR5IHJlZ2lvbnMuCisKKyAgICAgICAgQWRkIGEgbmV3IG1ldGhvZCB0
byBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsgY2xhc3MgdGhhdCBjYWxscyB0aGF0CisgICAgICAg
IG1ldGhvZCwgbWFraW5nIGl0IHBvc3NpYmxlIHRvIGZvcmNlIGFuIGluc3RhbnQgcGFpbnQgZnJv
bQorICAgICAgICBEdW1wUmVuZGVyVHJlZS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0No
cm9tZUNsaWVudEd0ay5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6Q2hyb21l
Q2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjpwYWludCk6IE9ubHkgZGVs
YXkgdGhlIHBhaW50aW5nIGlmIHRoZSBwYWludCBpcworICAgICAgICBub3QgZm9yY2VkLgorICAg
ICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OmZvcmNlUGFpbnQpOgorICAgICAgICAoV2ViS2l0
KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaDoKKyAgICAgICAg
KENocm9tZUNsaWVudCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVT
dXBwb3J0R3RrLmNwcDoKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6Z2V0RnJh
bWVDaGlsZHJlbik6IFJlZmFjdG9yIGdldEZyYW1lQ2hpbGRyZW4KKyAgICAgICAgdG8gdXNlIHRo
ZSBraXQoKSBmdW5jdGlvbiBvbiB0aGUgY29yZSBjaGlsZCBmcmFtZXMgcmF0aGVyIHRoYW4gdXNp
bmcKKyAgICAgICAgdGhlIEZyYW1lTG9hZGVyQ2xpZW50IG9mIHRoYXQgZnJhbWUsIHdoaWNoIGlz
IHdoYXQgdGhlIGtpdCgpIGZ1bmN0aW9uIGRvZXMgaW4gdGhlIGZpcnN0CisgICAgICAgIHBsYWNl
LiBUaGlzIG1ha2VzIGl0IHBvc3NpYmxlIHRvIHJlbW92ZSB0aGUgaW5jbHVzaW9uIG9mIHRoZSBG
cmFtZUxvYWRlckNsaWVudEd0ay5oCisgICAgICAgIGhlYWRlciB3aGljaCBjYXVzZXMgc3ltYm9s
IG5hbWUgY29uZmxpY3RzIHdoZW4gaW5jbHVkZWQgYWxvbmcgd2l0aCBDaHJvbWVDbGllbnRHdGsu
aAorICAgICAgICB0aGF0IG9yaWdpbmF0ZSBpbiB0aGUgWGxpYiBoZWFkZXJzIGluY2x1ZGVkIHRo
cm91Z2ggdGhlIGZvcm1lciBoZWFkZXIuCisgICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRH
dGs6OmZvcmNlV2ViVmlld1BhaW50KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVu
ZGVyVHJlZVN1cHBvcnRHdGsuaDoKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ayk6
CisKIDIwMTItMDUtMTEgIEd1c3Rhdm8gTm9yb25oYSBTaWx2YSAgPGduc0Bnbm9tZS5vcmc+CiAK
ICAgICAgICAgUkVHUkVTU0lPTihyMTE2MjA1KTogW0dUS106IGJ1aWxkIG5vIGxvbmdlciBzdXBw
b3J0cyB0aGluIGFyY2hpdmVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3Jl
U3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1
cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcAppbmRleCAwZjI3YjE0MjgxMDYxMTk4YzRhOTQ3YTEx
ZGQ0NzJkZTJkZmExMzdiLi42NTViZjc4N2JmOGEwZjYzZjM1MDRhOTlmY2I1ZjgzYjljNGJmMmNj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNs
aWVudEd0ay5jcHAKQEAgLTg1LDYgKzg1LDcgQEAgQ2hyb21lQ2xpZW50OjpDaHJvbWVDbGllbnQo
V2ViS2l0V2ViVmlldyogd2ViVmlldykKICAgICAsIG1fYWRqdXN0bWVudFdhdGNoZXIod2ViVmll
dykKICAgICAsIG1fY2xvc2VTb29uVGltZXIoMCkKICAgICAsIG1fZGlzcGxheVRpbWVyKHRoaXMs
ICZDaHJvbWVDbGllbnQ6OnBhaW50KQorICAgICwgbV9mb3JjZVBhaW50KGZhbHNlKQogICAgICwg
bV9sYXN0RGlzcGxheVRpbWUoMCkKICAgICAsIG1fcmVwYWludFNvb25Tb3VyY2VJZCgwKQogewpA
QCAtNTY2LDcgKzU2Nyw3IEBAIHZvaWQgQ2hyb21lQ2xpZW50OjpwYWludChXZWJDb3JlOjpUaW1l
cjxDaHJvbWVDbGllbnQ+KikKICAgICBkb3VibGUgdGltZVNpbmNlTGFzdERpc3BsYXkgPSBjdXJy
ZW50VGltZSgpIC0gbV9sYXN0RGlzcGxheVRpbWU7CiAgICAgZG91YmxlIHRpbWVVbnRpbE5leHRE
aXNwbGF5ID0gbWluaW11bUZyYW1lSW50ZXJ2YWwgLSB0aW1lU2luY2VMYXN0RGlzcGxheTsKIAot
ICAgIGlmICh0aW1lVW50aWxOZXh0RGlzcGxheSA+IDApIHsKKyAgICBpZiAodGltZVVudGlsTmV4
dERpc3BsYXkgPiAwICYmICFtX2ZvcmNlUGFpbnQpIHsKICAgICAgICAgbV9kaXNwbGF5VGltZXIu
c3RhcnRPbmVTaG90KHRpbWVVbnRpbE5leHREaXNwbGF5KTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KQEAgLTYwOCw2ICs2MDksMTMgQEAgdm9pZCBDaHJvbWVDbGllbnQ6OnBhaW50KFdlYkNvcmU6
OlRpbWVyPENocm9tZUNsaWVudD4qKQogICAgICAgICBtX3dlYlZpZXctPnByaXYtPmltRmlsdGVy
LnNldEN1cnNvclJlY3QoZnJhbWUtPnNlbGVjdGlvbigpLT5hYnNvbHV0ZUNhcmV0Qm91bmRzKCkp
OwogfQogCit2b2lkIENocm9tZUNsaWVudDo6Zm9yY2VQYWludCgpCit7CisgICAgbV9mb3JjZVBh
aW50ID0gdHJ1ZTsKKyAgICBwYWludCgwKTsKKyAgICBtX2ZvcmNlUGFpbnQgPSBmYWxzZTsKK30K
Kwogdm9pZCBDaHJvbWVDbGllbnQ6OmludmFsaWRhdGVSb290Vmlldyhjb25zdCBJbnRSZWN0Jiwg
Ym9vbCBpbW1lZGlhdGUpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJD
b3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oCmluZGV4IDIyYjU0ZjdjNzI2MTRjNjBlN2NiMjczNzBk
NzIyZmU3ZGQ5MTgzM2QuLmFhMDQ0YjdiYzYxZGIwNTMwOTY0ZWNmNzdlZjYzZWVjYjNkOGQ4YTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVu
dEd0ay5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVu
dEd0ay5oCkBAIC0xNjYsNiArMTY2LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKICAgICAgICAg
dm9pZCBwZXJmb3JtQWxsUGVuZGluZ1Njcm9sbHMoKTsKICAgICAgICAgdm9pZCBwYWludChUaW1l
cjxDaHJvbWVDbGllbnQ+Kik7CisgICAgICAgIHZvaWQgZm9yY2VQYWludCgpOwogICAgICAgICB2
b2lkIHdpZGdldFNpemVDaGFuZ2VkKGNvbnN0IEludFNpemUmIG9sZFdpZGdldFNpemUsIEludFNp
emUgbmV3U2l6ZSk7CiAKICAgICBwcml2YXRlOgpAQCAtMTc1LDYgKzE3Niw3IEBAIG5hbWVzcGFj
ZSBXZWJLaXQgewogICAgICAgICB1bnNpZ25lZCBpbnQgbV9jbG9zZVNvb25UaW1lcjsKIAogICAg
ICAgICBUaW1lciA8Q2hyb21lQ2xpZW50PiBtX2Rpc3BsYXlUaW1lcjsKKyAgICAgICAgYm9vbCBt
X2ZvcmNlUGFpbnQ7CiAgICAgICAgIFJlZ2lvbiBtX2RpcnR5UmVnaW9uOwogICAgICAgICBWZWN0
b3I8SW50UmVjdD4gbV9yZWN0c1RvU2Nyb2xsOwogICAgICAgICBWZWN0b3I8SW50U2l6ZT4gbV9z
Y3JvbGxPZmZzZXRzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBv
cnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNv
cmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAKaW5kZXggMDM4MjdiNGI3MTk0
OWQ2NWM5OGI0NTI4ZTY4NjZkZTZmMDdiMGE0Zi4uOTAxNzljODNmZWE4YjhmMTlkZDI4ZDVkYzVl
YWFmNTdjYzFjNTIzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBv
cnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9X
ZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwCkBAIC0yNywxMiArMjcs
MTMgQEAKICNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5T2JqZWN0LmgiCiAjaW5jbHVkZSAiQW5pbWF0
aW9uQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkNTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5o
IgorI2luY2x1ZGUgIkNocm9tZS5oIgorI2luY2x1ZGUgIkNocm9tZUNsaWVudEd0ay5oIgogI2lu
Y2x1ZGUgIkRPTVdyYXBwZXJXb3JsZC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVk
ZSAiRWRpdG9yQ2xpZW50R3RrLmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgogI2luY2x1ZGUgIkZv
Y3VzQ29udHJvbGxlci5oIgotI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50R3RrLmgiCiAjaW5j
bHVkZSAiRnJhbWVUcmVlLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiR0ND
b250cm9sbGVyLmgiCkBAIC0xMzIsMTAgKzEzMyw5IEBAIEdTTGlzdCogRHVtcFJlbmRlclRyZWVT
dXBwb3J0R3RrOjpnZXRGcmFtZUNoaWxkcmVuKFdlYktpdFdlYkZyYW1lKiBmcmFtZSkKIAogICAg
IEdTTGlzdCogY2hpbGRyZW4gPSAwOwogICAgIGZvciAoRnJhbWUqIGNoaWxkID0gY29yZUZyYW1l
LT50cmVlKCktPmZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPnRyZWUoKS0+bmV4
dFNpYmxpbmcoKSkgewotICAgICAgICBGcmFtZUxvYWRlciogbG9hZGVyID0gY2hpbGQtPmxvYWRl
cigpOwotICAgICAgICBXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50KiBjbGllbnQgPSBzdGF0aWNf
Y2FzdDxXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50Kj4obG9hZGVyLT5jbGllbnQoKSk7Ci0gICAg
ICAgIGlmIChjbGllbnQpCi0gICAgICAgICAgY2hpbGRyZW4gPSBnX3NsaXN0X2FwcGVuZChjaGls
ZHJlbiwgY2xpZW50LT53ZWJGcmFtZSgpKTsKKyAgICAgICAgV2ViS2l0V2ViRnJhbWUqIGtpdEZy
YW1lID0ga2l0KGNoaWxkKTsKKyAgICAgICAgaWYgKGtpdEZyYW1lKQorICAgICAgICAgIGNoaWxk
cmVuID0gZ19zbGlzdF9hcHBlbmQoY2hpbGRyZW4sIGtpdEZyYW1lKTsKICAgICB9CiAKICAgICBy
ZXR1cm4gY2hpbGRyZW47CkBAIC01ODcsNiArNTg3LDEzIEBAIHZvaWQgRHVtcFJlbmRlclRyZWVT
dXBwb3J0R3RrOjpzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoV2ViS2l0V2ViVmlldyogd2Vi
VmllCiAgICAgY2xpZW50LT5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoZW5hYmxlZCk7CiB9
CiAKK3ZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpmb3JjZVdlYlZpZXdQYWludChXZWJL
aXRXZWJWaWV3KiB3ZWJWaWV3KQoreworICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX1dF
Ql9WSUVXKHdlYlZpZXcpKTsKKworICAgIHN0YXRpY19jYXN0PFdlYktpdDo6Q2hyb21lQ2xpZW50
Kj4oY29yZSh3ZWJWaWV3KS0+Y2hyb21lKCktPmNsaWVudCgpKS0+Zm9yY2VQYWludCgpOworfQor
CiB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6d2hpdGVMaXN0QWNjZXNzRnJvbU9yaWdp
bihjb25zdCBnY2hhciogc291cmNlT3JpZ2luLCBjb25zdCBnY2hhciogZGVzdGluYXRpb25Qcm90
b2NvbCwgY29uc3QgZ2NoYXIqIGRlc3RpbmF0aW9uSG9zdCwgYm9vbCBhbGxvd0Rlc3RpbmF0aW9u
U3ViZG9tYWlucykKIHsKICAgICBTZWN1cml0eVBvbGljeTo6YWRkT3JpZ2luQWNjZXNzV2hpdGVs
aXN0RW50cnkoKlNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5nKHNvdXJjZU9yaWdpbiks
IGRlc3RpbmF0aW9uUHJvdG9jb2wsIGRlc3RpbmF0aW9uSG9zdCwgYWxsb3dEZXN0aW5hdGlvblN1
YmRvbWFpbnMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQv
RHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmggYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3Vw
cG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuaAppbmRleCBhMGZkMWE1NjdkZGNjOTIxN2E4
NTRhNTk3NDUyZmFjNzBmY2QzZjdkLi4yNjQ3NTE5ZGE1OWY5YWJlZGE3OGY0ODg4ZjAwY2IwMjU0
Y2M4YTZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1w
UmVuZGVyVHJlZVN1cHBvcnRHdGsuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3Vw
cG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuaApAQCAtOTIsNiArOTIsNyBAQCBwdWJsaWM6
CiAgICAgc3RhdGljIHZvaWQgc2NhbGVQYWdlQnkoV2ViS2l0V2ViVmlldyosIGZsb2F0LCBmbG9h
dCwgZmxvYXQpOwogICAgIHN0YXRpYyB2b2lkIHNldERlZmVyc0xvYWRpbmcoV2ViS2l0V2ViVmll
dyosIGJvb2wpOwogICAgIHN0YXRpYyB2b2lkIHNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChX
ZWJLaXRXZWJWaWV3KiwgYm9vbCk7CisgICAgc3RhdGljIHZvaWQgZm9yY2VXZWJWaWV3UGFpbnQo
V2ViS2l0V2ViVmlldyopOwogCiAgICAgLy8gQWNjZXNzaWJpbGl0eQogICAgIHN0YXRpYyB2b2lk
IGluY3JlbWVudEFjY2Vzc2liaWxpdHlWYWx1ZShBdGtPYmplY3QqKTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBhNzE0NzVkYjBjYTY1M2VkMGFl
N2QyNDdjNzc3MWNjMzdkMWUxYzc0Li4zNmI4MzJkYmEzMmJjOWE3ZmY2NWRhYTc1YWZhMWNkZGJj
MjA4NDg4IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMDUtMTQgIFphbiBEb2JlcnNlayAgPHphbmRvYmVyc2Vr
QGdtYWlsLmNvbT4KKworICAgICAgICBbR3RrXVtMYXlvdXRUZXN0c10gUmVwYWludCB0aGUgY29t
cGxldGUgV2ViS2l0V2ViVmlldyBiZWZvcmUgZHVtcGluZyBwaXhlbCByZXN1bHRzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjI4NAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBhaW50IHRoZSBjdXJyZW50
IGRpcnR5IHJlZ2lvbnMgb2YgdGhlIHdlYiB2aWV3IG9uY2UgbW9yZSBiZWZvcmUKKyAgICAgICAg
ZHVtcGluZyBwaXhlbCByZXN1bHRzLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZ3RrL0R1
bXBSZW5kZXJUcmVlLmNwcDoKKyAgICAgICAgKGR1bXApOgorCiAyMDEyLTA1LTEyICBUaW0gSG9y
dG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIHJ1bi1zYWZhcmkgYW5k
IGNvLiBzaG91bGQgc3VwcG9ydCAtLWd1YXJkLW1hbGxvYyBjb21tYW5kIGxpbmUgYXJndW1lbnQK
ZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9EdW1wUmVuZGVyVHJlZS5jcHAg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvRHVtcFJlbmRlclRyZWUuY3BwCmluZGV4IDY1MmM3
MjhjZDBjNTlmNjU4MTQ1NDEzMTlhMTMyODM1YTFlOTY5OTAuLjEwZmM1ZjZkMmQ1NGIyMTA5MmJm
NTYyN2I1ODQ0Y2Q1OWFlZGQzMTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0
ay9EdW1wUmVuZGVyVHJlZS5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0R1bXBS
ZW5kZXJUcmVlLmNwcApAQCAtNTcxLDggKzU3MSwxMCBAQCB2b2lkIGR1bXAoKQogICAgIGlmIChk
dW1wUGl4ZWxzCiAgICAgICYmIGdMYXlvdXRUZXN0Q29udHJvbGxlci0+Z2VuZXJhdGVQaXhlbFJl
c3VsdHMoKQogICAgICAmJiAhZ0xheW91dFRlc3RDb250cm9sbGVyLT5kdW1wRE9NQXNXZWJBcmNo
aXZlKCkKLSAgICAgJiYgIWdMYXlvdXRUZXN0Q29udHJvbGxlci0+ZHVtcFNvdXJjZUFzV2ViQXJj
aGl2ZSgpKQorICAgICAmJiAhZ0xheW91dFRlc3RDb250cm9sbGVyLT5kdW1wU291cmNlQXNXZWJB
cmNoaXZlKCkpIHsKKyAgICAgICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpmb3JjZVdlYlZp
ZXdQYWludCh3ZWJWaWV3KTsKICAgICAgICAgZHVtcFdlYlZpZXdBc1BpeGVsc0FuZENvbXBhcmVX
aXRoRXhwZWN0ZWQoZ0xheW91dFRlc3RDb250cm9sbGVyLT5leHBlY3RlZFBpeGVsSGFzaCgpKTsK
KyAgICB9CiAKICAgICAvLyBGSVhNRTogY2FsbCBkaXNwbGF5V2ViVmlldyBoZXJlIHdoZW4gd2Ug
c3VwcG9ydCAtLXBhaW50CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>