LibWeb/HTML: Implement NavigationTransition committed promise

This commit is contained in:
Sam Atkins 2025-12-04 16:21:03 +00:00
parent 945c4ca5b3
commit 4fb28539a9
Notes: github-actions[bot] 2025-12-05 09:21:16 +00:00
4 changed files with 27 additions and 9 deletions

View file

@ -17,16 +17,17 @@ namespace Web::HTML {
GC_DEFINE_ALLOCATOR(NavigationTransition);
GC::Ref<NavigationTransition> NavigationTransition::create(JS::Realm& realm, Bindings::NavigationType navigation_type, GC::Ref<NavigationHistoryEntry> from_entry, GC::Ref<NavigationDestination> destination, GC::Ref<WebIDL::Promise> finished_promise)
GC::Ref<NavigationTransition> NavigationTransition::create(JS::Realm& realm, Bindings::NavigationType navigation_type, GC::Ref<NavigationHistoryEntry> from_entry, GC::Ref<NavigationDestination> destination, GC::Ref<WebIDL::Promise> committed_promise, GC::Ref<WebIDL::Promise> finished_promise)
{
return realm.create<NavigationTransition>(realm, navigation_type, from_entry, destination, finished_promise);
return realm.create<NavigationTransition>(realm, navigation_type, from_entry, destination, committed_promise, finished_promise);
}
NavigationTransition::NavigationTransition(JS::Realm& realm, Bindings::NavigationType navigation_type, GC::Ref<NavigationHistoryEntry> from_entry, GC::Ref<NavigationDestination> destination, GC::Ref<WebIDL::Promise> finished_promise)
NavigationTransition::NavigationTransition(JS::Realm& realm, Bindings::NavigationType navigation_type, GC::Ref<NavigationHistoryEntry> from_entry, GC::Ref<NavigationDestination> destination, GC::Ref<WebIDL::Promise> committed_promise, GC::Ref<WebIDL::Promise> finished_promise)
: Bindings::PlatformObject(realm)
, m_navigation_type(navigation_type)
, m_from_entry(from_entry)
, m_destination(destination)
, m_committed_promise(committed_promise)
, m_finished_promise(finished_promise)
{
}
@ -44,6 +45,7 @@ void NavigationTransition::visit_edges(JS::Cell::Visitor& visitor)
Base::visit_edges(visitor);
visitor.visit(m_from_entry);
visitor.visit(m_destination);
visitor.visit(m_committed_promise);
visitor.visit(m_finished_promise);
}