summaryrefslogtreecommitdiff
path: root/Userland/Libraries/LibWeb/HTML/MessageChannel.h
diff options
context:
space:
mode:
authorAndreas Kling <kling@serenityos.org>2022-09-01 20:59:51 +0200
committerAndreas Kling <kling@serenityos.org>2022-09-06 00:27:09 +0200
commit2ff7e37048e0296ae6dc3653ca69da7bb1fa22dc (patch)
treec3d1628838d506e822244f2c78a26a1ce057125b /Userland/Libraries/LibWeb/HTML/MessageChannel.h
parent2bba97964b1daa30877ba715f6e058de5a5100c5 (diff)
downloadserenity-2ff7e37048e0296ae6dc3653ca69da7bb1fa22dc.zip
LibWeb: Make MessageChannel GC-allocated
Diffstat (limited to 'Userland/Libraries/LibWeb/HTML/MessageChannel.h')
-rw-r--r--Userland/Libraries/LibWeb/HTML/MessageChannel.h32
1 files changed, 12 insertions, 20 deletions
diff --git a/Userland/Libraries/LibWeb/HTML/MessageChannel.h b/Userland/Libraries/LibWeb/HTML/MessageChannel.h
index 7ac38e3912..7c7d65210e 100644
--- a/Userland/Libraries/LibWeb/HTML/MessageChannel.h
+++ b/Userland/Libraries/LibWeb/HTML/MessageChannel.h
@@ -1,34 +1,22 @@
/*
- * Copyright (c) 2021, Andreas Kling <kling@serenityos.org>
+ * Copyright (c) 2021-2022, Andreas Kling <kling@serenityos.org>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#pragma once
-#include <AK/RefCounted.h>
-#include <LibWeb/Bindings/Wrappable.h>
-#include <LibWeb/DOM/EventTarget.h>
+#include <LibWeb/Bindings/PlatformObject.h>
#include <LibWeb/Forward.h>
-#include <LibWeb/HTML/Window.h>
namespace Web::HTML {
// https://html.spec.whatwg.org/multipage/web-messaging.html#message-channels
-class MessageChannel final
- : public RefCounted<MessageChannel>
- , public Bindings::Wrappable {
-public:
- using WrapperType = Bindings::MessageChannelWrapper;
-
- using RefCounted::ref;
- using RefCounted::unref;
-
- static NonnullRefPtr<MessageChannel> create_with_global_object(HTML::Window& window)
- {
- return adopt_ref(*new MessageChannel(window));
- }
+class MessageChannel final : public Bindings::PlatformObject {
+ WEB_PLATFORM_OBJECT(MessageChannel, Bindings::PlatformObject);
+public:
+ static JS::NonnullGCPtr<MessageChannel> create_with_global_object(HTML::Window&);
virtual ~MessageChannel() override;
MessagePort* port1();
@@ -40,8 +28,12 @@ public:
private:
explicit MessageChannel(HTML::Window&);
- JS::Handle<MessagePort> m_port1;
- JS::Handle<MessagePort> m_port2;
+ virtual void visit_edges(Cell::Visitor&) override;
+
+ JS::GCPtr<MessagePort> m_port1;
+ JS::GCPtr<MessagePort> m_port2;
};
}
+
+WRAPPER_HACK(MessageChannel, Web::HTML)