diff --git a/Userland/Libraries/LibWeb/CSS/CSSStyleSheet.cpp b/Userland/Libraries/LibWeb/CSS/CSSStyleSheet.cpp index b582c44eb75..59a58565a29 100644 --- a/Userland/Libraries/LibWeb/CSS/CSSStyleSheet.cpp +++ b/Userland/Libraries/LibWeb/CSS/CSSStyleSheet.cpp @@ -371,4 +371,14 @@ void CSSStyleSheet::recalculate_namespaces() } } +void CSSStyleSheet::set_source_text(String source) +{ + m_source_text = move(source); +} + +Optional CSSStyleSheet::source_text(Badge) const +{ + return m_source_text; +} + } diff --git a/Userland/Libraries/LibWeb/CSS/CSSStyleSheet.h b/Userland/Libraries/LibWeb/CSS/CSSStyleSheet.h index e541fbdb7ca..1ea007dcebf 100644 --- a/Userland/Libraries/LibWeb/CSS/CSSStyleSheet.h +++ b/Userland/Libraries/LibWeb/CSS/CSSStyleSheet.h @@ -78,6 +78,9 @@ public: bool disallow_modification() const { return m_disallow_modification; } + void set_source_text(String); + Optional source_text(Badge) const; + private: CSSStyleSheet(JS::Realm&, CSSRuleList&, MediaList&, Optional location); @@ -89,6 +92,8 @@ private: void set_constructed(bool constructed) { m_constructed = constructed; } void set_disallow_modification(bool disallow_modification) { m_disallow_modification = disallow_modification; } + Optional m_source_text; + JS::GCPtr m_rules; JS::GCPtr m_default_namespace_rule; HashMap> m_namespace_rules; diff --git a/Userland/Libraries/LibWeb/CSS/Parser/Helpers.cpp b/Userland/Libraries/LibWeb/CSS/Parser/Helpers.cpp index 47f9970138f..3f5186fb1f7 100644 --- a/Userland/Libraries/LibWeb/CSS/Parser/Helpers.cpp +++ b/Userland/Libraries/LibWeb/CSS/Parser/Helpers.cpp @@ -20,9 +20,14 @@ CSS::CSSStyleSheet* parse_css_stylesheet(CSS::Parser::ParsingContext const& cont if (css.is_empty()) { auto rule_list = CSS::CSSRuleList::create_empty(context.realm()); auto media_list = CSS::MediaList::create(context.realm(), {}); - return CSS::CSSStyleSheet::create(context.realm(), rule_list, media_list, location); + auto style_sheet = CSS::CSSStyleSheet::create(context.realm(), rule_list, media_list, location); + style_sheet->set_source_text({}); + return style_sheet; } - return CSS::Parser::Parser::create(context, css).parse_as_css_stylesheet(location); + auto* style_sheet = CSS::Parser::Parser::create(context, css).parse_as_css_stylesheet(location); + // FIXME: Avoid this copy + style_sheet->set_source_text(MUST(String::from_utf8(css))); + return style_sheet; } CSS::ElementInlineCSSStyleDeclaration* parse_css_style_attribute(CSS::Parser::ParsingContext const& context, StringView css, DOM::Element& element)