<?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>195244</bug_id>
          
          <creation_ts>2019-03-02 08:38:12 -0800</creation_ts>
          <short_desc>[ContentChangeObserver] Introduce ContentChangeObserver::adjustObservedState</short_desc>
          <delta_ts>2019-03-02 16:15:17 -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>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1511810</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2019-03-02 08:38:12 -0800</bug_when>
    <thetext>to be able to follow state changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1511811</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-03-02 08:38:46 -0800</bug_when>
    <thetext>&lt;rdar://problem/48536737&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1511812</commentid>
    <comment_count>2</comment_count>
      <attachid>363422</attachid>
    <who name="alan">zalan</who>
    <bug_when>2019-03-02 08:47:13 -0800</bug_when>
    <thetext>Created attachment 363422
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1511854</commentid>
    <comment_count>3</comment_count>
      <attachid>363422</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-03-02 13:27:28 -0800</bug_when>
    <thetext>Comment on attachment 363422
Patch

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

&gt; LayoutTests/fast/events/touch/ios/visibility-change-happens-at-the-second-timer.html:3
&gt; +&lt;title&gt;This test that we trigger hover when the content change starts as async but it turns into a sync style recalc.&lt;/title&gt;

This tests that

&gt; LayoutTests/fast/events/touch/ios/visibility-change-happens-at-the-second-timer.html:50
&gt; +        document.body.offsetHeight;

Is this necessary?

&gt; Source/WebCore/page/ios/ContentChangeObserver.cpp:143
&gt;  void ContentChangeObserver::didContentVisibilityChange()

contentVisibilityDidChange? didContentVisibilityChange sounds like a question.

&gt; Source/WebCore/page/ios/ContentChangeObserver.cpp:197
&gt; +    if (event == Event::DidContentObservationStart) {

Use a switch so that you get warnings from the complier?

&gt; Source/WebCore/page/ios/ContentChangeObserver.cpp:219
&gt; +void ContentChangeObserver::signalContentChangeIfNeeded()

I think &quot;notify&quot; would be a better term to use.

&gt; Source/WebCore/page/ios/ContentChangeObserver.h:93
&gt; +    void addObservedDOMTimer(const DOMTimer&amp;);
&gt;      void removeObservedDOMTimer(const DOMTimer&amp;);

Normally we&apos;d say &quot;startObservingFoo/stopObservingFoo&quot;.

&gt; Source/WebCore/page/ios/ContentChangeObserver.h:115
&gt; +    enum class Event {

Event is a bit of an overloaded term. Maybe OK here.

&gt; Source/WebCore/page/ios/ContentChangeObserver.h:119
&gt; +        DidContentObservationStart,
&gt; +        DidInstallDOMTimer,
&gt; +        DidRemoveDOMTimer,
&gt; +        DidContentVisibilityChange

I think you can remove the &quot;Did&quot; from all these. Maybe use the past tense: Event::InstalledDOMTimer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1511876</commentid>
    <comment_count>4</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2019-03-02 16:15:17 -0800</bug_when>
    <thetext>Committed r242321: &lt;https://trac.webkit.org/changeset/242321&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>363422</attachid>
            <date>2019-03-02 08:47:13 -0800</date>
            <delta_ts>2019-03-02 13:27:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>Patch.txt</filename>
            <type>text/plain</type>
            <size>13425</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBhZTg2MjUwNzE2ZC4uZjVhZjBkM2YwM2EgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAor
MjAxOS0wMy0wMiAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgorCisgICAgICAgIFtD
b250ZW50Q2hhbmdlT2JzZXJ2ZXJdIEludHJvZHVjZSBDb250ZW50Q2hhbmdlT2JzZXJ2ZXI6OmFk
anVzdE9ic2VydmVkU3RhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE5NTI0NAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDg1MzY3Mzc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2V2ZW50
cy90b3VjaC9pb3MvdmlzaWJpbGl0eS1jaGFuZ2UtaGFwcGVucy1hdC10aGUtc2Vjb25kLXRpbWVy
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gvaW9zL3Zp
c2liaWxpdHktY2hhbmdlLWhhcHBlbnMtYXQtdGhlLXNlY29uZC10aW1lci5odG1sOiBBZGRlZC4K
KwogMjAxOS0wMy0wMSAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAg
IFtDb250ZW50Q2hhbmdlT2JzZXJ2ZXJdIENoZWNrIGZvciBwZW5kaW5nIHN0eWxlIHJlY2FsY3Mg
YXQgdGhlIGVuZCBvZiBlYWNoIHRpbWVyIHJ1bi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3RvdWNoL2lvcy92aXNpYmlsaXR5LWNoYW5nZS1oYXBwZW5zLWF0LXRoZS1zZWNv
bmQtdGltZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9z
L3Zpc2liaWxpdHktY2hhbmdlLWhhcHBlbnMtYXQtdGhlLXNlY29uZC10aW1lci1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjY2ZGI0Yzk0MDhhCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3Zpc2li
aWxpdHktY2hhbmdlLWhhcHBlbnMtYXQtdGhlLXNlY29uZC10aW1lci1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwyIEBACitQQVNTIGlmICdjbGlja2VkJyB0ZXh0IGlzIG5vdCBzaG93biBiZWxvdy4K
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3Zpc2liaWxp
dHktY2hhbmdlLWhhcHBlbnMtYXQtdGhlLXNlY29uZC10aW1lci5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvdG91Y2gvaW9zL3Zpc2liaWxpdHktY2hhbmdlLWhhcHBlbnMtYXQtdGhlLXNl
Y29uZC10aW1lci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi40
NWViZjNiYTRhNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Rv
dWNoL2lvcy92aXNpYmlsaXR5LWNoYW5nZS1oYXBwZW5zLWF0LXRoZS1zZWNvbmQtdGltZXIuaHRt
bApAQCAtMCwwICsxLDY1IEBACis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPlRoaXMgdGVzdCB0aGF0
IHdlIHRyaWdnZXIgaG92ZXIgd2hlbiB0aGUgY29udGVudCBjaGFuZ2Ugc3RhcnRzIGFzIGFzeW5j
IGJ1dCBpdCB0dXJucyBpbnRvIGEgc3luYyBzdHlsZSByZWNhbGMuPC90aXRsZT4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvYmFzaWMtZ2VzdHVyZXMuanMiPjwvc2NyaXB0Pgor
PHN0eWxlPgorI3RhcHRoaXMgeworICAgIHdpZHRoOiA0MDBweDsKKyAgICBoZWlnaHQ6IDQwMHB4
OworICAgIGJvcmRlcjogMXB4IHNvbGlkIGdyZWVuOworfQorCisjYmVjb21lc1Zpc2libGUgewor
ICAgIHZpc2liaWxpdHk6IGhpZGRlbjsKKyAgICB3aWR0aDogMTAwcHg7CisgICAgaGVpZ2h0OiAx
MDBweDsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKK30KKzwvc3R5bGU+Cis8c2NyaXB0
PgorYXN5bmMgZnVuY3Rpb24gdGVzdCgpIHsKKyAgICBpZiAoIXdpbmRvdy50ZXN0UnVubmVyIHx8
ICF0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KQorICAgICAgICByZXR1cm47CisKKyAgICB0ZXN0UnVu
bmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKworICAg
IGxldCByZWN0ID0gdGFwdGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgICBsZXQgeCA9
IHJlY3QubGVmdCArIHJlY3Qud2lkdGggLyAyOworICAgIGxldCB5ID0gcmVjdC50b3AgKyByZWN0
LmhlaWdodCAvIDI7CisKKyAgICBhd2FpdCB0YXBBdFBvaW50KHgsIHkpOworfQorPC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InRlc3QoKSI+Cis8ZGl2IGlkPXRhcHRoaXM+UEFTUyBp
ZiAnY2xpY2tlZCcgdGV4dCBpcyBub3Qgc2hvd24gYmVsb3cuPC9kaXY+Cis8ZGl2IGlkPWJlY29t
ZXNWaXNpYmxlPjwvZGl2PgorPHByZSBpZD1yZXN1bHQ+PC9wcmU+Cis8c2NyaXB0PgordGFwdGhp
cy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW92ZXIiLCBmdW5jdGlvbiggZXZlbnQgKSB7CisgICAg
Ly8gMS4gSW5zdGFsbCAyIHRpbWVycyBvbiBob3ZlcgorICAgIHNldFRpbWVvdXQoZnVuY3Rpb24o
KSB7CisgICAgICAgIC8vIDIuIFRyaWdnZXIgc29tZSBub24tdmlzaWJpbGl0eSBzdHlsZSBjaGFu
Z2Ugd2l0aCBmb3JjaW5nIG9mZnNldEhlaWdodC4KKyAgICAgICAgYmVjb21lc1Zpc2libGUuc3R5
bGUubWFyZ2luTGVmdCA9ICI1cHgiOworICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldEhlaWdo
dDsKKyAgICB9LCAwKTsKKyAgICAvLyAzLiBJbnN0YWxsIGEgbG9uZ2VyIHRpbWVyIHdpdGggdmlz
aWJpbGl0eSBjaGFuZ2UuCisgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgYmVj
b21lc1Zpc2libGUuc3R5bGUudmlzaWJpbGl0eSA9ICJ2aXNpYmxlIjsKKyAgICAgICAgZG9jdW1l
bnQuYm9keS5vZmZzZXRIZWlnaHQ7CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAg
ICAgICAgICAgIHNldFRpbWVvdXQodGVzdFJ1bm5lci5ub3RpZnlEb25lKCksIDApOworICAgIH0s
IDIwKTsKK30sIGZhbHNlKTsKKworYmVjb21lc1Zpc2libGUuYWRkRXZlbnRMaXN0ZW5lcigiY2xp
Y2siLCBmdW5jdGlvbiggZXZlbnQgKSB7ICAgCisgICAgcmVzdWx0LmlubmVySFRNTCA9ICJjbGlj
a2VkIGhpZGRlbiI7Cit9LCBmYWxzZSk7CisKK3RhcHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigiY2xp
Y2siLCBmdW5jdGlvbiggZXZlbnQgKSB7ICAgCisgICAgcmVzdWx0LmlubmVySFRNTCA9ICJjbGlj
a2VkIjsKK30sIGZhbHNlKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmlu
ZGV4IDBhNGZiNWRiNWRlLi44NmFlZjg1NGY4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBA
CisyMDE5LTAzLTAyICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAg
W0NvbnRlbnRDaGFuZ2VPYnNlcnZlcl0gSW50cm9kdWNlIENvbnRlbnRDaGFuZ2VPYnNlcnZlcjo6
YWRqdXN0T2JzZXJ2ZWRTdGF0ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTk1MjQ0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80ODUzNjczNz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlIHN0YXRl
IGNoYW5nZSBoYW5kbGluZyBjb2RlIHRvIGFkanVzdE9ic2VydmVkU3RhdGUoKSBhbmQgaW50cm9k
dWNlIHNpZ25hbENvbnRlbnRDaGFuZ2VJZk5lZWRlZCgpIHRvCisgICAgICAgIGxldCB0aGUgY2xp
ZW50IGtub3cgYWJvdXQgdGhlIHN0YXRlIGNoYW5nZSAob3IgbGFjayBvZiBzdGF0ZSBjaGFuZ2Up
LgorCisgICAgICAgIFRlc3Q6IGZhc3QvZXZlbnRzL3RvdWNoL2lvcy92aXNpYmlsaXR5LWNoYW5n
ZS1oYXBwZW5zLWF0LXRoZS1zZWNvbmQtdGltZXIuaHRtbAorCisgICAgICAgICogcGFnZS9pb3Mv
Q29udGVudENoYW5nZU9ic2VydmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRDaGFu
Z2VPYnNlcnZlcjo6ZGlkSW5zdGFsbERPTVRpbWVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRl
bnRDaGFuZ2VPYnNlcnZlcjo6ZGlkUmVtb3ZlRE9NVGltZXIpOgorICAgICAgICAoV2ViQ29yZTo6
Q29udGVudENoYW5nZU9ic2VydmVyOjpzdG9wT2JzZXJ2aW5nRE9NVGltZXJFeGVjdXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNvbnRlbnRDaGFuZ2VPYnNlcnZlcjo6c3RvcE9ic2VydmluZ1N0eWxl
UmVjYWxjKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRDaGFuZ2VPYnNlcnZlcjo6Y2xlYXJU
aW1lcnNBbmRSZXBvcnRDb250ZW50Q2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRD
aGFuZ2VPYnNlcnZlcjo6ZGlkQ29udGVudFZpc2liaWxpdHlDaGFuZ2UpOgorICAgICAgICAoV2Vi
Q29yZTo6Q29udGVudENoYW5nZU9ic2VydmVyOjphZGRPYnNlcnZlZERPTVRpbWVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNvbnRlbnRDaGFuZ2VPYnNlcnZlcjo6cmVtb3ZlT2JzZXJ2ZWRET01UaW1l
cik6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50Q2hhbmdlT2JzZXJ2ZXI6OnNldFNob3VsZE9i
c2VydmVTdHlsZVJlY2FsYyk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50Q2hhbmdlT2JzZXJ2
ZXI6OmFkanVzdE9ic2VydmVkU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudENoYW5n
ZU9ic2VydmVyOjpzaWduYWxDb250ZW50Q2hhbmdlSWZOZWVkZWQpOgorICAgICAgICAqIHBhZ2Uv
aW9zL0NvbnRlbnRDaGFuZ2VPYnNlcnZlci5oOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudENo
YW5nZU9ic2VydmVyOjppc09ic2VydmluZ0RPTVRpbWVyU2NoZWR1bGluZyBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpDb250ZW50Q2hhbmdlT2JzZXJ2ZXI6OmFkZE9ic2VydmVkRE9NVGltZXIp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudENoYW5nZU9ic2VydmVyOjpzZXRT
aG91bGRPYnNlcnZlU3R5bGVSZWNhbGMpOiBEZWxldGVkLgorCiAyMDE5LTAzLTAxICBaYWxhbiBC
dWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0NvbnRlbnRDaGFuZ2VPYnNlcnZl
cl0gTW92ZSBhd2F5IGZyb20gV0tDb250ZW50Q2hhbmdlIHZhbHVlcwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9pb3MvQ29udGVudENoYW5nZU9ic2VydmVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvaW9zL0NvbnRlbnRDaGFuZ2VPYnNlcnZlci5jcHAKaW5kZXggZTg3NDFmOWI4
MWQuLjNkMWQ1OWNjNDJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9Db250
ZW50Q2hhbmdlT2JzZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvaW9zL0NvbnRl
bnRDaGFuZ2VPYnNlcnZlci5jcHAKQEAgLTY1LDcgKzY1LDYgQEAgdm9pZCBDb250ZW50Q2hhbmdl
T2JzZXJ2ZXI6OmRpZEluc3RhbGxET01UaW1lcihjb25zdCBET01UaW1lciYgdGltZXIsIFNlY29u
ZHMgdGkKICAgICAgICAgcmV0dXJuOwogICAgIExPR19XSVRIX1NUUkVBTShDb250ZW50T2JzZXJ2
YXRpb24sIHN0cmVhbSA8PCAiZGlkSW5zdGFsbERPTVRpbWVyOiByZWdpc3RlciB0aGlzIHRpbWVy
OiAoIiA8PCAmdGltZXIgPDwgIikgYW5kIG9ic2VydmUgd2hlbiBpdCBmaXJlcy4iKTsKIAotICAg
IHNldEhhc0luZGV0ZXJtaW5hdGVTdGF0ZSgpOwogICAgIGFkZE9ic2VydmVkRE9NVGltZXIodGlt
ZXIpOwogfQogCkBAIC03Niw5ICs3NSw3IEBAIHZvaWQgQ29udGVudENoYW5nZU9ic2VydmVyOjpk
aWRSZW1vdmVET01UaW1lcihjb25zdCBET01UaW1lciYgdGltZXIpCiAgICAgTE9HX1dJVEhfU1RS
RUFNKENvbnRlbnRPYnNlcnZhdGlvbiwgc3RyZWFtIDw8ICJyZW1vdmVET01UaW1lcjogcmVtb3Zl
IHJlZ2lzdGVyZWQgdGltZXIgKCIgPDwgJnRpbWVyIDw8ICIpIik7CiAKICAgICByZW1vdmVPYnNl
cnZlZERPTVRpbWVyKHRpbWVyKTsKLSAgICAvLyBGSVhNRTogSnVzdCBiZWNhdXNlIHRoaXMgaXMg
dGhlIGxhc3QgdGltZXIsIGl0IGRvZXMgbm90IG1lYW4gd2UgYXJlIGluIGEgZGV0ZXJtaW5lZCBz
dGF0ZS4KLSAgICBpZiAoIWhhc09ic2VydmVkRE9NVGltZXIoKSkKLSAgICAgICAgbV9wYWdlLmNo
cm9tZSgpLmNsaWVudCgpLm9ic2VydmVkQ29udGVudENoYW5nZShtX3BhZ2UubWFpbkZyYW1lKCkp
OworICAgIHNpZ25hbENvbnRlbnRDaGFuZ2VJZk5lZWRlZCgpOwogfQogCiB2b2lkIENvbnRlbnRD
aGFuZ2VPYnNlcnZlcjo6c3RhcnRPYnNlcnZpbmdET01UaW1lckV4ZWN1dGUoY29uc3QgRE9NVGlt
ZXImIHRpbWVyKQpAQCAtOTYsMTkgKzkzLDEwIEBAIHZvaWQgQ29udGVudENoYW5nZU9ic2VydmVy
OjpzdG9wT2JzZXJ2aW5nRE9NVGltZXJFeGVjdXRlKGNvbnN0IERPTVRpbWVyJiB0aW1lcikKICAg
ICAgICAgcmV0dXJuOwogICAgIExPR19XSVRIX1NUUkVBTShDb250ZW50T2JzZXJ2YXRpb24sIHN0
cmVhbSA8PCAic3RvcE9ic2VydmluZ0RPTVRpbWVyRXhlY3V0ZTogc3RvcCBvYnNlcnZpbmcgKCIg
PDwgJnRpbWVyIDw8ICIpIHRpbWVyIGNhbGxiYWNrLiIpOwogCisgICAgbV9pc09ic2VydmluZ0Nv
bnRlbnRDaGFuZ2VzID0gZmFsc2U7CiAgICAgcmVtb3ZlT2JzZXJ2ZWRET01UaW1lcih0aW1lcik7
Ci0gICAgc3RvcE9ic2VydmluZ0NvbnRlbnRDaGFuZ2VzKCk7Ci0gICAgLy8gQ2hlY2sgaWYgdGhl
IHRpbWVyIGNhbGxiYWNrIHRyaWdnZXJlZCBlaXRoZXIgYSBzeW5jIG9yIGFzeW5jIHN0eWxlIHVw
ZGF0ZS4KLSAgICBpZiAoaGFzRGV0ZXJtaW5lZFN0YXRlKCkpIHsKLSAgICAgICAgTE9HX1dJVEhf
U1RSRUFNKENvbnRlbnRPYnNlcnZhdGlvbiwgc3RyZWFtIDw8ICJzdG9wT2JzZXJ2aW5nRE9NVGlt
ZXJFeGVjdXRlOiAoIiA8PCAmdGltZXIgPDwgIikgaW4gZGV0ZXJtaW5lZCBzdGF0ZS4iKTsKLSAg
ICAgICAgbV9wYWdlLmNocm9tZSgpLmNsaWVudCgpLm9ic2VydmVkQ29udGVudENoYW5nZShtX3Bh
Z2UubWFpbkZyYW1lKCkpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIGlmIChXZWJDb3Jl
OjpoYXNQZW5kaW5nU3R5bGVSZWNhbGMobV9wYWdlKSkgewotICAgICAgICAvLyBBbiBhc3luYyBz
dHlsZSByZWNhbGMgaGFzIGJlZW4gc2NoZWR1bGVkLiBMZXQncyBvYnNlcnZlIGl0LgotICAgICAg
ICBMT0dfV0lUSF9TVFJFQU0oQ29udGVudE9ic2VydmF0aW9uLCBzdHJlYW0gPDwgInN0b3BPYnNl
cnZpbmdET01UaW1lckV4ZWN1dGU6ICgiIDw8ICZ0aW1lciA8PCAiKSB3YWl0IHVudGlsIG5leHQg
c3R5bGUgcmVjYWxjIGZpcmVzLiIpOwotICAgICAgICBzZXRTaG91bGRPYnNlcnZlU3R5bGVSZWNh
bGModHJ1ZSk7Ci0gICAgfQorICAgIHNldFNob3VsZE9ic2VydmVTdHlsZVJlY2FsYyhXZWJDb3Jl
OjpoYXNQZW5kaW5nU3R5bGVSZWNhbGMobV9wYWdlKSk7CisgICAgc2lnbmFsQ29udGVudENoYW5n
ZUlmTmVlZGVkKCk7CiB9CiAKIHZvaWQgQ29udGVudENoYW5nZU9ic2VydmVyOjpzdGFydE9ic2Vy
dmluZ1N0eWxlUmVjYWxjKCkKQEAgLTEyOSwxOSArMTE3LDE0IEBAIHZvaWQgQ29udGVudENoYW5n
ZU9ic2VydmVyOjpzdG9wT2JzZXJ2aW5nU3R5bGVSZWNhbGMoKQogICAgIExPRyhDb250ZW50T2Jz
ZXJ2YXRpb24sICJzdG9wT2JzZXJ2aW5nU3R5bGVSZWNhbGM6IHN0b3Agb2JzZXJ2aW5nIHN0eWxl
IHJlY2FsYyIpOwogCiAgICAgc2V0U2hvdWxkT2JzZXJ2ZVN0eWxlUmVjYWxjKGZhbHNlKTsKLSAg
ICBpZiAoaGFzRGV0ZXJtaW5lZFN0YXRlKCkpIHsKLSAgICAgICAgTE9HKENvbnRlbnRPYnNlcnZh
dGlvbiwgInN0b3BPYnNlcnZpbmdTdHlsZVJlY2FsYzogbm90aWZ5IHRoZSBwZW5kaW5nIHN5bnRo
ZXRpYyBjbGljayBoYW5kbGVyLiIpOwotICAgICAgICBtX3BhZ2UuY2hyb21lKCkuY2xpZW50KCku
b2JzZXJ2ZWRDb250ZW50Q2hhbmdlKG1fcGFnZS5tYWluRnJhbWUoKSk7Ci0gICAgICAgIHJldHVy
bjsKLSAgICB9Ci0gICAgTE9HKENvbnRlbnRPYnNlcnZhdGlvbiwgInN0b3BPYnNlcnZpbmdTdHls
ZVJlY2FsYzogY2FuJ3QgZGVjaWRlZCBpdCB5ZXQuIik7CisgICAgc2lnbmFsQ29udGVudENoYW5n
ZUlmTmVlZGVkKCk7CiB9CiAKIHZvaWQgQ29udGVudENoYW5nZU9ic2VydmVyOjpjbGVhclRpbWVy
c0FuZFJlcG9ydENvbnRlbnRDaGFuZ2UoKQogewogICAgIGlmICghaGFzT2JzZXJ2ZWRET01UaW1l
cigpKQogICAgICAgICByZXR1cm47Ci0gICAgTE9HKENvbnRlbnRPYnNlcnZhdGlvbiwgImNsZWFy
VGltZXJzQW5kUmVwb3J0Q29udGVudENoYW5nZTogcmVtb3ZlIHJlZ2lzdGVyZWQgdGltZXJzIGFu
ZCByZXBvcnQgY29udGVudCBjaGFuZ2UuIik7CisgICAgTE9HX1dJVEhfU1RSRUFNKENvbnRlbnRP
YnNlcnZhdGlvbiwgc3RyZWFtIDw8ICJjbGVhclRpbWVyc0FuZFJlcG9ydENvbnRlbnRDaGFuZ2U6
IHJlbW92ZSByZWdpc3RlcmVkIHRpbWVycyBhbmQgcmVwb3J0IGNvbnRlbnQgY2hhbmdlLiIgPDwg
b2JzZXJ2ZWRDb250ZW50Q2hhbmdlKCkpOwogCiAgICAgY2xlYXJPYnNlcnZlZERPTVRpbWVycygp
OwogICAgIG1fcGFnZS5jaHJvbWUoKS5jbGllbnQoKS5vYnNlcnZlZENvbnRlbnRDaGFuZ2UobV9w
YWdlLm1haW5GcmFtZSgpKTsKQEAgLTE1OSw3ICsxNDIsOCBAQCB2b2lkIENvbnRlbnRDaGFuZ2VP
YnNlcnZlcjo6d2lsbERldGFjaFBhZ2UoKQogCiB2b2lkIENvbnRlbnRDaGFuZ2VPYnNlcnZlcjo6
ZGlkQ29udGVudFZpc2liaWxpdHlDaGFuZ2UoKQogewotICAgIHNldEhhc1Zpc2libGVDaGFuZ2VT
dGF0ZSgpOworICAgIExPRyhDb250ZW50T2JzZXJ2YXRpb24sICJkaWRDb250ZW50VmlzaWJpbGl0
eUNoYW5nZTogdmlzaWJsZSBjb250ZW50IGNoYW5nZSBkaWQgaGFwcGVuLiIpOworICAgIGFkanVz
dE9ic2VydmVkU3RhdGUoRXZlbnQ6OkRpZENvbnRlbnRWaXNpYmlsaXR5Q2hhbmdlKTsKIH0KIAog
dm9pZCBDb250ZW50Q2hhbmdlT2JzZXJ2ZXI6OnN0YXJ0T2JzZXJ2aW5nQ29udGVudENoYW5nZXMo
KQpAQCAtMTgyLDEyICsxNjYsMjMgQEAgV0tDb250ZW50Q2hhbmdlIENvbnRlbnRDaGFuZ2VPYnNl
cnZlcjo6b2JzZXJ2ZWRDb250ZW50Q2hhbmdlKCkgY29uc3QKICAgICByZXR1cm4gV0tPYnNlcnZl
ZENvbnRlbnRDaGFuZ2UoKTsKIH0KIAordm9pZCBDb250ZW50Q2hhbmdlT2JzZXJ2ZXI6OmFkZE9i
c2VydmVkRE9NVGltZXIoY29uc3QgRE9NVGltZXImIHRpbWVyKQoreworICAgIG1fRE9NVGltZXJM
aXN0LmFkZCgmdGltZXIpOworICAgIGFkanVzdE9ic2VydmVkU3RhdGUoRXZlbnQ6OkRpZEluc3Rh
bGxET01UaW1lcik7Cit9CisKIHZvaWQgQ29udGVudENoYW5nZU9ic2VydmVyOjpyZW1vdmVPYnNl
cnZlZERPTVRpbWVyKGNvbnN0IERPTVRpbWVyJiB0aW1lcikKIHsKICAgICBtX0RPTVRpbWVyTGlz
dC5yZW1vdmUoJnRpbWVyKTsKLSAgICAvLyBGb3JjZSByZXNldCB0aGUgY29udGVudCBjaGFuZ2Ug
ZmxhZyB3aGVuIHRoZSBsYXN0IG9ic2VydmVkIGNvbnRlbnQgbW9kaWZpZXIgaXMgcmVtb3ZlZC4g
V2Ugc2hvdWxkIG5vdCBiZSBpbiBhbiBpbmRldGVybWluYXRlIHN0YXRlIGFueW1vcmUuCi0gICAg
aWYgKCFoYXNPYnNlcnZlZERPTVRpbWVyKCkgJiYgb2JzZXJ2ZWRDb250ZW50Q2hhbmdlKCkgPT0g
V0tDb250ZW50SW5kZXRlcm1pbmF0ZUNoYW5nZSkKLSAgICAgICAgc2V0SGFzTm9DaGFuZ2VTdGF0
ZSgpOworICAgIGFkanVzdE9ic2VydmVkU3RhdGUoRXZlbnQ6OkRpZFJlbW92ZURPTVRpbWVyKTsK
K30KKwordm9pZCBDb250ZW50Q2hhbmdlT2JzZXJ2ZXI6OnNldFNob3VsZE9ic2VydmVTdHlsZVJl
Y2FsYyhib29sIHNob3VsZE9ic2VydmUpCit7CisgICAgaWYgKHNob3VsZE9ic2VydmUpCisgICAg
ICAgIExPRyhDb250ZW50T2JzZXJ2YXRpb24sICJXYWl0IHVudGlsIG5leHQgc3R5bGUgcmVjYWxj
IGZpcmVzLiIpOworICAgIG1fc2hvdWxkT2JzZXJ2ZVN0eWxlUmVjYWxjID0gc2hvdWxkT2JzZXJ2
ZTsKIH0KIAogYm9vbCBDb250ZW50Q2hhbmdlT2JzZXJ2ZXI6Omhhc0RldGVybWluZWRTdGF0ZSgp
IGNvbnN0CkBAIC0xOTcsNiArMTkyLDQxIEBAIGJvb2wgQ29udGVudENoYW5nZU9ic2VydmVyOjpo
YXNEZXRlcm1pbmVkU3RhdGUoKSBjb25zdAogICAgIHJldHVybiBvYnNlcnZlZENvbnRlbnRDaGFu
Z2UoKSA9PSBXS0NvbnRlbnROb0NoYW5nZSAmJiAhaGFzT2JzZXJ2ZWRET01UaW1lcigpICYmICFo
YXNQZW5kaW5nU3R5bGVSZWNhbGMobV9wYWdlKTsKIH0KIAordm9pZCBDb250ZW50Q2hhbmdlT2Jz
ZXJ2ZXI6OmFkanVzdE9ic2VydmVkU3RhdGUoRXZlbnQgZXZlbnQpCit7CisgICAgaWYgKGV2ZW50
ID09IEV2ZW50OjpEaWRDb250ZW50T2JzZXJ2YXRpb25TdGFydCkgeworICAgICAgICBzZXRIYXNO
b0NoYW5nZVN0YXRlKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKGV2ZW50ID09
IEV2ZW50OjpEaWRJbnN0YWxsRE9NVGltZXIpIHsKKyAgICAgICAgLy8gRXhwZWN0aW5nIGEgdGlt
ZXIgZmlyZS4gUHJvbW90ZSB0byBhbiBpbmRldGVybWluYXRlIHN0YXRlLgorICAgICAgICBBU1NF
UlQoIWhhc1Zpc2libGVDaGFuZ2VTdGF0ZSgpKTsKKyAgICAgICAgc2V0SGFzSW5kZXRlcm1pbmF0
ZVN0YXRlKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKGV2ZW50ID09IEV2ZW50
OjpEaWRSZW1vdmVET01UaW1lcikgeworICAgICAgICAvLyBEZW1vdGUgdG8gIm5vIGNoYW5nZSIg
d2hlbiB0aGVyZSdzIG5vIHBlbmRpbmcgYWN0aXZpdHkgYW55bW9yZS4KKyAgICAgICAgaWYgKG9i
c2VydmVkQ29udGVudENoYW5nZSgpID09IFdLQ29udGVudEluZGV0ZXJtaW5hdGVDaGFuZ2UgJiYg
IWhhc09ic2VydmVkRE9NVGltZXIoKSAmJiAhaGFzUGVuZGluZ1N0eWxlUmVjYWxjKG1fcGFnZSkp
CisgICAgICAgICAgICBzZXRIYXNOb0NoYW5nZVN0YXRlKCk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisgICAgaWYgKGV2ZW50ID09IEV2ZW50OjpEaWRDb250ZW50VmlzaWJpbGl0eUNoYW5nZSkg
eworICAgICAgICBzZXRIYXNWaXNpYmxlQ2hhbmdlU3RhdGUoKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKyB9CisKK3ZvaWQgQ29udGVudENoYW5nZU9ic2VydmVyOjpzaWduYWxDb250ZW50Q2hh
bmdlSWZOZWVkZWQoKQoreworICAgIGlmICghaGFzRGV0ZXJtaW5lZFN0YXRlKCkpIHsKKyAgICAg
ICAgTE9HKENvbnRlbnRPYnNlcnZhdGlvbiwgInNpZ25hbENvbnRlbnRDaGFuZ2VJZk5lZWRlZDog
bm90IGluIGEgZGV0ZXJtaW5lZCBzdGF0ZSB5ZXQuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisgICAgTE9HX1dJVEhfU1RSRUFNKENvbnRlbnRPYnNlcnZhdGlvbiwgc3RyZWFtIDw8ICJzaWdu
YWxDb250ZW50Q2hhbmdlSWZOZWVkZWQ6IHNlbmRpbmcgb2JzZXJ2ZWRDb250ZW50Q2hhbmdlIC0+
IiA8PCBvYnNlcnZlZENvbnRlbnRDaGFuZ2UoKSk7CisgICAgbV9wYWdlLmNocm9tZSgpLmNsaWVu
dCgpLm9ic2VydmVkQ29udGVudENoYW5nZShtX3BhZ2UubWFpbkZyYW1lKCkpOworfQorCisKIHN0
YXRpYyBWaXNpYmlsaXR5IGVsZW1lbnRJbXBsaWNpdFZpc2liaWxpdHkoY29uc3QgRWxlbWVudCYg
ZWxlbWVudCkKIHsKICAgICBhdXRvKiByZW5kZXJlciA9IGVsZW1lbnQucmVuZGVyZXIoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvaW9zL0NvbnRlbnRDaGFuZ2VPYnNlcnZlci5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9pb3MvQ29udGVudENoYW5nZU9ic2VydmVyLmgKaW5kZXgg
YWVlMjliMWRiYzcuLjQ3NjIwNzI2NDk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L2lvcy9Db250ZW50Q2hhbmdlT2JzZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lv
cy9Db250ZW50Q2hhbmdlT2JzZXJ2ZXIuaApAQCAtODksMTIgKzg5LDEyIEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBzdGFydE9ic2VydmluZ1N0eWxlUmVjYWxjKCk7CiAgICAgdm9pZCBzdG9wT2JzZXJ2
aW5nU3R5bGVSZWNhbGMoKTsKIAotICAgIHZvaWQgYWRkT2JzZXJ2ZWRET01UaW1lcihjb25zdCBE
T01UaW1lciYgdGltZXIpIHsgbV9ET01UaW1lckxpc3QuYWRkKCZ0aW1lcik7IH0KLSAgICBib29s
IGlzT2JzZXJ2aW5nRE9NVGltZXJTY2hlZHVsaW5nKCkgY29uc3QgeyByZXR1cm4gbV9pc09ic2Vy
dmluZ0RPTVRpbWVyU2NoZWR1bGluZzsgfQorICAgIHZvaWQgYWRkT2JzZXJ2ZWRET01UaW1lcihj
b25zdCBET01UaW1lciYpOwogICAgIHZvaWQgcmVtb3ZlT2JzZXJ2ZWRET01UaW1lcihjb25zdCBE
T01UaW1lciYpOworICAgIGJvb2wgaXNPYnNlcnZpbmdET01UaW1lclNjaGVkdWxpbmcoKSBjb25z
dCB7IHJldHVybiBtX2lzT2JzZXJ2aW5nRE9NVGltZXJTY2hlZHVsaW5nOyB9CiAgICAgYm9vbCBj
b250YWluc09ic2VydmVkRE9NVGltZXIoY29uc3QgRE9NVGltZXImIHRpbWVyKSBjb25zdCB7IHJl
dHVybiBtX0RPTVRpbWVyTGlzdC5jb250YWlucygmdGltZXIpOyB9CiAKLSAgICB2b2lkIHNldFNo
b3VsZE9ic2VydmVTdHlsZVJlY2FsYyhib29sIHNob3VsZE9ic2VydmUpIHsgbV9zaG91bGRPYnNl
cnZlU3R5bGVSZWNhbGMgPSBzaG91bGRPYnNlcnZlOyB9CisgICAgdm9pZCBzZXRTaG91bGRPYnNl
cnZlU3R5bGVSZWNhbGMoYm9vbCBzaG91bGRPYnNlcnZlKTsKICAgICBib29sIHNob3VsZE9ic2Vy
dmVTdHlsZVJlY2FsYygpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkT2JzZXJ2ZVN0eWxlUmVjYWxj
OyB9CiAKICAgICBib29sIGlzT2JzZXJ2aW5nQ29udGVudENoYW5nZXMoKSBjb25zdCB7IHJldHVy
biBtX2lzT2JzZXJ2aW5nQ29udGVudENoYW5nZXM7IH0KQEAgLTExMCw2ICsxMTAsMTYgQEAgcHJp
dmF0ZToKICAgICBib29sIGhhc09ic2VydmVkRE9NVGltZXIoKSBjb25zdCB7IHJldHVybiAhbV9E
T01UaW1lckxpc3QuaXNFbXB0eSgpOyB9CiAgICAgYm9vbCBoYXNEZXRlcm1pbmVkU3RhdGUoKSBj
b25zdDsKIAorICAgIHZvaWQgc2lnbmFsQ29udGVudENoYW5nZUlmTmVlZGVkKCk7CisKKyAgICBl
bnVtIGNsYXNzIEV2ZW50IHsKKyAgICAgICAgRGlkQ29udGVudE9ic2VydmF0aW9uU3RhcnQsCisg
ICAgICAgIERpZEluc3RhbGxET01UaW1lciwKKyAgICAgICAgRGlkUmVtb3ZlRE9NVGltZXIsCisg
ICAgICAgIERpZENvbnRlbnRWaXNpYmlsaXR5Q2hhbmdlCisgICAgfTsKKyAgICB2b2lkIGFkanVz
dE9ic2VydmVkU3RhdGUoRXZlbnQgZXZlbnQpOworCiAgICAgUGFnZSYgbV9wYWdlOwogICAgIEhh
c2hTZXQ8Y29uc3QgRE9NVGltZXIqPiBtX0RPTVRpbWVyTGlzdDsKICAgICBib29sIG1fc2hvdWxk
T2JzZXJ2ZVN0eWxlUmVjYWxjIHsgZmFsc2UgfTsK
</data>
<flag name="review"
          id="380026"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>