<!DOCTYPE html>
<html>
<head>
    <script>
        function maybeTest()
        {
            if (window.testRunner) {
                testRunner.dumpAsText();
                testRunner.waitUntilDone();
                startTest();
            }
        }
        function startTest()
        {
            window[0].postMessage('start', '*');
        }
        function finishSoon()
        {
            window.setTimeout(finishTest, 0);
        }
        function finishTest()
        {
            if (window.testRunner)
                testRunner.notifyDone();
        }
    </script>
</head>
<body onload="maybeTest()">
    <iframe src="resources/navigation-abort-detaches-frame-subframe.html"></iframe>
    <p>XHR abort handlers fire when their associated frame is navigated. This is a test that a XHR abort handler that destroys the navigating frame doesn't crash Blink.
    <p>This test must be run via the HTTP test server. To execute it manually, click <button onclick="startTest()">here</a>.
</body>
</html>
