aboutsummaryrefslogtreecommitdiffstats
path: root/components/style/servo/media_queries.rs
diff options
context:
space:
mode:
authorEmilio Cobos Álvarez <emilio@crisal.io>2017-11-06 13:47:46 +0100
committerEmilio Cobos Álvarez <emilio@crisal.io>2017-11-06 16:36:41 +0100
commit3fa75bbdf6eec7b2f81ae62f60035f4a7c3676e9 (patch)
treee09f3043a7b4bfb7f0908578c1b81a84b2ed8281 /components/style/servo/media_queries.rs
parent001c50bccad658b71a65ddc680d17639c2af3fdf (diff)
downloadservo-3fa75bbdf6eec7b2f81ae62f60035f4a7c3676e9.tar.gz
servo-3fa75bbdf6eec7b2f81ae62f60035f4a7c3676e9.zip
style: Introduce SourceSizeList.
MozReview-Commit-ID: 9QMF45VcBFB
Diffstat (limited to 'components/style/servo/media_queries.rs')
-rw-r--r--components/style/servo/media_queries.rs36
1 files changed, 8 insertions, 28 deletions
diff --git a/components/style/servo/media_queries.rs b/components/style/servo/media_queries.rs
index ecdbf4aa9b3..e5c57b4d703 100644
--- a/components/style/servo/media_queries.rs
+++ b/components/style/servo/media_queries.rs
@@ -8,14 +8,11 @@ use app_units::Au;
use context::QuirksMode;
use cssparser::{Parser, RGBA};
use euclid::{ScaleFactor, Size2D, TypedSize2D};
-use font_metrics::ServoMetricsProvider;
use media_queries::MediaType;
use parser::ParserContext;
-use properties::{ComputedValues, StyleBuilder};
+use properties::ComputedValues;
use properties::longhands::font_size;
-use rule_cache::RuleCacheConditions;
use selectors::parser::SelectorParseErrorKind;
-use std::cell::RefCell;
use std::fmt;
use std::sync::atomic::{AtomicBool, AtomicIsize, Ordering};
use style_traits::{CSSPixel, DevicePixel, ToCss, ParseError};
@@ -252,29 +249,12 @@ pub enum Range<T> {
impl Range<specified::Length> {
fn to_computed_range(&self, device: &Device, quirks_mode: QuirksMode) -> Range<Au> {
- let default_values = device.default_computed_values();
- let mut conditions = RuleCacheConditions::default();
- // http://dev.w3.org/csswg/mediaqueries3/#units
- // em units are relative to the initial font-size.
- let context = computed::Context {
- is_root_element: false,
- builder: StyleBuilder::for_derived_style(device, default_values, None, None),
- // Servo doesn't support font metrics
- // A real provider will be needed here once we do; since
- // ch units can exist in media queries.
- font_metrics_provider: &ServoMetricsProvider,
- in_media_query: true,
- cached_system_font: None,
- quirks_mode,
- for_smil_animation: false,
- for_non_inherited_property: None,
- rule_cache_conditions: RefCell::new(&mut conditions),
- };
-
- match *self {
- Range::Min(ref width) => Range::Min(Au::from(width.to_computed_value(&context))),
- Range::Max(ref width) => Range::Max(Au::from(width.to_computed_value(&context))),
- Range::Eq(ref width) => Range::Eq(Au::from(width.to_computed_value(&context)))
- }
+ computed::Context::for_media_query_evaluation(device, quirks_mode, |context| {
+ match *self {
+ Range::Min(ref width) => Range::Min(Au::from(width.to_computed_value(&context))),
+ Range::Max(ref width) => Range::Max(Au::from(width.to_computed_value(&context))),
+ Range::Eq(ref width) => Range::Eq(Au::from(width.to_computed_value(&context)))
+ }
+ })
}
}