mirror of
https://github.com/servo/servo.git
synced 2025-06-06 16:45:39 +00:00
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
This commit is contained in:
parent
1ae1d370f2
commit
1a31b87c22
31 changed files with 304 additions and 251 deletions
|
@ -7,7 +7,7 @@ use cssparser::Parser;
|
|||
use dom::bindings::codegen::Bindings::MediaListBinding;
|
||||
use dom::bindings::codegen::Bindings::MediaListBinding::MediaListMethods;
|
||||
use dom::bindings::js::{JS, Root};
|
||||
use dom::bindings::reflector::{Reflector, reflect_dom_object};
|
||||
use dom::bindings::reflector::{DomObject, Reflector, reflect_dom_object};
|
||||
use dom::bindings::str::DOMString;
|
||||
use dom::cssstylesheet::CSSStyleSheet;
|
||||
use dom::window::Window;
|
||||
|
@ -15,7 +15,9 @@ use dom_struct::dom_struct;
|
|||
use std::sync::Arc;
|
||||
use style::media_queries::{MediaQuery, parse_media_query_list};
|
||||
use style::media_queries::MediaList as StyleMediaList;
|
||||
use style::parser::ParserContext;
|
||||
use style::shared_lock::{SharedRwLock, Locked};
|
||||
use style::stylesheets::CssRuleType;
|
||||
use style_traits::ToCss;
|
||||
|
||||
#[dom_struct]
|
||||
|
@ -70,7 +72,11 @@ impl MediaListMethods for MediaList {
|
|||
}
|
||||
// Step 3
|
||||
let mut parser = Parser::new(&value);
|
||||
*media_queries = parse_media_query_list(&mut parser);
|
||||
let global = self.global();
|
||||
let win = global.as_window();
|
||||
let url = win.get_url();
|
||||
let context = ParserContext::new_for_cssom(&url, win.css_error_reporter(), Some(CssRuleType::Media));
|
||||
*media_queries = parse_media_query_list(&context, &mut parser);
|
||||
}
|
||||
|
||||
// https://drafts.csswg.org/cssom/#dom-medialist-length
|
||||
|
@ -99,7 +105,11 @@ impl MediaListMethods for MediaList {
|
|||
fn AppendMedium(&self, medium: DOMString) {
|
||||
// Step 1
|
||||
let mut parser = Parser::new(&medium);
|
||||
let m = MediaQuery::parse(&mut parser);
|
||||
let global = self.global();
|
||||
let win = global.as_window();
|
||||
let url = win.get_url();
|
||||
let context = ParserContext::new_for_cssom(&url, win.css_error_reporter(), Some(CssRuleType::Media));
|
||||
let m = MediaQuery::parse(&context, &mut parser);
|
||||
// Step 2
|
||||
if let Err(_) = m {
|
||||
return;
|
||||
|
@ -120,7 +130,11 @@ impl MediaListMethods for MediaList {
|
|||
fn DeleteMedium(&self, medium: DOMString) {
|
||||
// Step 1
|
||||
let mut parser = Parser::new(&medium);
|
||||
let m = MediaQuery::parse(&mut parser);
|
||||
let global = self.global();
|
||||
let win = global.as_window();
|
||||
let url = win.get_url();
|
||||
let context = ParserContext::new_for_cssom(&url, win.css_error_reporter(), Some(CssRuleType::Media));
|
||||
let m = MediaQuery::parse(&context, &mut parser);
|
||||
// Step 2
|
||||
if let Err(_) = m {
|
||||
return;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue