Fix Servo build.

This commit is contained in:
Emilio Cobos Álvarez 2018-06-18 19:32:59 +02:00
parent d9d9fed7d5
commit 083857a4b0
No known key found for this signature in database
GPG key ID: 056B727BB9C1027C
7 changed files with 56 additions and 25 deletions

View file

@ -16,7 +16,7 @@ use dom::medialist::MediaList;
use dom::window::Window;
use dom_struct::dom_struct;
use servo_arc::Arc;
use style::media_queries::parse_media_query_list;
use style::media_queries::MediaList as StyleMediaList;
use style::parser::ParserContext;
use style::shared_lock::{Locked, ToCssWithGuard};
use style::stylesheets::{CssRuleType, MediaRule};
@ -79,8 +79,11 @@ impl CSSMediaRule {
ParsingMode::DEFAULT,
quirks_mode);
let new_medialist = parse_media_query_list(&context, &mut input,
window.css_error_reporter());
let new_medialist = StyleMediaList::parse(
&context,
&mut input,
window.css_error_reporter(),
);
let mut guard = self.cssconditionrule.shared_lock().write();
// Clone an Arc because we cant borrow `guard` twice at the same time.

View file

@ -29,7 +29,7 @@ use std::borrow::ToOwned;
use std::cell::Cell;
use std::default::Default;
use style::attr::AttrValue;
use style::media_queries::parse_media_query_list;
use style::media_queries::MediaList;
use style::parser::ParserContext as CssParserContext;
use style::str::HTML_SPACE_CHARACTERS;
use style::stylesheets::{CssRuleType, Stylesheet};
@ -277,12 +277,21 @@ impl HTMLLinkElement {
let mut input = ParserInput::new(&mq_str);
let mut css_parser = CssParser::new(&mut input);
let doc_url = document.url();
let context = CssParserContext::new_for_cssom(&doc_url, Some(CssRuleType::Media),
ParsingMode::DEFAULT,
document.quirks_mode());
// FIXME(emilio): This looks somewhat fishy, since we use the context
// only to parse the media query list, CssRuleType::Media doesn't make
// much sense.
let context = CssParserContext::new_for_cssom(
&doc_url,
Some(CssRuleType::Media),
ParsingMode::DEFAULT,
document.quirks_mode(),
);
let window = document.window();
let media = parse_media_query_list(&context, &mut css_parser,
window.css_error_reporter());
let media = MediaList::parse(
&context,
&mut css_parser,
window.css_error_reporter(),
);
let im_attribute = element.get_attribute(&ns!(), &local_name!("integrity"));
let integrity_val = im_attribute.r().map(|a| a.value());

View file

@ -21,7 +21,7 @@ use html5ever::{LocalName, Prefix};
use net_traits::ReferrerPolicy;
use servo_arc::Arc;
use std::cell::Cell;
use style::media_queries::parse_media_query_list;
use style::media_queries::MediaList;
use style::parser::ParserContext as CssParserContext;
use style::stylesheets::{CssRuleType, Stylesheet, Origin};
use style_traits::ParsingMode;
@ -91,9 +91,11 @@ impl HTMLStyleElement {
let shared_lock = node.owner_doc().style_shared_lock().clone();
let mut input = ParserInput::new(&mq_str);
let css_error_reporter = window.css_error_reporter();
let mq = Arc::new(shared_lock.wrap(parse_media_query_list(&context,
&mut CssParser::new(&mut input),
css_error_reporter)));
let mq = Arc::new(shared_lock.wrap(MediaList::parse(
&context,
&mut CssParser::new(&mut input),
css_error_reporter),
));
let loader = StylesheetLoader::for_element(self.upcast());
let sheet = Stylesheet::from_str(&data, window.get_url(),
Origin::Author, mq,

View file

@ -13,8 +13,8 @@ use dom::cssstylesheet::CSSStyleSheet;
use dom::window::Window;
use dom_struct::dom_struct;
use servo_arc::Arc;
use style::media_queries::{MediaQuery, parse_media_query_list};
use style::media_queries::MediaList as StyleMediaList;
use style::media_queries::MediaQuery;
use style::parser::ParserContext;
use style::shared_lock::{SharedRwLock, Locked};
use style::stylesheets::CssRuleType;
@ -80,8 +80,11 @@ impl MediaListMethods for MediaList {
let context = ParserContext::new_for_cssom(&url, Some(CssRuleType::Media),
ParsingMode::DEFAULT,
quirks_mode);
*media_queries = parse_media_query_list(&context, &mut parser,
window.css_error_reporter());
*media_queries = StyleMediaList::parse(
&context,
&mut parser,
window.css_error_reporter(),
);
}
// https://drafts.csswg.org/cssom/#dom-medialist-length

View file

@ -1020,8 +1020,11 @@ impl WindowMethods for Window {
let context = CssParserContext::new_for_cssom(&url, Some(CssRuleType::Media),
ParsingMode::DEFAULT,
quirks_mode);
let media_query_list = media_queries::parse_media_query_list(&context, &mut parser,
self.css_error_reporter());
let media_query_list = media_queries::MediaList::parse(
&context,
&mut parser,
self.css_error_reporter(),
);
let document = self.Document();
let mql = MediaQueryList::new(&document, media_query_list);
self.media_query_lists.push(&*mql);