mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-12-01 08:42:13 +00:00
Bug 1419799 - Fix nsContentUtils::IsInSameAnonymousTree in Shadow DOM. r=smaug
No need to consider multiple shadow roots as it is only supported in Shadow DOM v0, which is deprecated now. MozReview-Commit-ID: BKemIBiMx1Q
This commit is contained in:
parent
9fcaf906f7
commit
765510cef9
17
dom/base/crashtests/1419799.html
Normal file
17
dom/base/crashtests/1419799.html
Normal file
@ -0,0 +1,17 @@
|
||||
<html>
|
||||
<head>
|
||||
<script>
|
||||
try { o1 = document.createElement('textarea') } catch(e) { }
|
||||
try { o2 = document.createElement('div') } catch(e) { }
|
||||
try { o3 = document.createElement('map') } catch(e) { }
|
||||
try { document.documentElement.appendChild(o2) } catch(e) { }
|
||||
try { o2.appendChild(o1) } catch(e) { }
|
||||
try { document.documentElement.getClientRects() } catch(e) { }
|
||||
try { o4 = o2.attachShadow({ mode: "open" }); } catch(e) { }
|
||||
try { o1.appendChild(o3) } catch(e) { }
|
||||
try { o5 = o3.parentElement } catch(e) { }
|
||||
try { o3.outerHTML = "\n" } catch(e) { }
|
||||
try { o4.prepend("", o5, "") } catch(e) { }
|
||||
</script>
|
||||
</head>
|
||||
</html>
|
@ -236,3 +236,4 @@ load 1406109-1.html
|
||||
pref(dom.webcomponents.enabled,true) load 1324463.html
|
||||
pref(dom.webcomponents.customelements.enabled,true) load 1413815.html
|
||||
load 1411473.html
|
||||
pref(dom.webcomponents.enabled,true) load 1419799.html
|
||||
|
@ -5450,17 +5450,7 @@ nsContentUtils::IsInSameAnonymousTree(const nsINode* aNode,
|
||||
return aContent->GetBindingParent() == nullptr;
|
||||
}
|
||||
|
||||
const nsIContent* nodeAsContent = static_cast<const nsIContent*>(aNode);
|
||||
|
||||
// For nodes in a shadow tree, it is insufficient to simply compare
|
||||
// the binding parent because a node may host multiple ShadowRoots,
|
||||
// thus nodes in different shadow tree may have the same binding parent.
|
||||
if (aNode->IsInShadowTree()) {
|
||||
return nodeAsContent->GetContainingShadow() ==
|
||||
aContent->GetContainingShadow();
|
||||
}
|
||||
|
||||
return nodeAsContent->GetBindingParent() == aContent->GetBindingParent();
|
||||
return aNode->AsContent()->GetBindingParent() == aContent->GetBindingParent();
|
||||
}
|
||||
|
||||
/* static */
|
||||
|
Loading…
Reference in New Issue
Block a user