blob: 262efcc7c9e92a5d5dccac166c8735e2491d839d [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<style>
body {
width: 2000px;
height: 3000px;
}
.box {
height: 100px;
width: 100px;
background-color: blue;
pointer-events: none;
}
#client {
position: fixed;
background-color: red;
width: 28px;
height: 28px;
}
#clientrects {
position: absolute;
background-color: green;
width: 25px;
height: 25px;
}
#clientscroll {
position: absolute;
background-color: orange;
width: 22px;
height: 22px;
}
#page {
position: absolute;
background-color: blue;
width: 16px;
height: 16px;
}
</style>
<script src="../../resources/ui-helper.js"></script>
<script>
if (window.testRunner)
testRunner.waitUntilDone();
function getUIScript()
{
return `(function() {
uiController.zoomToScale(2, function() {
uiController.uiScriptComplete();
});
})();`;
}
function doAfterZooming()
{
window.scrollTo(120, 123);
eventSender.mouseMoveTo(345, 234);
eventSender.mouseDown();
eventSender.mouseUp();
}
function doTest()
{
document.addEventListener('click', clickHandler);
if (!window.testRunner)
return;
testRunner.runUIScript(getUIScript(), function(zoomScale) {
doAfterZooming();
});
}
function clickHandler(event)
{
document.getElementById('click-location').textContent = 'clicked at ' + event.clientX + ', ' + event.clientY;
var clientBox = document.getElementById('client');
var clientRect = clientBox.getBoundingClientRect();
clientBox.style.left = (event.clientX - clientRect.width / 2) + 'px';
clientBox.style.top = (event.clientY - clientRect.height / 2) + 'px';
var clientRectsBox = document.getElementById('clientrects');
clientRect = clientRectsBox.getBoundingClientRect();
var pageViewport = document.documentElement.getClientRects()[0];
clientRectsBox.style.left = (event.clientX - clientRect.width / 2) - pageViewport.left + 'px';
clientRectsBox.style.top = (event.clientY - clientRect.height / 2) - pageViewport.top + 'px';
var clientScrollBox = document.getElementById('clientscroll');
clientRect = clientScrollBox.getBoundingClientRect();
var pageViewport = document.documentElement.getBoundingClientRect();
clientRect = clientScrollBox.getBoundingClientRect();
clientScrollBox.style.left = (event.clientX - clientRect.width / 2) - pageViewport.left + 'px';
clientScrollBox.style.top = (event.clientY - clientRect.height / 2) - pageViewport.top + 'px';
var pageBox = document.getElementById('page');
clientRect = pageBox.getBoundingClientRect();
pageBox.style.left = (event.clientX - clientRect.width / 2) + 'px';
pageBox.style.top = (event.clientY - clientRect.height / 2) + 'px';
if (window.testRunner)
testRunner.notifyDone();
}
window.addEventListener('load', doTest, false);
</script>
</head>
<body>
<div id="client" class="box"></div>
<div id="clientrects" class="box"></div>
<div id="clientscroll" class="box"></div>
<div id="page" class="box"></div>
<p>Got click at <span id="click-location"></span></p>
</body>
</html>