Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> | |
|
bokan
2015/10/21 13:32:15
Please change the doctype on any of these tests to
ymalik
2015/10/21 15:14:08
Done.
| |
| 2 <script src="../../resources/js-test.js"></script> | |
| 3 <style> | |
| 4 #target { | |
| 5 width: 2000px; | |
| 6 height: 1500px; | |
| 7 } | |
| 8 </style> | |
| 9 <script language="JavaScript" type="text/javascript"> | |
| 10 var shouldTrigger; | |
|
bokan
2015/10/21 13:32:15
unused.
ymalik
2015/10/21 15:14:08
Done.
| |
| 11 if (window.testRunner && window.internals) { | |
| 12 window.jsTestIsAsync = true; | |
| 13 testRunner.dumpAsText(); | |
| 14 testRunner.waitUntilDone(); | |
| 15 setPrintTestResultsLazily(); | |
| 16 } | |
| 17 | |
| 18 description("This test ensures that scrolling the visual viewport doesn't\ | |
| 19 trigger an onscroll event."); | |
| 20 | |
| 21 function runTest() { | |
| 22 if (!window.testRunner || !window.internals) { | |
| 23 testFailed("This test requires test runner and inernals.") | |
| 24 finishJSTest(); | |
| 25 return; | |
| 26 } | |
| 27 | |
| 28 window.internals.setPageScaleFactor(2.0); | |
| 29 var target = document.getElementById('target'); | |
| 30 | |
| 31 // The first scroll should trigger onscroll because it scrolls the | |
| 32 // layout viewport. The second scroll should not trigger onscroll | |
| 33 // because it only scrolls the visual viewport. | |
| 34 var scrolls = [-10, 1]; | |
| 35 var numScrollsReceived = 0; | |
| 36 var numRAFCalls = 0; | |
| 37 | |
| 38 document.onscroll = function() { | |
| 39 if (numRAFCalls == 0) | |
| 40 return; | |
| 41 | |
| 42 ++numScrollsReceived; | |
| 43 debug('PASS OnScroll called for scroll #' + numScrollsReceived); | |
| 44 if (numScrollsReceived < scrolls.length) { | |
| 45 var scrollAmount = scrolls[numScrollsReceived]; | |
| 46 eventSender.mouseMoveTo(target.offsetLeft + 5, target.offsetTop + 5); | |
| 47 eventSender.mouseScrollBy(0, scrollAmount); | |
| 48 } else if (numScrollsReceived == scrolls.length) { | |
| 49 testFailed("Received visual viewport scroll event"); | |
| 50 finishJSTest(); | |
| 51 } else { | |
| 52 debug(''); | |
| 53 finishJSTest(); | |
| 54 } | |
| 55 } | |
| 56 | |
| 57 var failureSentinel = function() { | |
| 58 if (numRAFCalls == 0) { | |
| 59 eventSender.mouseMoveTo(target.offsetLeft + 5, target.offsetTop + 5); | |
| 60 eventSender.mouseScrollBy(0, scrolls[0]); | |
| 61 } else if (numRAFCalls == scrolls.length && numScrollsReceived < num RAFCalls) { | |
|
bokan
2015/10/21 13:32:15
I know I wrote this, but this is incredibly hard t
ymalik
2015/10/21 15:14:08
Done. Thanks for simplifying it.
| |
| 62 testPassed("Did not receive visual viewport scroll event"); | |
| 63 finishJSTest(); | |
| 64 } else if (numRAFCalls > numScrollsReceived) { | |
| 65 testFailed("Did not receive scroll event #" + (numScrollsReceive d+1)); | |
| 66 finishJSTest(); | |
| 67 } | |
| 68 ++numRAFCalls; | |
| 69 window.requestAnimationFrame(failureSentinel); | |
| 70 } | |
| 71 | |
| 72 window.requestAnimationFrame(failureSentinel); | |
| 73 } | |
| 74 | |
| 75 onload = runTest; | |
| 76 </script> | |
| 77 <div id="target"></div> | |
| OLD | NEW |