| <!DOCTYPE html> |
| <html> |
| <head> |
| <script src="../../resources/js-test-pre.js"></script> |
| <script src="../../resources/ui-helper.js"></script> |
| </head> |
| <body> |
| <script> |
| window.jsTestIsAsync = true; |
| |
| function checkForScroll() |
| { |
| // The first-level iframe should have scrolled. |
| let testFrame = document.getElementById('target'); |
| var frameScrollPosition = testFrame.contentDocument.scrollingElement.scrollTop; |
| |
| if (!frameScrollPosition) |
| testFailed("Outer frame did not scroll."); |
| else |
| testPassed("Outer frame scrolled."); |
| |
| finishJSTest(); |
| } |
| |
| async function scrollTest() |
| { |
| // Send a scroll while over the inner iframe. |
| const startPosX = 150; |
| const startPosY = 150; |
| |
| const events = [ |
| { |
| type : "wheel", |
| viewX : startPosX, |
| viewY : startPosY, |
| deltaY : -10, |
| phase : "began" |
| }, |
| { |
| type : "wheel", |
| deltaY : -10, |
| phase : "changed" |
| }, |
| { |
| type : "wheel", |
| deltaY : -10, |
| phase : "changed" |
| }, |
| { |
| type : "wheel", |
| phase : "ended" |
| }, |
| { |
| type : "wheel", |
| deltaY : -10, |
| momentumPhase : "began" |
| }, |
| { |
| type : "wheel", |
| deltaY : -100, |
| momentumPhase : "changed" |
| }, |
| { |
| type : "wheel", |
| momentumPhase : "ended" |
| } |
| ]; |
| |
| await UIHelper.mouseWheelSequence({ events: events }); |
| checkForScroll(); |
| } |
| |
| function setupTopLevel() |
| { |
| if (window.eventSender) { |
| setTimeout(scrollTest, 0); |
| return; |
| } |
| } |
| </script> |
| <iframe id="target" scrolling="yes" style="height: 400px; width: 500px;" |
| srcdoc= " |
| <style>body { height: 1000px; }</style> |
| <p>This frame is scrollable.</p> |
| |
| <iframe scrolling='no' height=200 width=350 srcdoc=' |
| <style>body { height: 1000px; }</style> |
| <p>This frame is not scrollable.</p> |
| '> |
| " |
| onload="setupTopLevel();" |
| > |
| </iframe> |
| <div id="console"></div> |
| <script> |
| description("Tests that an inner frame with scrolling=no doesn't prevent scrolling a parent frame"); |
| </script> |
| <script src="../../resources/js-test-post.js"></script> |
| </body> |
| </html> |