mirror of
https://github.com/RGBCube/serenity
synced 2025-07-17 08:57:35 +00:00
LibWeb: Port CloseEvent to new String
This commit is contained in:
parent
d0f904dd4c
commit
e661f03ffa
4 changed files with 14 additions and 13 deletions
|
@ -9,18 +9,18 @@
|
||||||
|
|
||||||
namespace Web::HTML {
|
namespace Web::HTML {
|
||||||
|
|
||||||
WebIDL::ExceptionOr<JS::NonnullGCPtr<CloseEvent>> CloseEvent::create(JS::Realm& realm, DeprecatedFlyString const& event_name, CloseEventInit const& event_init)
|
WebIDL::ExceptionOr<JS::NonnullGCPtr<CloseEvent>> CloseEvent::create(JS::Realm& realm, FlyString const& event_name, CloseEventInit const& event_init)
|
||||||
{
|
{
|
||||||
return MUST_OR_THROW_OOM(realm.heap().allocate<CloseEvent>(realm, realm, event_name, event_init));
|
return MUST_OR_THROW_OOM(realm.heap().allocate<CloseEvent>(realm, realm, event_name, event_init));
|
||||||
}
|
}
|
||||||
|
|
||||||
WebIDL::ExceptionOr<JS::NonnullGCPtr<CloseEvent>> CloseEvent::construct_impl(JS::Realm& realm, DeprecatedFlyString const& event_name, CloseEventInit const& event_init)
|
WebIDL::ExceptionOr<JS::NonnullGCPtr<CloseEvent>> CloseEvent::construct_impl(JS::Realm& realm, FlyString const& event_name, CloseEventInit const& event_init)
|
||||||
{
|
{
|
||||||
return create(realm, event_name, event_init);
|
return create(realm, event_name, event_init);
|
||||||
}
|
}
|
||||||
|
|
||||||
CloseEvent::CloseEvent(JS::Realm& realm, DeprecatedFlyString const& event_name, CloseEventInit const& event_init)
|
CloseEvent::CloseEvent(JS::Realm& realm, FlyString const& event_name, CloseEventInit const& event_init)
|
||||||
: DOM::Event(realm, event_name, event_init)
|
: DOM::Event(realm, event_name.to_deprecated_fly_string(), event_init)
|
||||||
, m_was_clean(event_init.was_clean)
|
, m_was_clean(event_init.was_clean)
|
||||||
, m_code(event_init.code)
|
, m_code(event_init.code)
|
||||||
, m_reason(event_init.reason)
|
, m_reason(event_init.reason)
|
||||||
|
|
|
@ -7,6 +7,7 @@
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#include <AK/FlyString.h>
|
||||||
#include <LibWeb/DOM/Event.h>
|
#include <LibWeb/DOM/Event.h>
|
||||||
|
|
||||||
namespace Web::HTML {
|
namespace Web::HTML {
|
||||||
|
@ -14,30 +15,30 @@ namespace Web::HTML {
|
||||||
struct CloseEventInit : public DOM::EventInit {
|
struct CloseEventInit : public DOM::EventInit {
|
||||||
bool was_clean { false };
|
bool was_clean { false };
|
||||||
u16 code { 0 };
|
u16 code { 0 };
|
||||||
DeprecatedString reason { "" };
|
String reason;
|
||||||
};
|
};
|
||||||
|
|
||||||
class CloseEvent : public DOM::Event {
|
class CloseEvent : public DOM::Event {
|
||||||
WEB_PLATFORM_OBJECT(CloseEvent, DOM::Event);
|
WEB_PLATFORM_OBJECT(CloseEvent, DOM::Event);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
static WebIDL::ExceptionOr<JS::NonnullGCPtr<CloseEvent>> create(JS::Realm&, DeprecatedFlyString const& event_name, CloseEventInit const& event_init = {});
|
static WebIDL::ExceptionOr<JS::NonnullGCPtr<CloseEvent>> create(JS::Realm&, FlyString const& event_name, CloseEventInit const& event_init = {});
|
||||||
static WebIDL::ExceptionOr<JS::NonnullGCPtr<CloseEvent>> construct_impl(JS::Realm&, DeprecatedFlyString const& event_name, CloseEventInit const& event_init);
|
static WebIDL::ExceptionOr<JS::NonnullGCPtr<CloseEvent>> construct_impl(JS::Realm&, FlyString const& event_name, CloseEventInit const& event_init);
|
||||||
|
|
||||||
virtual ~CloseEvent() override;
|
virtual ~CloseEvent() override;
|
||||||
|
|
||||||
bool was_clean() const { return m_was_clean; }
|
bool was_clean() const { return m_was_clean; }
|
||||||
u16 code() const { return m_code; }
|
u16 code() const { return m_code; }
|
||||||
DeprecatedString reason() const { return m_reason; }
|
String reason() const { return m_reason; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
CloseEvent(JS::Realm&, DeprecatedFlyString const& event_name, CloseEventInit const& event_init);
|
CloseEvent(JS::Realm&, FlyString const& event_name, CloseEventInit const& event_init);
|
||||||
|
|
||||||
virtual JS::ThrowCompletionOr<void> initialize(JS::Realm&) override;
|
virtual JS::ThrowCompletionOr<void> initialize(JS::Realm&) override;
|
||||||
|
|
||||||
bool m_was_clean { false };
|
bool m_was_clean { false };
|
||||||
u16 m_code { 0 };
|
u16 m_code { 0 };
|
||||||
DeprecatedString m_reason;
|
String m_reason;
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#import <DOM/Event.idl>
|
#import <DOM/Event.idl>
|
||||||
|
|
||||||
[Exposed=*]
|
[Exposed=*, UseNewAKString]
|
||||||
interface CloseEvent : Event {
|
interface CloseEvent : Event {
|
||||||
constructor(DOMString type, optional CloseEventInit eventInitDict = {});
|
constructor(DOMString type, optional CloseEventInit eventInitDict = {});
|
||||||
|
|
||||||
|
|
|
@ -221,8 +221,8 @@ void WebSocket::on_close(u16 code, DeprecatedString reason, bool was_clean)
|
||||||
HTML::CloseEventInit event_init {};
|
HTML::CloseEventInit event_init {};
|
||||||
event_init.was_clean = was_clean;
|
event_init.was_clean = was_clean;
|
||||||
event_init.code = code;
|
event_init.code = code;
|
||||||
event_init.reason = move(reason);
|
event_init.reason = String::from_deprecated_string(reason).release_value_but_fixme_should_propagate_errors();
|
||||||
dispatch_event(HTML::CloseEvent::create(realm(), HTML::EventNames::close, event_init).release_value_but_fixme_should_propagate_errors());
|
dispatch_event(HTML::CloseEvent::create(realm(), String::from_deprecated_string(HTML::EventNames::close.view()).release_value_but_fixme_should_propagate_errors(), event_init).release_value_but_fixme_should_propagate_errors());
|
||||||
}
|
}
|
||||||
|
|
||||||
// https://websockets.spec.whatwg.org/#feedback-from-the-protocol
|
// https://websockets.spec.whatwg.org/#feedback-from-the-protocol
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue