blob: f6be1c96814894831feb2b3cf455e48cebc7f7fc [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<script src="../../resources/js-test-pre.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();
}
function scrollTest()
{
// Send a scroll while over the inner iframe.
var startPosX = 150;
var startPosY = 150;
eventSender.monitorWheelEvents();
eventSender.mouseMoveTo(startPosX, startPosY);
eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'began', 'none');
eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'changed', 'none');
eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'changed', 'none');
eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'ended', 'none');
eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'begin');
eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'none', 'end');
eventSender.callAfterScrollingCompletes(checkForScroll);
}
function setupTopLevel()
{
if (window.eventSender)
setTimeout(scrollTest, 0);
setTimeout(checkForScroll, 1000);
}
</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>