<?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>207418</bug_id>
          
          <creation_ts>2020-02-07 16:30:39 -0800</creation_ts>
          <short_desc>Resource Load Statistics: Hold off non-cookie website data deletion until an hour after user interaction</short_desc>
          <delta_ts>2020-02-09 21:07:15 -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>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="John Wilander">wilander</reporter>
          <assigned_to name="John Wilander">wilander</assigned_to>
          <cc>antoine_bourlon</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1616452</commentid>
    <comment_count>0</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2020-02-07 16:30:39 -0800</bug_when>
    <thetext>We should wait with non-cookie website data deletion for cases where there&apos;s no previous statistics data such as after a reset.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616453</commentid>
    <comment_count>1</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2020-02-07 16:30:52 -0800</bug_when>
    <thetext>&lt;rdar://problem/58550164&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616454</commentid>
    <comment_count>2</comment_count>
      <attachid>390146</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2020-02-07 16:37:28 -0800</bug_when>
    <thetext>Created attachment 390146
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616460</commentid>
    <comment_count>3</comment_count>
      <attachid>390146</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-02-07 16:41:06 -0800</bug_when>
    <thetext>Comment on attachment 390146
Patch

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

&gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:2283
&gt; +    // remove non-cookie website data.

I think this comment could have been on one line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616462</commentid>
    <comment_count>4</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2020-02-07 16:45:15 -0800</bug_when>
    <thetext>(In reply to Chris Dumez from comment #3)
&gt; Comment on attachment 390146 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=390146&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:2283
&gt; &gt; +    // remove non-cookie website data.
&gt; 
&gt; I think this comment could have been on one line.

Will fix. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616467</commentid>
    <comment_count>5</comment_count>
      <attachid>390147</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2020-02-07 16:48:21 -0800</bug_when>
    <thetext>Created attachment 390147
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616468</commentid>
    <comment_count>6</comment_count>
      <attachid>390147</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2020-02-07 16:48:48 -0800</bug_when>
    <thetext>Comment on attachment 390147
Patch

Waiting for EWS feedback before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616556</commentid>
    <comment_count>7</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2020-02-08 07:03:58 -0800</bug_when>
    <thetext>The related test failure on the iOS bot is an output ordering text diff. The actual result doesn’t differ: https://ews-build.webkit.org/results/iOS-13-Simulator-WK2-Tests-EWS/r390147-10350/http/tests/resourceLoadStatistics/log-cross-site-load-with-link-decoration-pretty-diff.html

We already have ongoing work to address flakiness in that test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616558</commentid>
    <comment_count>8</comment_count>
      <attachid>390147</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-02-08 07:48:59 -0800</bug_when>
    <thetext>Comment on attachment 390147
Patch

Clearing flags on attachment: 390147

Committed r256090: &lt;https://trac.webkit.org/changeset/256090&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616559</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-02-08 07:49:00 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616721</commentid>
    <comment_count>10</comment_count>
    <who name="Antoine Bourlon">antoine_bourlon</who>
    <bug_when>2020-02-09 17:07:09 -0800</bug_when>
    <thetext>Looking at the code and explanations, this doesn&apos;t seem to change the immediate deletion of non-cookie data on sites without previous user interaction, after a browser restart or right after the periodic (hourly) data removal. 
Is this intended behavior?

Steps to reproduce here:
https://github.com/cookie-status/cookie-status-dev/issues/9#issuecomment-567076418</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616729</commentid>
    <comment_count>11</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2020-02-09 17:44:32 -0800</bug_when>
    <thetext>(In reply to Antoine Bourlon from comment #10)
&gt; Looking at the code and explanations, this doesn&apos;t seem to change the
&gt; immediate deletion of non-cookie data on sites without previous user
&gt; interaction, after a browser restart or right after the periodic (hourly)
&gt; data removal. 
&gt; Is this intended behavior?
&gt; 
&gt; Steps to reproduce here:
&gt; https://github.com/cookie-status/cookie-status-dev/issues/9#issuecomment-
&gt; 567076418

As long as the user has interacted with some website at least an hour ago, sites without user interaction the last seven days of use will have their non-cookie website data deleted. That is the intended behavior. Are you seeing something else?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616757</commentid>
    <comment_count>12</comment_count>
    <who name="Antoine Bourlon">antoine_bourlon</who>
    <bug_when>2020-02-09 20:40:19 -0800</bug_when>
    <thetext>OK that is what I am seeing. 
Noted that &quot;0 days for sites without interaction&quot; is the (commonly misunderstood?) intended behavior. 

By the way &quot;cases where there&apos;s no previous statistics&quot; seem pretty rare in real life. ITP will usually start classifying domains after some user interaction, unless the user accesses multiple sites directly from the address bar/bookmarks, without clicking anything. Testing the &quot;data removal after navigation with link decoration from a classified domain&quot; is especially tricky without interacting with a classified domain :)

Anyway, thanks for the clarification!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616765</commentid>
    <comment_count>13</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2020-02-09 21:07:15 -0800</bug_when>
    <thetext>(In reply to Antoine Bourlon from comment #12)
&gt; OK that is what I am seeing. 
&gt; Noted that &quot;0 days for sites without interaction&quot; is the (commonly
&gt; misunderstood?) intended behavior. 
&gt; 
&gt; By the way &quot;cases where there&apos;s no previous statistics&quot; seem pretty rare in
&gt; real life. ITP will usually start classifying domains after some user
&gt; interaction, unless the user accesses multiple sites directly from the
&gt; address bar/bookmarks, without clicking anything. Testing the &quot;data removal
&gt; after navigation with link decoration from a classified domain&quot; is
&gt; especially tricky without interacting with a classified domain :)
&gt; 
&gt; Anyway, thanks for the clarification!

Rare, absolutely. This patch was a refinement for the few cases where it happens such as new device, user clears history, new account on macOS, user has run with ITP off and turns it on for the first time, user installs Safari Technology Preview and runs it …</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390146</attachid>
            <date>2020-02-07 16:37:28 -0800</date>
            <delta_ts>2020-02-07 16:48:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207418-20200207163728.patch</filename>
            <type>text/plain</type>
            <size>5436</size>
            <attacher name="John Wilander">wilander</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2MDc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDExOTM5M2Q3NWE5MmViYWRm
ZWEwZDk4MGE2MWI5MzI2YzhlODc1NzIuLjEwYTk1YWM1MTAxYzZjYmZhNTZiMjI3ODdmOGY2NGQz
ODNlOGMxMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMjAtMDItMDcgIEpvaG4gV2ls
YW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmVzb3VyY2UgTG9hZCBTdGF0
aXN0aWNzOiBIb2xkIG9mZiBub24tY29va2llIHdlYnNpdGUgZGF0YSBkZWxldGlvbiB1bnRpbCBh
biBob3VyIGFmdGVyIHVzZXIgaW50ZXJhY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNzQxOAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTg1
NTAxNjQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGhpcyBjaGFuZ2UgbWFrZXMgc3VyZSB0aGVyZSBpcyBhdCBsZWFzdCBhIG9uZS1ob3VyIG9yIG9s
ZGVyIHRpbWVzdGFtcAorICAgICAgICBmb3IgdXNlciBpbnRlcmFjdGlvbiBmb3Igc29tZSB3ZWJz
aXRlIGJlZm9yZSBhY3RpdmF0aW5nIGRlbGV0aW9uIG9mCisgICAgICAgIG5vbi1jb29raWUgd2Vi
c2l0ZSBkYXRhIGZvciBzaXRlcyB0aGUgdXNlciBoYXMgbm90IGludGVyYWN0ZWQgd2l0aC4KKyAg
ICAgICAgVGhpcyBlbnN1cmVzIHRoYXQgYSBmcmVzaCBzdGFydCBzdWNoIGFzIGFmdGVyIGEgcmVz
ZXQgb3Igb24gYSBuZXcKKyAgICAgICAgZGV2aWNlIGRvZXNuJ3QgaW50ZXJwcmV0IHRoZSBsYWNr
IG9mIGRhdGEgYXMgbGFjayBvZiB1c2VyIGludGVyYWN0aW9uLgorCisgICAgICAgIE5vIG5ldyB0
ZXN0cy4gRXhpc3RpbmcgdGVzdHMgbWFrZXMgc3VyZSB3ZSBkb24ndCByZWdyZXNzIHRoZSBmdW5j
dGlvbmFsaXR5LgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlc291
cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpyZWdpc3RyYWJsZURvbWFpbnNUb1JlbW92
ZVdlYnNpdGVEYXRhRm9yKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jl
c291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJl
c291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6cmVnaXN0cmFibGVEb21haW5zVG9SZW1v
dmVXZWJzaXRlRGF0YUZvcik6CisKIDIwMjAtMDItMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFw
cGxlLmNvbT4KIAogICAgICAgICBbSGFyZGVuaW5nXSBWYWxpZGF0ZSBHZW9sb2NhdGlvbiBhY2Nl
c3MgcGVybWlzc2lvbiBvbiBVSVByb2Nlc3Mgc2lkZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFz
ZVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5jcHAKaW5kZXggODAxMzU2MzgyZjg4OGMy
MjRiMWY3Mjk5NjZhMzRiMDA1MmEwYmYxNy4uODExMDUyMjU4NThjOTllMjAxZDc4ODA0MjdkYTQz
OTI1YTZiMTk5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFz
c2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0RhdGFiYXNlU3RvcmUuY3BwCkBAIC0yMjYwLDEyICsyMjYwLDE1IEBAIFZlY3RvcjxzdGQ6OnBh
aXI8UmVnaXN0cmFibGVEb21haW4sIFdlYnNpdGVEYXRhVG9SZW1vdmU+PiBSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzCiAgICAgICAgIGNsZWFyRW5kT2ZHcmFuZGZhdGhlcmluZ1RpbWVTdGFtcCgpOwog
CiAgICAgY2xlYXJFeHBpcmVkVXNlckludGVyYWN0aW9ucygpOwotICAgIAorCisgICAgYXV0byBu
b3cgPSBXYWxsVGltZTo6bm93KCk7CisgICAgYXV0byBvbGRlc3RVc2VySW50ZXJhY3Rpb24gPSBu
b3c7CiAgICAgVmVjdG9yPHN0ZDo6cGFpcjxSZWdpc3RyYWJsZURvbWFpbiwgV2Vic2l0ZURhdGFU
b1JlbW92ZT4+IGRvbWFpbnNUb1JlbW92ZVdlYnNpdGVEYXRhRm9yOwogCiAgICAgVmVjdG9yPERv
bWFpbkRhdGE+IGRvbWFpbnMgPSB0aGlzLT5kb21haW5zKCk7CiAgICAgVmVjdG9yPHVuc2lnbmVk
PiBkb21haW5JRHNUb0NsZWFyR3JhbmRmYXRoZXJpbmc7CiAgICAgZm9yIChhdXRvJiBzdGF0aXN0
aWMgOiBkb21haW5zKSB7CisgICAgICAgIG9sZGVzdFVzZXJJbnRlcmFjdGlvbiA9IHN0ZDo6bWlu
KG9sZGVzdFVzZXJJbnRlcmFjdGlvbiwgc3RhdGlzdGljLm1vc3RSZWNlbnRVc2VySW50ZXJhY3Rp
b25UaW1lKTsKICAgICAgICAgaWYgKHNob3VsZFJlbW92ZUFsbFdlYnNpdGVEYXRhRm9yKHN0YXRp
c3RpYywgc2hvdWxkQ2hlY2tGb3JHcmFuZGZhdGhlcmluZykpCiAgICAgICAgICAgICBkb21haW5z
VG9SZW1vdmVXZWJzaXRlRGF0YUZvci5hcHBlbmQoc3RkOjptYWtlX3BhaXIoc3RhdGlzdGljLnJl
Z2lzdHJhYmxlRG9tYWluLCBXZWJzaXRlRGF0YVRvUmVtb3ZlOjpBbGwpKTsKICAgICAgICAgZWxz
ZSBpZiAoc2hvdWxkUmVtb3ZlQWxsQnV0Q29va2llc0ZvcihzdGF0aXN0aWMsIHNob3VsZENoZWNr
Rm9yR3JhbmRmYXRoZXJpbmcpKSB7CkBAIC0yMjc2LDYgKzIyNzksMTQgQEAgVmVjdG9yPHN0ZDo6
cGFpcjxSZWdpc3RyYWJsZURvbWFpbiwgV2Vic2l0ZURhdGFUb1JlbW92ZT4+IFJlc291cmNlTG9h
ZFN0YXRpc3RpY3MKICAgICAgICAgICAgIGRvbWFpbklEc1RvQ2xlYXJHcmFuZGZhdGhlcmluZy5h
cHBlbmQoc3RhdGlzdGljLmRvbWFpbklEKTsKICAgICB9CiAKKyAgICAvLyBHaXZlIHRoZSB1c2Vy
IGVub3VnaCB0aW1lIHRvIGludGVyYWN0IHdpdGggd2Vic2l0ZXMgdW50aWwgd2UKKyAgICAvLyBy
ZW1vdmUgbm9uLWNvb2tpZSB3ZWJzaXRlIGRhdGEuCisgICAgaWYgKCFwYXJhbWV0ZXJzKCkuaXNS
dW5uaW5nVGVzdCAmJiBub3cgLSBvbGRlc3RVc2VySW50ZXJhY3Rpb24gPiBwYXJhbWV0ZXJzKCku
bWluaW11bVRpbWVCZXR3ZWVuRGF0YVJlY29yZHNSZW1vdmFsKSB7CisgICAgICAgIGRvbWFpbnNU
b1JlbW92ZVdlYnNpdGVEYXRhRm9yLnJlbW92ZUFsbE1hdGNoaW5nKFsmXSAoYXV0byYgcGFpcikg
eworICAgICAgICAgICAgcmV0dXJuIHBhaXIuc2Vjb25kID09IFdlYnNpdGVEYXRhVG9SZW1vdmU6
OkFsbEJ1dENvb2tpZXM7CisgICAgICAgIH0pOworICAgIH0KKwogICAgIGNsZWFyR3JhbmRmYXRo
ZXJpbmcoV1RGTW92ZShkb21haW5JRHNUb0NsZWFyR3JhbmRmYXRoZXJpbmcpKTsKICAgICAKICAg
ICByZXR1cm4gZG9tYWluc1RvUmVtb3ZlV2Vic2l0ZURhdGFGb3I7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c01lbW9yeVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmll
ci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuY3BwCmluZGV4IDljZmRjYzBmMmYw
NWVhOWU5MTNjNDQ1OTNmZmMwOTM4NjkyMGExZjkuLjU1OWZmYzkwZmNlZDcxZWY4ZTc2ZDQ3NzYx
MDhmOTQzODEwMTQ0YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Q2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0
aWNzTWVtb3J5U3RvcmUuY3BwCkBAIC05MjQsOCArOTI0LDExIEBAIFZlY3RvcjxzdGQ6OnBhaXI8
UmVnaXN0cmFibGVEb21haW4sIFdlYnNpdGVEYXRhVG9SZW1vdmU+PiBSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzCiAgICAgaWYgKHNob3VsZENsZWFyR3JhbmRmYXRoZXJpbmcpCiAgICAgICAgIGNsZWFy
RW5kT2ZHcmFuZGZhdGhlcmluZ1RpbWVTdGFtcCgpOwogCisgICAgYXV0byBub3cgPSBXYWxsVGlt
ZTo6bm93KCk7CisgICAgYXV0byBvbGRlc3RVc2VySW50ZXJhY3Rpb24gPSBub3c7CiAgICAgVmVj
dG9yPHN0ZDo6cGFpcjxSZWdpc3RyYWJsZURvbWFpbiwgV2Vic2l0ZURhdGFUb1JlbW92ZT4+IGRv
bWFpbnNUb1JlbW92ZVdlYnNpdGVEYXRhRm9yOwogICAgIGZvciAoYXV0byYgc3RhdGlzdGljIDog
bV9yZXNvdXJjZVN0YXRpc3RpY3NNYXAudmFsdWVzKCkpIHsKKyAgICAgICAgb2xkZXN0VXNlcklu
dGVyYWN0aW9uID0gc3RkOjptaW4ob2xkZXN0VXNlckludGVyYWN0aW9uLCBzdGF0aXN0aWMubW9z
dFJlY2VudFVzZXJJbnRlcmFjdGlvblRpbWUpOwogICAgICAgICBpZiAoc2hvdWxkUmVtb3ZlQWxs
V2Vic2l0ZURhdGFGb3Ioc3RhdGlzdGljLCBzaG91bGRDaGVja0ZvckdyYW5kZmF0aGVyaW5nKSkK
ICAgICAgICAgICAgIGRvbWFpbnNUb1JlbW92ZVdlYnNpdGVEYXRhRm9yLmFwcGVuZChzdGQ6Om1h
a2VfcGFpcihzdGF0aXN0aWMucmVnaXN0cmFibGVEb21haW4sIFdlYnNpdGVEYXRhVG9SZW1vdmU6
OkFsbCkpOwogICAgICAgICBlbHNlIGlmIChzaG91bGRSZW1vdmVBbGxCdXRDb29raWVzRm9yKHN0
YXRpc3RpYywgc2hvdWxkQ2hlY2tGb3JHcmFuZGZhdGhlcmluZykpIHsKQEAgLTkzNyw2ICs5NDAs
MTQgQEAgVmVjdG9yPHN0ZDo6cGFpcjxSZWdpc3RyYWJsZURvbWFpbiwgV2Vic2l0ZURhdGFUb1Jl
bW92ZT4+IFJlc291cmNlTG9hZFN0YXRpc3RpY3MKICAgICAgICAgICAgIHN0YXRpc3RpYy5ncmFu
ZGZhdGhlcmVkID0gZmFsc2U7CiAgICAgfQogCisgICAgLy8gR2l2ZSB0aGUgdXNlciBlbm91Z2gg
dGltZSB0byBpbnRlcmFjdCB3aXRoIHdlYnNpdGVzIHVudGlsIHdlCisgICAgLy8gcmVtb3ZlIG5v
bi1jb29raWUgd2Vic2l0ZSBkYXRhLgorICAgIGlmICghcGFyYW1ldGVycygpLmlzUnVubmluZ1Rl
c3QgJiYgbm93IC0gb2xkZXN0VXNlckludGVyYWN0aW9uID4gcGFyYW1ldGVycygpLm1pbmltdW1U
aW1lQmV0d2VlbkRhdGFSZWNvcmRzUmVtb3ZhbCkgeworICAgICAgICBkb21haW5zVG9SZW1vdmVX
ZWJzaXRlRGF0YUZvci5yZW1vdmVBbGxNYXRjaGluZyhbJl0gKGF1dG8mIHBhaXIpIHsKKyAgICAg
ICAgICAgIHJldHVybiBwYWlyLnNlY29uZCA9PSBXZWJzaXRlRGF0YVRvUmVtb3ZlOjpBbGxCdXRD
b29raWVzOworICAgICAgICB9KTsKKyAgICB9CisKICAgICByZXR1cm4gZG9tYWluc1RvUmVtb3Zl
V2Vic2l0ZURhdGFGb3I7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390147</attachid>
            <date>2020-02-07 16:48:21 -0800</date>
            <delta_ts>2020-02-08 07:48:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207418-20200207164821.patch</filename>
            <type>text/plain</type>
            <size>5416</size>
            <attacher name="John Wilander">wilander</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2MDc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDExOTM5M2Q3NWE5MmViYWRm
ZWEwZDk4MGE2MWI5MzI2YzhlODc1NzIuLjY0YjE0YzFkNTllNTkxOTA2Mzk1YWUwYTllZWU1YjY3
M2QzMjc4OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMjAtMDItMDcgIEpvaG4gV2ls
YW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmVzb3VyY2UgTG9hZCBTdGF0
aXN0aWNzOiBIb2xkIG9mZiBub24tY29va2llIHdlYnNpdGUgZGF0YSBkZWxldGlvbiB1bnRpbCBh
biBob3VyIGFmdGVyIHVzZXIgaW50ZXJhY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNzQxOAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTg1
NTAxNjQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRHVtZXouCisKKyAgICAgICAgVGhp
cyBjaGFuZ2UgbWFrZXMgc3VyZSB0aGVyZSBpcyBhdCBsZWFzdCBhIG9uZS1ob3VyIG9yIG9sZGVy
IHRpbWVzdGFtcAorICAgICAgICBmb3IgdXNlciBpbnRlcmFjdGlvbiBmb3Igc29tZSB3ZWJzaXRl
IGJlZm9yZSBhY3RpdmF0aW5nIGRlbGV0aW9uIG9mCisgICAgICAgIG5vbi1jb29raWUgd2Vic2l0
ZSBkYXRhIGZvciBzaXRlcyB0aGUgdXNlciBoYXMgbm90IGludGVyYWN0ZWQgd2l0aC4KKyAgICAg
ICAgVGhpcyBlbnN1cmVzIHRoYXQgYSBmcmVzaCBzdGFydCBzdWNoIGFzIGFmdGVyIGEgcmVzZXQg
b3Igb24gYSBuZXcKKyAgICAgICAgZGV2aWNlIGRvZXNuJ3QgaW50ZXJwcmV0IHRoZSBsYWNrIG9m
IGRhdGEgYXMgbGFjayBvZiB1c2VyIGludGVyYWN0aW9uLgorCisgICAgICAgIE5vIG5ldyB0ZXN0
cy4gRXhpc3RpbmcgdGVzdHMgbWFrZSBzdXJlIHdlIGRvbid0IHJlZ3Jlc3MgdGhlIGZ1bmN0aW9u
YWxpdHkuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9h
ZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnJlZ2lzdHJhYmxlRG9tYWluc1RvUmVtb3ZlV2Vi
c2l0ZURhdGFGb3IpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlOjpyZWdpc3RyYWJsZURvbWFpbnNUb1JlbW92ZVdl
YnNpdGVEYXRhRm9yKToKKwogMjAyMC0wMi0wNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUu
Y29tPgogCiAgICAgICAgIFtIYXJkZW5pbmddIFZhbGlkYXRlIEdlb2xvY2F0aW9uIGFjY2VzcyBw
ZXJtaXNzaW9uIG9uIFVJUHJvY2VzcyBzaWRlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3Rv
cmUuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNl
TG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmNwcAppbmRleCA4MDEzNTYzODJmODg4YzIyNGIx
ZjcyOTk2NmEzNGIwMDUyYTBiZjE3Li4wYzU0OWIxMzI1YTZhNzMwZmMzZjk2MzEyMWQ1ZGUyY2Mz
Y2VmYTkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZp
ZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0
YWJhc2VTdG9yZS5jcHAKQEAgLTIyNjAsMTIgKzIyNjAsMTUgQEAgVmVjdG9yPHN0ZDo6cGFpcjxS
ZWdpc3RyYWJsZURvbWFpbiwgV2Vic2l0ZURhdGFUb1JlbW92ZT4+IFJlc291cmNlTG9hZFN0YXRp
c3RpY3MKICAgICAgICAgY2xlYXJFbmRPZkdyYW5kZmF0aGVyaW5nVGltZVN0YW1wKCk7CiAKICAg
ICBjbGVhckV4cGlyZWRVc2VySW50ZXJhY3Rpb25zKCk7Ci0gICAgCisKKyAgICBhdXRvIG5vdyA9
IFdhbGxUaW1lOjpub3coKTsKKyAgICBhdXRvIG9sZGVzdFVzZXJJbnRlcmFjdGlvbiA9IG5vdzsK
ICAgICBWZWN0b3I8c3RkOjpwYWlyPFJlZ2lzdHJhYmxlRG9tYWluLCBXZWJzaXRlRGF0YVRvUmVt
b3ZlPj4gZG9tYWluc1RvUmVtb3ZlV2Vic2l0ZURhdGFGb3I7CiAKICAgICBWZWN0b3I8RG9tYWlu
RGF0YT4gZG9tYWlucyA9IHRoaXMtPmRvbWFpbnMoKTsKICAgICBWZWN0b3I8dW5zaWduZWQ+IGRv
bWFpbklEc1RvQ2xlYXJHcmFuZGZhdGhlcmluZzsKICAgICBmb3IgKGF1dG8mIHN0YXRpc3RpYyA6
IGRvbWFpbnMpIHsKKyAgICAgICAgb2xkZXN0VXNlckludGVyYWN0aW9uID0gc3RkOjptaW4ob2xk
ZXN0VXNlckludGVyYWN0aW9uLCBzdGF0aXN0aWMubW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvblRp
bWUpOwogICAgICAgICBpZiAoc2hvdWxkUmVtb3ZlQWxsV2Vic2l0ZURhdGFGb3Ioc3RhdGlzdGlj
LCBzaG91bGRDaGVja0ZvckdyYW5kZmF0aGVyaW5nKSkKICAgICAgICAgICAgIGRvbWFpbnNUb1Jl
bW92ZVdlYnNpdGVEYXRhRm9yLmFwcGVuZChzdGQ6Om1ha2VfcGFpcihzdGF0aXN0aWMucmVnaXN0
cmFibGVEb21haW4sIFdlYnNpdGVEYXRhVG9SZW1vdmU6OkFsbCkpOwogICAgICAgICBlbHNlIGlm
IChzaG91bGRSZW1vdmVBbGxCdXRDb29raWVzRm9yKHN0YXRpc3RpYywgc2hvdWxkQ2hlY2tGb3JH
cmFuZGZhdGhlcmluZykpIHsKQEAgLTIyNzYsNiArMjI3OSwxMyBAQCBWZWN0b3I8c3RkOjpwYWly
PFJlZ2lzdHJhYmxlRG9tYWluLCBXZWJzaXRlRGF0YVRvUmVtb3ZlPj4gUmVzb3VyY2VMb2FkU3Rh
dGlzdGljcwogICAgICAgICAgICAgZG9tYWluSURzVG9DbGVhckdyYW5kZmF0aGVyaW5nLmFwcGVu
ZChzdGF0aXN0aWMuZG9tYWluSUQpOwogICAgIH0KIAorICAgIC8vIEdpdmUgdGhlIHVzZXIgZW5v
dWdoIHRpbWUgdG8gaW50ZXJhY3Qgd2l0aCB3ZWJzaXRlcyB1bnRpbCB3ZSByZW1vdmUgbm9uLWNv
b2tpZSB3ZWJzaXRlIGRhdGEuCisgICAgaWYgKCFwYXJhbWV0ZXJzKCkuaXNSdW5uaW5nVGVzdCAm
JiBub3cgLSBvbGRlc3RVc2VySW50ZXJhY3Rpb24gPiBwYXJhbWV0ZXJzKCkubWluaW11bVRpbWVC
ZXR3ZWVuRGF0YVJlY29yZHNSZW1vdmFsKSB7CisgICAgICAgIGRvbWFpbnNUb1JlbW92ZVdlYnNp
dGVEYXRhRm9yLnJlbW92ZUFsbE1hdGNoaW5nKFsmXSAoYXV0byYgcGFpcikgeworICAgICAgICAg
ICAgcmV0dXJuIHBhaXIuc2Vjb25kID09IFdlYnNpdGVEYXRhVG9SZW1vdmU6OkFsbEJ1dENvb2tp
ZXM7CisgICAgICAgIH0pOworICAgIH0KKwogICAgIGNsZWFyR3JhbmRmYXRoZXJpbmcoV1RGTW92
ZShkb21haW5JRHNUb0NsZWFyR3JhbmRmYXRoZXJpbmcpKTsKICAgICAKICAgICByZXR1cm4gZG9t
YWluc1RvUmVtb3ZlV2Vic2l0ZURhdGFGb3I7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3Jl
LmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxv
YWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuY3BwCmluZGV4IDljZmRjYzBmMmYwNWVhOWU5MTNjNDQ1
OTNmZmMwOTM4NjkyMGExZjkuLmRmMTRmNjkyNDE2MWVmMzg1ODQ4MzM2MTliYTM4NmI2NzIyN2Qz
OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9S
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3Rv
cmUuY3BwCkBAIC05MjQsOCArOTI0LDExIEBAIFZlY3RvcjxzdGQ6OnBhaXI8UmVnaXN0cmFibGVE
b21haW4sIFdlYnNpdGVEYXRhVG9SZW1vdmU+PiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzCiAgICAg
aWYgKHNob3VsZENsZWFyR3JhbmRmYXRoZXJpbmcpCiAgICAgICAgIGNsZWFyRW5kT2ZHcmFuZGZh
dGhlcmluZ1RpbWVTdGFtcCgpOwogCisgICAgYXV0byBub3cgPSBXYWxsVGltZTo6bm93KCk7Cisg
ICAgYXV0byBvbGRlc3RVc2VySW50ZXJhY3Rpb24gPSBub3c7CiAgICAgVmVjdG9yPHN0ZDo6cGFp
cjxSZWdpc3RyYWJsZURvbWFpbiwgV2Vic2l0ZURhdGFUb1JlbW92ZT4+IGRvbWFpbnNUb1JlbW92
ZVdlYnNpdGVEYXRhRm9yOwogICAgIGZvciAoYXV0byYgc3RhdGlzdGljIDogbV9yZXNvdXJjZVN0
YXRpc3RpY3NNYXAudmFsdWVzKCkpIHsKKyAgICAgICAgb2xkZXN0VXNlckludGVyYWN0aW9uID0g
c3RkOjptaW4ob2xkZXN0VXNlckludGVyYWN0aW9uLCBzdGF0aXN0aWMubW9zdFJlY2VudFVzZXJJ
bnRlcmFjdGlvblRpbWUpOwogICAgICAgICBpZiAoc2hvdWxkUmVtb3ZlQWxsV2Vic2l0ZURhdGFG
b3Ioc3RhdGlzdGljLCBzaG91bGRDaGVja0ZvckdyYW5kZmF0aGVyaW5nKSkKICAgICAgICAgICAg
IGRvbWFpbnNUb1JlbW92ZVdlYnNpdGVEYXRhRm9yLmFwcGVuZChzdGQ6Om1ha2VfcGFpcihzdGF0
aXN0aWMucmVnaXN0cmFibGVEb21haW4sIFdlYnNpdGVEYXRhVG9SZW1vdmU6OkFsbCkpOwogICAg
ICAgICBlbHNlIGlmIChzaG91bGRSZW1vdmVBbGxCdXRDb29raWVzRm9yKHN0YXRpc3RpYywgc2hv
dWxkQ2hlY2tGb3JHcmFuZGZhdGhlcmluZykpIHsKQEAgLTkzNyw2ICs5NDAsMTMgQEAgVmVjdG9y
PHN0ZDo6cGFpcjxSZWdpc3RyYWJsZURvbWFpbiwgV2Vic2l0ZURhdGFUb1JlbW92ZT4+IFJlc291
cmNlTG9hZFN0YXRpc3RpY3MKICAgICAgICAgICAgIHN0YXRpc3RpYy5ncmFuZGZhdGhlcmVkID0g
ZmFsc2U7CiAgICAgfQogCisgICAgLy8gR2l2ZSB0aGUgdXNlciBlbm91Z2ggdGltZSB0byBpbnRl
cmFjdCB3aXRoIHdlYnNpdGVzIHVudGlsIHdlIHJlbW92ZSBub24tY29va2llIHdlYnNpdGUgZGF0
YS4KKyAgICBpZiAoIXBhcmFtZXRlcnMoKS5pc1J1bm5pbmdUZXN0ICYmIG5vdyAtIG9sZGVzdFVz
ZXJJbnRlcmFjdGlvbiA+IHBhcmFtZXRlcnMoKS5taW5pbXVtVGltZUJldHdlZW5EYXRhUmVjb3Jk
c1JlbW92YWwpIHsKKyAgICAgICAgZG9tYWluc1RvUmVtb3ZlV2Vic2l0ZURhdGFGb3IucmVtb3Zl
QWxsTWF0Y2hpbmcoWyZdIChhdXRvJiBwYWlyKSB7CisgICAgICAgICAgICByZXR1cm4gcGFpci5z
ZWNvbmQgPT0gV2Vic2l0ZURhdGFUb1JlbW92ZTo6QWxsQnV0Q29va2llczsKKyAgICAgICAgfSk7
CisgICAgfQorCiAgICAgcmV0dXJuIGRvbWFpbnNUb1JlbW92ZVdlYnNpdGVEYXRhRm9yOwogfQog
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>