mirror of
https://github.com/servo/servo.git
synced 2025-08-04 13:10:20 +01:00
Fix the assertion failure with inserting node contains child which has id into the document
https://github.com/mozilla/servo/issues/2630
This commit is contained in:
parent
897e39dcf3
commit
28f8d16c87
2 changed files with 19 additions and 4 deletions
|
@ -1137,10 +1137,13 @@ impl Node {
|
||||||
// Step 8.
|
// Step 8.
|
||||||
for node in nodes.mut_iter() {
|
for node in nodes.mut_iter() {
|
||||||
parent.add_child(node, child);
|
parent.add_child(node, child);
|
||||||
if parent.is_in_doc() {
|
let is_in_doc = parent.is_in_doc();
|
||||||
node.flags.deref().borrow_mut().insert(IsInDoc);
|
for mut kid in node.traverse_preorder() {
|
||||||
|
if is_in_doc {
|
||||||
|
kid.flags.deref().borrow_mut().insert(IsInDoc);
|
||||||
} else {
|
} else {
|
||||||
node.flags.deref().borrow_mut().remove(IsInDoc);
|
kid.flags.deref().borrow_mut().remove(IsInDoc);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -106,6 +106,18 @@
|
||||||
is(target2, null, "test 8-1, should return null after updated id via Attr.value");
|
is(target2, null, "test 8-1, should return null after updated id via Attr.value");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Test the assertion with inserting node with child having id into the document (mozilla#2630)
|
||||||
|
// This need not to port to WPF-test because this tests servo's internally flags.
|
||||||
|
{
|
||||||
|
let TEST_ID = "test-9";
|
||||||
|
let a = document.createElement("a");
|
||||||
|
let b = document.createElement("b");
|
||||||
|
a.appendChild(b).id = TEST_ID;
|
||||||
|
gBody.appendChild(a);
|
||||||
|
let result = document.getElementById(TEST_ID);
|
||||||
|
is(result, b, "test 9-0");
|
||||||
|
}
|
||||||
|
|
||||||
finish();
|
finish();
|
||||||
</script>
|
</script>
|
||||||
</body>
|
</body>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue