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

Side by Side Diff: third_party/WebKit/LayoutTests/http/tests/misc/scroll-cross-origin-iframes.html

Issue 2642723009: Improve cross-origin-subframe-for-scrolling layout test (Closed)
Patch Set: Created 3 years, 11 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 unified diff | Download patch
OLDNEW
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>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698