<?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>154578</bug_id>
          
          <creation_ts>2016-02-23 02:06:06 -0800</creation_ts>
          <short_desc>Add a mechanism to automatically ramp up timer alignment.</short_desc>
          <delta_ts>2016-02-23 16:32:55 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>Other</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="Gavin Barraclough">barraclough</reporter>
          <assigned_to name="Gavin Barraclough">barraclough</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1167343</commentid>
    <comment_count>0</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2016-02-23 02:06:06 -0800</bug_when>
    <thetext>Allow timer throttling to be proportional to the duration of time the page has been hidden.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1167352</commentid>
    <comment_count>1</comment_count>
      <attachid>272004</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2016-02-23 02:17:39 -0800</bug_when>
    <thetext>Created attachment 272004
Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1167360</commentid>
    <comment_count>2</comment_count>
      <attachid>272004</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2016-02-23 03:46:54 -0800</bug_when>
    <thetext>Comment on attachment 272004
Fix

View in context: https://bugs.webkit.org/attachment.cgi?id=272004&amp;action=review

&gt; Source/WebCore/page/Page.h:620
&gt; +    Optional&lt;double&gt; m_timerThrottlingEnabledTime;

It would be more stylish to use std::chrono::steady_clock::time_point and pals.

&gt; Source/WebCore/page/Settings.cpp:215
&gt; +    , m_hiddenPageDOMTimerThrottlingAutoIncreaseLimit(0.0)

You could use { } initialization in the header.

&gt; Source/WebCore/page/Settings.h:345
&gt;      bool m_hiddenPageDOMTimerThrottlingEnabled : 1;
&gt;  #endif
&gt; +    double m_hiddenPageDOMTimerThrottlingAutoIncreaseLimit;
&gt; +
&gt;      bool m_hiddenPageCSSAnimationSuspensionEnabled : 1;
&gt;      bool m_fontFallbackPrefersPictographs : 1;

Please don&apos;t put this in the middle of a bitfield (though the bitfield itself is silly and could be removed).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1167411</commentid>
    <comment_count>3</comment_count>
      <attachid>272004</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-02-23 09:01:52 -0800</bug_when>
    <thetext>Comment on attachment 272004
Fix

View in context: https://bugs.webkit.org/attachment.cgi?id=272004&amp;action=review

&gt; Source/WebCore/page/Page.cpp:1177
&gt; +    m_timerThrottlingEnabledTime = enabled ? monotonicallyIncreasingTime() : Optional&lt;double&gt;();

m_timerThrottlingEnabledTime = enabled ? monotonicallyIncreasingTime() : NullOpt; did not build?

&gt; Source/WebCore/page/Page.cpp:1194
&gt; +            if (frame-&gt;document())

Would be nice to store the returned document in a variable:
if (auto* document = frame-&gt;document())
    document-&gt;didChangeTimerAlignmentInterval();</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1167574</commentid>
    <comment_count>4</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2016-02-23 15:51:38 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Comment on attachment 272004 [details]
&gt; Fix
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=272004&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/page/Page.cpp:1177
&gt; &gt; +    m_timerThrottlingEnabledTime = enabled ? monotonicallyIncreasingTime() : Optional&lt;double&gt;();
&gt; 
&gt; m_timerThrottlingEnabledTime = enabled ? monotonicallyIncreasingTime() :
&gt; NullOpt; did not build?
&gt; 
&gt; &gt; Source/WebCore/page/Page.cpp:1194
&gt; &gt; +            if (frame-&gt;document())
&gt; 
&gt; Would be nice to store the returned document in a variable:
&gt; if (auto* document = frame-&gt;document())
&gt;     document-&gt;didChangeTimerAlignmentInterval();

(In reply to comment #2)
&gt; Comment on attachment 272004 [details]
&gt; Fix
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=272004&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/page/Page.h:620
&gt; &gt; +    Optional&lt;double&gt; m_timerThrottlingEnabledTime;
&gt; 
&gt; It would be more stylish to use std::chrono::steady_clock::time_point and
&gt; pals.

Will do - I&apos;m going to land as is (since everything is currently using double), and make a patch to push std::chrono types through all the timer alignment code.
 
&gt; &gt; Source/WebCore/page/Settings.cpp:215
&gt; &gt; +    , m_hiddenPageDOMTimerThrottlingAutoIncreaseLimit(0.0)
&gt; 
&gt; You could use { } initialization in the header.

Done.

&gt; &gt; Source/WebCore/page/Settings.h:345
&gt; &gt;      bool m_hiddenPageDOMTimerThrottlingEnabled : 1;
&gt; &gt;  #endif
&gt; &gt; +    double m_hiddenPageDOMTimerThrottlingAutoIncreaseLimit;
&gt; &gt; +
&gt; &gt;      bool m_hiddenPageCSSAnimationSuspensionEnabled : 1;
&gt; &gt;      bool m_fontFallbackPrefersPictographs : 1;
&gt; 
&gt; Please don&apos;t put this in the middle of a bitfield (though the bitfield
&gt; itself is silly and could be removed).

Fixed.

(In reply to comment #3)
&gt; Comment on attachment 272004 [details]
&gt; Fix
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=272004&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/page/Page.cpp:1177
&gt; &gt; +    m_timerThrottlingEnabledTime = enabled ? monotonicallyIncreasingTime() : Optional&lt;double&gt;();
&gt; 
&gt; m_timerThrottlingEnabledTime = enabled ? monotonicallyIncreasingTime() :
&gt; NullOpt; did not build?

I can&apos;t :&apos;-( - one side of the ?: needs to explicitly be the optional type.
 
&gt; &gt; Source/WebCore/page/Page.cpp:1194
&gt; &gt; +            if (frame-&gt;document())
&gt; 
&gt; Would be nice to store the returned document in a variable:
&gt; if (auto* document = frame-&gt;document())
&gt;     document-&gt;didChangeTimerAlignmentInterval();

Done.

Based on feedback from Sam going to move the limit to ChromeClient (since we&apos;ve going to vary this dynamically). For now going to just remove the limit (am landing disabled anyway), and will reintroduce this in another patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1167575</commentid>
    <comment_count>5</comment_count>
      <attachid>272059</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2016-02-23 15:57:57 -0800</bug_when>
    <thetext>Created attachment 272059
Update with review fixes, setting -&gt; bool (temporarily removed limit)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1167577</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-02-23 15:59:37 -0800</bug_when>
    <thetext>Attachment 272059 did not pass style-queue:


ERROR: Source/WebCore/page/Page.cpp:1202:  One line control clauses should not use braces.  [whitespace/braces] [4]
Total errors found: 1 in 5 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1167580</commentid>
    <comment_count>7</comment_count>
      <attachid>272059</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-02-23 16:04:46 -0800</bug_when>
    <thetext>Comment on attachment 272059
Update with review fixes, setting -&gt; bool (temporarily removed limit)

View in context: https://bugs.webkit.org/attachment.cgi?id=272059&amp;action=review

r=me

&gt; Source/WebCore/ChangeLog:10
&gt; +        in exponential steps, spaced exponentially far apart, until a limit is

The &quot;until a limit is reached&quot; part is no longer true.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1167589</commentid>
    <comment_count>8</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2016-02-23 16:32:55 -0800</bug_when>
    <thetext>Transmitting file data .....
Committed revision 197006.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>272004</attachid>
            <date>2016-02-23 02:17:39 -0800</date>
            <delta_ts>2016-02-23 03:46:54 -0800</delta_ts>
            <desc>Fix</desc>
            <filename>154578.1.patch</filename>
            <type>text/plain</type>
            <size>9628</size>
            <attacher name="Gavin Barraclough">barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5Njk3MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQxIEBACisyMDE2LTAyLTIzICBHYXZpbiBC
YXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYSBtZWNo
YW5pc20gdG8gYXV0b21hdGljYWxseSByYW1wIHVwIHRpbWVyIGFsaWdubWVudC4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NDU3OAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFsbG93IHRpbWVyIGFsaWdu
bWVudCBkdXJhdGlvbiB0byBiZSBwcm9wb3J0aW9uYWwgdG8gdGhlIHRpbWUgdGhlIHBhZ2UKKyAg
ICAgICAgaGFzIGJlZW4gaGlkZGVuLiBUaGlzIGltcGxlbWVudGF0aW9uIGRvZXMgc28gYnkgc2Nh
bGluZyB1cCB0aGUgdGhyb3R0bGUKKyAgICAgICAgaW4gZXhwb25lbnRpYWwgc3RlcHMsIHNwYWNl
ZCBleHBvbmVudGlhbGx5IGZhciBhcGFydCwgdW50aWwgYSBsaW1pdCBpcworICAgICAgICByZWFj
aGVkLgorCisgICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6
OlBhZ2UpOgorICAgICAgICAgICAgLSBpbml0aWFsaXplIHRpbWVyLgorICAgICAgICAoV2ViQ29y
ZTo6UGFnZTo6aGlkZGVuUGFnZURPTVRpbWVyVGhyb3R0bGluZ1N0YXRlQ2hhbmdlZCk6CisgICAg
ICAgICAgICAtIGlmIHNldHRpbmcgYXJlIGNoYW5nZWQgZnVsbHkgZGlzYWJsZS9yZWVuYWJsZSB0
byBlbnN1cmUgbmV3IHNldHRpbmcgYXJlIHJlYWQuCisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpz
ZXRUaW1lclRocm90dGxpbmdFbmFibGVkKToKKyAgICAgICAgICAgIC0gZW5lYmxlZCBib29sIGZs
YWcgY29udmVydGVkIHRvIGFuIE9wdGlvbmFsPGRvdWJsZT4sIHRyYWNraW5nIHRpbWUgdGhyb3R0
bGluZworICAgICAgICAgICAgICBpcyBlbmFibGVkLgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6
c2V0RE9NVGltZXJBbGlnbm1lbnRJbnRlcnZhbCk6CisgICAgICAgICAgICAtIHdoZW4gbmV3IG1l
Y2hhbmlzbSBpcyBlbmFibGVkIHNjaGVkdWxlIGEgdGltZXIgdG8gc3RlcCB1cCBhbGlnbm1lbnQu
CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjp0aW1lckFsaWdubWVudEludGVydmFsSW5jcmVhc2VU
aW1lckZpcmVkKToKKyAgICAgICAgICAgIC0gd2hlbiB0aW1lciBmaXJlcyBpbmNyZWFzZSBhbGln
bm1lbnQuCisgICAgICAgICogcGFnZS9QYWdlLmg6CisgICAgICAgICAgICAtIGFkZGVkIG5ldyBt
ZW1iZXIuCisgICAgICAgICogcGFnZS9TZXR0aW5ncy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
ZXR0aW5nczo6U2V0dGluZ3MpOgorICAgICAgICAgICAgLSBpbml0aWFsaXplIG5ldyBtZW1iZXIu
CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6c2V0SGlkZGVuUGFnZURPTVRpbWVyVGhyb3R0
bGluZ0F1dG9JbmNyZWFzZUxpbWl0KToKKyAgICAgICAgICAgIC0gYWRkZWQsIHVwZGF0ZSBuZXcg
c2V0dGluZy4gU2V0dGluZyB0byB6ZXJvIGRpc2FibGVkLiBBIG5vbi16ZXJvIHZhbHVlIGlzIGEK
KyAgICAgICAgICAgICAgZHVyYXRpb24gaW4gc2Vjb25kcyBmb3IgdGltZXIgdGhyb3R0bGluZyB0
byByYW1wIHVwIHRvLgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuaDoKKyAgICAgICAgKFdlYkNv
cmU6OlNldHRpbmdzOjpoaWRkZW5QYWdlRE9NVGltZXJUaHJvdHRsaW5nQXV0b0luY3JlYXNlcyk6
CisgICAgICAgICAgICAtIHJlYWQgYXMgYm9vbGVhbiB3aGV0aGVyIHRocm90dGxlIGluY3JlYXNp
bmcgaXMgZW5hYmxlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjpoaWRkZW5QYWdlRE9N
VGltZXJUaHJvdHRsaW5nQXV0b0luY3JlYXNlTGltaXQpOgorICAgICAgICAgICAgLSByZWFkIHRo
cm90dGxlIGluY3JlYXNpbmcgbGltaXQuCisKIDIwMTYtMDItMjMgIFlvdWVubiBGYWJsZXQgIDx5
b3Vlbm4uZmFibGV0QGNyZi5jYW5vbi5mcj4KIAogICAgICAgICBSZWZhY3RvciBET00gSXRlcmF0
b3IgbmV4dCBzaWduYXR1cmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAkocmV2aXNpb24gMTk2OTcx
KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjA1
LDggKzIwNSw4IEBAIFBhZ2U6OlBhZ2UoUGFnZUNvbmZpZ3VyYXRpb24mIHBhZ2VDb25maWcKICNp
ZiBFTkFCTEUoVklFV19NT0RFX0NTU19NRURJQSkKICAgICAsIG1fdmlld01vZGUoVmlld01vZGVX
aW5kb3dlZCkKICNlbmRpZiAvLyBFTkFCTEUoVklFV19NT0RFX0NTU19NRURJQSkKLSAgICAsIG1f
dGltZXJUaHJvdHRsaW5nRW5hYmxlZChmYWxzZSkKICAgICAsIG1fdGltZXJBbGlnbm1lbnRJbnRl
cnZhbChET01UaW1lcjo6ZGVmYXVsdEFsaWdubWVudEludGVydmFsKCkpCisgICAgLCBtX3RpbWVy
QWxpZ25tZW50SW50ZXJ2YWxJbmNyZWFzZVRpbWVyKCp0aGlzLCAmUGFnZTo6dGltZXJBbGlnbm1l
bnRJbnRlcnZhbEluY3JlYXNlVGltZXJGaXJlZCkKICAgICAsIG1faXNFZGl0YWJsZShmYWxzZSkK
ICAgICAsIG1faXNQcmVyZW5kZXIoZmFsc2UpCiAgICAgLCBtX3ZpZXdTdGF0ZShQYWdlSW5pdGlh
bFZpZXdTdGF0ZSkKQEAgLTExNTksNiArMTE1OSw4IEBAIHZvaWQgUGFnZTo6c2V0TWVtb3J5Q2Fj
aGVDbGllbnRDYWxsc0VuYWIKIAogdm9pZCBQYWdlOjpoaWRkZW5QYWdlRE9NVGltZXJUaHJvdHRs
aW5nU3RhdGVDaGFuZ2VkKCkKIHsKKyAgICAvLyBEaXNhYmxlICYgcmVlbmdhZ2UgdG8gZW5zdXJl
IHN0YXRlIGlzIHVwZGF0ZWQuCisgICAgc2V0VGltZXJUaHJvdHRsaW5nRW5hYmxlZChmYWxzZSk7
CiAgICAgc2V0VGltZXJUaHJvdHRsaW5nRW5hYmxlZChtX3ZpZXdTdGF0ZSAmIFZpZXdTdGF0ZTo6
SXNWaXN1YWxseUlkbGUpOwogfQogCkBAIC0xMTY5LDIxICsxMTcxLDUyIEBAIHZvaWQgUGFnZTo6
c2V0VGltZXJUaHJvdHRsaW5nRW5hYmxlZChib28KICAgICAgICAgZW5hYmxlZCA9IGZhbHNlOwog
I2VuZGlmCiAKLSAgICBpZiAoZW5hYmxlZCA9PSBtX3RpbWVyVGhyb3R0bGluZ0VuYWJsZWQpCisg
ICAgaWYgKGVuYWJsZWQgPT0gISFtX3RpbWVyVGhyb3R0bGluZ0VuYWJsZWRUaW1lKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBtX3RpbWVyVGhyb3R0bGluZ0VuYWJsZWQgPSBlbmFibGVkOworICAg
IG1fdGltZXJUaHJvdHRsaW5nRW5hYmxlZFRpbWUgPSBlbmFibGVkID8gbW9ub3RvbmljYWxseUlu
Y3JlYXNpbmdUaW1lKCkgOiBPcHRpb25hbDxkb3VibGU+KCk7CiAgICAgc2V0RE9NVGltZXJBbGln
bm1lbnRJbnRlcnZhbChlbmFibGVkID8gRE9NVGltZXI6OmhpZGRlblBhZ2VBbGlnbm1lbnRJbnRl
cnZhbCgpIDogRE9NVGltZXI6OmRlZmF1bHRBbGlnbm1lbnRJbnRlcnZhbCgpKTsKIH0KIAogdm9p
ZCBQYWdlOjpzZXRET01UaW1lckFsaWdubWVudEludGVydmFsKGRvdWJsZSBhbGlnbm1lbnRJbnRl
cnZhbCkKIHsKKyAgICAvLyBJZiB0aGUgbmV3IGFsaWdubWVudEludGVydmFsIGlzIHNob3J0ZXIg
dGhhbiB0aGUgb25lIHByZXNlbnRseSBpbiBlZmZlY3Qgd2UgbmVlZCB0byB1cGRhdGUKKyAgICAv
LyBleGlzdGluZyB0aW1lcnMgKGUuZy4gd2hlbiBhIGhpZGRlbiBwYWdlIGJlY29tZXMgdmlzaWJs
ZSB0aHJvdHRsZWQgdGltZXJzIG11c3QgYmUgdW50aHJvdHRsZWQpLgorICAgIC8vIEhvd2V2ZXIg
d2hlbiBsZW5ndGhlbmluZyB0aGUgYWxpZ25tZW50IGludGVydmFsLCBubyBuZWVkIHRvIHVwZGF0
ZSBleGlzdGluZyB0aW1lcnMuIE5vdCBkb2luZworICAgIC8vIHNvIG1lYW5zIHRoYXQgdGltZXJz
IHNjaGVkdWxlZCB3aGlsZSB0aGUgcGFnZSBpcyB2aXNpYmxlIGdldCB0byBmaXJlIGFjY3VyYXRl
bHkgKHJlcGVhdGluZworICAgIC8vIHRpbWVycyB3aWxsIGJlIHRocm90dGxlZCBvbiB0aGUgbmV4
dCB0aW1lciBmaXJlKS4KKyAgICBib29sIHNob3VsZFJlc2NoZWR1bGVFeGlzdGluZ1RpbWVycyA9
IGFsaWdubWVudEludGVydmFsIDwgbV90aW1lckFsaWdubWVudEludGVydmFsOworCiAgICAgbV90
aW1lckFsaWdubWVudEludGVydmFsID0gYWxpZ25tZW50SW50ZXJ2YWw7Ci0gICAgCi0gICAgZm9y
IChGcmFtZSogZnJhbWUgPSAmbWFpbkZyYW1lKCk7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVl
KCkudHJhdmVyc2VOZXh0KCkpIHsKLSAgICAgICAgaWYgKGZyYW1lLT5kb2N1bWVudCgpKQotICAg
ICAgICAgICAgZnJhbWUtPmRvY3VtZW50KCktPmRpZENoYW5nZVRpbWVyQWxpZ25tZW50SW50ZXJ2
YWwoKTsKKworICAgIGlmIChzaG91bGRSZXNjaGVkdWxlRXhpc3RpbmdUaW1lcnMpIHsKKyAgICAg
ICAgZm9yIChGcmFtZSogZnJhbWUgPSAmbWFpbkZyYW1lKCk7IGZyYW1lOyBmcmFtZSA9IGZyYW1l
LT50cmVlKCkudHJhdmVyc2VOZXh0KCkpIHsKKyAgICAgICAgICAgIGlmIChmcmFtZS0+ZG9jdW1l
bnQoKSkKKyAgICAgICAgICAgICAgICBmcmFtZS0+ZG9jdW1lbnQoKS0+ZGlkQ2hhbmdlVGltZXJB
bGlnbm1lbnRJbnRlcnZhbCgpOworICAgICAgICB9CiAgICAgfQorCisgICAgLy8gSWYgdGhyb3R0
bGluZyBpcyBlbmFibGVkLCBhdXRvLWluY3JlYXNpbmcgb2YgdGhyb3R0bGluZyBpcyBlbmFibGVk
LCBhbmQgdGhlIGF1dG8taW5jcmVhc2UKKyAgICAvLyBsaW1pdCBoYXMgbm90IHlldCBiZWVuIHJl
YWNoZWQgdGhlbiBhcm0gdGhlIHRpbWVyIHRvIGNvbnNpZGVyIGFuIGluY3JlYXNlLiBUaW1lIHRv
IHdhaXQKKyAgICAvLyBiZXR3ZWVuIGluY3JlYXNlcyBpcyBlcXVhbCB0byB0aGUgY3VycmVudCB0
aHJvdHRsZSB0aW1lLiBTaW5jZSBhbGlubWVudCBpbnRlcnZhbCBpbmNyZWFzZXMKKyAgICAvLyBl
eHBvbmVudGlhbGx5LCB0aW1lIGJldHdlZW4gc3RlcHMgaXMgZXhwb25lbnRpYWwgdG9vLgorICAg
IGlmIChtX3RpbWVyVGhyb3R0bGluZ0VuYWJsZWRUaW1lICYmIG1fc2V0dGluZ3MtPmhpZGRlblBh
Z2VET01UaW1lclRocm90dGxpbmdBdXRvSW5jcmVhc2VzKCkKKyAgICAgICAgJiYgbV90aW1lckFs
aWdubWVudEludGVydmFsIDwgbV9zZXR0aW5ncy0+aGlkZGVuUGFnZURPTVRpbWVyVGhyb3R0bGlu
Z0F1dG9JbmNyZWFzZUxpbWl0KCkpIHsKKyAgICAgICAgbV90aW1lckFsaWdubWVudEludGVydmFs
SW5jcmVhc2VUaW1lci5zdGFydE9uZVNob3QobV90aW1lckFsaWdubWVudEludGVydmFsKTsKKyAg
ICB9IGVsc2UKKyAgICAgICAgbV90aW1lckFsaWdubWVudEludGVydmFsSW5jcmVhc2VUaW1lci5z
dG9wKCk7Cit9CisKK3ZvaWQgUGFnZTo6dGltZXJBbGlnbm1lbnRJbnRlcnZhbEluY3JlYXNlVGlt
ZXJGaXJlZCgpCit7CisgICAgQVNTRVJUKG1fdGltZXJUaHJvdHRsaW5nRW5hYmxlZFRpbWUgJiYg
bV9zZXR0aW5ncy0+aGlkZGVuUGFnZURPTVRpbWVyVGhyb3R0bGluZ0F1dG9JbmNyZWFzZXMoKQor
ICAgICAgICAmJiBtX3RpbWVyQWxpZ25tZW50SW50ZXJ2YWwgPCBtX3NldHRpbmdzLT5oaWRkZW5Q
YWdlRE9NVGltZXJUaHJvdHRsaW5nQXV0b0luY3JlYXNlTGltaXQoKSk7CisgICAgICAgIAorICAg
IC8vIEFsaWdubWVudCBpbnRlcnZhbCBpcyBpbmNyZWFzZWQgdG8gZXF1YWwgdGhlIHRpbWUgdGhl
IHBhZ2UgaGFzIGJlZW4gdGhyb3R0bGVkLCB1cCB0byB0aGUgbGltaXQuCisgICAgZG91YmxlIHRo
cm90dGxlZER1cmF0aW9uID0gbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkgLSBtX3RpbWVy
VGhyb3R0bGluZ0VuYWJsZWRUaW1lLnZhbHVlKCk7CisgICAgZG91YmxlIGFsaWdubWVudEludGVy
dmFsID0gc3RkOjptYXgobV90aW1lckFsaWdubWVudEludGVydmFsLCB0aHJvdHRsZWREdXJhdGlv
bik7CisgICAgYWxpZ25tZW50SW50ZXJ2YWwgPSBzdGQ6Om1pbihhbGlnbm1lbnRJbnRlcnZhbCwg
bV9zZXR0aW5ncy0+aGlkZGVuUGFnZURPTVRpbWVyVGhyb3R0bGluZ0F1dG9JbmNyZWFzZUxpbWl0
KCkpOworICAgIHNldERPTVRpbWVyQWxpZ25tZW50SW50ZXJ2YWwoYWxpZ25tZW50SW50ZXJ2YWwp
OwogfQogCiB2b2lkIFBhZ2U6OmRuc1ByZWZldGNoaW5nU3RhdGVDaGFuZ2VkKCkKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZS5oCShyZXZpc2lvbiAxOTY5NzEpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2Uu
aAkod29ya2luZyBjb3B5KQpAQCAtNDIsNiArNDIsNyBAQAogI2luY2x1ZGUgPHd0Zi9IYXNoTWFw
Lmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUu
aD4KKyNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAjaW5j
bHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
QEAgLTUyNyw3ICs1MjgsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgaGlkZGVuUGFnZURPTVRpbWVy
VGhyb3R0bGluZ1N0YXRlQ2hhbmdlZCgpOwogICAgIHZvaWQgc2V0VGltZXJUaHJvdHRsaW5nRW5h
YmxlZChib29sKTsKICAgICB2b2lkIHNldERPTVRpbWVyQWxpZ25tZW50SW50ZXJ2YWwoZG91Ymxl
KTsKLSAgICB2b2lkIHRpbWVyQWxpZ25tZW50SW50ZXJ2YWxUaW1lckZpcmVkKCk7CisgICAgdm9p
ZCB0aW1lckFsaWdubWVudEludGVydmFsSW5jcmVhc2VUaW1lckZpcmVkKCk7CiAgICAgYm9vbCBj
YW5UYWJTdXNwZW5kKCk7CiAgICAgdm9pZCB1cGRhdGVUYWJTdXNwZW5zaW9uU3RhdGUoKTsKICAg
ICB2b2lkIHRhYlN1c3BlbnNpb25UaW1lckZpcmVkKCk7CkBAIC02MTYsOCArNjE3LDkgQEAgcHJp
dmF0ZToKICAgICBWaWV3TW9kZSBtX3ZpZXdNb2RlOwogI2VuZGlmIC8vIEVOQUJMRShWSUVXX01P
REVfQ1NTX01FRElBKQogCi0gICAgYm9vbCBtX3RpbWVyVGhyb3R0bGluZ0VuYWJsZWQ7CisgICAg
T3B0aW9uYWw8ZG91YmxlPiBtX3RpbWVyVGhyb3R0bGluZ0VuYWJsZWRUaW1lOwogICAgIGRvdWJs
ZSBtX3RpbWVyQWxpZ25tZW50SW50ZXJ2YWw7CisgICAgVGltZXIgbV90aW1lckFsaWdubWVudElu
dGVydmFsSW5jcmVhc2VUaW1lcjsKIAogICAgIGJvb2wgbV9pc0VkaXRhYmxlOwogICAgIGJvb2wg
bV9pc1ByZXJlbmRlcjsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCShyZXZpc2lvbiAx
OTY5NzEpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjEyLDYgKzIxMiw3IEBAIFNldHRpbmdzOjpTZXR0aW5ncyhQYWdlKiBwYWdlKQogI2lm
IEVOQUJMRShISURERU5fUEFHRV9ET01fVElNRVJfVEhST1RUTElORykKICAgICAsIG1faGlkZGVu
UGFnZURPTVRpbWVyVGhyb3R0bGluZ0VuYWJsZWQoZmFsc2UpCiAjZW5kaWYKKyAgICAsIG1faGlk
ZGVuUGFnZURPTVRpbWVyVGhyb3R0bGluZ0F1dG9JbmNyZWFzZUxpbWl0KDAuMCkKICAgICAsIG1f
aGlkZGVuUGFnZUNTU0FuaW1hdGlvblN1c3BlbnNpb25FbmFibGVkKGZhbHNlKQogICAgICwgbV9m
b250RmFsbGJhY2tQcmVmZXJzUGljdG9ncmFwaHMoZmFsc2UpCiAgICAgLCBtX2ZvcmNlUGVuZGlu
Z1dlYkdMUG9saWN5KGZhbHNlKQpAQCAtNjgxLDYgKzY4MiwxNSBAQCB2b2lkIFNldHRpbmdzOjpz
ZXRIaWRkZW5QYWdlRE9NVGltZXJUaHJvCiB9CiAjZW5kaWYKIAordm9pZCBTZXR0aW5nczo6c2V0
SGlkZGVuUGFnZURPTVRpbWVyVGhyb3R0bGluZ0F1dG9JbmNyZWFzZUxpbWl0KGRvdWJsZSBsaW1p
dCkKK3sKKyAgICBpZiAobV9oaWRkZW5QYWdlRE9NVGltZXJUaHJvdHRsaW5nQXV0b0luY3JlYXNl
TGltaXQgPT0gbGltaXQpCisgICAgICAgIHJldHVybjsKKyAgICBtX2hpZGRlblBhZ2VET01UaW1l
clRocm90dGxpbmdBdXRvSW5jcmVhc2VMaW1pdCA9IGxpbWl0OworICAgIGlmIChtX3BhZ2UpCisg
ICAgICAgIG1fcGFnZS0+aGlkZGVuUGFnZURPTVRpbWVyVGhyb3R0bGluZ1N0YXRlQ2hhbmdlZCgp
OworfQorCiB2b2lkIFNldHRpbmdzOjpzZXRIaWRkZW5QYWdlQ1NTQW5pbWF0aW9uU3VzcGVuc2lv
bkVuYWJsZWQoYm9vbCBmbGFnKQogewogICAgIGlmIChtX2hpZGRlblBhZ2VDU1NBbmltYXRpb25T
dXNwZW5zaW9uRW5hYmxlZCA9PSBmbGFnKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0
aW5ncy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAkocmV2
aXNpb24gMTk2OTcxKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xNjUsNiArMTY1LDkgQEAgcHVibGljOgogICAgIGJvb2wgaGlkZGVuUGFnZURP
TVRpbWVyVGhyb3R0bGluZ0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2hpZGRlblBhZ2VET01U
aW1lclRocm90dGxpbmdFbmFibGVkOyB9CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRIaWRk
ZW5QYWdlRE9NVGltZXJUaHJvdHRsaW5nRW5hYmxlZChib29sKTsKICNlbmRpZgorICAgIGJvb2wg
aGlkZGVuUGFnZURPTVRpbWVyVGhyb3R0bGluZ0F1dG9JbmNyZWFzZXMoKSBjb25zdCB7IHJldHVy
biBtX2hpZGRlblBhZ2VET01UaW1lclRocm90dGxpbmdBdXRvSW5jcmVhc2VMaW1pdDsgfQorICAg
IGRvdWJsZSBoaWRkZW5QYWdlRE9NVGltZXJUaHJvdHRsaW5nQXV0b0luY3JlYXNlTGltaXQoKSBj
b25zdCB7IHJldHVybiBtX2hpZGRlblBhZ2VET01UaW1lclRocm90dGxpbmdBdXRvSW5jcmVhc2VM
aW1pdDsgfQorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0SGlkZGVuUGFnZURPTVRpbWVyVGhy
b3R0bGluZ0F1dG9JbmNyZWFzZUxpbWl0KGRvdWJsZSk7CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIHNldFVzZXNQYWdlQ2FjaGUoYm9vbCk7CiAgICAgYm9vbCB1c2VzUGFnZUNhY2hlKCkgY29u
c3QgeyByZXR1cm4gbV91c2VzUGFnZUNhY2hlOyB9CkBAIC0zMzYsNiArMzM5LDggQEAgcHJpdmF0
ZToKICNpZiBFTkFCTEUoSElEREVOX1BBR0VfRE9NX1RJTUVSX1RIUk9UVExJTkcpCiAgICAgYm9v
bCBtX2hpZGRlblBhZ2VET01UaW1lclRocm90dGxpbmdFbmFibGVkIDogMTsKICNlbmRpZgorICAg
IGRvdWJsZSBtX2hpZGRlblBhZ2VET01UaW1lclRocm90dGxpbmdBdXRvSW5jcmVhc2VMaW1pdDsK
KwogICAgIGJvb2wgbV9oaWRkZW5QYWdlQ1NTQW5pbWF0aW9uU3VzcGVuc2lvbkVuYWJsZWQgOiAx
OwogICAgIGJvb2wgbV9mb250RmFsbGJhY2tQcmVmZXJzUGljdG9ncmFwaHMgOiAxOwogCg==
</data>
<flag name="review"
          id="296815"
          type_id="1"
          status="+"
          setter="koivisto"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>272059</attachid>
            <date>2016-02-23 15:57:57 -0800</date>
            <delta_ts>2016-02-23 16:04:46 -0800</delta_ts>
            <desc>Update with review fixes, setting -&gt; bool (temporarily removed limit)</desc>
            <filename>154578.2.patch</filename>
            <type>text/plain</type>
            <size>8758</size>
            <attacher name="Gavin Barraclough">barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5Njk4OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQxIEBACisyMDE2LTAyLTIzICBHYXZpbiBC
YXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYSBtZWNo
YW5pc20gdG8gYXV0b21hdGljYWxseSByYW1wIHVwIHRpbWVyIGFsaWdubWVudC4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NDU3OAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFsbG93IHRpbWVyIGFsaWdu
bWVudCBkdXJhdGlvbiB0byBiZSBwcm9wb3J0aW9uYWwgdG8gdGhlIHRpbWUgdGhlIHBhZ2UKKyAg
ICAgICAgaGFzIGJlZW4gaGlkZGVuLiBUaGlzIGltcGxlbWVudGF0aW9uIGRvZXMgc28gYnkgc2Nh
bGluZyB1cCB0aGUgdGhyb3R0bGUKKyAgICAgICAgaW4gZXhwb25lbnRpYWwgc3RlcHMsIHNwYWNl
ZCBleHBvbmVudGlhbGx5IGZhciBhcGFydCwgdW50aWwgYSBsaW1pdCBpcworICAgICAgICByZWFj
aGVkLgorCisgICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6
OlBhZ2UpOgorICAgICAgICAgICAgLSBpbml0aWFsaXplIHRpbWVyLgorICAgICAgICAoV2ViQ29y
ZTo6UGFnZTo6aGlkZGVuUGFnZURPTVRpbWVyVGhyb3R0bGluZ1N0YXRlQ2hhbmdlZCk6CisgICAg
ICAgICAgICAtIGlmIHNldHRpbmcgYXJlIGNoYW5nZWQgZnVsbHkgZGlzYWJsZS9yZWVuYWJsZSB0
byBlbnN1cmUgbmV3IHNldHRpbmcgYXJlIHJlYWQuCisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpz
ZXRUaW1lclRocm90dGxpbmdFbmFibGVkKToKKyAgICAgICAgICAgIC0gZW5lYmxlZCBib29sIGZs
YWcgY29udmVydGVkIHRvIGFuIE9wdGlvbmFsPGRvdWJsZT4sIHRyYWNraW5nIHRpbWUgdGhyb3R0
bGluZworICAgICAgICAgICAgICBpcyBlbmFibGVkLgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6
c2V0RE9NVGltZXJBbGlnbm1lbnRJbnRlcnZhbCk6CisgICAgICAgICAgICAtIHdoZW4gbmV3IG1l
Y2hhbmlzbSBpcyBlbmFibGVkIHNjaGVkdWxlIGEgdGltZXIgdG8gc3RlcCB1cCBhbGlnbm1lbnQu
CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjp0aW1lckFsaWdubWVudEludGVydmFsSW5jcmVhc2VU
aW1lckZpcmVkKToKKyAgICAgICAgICAgIC0gd2hlbiB0aW1lciBmaXJlcyBpbmNyZWFzZSBhbGln
bm1lbnQuCisgICAgICAgICogcGFnZS9QYWdlLmg6CisgICAgICAgICAgICAtIGFkZGVkIG5ldyBt
ZW1iZXIuCisgICAgICAgICogcGFnZS9TZXR0aW5ncy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
ZXR0aW5nczo6U2V0dGluZ3MpOgorICAgICAgICAgICAgLSBpbml0aWFsaXplIG5ldyBtZW1iZXIu
CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6c2V0SGlkZGVuUGFnZURPTVRpbWVyVGhyb3R0
bGluZ0F1dG9JbmNyZWFzZUxpbWl0KToKKyAgICAgICAgICAgIC0gYWRkZWQsIHVwZGF0ZSBuZXcg
c2V0dGluZy4gU2V0dGluZyB0byB6ZXJvIGRpc2FibGVkLiBBIG5vbi16ZXJvIHZhbHVlIGlzIGEK
KyAgICAgICAgICAgICAgZHVyYXRpb24gaW4gc2Vjb25kcyBmb3IgdGltZXIgdGhyb3R0bGluZyB0
byByYW1wIHVwIHRvLgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuaDoKKyAgICAgICAgKFdlYkNv
cmU6OlNldHRpbmdzOjpoaWRkZW5QYWdlRE9NVGltZXJUaHJvdHRsaW5nQXV0b0luY3JlYXNlcyk6
CisgICAgICAgICAgICAtIHJlYWQgYXMgYm9vbGVhbiB3aGV0aGVyIHRocm90dGxlIGluY3JlYXNp
bmcgaXMgZW5hYmxlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjpoaWRkZW5QYWdlRE9N
VGltZXJUaHJvdHRsaW5nQXV0b0luY3JlYXNlTGltaXQpOgorICAgICAgICAgICAgLSByZWFkIHRo
cm90dGxlIGluY3JlYXNpbmcgbGltaXQuCisKIDIwMTYtMDItMjMgIE1hbnVlbCBSZWdvIENhc2Fz
bm92YXMgIDxyZWdvQGlnYWxpYS5jb20+CiAKICAgICAgICAgW2Nzcy1ncmlkXSBBdm9pZCBkdXBs
aWNhdGVkIGNhbGxzIHRvIHJlc29sdXRpb24gY29kZQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCShy
ZXZpc2lvbiAxOTY5ODgpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yMDQsOCArMjA0LDggQEAgUGFnZTo6UGFnZShQYWdlQ29uZmlndXJhdGlvbiYg
cGFnZUNvbmZpZwogI2lmIEVOQUJMRShWSUVXX01PREVfQ1NTX01FRElBKQogICAgICwgbV92aWV3
TW9kZShWaWV3TW9kZVdpbmRvd2VkKQogI2VuZGlmIC8vIEVOQUJMRShWSUVXX01PREVfQ1NTX01F
RElBKQotICAgICwgbV90aW1lclRocm90dGxpbmdFbmFibGVkKGZhbHNlKQogICAgICwgbV90aW1l
ckFsaWdubWVudEludGVydmFsKERPTVRpbWVyOjpkZWZhdWx0QWxpZ25tZW50SW50ZXJ2YWwoKSkK
KyAgICAsIG1fdGltZXJBbGlnbm1lbnRJbnRlcnZhbEluY3JlYXNlVGltZXIoKnRoaXMsICZQYWdl
Ojp0aW1lckFsaWdubWVudEludGVydmFsSW5jcmVhc2VUaW1lckZpcmVkKQogICAgICwgbV9pc0Vk
aXRhYmxlKGZhbHNlKQogICAgICwgbV9pc1ByZXJlbmRlcihmYWxzZSkKICAgICAsIG1fdmlld1N0
YXRlKFBhZ2VJbml0aWFsVmlld1N0YXRlKQpAQCAtMTE1Nyw2ICsxMTU3LDggQEAgdm9pZCBQYWdl
OjpzZXRNZW1vcnlDYWNoZUNsaWVudENhbGxzRW5hYgogCiB2b2lkIFBhZ2U6OmhpZGRlblBhZ2VE
T01UaW1lclRocm90dGxpbmdTdGF0ZUNoYW5nZWQoKQogeworICAgIC8vIERpc2FibGUgJiByZWVu
Z2FnZSB0byBlbnN1cmUgc3RhdGUgaXMgdXBkYXRlZC4KKyAgICBzZXRUaW1lclRocm90dGxpbmdF
bmFibGVkKGZhbHNlKTsKICAgICBzZXRUaW1lclRocm90dGxpbmdFbmFibGVkKG1fdmlld1N0YXRl
ICYgVmlld1N0YXRlOjpJc1Zpc3VhbGx5SWRsZSk7CiB9CiAKQEAgLTExNjcsMjEgKzExNjksNDgg
QEAgdm9pZCBQYWdlOjpzZXRUaW1lclRocm90dGxpbmdFbmFibGVkKGJvbwogICAgICAgICBlbmFi
bGVkID0gZmFsc2U7CiAjZW5kaWYKIAotICAgIGlmIChlbmFibGVkID09IG1fdGltZXJUaHJvdHRs
aW5nRW5hYmxlZCkKKyAgICBpZiAoZW5hYmxlZCA9PSAhIW1fdGltZXJUaHJvdHRsaW5nRW5hYmxl
ZFRpbWUpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fdGltZXJUaHJvdHRsaW5nRW5hYmxlZCA9
IGVuYWJsZWQ7CisgICAgbV90aW1lclRocm90dGxpbmdFbmFibGVkVGltZSA9IGVuYWJsZWQgPyBt
b25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKSA6IE9wdGlvbmFsPGRvdWJsZT4oKTsKICAgICBz
ZXRET01UaW1lckFsaWdubWVudEludGVydmFsKGVuYWJsZWQgPyBET01UaW1lcjo6aGlkZGVuUGFn
ZUFsaWdubWVudEludGVydmFsKCkgOiBET01UaW1lcjo6ZGVmYXVsdEFsaWdubWVudEludGVydmFs
KCkpOwogfQogCiB2b2lkIFBhZ2U6OnNldERPTVRpbWVyQWxpZ25tZW50SW50ZXJ2YWwoZG91Ymxl
IGFsaWdubWVudEludGVydmFsKQogeworICAgIC8vIElmIHRoZSBuZXcgYWxpZ25tZW50SW50ZXJ2
YWwgaXMgc2hvcnRlciB0aGFuIHRoZSBvbmUgcHJlc2VudGx5IGluIGVmZmVjdCB3ZSBuZWVkIHRv
IHVwZGF0ZQorICAgIC8vIGV4aXN0aW5nIHRpbWVycyAoZS5nLiB3aGVuIGEgaGlkZGVuIHBhZ2Ug
YmVjb21lcyB2aXNpYmxlIHRocm90dGxlZCB0aW1lcnMgbXVzdCBiZSB1bnRocm90dGxlZCkuCisg
ICAgLy8gSG93ZXZlciB3aGVuIGxlbmd0aGVuaW5nIHRoZSBhbGlnbm1lbnQgaW50ZXJ2YWwsIG5v
IG5lZWQgdG8gdXBkYXRlIGV4aXN0aW5nIHRpbWVycy4gTm90IGRvaW5nCisgICAgLy8gc28gbWVh
bnMgdGhhdCB0aW1lcnMgc2NoZWR1bGVkIHdoaWxlIHRoZSBwYWdlIGlzIHZpc2libGUgZ2V0IHRv
IGZpcmUgYWNjdXJhdGVseSAocmVwZWF0aW5nCisgICAgLy8gdGltZXJzIHdpbGwgYmUgdGhyb3R0
bGVkIG9uIHRoZSBuZXh0IHRpbWVyIGZpcmUpLgorICAgIGJvb2wgc2hvdWxkUmVzY2hlZHVsZUV4
aXN0aW5nVGltZXJzID0gYWxpZ25tZW50SW50ZXJ2YWwgPCBtX3RpbWVyQWxpZ25tZW50SW50ZXJ2
YWw7CisKICAgICBtX3RpbWVyQWxpZ25tZW50SW50ZXJ2YWwgPSBhbGlnbm1lbnRJbnRlcnZhbDsK
LSAgICAKLSAgICBmb3IgKEZyYW1lKiBmcmFtZSA9ICZtYWluRnJhbWUoKTsgZnJhbWU7IGZyYW1l
ID0gZnJhbWUtPnRyZWUoKS50cmF2ZXJzZU5leHQoKSkgewotICAgICAgICBpZiAoZnJhbWUtPmRv
Y3VtZW50KCkpCi0gICAgICAgICAgICBmcmFtZS0+ZG9jdW1lbnQoKS0+ZGlkQ2hhbmdlVGltZXJB
bGlnbm1lbnRJbnRlcnZhbCgpOworCisgICAgaWYgKHNob3VsZFJlc2NoZWR1bGVFeGlzdGluZ1Rp
bWVycykgeworICAgICAgICBmb3IgKEZyYW1lKiBmcmFtZSA9ICZtYWluRnJhbWUoKTsgZnJhbWU7
IGZyYW1lID0gZnJhbWUtPnRyZWUoKS50cmF2ZXJzZU5leHQoKSkgeworICAgICAgICAgICAgaWYg
KGF1dG8qIGRvY3VtZW50ID0gZnJhbWUtPmRvY3VtZW50KCkpCisgICAgICAgICAgICAgICAgZG9j
dW1lbnQtPmRpZENoYW5nZVRpbWVyQWxpZ25tZW50SW50ZXJ2YWwoKTsKKyAgICAgICAgfQogICAg
IH0KKworICAgIC8vIElmIHRocm90dGxpbmcgaXMgZW5hYmxlZCBhbmQgYXV0by1pbmNyZWFzaW5n
IG9mIHRocm90dGxpbmcgaXMgZW5hYmxlZCB0aGVuIGFybSB0aGUgdGltZXIgdG8KKyAgICAvLyBj
b25zaWRlciBhbiBpbmNyZWFzZS4gVGltZSB0byB3YWl0IGJldHdlZW4gaW5jcmVhc2VzIGlzIGVx
dWFsIHRvIHRoZSBjdXJyZW50IHRocm90dGxlIHRpbWUuCisgICAgLy8gU2luY2UgYWxpbm1lbnQg
aW50ZXJ2YWwgaW5jcmVhc2VzIGV4cG9uZW50aWFsbHksIHRpbWUgYmV0d2VlbiBzdGVwcyBpcyBl
eHBvbmVudGlhbCB0b28uCisgICAgaWYgKG1fdGltZXJUaHJvdHRsaW5nRW5hYmxlZFRpbWUgJiYg
bV9zZXR0aW5ncy0+aGlkZGVuUGFnZURPTVRpbWVyVGhyb3R0bGluZ0F1dG9JbmNyZWFzZXMoKSkg
eworICAgICAgICBtX3RpbWVyQWxpZ25tZW50SW50ZXJ2YWxJbmNyZWFzZVRpbWVyLnN0YXJ0T25l
U2hvdChtX3RpbWVyQWxpZ25tZW50SW50ZXJ2YWwpOworICAgIH0gZWxzZQorICAgICAgICBtX3Rp
bWVyQWxpZ25tZW50SW50ZXJ2YWxJbmNyZWFzZVRpbWVyLnN0b3AoKTsKK30KKwordm9pZCBQYWdl
Ojp0aW1lckFsaWdubWVudEludGVydmFsSW5jcmVhc2VUaW1lckZpcmVkKCkKK3sKKyAgICBBU1NF
UlQobV90aW1lclRocm90dGxpbmdFbmFibGVkVGltZSAmJiBtX3NldHRpbmdzLT5oaWRkZW5QYWdl
RE9NVGltZXJUaHJvdHRsaW5nQXV0b0luY3JlYXNlcygpKTsKKyAgICAgICAgCisgICAgLy8gQWxp
Z25tZW50IGludGVydmFsIGlzIGluY3JlYXNlZCB0byBlcXVhbCB0aGUgdGltZSB0aGUgcGFnZSBo
YXMgYmVlbiB0aHJvdHRsZWQuCisgICAgZG91YmxlIHRocm90dGxlZER1cmF0aW9uID0gbW9ub3Rv
bmljYWxseUluY3JlYXNpbmdUaW1lKCkgLSBtX3RpbWVyVGhyb3R0bGluZ0VuYWJsZWRUaW1lLnZh
bHVlKCk7CisgICAgZG91YmxlIGFsaWdubWVudEludGVydmFsID0gc3RkOjptYXgobV90aW1lckFs
aWdubWVudEludGVydmFsLCB0aHJvdHRsZWREdXJhdGlvbik7CisgICAgc2V0RE9NVGltZXJBbGln
bm1lbnRJbnRlcnZhbChhbGlnbm1lbnRJbnRlcnZhbCk7CiB9CiAKIHZvaWQgUGFnZTo6ZG5zUHJl
ZmV0Y2hpbmdTdGF0ZUNoYW5nZWQoKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgJKHJldmlzaW9uIDE5Njk4
OCkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00Miw2
ICs0Miw3IEBACiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNl
dC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi9PcHRpb25h
bC5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgog
I2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtNTIzLDcgKzUyNCw3IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBoaWRkZW5QYWdlRE9NVGltZXJUaHJvdHRsaW5nU3RhdGVDaGFuZ2VkKCk7
CiAgICAgdm9pZCBzZXRUaW1lclRocm90dGxpbmdFbmFibGVkKGJvb2wpOwogICAgIHZvaWQgc2V0
RE9NVGltZXJBbGlnbm1lbnRJbnRlcnZhbChkb3VibGUpOwotICAgIHZvaWQgdGltZXJBbGlnbm1l
bnRJbnRlcnZhbFRpbWVyRmlyZWQoKTsKKyAgICB2b2lkIHRpbWVyQWxpZ25tZW50SW50ZXJ2YWxJ
bmNyZWFzZVRpbWVyRmlyZWQoKTsKIAogICAgIGNvbnN0IHN0ZDo6dW5pcXVlX3B0cjxDaHJvbWU+
IG1fY2hyb21lOwogICAgIGNvbnN0IHN0ZDo6dW5pcXVlX3B0cjxEcmFnQ2FyZXRDb250cm9sbGVy
PiBtX2RyYWdDYXJldENvbnRyb2xsZXI7CkBAIC02MDksOCArNjEwLDkgQEAgcHJpdmF0ZToKICAg
ICBWaWV3TW9kZSBtX3ZpZXdNb2RlOwogI2VuZGlmIC8vIEVOQUJMRShWSUVXX01PREVfQ1NTX01F
RElBKQogCi0gICAgYm9vbCBtX3RpbWVyVGhyb3R0bGluZ0VuYWJsZWQ7CisgICAgT3B0aW9uYWw8
ZG91YmxlPiBtX3RpbWVyVGhyb3R0bGluZ0VuYWJsZWRUaW1lOwogICAgIGRvdWJsZSBtX3RpbWVy
QWxpZ25tZW50SW50ZXJ2YWw7CisgICAgVGltZXIgbV90aW1lckFsaWdubWVudEludGVydmFsSW5j
cmVhc2VUaW1lcjsKIAogICAgIGJvb2wgbV9pc0VkaXRhYmxlOwogICAgIGJvb2wgbV9pc1ByZXJl
bmRlcjsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCShyZXZpc2lvbiAxOTY5ODgpCisr
KyBTb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjgx
LDYgKzY4MSwxNSBAQCB2b2lkIFNldHRpbmdzOjpzZXRIaWRkZW5QYWdlRE9NVGltZXJUaHJvCiB9
CiAjZW5kaWYKIAordm9pZCBTZXR0aW5nczo6c2V0SGlkZGVuUGFnZURPTVRpbWVyVGhyb3R0bGlu
Z0F1dG9JbmNyZWFzZXMoYm9vbCBmbGFnKQoreworICAgIGlmIChtX2hpZGRlblBhZ2VET01UaW1l
clRocm90dGxpbmdBdXRvSW5jcmVhc2VzID09IGZsYWcpCisgICAgICAgIHJldHVybjsKKyAgICBt
X2hpZGRlblBhZ2VET01UaW1lclRocm90dGxpbmdBdXRvSW5jcmVhc2VzID0gZmxhZzsKKyAgICBp
ZiAobV9wYWdlKQorICAgICAgICBtX3BhZ2UtPmhpZGRlblBhZ2VET01UaW1lclRocm90dGxpbmdT
dGF0ZUNoYW5nZWQoKTsKK30KKwogdm9pZCBTZXR0aW5nczo6c2V0SGlkZGVuUGFnZUNTU0FuaW1h
dGlvblN1c3BlbnNpb25FbmFibGVkKGJvb2wgZmxhZykKIHsKICAgICBpZiAobV9oaWRkZW5QYWdl
Q1NTQW5pbWF0aW9uU3VzcGVuc2lvbkVuYWJsZWQgPT0gZmxhZykKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BhZ2UvU2V0dGluZ3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1Nl
dHRpbmdzLmgJKHJldmlzaW9uIDE5Njk4OCkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGlu
Z3MuaAkod29ya2luZyBjb3B5KQpAQCAtMTY1LDYgKzE2NSw4IEBAIHB1YmxpYzoKICAgICBib29s
IGhpZGRlblBhZ2VET01UaW1lclRocm90dGxpbmdFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9o
aWRkZW5QYWdlRE9NVGltZXJUaHJvdHRsaW5nRW5hYmxlZDsgfQogICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgc2V0SGlkZGVuUGFnZURPTVRpbWVyVGhyb3R0bGluZ0VuYWJsZWQoYm9vbCk7CiAjZW5k
aWYKKyAgICBib29sIGhpZGRlblBhZ2VET01UaW1lclRocm90dGxpbmdBdXRvSW5jcmVhc2VzKCkg
Y29uc3QgeyByZXR1cm4gbV9oaWRkZW5QYWdlRE9NVGltZXJUaHJvdHRsaW5nQXV0b0luY3JlYXNl
czsgfQorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0SGlkZGVuUGFnZURPTVRpbWVyVGhyb3R0
bGluZ0F1dG9JbmNyZWFzZXMoYm9vbCk7CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFVz
ZXNQYWdlQ2FjaGUoYm9vbCk7CiAgICAgYm9vbCB1c2VzUGFnZUNhY2hlKCkgY29uc3QgeyByZXR1
cm4gbV91c2VzUGFnZUNhY2hlOyB9CkBAIC0zNDUsNiArMzQ3LDggQEAgcHJpdmF0ZToKICAgICBi
b29sIG1fcmVzb3VyY2VVc2FnZU92ZXJsYXlWaXNpYmxlIHsgZmFsc2UgfTsKICNlbmRpZgogCisg
ICAgYm9vbCBtX2hpZGRlblBhZ2VET01UaW1lclRocm90dGxpbmdBdXRvSW5jcmVhc2VzIHsgZmFs
c2UgfTsKKwogI2lmIFVTRShBVkZPVU5EQVRJT04pCiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGlj
IGJvb2wgZ0FWRm91bmRhdGlvbkVuYWJsZWQ7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIGJv
b2wgZ0FWRm91bmRhdGlvbk5TVVJMU2Vzc2lvbkVuYWJsZWQ7Cg==
</data>
<flag name="review"
          id="296863"
          type_id="1"
          status="+"
          setter="cdumez"
    />
          </attachment>
      

    </bug>

</bugzilla>