diff options
Diffstat (limited to 'components/script/dom')
-rw-r--r-- | components/script/dom/cssrulelist.rs | 18 | ||||
-rw-r--r-- | components/script/dom/htmlmetaelement.rs | 3 | ||||
-rw-r--r-- | components/script/dom/htmlstyleelement.rs | 3 | ||||
-rw-r--r-- | components/script/dom/medialist.rs | 2 |
4 files changed, 13 insertions, 13 deletions
diff --git a/components/script/dom/cssrulelist.rs b/components/script/dom/cssrulelist.rs index 4587659dfec..67eac2beda2 100644 --- a/components/script/dom/cssrulelist.rs +++ b/components/script/dom/cssrulelist.rs @@ -15,7 +15,7 @@ use dom::window::Window; use dom_struct::dom_struct; use std::sync::Arc; use style::shared_lock::Locked; -use style::stylesheets::{CssRules, KeyframesRule, RulesMutateError}; +use style::stylesheets::{CssRules, CssRulesHelpers, KeyframesRule, RulesMutateError}; #[allow(unsafe_code)] unsafe_no_jsmanaged_fields!(RulesSource); @@ -90,15 +90,13 @@ impl CSSRuleList { let index = idx as usize; let parent_stylesheet = self.parent_stylesheet.style_stylesheet(); - let new_rule = { - let mut guard = parent_stylesheet.shared_lock.write(); - // FIXME We should probably pass in a proper StylesheetLoader. - // See servo/servo#16240 - css_rules.write_with(&mut guard).insert_rule(rule, parent_stylesheet, - index, nested, None)? - // Drop `guard` here, - // CSSRule::new_specific re-acquires the lock for @support and @media. - }; + let new_rule = + css_rules.insert_rule(&parent_stylesheet.shared_lock, + rule, + parent_stylesheet, + index, + nested, + None)?; let parent_stylesheet = &*self.parent_stylesheet; let dom_rule = CSSRule::new_specific(&window, parent_stylesheet, new_rule); diff --git a/components/script/dom/htmlmetaelement.rs b/components/script/dom/htmlmetaelement.rs index 8613f4c8cb0..3c4e817a132 100644 --- a/components/script/dom/htmlmetaelement.rs +++ b/components/script/dom/htmlmetaelement.rs @@ -24,6 +24,7 @@ use std::ascii::AsciiExt; use std::sync::Arc; use std::sync::atomic::AtomicBool; use style::attr::AttrValue; +use style::media_queries::MediaList; use style::str::HTML_SPACE_CHARACTERS; use style::stylesheets::{Stylesheet, CssRule, CssRules, Origin}; use style::viewport::ViewportRule; @@ -107,7 +108,7 @@ impl HTMLMetaElement { shared_lock: shared_lock.clone(), url_data: window_from_node(self).get_url(), namespaces: Default::default(), - media: Arc::new(shared_lock.wrap(Default::default())), + media: Arc::new(shared_lock.wrap(MediaList::empty())), // Viewport constraints are always recomputed on resize; they don't need to // force all styles to be recomputed. dirty_on_viewport_size_change: AtomicBool::new(false), diff --git a/components/script/dom/htmlstyleelement.rs b/components/script/dom/htmlstyleelement.rs index fa0cdc92eab..098229d7e72 100644 --- a/components/script/dom/htmlstyleelement.rs +++ b/components/script/dom/htmlstyleelement.rs @@ -86,8 +86,9 @@ impl HTMLStyleElement { 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 mq = Arc::new(shared_lock.wrap( + parse_media_query_list(&context, &mut CssParser::new(&mq_str)))); let loader = StylesheetLoader::for_element(self.upcast()); let sheet = Stylesheet::from_str(&data, win.get_url(), Origin::Author, mq, shared_lock, Some(&loader), diff --git a/components/script/dom/medialist.rs b/components/script/dom/medialist.rs index 54604fbd443..da10d5d2a14 100644 --- a/components/script/dom/medialist.rs +++ b/components/script/dom/medialist.rs @@ -67,7 +67,7 @@ impl MediaListMethods for MediaList { // Step 2 if value.is_empty() { // Step 1 - *media_queries = StyleMediaList::default(); + *media_queries = StyleMediaList::empty(); return; } // Step 3 |