<html>
<head>
    <script type="text/javascript">

        // Timeout is to ensure that the iframe was removed.
        setTimeout(isDone,500);

        function log(message)
        {
            document.getElementById("result").innerHTML += message + "<br>";
        }
        
        function runTests()
        {
            if (window.layoutTestController) {
                layoutTestController.dumpAsText();
                layoutTestController.waitUntilDone();
            }

            if (!window.webkitNotifications) {
                log("FAIL: No webkitNotifications interface!");
            }
            
            document.getElementById("test").innerHTML="Pass if notification is cancelled";
        }

        function isDone()
        {
            if (window.layoutTestController) {
                layoutTestController.notifyDone();
            }
        }

    </script>
</head>
<body onload="runTests();">
    <p>Requesting and cancelling notification permission...</p>
    
<div id="result"></div>
<div id="test">
<iframe src="resources/notifications-cancel-request-permission.html" width=800 height=800></iframe>
</div>
</body>
</html>
