<?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>204665</bug_id>
          
          <creation_ts>2019-11-27 23:36:31 -0800</creation_ts>
          <short_desc>sendBeacon on Safari 13 seeing high failure rates</short_desc>
          <delta_ts>2019-12-20 14:59:53 -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>Page Loading</component>
          <version>Safari 13</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>iOS 13</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=197919</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=205504</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yoav Weiss">yoav</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>japhet</cc>
    
    <cc>jond</cc>
    
    <cc>mjs</cc>
    
    <cc>philip</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>yoav</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1593961</commentid>
    <comment_count>0</comment_count>
    <who name="Yoav Weiss">yoav</who>
    <bug_when>2019-11-27 23:36:31 -0800</bug_when>
    <thetext>I&apos;ve been getting multiple reports that `sendBeacon` on Safari 13 (both on iOS and macOS) is seeing significantly more failure reports than previous versions.
One provider that was measuring click based beacons was seeing 5x increase in failures, resulting in 1% of failures. A publishing platform that was using it to report back performance measurements was seeing a similar failure.
Talking to both, they are falling back to using sync XHR in Safari, which seems like a step in the wrong direction.

On top of that Simon Hearne at perf.now()[1] mentioned that as an analytics provider, he is seeing significantly slower unload times on iOS than on other platforms. That can be an indication that many folks use syncXHR instead of beacon there.


[1] https://perfnow.nl/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594092</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-11-28 11:44:12 -0800</bug_when>
    <thetext>&lt;rdar://problem/57522622&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1599889</commentid>
    <comment_count>2</comment_count>
    <who name="Yoav Weiss">yoav</who>
    <bug_when>2019-12-18 11:22:48 -0800</bug_when>
    <thetext>https://volument.com/blog/sendbeacon-is-broken seems relevant</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600816</commentid>
    <comment_count>3</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-12-20 11:09:24 -0800</bug_when>
    <thetext>(In reply to Yoav Weiss from comment #2)
&gt; https://volument.com/blog/sendbeacon-is-broken seems relevant

iOS
Thanks to developer community feedback, we removed iOS from the list. This browser has known issues delivering on the promises of beacon API. The sendBeacon event itself is working, but the unload/beforeunload events are not fired. We should have used the pagehide and/or visibilitychange events instead.
Unfortunately we have no data how reliable iOS is when the data is sent on these mobile-specific events.

&gt; So testing was not correct on iOS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600859</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-12-20 12:11:24 -0800</bug_when>
    <thetext>The only change in our Beacon implementation in Safari 13 I am aware of was this one:
https://bugs.webkit.org/show_bug.cgi?id=197919

Technically, if you exit Safari, the network process will go away and Beacon loads could get interrupted in this case if there are still pending. I guess using such a Low priority for beacon makes it more likely to happen and it could in theory explain the increase in failures.

I propose we revert Bug 197919.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600860</commentid>
    <comment_count>5</comment_count>
      <attachid>386237</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-12-20 12:15:55 -0800</bug_when>
    <thetext>Created attachment 386237
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600885</commentid>
    <comment_count>6</comment_count>
    <who name="Yoav Weiss">yoav</who>
    <bug_when>2019-12-20 12:57:14 -0800</bug_when>
    <thetext>(In reply to Chris Dumez from comment #3)
&gt; (In reply to Yoav Weiss from comment #2)
&gt; &gt; https://volument.com/blog/sendbeacon-is-broken seems relevant
&gt; 
&gt; iOS
&gt; Thanks to developer community feedback, we removed iOS from the list. This
&gt; browser has known issues delivering on the promises of beacon API. The
&gt; sendBeacon event itself is working, but the unload/beforeunload events are
&gt; not fired. We should have used the pagehide and/or visibilitychange events
&gt; instead.
&gt; Unfortunately we have no data how reliable iOS is when the data is sent on
&gt; these mobile-specific events.
&gt; 
&gt; &gt; So testing was not correct on iOS.

Yup, my bad. The methodology of this blog post was indeed flawed. The other reports still stand though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600964</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-20 14:59:00 -0800</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 386237:

fetch/fetch-worker-crash.html bug 187257 (author: youennf@gmail.com)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600965</commentid>
    <comment_count>8</comment_count>
      <attachid>386237</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-20 14:59:51 -0800</bug_when>
    <thetext>Comment on attachment 386237
Patch

Clearing flags on attachment: 386237

Committed r253847: &lt;https://trac.webkit.org/changeset/253847&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600966</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-20 14:59:53 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386237</attachid>
            <date>2019-12-20 12:15:55 -0800</date>
            <delta_ts>2019-12-20 14:59:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204665-20191220121555.patch</filename>
            <type>text/plain</type>
            <size>2683</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzODI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDFkYjliYWZkNjU0MzNi
MDFhYzliMDFlOTI3NTFmNmY5NTJmNmU4Ny4uMGMzNWVkOGFlMWIyZTQ4M2Q2YTY2NDUxZWM1MWEx
NmUwNzhkY2VkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE5LTEyLTIwICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgc2VuZEJlYWNvbiBvbiBTYWZh
cmkgMTMgc2VlaW5nIGhpZ2ggZmFpbHVyZSByYXRlcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0NjY1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81
NzUyMjYyMj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBSZXZlcnQgcjI0NTM0NCB0byB0cnkgYW5kIHJlZHVjZSBvdXIgZmFpbHVyZSByYXRlIGZvciBC
ZWFjb24uIFRoaXMgaXMgdGhlIG9ubHkgY2hhbmdlCisgICAgICAgIHRvIG91ciBCZWFjb24gaW1w
bGVtZW50YXRpb24gdGhhdCBJIGFtIGF3YXJlIHdlIG1hZGUgaW4gU2FmYXJpIDEzLiBVc2luZyBh
IGxvd2VyIHByaW9yaXR5CisgICAgICAgIGZvciBCZWFjb24gbWFrZXMgaXQgbW9yZSBsaWtlbHkg
dGhhdCB0aGUgQmVhY29uIGxvYWQgaXMgc3RpbGwgcGVuZGluZyB3aGVuIHRoZSBuZXR3b3JrCisg
ICAgICAgIHByb2Nlc3MgZXhpdHMsIHdoaWNoIHdvdWxkIGludGVycnVwdCB0aGUgQmVhY29uLgor
CisgICAgICAgIFNpbmNlIHdlJ3JlIHRyeWluZyB0byBjb252aW5jZSBkZXZlbG9wZXJzIHRvIG1v
dmUgYXdheSBmcm9tIHN5bmNocm9ub3VzIFhIUiBhbmQgdG8gdXNpbmcKKyAgICAgICAgdGhlIEJl
YWNvbiBBUEkgaW50ZWFkLCBpdCBpcyBpbXBvcnRhbnQgdGhhdCBvdXIgQmVhY29uIEFQSSBiZSBh
cyByZWxpYWJsZSBhcyBwb3NzaWJsZS4KKworICAgICAgICAqIE1vZHVsZXMvYmVhY29uL05hdmln
YXRvckJlYWNvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOYXZpZ2F0b3JCZWFjb246OnNlbmRC
ZWFjb24pOgorICAgICAgICAqIGxvYWRlci9QaW5nTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlBpbmdMb2FkZXI6OnNlbmRQaW5nKToKKwogMjAxOS0xMi0yMCAgeW91ZW5uIGZhYmxldCAg
PHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIHRoZSBjZXJ0aWZpY2F0ZSBpbmZv
IGNoZWNrcyByZWxhdGVkIHRvIGdldFVzZXJNZWRpYQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9iZWFjb24vTmF2aWdhdG9yQmVhY29uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvYmVhY29uL05hdmlnYXRvckJlYWNvbi5jcHAKaW5kZXggMjQ3ZmEzZmNjZjk5NWUwZDg0
M2Y4NGJlNWEzYTg2YjczN2MyYTE1YS4uZTcyZDk3OTFhNTA5OTA2NzcxZDcyMzAyZmEzZDQ1YjVj
Mjk2NTAxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9iZWFjb24vTmF2aWdh
dG9yQmVhY29uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2JlYWNvbi9OYXZpZ2F0
b3JCZWFjb24uY3BwCkBAIC0xMjEsNyArMTIxLDYgQEAgRXhjZXB0aW9uT3I8Ym9vbD4gTmF2aWdh
dG9yQmVhY29uOjpzZW5kQmVhY29uKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJgog
CiAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QocGFyc2VkVXJsKTsKICAgICByZXF1ZXN0LnNl
dEhUVFBNZXRob2QoIlBPU1QiX3MpOwotICAgIHJlcXVlc3Quc2V0UHJpb3JpdHkoUmVzb3VyY2VM
b2FkUHJpb3JpdHk6OlZlcnlMb3cpOwogCiAgICAgUmVzb3VyY2VMb2FkZXJPcHRpb25zIG9wdGlv
bnM7CiAgICAgb3B0aW9ucy5jcmVkZW50aWFscyA9IEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHM6
OkluY2x1ZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUGluZ0xvYWRlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUGluZ0xvYWRlci5jcHAKaW5kZXggNjVkOGJlZWFj
ZDlmOTVjNjI5NjQxN2QwZmJmYzhkMDYwNzM0ZDYxNy4uMDUwZTJhZDNlNWJjNTI1ZjMwNTRhZjM0
Y2ZhNWEyNGIwYjNmMmVlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BpbmdM
b2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9QaW5nTG9hZGVyLmNwcApAQCAt
MTMwLDcgKzEzMCw2IEBAIHZvaWQgUGluZ0xvYWRlcjo6c2VuZFBpbmcoRnJhbWUmIGZyYW1lLCBj
b25zdCBVUkwmIHBpbmdVUkwsIGNvbnN0IFVSTCYgZGVzdGluYXRpCiAgICAgcmVxdWVzdC5zZXRI
VFRQQ29udGVudFR5cGUoInRleHQvcGluZyIpOwogICAgIHJlcXVlc3Quc2V0SFRUUEJvZHkoRm9y
bURhdGE6OmNyZWF0ZSgiUElORyIpKTsKICAgICByZXF1ZXN0LnNldEhUVFBIZWFkZXJGaWVsZChI
VFRQSGVhZGVyTmFtZTo6Q2FjaGVDb250cm9sLCAibWF4LWFnZT0wIik7Ci0gICAgcmVxdWVzdC5z
ZXRQcmlvcml0eShSZXNvdXJjZUxvYWRQcmlvcml0eTo6VmVyeUxvdyk7CiAKICAgICBIVFRQSGVh
ZGVyTWFwIG9yaWdpbmFsUmVxdWVzdEhlYWRlciA9IHJlcXVlc3QuaHR0cEhlYWRlckZpZWxkcygp
OwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>