1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 17:58:12 +00:00

LibWeb: Add an Internals API to trigger a user-activated (trusted) event

Some DOM APIs are restricted to user-activated events. For example, you
can't just invoke `navigator.clipboard.writeText` from JS - it has to be
accompanied by a user gesture, such as a mouse-down event. This adds an
Internals API to simulate such a gesture.
This commit is contained in:
Timothy Flynn 2023-11-10 16:19:37 -05:00 committed by Andreas Kling
parent 6761791c9a
commit 78d455e231
3 changed files with 13 additions and 0 deletions

View file

@ -8,6 +8,8 @@
#include <LibWeb/Bindings/InternalsPrototype.h>
#include <LibWeb/Bindings/Intrinsics.h>
#include <LibWeb/DOM/Document.h>
#include <LibWeb/DOM/Event.h>
#include <LibWeb/DOM/EventTarget.h>
#include <LibWeb/HTML/BrowsingContext.h>
#include <LibWeb/HTML/Window.h>
#include <LibWeb/Internals/Internals.h>
@ -58,4 +60,10 @@ JS::Object* Internals::hit_test(double x, double y)
return nullptr;
}
WebIDL::ExceptionOr<bool> Internals::dispatch_user_activated_event(DOM::EventTarget& target, DOM::Event& event)
{
event.set_is_trusted(true);
return target.dispatch_event(event);
}
}