Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
| 2 <script src="/js-test-resources/js-test.js"></script> | 2 <script src="/resources/testharness.js"></script> |
| 3 <script src='/resources/testharnessreport.js'></script> | |
| 3 <iframe id="target-iframe1" src="http://localhost:8080/misc/resources/cross-orig in-subframe-for-scrolling.html" style="height: 100px; width: 100px; overflow-y: scroll; position: absolute; left: 50px; top: 50px"></iframe> | 4 <iframe id="target-iframe1" src="http://localhost:8080/misc/resources/cross-orig in-subframe-for-scrolling.html" style="height: 100px; width: 100px; overflow-y: scroll; position: absolute; left: 50px; top: 50px"></iframe> |
| 4 <iframe id="target-iframe2" src="http://localhost:8080/misc/resources/cross-orig in-subframe-for-scrolling.html" style="height: 100px; width: 100px; overflow-y: scroll; position: absolute; left: 50px; top: 200px"></iframe> | 5 <iframe id="target-iframe2" src="http://localhost:8080/misc/resources/cross-orig in-subframe-for-scrolling.html" style="height: 100px; width: 100px; overflow-y: scroll; position: absolute; left: 50px; top: 200px"></iframe> |
| 5 | 6 |
| 6 <script> | 7 <script> |
| 7 description("Verify that two sibling cross-origin iframes both correctly scroll on MouseWheel events, as per https://crbug.com/675695."); | 8 var scroll_test = async_test("Verify that two sibling cross-origin iframes both correctly scroll on MouseWheel events, as per https://crbug.com/675695."); |
| 8 | 9 |
| 9 // States: | 10 // States: |
| 10 // 0 => Scroll sent to iframe1 | 11 // 0 => Scroll sent to iframe1 |
| 11 // 1 => Fetching scroll offset from iframe1 | 12 // 1 => Fetching scroll offset from iframe1 |
| 12 // 2 => Scroll sent to iframe2 | 13 // 2 => Scroll sent to iframe2 |
| 13 // 3 => Fetching scroll offset from iframe2 | 14 // 3 => Fetching scroll offset from iframe2 |
| 14 var state = 0; | 15 var state = 0; |
| 15 var iframe1 = document.getElementById("target-iframe1"); | 16 var iframe1 = document.getElementById("target-iframe1"); |
| 16 var iframe2 = document.getElementById("target-iframe2"); | 17 var iframe2 = document.getElementById("target-iframe2"); |
| 17 setPrintTestResultsLazily(); | |
| 18 self.jsTestIsAsync = true; | |
| 19 | 18 |
| 20 function handleMessage(event) { | 19 function handleMessage(event) { |
| 21 if (state == 0) { | 20 if (state == 0 && event.data.scrolled == 1) { |
|
bokan
2017/01/20 18:13:26
if state == 0 then event.data.scrolled must be 1,
kenrb
2017/01/20 19:21:34
Okay, I've simplified this quite a bit and removed
| |
| 22 iframe1.contentWindow.postMessage("", "*"); | 21 iframe1.contentWindow.postMessage("", "*"); |
| 23 state = 1; | 22 state = 1; |
| 24 } else if (state == 1) { | 23 } else if (state == 1 && event.data.hasOwnProperty("scrollTop")) { |
| 25 shouldBeEqualToNumber("event.data.scrollTop", 40); | 24 scroll_test.step(() => { assert_greater_than(event.data.scrollTop, 0, "ifram e1 scroll offset greater than 0")} ); |
| 26 state = 2; | 25 state = 2; |
| 27 iframe2.contentWindow.postMessage({scrollBy: -1, left: iframe2.offsetLeft, t op: iframe2.offsetTop}, "*"); | 26 iframe2.contentWindow.postMessage({scrollBy: -1, frame_id: 2, left: iframe2. offsetLeft, top: iframe2.offsetTop}, "*"); |
| 28 iframe2.contentWindow.postMessage("", "*"); | 27 iframe2.contentWindow.postMessage("", "*"); |
|
bokan
2017/01/20 18:13:26
Don't we need to wait until iframe2 gets the onscr
| |
| 29 } else if (state == 2) { | 28 } else if (state == 2 && event.data.scrolled == 2) { |
| 30 iframe1.contentWindow.postMessage("", "*"); | 29 iframe1.contentWindow.postMessage("", "*"); |
|
bokan
2017/01/20 18:13:26
This is the second time we're posting iframe1 with
| |
| 31 state = 3; | 30 state = 3; |
| 32 } else if (state == 3) { | 31 } else if (state == 3 && event.data.hasOwnProperty("scrollTop")) { |
| 33 shouldBeEqualToNumber("event.data.scrollTop", 40); | 32 scroll_test.step(() => { assert_greater_than(event.data.scrollTop, 0, "ifram e2 scroll offset greater than 0")} ); |
| 34 finishJSTest(); | 33 scroll_test.done(); |
| 35 } | 34 } |
| 36 } | 35 } |
| 37 | 36 |
| 38 window.addEventListener("message", handleMessage); | 37 window.addEventListener("message", handleMessage); |
| 39 | 38 |
| 40 iframe1.onload = (() => { | 39 iframe1.onload = (() => { |
| 41 iframe1.contentWindow.postMessage({scrollBy: -1, left: iframe1.offsetLeft, top : iframe1.offsetTop}, "*"); | 40 iframe1.contentWindow.postMessage({scrollBy: -1, frame_id: 1, left: iframe1.of fsetLeft, top: iframe1.offsetTop}, "*"); |
| 42 }); | 41 }); |
| 43 | 42 |
| 44 </script> | 43 </script> |
| OLD | NEW |