<!DOCTYPE html>
<html>
<head>
    <script>
    function debug(str) {
        var c = document.getElementById("console")
        c.innerHTML += (str + "<br>")
    }

    if (window.testRunner) {
        testRunner.dumpAsText();
        testRunner.waitUntilDone();
    }

    function runTest() {
        var testDiv = document.getElementById("test");
        var testFrame = document.createElement("iframe");
        testDiv.appendChild(testFrame);
        var testFrameDocument = testFrame.contentDocument;
        testFrame.outerHTML = testFrameDocument;

        testFrameDocument.hasStorageAccess();

        debug("SUCCESS: Did not crash.")
        if (window.testRunner)
            testRunner.notifyDone();
    }
    </script>
</head>
<body onload="runTest()">
    <div id="test">
        <p>Test that querying storage access API on a detached frame doesn't crash.</p>
    </div>
    <pre id="console"></pre>
</body>
</html>