diff options
Diffstat (limited to 'components/layout')
-rw-r--r-- | components/layout/layout_task.rs | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/components/layout/layout_task.rs b/components/layout/layout_task.rs index 3535b8137df..ee77270e62b 100644 --- a/components/layout/layout_task.rs +++ b/components/layout/layout_task.rs @@ -78,8 +78,9 @@ use style::media_queries::{Device, MediaQueryList, MediaType}; use style::properties::longhands::{display, position}; use style::properties::style_structs; use style::selector_matching::Stylist; -use style::stylesheets::{CSSRuleIteratorExt, Origin, Stylesheet}; +use style::stylesheets::{CSSRule, CSSRuleIteratorExt, Origin, Stylesheet}; use style::values::AuExtensionMethods; +use style::viewport::ViewportRule; use url::Url; use util::geometry::{MAX_RECT, ZERO_POINT}; use util::ipc::OptionalIpcSender; @@ -618,6 +619,9 @@ impl LayoutTask { possibly_locked_rw_data) } Msg::SetQuirksMode => self.handle_set_quirks_mode(possibly_locked_rw_data), + Msg::AddMetaViewport(translated_rule) => { + self.handle_add_meta_viewport(translated_rule, possibly_locked_rw_data) + } Msg::GetRPC(response_chan) => { response_chan.send(box LayoutRPCImpl(self.rw_data.clone()) as Box<LayoutRPC + Send>).unwrap(); @@ -823,6 +827,19 @@ impl LayoutTask { LayoutTask::return_rw_data(possibly_locked_rw_data, rw_data); } + fn handle_add_meta_viewport<'a>(&'a self, + translated_rule: ViewportRule, + possibly_locked_rw_data: + &mut Option<MutexGuard<'a, LayoutTaskData>>) + { + let mut rw_data = self.lock_rw_data(possibly_locked_rw_data); + rw_data.stylist.add_stylesheet(Stylesheet { + rules: vec![CSSRule::Viewport(translated_rule)], + origin: Origin::Author + }); + LayoutTask::return_rw_data(possibly_locked_rw_data, rw_data); + } + /// Sets quirks mode for the document, causing the quirks mode stylesheet to be loaded. fn handle_set_quirks_mode<'a>(&'a self, possibly_locked_rw_data: @@ -1657,4 +1674,3 @@ fn get_root_flow_background_color(flow: &mut Flow) -> AzColor { .resolve_color(kid_block_flow.fragment.style.get_background().background_color) .to_gfx_color() } - |