LibWeb: Add the StyleSheet.href attribute

This is only ever null at the moment, as we only set it on <style>
elements to begin with.
This commit is contained in:
Andreas Kling 2022-03-09 19:56:08 +01:00
parent 45f717cfad
commit 0e758b4da8
Notes: sideshowbarker 2024-07-17 17:39:08 +09:00
3 changed files with 10 additions and 4 deletions
Userland/Libraries/LibWeb

View file

@ -26,6 +26,11 @@ public:
DOM::Element* owner_node() { return m_owner_node; }
void set_owner_node(DOM::Element*);
String href() const { return m_location; }
String location() const { return m_location; }
void set_location(String location) { m_location = move(location); }
String title() const { return m_title; }
void set_title(String title) { m_title = move(title); }
@ -51,6 +56,7 @@ private:
WeakPtr<CSSStyleSheet> m_parent_style_sheet;
String m_location;
String m_title;
String m_type_string;
String m_media_string;

View file

@ -7,7 +7,7 @@ interface StyleSheet {
readonly attribute Element? ownerNode;
readonly attribute CSSOMString type;
// readonly attribute USVString? href;
readonly attribute USVString? href;
readonly attribute CSSStyleSheet? parentStyleSheet;
readonly attribute DOMString? title;
// [SameObject, PutForwards=mediaText] readonly attribute MediaList media;

View file

@ -74,7 +74,7 @@ static void add_a_css_style_sheet(DOM::Document& document, NonnullRefPtr<CSS::CS
}
// https://www.w3.org/TR/cssom/#create-a-css-style-sheet
static void create_a_css_style_sheet(DOM::Document& document, String type, DOM::Element* owner_node, String media, String title, bool alternate, bool origin_clean, void* location, CSS::CSSStyleSheet* parent_style_sheet, CSS::CSSRule* owner_rule, NonnullRefPtr<CSS::CSSStyleSheet> sheet)
static void create_a_css_style_sheet(DOM::Document& document, String type, DOM::Element* owner_node, String media, String title, bool alternate, bool origin_clean, String location, CSS::CSSStyleSheet* parent_style_sheet, CSS::CSSRule* owner_rule, NonnullRefPtr<CSS::CSSStyleSheet> sheet)
{
// 1. Create a new CSS style sheet object and set its properties as specified.
// FIXME: We receive `sheet` from the caller already. This is weird.
@ -87,7 +87,7 @@ static void create_a_css_style_sheet(DOM::Document& document, String type, DOM::
sheet->set_title(move(title));
sheet->set_alternate(alternate);
sheet->set_origin_clean(origin_clean);
(void)location;
sheet->set_location(move(location));
// 2. Then run the add a CSS style sheet steps for the newly created CSS style sheet.
add_a_css_style_sheet(document, move(sheet));
@ -144,7 +144,7 @@ void HTMLStyleElement::update_a_style_block()
in_a_document_tree() ? attribute(HTML::AttributeNames::title) : String::empty(),
false,
true,
nullptr,
{},
nullptr,
nullptr,
sheet.release_nonnull());