зеркало из https://github.com/mozilla/pjs.git
Bug 635835 - Crash with nsTreeWalker::NextNode setting currentNode as JS object from chrome; r=sicking
This commit is contained in:
Родитель
1584527545
Коммит
72db9c0242
|
@ -147,8 +147,10 @@ NS_IMETHODIMP nsTreeWalker::SetCurrentNode(nsIDOMNode * aCurrentNode)
|
|||
nsresult rv = nsContentUtils::CheckSameOrigin(mRoot, aCurrentNode);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
mCurrentNode = do_QueryInterface(aCurrentNode);
|
||||
nsCOMPtr<nsINode> node = do_QueryInterface(aCurrentNode);
|
||||
NS_ENSURE_TRUE(node, NS_ERROR_DOM_NOT_SUPPORTED_ERR);
|
||||
|
||||
mCurrentNode.swap(node);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
|
|
@ -59,6 +59,7 @@ _CHROME_FILES = \
|
|||
file_bug549682.xul \
|
||||
test_bug616841.xul \
|
||||
file_bug616841.xul \
|
||||
test_bug635835.xul \
|
||||
$(NULL)
|
||||
|
||||
libs:: $(_TEST_FILES)
|
||||
|
|
|
@ -0,0 +1,39 @@
|
|||
<?xml version="1.0"?>
|
||||
<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
|
||||
<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css"
|
||||
type="text/css"?>
|
||||
<!--
|
||||
https://bugzilla.mozilla.org/show_bug.cgi?id=635835
|
||||
-->
|
||||
<window title="Mozilla Bug 635835"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
|
||||
<script type="application/javascript"
|
||||
src="chrome://mochikit/content/MochiKit/packed.js"></script>
|
||||
<script type="application/javascript"
|
||||
src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
|
||||
|
||||
<!-- test results are displayed in the html:body -->
|
||||
<body xmlns="http://www.w3.org/1999/xhtml">
|
||||
<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=635835"
|
||||
target="_blank">Mozilla Bug 635835</a>
|
||||
</body>
|
||||
|
||||
<!-- test code goes here -->
|
||||
<script type="application/javascript"><![CDATA[
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
const SHOW_ALL = Components.interfaces.nsIDOMNodeFilter.SHOW_ALL;
|
||||
|
||||
addLoadEvent(function() {
|
||||
var walker = document.createTreeWalker(document, SHOW_ALL, null, true);
|
||||
try {
|
||||
walker.currentNode = {};
|
||||
walker.nextNode();
|
||||
}
|
||||
catch (e) {
|
||||
// do nothing - this is a crash test
|
||||
}
|
||||
ok(true, "Crash test passed");
|
||||
SimpleTest.finish();
|
||||
});
|
||||
]]></script>
|
||||
</window>
|
Загрузка…
Ссылка в новой задаче