Warum schlägt der API-RequestQuota-Aufruf dieses Dateisystems fehl?

Ich schreibe eine HTML5-App, die in Chrome ausgeführt werden soll, aber sie befindet sich im lokalen Dateisystem (daher wird sie durch Doppelklicken auf eine HTML-Datei gestartet). Es wird ein Fehler ausgegeben, wenn ich versuche, auf das Dateisystem zuzugreifen, und ich denke, es liegt daran, dass es sich um eine lokale Datei handelt. Gibt es eine Möglichkeit, dies in Chrome zuzulassen?

(HINWEIS: Es wird ein Popup-Fenster angezeigt, in dem ich gefragt werde, ob die App dauerhaft gespeichert werden soll, und ich klicke auf "OK". Dieser Fehler wird weiterhin angezeigt.)

Der folgende Code löst den Fehler aus:

DOMException {message: "NotSupportedError: DOM Exception 9", name: "NotSupportedError", code: 9, INDEX_SIZE_ERR: 1, DOMSTRING_SIZE_ERR: 2…}

filetest.html

<!DOCTYPE html>
<html>
    <head></head>
    <body>
        <script>
        //File System handler
        window.requestFileSystem  = window.requestFileSystem || window.webkitRequestFileSystem;

        function onInitFs(fs) {
            console.log('Opened file system: ' + fs.name);
        }

        function errorHandler(e) {
            var msg = '';

            switch (e.code) {
            case FileError.QUOTA_EXCEEDED_ERR:
                msg = 'QUOTA_EXCEEDED_ERR';
                break;
            case FileError.NOT_FOUND_ERR:
                msg = 'NOT_FOUND_ERR';
                break;
            case FileError.SECURITY_ERR:
                msg = 'SECURITY_ERR';
                break;
            case FileError.INVALID_MODIFICATION_ERR:
                msg = 'INVALID_MODIFICATION_ERR';
                break;
            case FileError.INVALID_STATE_ERR:
                msg = 'INVALID_STATE_ERR';
                break;
            default:
                msg = 'Unknown Error';
                break;
            };

            console.log('Error: ' + msg);
        }

        /** THIS CAUSES IT TO THROW AN ERROR */
        window.webkitStorageInfo.requestQuota(window.PERSISTENT, 5*1024*1024, function(grantedBytes) {
                window.requestFileSystem(window.PERSISTENT, grantedBytes, onInitFs, errorHandler);
        }, function(e) {
            console.log('Error', e);
        });
        </script>
    </body>
</html>

Wenn ich es stattdessen ändere, um nach einem temporären Speicher zu fragen, wird trotzdem ein Fehler ausgegeben, aber jetzt ist es ein FehlerSECURITY_ERR:

window.requestFileSystem(window.TEMPORARY, 5*1024*1024, onInitFs, errorHandler);

Antworten auf die Frage(2)

Ihre Antwort auf die Frage