1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 19:57:45 +00:00

LibWeb: Port MediaQueryListEvent to new String

This commit is contained in:
Kenneth Myhra 2023-03-04 21:17:19 +01:00 committed by Linus Groh
parent 97947fdffa
commit d0f904dd4c
4 changed files with 11 additions and 10 deletions

View file

@ -10,13 +10,13 @@
namespace Web::CSS { namespace Web::CSS {
WebIDL::ExceptionOr<JS::NonnullGCPtr<MediaQueryListEvent>> MediaQueryListEvent::construct_impl(JS::Realm& realm, DeprecatedFlyString const& event_name, MediaQueryListEventInit const& event_init) WebIDL::ExceptionOr<JS::NonnullGCPtr<MediaQueryListEvent>> MediaQueryListEvent::construct_impl(JS::Realm& realm, FlyString const& event_name, MediaQueryListEventInit const& event_init)
{ {
return MUST_OR_THROW_OOM(realm.heap().allocate<MediaQueryListEvent>(realm, realm, event_name, event_init)); return MUST_OR_THROW_OOM(realm.heap().allocate<MediaQueryListEvent>(realm, realm, event_name, event_init));
} }
MediaQueryListEvent::MediaQueryListEvent(JS::Realm& realm, DeprecatedFlyString const& event_name, MediaQueryListEventInit const& event_init) MediaQueryListEvent::MediaQueryListEvent(JS::Realm& realm, FlyString const& event_name, MediaQueryListEventInit const& event_init)
: DOM::Event(realm, event_name, event_init) : DOM::Event(realm, event_name.to_deprecated_fly_string(), event_init)
, m_media(event_init.media) , m_media(event_init.media)
, m_matches(event_init.matches) , m_matches(event_init.matches)
{ {

View file

@ -6,12 +6,13 @@
#pragma once #pragma once
#include <AK/FlyString.h>
#include <LibWeb/DOM/Event.h> #include <LibWeb/DOM/Event.h>
namespace Web::CSS { namespace Web::CSS {
struct MediaQueryListEventInit : public DOM::EventInit { struct MediaQueryListEventInit : public DOM::EventInit {
DeprecatedString media { "" }; String media;
bool matches { false }; bool matches { false };
}; };
@ -19,19 +20,19 @@ class MediaQueryListEvent final : public DOM::Event {
WEB_PLATFORM_OBJECT(MediaQueryListEvent, DOM::Event); WEB_PLATFORM_OBJECT(MediaQueryListEvent, DOM::Event);
public: public:
static WebIDL::ExceptionOr<JS::NonnullGCPtr<MediaQueryListEvent>> construct_impl(JS::Realm&, DeprecatedFlyString const& event_name, MediaQueryListEventInit const& event_init = {}); static WebIDL::ExceptionOr<JS::NonnullGCPtr<MediaQueryListEvent>> construct_impl(JS::Realm&, FlyString const& event_name, MediaQueryListEventInit const& event_init = {});
virtual ~MediaQueryListEvent() override; virtual ~MediaQueryListEvent() override;
DeprecatedString const& media() const { return m_media; } String const& media() const { return m_media; }
bool matches() const { return m_matches; } bool matches() const { return m_matches; }
private: private:
MediaQueryListEvent(JS::Realm&, DeprecatedFlyString const& event_name, MediaQueryListEventInit const& event_init); MediaQueryListEvent(JS::Realm&, FlyString const& event_name, MediaQueryListEventInit const& event_init);
virtual JS::ThrowCompletionOr<void> initialize(JS::Realm&) override; virtual JS::ThrowCompletionOr<void> initialize(JS::Realm&) override;
DeprecatedString m_media; String m_media;
bool m_matches; bool m_matches;
}; };
} }

View file

@ -1,7 +1,7 @@
#import <DOM/Event.idl> #import <DOM/Event.idl>
// https://w3c.github.io/csswg-drafts/cssom-view-1/#mediaquerylistevent // https://w3c.github.io/csswg-drafts/cssom-view-1/#mediaquerylistevent
[Exposed=Window] [Exposed=Window, UseNewAKString]
interface MediaQueryListEvent : Event { interface MediaQueryListEvent : Event {
constructor(CSSOMString type, optional MediaQueryListEventInit eventInitDict = {}); constructor(CSSOMString type, optional MediaQueryListEventInit eventInitDict = {});

View file

@ -1801,7 +1801,7 @@ void Document::evaluate_media_queries_and_report_changes()
if (did_match != now_matches) { if (did_match != now_matches) {
CSS::MediaQueryListEventInit init; CSS::MediaQueryListEventInit init;
init.media = media_query_list->media(); init.media = String::from_deprecated_string(media_query_list->media()).release_value_but_fixme_should_propagate_errors();
init.matches = now_matches; init.matches = now_matches;
auto event = CSS::MediaQueryListEvent::create(realm(), HTML::EventNames::change, init).release_value_but_fixme_should_propagate_errors(); auto event = CSS::MediaQueryListEvent::create(realm(), HTML::EventNames::change, init).release_value_but_fixme_should_propagate_errors();
event->set_is_trusted(true); event->set_is_trusted(true);