<!DOCTYPE html>
<html>
<head>
    <script type="text/javascript">
        function log(message)
        {
            document.getElementById("result").innerHTML += message + "<br>";
        }
        
        function runTests()
        {
            if (window.layoutTestController) {
                layoutTestController.dumpAsText();
            }

            if (!window.webkitNotifications) {
                log("FAIL: No webkitNotifications interface!");
            }
            
            var N = window.webkitNotifications.requestPermission(
                function() { log("PASS: Permission callback invoked."); }
            );
        }
    </script>
</head>
<body>
    <p>Requesting notification permission...</p>
    
<div id="result"></div>    
<script type="text/javascript">
runTests();
</script>


</body>
</html>
