| Index: Source/devtools/front_end/sdk/IsolatedFileSystem.js
|
| diff --git a/Source/devtools/front_end/sdk/IsolatedFileSystem.js b/Source/devtools/front_end/sdk/IsolatedFileSystem.js
|
| deleted file mode 100644
|
| index ee25dff37b50ad4a170c1014b0cc69155528d00b..0000000000000000000000000000000000000000
|
| --- a/Source/devtools/front_end/sdk/IsolatedFileSystem.js
|
| +++ /dev/null
|
| @@ -1,590 +0,0 @@
|
| -/*
|
| - * Copyright (C) 2013 Google Inc. All rights reserved.
|
| - *
|
| - * Redistribution and use in source and binary forms, with or without
|
| - * modification, are permitted provided that the following conditions are
|
| - * met:
|
| - *
|
| - * * Redistributions of source code must retain the above copyright
|
| - * notice, this list of conditions and the following disclaimer.
|
| - * * Redistributions in binary form must reproduce the above
|
| - * copyright notice, this list of conditions and the following disclaimer
|
| - * in the documentation and/or other materials provided with the
|
| - * distribution.
|
| - * * Neither the name of Google Inc. nor the names of its
|
| - * contributors may be used to endorse or promote products derived from
|
| - * this software without specific prior written permission.
|
| - *
|
| - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
| - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
| - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
| - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
| - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
| - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
| - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
| - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
| - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
| - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
| - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
| - */
|
| -
|
| -/**
|
| - * @constructor
|
| - * @param {!WebInspector.IsolatedFileSystemManager} manager
|
| - * @param {string} path
|
| - * @param {string} name
|
| - * @param {string} rootURL
|
| - */
|
| -WebInspector.IsolatedFileSystem = function(manager, path, name, rootURL)
|
| -{
|
| - this._manager = manager;
|
| - this._path = path;
|
| - this._name = name;
|
| - this._rootURL = rootURL;
|
| -}
|
| -
|
| -/**
|
| - * @param {!FileError} error
|
| - * @return {string}
|
| - */
|
| -WebInspector.IsolatedFileSystem.errorMessage = function(error)
|
| -{
|
| - return WebInspector.UIString("File system error: %s", error.message);
|
| -}
|
| -
|
| -/**
|
| - * @param {string} fileSystemPath
|
| - * @return {string}
|
| - */
|
| -WebInspector.IsolatedFileSystem.normalizePath = function(fileSystemPath)
|
| -{
|
| - if (WebInspector.isWin())
|
| - return fileSystemPath.replace(/\\/g, "/");
|
| - return fileSystemPath;
|
| -}
|
| -
|
| -WebInspector.IsolatedFileSystem.prototype = {
|
| - /**
|
| - * @return {string}
|
| - */
|
| - path: function()
|
| - {
|
| - return this._path;
|
| - },
|
| -
|
| - /**
|
| - * @return {string}
|
| - */
|
| - normalizedPath: function()
|
| - {
|
| - if (this._normalizedPath)
|
| - return this._normalizedPath;
|
| - this._normalizedPath = WebInspector.IsolatedFileSystem.normalizePath(this._path);
|
| - return this._normalizedPath;
|
| - },
|
| -
|
| - /**
|
| - * @return {string}
|
| - */
|
| - name: function()
|
| - {
|
| - return this._name;
|
| - },
|
| -
|
| - /**
|
| - * @return {string}
|
| - */
|
| - rootURL: function()
|
| - {
|
| - return this._rootURL;
|
| - },
|
| -
|
| - /**
|
| - * @param {function(?DOMFileSystem)} callback
|
| - */
|
| - _requestFileSystem: function(callback)
|
| - {
|
| - this._manager.requestDOMFileSystem(this._path, callback);
|
| - },
|
| -
|
| - /**
|
| - * @param {string} path
|
| - * @param {function(string)} fileCallback
|
| - * @param {function()=} finishedCallback
|
| - */
|
| - requestFilesRecursive: function(path, fileCallback, finishedCallback)
|
| - {
|
| - var domFileSystem;
|
| - var pendingRequests = 0;
|
| - this._requestFileSystem(fileSystemLoaded.bind(this));
|
| - /**
|
| - * @param {?DOMFileSystem} fs
|
| - * @this {WebInspector.IsolatedFileSystem}
|
| - */
|
| - function fileSystemLoaded(fs)
|
| - {
|
| - domFileSystem = /** @type {!DOMFileSystem} */ (fs);
|
| - console.assert(domFileSystem);
|
| - ++pendingRequests;
|
| - this._requestEntries(domFileSystem, path, innerCallback.bind(this));
|
| - }
|
| -
|
| - /**
|
| - * @param {!Array.<!FileEntry>} entries
|
| - * @this {WebInspector.IsolatedFileSystem}
|
| - */
|
| - function innerCallback(entries)
|
| - {
|
| - for (var i = 0; i < entries.length; ++i) {
|
| - var entry = entries[i];
|
| - if (!entry.isDirectory) {
|
| - if (this._manager.mapping().isFileExcluded(this._path, entry.fullPath))
|
| - continue;
|
| - fileCallback(entry.fullPath.substr(1));
|
| - }
|
| - else {
|
| - if (this._manager.mapping().isFileExcluded(this._path, entry.fullPath + "/"))
|
| - continue;
|
| - ++pendingRequests;
|
| - this._requestEntries(domFileSystem, entry.fullPath, innerCallback.bind(this));
|
| - }
|
| - }
|
| - if (finishedCallback && (--pendingRequests === 0))
|
| - finishedCallback();
|
| - }
|
| - },
|
| -
|
| - /**
|
| - * @param {string} path
|
| - * @param {?string} name
|
| - * @param {function(?string)} callback
|
| - */
|
| - createFile: function(path, name, callback)
|
| - {
|
| - this._requestFileSystem(fileSystemLoaded.bind(this));
|
| - var newFileIndex = 1;
|
| - if (!name)
|
| - name = "NewFile";
|
| - var nameCandidate;
|
| -
|
| - /**
|
| - * @param {?DOMFileSystem} fs
|
| - * @this {WebInspector.IsolatedFileSystem}
|
| - */
|
| - function fileSystemLoaded(fs)
|
| - {
|
| - var domFileSystem = /** @type {!DOMFileSystem} */ (fs);
|
| - console.assert(domFileSystem);
|
| - domFileSystem.root.getDirectory(path, null, dirEntryLoaded.bind(this), errorHandler.bind(this));
|
| - }
|
| -
|
| - /**
|
| - * @param {!DirectoryEntry} dirEntry
|
| - * @this {WebInspector.IsolatedFileSystem}
|
| - */
|
| - function dirEntryLoaded(dirEntry)
|
| - {
|
| - var nameCandidate = name;
|
| - if (newFileIndex > 1)
|
| - nameCandidate += newFileIndex;
|
| - ++newFileIndex;
|
| - dirEntry.getFile(nameCandidate, { create: true, exclusive: true }, fileCreated, fileCreationError.bind(this));
|
| -
|
| - function fileCreated(entry)
|
| - {
|
| - callback(entry.fullPath.substr(1));
|
| - }
|
| -
|
| - /**
|
| - * @this {WebInspector.IsolatedFileSystem}
|
| - */
|
| - function fileCreationError(error)
|
| - {
|
| - if (error.code === FileError.INVALID_MODIFICATION_ERR) {
|
| - dirEntryLoaded.call(this, dirEntry);
|
| - return;
|
| - }
|
| -
|
| - var errorMessage = WebInspector.IsolatedFileSystem.errorMessage(error);
|
| - console.error(errorMessage + " when testing if file exists '" + (this._path + "/" + path + "/" + nameCandidate) + "'");
|
| - callback(null);
|
| - }
|
| - }
|
| -
|
| - /**
|
| - * @this {WebInspector.IsolatedFileSystem}
|
| - */
|
| - function errorHandler(error)
|
| - {
|
| - var errorMessage = WebInspector.IsolatedFileSystem.errorMessage(error);
|
| - var filePath = this._path + "/" + path;
|
| - if (nameCandidate)
|
| - filePath += "/" + nameCandidate;
|
| - console.error(errorMessage + " when getting content for file '" + (filePath) + "'");
|
| - callback(null);
|
| - }
|
| - },
|
| -
|
| - /**
|
| - * @param {string} path
|
| - */
|
| - deleteFile: function(path)
|
| - {
|
| - this._requestFileSystem(fileSystemLoaded.bind(this));
|
| -
|
| - /**
|
| - * @param {?DOMFileSystem} fs
|
| - * @this {WebInspector.IsolatedFileSystem}
|
| - */
|
| - function fileSystemLoaded(fs)
|
| - {
|
| - var domFileSystem = /** @type {!DOMFileSystem} */ (fs);
|
| - console.assert(domFileSystem);
|
| - domFileSystem.root.getFile(path, null, fileEntryLoaded.bind(this), errorHandler.bind(this));
|
| - }
|
| -
|
| - /**
|
| - * @param {!FileEntry} fileEntry
|
| - * @this {WebInspector.IsolatedFileSystem}
|
| - */
|
| - function fileEntryLoaded(fileEntry)
|
| - {
|
| - fileEntry.remove(fileEntryRemoved, errorHandler.bind(this));
|
| - }
|
| -
|
| - function fileEntryRemoved()
|
| - {
|
| - }
|
| -
|
| - /**
|
| - * @param {!FileError} error
|
| - * @this {WebInspector.IsolatedFileSystem}
|
| - */
|
| - function errorHandler(error)
|
| - {
|
| - var errorMessage = WebInspector.IsolatedFileSystem.errorMessage(error);
|
| - console.error(errorMessage + " when deleting file '" + (this._path + "/" + path) + "'");
|
| - }
|
| - },
|
| -
|
| - /**
|
| - * @param {string} path
|
| - * @param {function(?Date, ?number)} callback
|
| - */
|
| - requestMetadata: function(path, callback)
|
| - {
|
| - this._requestFileSystem(fileSystemLoaded);
|
| -
|
| - /**
|
| - * @param {?DOMFileSystem} fs
|
| - */
|
| - function fileSystemLoaded(fs)
|
| - {
|
| - var domFileSystem = /** @type {!DOMFileSystem} */ (fs);
|
| - console.assert(domFileSystem);
|
| - domFileSystem.root.getFile(path, null, fileEntryLoaded, errorHandler);
|
| - }
|
| -
|
| - /**
|
| - * @param {!FileEntry} entry
|
| - */
|
| - function fileEntryLoaded(entry)
|
| - {
|
| - entry.getMetadata(successHandler, errorHandler);
|
| - }
|
| -
|
| - /**
|
| - * @param {!Metadata} metadata
|
| - */
|
| - function successHandler(metadata)
|
| - {
|
| - callback(metadata.modificationTime, metadata.size);
|
| - }
|
| -
|
| - /**
|
| - * @param {!FileError} error
|
| - */
|
| - function errorHandler(error)
|
| - {
|
| - callback(null, null);
|
| - }
|
| - },
|
| -
|
| - /**
|
| - * @param {string} path
|
| - * @param {function(?string)} callback
|
| - */
|
| - requestFileContent: function(path, callback)
|
| - {
|
| - this._requestFileSystem(fileSystemLoaded.bind(this));
|
| -
|
| - /**
|
| - * @param {?DOMFileSystem} fs
|
| - * @this {WebInspector.IsolatedFileSystem}
|
| - */
|
| - function fileSystemLoaded(fs)
|
| - {
|
| - var domFileSystem = /** @type {!DOMFileSystem} */ (fs);
|
| - console.assert(domFileSystem);
|
| - domFileSystem.root.getFile(path, null, fileEntryLoaded.bind(this), errorHandler.bind(this));
|
| - }
|
| -
|
| - /**
|
| - * @param {!FileEntry} entry
|
| - * @this {WebInspector.IsolatedFileSystem}
|
| - */
|
| - function fileEntryLoaded(entry)
|
| - {
|
| - entry.file(fileLoaded, errorHandler.bind(this));
|
| - }
|
| -
|
| - /**
|
| - * @param {!Blob} file
|
| - */
|
| - function fileLoaded(file)
|
| - {
|
| - var reader = new FileReader();
|
| - reader.onloadend = readerLoadEnd;
|
| - reader.readAsText(file);
|
| - }
|
| -
|
| - /**
|
| - * @this {!FileReader}
|
| - */
|
| - function readerLoadEnd()
|
| - {
|
| - callback(/** @type {string} */ (this.result));
|
| - }
|
| -
|
| - /**
|
| - * @this {WebInspector.IsolatedFileSystem}
|
| - */
|
| - function errorHandler(error)
|
| - {
|
| - if (error.code === FileError.NOT_FOUND_ERR) {
|
| - callback(null);
|
| - return;
|
| - }
|
| -
|
| - var errorMessage = WebInspector.IsolatedFileSystem.errorMessage(error);
|
| - console.error(errorMessage + " when getting content for file '" + (this._path + "/" + path) + "'");
|
| - callback(null);
|
| - }
|
| - },
|
| -
|
| - /**
|
| - * @param {string} path
|
| - * @param {string} content
|
| - * @param {function()} callback
|
| - */
|
| - setFileContent: function(path, content, callback)
|
| - {
|
| - this._requestFileSystem(fileSystemLoaded.bind(this));
|
| - WebInspector.userMetrics.FileSavedInWorkspace.record();
|
| -
|
| - /**
|
| - * @param {?DOMFileSystem} fs
|
| - * @this {WebInspector.IsolatedFileSystem}
|
| - */
|
| - function fileSystemLoaded(fs)
|
| - {
|
| - var domFileSystem = /** @type {!DOMFileSystem} */ (fs);
|
| - console.assert(domFileSystem);
|
| - domFileSystem.root.getFile(path, { create: true }, fileEntryLoaded.bind(this), errorHandler.bind(this));
|
| - }
|
| -
|
| - /**
|
| - * @param {!FileEntry} entry
|
| - * @this {WebInspector.IsolatedFileSystem}
|
| - */
|
| - function fileEntryLoaded(entry)
|
| - {
|
| - entry.createWriter(fileWriterCreated.bind(this), errorHandler.bind(this));
|
| - }
|
| -
|
| - /**
|
| - * @param {!FileWriter} fileWriter
|
| - * @this {WebInspector.IsolatedFileSystem}
|
| - */
|
| - function fileWriterCreated(fileWriter)
|
| - {
|
| - fileWriter.onerror = errorHandler.bind(this);
|
| - fileWriter.onwriteend = fileTruncated;
|
| - fileWriter.truncate(0);
|
| -
|
| - function fileTruncated()
|
| - {
|
| - fileWriter.onwriteend = writerEnd;
|
| - var blob = new Blob([content], { type: "text/plain" });
|
| - fileWriter.write(blob);
|
| - }
|
| - }
|
| -
|
| - function writerEnd()
|
| - {
|
| - callback();
|
| - }
|
| -
|
| - /**
|
| - * @this {WebInspector.IsolatedFileSystem}
|
| - */
|
| - function errorHandler(error)
|
| - {
|
| - var errorMessage = WebInspector.IsolatedFileSystem.errorMessage(error);
|
| - console.error(errorMessage + " when setting content for file '" + (this._path + "/" + path) + "'");
|
| - callback();
|
| - }
|
| - },
|
| -
|
| - /**
|
| - * @param {string} path
|
| - * @param {string} newName
|
| - * @param {function(boolean, string=)} callback
|
| - */
|
| - renameFile: function(path, newName, callback)
|
| - {
|
| - newName = newName ? newName.trim() : newName;
|
| - if (!newName || newName.indexOf("/") !== -1) {
|
| - callback(false);
|
| - return;
|
| - }
|
| - var fileEntry;
|
| - var dirEntry;
|
| - var newFileEntry;
|
| - this._requestFileSystem(fileSystemLoaded.bind(this));
|
| -
|
| - /**
|
| - * @param {?DOMFileSystem} fs
|
| - * @this {WebInspector.IsolatedFileSystem}
|
| - */
|
| - function fileSystemLoaded(fs)
|
| - {
|
| - var domFileSystem = /** @type {!DOMFileSystem} */ (fs);
|
| - console.assert(domFileSystem);
|
| - domFileSystem.root.getFile(path, null, fileEntryLoaded.bind(this), errorHandler.bind(this));
|
| - }
|
| -
|
| - /**
|
| - * @param {!FileEntry} entry
|
| - * @this {WebInspector.IsolatedFileSystem}
|
| - */
|
| - function fileEntryLoaded(entry)
|
| - {
|
| - if (entry.name === newName) {
|
| - callback(false);
|
| - return;
|
| - }
|
| -
|
| - fileEntry = entry;
|
| - fileEntry.getParent(dirEntryLoaded.bind(this), errorHandler.bind(this));
|
| - }
|
| -
|
| - /**
|
| - * @param {!Entry} entry
|
| - * @this {WebInspector.IsolatedFileSystem}
|
| - */
|
| - function dirEntryLoaded(entry)
|
| - {
|
| - dirEntry = entry;
|
| - dirEntry.getFile(newName, null, newFileEntryLoaded, newFileEntryLoadErrorHandler.bind(this));
|
| - }
|
| -
|
| - /**
|
| - * @param {!FileEntry} entry
|
| - */
|
| - function newFileEntryLoaded(entry)
|
| - {
|
| - callback(false);
|
| - }
|
| -
|
| - /**
|
| - * @this {WebInspector.IsolatedFileSystem}
|
| - */
|
| - function newFileEntryLoadErrorHandler(error)
|
| - {
|
| - if (error.code !== FileError.NOT_FOUND_ERR) {
|
| - callback(false);
|
| - return;
|
| - }
|
| - fileEntry.moveTo(dirEntry, newName, fileRenamed, errorHandler.bind(this));
|
| - }
|
| -
|
| - /**
|
| - * @param {!FileEntry} entry
|
| - */
|
| - function fileRenamed(entry)
|
| - {
|
| - callback(true, entry.name);
|
| - }
|
| -
|
| - /**
|
| - * @this {WebInspector.IsolatedFileSystem}
|
| - */
|
| - function errorHandler(error)
|
| - {
|
| - var errorMessage = WebInspector.IsolatedFileSystem.errorMessage(error);
|
| - console.error(errorMessage + " when renaming file '" + (this._path + "/" + path) + "' to '" + newName + "'");
|
| - callback(false);
|
| - }
|
| - },
|
| -
|
| - /**
|
| - * @param {!DirectoryEntry} dirEntry
|
| - * @param {function(!Array.<!FileEntry>)} callback
|
| - */
|
| - _readDirectory: function(dirEntry, callback)
|
| - {
|
| - var dirReader = dirEntry.createReader();
|
| - var entries = [];
|
| -
|
| - function innerCallback(results)
|
| - {
|
| - if (!results.length)
|
| - callback(entries.sort());
|
| - else {
|
| - entries = entries.concat(toArray(results));
|
| - dirReader.readEntries(innerCallback, errorHandler);
|
| - }
|
| - }
|
| -
|
| - function toArray(list)
|
| - {
|
| - return Array.prototype.slice.call(list || [], 0);
|
| - }
|
| -
|
| - dirReader.readEntries(innerCallback, errorHandler);
|
| -
|
| - function errorHandler(error)
|
| - {
|
| - var errorMessage = WebInspector.IsolatedFileSystem.errorMessage(error);
|
| - console.error(errorMessage + " when reading directory '" + dirEntry.fullPath + "'");
|
| - callback([]);
|
| - }
|
| - },
|
| -
|
| - /**
|
| - * @param {!DOMFileSystem} domFileSystem
|
| - * @param {string} path
|
| - * @param {function(!Array.<!FileEntry>)} callback
|
| - */
|
| - _requestEntries: function(domFileSystem, path, callback)
|
| - {
|
| - domFileSystem.root.getDirectory(path, null, innerCallback.bind(this), errorHandler);
|
| -
|
| - /**
|
| - * @param {!DirectoryEntry} dirEntry
|
| - * @this {WebInspector.IsolatedFileSystem}
|
| - */
|
| - function innerCallback(dirEntry)
|
| - {
|
| - this._readDirectory(dirEntry, callback)
|
| - }
|
| -
|
| - function errorHandler(error)
|
| - {
|
| - var errorMessage = WebInspector.IsolatedFileSystem.errorMessage(error);
|
| - console.error(errorMessage + " when requesting entry '" + path + "'");
|
| - callback([]);
|
| - }
|
| - }
|
| -}
|
|
|