diff options
author | J. Ryan Stinnett <jryans@gmail.com> | 2017-04-11 16:00:37 +0800 |
---|---|---|
committer | J. Ryan Stinnett <jryans@gmail.com> | 2017-04-12 16:40:48 +0800 |
commit | 1a31b87c22adbd2b7a7350500e089fad3fa49453 (patch) | |
tree | ec991601022825c1534b2d7a265c735febfef067 /components/script/dom/htmlstyleelement.rs | |
parent | 1ae1d370f23d5b74902a1f7dc87421e516b5ac2e (diff) | |
download | servo-1a31b87c22adbd2b7a7350500e089fad3fa49453.tar.gz servo-1a31b87c22adbd2b7a7350500e089fad3fa49453.zip |
Pass ParserContext down to lengths
To make it possible to check the rule type when parsing lengths, we need to pass
the `ParserContext` down through many layers to the place where length units are
parsed.
This change leaves it unused, so it's only to prepare for the next change.
MozReview-Commit-ID: 70YwtcCxnWw
Diffstat (limited to 'components/script/dom/htmlstyleelement.rs')
-rw-r--r-- | components/script/dom/htmlstyleelement.rs | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/components/script/dom/htmlstyleelement.rs b/components/script/dom/htmlstyleelement.rs index c3ef5767f2b..fa0cdc92eab 100644 --- a/components/script/dom/htmlstyleelement.rs +++ b/components/script/dom/htmlstyleelement.rs @@ -25,7 +25,8 @@ use script_layout_interface::message::Msg; use std::cell::Cell; use std::sync::Arc; use style::media_queries::parse_media_query_list; -use style::stylesheets::{Stylesheet, Origin}; +use style::parser::ParserContext as CssParserContext; +use style::stylesheets::{CssRuleType, Stylesheet, Origin}; use stylesheet_loader::{StylesheetLoader, StylesheetOwner}; #[dom_struct] @@ -73,7 +74,6 @@ impl HTMLStyleElement { assert!(node.is_in_doc()); let win = window_from_node(node); - let url = win.get_url(); let mq_attribute = element.get_attribute(&ns!(), &local_name!("media")); let mq_str = match mq_attribute { @@ -82,10 +82,14 @@ 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 url = win.get_url(); + let context = CssParserContext::new_for_cssom(&url, + win.css_error_reporter(), + Some(CssRuleType::Media)); + let mq = parse_media_query_list(&context, &mut CssParser::new(&mq_str)); let shared_lock = node.owner_doc().style_shared_lock().clone(); let loader = StylesheetLoader::for_element(self.upcast()); - let sheet = Stylesheet::from_str(&data, url, Origin::Author, mq, + let sheet = Stylesheet::from_str(&data, win.get_url(), Origin::Author, mq, shared_lock, Some(&loader), win.css_error_reporter()); |