Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Core: Make isAttached work with iOS 10.0-10.2
The test for Shadow DOM v1 support has been changed to rely on the presence of
`documentElement.getRootNode` as iOS 10.0-10.2 supports `attachShadow` but
doesn't support `getRootNode`.
No new test is necessary - iOS 10.0 fails lots of our test suite because of
this bug.
Fixes gh-4356
Closes gh-4360
Loading branch information
Showing
3 changed files
with
20 additions
and
5 deletions .
+5
−1
src/core/isAttached.js
+10
−2
test/unit/css.js
+5
−2
test/unit/effects.js
@@ -10,8 +10,12 @@ define( [
} ,
composed = { composed : true } ;
// Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only
// Check attachment across shadow DOM boundaries when possible (gh-3504)
if ( documentElement . attachShadow ) {
// Support: iOS 10.0-10.2 only
// Early iOS 10 versions support `attachShadow` but not `getRootNode`,
// leading to errors. We need to check for `getRootNode`.
if ( documentElement . getRootNode ) {
isAttached = function ( elem ) {
return jQuery . contains ( elem . ownerDocument , elem ) ||
elem . getRootNode ( composed ) === elem . ownerDocument ;
@@ -641,7 +641,11 @@ QUnit.test( "show/hide detached nodes", function( assert ) {
span . remove ( ) ;
} ) ;
QUnit [ document . body . attachShadow ? "test" : "skip" ] ( "show/hide shadow child nodes" , function ( assert ) {
QUnit [
document . body . attachShadow && document . body . getRootNode ?
"test" :
"skip"
] ( "show/hide shadow child nodes" , function ( assert ) {
assert . expect ( 28 ) ;
jQuery ( "<div id='shadowHost'></div>" ) . appendTo ( "#qunit-fixture" ) ;
var shadowHost = document . querySelector ( "#shadowHost" ) ;
@@ -1023,7 +1027,11 @@ QUnit[ jQuery.find.compile && jQuery.fn.toggle ? "test" : "skip" ]( "detached to
"cascade-hidden element in detached tree" ) ;
} ) ;
QUnit [ jQuery . find . compile && jQuery . fn . toggle && document . body . attachShadow ? "test" : "skip" ] ( "shadow toggle()" , function ( assert ) {
QUnit [ jQuery . find . compile && jQuery . fn . toggle &&
document . body . attachShadow && document . body . getRootNode ?
"test" :
"skip"
] ( "shadow toggle()" , function ( assert ) {
assert . expect ( 4 ) ;
jQuery ( "<div id='shadowHost'></div>" ) . appendTo ( "#qunit-fixture" ) ;
var shadowHost = document . querySelector ( "#shadowHost" ) ;
@@ -221,8 +221,11 @@ supportjQuery.each( hideOptions, function( type, setup ) {
assert . expectJqData ( this , $span , "olddisplay" ) ;
} ) ;
QUnit [ document . body . attachShadow ? "test" : "skip" ] (
"Persist correct display value - " + type + " hidden, shadow child" , function ( assert ) {
QUnit [
document . body . attachShadow && document . body . getRootNode ?
"test" :
"skip"
] ( "Persist correct display value - " + type + " hidden, shadow child" , function ( assert ) {
assert . expect ( 3 ) ;
jQuery ( "<div id='shadowHost'></div>" ) . appendTo ( "#qunit-fixture" ) ;
Toggle all file notes