diff --git a/Userland/Libraries/LibWeb/HTML/TraversableNavigable.cpp b/Userland/Libraries/LibWeb/HTML/TraversableNavigable.cpp
index e6ef402a1f..14fca46334 100644
--- a/Userland/Libraries/LibWeb/HTML/TraversableNavigable.cpp
+++ b/Userland/Libraries/LibWeb/HTML/TraversableNavigable.cpp
@@ -406,8 +406,13 @@ void TraversableNavigable::apply_the_history_step(int step, Optionalunload(target_entry->document_state->document());
- // FIXME: 2. For each childNavigable of displayedDocument's descendant navigables, queue a global task on the navigation and traversal task source given
- // childNavigable's active window to unload childNavigable's active document.
+ // 2. For each childNavigable of displayedDocument's descendant navigables, queue a global task on the navigation and traversal task source given
+ // childNavigable's active window to unload childNavigable's active document.
+ for (auto child_navigable : displayed_document->descendant_navigables()) {
+ queue_global_task(Task::Source::NavigationAndTraversal, *navigable->active_window(), [child_navigable] {
+ child_navigable->active_document()->unload();
+ });
+ }
// 3. Activate history entry targetEntry for navigable.
navigable->activate_history_entry(*target_entry);