aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/htmlstyleelement.rs
diff options
context:
space:
mode:
Diffstat (limited to 'components/script/dom/htmlstyleelement.rs')
-rw-r--r--components/script/dom/htmlstyleelement.rs11
1 files changed, 10 insertions, 1 deletions
diff --git a/components/script/dom/htmlstyleelement.rs b/components/script/dom/htmlstyleelement.rs
index 5dbbd338199..4cf0575ed3d 100644
--- a/components/script/dom/htmlstyleelement.rs
+++ b/components/script/dom/htmlstyleelement.rs
@@ -102,10 +102,19 @@ impl HTMLStyleElement {
let data = node.GetTextContent().expect("Element.textContent must be a string");
let mq = parse_media_query_list(&mut CssParser::new(&mq_str));
- let sheet = Stylesheet::from_str(&data, url, Origin::Author, mq, win.css_error_reporter(),
+ let loader = StylesheetLoader::for_element(self.upcast());
+ let sheet = Stylesheet::from_str(&data, url, Origin::Author, mq,
+ Some(&loader),
+ win.css_error_reporter(),
ParserContextExtraData::default());
+
let sheet = Arc::new(sheet);
+ // No subresource loads were triggered, just fire the load event now.
+ if self.pending_loads.get() == 0 {
+ self.upcast::<EventTarget>().fire_event(atom!("load"));
+ }
+
win.layout_chan().send(Msg::AddStylesheet(sheet.clone())).unwrap();
*self.stylesheet.borrow_mut() = Some(sheet);
let doc = document_from_node(self);