diff --git a/Userland/Libraries/LibWeb/Internals/Internals.cpp b/Userland/Libraries/LibWeb/Internals/Internals.cpp index bb37715285..28bf0cc0da 100644 --- a/Userland/Libraries/LibWeb/Internals/Internals.cpp +++ b/Userland/Libraries/LibWeb/Internals/Internals.cpp @@ -8,6 +8,8 @@ #include #include #include +#include +#include #include #include #include @@ -58,4 +60,10 @@ JS::Object* Internals::hit_test(double x, double y) return nullptr; } +WebIDL::ExceptionOr Internals::dispatch_user_activated_event(DOM::EventTarget& target, DOM::Event& event) +{ + event.set_is_trusted(true); + return target.dispatch_event(event); +} + } diff --git a/Userland/Libraries/LibWeb/Internals/Internals.h b/Userland/Libraries/LibWeb/Internals/Internals.h index e0f2d3f5ed..00f88fe724 100644 --- a/Userland/Libraries/LibWeb/Internals/Internals.h +++ b/Userland/Libraries/LibWeb/Internals/Internals.h @@ -21,6 +21,8 @@ public: void gc(); JS::Object* hit_test(double x, double y); + WebIDL::ExceptionOr dispatch_user_activated_event(DOM::EventTarget&, DOM::Event& event); + private: explicit Internals(JS::Realm&); virtual void initialize(JS::Realm&) override; diff --git a/Userland/Libraries/LibWeb/Internals/Internals.idl b/Userland/Libraries/LibWeb/Internals/Internals.idl index 49c2e8633a..ea7f624cdf 100644 --- a/Userland/Libraries/LibWeb/Internals/Internals.idl +++ b/Userland/Libraries/LibWeb/Internals/Internals.idl @@ -1,7 +1,10 @@ +#import + [Exposed=Nobody] interface Internals { undefined signalTextTestIsDone(); undefined gc(); object hitTest(double x, double y); + boolean dispatchUserActivatedEvent(EventTarget target, Event event); };