| OLD | NEW |
| 1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
| 2 <script src="../../resources/js-test.js"></script> | 2 <script src="../../resources/js-test.js"></script> |
| 3 | 3 |
| 4 <div id="sandbox"></div> | 4 <div id="sandbox"></div> |
| 5 | 5 |
| 6 <script> | 6 <script> |
| 7 description("Media query listeners should fire grouped by the MediaQueryList
."); | 7 description("Media query listeners should work even after gc."); |
| 8 var jsTestIsAsync = true; | 8 var jsTestIsAsync = true; |
| 9 | 9 |
| 10 var sandbox = document.getElementById("sandbox"); | 10 var sandbox = document.getElementById("sandbox"); |
| 11 var iframe = document.createElement("iframe"); | 11 var iframe = document.createElement("iframe"); |
| 12 sandbox.appendChild(iframe); | 12 sandbox.appendChild(iframe); |
| 13 | 13 |
| 14 var matchMedia = iframe.contentWindow.matchMedia; | 14 var matchMedia = iframe.contentWindow.matchMedia; |
| 15 var mediaList1 = matchMedia("(max-width: 100px)"); | 15 var mediaList1 = matchMedia("(max-width: 100px)"); |
| 16 var mediaList2 = matchMedia("(max-width: 100px)"); | |
| 17 var mediaList3 = matchMedia("(max-width: 100px)"); | |
| 18 | 16 |
| 19 var listenersCalled = []; | 17 var listenersCalled = []; |
| 20 | 18 |
| 21 function makeListener(label) { | 19 function makeListener(label) { |
| 22 return function() { listenersCalled.push(label); }; | 20 return function() { listenersCalled.push(label); }; |
| 23 } | 21 } |
| 24 | 22 |
| 25 mediaList3.addListener(makeListener("mediaList3_1")); | |
| 26 mediaList2.addListener(makeListener("mediaList2_1")); | |
| 27 mediaList1.addListener(makeListener("mediaList1_1")); | 23 mediaList1.addListener(makeListener("mediaList1_1")); |
| 28 mediaList2.addListener(makeListener("mediaList2_2")); | 24 mediaList1.addListener(verifyResult); |
| 29 mediaList3.addListener(verifyResult); | 25 mediaList1 = null; |
| 30 | 26 gc(); |
| 31 iframe.style.width = "200px"; | 27 iframe.style.width = "200px"; |
| 32 | 28 |
| 33 var expectedResult = ["mediaList1_1", "mediaList2_1", "mediaList2_2", "media
List3_1"]; | 29 var expectedResult = ["mediaList1_1"]; |
| 34 function verifyResult() { | 30 function verifyResult() { |
| 35 shouldBe("listenersCalled", "expectedResult"); | 31 shouldBe("listenersCalled", "expectedResult"); |
| 36 finishJSTest(); | 32 finishJSTest(); |
| 37 } | 33 } |
| 38 </script> | 34 </script> |
| 35 |
| OLD | NEW |