<?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>175212</bug_id>
          
          <creation_ts>2017-08-04 14:43:58 -0700</creation_ts>
          <short_desc>Add test coverage for sendBeacon() keepalive flag</short_desc>
          <delta_ts>2017-08-09 09:08:03 -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>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=175388</see_also>
          <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>
          
          <blocked>147885</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>beidson</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>lforschler</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1335484</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-08-04 14:43:58 -0700</bug_when>
    <thetext>Add test coverage for sendBeacon() keepalive flag.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1335491</commentid>
    <comment_count>1</comment_count>
      <attachid>317294</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-08-04 14:46:09 -0700</bug_when>
    <thetext>Created attachment 317294
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1335504</commentid>
    <comment_count>2</comment_count>
      <attachid>317294</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-08-04 14:59:25 -0700</bug_when>
    <thetext>Comment on attachment 317294
Patch

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

&gt; LayoutTests/http/wpt/beacon/keepalive-after-navigation.html:25
&gt; +    }), 1000);

1000 may be too long in most cases and too short in others.
Why not trying to fetch every 50 ms until you have the correct content type and fail after a longer time like 5 seconds?

&gt; LayoutTests/http/wpt/beacon/keepalive-after-navigation.html:35
&gt; +    return pollResult(test, id) .then(result =&gt; {

s/ .//</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1335509</commentid>
    <comment_count>3</comment_count>
      <attachid>317299</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-08-04 15:04:46 -0700</bug_when>
    <thetext>Created attachment 317299
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1335514</commentid>
    <comment_count>4</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-08-04 15:11:04 -0700</bug_when>
    <thetext>Forgot to say, why wpt and not imported?
Are you planning to upstream these?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1335521</commentid>
    <comment_count>5</comment_count>
      <attachid>317299</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-08-04 15:14:49 -0700</bug_when>
    <thetext>Comment on attachment 317299
Patch

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

&gt; LayoutTests/http/wpt/beacon/keepalive-after-navigation.html:15
&gt; +function pollResult(test, id) {

Maybe I am missing something but this is not really polling in the sense that you try until you either succeed or time out?
If there is no need for polling and the fetch request will always happen after the beacon one, we just need to increase the timeout to 5000, right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1335523</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-08-04 15:17:22 -0700</bug_when>
    <thetext>This function is copied from other Beacon tests in WPT.

(In reply to youenn fablet from comment #5)
&gt; Comment on attachment 317299 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=317299&amp;action=review
&gt; 
&gt; &gt; LayoutTests/http/wpt/beacon/keepalive-after-navigation.html:15
&gt; &gt; +function pollResult(test, id) {
&gt; 
&gt; Maybe I am missing something but this is not really polling in the sense
&gt; that you try until you either succeed or time out?

We keep trying at regular intervals. I believe this is polling.

&gt; If there is no need for polling and the fetch request will always happen
&gt; after the beacon one, we just need to increase the timeout to 5000, right?

I do not understand this part. A beacon may be sent after a while, so we need to keep polling until it comes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1335536</commentid>
    <comment_count>7</comment_count>
      <attachid>317299</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-08-04 15:29:38 -0700</bug_when>
    <thetext>Comment on attachment 317299
Patch

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

&gt;&gt;&gt; LayoutTests/http/wpt/beacon/keepalive-after-navigation.html:15
&gt;&gt;&gt; +function pollResult(test, id) {
&gt;&gt; 
&gt;&gt; Maybe I am missing something but this is not really polling in the sense that you try until you either succeed or time out?
&gt;&gt; If there is no need for polling and the fetch request will always happen after the beacon one, we just need to increase the timeout to 5000, right?
&gt; 
&gt; We keep trying at regular intervals. I believe this is polling.

It seems there is only one fetch being ever called with this code.
Is step_timeout expected to call fetch every 50 ms?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1335552</commentid>
    <comment_count>8</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-08-04 15:44:10 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #4)
&gt; Forgot to say, why wpt and not imported?
&gt; Are you planning to upstream these?

I will try to upstream it, yes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1335553</commentid>
    <comment_count>9</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-08-04 15:44:37 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #7)
&gt; Comment on attachment 317299 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=317299&amp;action=review
&gt; 
&gt; &gt;&gt;&gt; LayoutTests/http/wpt/beacon/keepalive-after-navigation.html:15
&gt; &gt;&gt;&gt; +function pollResult(test, id) {
&gt; &gt;&gt; 
&gt; &gt;&gt; Maybe I am missing something but this is not really polling in the sense that you try until you either succeed or time out?
&gt; &gt;&gt; If there is no need for polling and the fetch request will always happen after the beacon one, we just need to increase the timeout to 5000, right?
&gt; &gt; 
&gt; &gt; We keep trying at regular intervals. I believe this is polling.
&gt; 
&gt; It seems there is only one fetch being ever called with this code.
&gt; Is step_timeout expected to call fetch every 50 ms?

Yes, we need to call fetch() at regular interval to ask the server if it received the beacon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1335571</commentid>
    <comment_count>10</comment_count>
      <attachid>317299</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-08-04 16:22:04 -0700</bug_when>
    <thetext>Comment on attachment 317299
Patch

Clearing flags on attachment: 317299

Committed r220304: &lt;http://trac.webkit.org/changeset/220304&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1335572</commentid>
    <comment_count>11</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-08-04 16:22:05 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1335573</commentid>
    <comment_count>12</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-08-04 16:22:53 -0700</bug_when>
    <thetext>&lt;rdar://problem/33734986&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1335580</commentid>
    <comment_count>13</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-08-04 16:30:39 -0700</bug_when>
    <thetext>&gt; Yes, we need to call fetch() at regular interval to ask the server if it
&gt; received the beacon.

Looking at step_timeout, it does not use setInterval and is calling setTimeout once.
It seems to me there will be only one fetch being called, fetch being done after waiting for 50 ms.

Also, even if fetch is called several times, it would seem better to wait for the completion of the first fetch before triggering a new fetch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1335581</commentid>
    <comment_count>14</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-08-04 16:32:00 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #13)
&gt; &gt; Yes, we need to call fetch() at regular interval to ask the server if it
&gt; &gt; received the beacon.
&gt; 
&gt; Looking at step_timeout, it does not use setInterval and is calling
&gt; setTimeout once.
&gt; It seems to me there will be only one fetch being called, fetch being done
&gt; after waiting for 50 ms.
&gt; 
&gt; Also, even if fetch is called several times, it would seem better to wait
&gt; for the completion of the first fetch before triggering a new fetch.

oh, the switch to 50ms is likely going to cause flakiness then. I&apos;ll follow-up :(</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>317294</attachid>
            <date>2017-08-04 14:46:09 -0700</date>
            <delta_ts>2017-08-04 15:04:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-175212-20170804144609.patch</filename>
            <type>text/plain</type>
            <size>3773</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIwMjgwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZGI0ZjY5N2FlYmEzYzY5ZjZhZGQz
YTI0NTgyYzVkNmI4MGNlODc3My4uZjFhMTA0ZjEwZmJjM2MwZTM3YTBlNzRkZmFlYmU0YzNlZDdk
Nzc1YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE2IEBACiAyMDE3LTA4LTA0ICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CiAKKyAgICAgICAgQWRkIHRlc3QgY292ZXJhZ2UgZm9yIHNlbmRCZWFj
b24oKSBrZWVwYWxpdmUgZmxhZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTc1MjEyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBodHRwL3dwdC9iZWFjb24va2VlcGFsaXZlLWFmdGVyLW5hdmlnYXRpb24t
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3dwdC9iZWFjb24va2VlcGFsaXZl
LWFmdGVyLW5hdmlnYXRpb24uaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC93cHQvYmVhY29u
L3N1cHBvcnQvc2VuZEJlYWNvbi1vbnVubG9hZC1pZnJhbWUuaHRtbDogQWRkZWQuCisKKzIwMTct
MDgtMDQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKwogICAgICAgICBQUk9HUkVT
U0lPTj8gTXVsdGlwbGUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkv
IHRlc3QgaGF2ZSBzdGFydGVkIHRvIGZhaWwuCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNzUwNjEKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC93cHQvYmVhY29uL2tlZXBhbGl2ZS1hZnRlci1uYXZpZ2F0aW9uLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2h0dHAvd3B0L2JlYWNvbi9rZWVwYWxpdmUtYWZ0ZXItbmF2aWdhdGlvbi1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYmNhZWFlNmE4NTZkMzQyYmVjODA5ZWIzYTczYmZiYjQ3YmYx
OTMwMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2JlYWNvbi9rZWVw
YWxpdmUtYWZ0ZXItbmF2aWdhdGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitmcmFt
ZSAidGVzdEZyYW1lIiAtIGhhcyAxIG9udW5sb2FkIGhhbmRsZXIocykKKworUEFTUyBUZXN0IHRo
YXQgYmVhY29uIHNlbnQgZnJvbSB1bmxvYWQgZXZlbnQgaGFuZGxlciBpcyBwcm9wZXJseSByZWNl
aXZlZCAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvYmVhY29uL2tlZXBhbGl2
ZS1hZnRlci1uYXZpZ2F0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9iZWFjb24va2Vl
cGFsaXZlLWFmdGVyLW5hdmlnYXRpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YzcyNzk5NjY2NDc1NDcz
MmZjOWMyYmE0Zjc2M2I2OTMwNDBjOWFjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC93cHQvYmVhY29uL2tlZXBhbGl2ZS1hZnRlci1uYXZpZ2F0aW9uLmh0bWwKQEAgLTAsMCAr
MSw0MyBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKyAgPGhlYWQ+CisgICAgPG1ldGEgY2hh
cnNldD0idXRmLTgiPgorICAgIDx0aXRsZT5TZW5kQmVhY29uIGtlZXBhbGl2ZSBmbGFnPC90aXRs
ZT4KKyAgICA8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzPjwvc2NyaXB0Pgor
ICAgIDxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanM+PC9zY3JpcHQ+
CisgIDwvaGVhZD4KKyAgPGJvZHk+CisgICAgPHNjcmlwdCBzcmM9Ii9jb21tb24vdXRpbHMuanMi
Pjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvY29tbW9uL2dldC1ob3N0LWluZm8uc3ViLmpz
Ij48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorY29uc3QgUkVTT1VSQ0VTX0RJUiA9ICIvYmVhY29u
L3Jlc291cmNlcy8iOworCitmdW5jdGlvbiBwb2xsUmVzdWx0KHRlc3QsIGlkKSB7CisgIHZhciBj
aGVja1VybCA9IFJFU09VUkNFU19ESVIgKyAiY29udGVudC10eXBlLnB5P2NtZD1nZXQmaWQ9IiAr
IGlkOworCisgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKKyAgICBzdGVwX3RpbWVv
dXQodGVzdC5zdGVwX2Z1bmMoKCkgPT4geworICAgICAgZmV0Y2goY2hlY2tVcmwpLnRoZW4ocmVz
cG9uc2UgPT4geworICAgICAgICByZXNwb25zZS50ZXh0KCkudGhlbihib2R5ID0+IHsKKyAgICAg
ICAgICByZXNvbHZlKGJvZHkpOworICAgICAgICB9KTsKKyAgICAgIH0pOworICAgIH0pLCAxMDAw
KTsKKyAgfSk7Cit9CisKK29ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgIHByb21pc2VfdGVzdChm
dW5jdGlvbih0ZXN0KSB7CisgICAgbGV0IHRlc3RGcmFtZSA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJ0ZXN0RnJhbWUiKTsKKyAgICBsZXQgaWQgPSB0ZXN0RnJhbWUuY29udGVudFdpbmRvdy5p
ZDsKKyAgICB0ZXN0RnJhbWUucmVtb3ZlKCk7CisKKyAgICByZXR1cm4gcG9sbFJlc3VsdCh0ZXN0
LCBpZCkgLnRoZW4ocmVzdWx0ID0+IHsKKyAgICAgIGFzc2VydF9lcXVhbHMocmVzdWx0LCAidGV4
dC9wbGFpbjtjaGFyc2V0PVVURi04IiwgIkNvcnJlY3QgY29udGVudC10eXBlIGhlYWRlciByZXN1
bHQiKTsKKyAgICB9KTsKKyAgfSwgIlRlc3QgdGhhdCBiZWFjb24gc2VudCBmcm9tIHVubG9hZCBl
dmVudCBoYW5kbGVyIGlzIHByb3Blcmx5IHJlY2VpdmVkIik7Cit9CisgICAgPC9zY3JpcHQ+Cisg
IDxpZnJhbWUgaWQ9InRlc3RGcmFtZSIgc3JjPSJzdXBwb3J0L3NlbmRCZWFjb24tb251bmxvYWQt
aWZyYW1lLmh0bWwiPjwvaWZyYW1lPgorICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3dwdC9iZWFjb24vc3VwcG9ydC9zZW5kQmVhY29uLW9udW5sb2FkLWlm
cmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvYmVhY29uL3N1cHBvcnQvc2VuZEJlYWNv
bi1vbnVubG9hZC1pZnJhbWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNzUxMDllMzk0ODk5ZDAzMzg0YmFk
NzliNzZhZGNkYjIxYWMxYzhhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93
cHQvYmVhY29uL3N1cHBvcnQvc2VuZEJlYWNvbi1vbnVubG9hZC1pZnJhbWUuaHRtbApAQCAtMCww
ICsxLDE3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHkgb251bmxvYWQ9InVubG9h
ZCgpIj4KKzxzY3JpcHQgc3JjPSIvY29tbW9uL3V0aWxzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIvY29tbW9uL2dldC1ob3N0LWluZm8uc3ViLmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4K
K2NvbnN0IFJFU09VUkNFU19ESVIgPSAiL2JlYWNvbi9yZXNvdXJjZXMvIjsKK3ZhciBpZCA9IHNl
bGYudG9rZW4oKTsKKworZnVuY3Rpb24gdW5sb2FkKCkgeworICAgIHZhciB0ZXN0VXJsID0gUkVT
T1VSQ0VTX0RJUiArICJjb250ZW50LXR5cGUucHk/Y21kPXB1dCZpZD0iICsgaWQ7CisgICAgbmF2
aWdhdG9yLnNlbmRCZWFjb24odGVzdFVybCwgInRlc3QiKTsKK30KKzwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>317299</attachid>
            <date>2017-08-04 15:04:46 -0700</date>
            <delta_ts>2017-08-04 16:22:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-175212-20170804150446.patch</filename>
            <type>text/plain</type>
            <size>3789</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIwMjk3CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggODQ3YzAyMWZhMGUyNGVhMzI1MmM0
OGIzMWIyYWViOWEzYTI0NmM0MC4uZGNjOGUxZmNjODgyYTUwOGY3YjA5ZGUzYzUwMzMxYzhlNWJi
YTRlNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE2IEBACiAyMDE3LTA4LTA0ICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CiAKKyAgICAgICAgQWRkIHRlc3QgY292ZXJhZ2UgZm9yIHNlbmRCZWFj
b24oKSBrZWVwYWxpdmUgZmxhZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTc1MjEyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4K
KworICAgICAgICAqIGh0dHAvd3B0L2JlYWNvbi9rZWVwYWxpdmUtYWZ0ZXItbmF2aWdhdGlvbi1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvd3B0L2JlYWNvbi9rZWVwYWxpdmUt
YWZ0ZXItbmF2aWdhdGlvbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3dwdC9iZWFjb24v
c3VwcG9ydC9zZW5kQmVhY29uLW9udW5sb2FkLWlmcmFtZS5odG1sOiBBZGRlZC4KKworMjAxNy0w
OC0wNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCiAgICAgICAgIExheW91dFRl
c3QgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iZWFjb24vYmVhY29uLWJhc2ljLXN0
cmluZy5odG1sIGlzIGEgZmxha3kgZmFpbHVyZSAoaGFybmVzcyB0aW1lb3V0KQogICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc1MjAyCiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L2JlYWNvbi9rZWVwYWxpdmUtYWZ0ZXItbmF2aWdhdGlv
bi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9iZWFjb24va2VlcGFsaXZlLWFm
dGVyLW5hdmlnYXRpb24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJjYWVhZTZhODU2ZDM0MmJl
YzgwOWViM2E3M2JmYmI0N2JmMTkzMDMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3dwdC9iZWFjb24va2VlcGFsaXZlLWFmdGVyLW5hdmlnYXRpb24tZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsNCBAQAorZnJhbWUgInRlc3RGcmFtZSIgLSBoYXMgMSBvbnVubG9hZCBoYW5kbGVy
KHMpCisKK1BBU1MgVGVzdCB0aGF0IGJlYWNvbiBzZW50IGZyb20gdW5sb2FkIGV2ZW50IGhhbmRs
ZXIgaXMgcHJvcGVybHkgcmVjZWl2ZWQgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
d3B0L2JlYWNvbi9rZWVwYWxpdmUtYWZ0ZXItbmF2aWdhdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC93cHQvYmVhY29uL2tlZXBhbGl2ZS1hZnRlci1uYXZpZ2F0aW9uLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYjQ0Yzg2MjllY2IzZTJjZTg1YzczYzllNmQwODE1N2ExMDBjODhmZAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2JlYWNvbi9rZWVwYWxpdmUtYWZ0ZXItbmF2aWdh
dGlvbi5odG1sCkBAIC0wLDAgKzEsNDMgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+CisgIDxo
ZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKyAgICA8dGl0bGU+U2VuZEJlYWNvbiBr
ZWVwYWxpdmUgZmxhZzwvdGl0bGU+CisgICAgPHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0aGFy
bmVzcy5qcz48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzPjwvc2NyaXB0PgorICA8L2hlYWQ+CisgIDxib2R5PgorICAgIDxzY3JpcHQgc3Jj
PSIvY29tbW9uL3V0aWxzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL2NvbW1vbi9n
ZXQtaG9zdC1pbmZvLnN1Yi5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KK2NvbnN0IFJFU09V
UkNFU19ESVIgPSAiL2JlYWNvbi9yZXNvdXJjZXMvIjsKKworZnVuY3Rpb24gcG9sbFJlc3VsdCh0
ZXN0LCBpZCkgeworICB2YXIgY2hlY2tVcmwgPSBSRVNPVVJDRVNfRElSICsgImNvbnRlbnQtdHlw
ZS5weT9jbWQ9Z2V0JmlkPSIgKyBpZDsKKworICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9
PiB7CisgICAgc3RlcF90aW1lb3V0KHRlc3Quc3RlcF9mdW5jKCgpID0+IHsKKyAgICAgIGZldGNo
KGNoZWNrVXJsKS50aGVuKHJlc3BvbnNlID0+IHsKKyAgICAgICAgcmVzcG9uc2UudGV4dCgpLnRo
ZW4oYm9keSA9PiB7CisgICAgICAgICAgcmVzb2x2ZShib2R5KTsKKyAgICAgICAgfSk7CisgICAg
ICB9KTsKKyAgICB9KSwgNTApOworICB9KTsKK30KKworb25sb2FkID0gZnVuY3Rpb24oKSB7Cisg
ICAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHRlc3QpIHsKKyAgICBsZXQgdGVzdEZyYW1lID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3RGcmFtZSIpOworICAgIGxldCBpZCA9IHRlc3RGcmFt
ZS5jb250ZW50V2luZG93LmlkOworICAgIHRlc3RGcmFtZS5yZW1vdmUoKTsKKworICAgIHJldHVy
biBwb2xsUmVzdWx0KHRlc3QsIGlkKS50aGVuKHJlc3VsdCA9PiB7CisgICAgICBhc3NlcnRfZXF1
YWxzKHJlc3VsdCwgInRleHQvcGxhaW47Y2hhcnNldD1VVEYtOCIsICJDb3JyZWN0IGNvbnRlbnQt
dHlwZSBoZWFkZXIgcmVzdWx0Iik7CisgICAgfSk7CisgIH0sICJUZXN0IHRoYXQgYmVhY29uIHNl
bnQgZnJvbSB1bmxvYWQgZXZlbnQgaGFuZGxlciBpcyBwcm9wZXJseSByZWNlaXZlZCIpOworfQor
ICAgIDwvc2NyaXB0PgorICA8aWZyYW1lIGlkPSJ0ZXN0RnJhbWUiIHNyYz0ic3VwcG9ydC9zZW5k
QmVhY29uLW9udW5sb2FkLWlmcmFtZS5odG1sIj48L2lmcmFtZT4KKyAgPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvYmVhY29uL3N1cHBvcnQvc2VuZEJl
YWNvbi1vbnVubG9hZC1pZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2JlYWNvbi9z
dXBwb3J0L3NlbmRCZWFjb24tb251bmxvYWQtaWZyYW1lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjc1MTA5
ZTM5NDg5OWQwMzM4NGJhZDc5Yjc2YWRjZGIyMWFjMWM4YQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvd3B0L2JlYWNvbi9zdXBwb3J0L3NlbmRCZWFjb24tb251bmxvYWQtaWZy
YW1lLmh0bWwKQEAgLTAsMCArMSwxNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5
IG9udW5sb2FkPSJ1bmxvYWQoKSI+Cis8c2NyaXB0IHNyYz0iL2NvbW1vbi91dGlscy5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iL2NvbW1vbi9nZXQtaG9zdC1pbmZvLnN1Yi5qcyI+PC9zY3Jp
cHQ+CisKKzxzY3JpcHQ+Citjb25zdCBSRVNPVVJDRVNfRElSID0gIi9iZWFjb24vcmVzb3VyY2Vz
LyI7Cit2YXIgaWQgPSBzZWxmLnRva2VuKCk7CisKK2Z1bmN0aW9uIHVubG9hZCgpIHsKKyAgICB2
YXIgdGVzdFVybCA9IFJFU09VUkNFU19ESVIgKyAiY29udGVudC10eXBlLnB5P2NtZD1wdXQmaWQ9
IiArIGlkOworICAgIG5hdmlnYXRvci5zZW5kQmVhY29uKHRlc3RVcmwsICJ0ZXN0Iik7Cit9Cis8
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>