]> source.dussan.org Git - jquery.git/commitdiff
Tests: Skip the "jQuery.ajax() on unload" test in Safari
authorMichał Gołębiowski-Owczarek <m.goleb@gmail.com>
Wed, 2 Sep 2020 16:04:44 +0000 (18:04 +0200)
committerMichał Gołębiowski-Owczarek <m.goleb@gmail.com>
Wed, 2 Sep 2020 16:05:47 +0000 (18:05 +0200)
The test has been already skipped in Chrome as it dropped support for such
requests and now Safari has joined the squad.

This will resolve AJAX test errors we've had for a while in Safari 13 & iOS 13.

Closes gh-4779

(cherry picked from commit c18dc49699bc27481a4af36ed1a0ee1b19c6eb03)

test/unit/ajax.js

index 9582018e79f94c1355f10a788d576e1a49166fdf..3f301f18f5b35d1ed665b5a18ecc01654f590bad 100644 (file)
@@ -2178,7 +2178,10 @@ if ( typeof window.ArrayBuffer === "undefined" || typeof new XMLHttpRequest().re
        // Chrome 78 dropped support for synchronous XHR requests inside of
        // beforeunload, unload, pagehide, and visibilitychange event handlers.
        // See https://bugs.chromium.org/p/chromium/issues/detail?id=952452
-       if ( !/chrome/i.test( navigator.userAgent ) ) {
+       // Safari 13 did similar changes. The below check will catch them both.
+       // Edge Legacy fakes Chrome which fakes Safari in their user agents so we need
+       // to exclude Edge specifically here so that the test continues to run there.
+       if ( !/safari/i.test( navigator.userAgent ) || /edge\//i.test( navigator.userAgent ) ) {
                testIframe(
                        "#14379 - jQuery.ajax() on unload",
                        "ajax/onunload.html",