<!DOCTYPE html><!-- webkit-test-runner [ isAppInitiated=true ] -->
<!DOCTYPE html>
<html>
<head>
<script src="../navigation/ping-attribute/resources/utilities.js"></script>
<script>
if (window.testRunner && window.internals) {
    testRunner.dumpAsText();
    testRunner.setStatisticsShouldDowngradeReferrer(false, function () { });
    internals.settings.setHyperlinkAuditingEnabled(true);
    testRunner.waitUntilDone();
}

function test()
{
    clickElement(document.querySelector("img"));
}

window.onload = function ()
{
    clearLastPingResultAndRunTest(test);
}
</script>
</head>
<body>
    <img src="non-existent-image.jpg" width="128" height="128" usemap="#imagemap">
    <map name="imagemap">
        <area shape="rect" coords="0,0,128,128" href="../navigation/resources/check-ping-app-initiated-data.py" ping="../navigation/resources/save-ping.py">
    </map>
</body>
</html>
