Bug 1331213: Implement Device::media_type, without supporting overrides for now. r?heycam
MozReview-Commit-ID: 9AeHViwoX1t
Signed-off-by: Emilio Cobos Álvarez <emilio@crisal.io>
--- a/servo/components/style/gecko/media_queries.rs
+++ b/servo/components/style/gecko/media_queries.rs
@@ -71,18 +71,27 @@ impl Device {
pub fn reset(&mut self) {
// NB: A following stylesheet flush will populate this if appropriate.
self.viewport_override = None;
self.default_values = ComputedValues::default_values(unsafe { &*self.pres_context });
}
/// Returns the current media type of the device.
pub fn media_type(&self) -> MediaType {
- // TODO
- MediaType::Screen
+ unsafe {
+ // FIXME(emilio): Gecko allows emulating random media with
+ // mIsEmulatingMedia / mMediaEmulated . Refactor both sides so that
+ // is supported (probably just making MediaType an Atom).
+ if (*self.pres_context).mMedium == atom!("screen").as_ptr() {
+ MediaType::Screen
+ } else {
+ debug_assert!((*self.pres_context).mMedium == atom!("print").as_ptr());
+ MediaType::Print
+ }
+ }
}
/// Returns the current viewport size in app units.
pub fn au_viewport_size(&self) -> Size2D<Au> {
self.viewport_override.as_ref().map(|v| {
Size2D::new(Au::from_f32_px(v.size.width),
Au::from_f32_px(v.size.height))
}).unwrap_or_else(|| {