Bug 1375050 - Fix crash in nsLabelsNodeList::MaybeResetRoot r=jdai

This commit is contained in:
Catalin Badea 2017-07-13 13:57:40 +01:00
parent 2139ebd9c2
commit a330125123
3 changed files with 37 additions and 1 deletions

View File

@ -1178,7 +1178,9 @@ nsLabelsNodeList::MaybeResetRoot(nsINode* aRootNode)
return;
}
mRootNode->RemoveMutationObserver(this);
if (mRootNode) {
mRootNode->RemoveMutationObserver(this);
}
mRootNode = aRootNode;
mRootNode->AddMutationObserver(this);
SetDirty();

View File

@ -618,6 +618,7 @@ skip-if = toolkit == 'android'
[test_bug1308069.html]
[test_bug1314032.html]
[test_bug1318303.html]
[test_bug1375050.html]
[test_caretPositionFromPoint.html]
[test_change_policy.html]
[test_clearTimeoutIntervalNoArg.html]

View File

@ -0,0 +1,33 @@
<!DOCTYPE HTML>
<html>
<!--
https://bugzilla.mozilla.org/show_bug.cgi?id=1375050
-->
<head>
<meta charset="utf-8">
<title>Test for Bug 1375050</title>
<script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
<script type="application/javascript">
try { o1 = document.createElement('input'); } catch(e) { console.log(e); };
try { o2 = document.createElement('col'); } catch(e) { console.log(e); };
try { o4 = document.createRange(); } catch(e) { console.log(e); };
try { document.documentElement.appendChild(o1); } catch(e) { console.log(e); };
try { for (let p in o1) { let x = o1[p] }; } catch(e) { console.log(e); };
try { o4.selectNode(o1); } catch(e) { console.log(e); };
try { o6 = document.createComment(" x"); } catch(e) { console.log(e); }
try { o4.surroundContents(o6); } catch(e) { console.log(e); }
try { o7 = document.implementation.createDocument('', '', null).adoptNode(o1); } catch(e) { console.log(e);};
try { o2.appendChild(o1); } catch(e) { console.log(e); };
ok(true, "Didn't crash.");
</script>
</head>
<body>
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1375050">Mozilla Bug 1375050</a>
<p id="display"></p>
<div id="content" style="display: none">
</div>
<pre id="test">
</pre>
</body>
</html>