<?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>28683</bug_id>
          
          <creation_ts>2009-08-24 13:13:46 -0700</creation_ts>
          <short_desc>Timers from cached pages fire instantly rather than the specified timeout delay</short_desc>
          <delta_ts>2009-08-26 08:30:05 -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>Page Loading</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="Ada Chan">adachan</reporter>
          <assigned_to name="Dmitry Titov">dimich</assigned_to>
          <cc>ap</cc>
    
    <cc>beidson</cc>
    
    <cc>dimich</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>142383</commentid>
    <comment_count>0</comment_count>
      <attachid>38496</attachid>
    <who name="Ada Chan">adachan</who>
    <bug_when>2009-08-24 13:13:46 -0700</bug_when>
    <thetext>Created attachment 38496
Test

When restoring a page from the page cache, we also restore any timers from that cached page.  However, those timers fire right away rather than first waiting for the timeout delay specified.

We should explore other browsers&apos; behavior on this and figure out whether we should match.

Attached is the test - when going back to the cached page, I would expect the innerHTML to be replaced after a full second has passed, and not immediately when the page is loaded.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142673</commentid>
    <comment_count>1</comment_count>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2009-08-25 12:39:02 -0700</bug_when>
    <thetext>hmm, we do ActiveDOMObject::restore() twice on going back :-) Fixing...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142715</commentid>
    <comment_count>2</comment_count>
      <attachid>38572</attachid>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2009-08-25 15:47:35 -0700</bug_when>
    <thetext>Created attachment 38572
Proposed patch

A fix and a new test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142718</commentid>
    <comment_count>3</comment_count>
      <attachid>38572</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-25 16:13:42 -0700</bug_when>
    <thetext>Comment on attachment 38572
Proposed patch

+PASS with 206 ms delay.

Will cause this to fail on some systems.

That should say &quot;PASS delay was at least 200ms&quot; or similar.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142724</commentid>
    <comment_count>4</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2009-08-25 16:22:58 -0700</bug_when>
    <thetext>I&apos;d really like to take a full look at this before someone else r+&apos;s.

I&apos;m looking at it now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142725</commentid>
    <comment_count>5</comment_count>
      <attachid>38572</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2009-08-25 16:23:48 -0700</bug_when>
    <thetext>Comment on attachment 38572
Proposed patch

+#ifndef NDEBUG
+    , m_suspended(false)
+#endif

Seems like you should guard this with #if !ASSERT_DISABLED instead of the NDEBUG check, just in case some crazy person comes along and turns on assertions on a Release build, or turns them off on a Debug build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142726</commentid>
    <comment_count>6</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2009-08-25 16:23:57 -0700</bug_when>
    <thetext>Does the delay during the test need to be as large as 200 ms?  Ideally we&apos;d like our regression tests to be much quicker than that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142732</commentid>
    <comment_count>7</comment_count>
      <attachid>38572</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2009-08-25 16:40:24 -0700</bug_when>
    <thetext>Comment on attachment 38572
Proposed patch

r=me with minor tweaks - prepare for some extreme nit-pickyness ;)

&gt; +2009-08-25  Dmitry Titov  &lt;dimich@chromium.org&gt;
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        Timers from cached pages fire instantly rather than the specified timeout delay

&quot;...rather than after the specified timeout delay,&quot; maybe.

&gt; +This test verifies that when page is loaded from the page cache on navigation back, the suspended timers are resumed for a duration left when they were suspended. This is a test for https://bugs.webkit.org/show_bug.cgi?id=28683.
&gt; +The test navigates to a page, starts a timer and then navigates to another page and back. It then measures time when the timer is actually fired and makes sure that it is at least the time set at the beginning. If successful, it outputs &apos;PASS&apos; below.
&gt; +PASS with 206 ms delay.

Eric is dead on here - the delay will not always be exactly 206 ms, even on the same machine over multiple runs.  Also, I think it is possible that a run of the test could hit 200ms exactly.  
Just &quot;is equal to or greater than 200ms&quot; would be fine.

&gt; +        (WebCore::CachedPage::restore):
&gt; +        remove duplicated Frame::restore() call, it should be done only once in FraeLoader::open(cachedFrame)

Typo &quot;FrameLoader&quot;

&gt; +        * page/DOMTimer.cpp: added a debug-only flag and ASSERT to catch out-of-order suspense/restore.
&gt; +        (WebCore::DOMTimer::DOMTimer): ditto.
&gt; +        (WebCore::DOMTimer::suspend): ditto.
&gt; +        (WebCore::DOMTimer::resume): ditto.
&gt; +        * page/DOMTimer.h: ditto.
&gt; +

You capitalized all statements in the LayoutTest ChangeLog - should capitalize all the WebCore/ChangeLog stuff, too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142733</commentid>
    <comment_count>8</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2009-08-25 16:41:35 -0700</bug_when>
    <thetext>Definitely account for Mark&apos;s and Adam&apos;s comments, as well.

I agree with Mark in principle that a 200ms delay is a tad high, but I also don&apos;t know a way to determine what the *smallest* delay possible to still reliably pass the test is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142735</commentid>
    <comment_count>9</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-08-25 16:49:22 -0700</bug_when>
    <thetext>Although there&apos;s clearly a bug in code, it&apos;s not clear to me what the right behavior is. If we start a 1 second timer and suspend the page for 5 seconds, I&apos;d personally expect it to fire immediately after resuming. As Ada said, testing other browsers is the key.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142738</commentid>
    <comment_count>10</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2009-08-25 16:56:33 -0700</bug_when>
    <thetext>That great point completely slipped my mind Alexey.

I think this patch is inarguably an improvement over current behavior, but exploring what other browsers do and matching them is also important.

Removing my r+ for now.

If other browsers match this patches behavior, I&apos;ll restore the r+.

But if other browsers fire a 1 seconds timer immediately after returning to a page after being away for 5 seconds, the patch needs reworking.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142747</commentid>
    <comment_count>11</comment_count>
    <who name="Ada Chan">adachan</who>
    <bug_when>2009-08-25 17:21:19 -0700</bug_when>
    <thetext>btw, the test I attached initially is from a different bug (28659).  It&apos;s from investigating that bug that I found this timer issue.  The delay was there so that the window resize to (300, 300) can cause a relayout before navigating to the data url.  But the window resizing is not the main issue here, and we may be able to rewrite this test without the delay.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142750</commentid>
    <comment_count>12</comment_count>
      <attachid>38582</attachid>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2009-08-25 17:35:18 -0700</bug_when>
    <thetext>Created attachment 38582
Test page to find out what FF is doing.

This is a modified/simplified page that works in both Safari and FF (for some reason, history.back() does not work in FF immediately from onload, needs setTimeout). The page starts 1000ms timer, then navigates away, sits on another page for 500ms and then goes back - and this results in timer firing in ~1500ms from initialization. So FF &apos;freezes&apos; the timers.  If there are no significant arguments, we probably should keep it similar. This is how current patch behaves. Will upload updated patch in a few minutes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142755</commentid>
    <comment_count>13</comment_count>
      <attachid>38584</attachid>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2009-08-25 17:56:54 -0700</bug_when>
    <thetext>Created attachment 38584
Updated patch.

(In reply to comment #3)
&gt; (From update of attachment 38572 [details])
&gt; +PASS with 206 ms delay.
&gt; Will cause this to fail on some systems.

Replaced with just &apos;PASS&apos;, output real delay only if failed - in case reduced timeout will cause problems it&apos;d be nice to know what it was in a test run.

(In reply to comment #5)
&gt; (From update of attachment 38572 [details])
&gt; +#ifndef NDEBUG
&gt; +    , m_suspended(false)
&gt; +#endif
&gt; 
&gt; Seems like you should guard this with #if !ASSERT_DISABLED instead of the
&gt; NDEBUG check, just in case some crazy person comes along and turns on
&gt; assertions on a Release build, or turns them off on a Debug build.

Done.

(In reply to comment #6)
&gt; Does the delay during the test need to be as large as 200 ms?  Ideally we&apos;d
&gt; like our regression tests to be much quicker than that.

Replaced with 100 ms. I measured time needed on my Mac Pro, debug build, in DRT, to navigate to another page and back - it was a bit under 50ms. I figured double this to be sure it fails in most cases. If it doesn&apos;t fail on a slow machine it&apos;s probably ok since it will fail on retail build for sure.

(In reply to comment #7)
&gt; (From update of attachment 38572 [details])
&gt; r=me with minor tweaks - prepare for some extreme nit-pickyness ;)
&gt; &gt; +        Timers from cached pages fire instantly rather than the specified timeout delay
&gt; &quot;...rather than after the specified timeout delay,&quot; maybe.

Done.

&gt; &gt; +        remove duplicated Frame::restore() call, it should be done only once in FraeLoader::open(cachedFrame)
&gt; Typo &quot;FrameLoader&quot;

Done.

&gt; You capitalized all statements in the LayoutTest ChangeLog - should capitalize
&gt; all the WebCore/ChangeLog stuff, too.

Done.

(In reply to comment #9)
&gt; Although there&apos;s clearly a bug in code, it&apos;s not clear to me what the right
&gt; behavior is. If we start a 1 second timer and suspend the page for 5 seconds,
&gt; I&apos;d personally expect it to fire immediately after resuming. As Ada said,
&gt; testing other browsers is the key.

Tested FF3.5, it behaves as this patch. Attached the test page for reference.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142768</commentid>
    <comment_count>14</comment_count>
      <attachid>38584</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2009-08-25 20:13:56 -0700</bug_when>
    <thetext>Comment on attachment 38584
Updated patch.

If it matches Firefox, then it sounds reasonable.

Thanks for looking into it in detail!  R+</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142858</commentid>
    <comment_count>15</comment_count>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2009-08-26 08:30:05 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/47772</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>38496</attachid>
            <date>2009-08-24 13:13:46 -0700</date>
            <delta_ts>2009-08-24 13:13:46 -0700</delta_ts>
            <desc>Test</desc>
            <filename>go-back-to-different-window-size.html</filename>
            <type>text/html</type>
            <size>1931</size>
            <attacher name="Ada Chan">adachan</attacher>
            
              <data encoding="base64">PGh0bWw+CjxzY3JpcHQ+CgovLyBOYXZpZ2F0aW9uIHN0ZXBzOgovLyAxLSBsb2FkcyB0aGlzIHBh
Z2UKLy8gMi0gcmVzaXplcyB0aGUgd2luZG93IHRvICgzMDAsIDMwMCkKLy8gMy0gbG9hZHMgYSBk
YXRhIFVSTCB0aGF0IHJlc2l6ZXMgdGhlIHdpbmRvdyB0byAoMTAwMCwgMTAwMCkgYW5kIG5hdmln
YXRlcyBiYWNrCi8vIDQtIGxvYWRzIHRoaXMgcGFnZSB3aGljaCB3aWxsIHJlc3RvcmUgdGhlIHRp
bWVyIHRvIGNoZWNrIHRoZSB3aW5kb3cgd2lkdGggdG8gbWFrZSBzdXJlIGl0J3MgPiAzMDAKZnVu
Y3Rpb24gdmVyaWZ5V2luZG93U2l6ZUFmdGVyTmF2aWdhdGVCYWNrVG9DYWNoZWRQYWdlKCkgewog
ICAgZG9jdW1lbnQuYm9keS5pbm5lckhUTUwgPSAod2luZG93LmlubmVyV2lkdGggPiAzMDApID8g
J1BBU1MnIDogJ0ZBSUwnOyAgICAKICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
CiAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKfQoKZnVuY3Rpb24gbmF2
aWdhdGVBd2F5QW5kQmFjaygpIHsKICAgIC8vIEFzc2lnbmluZyB0byBsb2NhdGlvbiBkb2VzIG5v
dCBjcmVhdGUgYSBoaXN0b3J5IGVudHJ5LCBzbwogICAgLy8gaW5zdGVhZCB3ZSBzaW11bGF0ZSBh
IGxpbmsgY2xpY2suCiAgICB2YXIgZXZ0ID0gZG9jdW1lbnQuY3JlYXRlRXZlbnQoIk1vdXNlRXZl
bnRzIik7IAogICAgZXZ0LmluaXRNb3VzZUV2ZW50KCJjbGljayIsIHRydWUsIHRydWUsIHdpbmRv
dywKICAgICAgMCwgMCwgMCwgMCwgMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIDAsIG51
bGwpOyAKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhbmNob3InKS5kaXNwYXRjaEV2ZW50
KGV2dCk7CiAgICAvLyBXYWl0IGEgbG9uZyB3aGlsZSBzbyB0aGUgdmVyaWZpY2F0aW9uIGlzIGRv
bmUgYWZ0ZXIgd2UgaGF2ZSBuYXZpZ2F0ZWQgYmFjayB0byB0aGUgY2FjaGVkIHZlcnNpb24gb2Yg
dGhpcyBwYWdlLgogICAgLy8gVGhpcyB0ZXN0IG1ha2VzIHVzZSBvZiB0aGUgYmVoYXZpb3Igd2hl
cmUgdGltZXJzIGFyZSByZXN0b3JlZCBvbiBhIGNhY2hlZCBwYWdlLgogICAgLy8gV2UgZG9uJ3Qg
bmVlZCB0byBkZXBlbmQgb24gdGhpcyBsb25nIHRpbWVyIHdoZW4gcGFnZXNob3cgZXZlbnQgaXMg
aW1wbGVtZW50ZWQgZm9yIGIvZiBjYWNoZSAoPHJkYXI6Ly9wcm9ibGVtLzY0NDA4Njk+KS4KICAg
IHdpbmRvdy5zZXRUaW1lb3V0KCJ2ZXJpZnlXaW5kb3dTaXplQWZ0ZXJOYXZpZ2F0ZUJhY2tUb0Nh
Y2hlZFBhZ2UoKSIsIDEwMDApOwp9CgpmdW5jdGlvbiBydW5UZXN0U3RlcCgpIHsKICAgIGlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
ZHVtcEFzVGV4dCgpOwogICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7
CiAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0VXNl
c1BhZ2VDYWNoZVByZWZlcmVuY2VLZXkiLCAxKTsKICAgIH0KICAgIHdpbmRvdy5yZXNpemVUbygz
MDAsIDMwMCk7CiAgICAvLyBXYWl0IGEgYml0IGJlZm9yZSBuYXZpZ2F0aW5nIGF3YXkgdG8gbWFr
ZSBzdXJlIHdlIGhhdmUgZG9uZSBsYXlvdXQgZHVlIHRvIHRoZSByZXNpemluZy4KICAgIHdpbmRv
dy5zZXRUaW1lb3V0KCJuYXZpZ2F0ZUF3YXlBbmRCYWNrKCkiLCAyMDApOwp9Cgo8L3NjcmlwdD4K
PGJvZHkgb25sb2FkPSdydW5UZXN0U3RlcCgpJyBzdHlsZT0iYmFja2dyb3VuZDogeWVsbG93Ij4K
ICA8YSBpZD0nYW5jaG9yJyBocmVmPSdkYXRhOnRleHQvaHRtbCw8Ym9keSBvbmxvYWQ9IndpbmRv
dy5yZXNpemVUbygxMDAwLCAxMDAwKTsgaGlzdG9yeS5iYWNrKCkiPjwvYm9keT4nPmdvIGF3YXks
IHJlc2l6ZSB3aW5kb3csIGFuZCBjb21lIGJhY2s8L2E+CjwvYm9keT4KPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>38572</attachid>
            <date>2009-08-25 15:47:35 -0700</date>
            <delta_ts>2009-08-25 17:56:54 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>6281</size>
            <attacher name="Dmitry Titov">dimich</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAzNmUzMDBhLi5hZjllZmFiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMDktMDgt
MjUgIERtaXRyeSBUaXRvdiAgPGRpbWljaEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGltZXJzIGZyb20gY2FjaGVkIHBhZ2Vz
IGZpcmUgaW5zdGFudGx5IHJhdGhlciB0aGFuIHRoZSBzcGVjaWZpZWQgdGltZW91dCBkZWxheQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjg2ODMKKwor
ICAgICAgICBBZGRlZCB0ZXN0IHRvIHZlcmlmeSB0aGUgZml4IC0gaXQgdXNlcyBwYWdlIGNhY2hl
IGFuZCBtZWFzdXJlcyB0aGUgdGltZXIgY2FsbGJhY2sgZmlyZSB0aW1lLgorCisgICAgICAgICog
ZmFzdC9kb20vV2luZG93L3RpbWVyLXJlc3VtZS1vbi1uYXZpZ2F0aW9uLWJhY2stZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9XaW5kb3cvdGltZXItcmVzdW1lLW9uLW5h
dmlnYXRpb24tYmFjay5odG1sOiBBZGRlZC4KKwogMjAwOS0wOC0yNSAgTWFkcyBBZ2VyICA8YWdl
ckBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy90aW1lci1yZXN1bWUtb24tbmF2aWdh
dGlvbi1iYWNrLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy90aW1l
ci1yZXN1bWUtb24tbmF2aWdhdGlvbi1iYWNrLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi5iYmVhODBlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vV2luZG93L3RpbWVyLXJlc3VtZS1vbi1uYXZpZ2F0aW9uLWJhY2stZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorVGhpcyB0ZXN0IHZlcmlmaWVzIHRoYXQgd2hlbiBwYWdl
IGlzIGxvYWRlZCBmcm9tIHRoZSBwYWdlIGNhY2hlIG9uIG5hdmlnYXRpb24gYmFjaywgdGhlIHN1
c3BlbmRlZCB0aW1lcnMgYXJlIHJlc3VtZWQgZm9yIGEgZHVyYXRpb24gbGVmdCB3aGVuIHRoZXkg
d2VyZSBzdXNwZW5kZWQuIFRoaXMgaXMgYSB0ZXN0IGZvciBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9Mjg2ODMuCitUaGUgdGVzdCBuYXZpZ2F0ZXMgdG8gYSBwYWdlLCBz
dGFydHMgYSB0aW1lciBhbmQgdGhlbiBuYXZpZ2F0ZXMgdG8gYW5vdGhlciBwYWdlIGFuZCBiYWNr
LiBJdCB0aGVuIG1lYXN1cmVzIHRpbWUgd2hlbiB0aGUgdGltZXIgaXMgYWN0dWFsbHkgZmlyZWQg
YW5kIG1ha2VzIHN1cmUgdGhhdCBpdCBpcyBhdCBsZWFzdCB0aGUgdGltZSBzZXQgYXQgdGhlIGJl
Z2lubmluZy4gSWYgc3VjY2Vzc2Z1bCwgaXQgb3V0cHV0cyAnUEFTUycgYmVsb3cuCitQQVNTIHdp
dGggMjA2IG1zIGRlbGF5LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93
L3RpbWVyLXJlc3VtZS1vbi1uYXZpZ2F0aW9uLWJhY2suaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL1dpbmRvdy90aW1lci1yZXN1bWUtb24tbmF2aWdhdGlvbi1iYWNrLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjU5MmRlYQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy90aW1lci1yZXN1bWUtb24tbmF2aWdhdGlvbi1iYWNr
Lmh0bWwKQEAgLTAsMCArMSwzMiBAQAorPGh0bWw+Cis8c2NyaXB0PgordmFyIHRpbWVvdXRWYWx1
ZSA9IDIwMDsgLy9tcworCit2YXIgdGltZXN0YW1wOworZnVuY3Rpb24gdmVyaWZ5KCkgeworICAg
IHZhciBhY3R1YWxUaW1lckRlbGF5ID0gIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC0gdGltZXN0YW1w
OworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKS5pbm5lckhUTUwgPSAKKyAg
ICAgICAgKGFjdHVhbFRpbWVyRGVsYXkgPiB0aW1lb3V0VmFsdWUgPyAnUEFTUycgOiAnRkFJTCcp
ICsgJyB3aXRoICcgKyBhY3R1YWxUaW1lckRlbGF5ICsgJyBtcyBkZWxheS4nOworCisgICAgaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
Lm5vdGlmeURvbmUoKTsKK30KKworZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICBpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1w
QXNUZXh0KCk7CisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Cisg
ICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktpdFVzZXNQ
YWdlQ2FjaGVQcmVmZXJlbmNlS2V5IiwgMSk7CisgICAgfQorICAgIHdpbmRvdy5zZXRUaW1lb3V0
KCJ2ZXJpZnkoKSIsIHRpbWVvdXRWYWx1ZSk7CisgICAgdGltZXN0YW1wID0gbmV3IERhdGUoKS5n
ZXRUaW1lKCk7CisgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSAiZGF0YTp0ZXh0L2h0bWwsPGJv
ZHkgb25sb2FkPSdoaXN0b3J5LmJhY2soKSc+PC9ib2R5PiI7Cit9CisKKzwvc2NyaXB0PgorPGJv
ZHkgb25sb2FkPSdydW5UZXN0KCknPgorVGhpcyB0ZXN0IHZlcmlmaWVzIHRoYXQgd2hlbiBwYWdl
IGlzIGxvYWRlZCBmcm9tIHRoZSBwYWdlIGNhY2hlIG9uIG5hdmlnYXRpb24gYmFjaywgdGhlIHN1
c3BlbmRlZCB0aW1lcnMgYXJlIHJlc3VtZWQgZm9yIGEgZHVyYXRpb24gbGVmdCB3aGVuIHRoZXkg
d2VyZSBzdXNwZW5kZWQuIFRoaXMgaXMgYSB0ZXN0IGZvciBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9Mjg2ODMuPGJyPgorVGhlIHRlc3QgbmF2aWdhdGVzIHRvIGEgcGFn
ZSwgc3RhcnRzIGEgdGltZXIgYW5kIHRoZW4gbmF2aWdhdGVzIHRvIGFub3RoZXIgcGFnZSBhbmQg
YmFjay4gSXQgdGhlbiBtZWFzdXJlcyB0aW1lIHdoZW4gdGhlIHRpbWVyIGlzIGFjdHVhbGx5IGZp
cmVkIGFuZCBtYWtlcyBzdXJlIHRoYXQgaXQgaXMgYXQgbGVhc3QgdGhlIHRpbWUgc2V0IGF0IHRo
ZSBiZWdpbm5pbmcuIElmIHN1Y2Nlc3NmdWwsIGl0IG91dHB1dHMgJ1BBU1MnIGJlbG93LgorPGRp
diBpZD0icmVzdWx0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dlYkNv
cmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmZjNDM1ZC4uM2FkNTcxYiAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyMSBAQAorMjAwOS0wOC0yNSAgRG1pdHJ5IFRpdG92ICA8ZGltaWNoQGNocm9taXVt
Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBU
aW1lcnMgZnJvbSBjYWNoZWQgcGFnZXMgZmlyZSBpbnN0YW50bHkgcmF0aGVyIHRoYW4gdGhlIHNw
ZWNpZmllZCB0aW1lb3V0IGRlbGF5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yODY4MworCisgICAgICAgIFRlc3Q6IGZhc3QvZG9tL1dpbmRvdy90aW1l
ci1yZXN1bWUtb24tbmF2aWdhdGlvbi1iYWNrLmh0bWwKKworICAgICAgICAqIGhpc3RvcnkvQ2Fj
aGVkUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRQYWdlOjpyZXN0b3JlKToKKyAg
ICAgICAgcmVtb3ZlIGR1cGxpY2F0ZWQgRnJhbWU6OnJlc3RvcmUoKSBjYWxsLCBpdCBzaG91bGQg
YmUgZG9uZSBvbmx5IG9uY2UgaW4gRnJhZUxvYWRlcjo6b3BlbihjYWNoZWRGcmFtZSkKKyAgICAg
ICAgKiBwYWdlL0RPTVRpbWVyLmNwcDogYWRkZWQgYSBkZWJ1Zy1vbmx5IGZsYWcgYW5kIEFTU0VS
VCB0byBjYXRjaCBvdXQtb2Ytb3JkZXIgc3VzcGVuc2UvcmVzdG9yZS4KKyAgICAgICAgKFdlYkNv
cmU6OkRPTVRpbWVyOjpET01UaW1lcik6IGRpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RE9NVGlt
ZXI6OnN1c3BlbmQpOiBkaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkRPTVRpbWVyOjpyZXN1bWUp
OiBkaXR0by4KKyAgICAgICAgKiBwYWdlL0RPTVRpbWVyLmg6IGRpdHRvLgorCiAyMDA5LTA4LTI1
ICBDaHJpcyBNYXJyaW4gIDxjbWFycmluQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBTaW1vbiBGcmFzZXIuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2hpc3RvcnkvQ2FjaGVkUGFnZS5j
cHAgYi9XZWJDb3JlL2hpc3RvcnkvQ2FjaGVkUGFnZS5jcHAKaW5kZXggODg5OGNlMi4uOGE0MWRj
MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9oaXN0b3J5L0NhY2hlZFBhZ2UuY3BwCisrKyBiL1dlYkNv
cmUvaGlzdG9yeS9DYWNoZWRQYWdlLmNwcApAQCAtNjcsNyArNjcsNiBAQCBDYWNoZWRQYWdlOjp+
Q2FjaGVkUGFnZSgpCiB2b2lkIENhY2hlZFBhZ2U6OnJlc3RvcmUoUGFnZSogcGFnZSkKIHsKICAg
ICBBU1NFUlQocGFnZSAmJiBwYWdlLT5tYWluRnJhbWUoKSAmJiBwYWdlLT5tYWluRnJhbWUoKSA9
PSBtX2NhY2hlZE1haW5GcmFtZS0+dmlldygpLT5mcmFtZSgpKTsKLSAgICBtX2NhY2hlZE1haW5G
cmFtZS0+cmVzdG9yZSgpOwogCiAgICAgLy8gUmVzdG9yZSB0aGUgZm9jdXMgYXBwZWFyYW5jZSBm
b3IgdGhlIGZvY3VzZWQgZWxlbWVudC4KICAgICAvLyBGSVhNRTogUmlnaHQgbm93IHdlIGRvbid0
IHN1cHBvcnQgcGFnZXMgdy8gZnJhbWVzIGluIHRoZSBiL2YgY2FjaGUuICBUaGlzIG1heSBuZWVk
IHRvIGJlIHR3ZWFrZWQgd2hlbiB3ZSBhZGQgc3VwcG9ydCBmb3IgdGhhdC4KZGlmZiAtLWdpdCBh
L1dlYkNvcmUvcGFnZS9ET01UaW1lci5jcHAgYi9XZWJDb3JlL3BhZ2UvRE9NVGltZXIuY3BwCmlu
ZGV4IGM0MmEwZGMuLjZkZDMwMTMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9ET01UaW1lci5j
cHAKKysrIGIvV2ViQ29yZS9wYWdlL0RPTVRpbWVyLmNwcApAQCAtNDcsNiArNDcsOSBAQCBET01U
aW1lcjo6RE9NVGltZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgU2NoZWR1bGVk
QWN0aW9uKiBhY3Rpb24sIGludAogICAgICwgbV9hY3Rpb24oYWN0aW9uKQogICAgICwgbV9uZXh0
RmlyZUludGVydmFsKDApCiAgICAgLCBtX3JlcGVhdEludGVydmFsKDApCisjaWZuZGVmIE5ERUJV
RworICAgICwgbV9zdXNwZW5kZWQoZmFsc2UpCisjZW5kaWYKIHsKICAgICBzdGF0aWMgaW50IGxh
c3RVc2VkVGltZW91dElkID0gMDsKICAgICArK2xhc3RVc2VkVGltZW91dElkOwpAQCAtMTQ4LDcg
KzE1MSwxMCBAQCB2b2lkIERPTVRpbWVyOjpzdG9wKCkKIAogdm9pZCBET01UaW1lcjo6c3VzcGVu
ZCgpCiB7Ci0gICAgQVNTRVJUKCFtX25leHRGaXJlSW50ZXJ2YWwgJiYgIW1fcmVwZWF0SW50ZXJ2
YWwpOworI2lmbmRlZiBOREVCVUcKKyAgICBBU1NFUlQoIW1fc3VzcGVuZGVkKTsKKyAgICBtX3N1
c3BlbmRlZCA9IHRydWU7CisjZW5kaWYKICAgICBtX25leHRGaXJlSW50ZXJ2YWwgPSBuZXh0Rmly
ZUludGVydmFsKCk7CiAgICAgbV9yZXBlYXRJbnRlcnZhbCA9IHJlcGVhdEludGVydmFsKCk7CiAg
ICAgVGltZXJCYXNlOjpzdG9wKCk7CkBAIC0xNTYsOSArMTYyLDExIEBAIHZvaWQgRE9NVGltZXI6
OnN1c3BlbmQoKQogCiB2b2lkIERPTVRpbWVyOjpyZXN1bWUoKQogeworI2lmbmRlZiBOREVCVUcK
KyAgICBBU1NFUlQobV9zdXNwZW5kZWQpOworICAgIG1fc3VzcGVuZGVkID0gZmFsc2U7CisjZW5k
aWYKICAgICBzdGFydChtX25leHRGaXJlSW50ZXJ2YWwsIG1fcmVwZWF0SW50ZXJ2YWwpOwotICAg
IG1fbmV4dEZpcmVJbnRlcnZhbCA9IDA7Ci0gICAgbV9yZXBlYXRJbnRlcnZhbCA9IDA7CiB9CiAK
IApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0RPTVRpbWVyLmggYi9XZWJDb3JlL3BhZ2UvRE9N
VGltZXIuaAppbmRleCA2ZDYyNzFmLi5lNzdjZmJjIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2Uv
RE9NVGltZXIuaAorKysgYi9XZWJDb3JlL3BhZ2UvRE9NVGltZXIuaApAQCAtNjYsNiArNjYsOSBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIE93blB0cjxTY2hlZHVsZWRBY3Rpb24+IG1f
YWN0aW9uOwogICAgICAgICBkb3VibGUgbV9uZXh0RmlyZUludGVydmFsOwogICAgICAgICBkb3Vi
bGUgbV9yZXBlYXRJbnRlcnZhbDsKKyNpZm5kZWYgTkRFQlVHCisgICAgICAgIGJvb2wgbV9zdXNw
ZW5kZWQ7CisjZW5kaWYKICAgICAgICAgc3RhdGljIGRvdWJsZSBzX21pblRpbWVySW50ZXJ2YWw7
CiAgICAgfTsKIAo=
</data>
<flag name="review"
          id="19579"
          type_id="1"
          status="-"
          setter="beidson"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>38582</attachid>
            <date>2009-08-25 17:35:18 -0700</date>
            <delta_ts>2009-08-25 17:35:18 -0700</delta_ts>
            <desc>Test page to find out what FF is doing.</desc>
            <filename>test-of-duration.html</filename>
            <type>text/html</type>
            <size>558</size>
            <attacher name="Dmitry Titov">dimich</attacher>
            
              <data encoding="base64">PGh0bWw+CjxzY3JpcHQ+CnZhciB0aW1lb3V0VmFsdWUgPSAxMDAwOyAvL21zCgp2YXIgdGltZXN0
YW1wOwpmdW5jdGlvbiB2ZXJpZnkoKSB7CiAgICB2YXIgYWN0dWFsVGltZXJEZWxheSA9ICBuZXcg
RGF0ZSgpLmdldFRpbWUoKSAtIHRpbWVzdGFtcDsKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJyZXN1bHQiKS5pbm5lckhUTUwgPSAidGltZXIgZmlyZWQgYWZ0ZXIgIiArIGFjdHVhbFRpbWVy
RGVsYXkgKyAiIG1zIjsKfQoKZnVuY3Rpb24gcnVuVGVzdCgpIHsKICAgIHdpbmRvdy5zZXRUaW1l
b3V0KCJ2ZXJpZnkoKSIsIHRpbWVvdXRWYWx1ZSk7CiAgICB0aW1lc3RhbXAgPSBuZXcgRGF0ZSgp
LmdldFRpbWUoKTsKICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gImRhdGE6dGV4dC9odG1sLDxi
b2R5IG9ubG9hZD0nc2V0VGltZW91dChcIndpbmRvdy5oaXN0b3J5LmJhY2soKVwiLCA1MDApJz48
L2JvZHk+IjsKfQoKPC9zY3JpcHQ+Cjxib2R5IG9ubG9hZD0nc2V0VGltZW91dChydW5UZXN0LCAy
MCknPgo8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2Pgo8L2JvZHk+CjwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>38584</attachid>
            <date>2009-08-25 17:56:54 -0700</date>
            <delta_ts>2009-08-25 20:13:56 -0700</delta_ts>
            <desc>Updated patch.</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>6302</size>
            <attacher name="Dmitry Titov">dimich</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAzNmUzMDBhLi5hZjllZmFiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMDktMDgt
MjUgIERtaXRyeSBUaXRvdiAgPGRpbWljaEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGltZXJzIGZyb20gY2FjaGVkIHBhZ2Vz
IGZpcmUgaW5zdGFudGx5IHJhdGhlciB0aGFuIHRoZSBzcGVjaWZpZWQgdGltZW91dCBkZWxheQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjg2ODMKKwor
ICAgICAgICBBZGRlZCB0ZXN0IHRvIHZlcmlmeSB0aGUgZml4IC0gaXQgdXNlcyBwYWdlIGNhY2hl
IGFuZCBtZWFzdXJlcyB0aGUgdGltZXIgY2FsbGJhY2sgZmlyZSB0aW1lLgorCisgICAgICAgICog
ZmFzdC9kb20vV2luZG93L3RpbWVyLXJlc3VtZS1vbi1uYXZpZ2F0aW9uLWJhY2stZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9XaW5kb3cvdGltZXItcmVzdW1lLW9uLW5h
dmlnYXRpb24tYmFjay5odG1sOiBBZGRlZC4KKwogMjAwOS0wOC0yNSAgTWFkcyBBZ2VyICA8YWdl
ckBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy90aW1lci1yZXN1bWUtb24tbmF2aWdh
dGlvbi1iYWNrLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy90aW1l
ci1yZXN1bWUtb24tbmF2aWdhdGlvbi1iYWNrLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi42ZmVlZTI1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vV2luZG93L3RpbWVyLXJlc3VtZS1vbi1uYXZpZ2F0aW9uLWJhY2stZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorVGhpcyB0ZXN0IHZlcmlmaWVzIHRoYXQgd2hlbiBwYWdl
IGlzIGxvYWRlZCBmcm9tIHRoZSBwYWdlIGNhY2hlIG9uIG5hdmlnYXRpb24gYmFjaywgdGhlIHN1
c3BlbmRlZCB0aW1lcnMgYXJlIHJlc3VtZWQgZm9yIGEgZHVyYXRpb24gbGVmdCB3aGVuIHRoZXkg
d2VyZSBzdXNwZW5kZWQuIFRoaXMgaXMgYSB0ZXN0IGZvciBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9Mjg2ODMuCitUaGUgdGVzdCBuYXZpZ2F0ZXMgdG8gYSBwYWdlLCBz
dGFydHMgYSB0aW1lciBhbmQgdGhlbiBuYXZpZ2F0ZXMgdG8gYW5vdGhlciBwYWdlIGFuZCBiYWNr
LiBJdCB0aGVuIG1lYXN1cmVzIHRpbWUgd2hlbiB0aGUgdGltZXIgaXMgYWN0dWFsbHkgZmlyZWQg
YW5kIG1ha2VzIHN1cmUgdGhhdCBpdCBpcyBhdCBsZWFzdCB0aGUgdGltZSBzZXQgYXQgdGhlIGJl
Z2lubmluZy4gSWYgc3VjY2Vzc2Z1bCwgaXQgb3V0cHV0cyAnUEFTUycgYmVsb3cuCitQQVNTCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvdGltZXItcmVzdW1lLW9uLW5h
dmlnYXRpb24tYmFjay5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3RpbWVyLXJl
c3VtZS1vbi1uYXZpZ2F0aW9uLWJhY2suaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi5iMTVkZTk4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
V2luZG93L3RpbWVyLXJlc3VtZS1vbi1uYXZpZ2F0aW9uLWJhY2suaHRtbApAQCAtMCwwICsxLDMy
IEBACis8aHRtbD4KKzxzY3JpcHQ+Cit2YXIgdGltZW91dFZhbHVlID0gMTAwOyAvL21zCisKK3Zh
ciB0aW1lc3RhbXA7CitmdW5jdGlvbiB2ZXJpZnkoKSB7CisgICAgdmFyIGFjdHVhbFRpbWVyRGVs
YXkgPSAgbmV3IERhdGUoKS5nZXRUaW1lKCkgLSB0aW1lc3RhbXA7CisgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInJlc3VsdCIpLmlubmVySFRNTCA9IAorICAgICAgICBhY3R1YWxUaW1lckRl
bGF5ID49IHRpbWVvdXRWYWx1ZSA/ICdQQVNTJyA6ICdGQUlMIHdpdGggJyArIGFjdHVhbFRpbWVy
RGVsYXkgKyAnIG1zIGRlbGF5Lic7CisKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQorICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworfQorCitmdW5j
dGlvbiBydW5UZXN0KCkgeworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsK
KyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
Lm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0VXNlc1BhZ2VDYWNoZVByZWZlcmVuY2VLZXkiLCAx
KTsKKyAgICB9CisgICAgd2luZG93LnNldFRpbWVvdXQoInZlcmlmeSgpIiwgdGltZW91dFZhbHVl
KTsKKyAgICB0aW1lc3RhbXAgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTsKKyAgICB3aW5kb3cubG9j
YXRpb24uaHJlZiA9ICJkYXRhOnRleHQvaHRtbCw8Ym9keSBvbmxvYWQ9J2hpc3RvcnkuYmFjaygp
Jz48L2JvZHk+IjsKK30KKworPC9zY3JpcHQ+Cis8Ym9keSBvbmxvYWQ9J3J1blRlc3QoKSc+CitU
aGlzIHRlc3QgdmVyaWZpZXMgdGhhdCB3aGVuIHBhZ2UgaXMgbG9hZGVkIGZyb20gdGhlIHBhZ2Ug
Y2FjaGUgb24gbmF2aWdhdGlvbiBiYWNrLCB0aGUgc3VzcGVuZGVkIHRpbWVycyBhcmUgcmVzdW1l
ZCBmb3IgYSBkdXJhdGlvbiBsZWZ0IHdoZW4gdGhleSB3ZXJlIHN1c3BlbmRlZC4gVGhpcyBpcyBh
IHRlc3QgZm9yIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yODY4My48
YnI+CitUaGUgdGVzdCBuYXZpZ2F0ZXMgdG8gYSBwYWdlLCBzdGFydHMgYSB0aW1lciBhbmQgdGhl
biBuYXZpZ2F0ZXMgdG8gYW5vdGhlciBwYWdlIGFuZCBiYWNrLiBJdCB0aGVuIG1lYXN1cmVzIHRp
bWUgd2hlbiB0aGUgdGltZXIgaXMgYWN0dWFsbHkgZmlyZWQgYW5kIG1ha2VzIHN1cmUgdGhhdCBp
dCBpcyBhdCBsZWFzdCB0aGUgdGltZSBzZXQgYXQgdGhlIGJlZ2lubmluZy4gSWYgc3VjY2Vzc2Z1
bCwgaXQgb3V0cHV0cyAnUEFTUycgYmVsb3cuCis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBiZmM0MzVkLi45OWRlODE5IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5n
ZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDA5LTA4LTI1
ICBEbWl0cnkgVGl0b3YgIDxkaW1pY2hAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRpbWVycyBmcm9tIGNhY2hlZCBwYWdlcyBm
aXJlIGluc3RhbnRseSByYXRoZXIgdGhhbiB0aGUgYWZ0ZXIgdGhlIHNwZWNpZmllZCB0aW1lb3V0
IGRlbGF5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
ODY4MworCisgICAgICAgIFRlc3Q6IGZhc3QvZG9tL1dpbmRvdy90aW1lci1yZXN1bWUtb24tbmF2
aWdhdGlvbi1iYWNrLmh0bWwKKworICAgICAgICAqIGhpc3RvcnkvQ2FjaGVkUGFnZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDYWNoZWRQYWdlOjpyZXN0b3JlKTogUmVtb3ZlIGR1cGxpY2F0ZWQg
RnJhbWU6OnJlc3RvcmUoKSBjYWxsLCBzaW5jZSAKKyAgICAgICAgICAgIGl0IHNob3VsZCBiZSBk
b25lIG9ubHkgb25jZSBpbiBGcmFtZUxvYWRlcjo6b3BlbihjYWNoZWRGcmFtZSkKKyAgICAgICAg
KiBwYWdlL0RPTVRpbWVyLmNwcDogQWRkZWQgYSBkZWJ1Zy1vbmx5IGZsYWcgYW5kIEFTU0VSVCB0
byBjYXRjaCBvdXQtb2Ytb3JkZXIgc3VzcGVuc2UvcmVzdG9yZS4KKyAgICAgICAgKFdlYkNvcmU6
OkRPTVRpbWVyOjpET01UaW1lcik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RE9NVGltZXI6
OnN1c3BlbmQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkRPTVRpbWVyOjpyZXN1bWUpOiBE
aXR0by4KKyAgICAgICAgKiBwYWdlL0RPTVRpbWVyLmg6IERpdHRvLgorCiAyMDA5LTA4LTI1ICBD
aHJpcyBNYXJyaW4gIDxjbWFycmluQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBT
aW1vbiBGcmFzZXIuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2hpc3RvcnkvQ2FjaGVkUGFnZS5jcHAg
Yi9XZWJDb3JlL2hpc3RvcnkvQ2FjaGVkUGFnZS5jcHAKaW5kZXggODg5OGNlMi4uOGE0MWRjMyAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9oaXN0b3J5L0NhY2hlZFBhZ2UuY3BwCisrKyBiL1dlYkNvcmUv
aGlzdG9yeS9DYWNoZWRQYWdlLmNwcApAQCAtNjcsNyArNjcsNiBAQCBDYWNoZWRQYWdlOjp+Q2Fj
aGVkUGFnZSgpCiB2b2lkIENhY2hlZFBhZ2U6OnJlc3RvcmUoUGFnZSogcGFnZSkKIHsKICAgICBB
U1NFUlQocGFnZSAmJiBwYWdlLT5tYWluRnJhbWUoKSAmJiBwYWdlLT5tYWluRnJhbWUoKSA9PSBt
X2NhY2hlZE1haW5GcmFtZS0+dmlldygpLT5mcmFtZSgpKTsKLSAgICBtX2NhY2hlZE1haW5GcmFt
ZS0+cmVzdG9yZSgpOwogCiAgICAgLy8gUmVzdG9yZSB0aGUgZm9jdXMgYXBwZWFyYW5jZSBmb3Ig
dGhlIGZvY3VzZWQgZWxlbWVudC4KICAgICAvLyBGSVhNRTogUmlnaHQgbm93IHdlIGRvbid0IHN1
cHBvcnQgcGFnZXMgdy8gZnJhbWVzIGluIHRoZSBiL2YgY2FjaGUuICBUaGlzIG1heSBuZWVkIHRv
IGJlIHR3ZWFrZWQgd2hlbiB3ZSBhZGQgc3VwcG9ydCBmb3IgdGhhdC4KZGlmZiAtLWdpdCBhL1dl
YkNvcmUvcGFnZS9ET01UaW1lci5jcHAgYi9XZWJDb3JlL3BhZ2UvRE9NVGltZXIuY3BwCmluZGV4
IGM0MmEwZGMuLmRkMWU4NDIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9ET01UaW1lci5jcHAK
KysrIGIvV2ViQ29yZS9wYWdlL0RPTVRpbWVyLmNwcApAQCAtNDcsNiArNDcsOSBAQCBET01UaW1l
cjo6RE9NVGltZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgU2NoZWR1bGVkQWN0
aW9uKiBhY3Rpb24sIGludAogICAgICwgbV9hY3Rpb24oYWN0aW9uKQogICAgICwgbV9uZXh0Rmly
ZUludGVydmFsKDApCiAgICAgLCBtX3JlcGVhdEludGVydmFsKDApCisjaWYgIUFTU0VSVF9ESVNB
QkxFRAorICAgICwgbV9zdXNwZW5kZWQoZmFsc2UpCisjZW5kaWYKIHsKICAgICBzdGF0aWMgaW50
IGxhc3RVc2VkVGltZW91dElkID0gMDsKICAgICArK2xhc3RVc2VkVGltZW91dElkOwpAQCAtMTQ4
LDcgKzE1MSwxMCBAQCB2b2lkIERPTVRpbWVyOjpzdG9wKCkKIAogdm9pZCBET01UaW1lcjo6c3Vz
cGVuZCgpCiB7Ci0gICAgQVNTRVJUKCFtX25leHRGaXJlSW50ZXJ2YWwgJiYgIW1fcmVwZWF0SW50
ZXJ2YWwpOworI2lmICFBU1NFUlRfRElTQUJMRUQKKyAgICBBU1NFUlQoIW1fc3VzcGVuZGVkKTsK
KyAgICBtX3N1c3BlbmRlZCA9IHRydWU7CisjZW5kaWYKICAgICBtX25leHRGaXJlSW50ZXJ2YWwg
PSBuZXh0RmlyZUludGVydmFsKCk7CiAgICAgbV9yZXBlYXRJbnRlcnZhbCA9IHJlcGVhdEludGVy
dmFsKCk7CiAgICAgVGltZXJCYXNlOjpzdG9wKCk7CkBAIC0xNTYsOSArMTYyLDExIEBAIHZvaWQg
RE9NVGltZXI6OnN1c3BlbmQoKQogCiB2b2lkIERPTVRpbWVyOjpyZXN1bWUoKQogeworI2lmICFB
U1NFUlRfRElTQUJMRUQKKyAgICBBU1NFUlQobV9zdXNwZW5kZWQpOworICAgIG1fc3VzcGVuZGVk
ID0gZmFsc2U7CisjZW5kaWYKICAgICBzdGFydChtX25leHRGaXJlSW50ZXJ2YWwsIG1fcmVwZWF0
SW50ZXJ2YWwpOwotICAgIG1fbmV4dEZpcmVJbnRlcnZhbCA9IDA7Ci0gICAgbV9yZXBlYXRJbnRl
cnZhbCA9IDA7CiB9CiAKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0RPTVRpbWVyLmggYi9X
ZWJDb3JlL3BhZ2UvRE9NVGltZXIuaAppbmRleCA2ZDYyNzFmLi4zYzY1MjU4IDEwMDY0NAotLS0g
YS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIuaAorKysgYi9XZWJDb3JlL3BhZ2UvRE9NVGltZXIuaApA
QCAtNjYsNiArNjYsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIE93blB0cjxTY2hl
ZHVsZWRBY3Rpb24+IG1fYWN0aW9uOwogICAgICAgICBkb3VibGUgbV9uZXh0RmlyZUludGVydmFs
OwogICAgICAgICBkb3VibGUgbV9yZXBlYXRJbnRlcnZhbDsKKyNpZiAhQVNTRVJUX0RJU0FCTEVE
CisgICAgICAgIGJvb2wgbV9zdXNwZW5kZWQ7CisjZW5kaWYKICAgICAgICAgc3RhdGljIGRvdWJs
ZSBzX21pblRpbWVySW50ZXJ2YWw7CiAgICAgfTsKIAo=
</data>
<flag name="review"
          id="19589"
          type_id="1"
          status="+"
          setter="beidson"
    />
          </attachment>
      

    </bug>

</bugzilla>