1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 09:57:35 +00:00

LibWeb: Add the type field to DOM::Document

This patch adds the document type concept to documents and sets it in
various places.
This commit is contained in:
networkException 2022-07-03 21:44:00 +02:00 committed by Linus Groh
parent baac3ba60c
commit 6805baeedd
5 changed files with 19 additions and 5 deletions

View file

@ -45,6 +45,11 @@ class Document
public:
using WrapperType = Bindings::DocumentWrapper;
enum class Type {
XML,
HTML
};
static NonnullRefPtr<Document> create(const AK::URL& url = "about:blank")
{
return adopt_ref(*new Document(url));
@ -208,6 +213,12 @@ public:
bool in_quirks_mode() const { return m_quirks_mode == QuirksMode::Yes; }
void set_quirks_mode(QuirksMode mode) { m_quirks_mode = mode; }
Type document_type() const { return m_type; }
void set_document_type(Type type) { m_type = type; }
// https://dom.spec.whatwg.org/#xml-document
bool is_xml_document() const { return m_type == Type::XML; }
ExceptionOr<NonnullRefPtr<Node>> import_node(NonnullRefPtr<Node> node, bool deep);
void adopt_node(Node&);
ExceptionOr<NonnullRefPtr<Node>> adopt_node_binding(NonnullRefPtr<Node>);
@ -411,6 +422,10 @@ private:
NonnullRefPtrVector<HTML::HTMLScriptElement> m_scripts_to_execute_as_soon_as_possible;
QuirksMode m_quirks_mode { QuirksMode::No };
// https://dom.spec.whatwg.org/#concept-document-type
Type m_type { Type::HTML };
bool m_editable { false };
WeakPtr<Element> m_focused_element;