diff --git a/Userland/Libraries/LibWeb/CSS/StyleSheet.h b/Userland/Libraries/LibWeb/CSS/StyleSheet.h index dc809624c4..7c921a3f35 100644 --- a/Userland/Libraries/LibWeb/CSS/StyleSheet.h +++ b/Userland/Libraries/LibWeb/CSS/StyleSheet.h @@ -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 m_parent_style_sheet; + String m_location; String m_title; String m_type_string; String m_media_string; diff --git a/Userland/Libraries/LibWeb/CSS/StyleSheet.idl b/Userland/Libraries/LibWeb/CSS/StyleSheet.idl index bf7ca4c25a..700cbff601 100644 --- a/Userland/Libraries/LibWeb/CSS/StyleSheet.idl +++ b/Userland/Libraries/LibWeb/CSS/StyleSheet.idl @@ -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; diff --git a/Userland/Libraries/LibWeb/HTML/HTMLStyleElement.cpp b/Userland/Libraries/LibWeb/HTML/HTMLStyleElement.cpp index e9472b6745..2b1d24c55f 100644 --- a/Userland/Libraries/LibWeb/HTML/HTMLStyleElement.cpp +++ b/Userland/Libraries/LibWeb/HTML/HTMLStyleElement.cpp @@ -74,7 +74,7 @@ static void add_a_css_style_sheet(DOM::Document& document, NonnullRefPtr 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 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());