Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright (C) 2012 Google Inc. All rights reserved. | 2 * Copyright (C) 2012 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 44 InspectorFrontendHost.events.addEventListener(InspectorFrontendHostAPI.Event s.FileSystemsLoaded, this._onFileSystemsLoaded, this); | 44 InspectorFrontendHost.events.addEventListener(InspectorFrontendHostAPI.Event s.FileSystemsLoaded, this._onFileSystemsLoaded, this); |
| 45 InspectorFrontendHost.events.addEventListener(InspectorFrontendHostAPI.Event s.FileSystemRemoved, this._onFileSystemRemoved, this); | 45 InspectorFrontendHost.events.addEventListener(InspectorFrontendHostAPI.Event s.FileSystemRemoved, this._onFileSystemRemoved, this); |
| 46 InspectorFrontendHost.events.addEventListener(InspectorFrontendHostAPI.Event s.FileSystemAdded, this._onFileSystemAdded, this); | 46 InspectorFrontendHost.events.addEventListener(InspectorFrontendHostAPI.Event s.FileSystemAdded, this._onFileSystemAdded, this); |
| 47 InspectorFrontendHost.events.addEventListener(InspectorFrontendHostAPI.Event s.FileSystemFilesChanged, this._onFileSystemFilesChanged, this); | 47 InspectorFrontendHost.events.addEventListener(InspectorFrontendHostAPI.Event s.FileSystemFilesChanged, this._onFileSystemFilesChanged, this); |
| 48 InspectorFrontendHost.events.addEventListener(InspectorFrontendHostAPI.Event s.IndexingTotalWorkCalculated, this._onIndexingTotalWorkCalculated, this); | 48 InspectorFrontendHost.events.addEventListener(InspectorFrontendHostAPI.Event s.IndexingTotalWorkCalculated, this._onIndexingTotalWorkCalculated, this); |
| 49 InspectorFrontendHost.events.addEventListener(InspectorFrontendHostAPI.Event s.IndexingWorked, this._onIndexingWorked, this); | 49 InspectorFrontendHost.events.addEventListener(InspectorFrontendHostAPI.Event s.IndexingWorked, this._onIndexingWorked, this); |
| 50 InspectorFrontendHost.events.addEventListener(InspectorFrontendHostAPI.Event s.IndexingDone, this._onIndexingDone, this); | 50 InspectorFrontendHost.events.addEventListener(InspectorFrontendHostAPI.Event s.IndexingDone, this._onIndexingDone, this); |
| 51 InspectorFrontendHost.events.addEventListener(InspectorFrontendHostAPI.Event s.SearchCompleted, this._onSearchCompleted, this); | 51 InspectorFrontendHost.events.addEventListener(InspectorFrontendHostAPI.Event s.SearchCompleted, this._onSearchCompleted, this); |
| 52 | 52 |
| 53 this._initExcludePatterSetting(); | 53 this._initExcludePatterSetting(); |
| 54 | |
| 55 this._fileSystemsLoadedPromise = new Promise(fulfill => this._fileSystemsLoa dedCallback = fulfill); | |
|
dgozman
2016/08/31 01:39:46
this._fileSystemsLoadedPromise = this._requestFile
lushnikov
2016/08/31 17:35:10
Done.
| |
| 56 InspectorFrontendHost.requestFileSystems(); | |
| 54 } | 57 } |
| 55 | 58 |
| 56 /** @typedef {!{fileSystemName: string, rootURL: string, fileSystemPath: string} } */ | 59 /** @typedef {!{fileSystemName: string, rootURL: string, fileSystemPath: string} } */ |
| 57 WebInspector.IsolatedFileSystemManager.FileSystem; | 60 WebInspector.IsolatedFileSystemManager.FileSystem; |
| 58 | 61 |
| 59 /** @enum {symbol} */ | 62 /** @enum {symbol} */ |
| 60 WebInspector.IsolatedFileSystemManager.Events = { | 63 WebInspector.IsolatedFileSystemManager.Events = { |
| 61 FileSystemAdded: Symbol("FileSystemAdded"), | 64 FileSystemAdded: Symbol("FileSystemAdded"), |
| 62 FileSystemRemoved: Symbol("FileSystemRemoved"), | 65 FileSystemRemoved: Symbol("FileSystemRemoved"), |
| 63 FileSystemsLoaded: Symbol("FileSystemsLoaded"), | |
| 64 FileSystemFilesChanged: Symbol("FileSystemFilesChanged"), | 66 FileSystemFilesChanged: Symbol("FileSystemFilesChanged"), |
| 65 ExcludedFolderAdded: Symbol("ExcludedFolderAdded"), | 67 ExcludedFolderAdded: Symbol("ExcludedFolderAdded"), |
| 66 ExcludedFolderRemoved: Symbol("ExcludedFolderRemoved") | 68 ExcludedFolderRemoved: Symbol("ExcludedFolderRemoved") |
| 67 } | 69 } |
| 68 | 70 |
| 69 WebInspector.IsolatedFileSystemManager._lastRequestId = 0; | 71 WebInspector.IsolatedFileSystemManager._lastRequestId = 0; |
| 70 | 72 |
| 71 /** | 73 /** |
| 72 * @param {string} fileSystemPath | 74 * @param {string} fileSystemPath |
| 73 * @return {string} | 75 * @return {string} |
| 74 */ | 76 */ |
| 75 WebInspector.IsolatedFileSystemManager.normalizePath = function(fileSystemPath) | 77 WebInspector.IsolatedFileSystemManager.normalizePath = function(fileSystemPath) |
| 76 { | 78 { |
| 77 fileSystemPath = fileSystemPath.replace(/\\/g, "/"); | 79 fileSystemPath = fileSystemPath.replace(/\\/g, "/"); |
| 78 if (!fileSystemPath.startsWith("file://")) { | 80 if (!fileSystemPath.startsWith("file://")) { |
| 79 if (fileSystemPath.startsWith("/")) | 81 if (fileSystemPath.startsWith("/")) |
| 80 fileSystemPath = "file://" + fileSystemPath; | 82 fileSystemPath = "file://" + fileSystemPath; |
| 81 else | 83 else |
| 82 fileSystemPath = "file:///" + fileSystemPath; | 84 fileSystemPath = "file:///" + fileSystemPath; |
| 83 } | 85 } |
| 84 return fileSystemPath; | 86 return fileSystemPath; |
| 85 } | 87 } |
| 86 | 88 |
| 87 WebInspector.IsolatedFileSystemManager.prototype = { | 89 WebInspector.IsolatedFileSystemManager.prototype = { |
| 88 /** | |
| 89 * @param {function()} callback | |
| 90 */ | |
| 91 initialize: function(callback) | |
| 92 { | |
| 93 this._initializeCallback = callback; | |
| 94 InspectorFrontendHost.requestFileSystems(); | |
| 95 }, | |
| 96 | |
| 97 addFileSystem: function() | 90 addFileSystem: function() |
| 98 { | 91 { |
| 99 InspectorFrontendHost.addFileSystem(""); | 92 InspectorFrontendHost.addFileSystem(""); |
| 100 }, | 93 }, |
| 101 | 94 |
| 102 /** | 95 /** |
| 103 * @param {!WebInspector.IsolatedFileSystem} fileSystem | 96 * @param {!WebInspector.IsolatedFileSystem} fileSystem |
| 104 */ | 97 */ |
| 105 removeFileSystem: function(fileSystem) | 98 removeFileSystem: function(fileSystem) |
| 106 { | 99 { |
| 107 | |
| 108 InspectorFrontendHost.removeFileSystem(fileSystem.embedderPath()); | 100 InspectorFrontendHost.removeFileSystem(fileSystem.embedderPath()); |
| 109 }, | 101 }, |
| 110 | 102 |
| 111 /** | 103 /** |
| 112 * @param {!WebInspector.Event} event | 104 * @param {!WebInspector.Event} event |
| 113 */ | 105 */ |
| 114 _onFileSystemsLoaded: function(event) | 106 _onFileSystemsLoaded: function(event) |
| 115 { | 107 { |
| 116 var fileSystems = /** @type {!Array.<!WebInspector.IsolatedFileSystemMan ager.FileSystem>} */ (event.data); | 108 var fileSystems = /** @type {!Array.<!WebInspector.IsolatedFileSystemMan ager.FileSystem>} */ (event.data); |
| 117 var promises = []; | 109 var promises = []; |
| 118 for (var i = 0; i < fileSystems.length; ++i) | 110 for (var i = 0; i < fileSystems.length; ++i) |
| 119 promises.push(this._innerAddFileSystem(fileSystems[i])); | 111 promises.push(this._innerAddFileSystem(fileSystems[i], false)); |
| 120 Promise.all(promises).then(fireFileSystemsLoaded.bind(this)); | 112 Promise.all(promises).then(this._fileSystemsLoadedCallback); |
| 121 | |
| 122 /** | |
| 123 * @this {WebInspector.IsolatedFileSystemManager} | |
| 124 */ | |
| 125 function fireFileSystemsLoaded() | |
| 126 { | |
| 127 this._initializeCallback(); | |
| 128 delete this._initializeCallback; | |
| 129 this.dispatchEventToListeners(WebInspector.IsolatedFileSystemManager .Events.FileSystemsLoaded); | |
| 130 } | |
| 131 }, | 113 }, |
| 132 | 114 |
| 133 /** | 115 /** |
| 134 * @return {boolean} | 116 * @return {!Promise} |
| 135 */ | 117 */ |
| 136 fileSystemsLoaded: function() | 118 waitForFileSystems: function() |
| 137 { | 119 { |
| 138 return !this._initializeCallback; | 120 return this._fileSystemsLoadedPromise; |
| 139 }, | 121 }, |
| 140 | 122 |
| 141 /** | 123 /** |
| 142 * @param {!WebInspector.IsolatedFileSystemManager.FileSystem} fileSystem | 124 * @param {!WebInspector.IsolatedFileSystemManager.FileSystem} fileSystem |
| 125 * @param {boolean} dispatchEvent | |
| 143 * @return {!Promise} | 126 * @return {!Promise} |
| 144 */ | 127 */ |
| 145 _innerAddFileSystem: function(fileSystem) | 128 _innerAddFileSystem: function(fileSystem, dispatchEvent) |
| 146 { | 129 { |
| 147 var embedderPath = fileSystem.fileSystemPath; | 130 var embedderPath = fileSystem.fileSystemPath; |
| 148 var fileSystemPath = WebInspector.IsolatedFileSystemManager.normalizePat h(fileSystem.fileSystemPath); | 131 var fileSystemPath = WebInspector.IsolatedFileSystemManager.normalizePat h(fileSystem.fileSystemPath); |
| 149 var promise = WebInspector.IsolatedFileSystem.create(this, fileSystemPat h, embedderPath, fileSystem.fileSystemName, fileSystem.rootURL); | 132 var promise = WebInspector.IsolatedFileSystem.create(this, fileSystemPat h, embedderPath, fileSystem.fileSystemName, fileSystem.rootURL); |
| 150 return promise.then(storeFileSystem.bind(this)); | 133 return promise.then(storeFileSystem.bind(this)); |
| 151 | 134 |
| 152 /** | 135 /** |
| 153 * @param {?WebInspector.IsolatedFileSystem} fileSystem | 136 * @param {?WebInspector.IsolatedFileSystem} fileSystem |
| 154 * @this {WebInspector.IsolatedFileSystemManager} | 137 * @this {WebInspector.IsolatedFileSystemManager} |
| 155 */ | 138 */ |
| 156 function storeFileSystem(fileSystem) | 139 function storeFileSystem(fileSystem) |
| 157 { | 140 { |
| 158 if (!fileSystem) | 141 if (!fileSystem) |
| 159 return; | 142 return; |
| 160 this._fileSystems.set(fileSystemPath, fileSystem); | 143 this._fileSystems.set(fileSystemPath, fileSystem); |
| 161 this.dispatchEventToListeners(WebInspector.IsolatedFileSystemManager .Events.FileSystemAdded, fileSystem); | 144 if (dispatchEvent) |
| 145 this.dispatchEventToListeners(WebInspector.IsolatedFileSystemMan ager.Events.FileSystemAdded, fileSystem) | |
|
dgozman
2016/08/31 01:39:46
semicolon
lushnikov
2016/08/31 17:35:10
Done.
| |
| 162 } | 146 } |
| 163 }, | 147 }, |
| 164 | 148 |
| 165 /** | 149 /** |
| 166 * @param {!WebInspector.Event} event | 150 * @param {!WebInspector.Event} event |
| 167 */ | 151 */ |
| 168 _onFileSystemAdded: function(event) | 152 _onFileSystemAdded: function(event) |
| 169 { | 153 { |
| 170 var errorMessage = /** @type {string} */ (event.data["errorMessage"]); | 154 var errorMessage = /** @type {string} */ (event.data["errorMessage"]); |
| 171 var fileSystem = /** @type {?WebInspector.IsolatedFileSystemManager.File System} */ (event.data["fileSystem"]); | 155 var fileSystem = /** @type {?WebInspector.IsolatedFileSystemManager.File System} */ (event.data["fileSystem"]); |
| 172 if (errorMessage) | 156 if (errorMessage) |
| 173 WebInspector.console.error(errorMessage); | 157 WebInspector.console.error(errorMessage); |
| 174 else if (fileSystem) | 158 else if (fileSystem) |
| 175 this._innerAddFileSystem(fileSystem); | 159 this._innerAddFileSystem(fileSystem, true) |
|
dgozman
2016/08/31 01:39:46
semicolon
lushnikov
2016/08/31 17:35:10
Done.
| |
| 176 }, | 160 }, |
| 177 | 161 |
| 178 /** | 162 /** |
| 179 * @param {!WebInspector.Event} event | 163 * @param {!WebInspector.Event} event |
| 180 */ | 164 */ |
| 181 _onFileSystemRemoved: function(event) | 165 _onFileSystemRemoved: function(event) |
| 182 { | 166 { |
| 183 this._fileSystemRemoved(/** @type {string} */ (event.data)); | 167 var embedderPath = /** @type {string} */ (event.data); |
|
lushnikov
2016/08/31 00:26:58
this is just inlined _fileSystemRemoved method.
| |
| 168 var fileSystemPath = WebInspector.IsolatedFileSystemManager.normalizePat h(embedderPath); | |
| 169 var isolatedFileSystem = this._fileSystems.get(fileSystemPath); | |
| 170 if (!isolatedFileSystem) | |
| 171 return; | |
| 172 this._fileSystems.delete(fileSystemPath); | |
| 173 isolatedFileSystem.fileSystemRemoved(); | |
| 174 this.dispatchEventToListeners(WebInspector.IsolatedFileSystemManager.Eve nts.FileSystemRemoved, isolatedFileSystem); | |
| 184 }, | 175 }, |
| 185 | 176 |
| 186 /** | 177 /** |
| 187 * @param {!WebInspector.Event} event | 178 * @param {!WebInspector.Event} event |
| 188 */ | 179 */ |
| 189 _onFileSystemFilesChanged: function(event) | 180 _onFileSystemFilesChanged: function(event) |
| 190 { | 181 { |
| 191 var embedderPaths = /** @type {!Array<string>} */ (event.data); | 182 var embedderPaths = /** @type {!Array<string>} */ (event.data); |
| 192 var paths = embedderPaths.map(embedderPath => WebInspector.IsolatedFileS ystemManager.normalizePath(embedderPath)); | 183 var paths = embedderPaths.map(embedderPath => WebInspector.IsolatedFileS ystemManager.normalizePath(embedderPath)); |
| 193 this.dispatchEventToListeners(WebInspector.IsolatedFileSystemManager.Eve nts.FileSystemFilesChanged, paths); | 184 this.dispatchEventToListeners(WebInspector.IsolatedFileSystemManager.Eve nts.FileSystemFilesChanged, paths); |
| 194 }, | 185 }, |
| 195 | 186 |
| 196 /** | 187 /** |
| 197 * @param {string} embedderPath | |
| 198 */ | |
| 199 _fileSystemRemoved: function(embedderPath) | |
| 200 { | |
| 201 var fileSystemPath = WebInspector.IsolatedFileSystemManager.normalizePat h(embedderPath); | |
| 202 var isolatedFileSystem = this._fileSystems.get(fileSystemPath); | |
| 203 if (!isolatedFileSystem) | |
| 204 return; | |
| 205 this._fileSystems.delete(fileSystemPath); | |
| 206 isolatedFileSystem.fileSystemRemoved(); | |
| 207 this.dispatchEventToListeners(WebInspector.IsolatedFileSystemManager.Eve nts.FileSystemRemoved, isolatedFileSystem); | |
| 208 }, | |
| 209 | |
| 210 /** | |
| 211 * @return {!Array<!WebInspector.IsolatedFileSystem>} | 188 * @return {!Array<!WebInspector.IsolatedFileSystem>} |
| 212 */ | 189 */ |
| 213 fileSystems: function() | 190 fileSystems: function() |
| 214 { | 191 { |
| 215 return this._fileSystems.valuesArray(); | 192 return this._fileSystems.valuesArray(); |
| 216 }, | 193 }, |
| 217 | 194 |
| 218 /** | 195 /** |
| 219 * @param {string} fileSystemPath | 196 * @param {string} fileSystemPath |
| 220 * @return {?WebInspector.IsolatedFileSystem} | 197 * @return {?WebInspector.IsolatedFileSystem} |
| (...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 356 this._callbacks.delete(requestId); | 333 this._callbacks.delete(requestId); |
| 357 }, | 334 }, |
| 358 | 335 |
| 359 __proto__: WebInspector.Object.prototype | 336 __proto__: WebInspector.Object.prototype |
| 360 } | 337 } |
| 361 | 338 |
| 362 /** | 339 /** |
| 363 * @type {!WebInspector.IsolatedFileSystemManager} | 340 * @type {!WebInspector.IsolatedFileSystemManager} |
| 364 */ | 341 */ |
| 365 WebInspector.isolatedFileSystemManager; | 342 WebInspector.isolatedFileSystemManager; |
| OLD | NEW |