<?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>61653</bug_id>
          
          <creation_ts>2011-05-27 11:24:38 -0700</creation_ts>
          <short_desc>Web Inspector: [REGRESSION r86838] line numbers do not scroll when script paused</short_desc>
          <delta_ts>2011-06-27 18:01:17 -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>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.6</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Graham Ballantyne">hello</reporter>
          <assigned_to name="David Grogan">dgrogan</assigned_to>
          <cc>aandrey</cc>
    
    <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>dgrogan</cc>
    
    <cc>dimich</cc>
    
    <cc>hello</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>levin</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>tonistiigi</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>411571</commentid>
    <comment_count>0</comment_count>
    <who name="Graham Ballantyne">hello</who>
    <bug_when>2011-05-27 11:24:38 -0700</bug_when>
    <thetext>Summary: line numbers in the Web Inspector&apos;s script pane do not scroll with the script content when the script is paused.

Steps to reproduce:
1. Open the script pane.
2. Pause script execution, either by clicking the Pause button or by stopping on a breakpoint. Use a sufficently large script or resize the window so that scrollbars appear.
3. Scroll the script content up and down.

Expected behaviour: Line numbers scroll with the content.

Actual behaviour: line numbers are fixed and do not scroll with content. See video here: (14mb http://dl.dropbox.com/u/33854/webinspectorescroll.mov)

Problem occurs in WebKit nightly build r87475. Does not happen in Chrome dev channel (13.0.772.0 dev).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>412831</commentid>
    <comment_count>1</comment_count>
    <who name="">tonistiigi</who>
    <bug_when>2011-05-31 13:37:20 -0700</bug_when>
    <thetext>Starts to appear after http://trac.webkit.org/changeset/86838</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>413130</commentid>
    <comment_count>2</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-05-31 21:51:32 -0700</bug_when>
    <thetext>This only affects in-process inspector operation (use WebKit nightly, not Chromium to repro).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>413560</commentid>
    <comment_count>3</comment_count>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2011-06-01 12:02:25 -0700</bug_when>
    <thetext>I will look into this shortly.  I saw it happen once when testing this patch but thought I&apos;d fixed it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>421004</commentid>
    <comment_count>4</comment_count>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2011-06-14 21:40:38 -0700</bug_when>
    <thetext>I&apos;ll need some guidance with this.

The Task containing the dom scroll event is queued in WTF::MainThread&apos;s functionQueue, but that queue isn&apos;t serviced when the javascript debugger calls setMainThreadCallbacksPaused on pause.  I suppose the old DOMTimer way didn&apos;t have this problem.

Can anyone on the cc list recommend someone for me to talk to about what the options might be?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>425955</commentid>
    <comment_count>5</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-06-22 22:26:02 -0700</bug_when>
    <thetext>I would talk to Yury (yurys). Unless http://trac.webkit.org/changeset/86838 is fixing a regression, I&apos;d roll it out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>425956</commentid>
    <comment_count>6</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2011-06-22 22:27:02 -0700</bug_when>
    <thetext>&lt;rdar://problem/9661223&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>426443</commentid>
    <comment_count>7</comment_count>
      <attachid>98397</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2011-06-23 14:06:08 -0700</bug_when>
    <thetext>Created attachment 98397
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>426783</commentid>
    <comment_count>8</comment_count>
      <attachid>98397</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-06-24 01:24:27 -0700</bug_when>
    <thetext>Comment on attachment 98397
Patch

Clearing flags on attachment: 98397

Committed r89657: &lt;http://trac.webkit.org/changeset/89657&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>426784</commentid>
    <comment_count>9</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-06-24 01:24:35 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>426928</commentid>
    <comment_count>10</comment_count>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2011-06-24 09:37:27 -0700</bug_when>
    <thetext>Did we understand why it works with SuspendableTimer and does not work with postTask()?

The logic here sounds counterintuitive - if the idea of suspension main thread tasks is to prevent JS events from being dispatched while debugger has it &apos;paused&apos;, then:

- is it wrong that DOMTimers are still dispatched? (this causes JS callbacks)
- what other functionality of debug page is broken because tasks are not dispatched? postTask is a popular mechanism of doing things in WebKit...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>427817</commentid>
    <comment_count>11</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-06-27 02:39:57 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; Did we understand why it works with SuspendableTimer and does not work with postTask()?
&gt; 
&gt; The logic here sounds counterintuitive - if the idea of suspension main thread tasks is to prevent JS events from being dispatched while debugger has it &apos;paused&apos;, then:
&gt; 
&gt; - is it wrong that DOMTimers are still dispatched? (this causes JS callbacks)
&gt; - what other functionality of debug page is broken because tasks are not dispatched? postTask is a popular mechanism of doing things in WebKit...

All active DOM objects inside inspected page are paused(see PageScriptDebugServer::didPause method: http://codesearch.google.com/codesearch#OAMlx_jo-ck/src/third_party/WebKit/Source/WebCore/bindings/js/PageScriptDebugServer.cpp&amp;type=cs ), this means, in particular, that its DOMTimers will not be dispatched.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>428293</commentid>
    <comment_count>12</comment_count>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2011-06-27 14:19:46 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (In reply to comment #10)
&gt; &gt; Did we understand why it works with SuspendableTimer and does not work with postTask()?
&gt; &gt; 
&gt; &gt; The logic here sounds counterintuitive - if the idea of suspension main thread tasks is to prevent JS events from being dispatched while debugger has it &apos;paused&apos;, then:
&gt; &gt; 
&gt; &gt; - is it wrong that DOMTimers are still dispatched? (this causes JS callbacks)
&gt; &gt; - what other functionality of debug page is broken because tasks are not dispatched? postTask is a popular mechanism of doing things in WebKit...
&gt; 
&gt; All active DOM objects inside inspected page are paused(see PageScriptDebugServer::didPause method: http://codesearch.google.com/codesearch#OAMlx_jo-ck/src/third_party/WebKit/Source/WebCore/bindings/js/PageScriptDebugServer.cpp&amp;type=cs ), this means, in particular, that its DOMTimers will not be dispatched.

I am confused.  When we use DOMTimers to fire asynchronous events, the events are fired even when the the web inspector has paused javascript execution.  When we switched to using postTask, the events were no longer fired.

From what you&apos;re saying, it seems as if DOMTimer should not work, but we&apos;ve found it&apos;s the only thing that does.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>428522</commentid>
    <comment_count>13</comment_count>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2011-06-27 18:01:17 -0700</bug_when>
    <thetext>(In reply to comment #12)

Actually, what Yury says makes sense. The ActiveDOMObjects are suspended on per-Document basis - in other words, only frames in the page that gets paused are suspended, other SuspendableTimers are continuing to fire - so the debugger page still gets its timers fired. So you may have one page with suspended timers and another with running ones.

That&apos;s fine and it addresses my question #1. But it doesn&apos;t address #2 - disabling the main thread callbacks wholesale in the browser process will eventually cause issues, and we just found one example here. The problem was not using the Document::postTask() mechanism but the fact that this mechanism can only be paused globally.

For example, suspending the script in a single page will stop all pages in the other tabs of the same single-process browser from doing Workers, Databases, FileAPI, media player and other things which use callOnMainThread().

If it was possible to suspend tasks per-ScriptExecutionContext, then it would be a better fix. The David&apos;s change would not regress things then because the main thread queue would be only suspended for the paused page. It would also avoid freezing various internal things that use callOnMainThread() for other, unrelated, pages.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>98397</attachid>
            <date>2011-06-23 14:06:08 -0700</date>
            <delta_ts>2011-06-24 01:24:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-61653-20110623140607.patch</filename>
            <type>text/plain</type>
            <size>8757</size>
            <attacher name="David Grogan">dgrogan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODk2MDkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0OTVkODI5YzM1NWUwN2Yz
OTc3ZDdmMDhiYjA5OWMzZTNkNjQzNTViLi45ZjcwYTAyODZlNTJhYzFjZDQ1YTQ5NDYwMTc5Yjhi
MmFkMmZiYjgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTEtMDYtMjMgIERhdmlk
IEdyb2dhbiAgPGRncm9nYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFtSRUdSRVNTSU9OIHI4Njgz
OF0gbGluZSBudW1iZXJzIGRvIG5vdCBzY3JvbGwgd2hlbiBzY3JpcHQgcGF1c2VkCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MTY1MworCisgICAgICAg
IHJvbGwgb3V0IHI4NjgzOAorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAtIHJlZmFjdG9yaW5nLgor
CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgICogZG9tL0V2ZW50UXVldWUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRRdWV1ZVRpbWVyOjpFdmVudFF1ZXVlVGltZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6RXZlbnRRdWV1ZVRpbWVyOjpmaXJlZCk6CisgICAgICAgIChXZWJD
b3JlOjpFdmVudFF1ZXVlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRRdWV1ZTo6
RXZlbnRRdWV1ZSk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudFF1ZXVlOjp+RXZlbnRRdWV1ZSk6
CisgICAgICAgIChXZWJDb3JlOjpFdmVudFF1ZXVlOjplbnF1ZXVlRXZlbnQpOgorICAgICAgICAo
V2ViQ29yZTo6RXZlbnRRdWV1ZTo6Y2FuY2VsRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RXZl
bnRRdWV1ZTo6Y2FuY2VsUXVldWVkRXZlbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50UXVl
dWU6OnBlbmRpbmdFdmVudFRpbWVyRmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRRdWV1
ZTo6ZGlzcGF0Y2hFdmVudCk6CisgICAgICAgICogZG9tL0V2ZW50UXVldWUuaDoKKwogMjAxMS0w
Ni0yMyAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAg
ICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjg5NTkxIGFuZCByODk1OTMuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5oCmluZGV4IDMyNmZmMzk2MWQwZWU1ZjlkMTVjYWQwNWU0ZjQ1OTI1Y2M5YzViZTcuLjI4
NjJjZmFkNTQ1MGI0ODVjNDMyZGNlNGRmYTI4MjgxMjBhNTI0OWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5oCkBAIC0xMzU4LDcgKzEzNTgsNyBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBtX3VzaW5nR2Vv
bG9jYXRpb247CiAKLSAgICBPd25QdHI8RXZlbnRRdWV1ZT4gbV9ldmVudFF1ZXVlOworICAgIFJl
ZlB0cjxFdmVudFF1ZXVlPiBtX2V2ZW50UXVldWU7CiAKICAgICBSZWZQdHI8RG9jdW1lbnRXZWFr
UmVmZXJlbmNlPiBtX3dlYWtSZWZlcmVuY2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FdmVudFF1ZXVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFF1ZXVlLmNwcApp
bmRleCAzOTFhOTVjMTIxODk4YjNkMTQ4ZjJlZjY3YTJlNTQ0OTRjM2YyOTM5Li4zZmZhZmY1YWNl
YTA1NjY3ZGY3MTY0MzMxNzk5M2E5NDg5NzBlZGVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRXZlbnRRdWV1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50UXVldWUu
Y3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgogI2luY2x1ZGUg
IlJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQuaCIKKyNpbmNsdWRlICJTdXNwZW5kYWJsZVRpbWVyLmgiCiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAKQEAgLTQyLDc3ICs0Myw0MCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2hvdWxk
RGlzcGF0Y2hTY3JvbGxFdmVudFN5bmNocm9ub3VzbHkoRG9jdW1lbnQqIGRvY3VtZW50KQogICAg
IHJldHVybiBhcHBsaWNhdGlvbklzU2FmYXJpKCkgJiYgKGRvY3VtZW50LT51cmwoKS5wcm90b2Nv
bElzKCJmZWVkIikgfHwgZG9jdW1lbnQtPnVybCgpLnByb3RvY29sSXMoImZlZWRzIikpOwogfQog
Ci1QYXNzT3duUHRyPEV2ZW50UXVldWU+IEV2ZW50UXVldWU6OmNyZWF0ZShTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiBjb250ZXh0KQorY2xhc3MgRXZlbnRRdWV1ZVRpbWVyIDogcHVibGljIFN1c3Bl
bmRhYmxlVGltZXIgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEV2ZW50UXVldWVUaW1lcik7
CitwdWJsaWM6CisgICAgRXZlbnRRdWV1ZVRpbWVyKEV2ZW50UXVldWUqIGV2ZW50UXVldWUsIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCisgICAgICAgIDogU3VzcGVuZGFibGVUaW1l
cihjb250ZXh0KQorICAgICAgICAsIG1fZXZlbnRRdWV1ZShldmVudFF1ZXVlKSB7IH0KKworcHJp
dmF0ZToKKyAgICB2aXJ0dWFsIHZvaWQgZmlyZWQoKSB7IG1fZXZlbnRRdWV1ZS0+cGVuZGluZ0V2
ZW50VGltZXJGaXJlZCgpOyB9CisgICAgRXZlbnRRdWV1ZSogbV9ldmVudFF1ZXVlOyAgICAKK307
CisKK1Bhc3NSZWZQdHI8RXZlbnRRdWV1ZT4gRXZlbnRRdWV1ZTo6Y3JlYXRlKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIGNvbnRleHQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBFdmVudFF1
ZXVlKGNvbnRleHQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IEV2ZW50UXVldWUoY29udGV4
dCkpOwogfQogCiBFdmVudFF1ZXVlOjpFdmVudFF1ZXVlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
IGNvbnRleHQpCi0gICAgOiBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQoY29udGV4dCkKKyAgICA6
IG1fcGVuZGluZ0V2ZW50VGltZXIoYWRvcHRQdHIobmV3IEV2ZW50UXVldWVUaW1lcih0aGlzLCBj
b250ZXh0KSkpCiB7CiB9CiAKIEV2ZW50UXVldWU6On5FdmVudFF1ZXVlKCkKIHsKLSAgICBjYW5j
ZWxRdWV1ZWRFdmVudHMoKTsKIH0KIAotY2xhc3MgRXZlbnRRdWV1ZTo6RXZlbnREaXNwYXRjaGVy
VGFzayA6IHB1YmxpYyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrIHsKLXB1YmxpYzoKLSAg
ICBzdGF0aWMgUGFzc093blB0cjxFdmVudERpc3BhdGNoZXJUYXNrPiBjcmVhdGUoUGFzc1JlZlB0
cjxFdmVudD4gZXZlbnQsIEV2ZW50UXVldWUqIGV2ZW50UXVldWUpCi0gICAgewotICAgICAgICBy
ZXR1cm4gYWRvcHRQdHIobmV3IEV2ZW50RGlzcGF0Y2hlclRhc2soZXZlbnQsIGV2ZW50UXVldWUp
KTsKLSAgICB9Ci0KLSAgICB2b2lkIGRpc3BhdGNoRXZlbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCosIFBhc3NSZWZQdHI8RXZlbnQ+IGV2ZW50KQotICAgIHsKLSAgICAgICAgRXZlbnRUYXJnZXQq
IGV2ZW50VGFyZ2V0ID0gZXZlbnQtPnRhcmdldCgpOwotICAgICAgICBpZiAoZXZlbnRUYXJnZXQt
PnRvRE9NV2luZG93KCkpCi0gICAgICAgICAgICBldmVudFRhcmdldC0+dG9ET01XaW5kb3coKS0+
ZGlzcGF0Y2hFdmVudChldmVudCwgMCk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGV2ZW50
VGFyZ2V0LT5kaXNwYXRjaEV2ZW50KGV2ZW50KTsKLSAgICB9Ci0KLSAgICB2aXJ0dWFsIHZvaWQg
cGVyZm9ybVRhc2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKLSAgICB7Ci0gICAg
ICAgIGlmIChtX2lzQ2FuY2VsbGVkKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBtX2V2
ZW50UXVldWUtPnJlbW92ZUV2ZW50KG1fZXZlbnQuZ2V0KCkpOwotICAgICAgICBkaXNwYXRjaEV2
ZW50KGNvbnRleHQsIG1fZXZlbnQpOwotICAgIH0KLQotICAgIHZvaWQgY2FuY2VsKCkKLSAgICB7
Ci0gICAgICAgIG1faXNDYW5jZWxsZWQgPSB0cnVlOwotICAgICAgICBtX2V2ZW50LmNsZWFyKCk7
Ci0gICAgfQotCi1wcml2YXRlOgotICAgIEV2ZW50RGlzcGF0Y2hlclRhc2soUGFzc1JlZlB0cjxF
dmVudD4gZXZlbnQsIEV2ZW50UXVldWUqIGV2ZW50UXVldWUpCi0gICAgICAgIDogbV9ldmVudChl
dmVudCkKLSAgICAgICAgLCBtX2V2ZW50UXVldWUoZXZlbnRRdWV1ZSkKLSAgICAgICAgLCBtX2lz
Q2FuY2VsbGVkKGZhbHNlKQotICAgIHsKLSAgICB9Ci0KLSAgICBSZWZQdHI8RXZlbnQ+IG1fZXZl
bnQ7Ci0gICAgRXZlbnRRdWV1ZSogbV9ldmVudFF1ZXVlOwotICAgIGJvb2wgbV9pc0NhbmNlbGxl
ZDsKLX07Ci0KLXZvaWQgRXZlbnRRdWV1ZTo6cmVtb3ZlRXZlbnQoRXZlbnQqIGV2ZW50KQordm9p
ZCBFdmVudFF1ZXVlOjplbnF1ZXVlRXZlbnQoUGFzc1JlZlB0cjxFdmVudD4gZXZlbnQpCiB7Ci0g
ICAgaWYgKE5vZGUqIG5vZGUgPSBldmVudC0+dGFyZ2V0KCktPnRvTm9kZSgpKQotICAgICAgICBt
X25vZGVzV2l0aFF1ZXVlZFNjcm9sbEV2ZW50cy5yZW1vdmUobm9kZSk7Ci0gICAgbV9ldmVudFRh
c2tNYXAucmVtb3ZlKGV2ZW50KTsKLX0KLQotdm9pZCBFdmVudFF1ZXVlOjplbnF1ZXVlRXZlbnQo
UGFzc1JlZlB0cjxFdmVudD4gcHJwRXZlbnQpCi17Ci0gICAgUmVmUHRyPEV2ZW50PiBldmVudCA9
IHBycEV2ZW50OwotICAgIE93blB0cjxFdmVudERpc3BhdGNoZXJUYXNrPiB0YXNrID0gRXZlbnRE
aXNwYXRjaGVyVGFzazo6Y3JlYXRlKGV2ZW50LCB0aGlzKTsKLSAgICBtX2V2ZW50VGFza01hcC5h
ZGQoZXZlbnQucmVsZWFzZSgpLCB0YXNrLmdldCgpKTsKLSAgICBtX3NjcmlwdEV4ZWN1dGlvbkNv
bnRleHQtPnBvc3RUYXNrKHRhc2sucmVsZWFzZSgpKTsKKyAgICBBU1NFUlQoZXZlbnQtPnRhcmdl
dCgpKTsKKyAgICBib29sIHdhc0FkZGVkID0gbV9xdWV1ZWRFdmVudHMuYWRkKGV2ZW50KS5zZWNv
bmQ7CisgICAgQVNTRVJUX1VOVVNFRCh3YXNBZGRlZCwgd2FzQWRkZWQpOyAvLyBJdCBzaG91bGQg
bm90IGhhdmUgYWxyZWFkeSBiZWVuIGluIHRoZSBsaXN0LgorICAgIAorICAgIGlmICghbV9wZW5k
aW5nRXZlbnRUaW1lci0+aXNBY3RpdmUoKSkKKyAgICAgICAgbV9wZW5kaW5nRXZlbnRUaW1lci0+
c3RhcnRPbmVTaG90KDApOwogfQogCiB2b2lkIEV2ZW50UXVldWU6OmVucXVldWVPckRpc3BhdGNo
U2Nyb2xsRXZlbnQoUGFzc1JlZlB0cjxOb2RlPiB0YXJnZXQsIFNjcm9sbEV2ZW50VGFyZ2V0VHlw
ZSB0YXJnZXRUeXBlKQpAQCAtMTM4LDIyICsxMDIsNTAgQEAgdm9pZCBFdmVudFF1ZXVlOjplbnF1
ZXVlT3JEaXNwYXRjaFNjcm9sbEV2ZW50KFBhc3NSZWZQdHI8Tm9kZT4gdGFyZ2V0LCBTY3JvbGxF
dmUKIAogYm9vbCBFdmVudFF1ZXVlOjpjYW5jZWxFdmVudChFdmVudCogZXZlbnQpCiB7Ci0gICAg
RXZlbnREaXNwYXRjaGVyVGFzayogdGFzayA9IG1fZXZlbnRUYXNrTWFwLmdldChldmVudCk7Ci0g
ICAgaWYgKCF0YXNrKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgdGFzay0+Y2FuY2VsKCk7
Ci0gICAgcmVtb3ZlRXZlbnQoZXZlbnQpOwotICAgIHJldHVybiB0cnVlOworICAgIGJvb2wgZm91
bmQgPSBtX3F1ZXVlZEV2ZW50cy5jb250YWlucyhldmVudCk7CisgICAgbV9xdWV1ZWRFdmVudHMu
cmVtb3ZlKGV2ZW50KTsKKyAgICBpZiAobV9xdWV1ZWRFdmVudHMuaXNFbXB0eSgpKQorICAgICAg
ICBtX3BlbmRpbmdFdmVudFRpbWVyLT5zdG9wKCk7CisgICAgcmV0dXJuIGZvdW5kOwogfQogCiB2
b2lkIEV2ZW50UXVldWU6OmNhbmNlbFF1ZXVlZEV2ZW50cygpCiB7Ci0gICAgZm9yIChFdmVudFRh
c2tNYXA6Oml0ZXJhdG9yIGl0ID0gbV9ldmVudFRhc2tNYXAuYmVnaW4oKTsgaXQgIT0gbV9ldmVu
dFRhc2tNYXAuZW5kKCk7ICsraXQpIHsKLSAgICAgICAgRXZlbnREaXNwYXRjaGVyVGFzayogdGFz
ayA9IGl0LT5zZWNvbmQ7Ci0gICAgICAgIHRhc2stPmNhbmNlbCgpOwotICAgIH0KLSAgICBtX2V2
ZW50VGFza01hcC5jbGVhcigpOworICAgIG1fcGVuZGluZ0V2ZW50VGltZXItPnN0b3AoKTsKKyAg
ICBtX3F1ZXVlZEV2ZW50cy5jbGVhcigpOworfQorCit2b2lkIEV2ZW50UXVldWU6OnBlbmRpbmdF
dmVudFRpbWVyRmlyZWQoKQoreworICAgIEFTU0VSVCghbV9wZW5kaW5nRXZlbnRUaW1lci0+aXNB
Y3RpdmUoKSk7CisgICAgQVNTRVJUKCFtX3F1ZXVlZEV2ZW50cy5pc0VtcHR5KCkpOworCiAgICAg
bV9ub2Rlc1dpdGhRdWV1ZWRTY3JvbGxFdmVudHMuY2xlYXIoKTsKKworICAgIC8vIEluc2VydCBh
IG1hcmtlciBmb3Igd2hlcmUgd2Ugc2hvdWxkIHN0b3AuCisgICAgQVNTRVJUKCFtX3F1ZXVlZEV2
ZW50cy5jb250YWlucygwKSk7CisgICAgYm9vbCB3YXNBZGRlZCA9IG1fcXVldWVkRXZlbnRzLmFk
ZCgwKS5zZWNvbmQ7CisgICAgQVNTRVJUX1VOVVNFRCh3YXNBZGRlZCwgd2FzQWRkZWQpOyAvLyBJ
dCBzaG91bGQgbm90IGhhdmUgYWxyZWFkeSBiZWVuIGluIHRoZSBsaXN0LgorCisgICAgUmVmUHRy
PEV2ZW50UXVldWU+IHByb3RlY3Rvcih0aGlzKTsKKworICAgIHdoaWxlICghbV9xdWV1ZWRFdmVu
dHMuaXNFbXB0eSgpKSB7CisgICAgICAgIExpc3RIYXNoU2V0PFJlZlB0cjxFdmVudD4gPjo6aXRl
cmF0b3IgaXRlciA9IG1fcXVldWVkRXZlbnRzLmJlZ2luKCk7CisgICAgICAgIFJlZlB0cjxFdmVu
dD4gZXZlbnQgPSAqaXRlcjsKKyAgICAgICAgbV9xdWV1ZWRFdmVudHMucmVtb3ZlKGl0ZXIpOwor
ICAgICAgICBpZiAoIWV2ZW50KQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRpc3BhdGNo
RXZlbnQoZXZlbnQuZ2V0KCkpOworICAgIH0KK30KKwordm9pZCBFdmVudFF1ZXVlOjpkaXNwYXRj
aEV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+IGV2ZW50KQoreworICAgIEV2ZW50VGFyZ2V0KiBldmVu
dFRhcmdldCA9IGV2ZW50LT50YXJnZXQoKTsKKyAgICBpZiAoZXZlbnRUYXJnZXQtPnRvRE9NV2lu
ZG93KCkpCisgICAgICAgIGV2ZW50VGFyZ2V0LT50b0RPTVdpbmRvdygpLT5kaXNwYXRjaEV2ZW50
KGV2ZW50LCAwKTsKKyAgICBlbHNlCisgICAgICAgIGV2ZW50VGFyZ2V0LT5kaXNwYXRjaEV2ZW50
KGV2ZW50KTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50UXVl
dWUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFF1ZXVlLmgKaW5kZXggYmU4ZGFmZjE0MjQz
YzcwMjkxNzEyOTIwYWM2OGVlNDQ4YWJiZTEwNS4uMmNiMzhmNDkwZDAxZjBjOGUzMGQ3MTg5ODRk
ZmYxZGRkNzA0NjBiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50UXVldWUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRRdWV1ZS5oCkBAIC0yNywyNCArMjcsMjcg
QEAKICNpZm5kZWYgRXZlbnRRdWV1ZV9oCiAjZGVmaW5lIEV2ZW50UXVldWVfaAogCi0jaW5jbHVk
ZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgotI2luY2x1ZGUgPHd0
Zi9QYXNzT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL0xpc3RIYXNoU2V0Lmg+CisjaW5jbHVkZSA8
d3RmL093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3Rm
L1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEV2ZW50OworY2xhc3Mg
RXZlbnRRdWV1ZVRpbWVyOwogY2xhc3MgTm9kZTsKIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQ7CiAKLWNsYXNzIEV2ZW50UXVldWUgeworY2xhc3MgRXZlbnRRdWV1ZSA6IHB1YmxpYyBSZWZD
b3VudGVkPEV2ZW50UXVldWU+IHsKIHB1YmxpYzoKICAgICBlbnVtIFNjcm9sbEV2ZW50VGFyZ2V0
VHlwZSB7CiAgICAgICAgIFNjcm9sbEV2ZW50RG9jdW1lbnRUYXJnZXQsCiAgICAgICAgIFNjcm9s
bEV2ZW50RWxlbWVudFRhcmdldAogICAgIH07CiAKLSAgICBzdGF0aWMgUGFzc093blB0cjxFdmVu
dFF1ZXVlPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOworICAgIHN0YXRpYyBQYXNz
UmVmUHRyPEV2ZW50UXVldWU+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7CiAgICAg
fkV2ZW50UXVldWUoKTsKIAogICAgIHZvaWQgZW5xdWV1ZUV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+
KTsKQEAgLTU1LDE0ICs1OCwxNCBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIGV4cGxpY2l0IEV2
ZW50UXVldWUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOwogCi0gICAgdm9pZCByZW1vdmVFdmVu
dChFdmVudCopOworICAgIHZvaWQgcGVuZGluZ0V2ZW50VGltZXJGaXJlZCgpOworICAgIHZvaWQg
ZGlzcGF0Y2hFdmVudChQYXNzUmVmUHRyPEV2ZW50Pik7CiAKKyAgICBPd25QdHI8RXZlbnRRdWV1
ZVRpbWVyPiBtX3BlbmRpbmdFdmVudFRpbWVyOworICAgIExpc3RIYXNoU2V0PFJlZlB0cjxFdmVu
dD4gPiBtX3F1ZXVlZEV2ZW50czsKICAgICBIYXNoU2V0PE5vZGUqPiBtX25vZGVzV2l0aFF1ZXVl
ZFNjcm9sbEV2ZW50czsKLSAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBtX3NjcmlwdEV4ZWN1
dGlvbkNvbnRleHQ7Ci0KLSAgICBjbGFzcyBFdmVudERpc3BhdGNoZXJUYXNrOwotICAgIHR5cGVk
ZWYgSGFzaE1hcDxSZWZQdHI8RXZlbnQ+LCBFdmVudERpc3BhdGNoZXJUYXNrKj4gRXZlbnRUYXNr
TWFwOwotICAgIEV2ZW50VGFza01hcCBtX2V2ZW50VGFza01hcDsKKyAgICAKKyAgICBmcmllbmQg
Y2xhc3MgRXZlbnRRdWV1ZVRpbWVyOyAgICAKIH07CiAKIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>