diff --git a/Userland/Libraries/LibWeb/HTML/SessionHistoryTraversalQueue.cpp b/Userland/Libraries/LibWeb/HTML/SessionHistoryTraversalQueue.cpp
index 3914bfa9c00..0d28f64dfe3 100644
--- a/Userland/Libraries/LibWeb/HTML/SessionHistoryTraversalQueue.cpp
+++ b/Userland/Libraries/LibWeb/HTML/SessionHistoryTraversalQueue.cpp
@@ -63,10 +63,10 @@ void SessionHistoryTraversalQueue::append_sync(Function steps, JS::GCPtr
}
// https://html.spec.whatwg.org/multipage/browsing-the-web.html#sync-navigations-jump-queue
-JS::GCPtr SessionHistoryTraversalQueue::first_synchronous_navigation_steps_with_target_navigable_not_contained_in(Vector> const& list)
+JS::GCPtr SessionHistoryTraversalQueue::first_synchronous_navigation_steps_with_target_navigable_not_contained_in(HashTable> const& set)
{
- auto index = m_queue.find_first_index_if([&list](auto const& entry) -> bool {
- return (entry->target_navigable() != nullptr) && !list.contains_slow(entry->target_navigable());
+ auto index = m_queue.find_first_index_if([&set](auto const& entry) -> bool {
+ return (entry->target_navigable() != nullptr) && !set.contains(*entry->target_navigable());
});
if (index.has_value())
return m_queue.take(*index);
diff --git a/Userland/Libraries/LibWeb/HTML/SessionHistoryTraversalQueue.h b/Userland/Libraries/LibWeb/HTML/SessionHistoryTraversalQueue.h
index 06e4f1ad4ea..02b597f4ebe 100644
--- a/Userland/Libraries/LibWeb/HTML/SessionHistoryTraversalQueue.h
+++ b/Userland/Libraries/LibWeb/HTML/SessionHistoryTraversalQueue.h
@@ -53,7 +53,7 @@ public:
void append_sync(Function steps, JS::GCPtr target_navigable);
// https://html.spec.whatwg.org/multipage/browsing-the-web.html#sync-navigations-jump-queue
- JS::GCPtr first_synchronous_navigation_steps_with_target_navigable_not_contained_in(Vector> const& list);
+ JS::GCPtr first_synchronous_navigation_steps_with_target_navigable_not_contained_in(HashTable> const&);
private:
virtual void visit_edges(Cell::Visitor&) override;
diff --git a/Userland/Libraries/LibWeb/HTML/TraversableNavigable.cpp b/Userland/Libraries/LibWeb/HTML/TraversableNavigable.cpp
index 97f04d895b4..e7b07400fde 100644
--- a/Userland/Libraries/LibWeb/HTML/TraversableNavigable.cpp
+++ b/Userland/Libraries/LibWeb/HTML/TraversableNavigable.cpp
@@ -648,7 +648,7 @@ TraversableNavigable::HistoryStepResult TraversableNavigable::apply_the_history_
}
// 13. Let navigablesThatMustWaitBeforeHandlingSyncNavigation be an empty set.
- Vector> navigables_that_must_wait_before_handling_sync_navigation;
+ HashTable> navigables_that_must_wait_before_handling_sync_navigation;
// 14. While completedChangeJobs does not equal totalChangeJobs:
while (!changing_navigable_continuations.is_empty()) {
@@ -701,7 +701,7 @@ TraversableNavigable::HistoryStepResult TraversableNavigable::apply_the_history_
auto script_history_index = history_object_length_and_index.script_history_index;
// 8. Append navigable to navigablesThatMustWaitBeforeHandlingSyncNavigation.
- navigables_that_must_wait_before_handling_sync_navigation.append(*navigable);
+ navigables_that_must_wait_before_handling_sync_navigation.set(*navigable);
// 9. Let entriesForNavigationAPI be the result of getting session history entries for the navigation API given navigable and targetStep.
auto entries_for_navigation_api = get_session_history_entries_for_the_navigation_api(*navigable, target_step);