mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 468210. Do a better job of unhooking our anonymous content. r+sr=sicking
This commit is contained in:
parent
4d0acd8eae
commit
89cfc393d2
@ -1143,6 +1143,14 @@ nsXBLBinding::ChangeDocument(nsIDocument* aOldDocument, nsIDocument* aNewDocumen
|
||||
#endif
|
||||
|
||||
nsAutoScriptBlocker scriptBlocker;
|
||||
// Unbind the _kids_ of the anonymous content, not just the anonymous
|
||||
// content itself, since they are bound to some other parent. Basically
|
||||
// we want to undo the mess that InstallAnonymousContent created.
|
||||
PRUint32 childCount = anonymous->GetChildCount();
|
||||
for (PRUint32 i = 0; i < childCount; i++) {
|
||||
anonymous->GetChildAt(i)->UnbindFromTree();
|
||||
}
|
||||
|
||||
anonymous->UnbindFromTree(); // Kill it.
|
||||
|
||||
#ifdef MOZ_XUL
|
||||
|
@ -66,6 +66,7 @@ _TEST_FILES = \
|
||||
file_bug379959_data.html \
|
||||
file_bug379959_cross.html \
|
||||
file_bug379959_xbl.xml \
|
||||
test_bug468210.xhtml \
|
||||
$(NULL)
|
||||
|
||||
libs:: $(_TEST_FILES)
|
||||
|
52
content/xbl/test/test_bug468210.xhtml
Normal file
52
content/xbl/test/test_bug468210.xhtml
Normal file
@ -0,0 +1,52 @@
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<!--
|
||||
https://bugzilla.mozilla.org/show_bug.cgi?id=468210
|
||||
-->
|
||||
<head>
|
||||
<title>Test for Bug 468210</title>
|
||||
<script type="application/javascript" src="/MochiKit/packed.js"></script>
|
||||
<script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
|
||||
<!-- Keep the stuff inside <content> without spaces, so that the getAnonymousNodes works right -->
|
||||
<bindings xmlns="http://www.mozilla.org/xbl">
|
||||
<binding id="foo">
|
||||
<content><span xmlns='http://www.w3.org/1999/xhtml'><children xmlns="http://www.mozilla.org/xbl"/></span></content>
|
||||
</binding>
|
||||
</bindings>
|
||||
</head>
|
||||
<body>
|
||||
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=468210">Mozilla Bug 468210</a>
|
||||
<p id="display">
|
||||
<div id="d" style="-moz-binding: url(#foo);"></div>
|
||||
<a name="foo"></a>
|
||||
</p>
|
||||
<div id="content" style="display: none">
|
||||
|
||||
</div>
|
||||
<pre id="test">
|
||||
<script type="application/javascript">
|
||||
<![CDATA[
|
||||
|
||||
/** Test for Bug 468210 **/
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
addLoadEvent(function() {
|
||||
var div = $("d");
|
||||
var n = document.anchors.length;
|
||||
is(n, 1, "Unexpected number of anchors");
|
||||
var anon = document.getAnonymousNodes(div)[0];
|
||||
is(anon instanceof HTMLSpanElement, true, "Unexpected node");
|
||||
is(anon.parentNode, div, "Unexpected parent");
|
||||
document.body.appendChild(div);
|
||||
is(anon.parentNode, null, "Parent should have become null");
|
||||
// An attr set to test notifications
|
||||
anon.setAttribute("h", "i");
|
||||
});
|
||||
addLoadEvent(SimpleTest.finish);
|
||||
|
||||
|
||||
|
||||
]]>
|
||||
</script>
|
||||
</pre>
|
||||
</body>
|
||||
</html>
|
Loading…
Reference in New Issue
Block a user