<!DOCTYPE html>
<html>
<head>
<!-- Tests that navigator.geolocation.watchPosition() returns error POSITION_DENIED when called from a document with a data URL. -->
<script src="../../../http/tests/security/resources/checkThatPositionErrorCallbackIsCalledWithPositionUnavailableForGeolocationMethod.js"></script>
<script>
var PositionUnavailableMockMessage = "Origin does not have permission to use Geolocation service";
if (window.testRunner) {
    testRunner.dumpAsText();
    testRunner.waitUntilDone();
    testRunner.setGeolocationPermission(true);
    testRunner.setMockGeolocationPositionUnavailableError(PositionUnavailableMockMessage);
    testRunner.setMockGeolocationPosition(37.3317115, -122.0323722, 100.0);
}

function done()
{
    if (window.testRunner)
        testRunner.notifyDone();
}

window.location = dataURLToCheckThatPositionErrorCallbackIsCalledWithPositionUnavailableForGeolocationMethod("watchPosition", PositionUnavailableMockMessage, done);
</script>
</head>
</html>
