blob: bf95725e427bbb806d09d513b1ebb1bc764b9ec1 [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<script src="../../resources/js-test-pre.js"></script>
<script>
var fixedDiv;
var target;
if (window.testRunner) {
description("This tests makes sure that hit tests are not processed while laying out the page.");
testRunner.waitUntilDone();
}
function triggerHitTest() {
var spanRects = target.getClientRects();
if (spanRects.count > 1) {
document.body.innerHTML += "<br/>ERROR: More than one rect for hit word."
testRunner.notifyDone();
return;
}
var rect = spanRects[0];
var x = rect.left + rect.width / 2;
var y = rect.top + rect.height / 2;
// This internal test call is used because it is guaranteed to trigger
// a recursive hit test. Dictionary lookup itself is not required for this test.
var lookupRange = internals.rangeForDictionaryLookupAtLocation(x, y);
document.body.innerHTML += "<br/>This test passes if it did not crash.";
testRunner.notifyDone();
}
function runTest() {
fixedDiv = fixedFrame.contentDocument.getElementById('fixedDiv');
target = document.getElementById('target');
setTimeout(function() {
fixedDiv.style.position = "relative";
triggerHitTest();
}, 0);
}
</script>
</head>
<body onload="runTest()">
<div>
<iframe id="fixedFrame" src='data:text/html,
<div id="fixedDiv" style="position:fixed; left:10px; top:10px">Fixed Frame.</div>'>
</iframe>
<iframe id="target" src='data:text/html,<div>Second Frame.</div>'></iframe>
<iframe src='data:text/html,<div>Third Frame.</div>'></iframe>
</div>
<script src="../../resources/js-test-post.js"></script>
</body>
</html>