diff options
author | Emilio Cobos Álvarez <emilio@crisal.io> | 2016-12-16 12:18:16 +0100 |
---|---|---|
committer | Emilio Cobos Álvarez <emilio@crisal.io> | 2016-12-16 16:57:20 +0100 |
commit | 7582a2d59d244c8c202a65e873cc727576c0a48f (patch) | |
tree | 8c68a7e7b848dd45137e59f777991c7d7dccc93b /components/script/dom/htmlstyleelement.rs | |
parent | 21bf91c38676900fa2f1ef5a67ac05507466abfb (diff) | |
download | servo-7582a2d59d244c8c202a65e873cc727576c0a48f.tar.gz servo-7582a2d59d244c8c202a65e873cc727576c0a48f.zip |
script: Move the stylesheet loading code from htmllinkelement to stylesheet_loader. Make it track subresource loads properly.
Diffstat (limited to 'components/script/dom/htmlstyleelement.rs')
-rw-r--r-- | components/script/dom/htmlstyleelement.rs | 11 |
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); |