mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-04-25 14:05:15 +00:00
The DOMParsing spec is in the process of being merged into the HTML one,
gradually. The linked spec change moves XMLSerializer, but many of the
algorithms are still in the DOMParsing spec so I've left the links to
those alone.
I've done my best to update the GN build but since I'm not actually
using it, I might have done that wrong.
Corresponds to 2edb8cc7ee
37 lines
950 B
C++
37 lines
950 B
C++
/*
|
|
* Copyright (c) 2022, Luke Wilde <lukew@serenityos.org>
|
|
*
|
|
* SPDX-License-Identifier: BSD-2-Clause
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <LibWeb/Bindings/PlatformObject.h>
|
|
|
|
namespace Web::HTML {
|
|
|
|
// https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#xmlserializer
|
|
class XMLSerializer final : public Bindings::PlatformObject {
|
|
WEB_PLATFORM_OBJECT(XMLSerializer, Bindings::PlatformObject);
|
|
GC_DECLARE_ALLOCATOR(XMLSerializer);
|
|
|
|
public:
|
|
static WebIDL::ExceptionOr<GC::Ref<XMLSerializer>> construct_impl(JS::Realm&);
|
|
|
|
virtual ~XMLSerializer() override;
|
|
|
|
WebIDL::ExceptionOr<String> serialize_to_string(GC::Ref<DOM::Node const> root);
|
|
|
|
private:
|
|
explicit XMLSerializer(JS::Realm&);
|
|
|
|
virtual void initialize(JS::Realm&) override;
|
|
};
|
|
|
|
enum class RequireWellFormed {
|
|
No,
|
|
Yes,
|
|
};
|
|
|
|
WebIDL::ExceptionOr<String> serialize_node_to_xml_string(GC::Ref<DOM::Node const> root, RequireWellFormed require_well_formed);
|
|
}
|