<?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>24719</bug_id>
          
          <creation_ts>2009-03-20 11:11:01 -0700</creation_ts>
          <short_desc>QTMovieWinTimer logic inversion</short_desc>
          <delta_ts>2009-03-23 08:28: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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Eric Carlson">eric.carlson</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>114515</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2009-03-20 11:11:01 -0700</bug_when>
    <thetext>The Win32 timer used by QTMovieWin has a logic error that causes it to always use SetTimer(), even when the callback interval is below USER_TIMER_MINIMUM. A side effect of this is that the movie timer is sometimes blocked for significant amounts of time because (low priority) WM_TIMER messages are not processed when the thread&apos;s message queue has any higher priority messages, and WebCore/Win&apos;s timer uses (high priority) PostMessage for low interval timers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>114516</commentid>
    <comment_count>1</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2009-03-20 11:11:53 -0700</bug_when>
    <thetext>rdar://6704282</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>114518</commentid>
    <comment_count>2</comment_count>
      <attachid>28789</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2009-03-20 11:30:25 -0700</bug_when>
    <thetext>Created attachment 28789
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>114527</commentid>
    <comment_count>3</comment_count>
      <attachid>28789</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2009-03-20 12:04:46 -0700</bug_when>
    <thetext>Comment on attachment 28789
proposed patch

&gt; Index: WebCore/ChangeLog
&gt; ===================================================================
&gt; --- WebCore/ChangeLog	(revision 41862)
&gt; +++ WebCore/ChangeLog	(working copy)
&gt; @@ -1,3 +1,25 @@
&gt; +2009-03-20  Eric Carlson  &lt;eric.carlson@apple.com&gt;
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        &lt;rdar://problem/6704282&gt;
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=24719
&gt; +        QTMovieWinTimer logic inversion
&gt; +
&gt; +        Fix logic inversion in the Win32 timer used by QTMovieWin that caused it to always
&gt; +        use SetTimer, even when the intervals was below USER_TIMER_MINIMUM. A side effect of
&gt; +        this is that the movie timer is sometimes blocked for significant amounts of time 
&gt; +        because WM_TIMER messages are not processed when the thread&apos;s message queue has any
&gt; +        higher priority messages, and WebCore/Win&apos;s timer uses PostMessage for low interval
&gt; +        timers.

I&apos;m not sure from this comment whether the movie timer is now blocked due to your change, or whether it was getting blocked before your change and no longer will.

&gt; +        Not possible to make a test for this because it is so timeing dependant.

Typo: timeing

&gt; @@ -51,7 +51,9 @@ static LRESULT CALLBACK TimerWindowWndPr
&gt;          processingCustomTimerMessage = true;
&gt;          sharedTimerFiredFunction();
&gt;          processingCustomTimerMessage = false;
&gt; -    } else
&gt; +    } else if (message == WM_TIMER) {
&gt; +        sharedTimerFiredFunction();
&gt; +	} else

Should we call KillTimer here? WebCore does that. If we don&apos;t do that, WM_TIMER will continue being sent to this window forever.

The braces around the body of the else if case should be removed. It looks like you have a tab on the last modified line here.

&gt; @@ -99,23 +96,20 @@ void setSharedTimerFireDelay(double inte
&gt;              intervalInMS = (unsigned)interval;
&gt;      }
&gt;  
&gt; -    if (timerID) {
&gt; -        KillTimer(0, timerID);
&gt; -        timerID = 0;
&gt; -    }

Why don&apos;t we need this KillTimer call anymore?

&gt;      // We don&apos;t allow nested PostMessages, since the custom messages will effectively starve
&gt;      // painting and user input. (Win32 has a tri-level queue with application messages &gt; 
&gt;      // user input &gt; WM_PAINT/WM_TIMER.)
&gt;      // In addition, if the queue contains input events that have been there since the last call to
&gt;      // GetQueueStatus, PeekMessage or GetMessage we favor timers.

&gt; -    if (intervalInMS &lt; USER_TIMER_MINIMUM &amp;&amp; processingCustomTimerMessage &amp;&amp;
&gt; -        !LOWORD(::GetQueueStatus(QS_ALLINPUT))) {
&gt; +    if (intervalInMS &lt; USER_TIMER_MINIMUM 
&gt; +		&amp;&amp; !processingCustomTimerMessage 
&gt; +        &amp;&amp; !LOWORD(::GetQueueStatus(QS_ALLINPUT))) {

You have some tabs here.

&gt; -    } else
&gt; -        timerID = SetTimer(0, 0, intervalInMS, timerFired);
&gt; +	} else {
&gt; +        timerID = SetTimer(timerWindowHandle, timerFiredMessage, intervalInMS, 0);
&gt; +	}

It seems a little strange to use timerFiredMessage as the ID of the timer.

You have some tabs here. The braces around the body of the else should be removed.

r- for now until you convince me we really don&apos;t need to call KillTimer ;-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>114544</commentid>
    <comment_count>4</comment_count>
      <attachid>28798</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2009-03-20 12:55:35 -0700</bug_when>
    <thetext>Created attachment 28798
updated patch

Fixed the problems aroben noted and a few more.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>114763</commentid>
    <comment_count>5</comment_count>
      <attachid>28798</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2009-03-23 07:02:37 -0700</bug_when>
    <thetext>Comment on attachment 28798
updated patch

&gt; +    } else if (message == WM_TIMER &amp;&amp; wParam == timerID) {
&gt; +        KillTimer(hWnd, timerID);
&gt; +        timerID = 0;
&gt; +        sharedTimerFiredFunction();
&gt;      } else

Should we call stopSharedTimer here instead of duplicating its code?

It might be worth calling out that the bug fix here was the addition of the ! operator, since the other changes in the patch kind of obscure that fact.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>114770</commentid>
    <comment_count>6</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2009-03-23 08:28:46 -0700</bug_when>
    <thetext>Committed revision 41908.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>28789</attachid>
            <date>2009-03-20 11:30:25 -0700</date>
            <delta_ts>2009-03-20 12:55:35 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>3530</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0MTg2MikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjUgQEAKKzIwMDktMDMtMjAgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBh
cHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzY3MDQyODI+CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yNDcxOQorICAgICAgICBRVE1vdmllV2luVGltZXIgbG9naWMg
aW52ZXJzaW9uCisKKyAgICAgICAgRml4IGxvZ2ljIGludmVyc2lvbiBpbiB0aGUgV2luMzIgdGlt
ZXIgdXNlZCBieSBRVE1vdmllV2luIHRoYXQgY2F1c2VkIGl0IHRvIGFsd2F5cworICAgICAgICB1
c2UgU2V0VGltZXIsIGV2ZW4gd2hlbiB0aGUgaW50ZXJ2YWxzIHdhcyBiZWxvdyBVU0VSX1RJTUVS
X01JTklNVU0uIEEgc2lkZSBlZmZlY3Qgb2YKKyAgICAgICAgdGhpcyBpcyB0aGF0IHRoZSBtb3Zp
ZSB0aW1lciBpcyBzb21ldGltZXMgYmxvY2tlZCBmb3Igc2lnbmlmaWNhbnQgYW1vdW50cyBvZiB0
aW1lIAorICAgICAgICBiZWNhdXNlIFdNX1RJTUVSIG1lc3NhZ2VzIGFyZSBub3QgcHJvY2Vzc2Vk
IHdoZW4gdGhlIHRocmVhZCdzIG1lc3NhZ2UgcXVldWUgaGFzIGFueQorICAgICAgICBoaWdoZXIg
cHJpb3JpdHkgbWVzc2FnZXMsIGFuZCBXZWJDb3JlL1dpbidzIHRpbWVyIHVzZXMgUG9zdE1lc3Nh
Z2UgZm9yIGxvdyBpbnRlcnZhbAorICAgICAgICB0aW1lcnMuIEFsc28gY2hhbmdlIFNldFRpbWVy
IGNhbGwgdG8gdXNlIEhXTkQgYW5kIGN1c3RvbSBtZXNzYWdlIGluc3RlYWQgb2YgCisgICAgICAg
IHRpbWVyIGZ1bmN0aW9uIHNpbmNlIHRoZSB0aW1lciBhbHJlYWR5IGhhcyBhbiBIV05EIGZvciBw
cm9jZXNzaW5nIFBvc3RNZXNzYWdlLgorCisgICAgICAgIE5vdCBwb3NzaWJsZSB0byBtYWtlIGEg
dGVzdCBmb3IgdGhpcyBiZWNhdXNlIGl0IGlzIHNvIHRpbWVpbmcgZGVwZW5kYW50LgorCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1FUTW92aWVXaW5UaW1lci5jcHA6CisgICAgICAg
IChUaW1lcldpbmRvd1duZFByb2MpOgorICAgICAgICAoc2V0U2hhcmVkVGltZXJGaXJlRGVsYXkp
OgorCiAyMDA5LTAzLTIwICBEbWl0cnkgVGl0b3YgIDxkaW1pY2hAY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IERpbWl0cmkgR2xhemtvdi4KSW5kZXg6IFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvd2luL1FUTW92aWVXaW5UaW1lci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vUVRNb3ZpZVdpblRpbWVyLmNwcAkocmV2aXNpb24gNDE2
NTgpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9RVE1vdmllV2luVGltZXIuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC01MSw3ICs1MSw5IEBAIHN0YXRpYyBMUkVTVUxUIENBTExCQUNL
IFRpbWVyV2luZG93V25kUHIKICAgICAgICAgcHJvY2Vzc2luZ0N1c3RvbVRpbWVyTWVzc2FnZSA9
IHRydWU7CiAgICAgICAgIHNoYXJlZFRpbWVyRmlyZWRGdW5jdGlvbigpOwogICAgICAgICBwcm9j
ZXNzaW5nQ3VzdG9tVGltZXJNZXNzYWdlID0gZmFsc2U7Ci0gICAgfSBlbHNlCisgICAgfSBlbHNl
IGlmIChtZXNzYWdlID09IFdNX1RJTUVSKSB7CisgICAgICAgIHNoYXJlZFRpbWVyRmlyZWRGdW5j
dGlvbigpOworCX0gZWxzZQogICAgICAgICByZXR1cm4gRGVmV2luZG93UHJvYyhoV25kLCBtZXNz
YWdlLCB3UGFyYW0sIGxQYXJhbSk7CiAgICAgcmV0dXJuIDA7CiB9CkBAIC03OSwxMSArODEsNiBA
QCB2b2lkIHNldFNoYXJlZFRpbWVyRmlyZWRGdW5jdGlvbih2b2lkICgqCiAgICAgc2hhcmVkVGlt
ZXJGaXJlZEZ1bmN0aW9uID0gZjsKIH0KIAotc3RhdGljIHZvaWQgQ0FMTEJBQ0sgdGltZXJGaXJl
ZChIV05ELCBVSU5ULCBVSU5UX1BUUiwgRFdPUkQpCi17Ci0gICAgc2hhcmVkVGltZXJGaXJlZEZ1
bmN0aW9uKCk7Ci19Ci0KIHZvaWQgc2V0U2hhcmVkVGltZXJGaXJlRGVsYXkoZG91YmxlIGludGVy
dmFsKQogewogICAgIEFTU0VSVChzaGFyZWRUaW1lckZpcmVkRnVuY3Rpb24pOwpAQCAtOTksMjMg
Kzk2LDIwIEBAIHZvaWQgc2V0U2hhcmVkVGltZXJGaXJlRGVsYXkoZG91YmxlIGludGUKICAgICAg
ICAgICAgIGludGVydmFsSW5NUyA9ICh1bnNpZ25lZClpbnRlcnZhbDsKICAgICB9CiAKLSAgICBp
ZiAodGltZXJJRCkgewotICAgICAgICBLaWxsVGltZXIoMCwgdGltZXJJRCk7Ci0gICAgICAgIHRp
bWVySUQgPSAwOwotICAgIH0KLQogICAgIC8vIFdlIGRvbid0IGFsbG93IG5lc3RlZCBQb3N0TWVz
c2FnZXMsIHNpbmNlIHRoZSBjdXN0b20gbWVzc2FnZXMgd2lsbCBlZmZlY3RpdmVseSBzdGFydmUK
ICAgICAvLyBwYWludGluZyBhbmQgdXNlciBpbnB1dC4gKFdpbjMyIGhhcyBhIHRyaS1sZXZlbCBx
dWV1ZSB3aXRoIGFwcGxpY2F0aW9uIG1lc3NhZ2VzID4gCiAgICAgLy8gdXNlciBpbnB1dCA+IFdN
X1BBSU5UL1dNX1RJTUVSLikKICAgICAvLyBJbiBhZGRpdGlvbiwgaWYgdGhlIHF1ZXVlIGNvbnRh
aW5zIGlucHV0IGV2ZW50cyB0aGF0IGhhdmUgYmVlbiB0aGVyZSBzaW5jZSB0aGUgbGFzdCBjYWxs
IHRvCiAgICAgLy8gR2V0UXVldWVTdGF0dXMsIFBlZWtNZXNzYWdlIG9yIEdldE1lc3NhZ2Ugd2Ug
ZmF2b3IgdGltZXJzLgotICAgIGlmIChpbnRlcnZhbEluTVMgPCBVU0VSX1RJTUVSX01JTklNVU0g
JiYgcHJvY2Vzc2luZ0N1c3RvbVRpbWVyTWVzc2FnZSAmJgotICAgICAgICAhTE9XT1JEKDo6R2V0
UXVldWVTdGF0dXMoUVNfQUxMSU5QVVQpKSkgeworICAgIGlmIChpbnRlcnZhbEluTVMgPCBVU0VS
X1RJTUVSX01JTklNVU0gCisJCSYmICFwcm9jZXNzaW5nQ3VzdG9tVGltZXJNZXNzYWdlIAorICAg
ICAgICAmJiAhTE9XT1JEKDo6R2V0UXVldWVTdGF0dXMoUVNfQUxMSU5QVVQpKSkgewogICAgICAg
ICAvLyBXaW5kb3dzIFNldFRpbWVyIGRvZXMgbm90IGFsbG93IHRpbWVvdXRzIHNtYWxsZXIgdGhh
biAxMG1zIChVU0VSX1RJTUVSX01JTklNVU0pCiAgICAgICAgIGluaXRpYWxpemVPZmZTY3JlZW5U
aW1lcldpbmRvdygpOwogICAgICAgICBQb3N0TWVzc2FnZSh0aW1lcldpbmRvd0hhbmRsZSwgdGlt
ZXJGaXJlZE1lc3NhZ2UsIDAsIDApOwotICAgIH0gZWxzZQotICAgICAgICB0aW1lcklEID0gU2V0
VGltZXIoMCwgMCwgaW50ZXJ2YWxJbk1TLCB0aW1lckZpcmVkKTsKKwl9IGVsc2UgeworICAgICAg
ICB0aW1lcklEID0gU2V0VGltZXIodGltZXJXaW5kb3dIYW5kbGUsIHRpbWVyRmlyZWRNZXNzYWdl
LCBpbnRlcnZhbEluTVMsIDApOworCX0KIH0KIAogdm9pZCBzdG9wU2hhcmVkVGltZXIoKQo=
</data>
<flag name="review"
          id="14205"
          type_id="1"
          status="-"
          setter="aroben"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>28798</attachid>
            <date>2009-03-20 12:55:35 -0700</date>
            <delta_ts>2009-03-23 07:02:37 -0700</delta_ts>
            <desc>updated patch</desc>
            <filename>patch_2.txt</filename>
            <type>text/plain</type>
            <size>3790</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0MTg2MikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjUgQEAKKzIwMDktMDMtMjAgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBh
cHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzY3MDQyODI+CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yNDcxOQorICAgICAgICBRVE1vdmllV2luVGltZXIgbG9naWMg
aW52ZXJzaW9uCisKKyAgICAgICAgRml4IGxvZ2ljIGludmVyc2lvbiBpbiB0aGUgV2luMzIgdGlt
ZXIgdXNlZCBieSBRVE1vdmllV2luIHRoYXQgY2F1c2VkIGl0IHRvIGFsd2F5cworICAgICAgICB1
c2UgU2V0VGltZXIsIGV2ZW4gd2hlbiB0aGUgaW50ZXJ2YWxzIHdhcyBiZWxvdyBVU0VSX1RJTUVS
X01JTklNVU0uIEEgc2lkZSBlZmZlY3Qgb2YKKyAgICAgICAgdGhpcyB3YXMgdGhhdCBhIG1vdmll
IHRpbWVyIHdvdWxkIHNvbWV0aW1lcyBiZSBibG9ja2VkIGZvciBzaWduaWZpY2FudCBhbW91bnRz
IG9mIHRpbWUgCisgICAgICAgIGJlY2F1c2UgV01fVElNRVIgbWVzc2FnZXMgYXJlIG5vdCBwcm9j
ZXNzZWQgd2hlbiB0aGUgdGhyZWFkJ3MgbWVzc2FnZSBxdWV1ZSBoYXMgYW55CisgICAgICAgIGhp
Z2hlciBwcmlvcml0eSBtZXNzYWdlcywgYW5kIFdlYkNvcmUvV2luJ3MgdGltZXIgdXNlcyBQb3N0
TWVzc2FnZSBmb3IgbG93IGludGVydmFsCisgICAgICAgIHRpbWVycy4gQWxzbyBjaGFuZ2UgU2V0
VGltZXIgY2FsbCB0byB1c2UgSFdORCBhbmQgY3VzdG9tIG1lc3NhZ2UgaW5zdGVhZCBvZiAKKyAg
ICAgICAgdGltZXIgZnVuY3Rpb24gc2luY2UgdGhlIHRpbWVyIGFscmVhZHkgaGFzIGFuIEhXTkQg
Zm9yIHByb2Nlc3NpbmcgUG9zdE1lc3NhZ2UuCisKKyAgICAgICAgTm90IHBvc3NpYmxlIHRvIG1h
a2UgYSB0ZXN0IGZvciB0aGlzIGJlY2F1c2UgaXQgaXMgc28gdGltaW5nIGRlcGVuZGFudC4KKwor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9RVE1vdmllV2luVGltZXIuY3BwOgorICAg
ICAgICAoVGltZXJXaW5kb3dXbmRQcm9jKToKKyAgICAgICAgKHNldFNoYXJlZFRpbWVyRmlyZURl
bGF5KToKKwogMjAwOS0wMy0yMCAgRG1pdHJ5IFRpdG92ICA8ZGltaWNoQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBSZXZpZXdlZCBieSBEaW1pdHJpIEdsYXprb3YuCkluZGV4OiBXZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3dpbi9RVE1vdmllV2luVGltZXIuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1FUTW92aWVXaW5UaW1lci5jcHAJKHJldmlzaW9u
IDQxNjU4KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vUVRNb3ZpZVdpblRpbWVy
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTEsNiArNTEsMTAgQEAgc3RhdGljIExSRVNVTFQgQ0FM
TEJBQ0sgVGltZXJXaW5kb3dXbmRQcgogICAgICAgICBwcm9jZXNzaW5nQ3VzdG9tVGltZXJNZXNz
YWdlID0gdHJ1ZTsKICAgICAgICAgc2hhcmVkVGltZXJGaXJlZEZ1bmN0aW9uKCk7CiAgICAgICAg
IHByb2Nlc3NpbmdDdXN0b21UaW1lck1lc3NhZ2UgPSBmYWxzZTsKKyAgICB9IGVsc2UgaWYgKG1l
c3NhZ2UgPT0gV01fVElNRVIgJiYgd1BhcmFtID09IHRpbWVySUQpIHsKKyAgICAgICAgS2lsbFRp
bWVyKGhXbmQsIHRpbWVySUQpOworICAgICAgICB0aW1lcklEID0gMDsKKyAgICAgICAgc2hhcmVk
VGltZXJGaXJlZEZ1bmN0aW9uKCk7CiAgICAgfSBlbHNlCiAgICAgICAgIHJldHVybiBEZWZXaW5k
b3dQcm9jKGhXbmQsIG1lc3NhZ2UsIHdQYXJhbSwgbFBhcmFtKTsKICAgICByZXR1cm4gMDsKQEAg
LTc5LDExICs4Myw2IEBAIHZvaWQgc2V0U2hhcmVkVGltZXJGaXJlZEZ1bmN0aW9uKHZvaWQgKCoK
ICAgICBzaGFyZWRUaW1lckZpcmVkRnVuY3Rpb24gPSBmOwogfQogCi1zdGF0aWMgdm9pZCBDQUxM
QkFDSyB0aW1lckZpcmVkKEhXTkQsIFVJTlQsIFVJTlRfUFRSLCBEV09SRCkKLXsKLSAgICBzaGFy
ZWRUaW1lckZpcmVkRnVuY3Rpb24oKTsKLX0KLQogdm9pZCBzZXRTaGFyZWRUaW1lckZpcmVEZWxh
eShkb3VibGUgaW50ZXJ2YWwpCiB7CiAgICAgQVNTRVJUKHNoYXJlZFRpbWVyRmlyZWRGdW5jdGlv
bik7CkBAIC05OSwyOSArOTgsMjcgQEAgdm9pZCBzZXRTaGFyZWRUaW1lckZpcmVEZWxheShkb3Vi
bGUgaW50ZQogICAgICAgICAgICAgaW50ZXJ2YWxJbk1TID0gKHVuc2lnbmVkKWludGVydmFsOwog
ICAgIH0KIAotICAgIGlmICh0aW1lcklEKSB7Ci0gICAgICAgIEtpbGxUaW1lcigwLCB0aW1lcklE
KTsKLSAgICAgICAgdGltZXJJRCA9IDA7Ci0gICAgfQorICAgIHN0b3BTaGFyZWRUaW1lcigpOwor
ICAgIGluaXRpYWxpemVPZmZTY3JlZW5UaW1lcldpbmRvdygpOwogCiAgICAgLy8gV2UgZG9uJ3Qg
YWxsb3cgbmVzdGVkIFBvc3RNZXNzYWdlcywgc2luY2UgdGhlIGN1c3RvbSBtZXNzYWdlcyB3aWxs
IGVmZmVjdGl2ZWx5IHN0YXJ2ZQogICAgIC8vIHBhaW50aW5nIGFuZCB1c2VyIGlucHV0LiAoV2lu
MzIgaGFzIGEgdHJpLWxldmVsIHF1ZXVlIHdpdGggYXBwbGljYXRpb24gbWVzc2FnZXMgPiAKICAg
ICAvLyB1c2VyIGlucHV0ID4gV01fUEFJTlQvV01fVElNRVIuKQogICAgIC8vIEluIGFkZGl0aW9u
LCBpZiB0aGUgcXVldWUgY29udGFpbnMgaW5wdXQgZXZlbnRzIHRoYXQgaGF2ZSBiZWVuIHRoZXJl
IHNpbmNlIHRoZSBsYXN0IGNhbGwgdG8KICAgICAvLyBHZXRRdWV1ZVN0YXR1cywgUGVla01lc3Nh
Z2Ugb3IgR2V0TWVzc2FnZSB3ZSBmYXZvciB0aW1lcnMuCi0gICAgaWYgKGludGVydmFsSW5NUyA8
IFVTRVJfVElNRVJfTUlOSU1VTSAmJiBwcm9jZXNzaW5nQ3VzdG9tVGltZXJNZXNzYWdlICYmCi0g
ICAgICAgICFMT1dPUkQoOjpHZXRRdWV1ZVN0YXR1cyhRU19BTExJTlBVVCkpKSB7CisgICAgaWYg
KGludGVydmFsSW5NUyA8IFVTRVJfVElNRVJfTUlOSU1VTSAKKyAgICAgICAgJiYgIXByb2Nlc3Np
bmdDdXN0b21UaW1lck1lc3NhZ2UgCisgICAgICAgICYmICFMT1dPUkQoOjpHZXRRdWV1ZVN0YXR1
cyhRU19BTExJTlBVVCkpKSB7CiAgICAgICAgIC8vIFdpbmRvd3MgU2V0VGltZXIgZG9lcyBub3Qg
YWxsb3cgdGltZW91dHMgc21hbGxlciB0aGFuIDEwbXMgKFVTRVJfVElNRVJfTUlOSU1VTSkKLSAg
ICAgICAgaW5pdGlhbGl6ZU9mZlNjcmVlblRpbWVyV2luZG93KCk7CiAgICAgICAgIFBvc3RNZXNz
YWdlKHRpbWVyV2luZG93SGFuZGxlLCB0aW1lckZpcmVkTWVzc2FnZSwgMCwgMCk7CiAgICAgfSBl
bHNlCi0gICAgICAgIHRpbWVySUQgPSBTZXRUaW1lcigwLCAwLCBpbnRlcnZhbEluTVMsIHRpbWVy
RmlyZWQpOworICAgICAgICB0aW1lcklEID0gU2V0VGltZXIodGltZXJXaW5kb3dIYW5kbGUsIHRp
bWVyRmlyZWRNZXNzYWdlLCBpbnRlcnZhbEluTVMsIDApOwogfQogCiB2b2lkIHN0b3BTaGFyZWRU
aW1lcigpCiB7CiAgICAgaWYgKHRpbWVySUQpIHsKLSAgICAgICAgS2lsbFRpbWVyKDAsIHRpbWVy
SUQpOworICAgICAgICBLaWxsVGltZXIodGltZXJXaW5kb3dIYW5kbGUsIHRpbWVySUQpOwogICAg
ICAgICB0aW1lcklEID0gMDsKICAgICB9CiB9Cg==
</data>
<flag name="review"
          id="14214"
          type_id="1"
          status="+"
          setter="aroben"
    />
          </attachment>
      

    </bug>

</bugzilla>