Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(94)

Unified Diff: LayoutTests/fast/media/media-query-list-listener-ordering.html

Issue 348893004: Rework MediaQueryMatcher to batch up listener notification (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: MediaQueryList constructor needs to call updateMatches to avoid "fake" transitions from "unknown st… Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: LayoutTests/fast/media/media-query-list-listener-ordering.html
diff --git a/LayoutTests/fast/media/media-query-list-listener-ordering.html b/LayoutTests/fast/media/media-query-list-listener-ordering.html
new file mode 100644
index 0000000000000000000000000000000000000000..0394116168f0fc33c51baa69ba019f221ef2f1f7
--- /dev/null
+++ b/LayoutTests/fast/media/media-query-list-listener-ordering.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<script src="../../resources/js-test.js"></script>
+
+<div id="sandbox"></div>
+
+<script>
+ description("Media query listeners should fire grouped by the MediaQueryList.");
+
+ var sandbox = document.getElementById("sandbox");
+ var iframe = document.createElement("iframe");
+ sandbox.appendChild(iframe);
+
+ var matchMedia = iframe.contentWindow.matchMedia;
+ var mediaList1 = matchMedia("(max-width: 100px)");
+ var mediaList2 = matchMedia("(max-width: 100px)");
+ var mediaList3 = matchMedia("(max-width: 100px)");
+
+ var listenersCalled = [];
+
+ function makeListener(label) {
+ return function() { listenersCalled.push(label); };
+ }
+
+ mediaList3.addListener(makeListener("mediaList3_1"));
+ mediaList2.addListener(makeListener("mediaList2_1"));
+ mediaList1.addListener(makeListener("mediaList1_1"));
+ mediaList2.addListener(makeListener("mediaList2_2"));
+
+ // FIXME: You shouldn't need to touch offsetTop to force these updates.
+
+ iframe.style.width = "200px";
+ iframe.offsetTop;
+
+ var expectedResult = ["mediaList1_1", "mediaList2_1", "mediaList2_2", "mediaList3_1"];
+ shouldBe("listenersCalled", "expectedResult");
+</script>

Powered by Google App Engine
This is Rietveld 408576698