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/htmllinkelement.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/htmllinkelement.rs')
-rw-r--r-- | components/script/dom/htmllinkelement.rs | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/components/script/dom/htmllinkelement.rs b/components/script/dom/htmllinkelement.rs index d29a94a11f0..d22a24d2e17 100644 --- a/components/script/dom/htmllinkelement.rs +++ b/components/script/dom/htmllinkelement.rs @@ -32,8 +32,9 @@ use std::default::Default; use std::sync::Arc; use style::attr::AttrValue; use style::media_queries::parse_media_query_list; +use style::parser::ParserContext as CssParserContext; use style::str::HTML_SPACE_CHARACTERS; -use style::stylesheets::Stylesheet; +use style::stylesheets::{CssRuleType, Stylesheet}; use stylesheet_loader::{StylesheetLoader, StylesheetContextSource, StylesheetOwner}; unsafe_no_jsmanaged_fields!(Stylesheet); @@ -255,7 +256,7 @@ impl HTMLLinkElement { } // Step 2. - let url = match document.base_url().join(href) { + let link_url = match document.base_url().join(href) { Ok(url) => url, Err(e) => { debug!("Parsing url {} failed: {}", href, e); @@ -276,7 +277,10 @@ impl HTMLLinkElement { }; let mut css_parser = CssParser::new(&mq_str); - let media = parse_media_query_list(&mut css_parser); + let win = document.window(); + let doc_url = document.url(); + let context = CssParserContext::new_for_cssom(&doc_url, win.css_error_reporter(), Some(CssRuleType::Media)); + let media = parse_media_query_list(&context, &mut css_parser); let im_attribute = element.get_attribute(&ns!(), &local_name!("integrity")); let integrity_val = im_attribute.r().map(|a| a.value()); @@ -292,7 +296,7 @@ impl HTMLLinkElement { let loader = StylesheetLoader::for_element(self.upcast()); loader.load(StylesheetContextSource::LinkElement { media: Some(media), - }, url, cors_setting, integrity_metadata.to_owned()); + }, link_url, cors_setting, integrity_metadata.to_owned()); } fn handle_favicon_url(&self, rel: &str, href: &str, sizes: &Option<String>) { |