61 lines
2.0 KiB
HTML
61 lines
2.0 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<script>
|
|
if (window.testRunner) {
|
|
testRunner.dumpAsText();
|
|
testRunner.waitUntilDone();
|
|
}
|
|
const INITIAL= 0;
|
|
const OPEN_FILE_WITHOUT_GESTURE = 1;
|
|
window.testStage = INITIAL;
|
|
window.clickReceived = false;
|
|
window.clickFired = false;
|
|
|
|
function checkResult(continueFunc) {
|
|
if (!clickFired)
|
|
return;
|
|
if (clickReceived) {
|
|
// When the file select dialog shows up, it's a model window which receives
|
|
// all UI events sent to window, so the click event can not be received by body.
|
|
// If we received the click event, it means the file dialog was not opened.
|
|
if (testStage == OPEN_FILE_WITHOUT_GESTURE)
|
|
document.getElementById("open_without_gesture").innerHTML = "PASSED";
|
|
clickReceived = false;
|
|
}
|
|
clickFired = false;
|
|
continueFunc();
|
|
}
|
|
|
|
function openFileDialogWithoutUserGesture() {
|
|
// Tries to call <input type=file>.click to open the file dialog without a user gesture.
|
|
document.getElementById('f').click();
|
|
// Fires a click event.
|
|
setTimeout(function() {
|
|
eventSender.mouseMoveTo(10, 100);
|
|
eventSender.mouseDown();
|
|
eventSender.mouseUp();
|
|
clickFired = true;
|
|
testStage = OPEN_FILE_WITHOUT_GESTURE;
|
|
// Waits for opening the file dialog and checks whether the click event can still be received by document.
|
|
setTimeout("checkResult(function() { testRunner.notifyDone(); })", 500);
|
|
}, 1);
|
|
}
|
|
|
|
function startTest() {
|
|
if (!window.testRunner)
|
|
return;
|
|
document.body.addEventListener("click", function() { window.clickReceived = true }, true);
|
|
setTimeout(openFileDialogWithoutUserGesture, 1);
|
|
}
|
|
</script>
|
|
</head>
|
|
<body style="margin:0px; padding:0px" onload="startTest();">
|
|
<form>
|
|
<input type="file" name="file" id="f">
|
|
</form>
|
|
This file is to test that opening file dialog requires a user gesture. Please refer to https://bugs.webkit.org/show_bug.cgi?id=47593 for more details.<br>
|
|
Test opening file dialog without user gesture is <span id="open_without_gesture">FAILED</span><br>
|
|
</body>
|
|
</html>
|