mirror of
https://github.com/servo/servo.git
synced 2025-08-03 04:30:10 +01:00
Fix adopted and connected callback reactions
This commit is contained in:
parent
77efab8a9e
commit
9ecb931c5e
7 changed files with 16 additions and 92 deletions
|
@ -1422,13 +1422,12 @@ impl Node {
|
|||
for descendant in node.traverse_preorder() {
|
||||
descendant.set_owner_doc(document);
|
||||
}
|
||||
for descendant in node.traverse_preorder() {
|
||||
for descendant in node.traverse_preorder().filter_map(|d| d.as_custom_element()) {
|
||||
// Step 3.2.
|
||||
if let Some(element) = node.as_custom_element() {
|
||||
ScriptThread::enqueue_callback_reaction(&*element,
|
||||
CallbackReaction::Adopted(old_doc.clone(), Root::from_ref(document)));
|
||||
}
|
||||
|
||||
ScriptThread::enqueue_callback_reaction(&*descendant,
|
||||
CallbackReaction::Adopted(old_doc.clone(), Root::from_ref(document)));
|
||||
}
|
||||
for descendant in node.traverse_preorder() {
|
||||
// Step 3.3.
|
||||
vtable_for(&descendant).adopting_steps(&old_doc);
|
||||
}
|
||||
|
@ -1636,9 +1635,17 @@ impl Node {
|
|||
for kid in new_nodes {
|
||||
// Step 7.1.
|
||||
parent.add_child(*kid, child);
|
||||
// Step 7.2: insertion steps.
|
||||
if let Some(element) = kid.as_custom_element() {
|
||||
ScriptThread::enqueue_callback_reaction(&*element, CallbackReaction::Connected);
|
||||
// Step 7.7.
|
||||
for descendant in kid.traverse_preorder().filter_map(Root::downcast::<Element>) {
|
||||
// Step 7.7.2.
|
||||
if descendant.is_connected() {
|
||||
// Step 7.7.2.1.
|
||||
if descendant.get_custom_element_definition().is_some() {
|
||||
ScriptThread::enqueue_callback_reaction(&*descendant, CallbackReaction::Connected);
|
||||
}
|
||||
// TODO: Step 7.7.2.2.
|
||||
// Try to upgrade descendant.
|
||||
}
|
||||
}
|
||||
}
|
||||
if let SuppressObserver::Unsuppressed = suppress_observers {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue