ladybird/Userland/Libraries/LibWeb/Internals/Internals.h
Matthew Olsson a1f4d1875e LibWeb: Add an InternalAnimationTimeline object
This will allow fine grained control over animation times, which will
allow us to write timing tests that can reliably pass on the much slower
CI machines.
2024-03-28 21:08:32 +01:00

43 lines
1.1 KiB
C++

/*
* Copyright (c) 2023, Andreas Kling <kling@serenityos.org>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#pragma once
#include <LibWeb/Bindings/PlatformObject.h>
#include <LibWeb/Internals/InternalAnimationTimeline.h>
namespace Web::Internals {
class Internals final : public Bindings::PlatformObject {
WEB_PLATFORM_OBJECT(Internals, Bindings::PlatformObject);
JS_DECLARE_ALLOCATOR(Internals);
public:
virtual ~Internals() override;
void signal_text_test_is_done();
void gc();
JS::Object* hit_test(double x, double y);
void send_text(HTML::HTMLElement&, String const&);
void commit_text();
void click(double x, double y);
void move_pointer_to(double x, double y);
void wheel(double x, double y, double delta_x, double delta_y);
WebIDL::ExceptionOr<bool> dispatch_user_activated_event(DOM::EventTarget&, DOM::Event& event);
JS::NonnullGCPtr<InternalAnimationTimeline> create_internal_animation_timeline();
private:
explicit Internals(JS::Realm&);
virtual void initialize(JS::Realm&) override;
};
}