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

Unified Diff: third_party/WebKit/Source/devtools/front_end/workspace/IsolatedFileSystemManager.js

Issue 2296983003: DevTools: kill WI.IsolatedFileSystemManager FileSystemsLoaded event (Closed)
Patch Set: address comments Created 4 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
« no previous file with comments | « third_party/WebKit/Source/devtools/front_end/main/Main.js ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/WebKit/Source/devtools/front_end/workspace/IsolatedFileSystemManager.js
diff --git a/third_party/WebKit/Source/devtools/front_end/workspace/IsolatedFileSystemManager.js b/third_party/WebKit/Source/devtools/front_end/workspace/IsolatedFileSystemManager.js
index 0b44857479192ec0c7db0dd96015b414ef65abe5..5db5048d9be8d5e5250e7f7f6687ca83ba220629 100644
--- a/third_party/WebKit/Source/devtools/front_end/workspace/IsolatedFileSystemManager.js
+++ b/third_party/WebKit/Source/devtools/front_end/workspace/IsolatedFileSystemManager.js
@@ -41,7 +41,6 @@ WebInspector.IsolatedFileSystemManager = function()
/** @type {!Map<number, !WebInspector.Progress>} */
this._progresses = new Map();
- InspectorFrontendHost.events.addEventListener(InspectorFrontendHostAPI.Events.FileSystemsLoaded, this._onFileSystemsLoaded, this);
InspectorFrontendHost.events.addEventListener(InspectorFrontendHostAPI.Events.FileSystemRemoved, this._onFileSystemRemoved, this);
InspectorFrontendHost.events.addEventListener(InspectorFrontendHostAPI.Events.FileSystemAdded, this._onFileSystemAdded, this);
InspectorFrontendHost.events.addEventListener(InspectorFrontendHostAPI.Events.FileSystemFilesChanged, this._onFileSystemFilesChanged, this);
@@ -51,6 +50,8 @@ WebInspector.IsolatedFileSystemManager = function()
InspectorFrontendHost.events.addEventListener(InspectorFrontendHostAPI.Events.SearchCompleted, this._onSearchCompleted, this);
this._initExcludePatterSetting();
+
+ this._fileSystemsLoadedPromise = this._requestFileSystems();
}
/** @typedef {!{fileSystemName: string, rootURL: string, fileSystemPath: string}} */
@@ -60,7 +61,6 @@ WebInspector.IsolatedFileSystemManager.FileSystem;
WebInspector.IsolatedFileSystemManager.Events = {
FileSystemAdded: Symbol("FileSystemAdded"),
FileSystemRemoved: Symbol("FileSystemRemoved"),
- FileSystemsLoaded: Symbol("FileSystemsLoaded"),
FileSystemFilesChanged: Symbol("FileSystemFilesChanged"),
ExcludedFolderAdded: Symbol("ExcludedFolderAdded"),
ExcludedFolderRemoved: Symbol("ExcludedFolderRemoved")
@@ -86,12 +86,28 @@ WebInspector.IsolatedFileSystemManager.normalizePath = function(fileSystemPath)
WebInspector.IsolatedFileSystemManager.prototype = {
/**
- * @param {function()} callback
+ * @return {!Promise<!Array<!WebInspector.IsolatedFileSystem>>}
*/
- initialize: function(callback)
+ _requestFileSystems: function()
{
- this._initializeCallback = callback;
+ var fulfill;
+ var promise = new Promise(f => fulfill = f);
InspectorFrontendHost.requestFileSystems();
+ InspectorFrontendHost.events.addEventListener(InspectorFrontendHostAPI.Events.FileSystemsLoaded, onFileSystemsLoaded, this);
+ return promise;
+
+ /**
+ * @param {!WebInspector.Event} event
+ * @this {WebInspector.IsolatedFileSystemManager}
+ */
+ function onFileSystemsLoaded(event)
+ {
+ var fileSystems = /** @type {!Array.<!WebInspector.IsolatedFileSystemManager.FileSystem>} */ (event.data);
+ var promises = [];
+ for (var i = 0; i < fileSystems.length; ++i)
+ promises.push(this._innerAddFileSystem(fileSystems[i], false));
+ Promise.all(promises).then(fileSystems => fulfill(fileSystems.filter(fs => !!fs)));
dgozman 2016/08/31 20:28:46 style: no nested arrow functions please
lushnikov 2016/08/31 21:46:01 yikes. done.
+ }
},
addFileSystem: function()
@@ -104,45 +120,23 @@ WebInspector.IsolatedFileSystemManager.prototype = {
*/
removeFileSystem: function(fileSystem)
{
-
InspectorFrontendHost.removeFileSystem(fileSystem.embedderPath());
},
/**
- * @param {!WebInspector.Event} event
- */
- _onFileSystemsLoaded: function(event)
- {
- var fileSystems = /** @type {!Array.<!WebInspector.IsolatedFileSystemManager.FileSystem>} */ (event.data);
- var promises = [];
- for (var i = 0; i < fileSystems.length; ++i)
- promises.push(this._innerAddFileSystem(fileSystems[i]));
- Promise.all(promises).then(fireFileSystemsLoaded.bind(this));
-
- /**
- * @this {WebInspector.IsolatedFileSystemManager}
- */
- function fireFileSystemsLoaded()
- {
- this._initializeCallback();
- delete this._initializeCallback;
- this.dispatchEventToListeners(WebInspector.IsolatedFileSystemManager.Events.FileSystemsLoaded);
- }
- },
-
- /**
- * @return {boolean}
+ * @return {!Promise<!Array<!WebInspector.IsolatedFileSystem>>}
*/
- fileSystemsLoaded: function()
+ waitForFileSystems: function()
{
- return !this._initializeCallback;
+ return this._fileSystemsLoadedPromise;
},
/**
* @param {!WebInspector.IsolatedFileSystemManager.FileSystem} fileSystem
- * @return {!Promise}
+ * @param {boolean} dispatchEvent
+ * @return {!Promise<?WebInspector.IsolatedFileSystem>}
*/
- _innerAddFileSystem: function(fileSystem)
+ _innerAddFileSystem: function(fileSystem, dispatchEvent)
{
var embedderPath = fileSystem.fileSystemPath;
var fileSystemPath = WebInspector.IsolatedFileSystemManager.normalizePath(fileSystem.fileSystemPath);
@@ -156,9 +150,11 @@ WebInspector.IsolatedFileSystemManager.prototype = {
function storeFileSystem(fileSystem)
{
if (!fileSystem)
- return;
+ return null;
this._fileSystems.set(fileSystemPath, fileSystem);
- this.dispatchEventToListeners(WebInspector.IsolatedFileSystemManager.Events.FileSystemAdded, fileSystem);
+ if (dispatchEvent)
+ this.dispatchEventToListeners(WebInspector.IsolatedFileSystemManager.Events.FileSystemAdded, fileSystem);
+ return fileSystem;
}
},
@@ -172,7 +168,7 @@ WebInspector.IsolatedFileSystemManager.prototype = {
if (errorMessage)
WebInspector.console.error(errorMessage);
else if (fileSystem)
- this._innerAddFileSystem(fileSystem);
+ this._innerAddFileSystem(fileSystem, true);
},
/**
@@ -180,7 +176,14 @@ WebInspector.IsolatedFileSystemManager.prototype = {
*/
_onFileSystemRemoved: function(event)
{
- this._fileSystemRemoved(/** @type {string} */ (event.data));
+ var embedderPath = /** @type {string} */ (event.data);
+ var fileSystemPath = WebInspector.IsolatedFileSystemManager.normalizePath(embedderPath);
+ var isolatedFileSystem = this._fileSystems.get(fileSystemPath);
+ if (!isolatedFileSystem)
+ return;
+ this._fileSystems.delete(fileSystemPath);
+ isolatedFileSystem.fileSystemRemoved();
+ this.dispatchEventToListeners(WebInspector.IsolatedFileSystemManager.Events.FileSystemRemoved, isolatedFileSystem);
},
/**
@@ -194,20 +197,6 @@ WebInspector.IsolatedFileSystemManager.prototype = {
},
/**
- * @param {string} embedderPath
- */
- _fileSystemRemoved: function(embedderPath)
- {
- var fileSystemPath = WebInspector.IsolatedFileSystemManager.normalizePath(embedderPath);
- var isolatedFileSystem = this._fileSystems.get(fileSystemPath);
- if (!isolatedFileSystem)
- return;
- this._fileSystems.delete(fileSystemPath);
- isolatedFileSystem.fileSystemRemoved();
- this.dispatchEventToListeners(WebInspector.IsolatedFileSystemManager.Events.FileSystemRemoved, isolatedFileSystem);
- },
-
- /**
* @return {!Array<!WebInspector.IsolatedFileSystem>}
*/
fileSystems: function()
« no previous file with comments | « third_party/WebKit/Source/devtools/front_end/main/Main.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698