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

LibWeb: Remove unecessary dependence on Window from HTML classes

These classes only needed Window to get at its realm. Pass a realm
directly to construct HTML classes.
This commit is contained in:
Andrew Kaster 2022-09-25 16:38:21 -06:00 committed by Linus Groh
parent a2ccb00e1d
commit f0c5f77f99
122 changed files with 334 additions and 317 deletions

View file

@ -4,25 +4,25 @@
* SPDX-License-Identifier: BSD-2-Clause
*/
#include <LibWeb/Bindings/Intrinsics.h>
#include <LibWeb/DOM/EventDispatcher.h>
#include <LibWeb/HTML/EventHandler.h>
#include <LibWeb/HTML/EventLoop/EventLoop.h>
#include <LibWeb/HTML/EventNames.h>
#include <LibWeb/HTML/MessageEvent.h>
#include <LibWeb/HTML/MessagePort.h>
#include <LibWeb/HTML/Window.h>
namespace Web::HTML {
JS::NonnullGCPtr<MessagePort> MessagePort::create(HTML::Window& window)
JS::NonnullGCPtr<MessagePort> MessagePort::create(JS::Realm& realm)
{
return *window.heap().allocate<MessagePort>(window.realm(), window);
return *realm.heap().allocate<MessagePort>(realm, realm);
}
MessagePort::MessagePort(HTML::Window& window)
: DOM::EventTarget(window.realm())
MessagePort::MessagePort(JS::Realm& realm)
: DOM::EventTarget(realm)
{
set_prototype(&window.cached_web_prototype("MessagePort"));
set_prototype(&Bindings::cached_web_prototype(realm, "MessagePort"));
}
MessagePort::~MessagePort() = default;
@ -92,7 +92,7 @@ void MessagePort::post_message(JS::Value message)
MessageEventInit event_init {};
event_init.data = message;
event_init.origin = "<origin>";
target_port->dispatch_event(*MessageEvent::create(verify_cast<HTML::Window>(target_port->realm().global_object()), HTML::EventNames::message, event_init));
target_port->dispatch_event(*MessageEvent::create(target_port->realm(), HTML::EventNames::message, event_init));
}));
}