mirror of
https://github.com/RGBCube/serenity
synced 2025-05-25 18:15:09 +00:00
LibWeb: Bring destroy the child navigable comments closer to spec
This commit is contained in:
parent
7576e9dcd2
commit
d6d1485720
1 changed files with 7 additions and 5 deletions
|
@ -261,25 +261,27 @@ void NavigableContainer::destroy_the_child_navigable()
|
||||||
// 3. Set container's content navigable to null.
|
// 3. Set container's content navigable to null.
|
||||||
m_content_navigable = nullptr;
|
m_content_navigable = nullptr;
|
||||||
|
|
||||||
// 4. Destroy navigable's active document.
|
// FIXME: 4. Inform the navigation API about child navigable destruction given navigable.
|
||||||
|
|
||||||
|
// 5. Destroy navigable's active document.
|
||||||
navigable->active_document()->destroy();
|
navigable->active_document()->destroy();
|
||||||
|
|
||||||
// 5. Let parentDocState be container's node navigable's active session history entry's document state.
|
// 6. Let parentDocState be container's node navigable's active session history entry's document state.
|
||||||
auto parent_doc_state = this->navigable()->active_session_history_entry()->document_state;
|
auto parent_doc_state = this->navigable()->active_session_history_entry()->document_state;
|
||||||
|
|
||||||
// 6. Remove the nested history from parentDocState's nested histories whose id equals navigable's id.
|
// 7. Remove the nested history from parentDocState's nested histories whose id equals navigable's id.
|
||||||
parent_doc_state->nested_histories().remove_all_matching([&](auto& nested_history) {
|
parent_doc_state->nested_histories().remove_all_matching([&](auto& nested_history) {
|
||||||
return navigable->id() == nested_history.id;
|
return navigable->id() == nested_history.id;
|
||||||
});
|
});
|
||||||
|
|
||||||
// 7. Let traversable be container's node navigable's traversable navigable.
|
// 8. Let traversable be container's node navigable's traversable navigable.
|
||||||
auto traversable = this->navigable()->traversable_navigable();
|
auto traversable = this->navigable()->traversable_navigable();
|
||||||
|
|
||||||
// Not in the spec
|
// Not in the spec
|
||||||
navigable->set_has_been_destroyed();
|
navigable->set_has_been_destroyed();
|
||||||
HTML::all_navigables().remove(navigable);
|
HTML::all_navigables().remove(navigable);
|
||||||
|
|
||||||
// 8. Append the following session history traversal steps to traversable:
|
// 9. Append the following session history traversal steps to traversable:
|
||||||
traversable->append_session_history_traversal_steps([traversable] {
|
traversable->append_session_history_traversal_steps([traversable] {
|
||||||
// 1. Apply pending history changes to traversable.
|
// 1. Apply pending history changes to traversable.
|
||||||
traversable->update_for_navigable_creation_or_destruction();
|
traversable->update_for_navigable_creation_or_destruction();
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue