mirror of
https://github.com/fergalmoran/ladybird.git
synced 2026-01-03 15:16:14 +00:00
LibWeb: Add CDATASection
Not used for anything currently other than exposing it on the Window object. This allows Web Components Polyfills to patch its prototype.
This commit is contained in:
@@ -15,6 +15,8 @@
|
||||
#include <LibWeb/Bindings/AbstractRangeConstructor.h>
|
||||
#include <LibWeb/Bindings/AbstractRangePrototype.h>
|
||||
#include <LibWeb/Bindings/AudioConstructor.h>
|
||||
#include <LibWeb/Bindings/CDATASectionConstructor.h>
|
||||
#include <LibWeb/Bindings/CDATASectionPrototype.h>
|
||||
#include <LibWeb/Bindings/CSSConditionRuleConstructor.h>
|
||||
#include <LibWeb/Bindings/CSSConditionRulePrototype.h>
|
||||
#include <LibWeb/Bindings/CSSFontFaceRuleConstructor.h>
|
||||
@@ -370,6 +372,7 @@
|
||||
ADD_WINDOW_OBJECT_INTERFACE(AbortController) \
|
||||
ADD_WINDOW_OBJECT_INTERFACE(AbortSignal) \
|
||||
ADD_WINDOW_OBJECT_INTERFACE(AbstractRange) \
|
||||
ADD_WINDOW_OBJECT_INTERFACE(CDATASection) \
|
||||
ADD_WINDOW_OBJECT_INTERFACE(CSSConditionRule) \
|
||||
ADD_WINDOW_OBJECT_INTERFACE(CSSFontFaceRule) \
|
||||
ADD_WINDOW_OBJECT_INTERFACE(CSSGroupingRule) \
|
||||
|
||||
@@ -74,6 +74,7 @@ set(SOURCES
|
||||
DOM/AbortSignal.cpp
|
||||
DOM/Attribute.cpp
|
||||
DOM/Attribute.idl
|
||||
DOM/CDATASection.cpp
|
||||
DOM/CharacterData.cpp
|
||||
DOM/CharacterData.idl
|
||||
DOM/Comment.cpp
|
||||
|
||||
20
Userland/Libraries/LibWeb/DOM/CDATASection.cpp
Normal file
20
Userland/Libraries/LibWeb/DOM/CDATASection.cpp
Normal file
@@ -0,0 +1,20 @@
|
||||
/*
|
||||
* Copyright (c) 2022, Luke Wilde <lukew@serenityos.org>
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-2-Clause
|
||||
*/
|
||||
|
||||
#include <LibWeb/DOM/CDATASection.h>
|
||||
|
||||
namespace Web::DOM {
|
||||
|
||||
CDATASection::CDATASection(Document& document, String const& data)
|
||||
: Text(document, NodeType::CDATA_SECTION_NODE, data)
|
||||
{
|
||||
}
|
||||
|
||||
CDATASection::~CDATASection()
|
||||
{
|
||||
}
|
||||
|
||||
}
|
||||
28
Userland/Libraries/LibWeb/DOM/CDATASection.h
Normal file
28
Userland/Libraries/LibWeb/DOM/CDATASection.h
Normal file
@@ -0,0 +1,28 @@
|
||||
/*
|
||||
* Copyright (c) 2022, Luke Wilde <lukew@serenityos.org>
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-2-Clause
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <AK/RefCounted.h>
|
||||
#include <LibWeb/DOM/Text.h>
|
||||
|
||||
namespace Web::DOM {
|
||||
|
||||
class CDATASection final : public Text {
|
||||
public:
|
||||
using WrapperType = Bindings::CDATASectionWrapper;
|
||||
|
||||
CDATASection(Document&, String const&);
|
||||
virtual ~CDATASection() override;
|
||||
|
||||
// ^Node
|
||||
virtual FlyString node_name() const override { return "#cdata-section"; }
|
||||
};
|
||||
|
||||
template<>
|
||||
inline bool Node::fast_is<CDATASection>() const { return is_cdata_section(); }
|
||||
|
||||
}
|
||||
3
Userland/Libraries/LibWeb/DOM/CDATASection.idl
Normal file
3
Userland/Libraries/LibWeb/DOM/CDATASection.idl
Normal file
@@ -0,0 +1,3 @@
|
||||
[Exposed=Window]
|
||||
interface CDATASection : Text {
|
||||
};
|
||||
@@ -72,6 +72,7 @@ public:
|
||||
bool is_parent_node() const { return is_element() || is_document() || is_document_fragment(); }
|
||||
bool is_slottable() const { return is_element() || is_text(); }
|
||||
bool is_attribute() const { return type() == NodeType::ATTRIBUTE_NODE; }
|
||||
bool is_cdata_section() const { return type() == NodeType::CDATA_SECTION_NODE; }
|
||||
virtual bool is_shadow_root() const { return false; }
|
||||
|
||||
virtual bool requires_svg_container() const { return false; }
|
||||
|
||||
@@ -17,6 +17,11 @@ Text::Text(Document& document, String const& data)
|
||||
{
|
||||
}
|
||||
|
||||
Text::Text(Document& document, NodeType type, String const& data)
|
||||
: CharacterData(document, type, data)
|
||||
{
|
||||
}
|
||||
|
||||
// https://dom.spec.whatwg.org/#dom-text-text
|
||||
NonnullRefPtr<Text> Text::create_with_global_object(Bindings::WindowObject& window, String const& data)
|
||||
{
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
|
||||
namespace Web::DOM {
|
||||
|
||||
class Text final : public CharacterData {
|
||||
class Text : public CharacterData {
|
||||
public:
|
||||
using WrapperType = Bindings::TextWrapper;
|
||||
|
||||
@@ -32,6 +32,9 @@ public:
|
||||
|
||||
ExceptionOr<NonnullRefPtr<Text>> split_text(size_t offset);
|
||||
|
||||
protected:
|
||||
Text(Document&, NodeType, String const&);
|
||||
|
||||
private:
|
||||
WeakPtr<HTML::HTMLInputElement> m_owner_input_element;
|
||||
|
||||
|
||||
@@ -118,6 +118,7 @@ class AbstractRange;
|
||||
class AbortController;
|
||||
class AbortSignal;
|
||||
class Attribute;
|
||||
class CDATASection;
|
||||
class CharacterData;
|
||||
class Comment;
|
||||
class CustomEvent;
|
||||
@@ -410,6 +411,7 @@ class AttributeWrapper;
|
||||
struct CallbackType;
|
||||
class CanvasGradientWrapper;
|
||||
class CanvasRenderingContext2DWrapper;
|
||||
class CDATASectionWrapper;
|
||||
class CharacterDataWrapper;
|
||||
class CloseEventWrapper;
|
||||
class CommentWrapper;
|
||||
|
||||
@@ -24,6 +24,7 @@ libweb_js_wrapper(DOM/AbstractRange)
|
||||
libweb_js_wrapper(DOM/Attribute)
|
||||
libweb_js_wrapper(DOM/AbortController)
|
||||
libweb_js_wrapper(DOM/AbortSignal)
|
||||
libweb_js_wrapper(DOM/CDATASection)
|
||||
libweb_js_wrapper(DOM/CharacterData)
|
||||
libweb_js_wrapper(DOM/Comment)
|
||||
libweb_js_wrapper(DOM/CustomEvent)
|
||||
|
||||
Reference in New Issue
Block a user