diff options
author | bors-servo <lbergstrom+bors@mozilla.com> | 2016-02-19 03:14:28 +0530 |
---|---|---|
committer | bors-servo <lbergstrom+bors@mozilla.com> | 2016-02-19 03:14:28 +0530 |
commit | 2374e9d30e015884e87305006ac61a77b7efd5ee (patch) | |
tree | 2076544187a54ed7262de2dbe7bd32ef305ea438 | |
parent | 96d185359d78e82d2f41a56a1793f7e657c2d103 (diff) | |
parent | 4bb5cd1285ebceb9d2baca432995ab8f09648ba3 (diff) | |
download | servo-2374e9d30e015884e87305006ac61a77b7efd5ee.tar.gz servo-2374e9d30e015884e87305006ac61a77b7efd5ee.zip |
Auto merge of #9526 - schuster:node-remove, r=nox
My updates so far for issue #8465. See comments there for more information.
<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.svg" height="40" alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/9526)
<!-- Reviewable:end -->
-rw-r--r-- | components/script/dom/node.rs | 9 | ||||
-rw-r--r-- | components/script/dom/virtualmethods.rs | 2 |
2 files changed, 8 insertions, 3 deletions
diff --git a/components/script/dom/node.rs b/components/script/dom/node.rs index c42635a3762..ac96158f7e5 100644 --- a/components/script/dom/node.rs +++ b/components/script/dom/node.rs @@ -1551,12 +1551,15 @@ impl Node { Some(index) } }; - // Step 6. + // Step 6. pre-removing steps for node iterators + // Step 7. let old_previous_sibling = node.GetPreviousSibling(); - // Steps 7-8: mutation observers. - // Step 9. + // Step 8. let old_next_sibling = node.GetNextSibling(); + // Steps 9-10 are handled in unbind_from_tree. parent.remove_child(node, cached_index); + // Step 11. transient registered observers + // Step 12. if let SuppressObserver::Unsuppressed = suppress_observers { vtable_for(&parent).children_changed( &ChildrenMutation::replace(old_previous_sibling.r(), diff --git a/components/script/dom/virtualmethods.rs b/components/script/dom/virtualmethods.rs index 2e8391671a8..e3def582ae4 100644 --- a/components/script/dom/virtualmethods.rs +++ b/components/script/dom/virtualmethods.rs @@ -83,6 +83,8 @@ pub trait VirtualMethods { /// Called when a Node is removed from a tree, where 'tree_in_doc' /// indicates whether the tree is part of a Document. + /// Implements removing steps: + /// https://dom.spec.whatwg.org/#concept-node-remove-ext fn unbind_from_tree(&self, context: &UnbindContext) { if let Some(ref s) = self.super_type() { s.unbind_from_tree(context); |