|
@@ -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)
|