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 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
63 WebInspector.IsolatedFileSystemManager.Events = { | 63 WebInspector.IsolatedFileSystemManager.Events = { |
64 FileSystemAdded: Symbol("FileSystemAdded"), | 64 FileSystemAdded: Symbol("FileSystemAdded"), |
65 FileSystemRemoved: Symbol("FileSystemRemoved"), | 65 FileSystemRemoved: Symbol("FileSystemRemoved"), |
66 FileSystemFilesChanged: Symbol("FileSystemFilesChanged"), | 66 FileSystemFilesChanged: Symbol("FileSystemFilesChanged"), |
67 ExcludedFolderAdded: Symbol("ExcludedFolderAdded"), | 67 ExcludedFolderAdded: Symbol("ExcludedFolderAdded"), |
68 ExcludedFolderRemoved: Symbol("ExcludedFolderRemoved") | 68 ExcludedFolderRemoved: Symbol("ExcludedFolderRemoved") |
69 } | 69 } |
70 | 70 |
71 WebInspector.IsolatedFileSystemManager._lastRequestId = 0; | 71 WebInspector.IsolatedFileSystemManager._lastRequestId = 0; |
72 | 72 |
73 /** | |
74 * @param {string} fileSystemPath | |
75 * @return {string} | |
76 */ | |
77 WebInspector.IsolatedFileSystemManager.normalizePath = function(fileSystemPath) | |
78 { | |
79 fileSystemPath = fileSystemPath.replace(/\\/g, "/"); | |
80 if (!fileSystemPath.startsWith("file://")) { | |
81 if (fileSystemPath.startsWith("/")) | |
82 fileSystemPath = "file://" + fileSystemPath; | |
83 else | |
84 fileSystemPath = "file:///" + fileSystemPath; | |
85 } | |
86 return fileSystemPath; | |
87 } | |
88 | |
89 WebInspector.IsolatedFileSystemManager.prototype = { | 73 WebInspector.IsolatedFileSystemManager.prototype = { |
90 /** | 74 /** |
91 * @return {!Promise<!Array<!WebInspector.IsolatedFileSystem>>} | 75 * @return {!Promise<!Array<!WebInspector.IsolatedFileSystem>>} |
92 */ | 76 */ |
93 _requestFileSystems: function() | 77 _requestFileSystems: function() |
94 { | 78 { |
95 var fulfill; | 79 var fulfill; |
96 var promise = new Promise(f => fulfill = f); | 80 var promise = new Promise(f => fulfill = f); |
97 InspectorFrontendHost.events.addEventListener(InspectorFrontendHostAPI.E
vents.FileSystemsLoaded, onFileSystemsLoaded, this); | 81 InspectorFrontendHost.events.addEventListener(InspectorFrontendHostAPI.E
vents.FileSystemsLoaded, onFileSystemsLoaded, this); |
98 InspectorFrontendHost.requestFileSystems(); | 82 InspectorFrontendHost.requestFileSystems(); |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
142 }, | 126 }, |
143 | 127 |
144 /** | 128 /** |
145 * @param {!WebInspector.IsolatedFileSystemManager.FileSystem} fileSystem | 129 * @param {!WebInspector.IsolatedFileSystemManager.FileSystem} fileSystem |
146 * @param {boolean} dispatchEvent | 130 * @param {boolean} dispatchEvent |
147 * @return {!Promise<?WebInspector.IsolatedFileSystem>} | 131 * @return {!Promise<?WebInspector.IsolatedFileSystem>} |
148 */ | 132 */ |
149 _innerAddFileSystem: function(fileSystem, dispatchEvent) | 133 _innerAddFileSystem: function(fileSystem, dispatchEvent) |
150 { | 134 { |
151 var embedderPath = fileSystem.fileSystemPath; | 135 var embedderPath = fileSystem.fileSystemPath; |
152 var fileSystemPath = WebInspector.IsolatedFileSystemManager.normalizePat
h(fileSystem.fileSystemPath); | 136 var fileSystemURL = WebInspector.ParsedURL.platformPathToURL(fileSystem.
fileSystemPath); |
153 var promise = WebInspector.IsolatedFileSystem.create(this, fileSystemPat
h, embedderPath, fileSystem.fileSystemName, fileSystem.rootURL); | 137 var promise = WebInspector.IsolatedFileSystem.create(this, fileSystemURL
, embedderPath, fileSystem.fileSystemName, fileSystem.rootURL); |
154 return promise.then(storeFileSystem.bind(this)); | 138 return promise.then(storeFileSystem.bind(this)); |
155 | 139 |
156 /** | 140 /** |
157 * @param {?WebInspector.IsolatedFileSystem} fileSystem | 141 * @param {?WebInspector.IsolatedFileSystem} fileSystem |
158 * @this {WebInspector.IsolatedFileSystemManager} | 142 * @this {WebInspector.IsolatedFileSystemManager} |
159 */ | 143 */ |
160 function storeFileSystem(fileSystem) | 144 function storeFileSystem(fileSystem) |
161 { | 145 { |
162 if (!fileSystem) | 146 if (!fileSystem) |
163 return null; | 147 return null; |
164 this._fileSystems.set(fileSystemPath, fileSystem); | 148 this._fileSystems.set(fileSystemURL, fileSystem); |
165 if (dispatchEvent) | 149 if (dispatchEvent) |
166 this.dispatchEventToListeners(WebInspector.IsolatedFileSystemMan
ager.Events.FileSystemAdded, fileSystem); | 150 this.dispatchEventToListeners(WebInspector.IsolatedFileSystemMan
ager.Events.FileSystemAdded, fileSystem); |
167 return fileSystem; | 151 return fileSystem; |
168 } | 152 } |
169 }, | 153 }, |
170 | 154 |
171 /** | 155 /** |
172 * @param {!WebInspector.Event} event | 156 * @param {!WebInspector.Event} event |
173 */ | 157 */ |
174 _onFileSystemAdded: function(event) | 158 _onFileSystemAdded: function(event) |
175 { | 159 { |
176 var errorMessage = /** @type {string} */ (event.data["errorMessage"]); | 160 var errorMessage = /** @type {string} */ (event.data["errorMessage"]); |
177 var fileSystem = /** @type {?WebInspector.IsolatedFileSystemManager.File
System} */ (event.data["fileSystem"]); | 161 var fileSystem = /** @type {?WebInspector.IsolatedFileSystemManager.File
System} */ (event.data["fileSystem"]); |
178 if (errorMessage) | 162 if (errorMessage) |
179 WebInspector.console.error(errorMessage); | 163 WebInspector.console.error(errorMessage); |
180 else if (fileSystem) | 164 else if (fileSystem) |
181 this._innerAddFileSystem(fileSystem, true); | 165 this._innerAddFileSystem(fileSystem, true); |
182 }, | 166 }, |
183 | 167 |
184 /** | 168 /** |
185 * @param {!WebInspector.Event} event | 169 * @param {!WebInspector.Event} event |
186 */ | 170 */ |
187 _onFileSystemRemoved: function(event) | 171 _onFileSystemRemoved: function(event) |
188 { | 172 { |
189 var embedderPath = /** @type {string} */ (event.data); | 173 var embedderPath = /** @type {string} */ (event.data); |
190 var fileSystemPath = WebInspector.IsolatedFileSystemManager.normalizePat
h(embedderPath); | 174 var fileSystemPath = WebInspector.ParsedURL.platformPathToURL(embedderPa
th); |
191 var isolatedFileSystem = this._fileSystems.get(fileSystemPath); | 175 var isolatedFileSystem = this._fileSystems.get(fileSystemPath); |
192 if (!isolatedFileSystem) | 176 if (!isolatedFileSystem) |
193 return; | 177 return; |
194 this._fileSystems.delete(fileSystemPath); | 178 this._fileSystems.delete(fileSystemPath); |
195 isolatedFileSystem.fileSystemRemoved(); | 179 isolatedFileSystem.fileSystemRemoved(); |
196 this.dispatchEventToListeners(WebInspector.IsolatedFileSystemManager.Eve
nts.FileSystemRemoved, isolatedFileSystem); | 180 this.dispatchEventToListeners(WebInspector.IsolatedFileSystemManager.Eve
nts.FileSystemRemoved, isolatedFileSystem); |
197 }, | 181 }, |
198 | 182 |
199 /** | 183 /** |
200 * @param {!WebInspector.Event} event | 184 * @param {!WebInspector.Event} event |
201 */ | 185 */ |
202 _onFileSystemFilesChanged: function(event) | 186 _onFileSystemFilesChanged: function(event) |
203 { | 187 { |
204 var embedderPaths = /** @type {!Array<string>} */ (event.data); | 188 var embedderPaths = /** @type {!Array<string>} */ (event.data); |
205 var paths = embedderPaths.map(embedderPath => WebInspector.IsolatedFileS
ystemManager.normalizePath(embedderPath)); | 189 var paths = embedderPaths.map(embedderPath => WebInspector.ParsedURL.pla
tformPathToURL(embedderPath)); |
206 this.dispatchEventToListeners(WebInspector.IsolatedFileSystemManager.Eve
nts.FileSystemFilesChanged, paths); | 190 this.dispatchEventToListeners(WebInspector.IsolatedFileSystemManager.Eve
nts.FileSystemFilesChanged, paths); |
207 }, | 191 }, |
208 | 192 |
209 /** | 193 /** |
210 * @return {!Array<!WebInspector.IsolatedFileSystem>} | 194 * @return {!Array<!WebInspector.IsolatedFileSystem>} |
211 */ | 195 */ |
212 fileSystems: function() | 196 fileSystems: function() |
213 { | 197 { |
214 return this._fileSystems.valuesArray(); | 198 return this._fileSystems.valuesArray(); |
215 }, | 199 }, |
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
357 this._callbacks.delete(requestId); | 341 this._callbacks.delete(requestId); |
358 }, | 342 }, |
359 | 343 |
360 __proto__: WebInspector.Object.prototype | 344 __proto__: WebInspector.Object.prototype |
361 } | 345 } |
362 | 346 |
363 /** | 347 /** |
364 * @type {!WebInspector.IsolatedFileSystemManager} | 348 * @type {!WebInspector.IsolatedFileSystemManager} |
365 */ | 349 */ |
366 WebInspector.isolatedFileSystemManager; | 350 WebInspector.isolatedFileSystemManager; |
OLD | NEW |