Chromium Code Reviews| 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..f8b08aa1fc72f62dad3eb1c33dff650747ccc1a7 100644 |
| --- a/third_party/WebKit/Source/devtools/front_end/workspace/IsolatedFileSystemManager.js |
| +++ b/third_party/WebKit/Source/devtools/front_end/workspace/IsolatedFileSystemManager.js |
| @@ -51,6 +51,9 @@ WebInspector.IsolatedFileSystemManager = function() |
| InspectorFrontendHost.events.addEventListener(InspectorFrontendHostAPI.Events.SearchCompleted, this._onSearchCompleted, this); |
| this._initExcludePatterSetting(); |
| + |
| + this._fileSystemsLoadedPromise = new Promise(fulfill => this._fileSystemsLoadedCallback = fulfill); |
|
dgozman
2016/08/31 01:39:46
this._fileSystemsLoadedPromise = this._requestFile
lushnikov
2016/08/31 17:35:10
Done.
|
| + InspectorFrontendHost.requestFileSystems(); |
| } |
| /** @typedef {!{fileSystemName: string, rootURL: string, fileSystemPath: string}} */ |
| @@ -60,7 +63,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") |
| @@ -85,15 +87,6 @@ WebInspector.IsolatedFileSystemManager.normalizePath = function(fileSystemPath) |
| } |
| WebInspector.IsolatedFileSystemManager.prototype = { |
| - /** |
| - * @param {function()} callback |
| - */ |
| - initialize: function(callback) |
| - { |
| - this._initializeCallback = callback; |
| - InspectorFrontendHost.requestFileSystems(); |
| - }, |
| - |
| addFileSystem: function() |
| { |
| InspectorFrontendHost.addFileSystem(""); |
| @@ -104,7 +97,6 @@ WebInspector.IsolatedFileSystemManager.prototype = { |
| */ |
| removeFileSystem: function(fileSystem) |
| { |
| - |
| InspectorFrontendHost.removeFileSystem(fileSystem.embedderPath()); |
| }, |
| @@ -116,33 +108,24 @@ WebInspector.IsolatedFileSystemManager.prototype = { |
| 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); |
| - } |
| + promises.push(this._innerAddFileSystem(fileSystems[i], false)); |
| + Promise.all(promises).then(this._fileSystemsLoadedCallback); |
| }, |
| /** |
| - * @return {boolean} |
| + * @return {!Promise} |
| */ |
| - fileSystemsLoaded: function() |
| + waitForFileSystems: function() |
| { |
| - return !this._initializeCallback; |
| + return this._fileSystemsLoadedPromise; |
| }, |
| /** |
| * @param {!WebInspector.IsolatedFileSystemManager.FileSystem} fileSystem |
| + * @param {boolean} dispatchEvent |
| * @return {!Promise} |
| */ |
| - _innerAddFileSystem: function(fileSystem) |
| + _innerAddFileSystem: function(fileSystem, dispatchEvent) |
| { |
| var embedderPath = fileSystem.fileSystemPath; |
| var fileSystemPath = WebInspector.IsolatedFileSystemManager.normalizePath(fileSystem.fileSystemPath); |
| @@ -158,7 +141,8 @@ WebInspector.IsolatedFileSystemManager.prototype = { |
| if (!fileSystem) |
| return; |
| this._fileSystems.set(fileSystemPath, fileSystem); |
| - this.dispatchEventToListeners(WebInspector.IsolatedFileSystemManager.Events.FileSystemAdded, fileSystem); |
| + if (dispatchEvent) |
| + this.dispatchEventToListeners(WebInspector.IsolatedFileSystemManager.Events.FileSystemAdded, fileSystem) |
|
dgozman
2016/08/31 01:39:46
semicolon
lushnikov
2016/08/31 17:35:10
Done.
|
| } |
| }, |
| @@ -172,7 +156,7 @@ WebInspector.IsolatedFileSystemManager.prototype = { |
| if (errorMessage) |
| WebInspector.console.error(errorMessage); |
| else if (fileSystem) |
| - this._innerAddFileSystem(fileSystem); |
| + this._innerAddFileSystem(fileSystem, true) |
|
dgozman
2016/08/31 01:39:46
semicolon
lushnikov
2016/08/31 17:35:10
Done.
|
| }, |
| /** |
| @@ -180,7 +164,14 @@ WebInspector.IsolatedFileSystemManager.prototype = { |
| */ |
| _onFileSystemRemoved: function(event) |
| { |
| - this._fileSystemRemoved(/** @type {string} */ (event.data)); |
| + var embedderPath = /** @type {string} */ (event.data); |
|
lushnikov
2016/08/31 00:26:58
this is just inlined _fileSystemRemoved method.
|
| + 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 +185,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() |