aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichał Gołębiowski-Owczarek <m.goleb@gmail.com>2023-04-05 00:25:20 +0200
committerMichał Gołębiowski-Owczarek <m.goleb@gmail.com>2023-04-05 00:34:39 +0200
commit89ef81f86f8f371154e9fd3173be5fb57cb72d5e (patch)
tree1e41254bed136b8ddb296d6a64ebb7cf922d4d3c
parentbce13b72c1753e16cc0db53ebf0f0456bdcf6b48 (diff)
downloadjquery-89ef81f86f8f371154e9fd3173be5fb57cb72d5e.tar.gz
jquery-89ef81f86f8f371154e9fd3173be5fb57cb72d5e.zip
Tests: Indicate Chrome 112 & Safari 16.4 pass the cssHas support test
Chrome 112 & Safari 16.4 introduce two changes: * `:has()` is non-forgiving * `CSS.supports( "selector(...)" )` parses everything in a non-forgiving way We no longer care about the latter but the former means the `cssHas` support test now passes. Closes gh-5225
-rw-r--r--src/selector/support.js4
-rw-r--r--test/unit/support.js38
2 files changed, 27 insertions, 15 deletions
diff --git a/src/selector/support.js b/src/selector/support.js
index 396e0e046..572038747 100644
--- a/src/selector/support.js
+++ b/src/selector/support.js
@@ -1,8 +1,8 @@
import document from "../var/document.js";
import support from "../var/support.js";
-// Support: Chrome 105 - 110+, Safari 15.4 - 16.3+
-// Make sure the the `:has()` argument is parsed unforgivingly.
+// Support: Chrome 105 - 111 only, Safari 15.4 - 16.3 only
+// Make sure the `:has()` argument is parsed unforgivingly.
// We include `*` in the test to detect buggy implementations that are
// _selectively_ forgiving (specifically when the list includes at least
// one valid selector).
diff --git a/test/unit/support.js b/test/unit/support.js
index 2bf43112f..05e669de3 100644
--- a/test/unit/support.js
+++ b/test/unit/support.js
@@ -62,21 +62,25 @@ testIframe(
cssHas: true,
reliableTrDimensions: false
},
- chrome: {
+ chrome_111: {
cssHas: false,
reliableTrDimensions: true
},
- safari: {
+ chrome: {
+ cssHas: true,
+ reliableTrDimensions: true
+ },
+ safari_16_3: {
cssHas: false,
reliableTrDimensions: true
},
- webkit: {
+ safari: {
cssHas: true,
reliableTrDimensions: true
},
- firefox_102: {
+ webkit: {
cssHas: true,
- reliableTrDimensions: false
+ reliableTrDimensions: true
},
firefox: {
cssHas: true,
@@ -86,9 +90,13 @@ testIframe(
cssHas: true,
reliableTrDimensions: true
},
- ios: {
+ ios_15_4_16_3: {
cssHas: false,
reliableTrDimensions: true
+ },
+ ios: {
+ cssHas: true,
+ reliableTrDimensions: true
}
};
@@ -101,17 +109,19 @@ testIframe(
if ( document.documentMode ) {
expected = expectedMap.ie_11;
- } else if ( /chrome/i.test( userAgent ) ) {
+ } else if ( /\b(?:headless)?chrome\/(?:10\d|11[01])\b/i.test( userAgent ) ) {
+ expected = expectedMap.chrome_111;
+ } else if ( /\b(?:headless)?chrome\//i.test( userAgent ) ) {
// Catches Edge, Chrome on Android & Opera as well.
expected = expectedMap.chrome;
- } else if ( /firefox\/102\./i.test( userAgent ) ) {
- expected = expectedMap.firefox_102;
- } else if ( /firefox/i.test( userAgent ) ) {
+ } else if ( /\bfirefox\//i.test( userAgent ) ) {
expected = expectedMap.firefox;
- } else if ( /iphone os (?:14_|15_[0123])/i.test( userAgent ) ) {
+ } else if ( /\biphone os (?:14_|15_[0123])/i.test( userAgent ) ) {
expected = expectedMap.ios_14_15_3;
- } else if ( /(?:iphone|ipad);.*(?:iphone)? os \d+_/i.test( userAgent ) ) {
+ } else if ( /\biphone os (?:15_|16_[0123])/i.test( userAgent ) ) {
+ expected = expectedMap.ios_15_4_16_3;
+ } else if ( /\b(?:iphone|ipad);.*(?:iphone)? os \d+_/i.test( userAgent ) ) {
expected = expectedMap.ios;
} else if ( typeof URLSearchParams !== "undefined" &&
@@ -125,7 +135,9 @@ testIframe(
) === "Playwright"
) {
expected = expectedMap.webkit;
- } else if ( /\b\d+(\.\d+)+ safari/i.test( userAgent ) ) {
+ } else if ( /\bversion\/(?:15|16\.[0123])(?:\.\d+)* safari/i.test( userAgent ) ) {
+ expected = expectedMap.safari_16_3;
+ } else if ( /\bversion\/\d+(?:\.\d+)+ safari/i.test( userAgent ) ) {
expected = expectedMap.safari;
}