From c1eb6ae2952d7118699dc05fc595d1cc7de989f1 Mon Sep 17 00:00:00 2001 From: Rohit Burra Date: Mon, 12 Dec 2016 23:09:07 +0530 Subject: [PATCH 1/2] Adds test for checking media queries in stylesheets --- tests/wpt/mozilla/meta/MANIFEST.json | 6 ++++++ .../css/stylesheet_media_queries.html.ini | 4 ++++ .../tests/css/iframe_for_media_queries.html | 17 +++++++++++++++ .../tests/css/stylesheet_media_queries.html | 21 +++++++++++++++++++ 4 files changed, 48 insertions(+) create mode 100644 tests/wpt/mozilla/meta/css/stylesheet_media_queries.html.ini create mode 100644 tests/wpt/mozilla/tests/css/iframe_for_media_queries.html create mode 100644 tests/wpt/mozilla/tests/css/stylesheet_media_queries.html diff --git a/tests/wpt/mozilla/meta/MANIFEST.json b/tests/wpt/mozilla/meta/MANIFEST.json index 50a3787a9ce..f3d825d226c 100644 --- a/tests/wpt/mozilla/meta/MANIFEST.json +++ b/tests/wpt/mozilla/meta/MANIFEST.json @@ -6788,6 +6788,12 @@ "url": "/_mozilla/css/offset_properties_inline.html" } ], + "css/stylesheet_media_queries.html": [ + { + "path": "css/stylesheet_media_queries.html", + "url": "/_mozilla/css/stylesheet_media_queries.html" + } + ], "css/test_font_family_parsing.html": [ { "path": "css/test_font_family_parsing.html", diff --git a/tests/wpt/mozilla/meta/css/stylesheet_media_queries.html.ini b/tests/wpt/mozilla/meta/css/stylesheet_media_queries.html.ini new file mode 100644 index 00000000000..04f59b1c1a8 --- /dev/null +++ b/tests/wpt/mozilla/meta/css/stylesheet_media_queries.html.ini @@ -0,0 +1,4 @@ +[stylesheet_media_queries.html.ini] + type: testharness + expected: FAIL + bug: https://github.com/servo/servo/issues/14719 diff --git a/tests/wpt/mozilla/tests/css/iframe_for_media_queries.html b/tests/wpt/mozilla/tests/css/iframe_for_media_queries.html new file mode 100644 index 00000000000..b42f932e07c --- /dev/null +++ b/tests/wpt/mozilla/tests/css/iframe_for_media_queries.html @@ -0,0 +1,17 @@ + + + + + + +

Header

+ + diff --git a/tests/wpt/mozilla/tests/css/stylesheet_media_queries.html b/tests/wpt/mozilla/tests/css/stylesheet_media_queries.html new file mode 100644 index 00000000000..49956367a16 --- /dev/null +++ b/tests/wpt/mozilla/tests/css/stylesheet_media_queries.html @@ -0,0 +1,21 @@ + + +CSS Test: Media query correctly forces style invalidation + + + + From 325271ec83fbe1cbb28a7f5bf1b9649674dd78a5 Mon Sep 17 00:00:00 2001 From: Rohit Burra Date: Mon, 12 Dec 2016 23:10:43 +0530 Subject: [PATCH 2/2] Changes Stylist::set_device to check for mediaqueries in Stylesheets --- components/style/stylist.rs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/components/style/stylist.rs b/components/style/stylist.rs index 1f7c3cb913b..ab2a9fc14fe 100644 --- a/components/style/stylist.rs +++ b/components/style/stylist.rs @@ -458,6 +458,11 @@ impl Stylist { false } self.is_device_dirty |= stylesheets.iter().any(|stylesheet| { + let mq = stylesheet.media.read(); + if mq.evaluate(&self.device) != mq.evaluate(&device) { + return true + } + mq_eval_changed(&stylesheet.rules.read().0, &self.device, &device) });