Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1207)

Unified Diff: Source/devtools/front_end/sdk/IsolatedFileSystem.js

Issue 471433004: DevTools: Split out the "workspace" and "bindings" modules from "sdk" (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Remove marker interfaces and WI.SourceMapping Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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([]);
- }
- }
-}
« no previous file with comments | « Source/devtools/front_end/sdk/FileUtils.js ('k') | Source/devtools/front_end/sdk/IsolatedFileSystemManager.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698