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.
|
||||
for node in nodes.mut_iter() {
|
||||
parent.add_child(node, child);
|
||||
if parent.is_in_doc() {
|
||||
node.flags.deref().borrow_mut().insert(IsInDoc);
|
||||
} else {
|
||||
node.flags.deref().borrow_mut().remove(IsInDoc);
|
||||
let is_in_doc = parent.is_in_doc();
|
||||
for mut kid in node.traverse_preorder() {
|
||||
if is_in_doc {
|
||||
kid.flags.deref().borrow_mut().insert(IsInDoc);
|
||||
} else {
|
||||
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");
|
||||
}
|
||||
|
||||
// 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();
|
||||
</script>
|
||||
</body>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue