mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2026-04-18 18:00:31 +00:00
The beforeunload, promiserejection, beforetoggle and toggle events were previously not tagged as trusted. This commit properly tags the event so that we match the behaviour implemented by other browsers.
47 lines
1.3 KiB
C++
47 lines
1.3 KiB
C++
/*
|
|
* Copyright (c) 2023, Tim Flynn <trflynn89@serenityos.org>
|
|
*
|
|
* SPDX-License-Identifier: BSD-2-Clause
|
|
*/
|
|
|
|
#include <LibWeb/Bindings/Intrinsics.h>
|
|
#include <LibWeb/Bindings/ToggleEventPrototype.h>
|
|
#include <LibWeb/HTML/ToggleEvent.h>
|
|
|
|
namespace Web::HTML {
|
|
|
|
GC_DEFINE_ALLOCATOR(ToggleEvent);
|
|
|
|
GC::Ref<ToggleEvent> ToggleEvent::create(JS::Realm& realm, FlyString const& event_name, ToggleEventInit event_init)
|
|
{
|
|
auto event = realm.create<ToggleEvent>(realm, event_name, move(event_init));
|
|
event->set_is_trusted(true);
|
|
return event;
|
|
}
|
|
|
|
WebIDL::ExceptionOr<GC::Ref<ToggleEvent>> ToggleEvent::construct_impl(JS::Realm& realm, FlyString const& event_name, ToggleEventInit event_init)
|
|
{
|
|
return create(realm, event_name, move(event_init));
|
|
}
|
|
|
|
ToggleEvent::ToggleEvent(JS::Realm& realm, FlyString const& event_name, ToggleEventInit event_init)
|
|
: DOM::Event(realm, event_name, event_init)
|
|
, m_old_state(move(event_init.old_state))
|
|
, m_new_state(move(event_init.new_state))
|
|
, m_source(event_init.source)
|
|
{
|
|
}
|
|
|
|
void ToggleEvent::initialize(JS::Realm& realm)
|
|
{
|
|
WEB_SET_PROTOTYPE_FOR_INTERFACE(ToggleEvent);
|
|
Base::initialize(realm);
|
|
}
|
|
|
|
void ToggleEvent::visit_edges(Cell::Visitor& visitor)
|
|
{
|
|
Base::visit_edges(visitor);
|
|
visitor.visit(m_source);
|
|
}
|
|
|
|
}
|