diff --git a/Libraries/LibWeb/HTML/NavigateEvent.cpp b/Libraries/LibWeb/HTML/NavigateEvent.cpp
index 9eda140883e..e588c684f83 100644
--- a/Libraries/LibWeb/HTML/NavigateEvent.cpp
+++ b/Libraries/LibWeb/HTML/NavigateEvent.cpp
@@ -25,6 +25,13 @@ namespace Web::HTML {
GC_DEFINE_ALLOCATOR(NavigateEvent);
+GC::Ref NavigateEvent::create(JS::Realm& realm, FlyString const& event_name, NavigateEventInit const& event_init)
+{
+ auto event = realm.create(realm, event_name, event_init);
+ event->set_is_trusted(true);
+ return event;
+}
+
GC::Ref NavigateEvent::construct_impl(JS::Realm& realm, FlyString const& event_name, NavigateEventInit const& event_init)
{
return realm.create(realm, event_name, event_init);
diff --git a/Libraries/LibWeb/HTML/NavigateEvent.h b/Libraries/LibWeb/HTML/NavigateEvent.h
index 2894c58a1c0..7b1e874eced 100644
--- a/Libraries/LibWeb/HTML/NavigateEvent.h
+++ b/Libraries/LibWeb/HTML/NavigateEvent.h
@@ -52,6 +52,7 @@ public:
Finished
};
+ [[nodiscard]] static GC::Ref create(JS::Realm&, FlyString const& event_name, NavigateEventInit const&);
[[nodiscard]] static GC::Ref construct_impl(JS::Realm&, FlyString const& event_name, NavigateEventInit const&);
// The navigationType, destination, canIntercept, userInitiated, hashChange, signal, formData, downloadRequest,
diff --git a/Libraries/LibWeb/HTML/Navigation.cpp b/Libraries/LibWeb/HTML/Navigation.cpp
index e69c454e50e..88723ae4876 100644
--- a/Libraries/LibWeb/HTML/Navigation.cpp
+++ b/Libraries/LibWeb/HTML/Navigation.cpp
@@ -1045,7 +1045,7 @@ bool Navigation::inner_navigate_event_firing_algorithm(
}
// AD-HOC: *Now* we have all the info required to create the event
- auto event = NavigateEvent::construct_impl(realm, EventNames::navigate, event_init);
+ auto event = NavigateEvent::create(realm, EventNames::navigate, event_init);
event->set_abort_controller(abort_controller);
// AD-HOC: This is supposed to be set in "fire a navigate event", and is only non-null when