1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 01:17:34 +00:00

LibWeb: Add XMLDocument stub

Required by old versions of Pixi.js's XMLFormat bitmap font loader.
db824181dc/packages/text-bitmap/src/formats/XMLFormat.ts (L16)
This commit is contained in:
Luke Wilde 2023-04-05 23:00:08 +01:00 committed by Andreas Kling
parent 3d0ac399c4
commit 1f863de9aa
7 changed files with 59 additions and 1 deletions

View file

@ -155,6 +155,7 @@ set(SOURCES
DOM/Text.cpp DOM/Text.cpp
DOM/Text.idl DOM/Text.idl
DOM/TreeWalker.cpp DOM/TreeWalker.cpp
DOM/XMLDocument.cpp
DOMParsing/InnerHTML.cpp DOMParsing/InnerHTML.cpp
DOMParsing/XMLSerializer.cpp DOMParsing/XMLSerializer.cpp
Dump.cpp Dump.cpp

View file

@ -472,9 +472,9 @@ protected:
virtual JS::ThrowCompletionOr<void> initialize(JS::Realm&) override; virtual JS::ThrowCompletionOr<void> initialize(JS::Realm&) override;
virtual void visit_edges(Cell::Visitor&) override; virtual void visit_edges(Cell::Visitor&) override;
private:
Document(JS::Realm&, AK::URL const&); Document(JS::Realm&, AK::URL const&);
private:
// ^HTML::GlobalEventHandlers // ^HTML::GlobalEventHandlers
virtual EventTarget& global_event_handlers_to_event_target(FlyString const&) final { return *this; } virtual EventTarget& global_event_handlers_to_event_target(FlyString const&) final { return *this; }

View file

@ -0,0 +1,25 @@
/*
* Copyright (c) 2023, Luke Wilde <lukew@serenityos.org>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#include <LibWeb/Bindings/XMLDocumentPrototype.h>
#include <LibWeb/DOM/XMLDocument.h>
namespace Web::DOM {
XMLDocument::XMLDocument(JS::Realm& realm, AK::URL const& url)
: Document(realm, url)
{
}
JS::ThrowCompletionOr<void> XMLDocument::initialize(JS::Realm& realm)
{
MUST_OR_THROW_OOM(Base::initialize(realm));
set_prototype(&Bindings::ensure_web_prototype<Bindings::XMLDocumentPrototype>(realm, "XMLDocument"));
return {};
}
}

View file

@ -0,0 +1,25 @@
/*
* Copyright (c) 2023, Luke Wilde <lukew@serenityos.org>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#pragma once
#include <LibWeb/DOM/Document.h>
namespace Web::DOM {
class XMLDocument final : public Document {
WEB_PLATFORM_OBJECT(XMLDocument, Document);
public:
virtual ~XMLDocument() override = default;
private:
XMLDocument(JS::Realm& realm, AK::URL const& url);
virtual JS::ThrowCompletionOr<void> initialize(JS::Realm&) override;
};
}

View file

@ -0,0 +1,5 @@
#import <DOM/Document.idl>
[Exposed=Window]
interface XMLDocument : Document {
};

View file

@ -214,6 +214,7 @@ class StaticNodeList;
class StaticRange; class StaticRange;
class Text; class Text;
class TreeWalker; class TreeWalker;
class XMLDocument;
enum class QuirksMode; enum class QuirksMode;

View file

@ -51,6 +51,7 @@ libweb_js_bindings(DOM/ShadowRoot)
libweb_js_bindings(DOM/StaticRange) libweb_js_bindings(DOM/StaticRange)
libweb_js_bindings(DOM/Text) libweb_js_bindings(DOM/Text)
libweb_js_bindings(DOM/TreeWalker) libweb_js_bindings(DOM/TreeWalker)
libweb_js_bindings(DOM/XMLDocument)
libweb_js_bindings(DOMParsing/XMLSerializer) libweb_js_bindings(DOMParsing/XMLSerializer)
libweb_js_bindings(Encoding/TextDecoder) libweb_js_bindings(Encoding/TextDecoder)
libweb_js_bindings(Encoding/TextEncoder) libweb_js_bindings(Encoding/TextEncoder)