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

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

Issue 2466123002: DevTools: reformat front-end code to match chromium style. (Closed)
Patch Set: all done Created 4 years, 1 month 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 unified diff | Download patch
OLDNEW
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
11 * copyright notice, this list of conditions and the following disclaimer 11 * copyright notice, this list of conditions and the following disclaimer
12 * in the documentation and/or other materials provided with the 12 * in the documentation and/or other materials provided with the
13 * distribution. 13 * distribution.
14 * * Neither the name of Google Inc. nor the names of its 14 * * Neither the name of Google Inc. nor the names of its
15 * contributors may be used to endorse or promote products derived from 15 * contributors may be used to endorse or promote products derived from
16 * this software without specific prior written permission. 16 * this software without specific prior written permission.
17 * 17 *
18 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 18 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 19 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 20 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
21 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 21 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
22 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 22 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
23 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 23 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
24 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 24 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 */ 29 */
30
31 /** 30 /**
32 * @constructor 31 * @unrestricted
33 * @extends {WebInspector.Object}
34 */ 32 */
35 WebInspector.IsolatedFileSystemManager = function() 33 WebInspector.IsolatedFileSystemManager = class extends WebInspector.Object {
36 { 34 constructor() {
37 WebInspector.Object.call(this); 35 super();
38 36
39 /** @type {!Map<string, !WebInspector.IsolatedFileSystem>} */ 37 /** @type {!Map<string, !WebInspector.IsolatedFileSystem>} */
40 this._fileSystems = new Map(); 38 this._fileSystems = new Map();
41 /** @type {!Map<number, function(!Array.<string>)>} */ 39 /** @type {!Map<number, function(!Array.<string>)>} */
42 this._callbacks = new Map(); 40 this._callbacks = new Map();
43 /** @type {!Map<number, !WebInspector.Progress>} */ 41 /** @type {!Map<number, !WebInspector.Progress>} */
44 this._progresses = new Map(); 42 this._progresses = new Map();
45 43
46 InspectorFrontendHost.events.addEventListener(InspectorFrontendHostAPI.Event s.FileSystemRemoved, this._onFileSystemRemoved, this); 44 InspectorFrontendHost.events.addEventListener(
47 InspectorFrontendHost.events.addEventListener(InspectorFrontendHostAPI.Event s.FileSystemAdded, this._onFileSystemAdded, this); 45 InspectorFrontendHostAPI.Events.FileSystemRemoved, this._onFileSystemRem oved, this);
48 InspectorFrontendHost.events.addEventListener(InspectorFrontendHostAPI.Event s.FileSystemFilesChanged, this._onFileSystemFilesChanged, this); 46 InspectorFrontendHost.events.addEventListener(
49 InspectorFrontendHost.events.addEventListener(InspectorFrontendHostAPI.Event s.IndexingTotalWorkCalculated, this._onIndexingTotalWorkCalculated, this); 47 InspectorFrontendHostAPI.Events.FileSystemAdded, this._onFileSystemAdded , this);
50 InspectorFrontendHost.events.addEventListener(InspectorFrontendHostAPI.Event s.IndexingWorked, this._onIndexingWorked, this); 48 InspectorFrontendHost.events.addEventListener(
51 InspectorFrontendHost.events.addEventListener(InspectorFrontendHostAPI.Event s.IndexingDone, this._onIndexingDone, this); 49 InspectorFrontendHostAPI.Events.FileSystemFilesChanged, this._onFileSyst emFilesChanged, this);
52 InspectorFrontendHost.events.addEventListener(InspectorFrontendHostAPI.Event s.SearchCompleted, this._onSearchCompleted, this); 50 InspectorFrontendHost.events.addEventListener(
51 InspectorFrontendHostAPI.Events.IndexingTotalWorkCalculated, this._onInd exingTotalWorkCalculated, this);
52 InspectorFrontendHost.events.addEventListener(
53 InspectorFrontendHostAPI.Events.IndexingWorked, this._onIndexingWorked, this);
54 InspectorFrontendHost.events.addEventListener(
55 InspectorFrontendHostAPI.Events.IndexingDone, this._onIndexingDone, this );
56 InspectorFrontendHost.events.addEventListener(
57 InspectorFrontendHostAPI.Events.SearchCompleted, this._onSearchCompleted , this);
53 58
54 this._initExcludePatterSetting(); 59 this._initExcludePatterSetting();
55 60
56 this._fileSystemsLoadedPromise = this._requestFileSystems(); 61 this._fileSystemsLoadedPromise = this._requestFileSystems();
62 }
63
64 /**
65 * @return {!Promise<!Array<!WebInspector.IsolatedFileSystem>>}
66 */
67 _requestFileSystems() {
68 var fulfill;
69 var promise = new Promise(f => fulfill = f);
70 InspectorFrontendHost.events.addEventListener(
71 InspectorFrontendHostAPI.Events.FileSystemsLoaded, onFileSystemsLoaded, this);
72 InspectorFrontendHost.requestFileSystems();
73 return promise;
74
75 /**
76 * @param {!WebInspector.Event} event
77 * @this {WebInspector.IsolatedFileSystemManager}
78 */
79 function onFileSystemsLoaded(event) {
80 var fileSystems = /** @type {!Array.<!WebInspector.IsolatedFileSystemManag er.FileSystem>} */ (event.data);
81 var promises = [];
82 for (var i = 0; i < fileSystems.length; ++i)
83 promises.push(this._innerAddFileSystem(fileSystems[i], false));
84 Promise.all(promises).then(onFileSystemsAdded);
85 }
86
87 /**
88 * @param {!Array<?WebInspector.IsolatedFileSystem>} fileSystems
89 */
90 function onFileSystemsAdded(fileSystems) {
91 fulfill(fileSystems.filter(fs => !!fs));
92 }
93 }
94
95 addFileSystem() {
96 InspectorFrontendHost.addFileSystem('');
97 }
98
99 /**
100 * @param {!WebInspector.IsolatedFileSystem} fileSystem
101 */
102 removeFileSystem(fileSystem) {
103 InspectorFrontendHost.removeFileSystem(fileSystem.embedderPath());
104 }
105
106 /**
107 * @return {!Promise<!Array<!WebInspector.IsolatedFileSystem>>}
108 */
109 waitForFileSystems() {
110 return this._fileSystemsLoadedPromise;
111 }
112
113 /**
114 * @param {!WebInspector.IsolatedFileSystemManager.FileSystem} fileSystem
115 * @param {boolean} dispatchEvent
116 * @return {!Promise<?WebInspector.IsolatedFileSystem>}
117 */
118 _innerAddFileSystem(fileSystem, dispatchEvent) {
119 var embedderPath = fileSystem.fileSystemPath;
120 var fileSystemURL = WebInspector.ParsedURL.platformPathToURL(fileSystem.file SystemPath);
121 var promise = WebInspector.IsolatedFileSystem.create(
122 this, fileSystemURL, embedderPath, fileSystem.fileSystemName, fileSystem .rootURL);
123 return promise.then(storeFileSystem.bind(this));
124
125 /**
126 * @param {?WebInspector.IsolatedFileSystem} fileSystem
127 * @this {WebInspector.IsolatedFileSystemManager}
128 */
129 function storeFileSystem(fileSystem) {
130 if (!fileSystem)
131 return null;
132 this._fileSystems.set(fileSystemURL, fileSystem);
133 if (dispatchEvent)
134 this.dispatchEventToListeners(WebInspector.IsolatedFileSystemManager.Eve nts.FileSystemAdded, fileSystem);
135 return fileSystem;
136 }
137 }
138
139 /**
140 * @param {!WebInspector.Event} event
141 */
142 _onFileSystemAdded(event) {
143 var errorMessage = /** @type {string} */ (event.data['errorMessage']);
144 var fileSystem = /** @type {?WebInspector.IsolatedFileSystemManager.FileSyst em} */ (event.data['fileSystem']);
145 if (errorMessage)
146 WebInspector.console.error(errorMessage);
147 else if (fileSystem)
148 this._innerAddFileSystem(fileSystem, true);
149 }
150
151 /**
152 * @param {!WebInspector.Event} event
153 */
154 _onFileSystemRemoved(event) {
155 var embedderPath = /** @type {string} */ (event.data);
156 var fileSystemPath = WebInspector.ParsedURL.platformPathToURL(embedderPath);
157 var isolatedFileSystem = this._fileSystems.get(fileSystemPath);
158 if (!isolatedFileSystem)
159 return;
160 this._fileSystems.delete(fileSystemPath);
161 isolatedFileSystem.fileSystemRemoved();
162 this.dispatchEventToListeners(WebInspector.IsolatedFileSystemManager.Events. FileSystemRemoved, isolatedFileSystem);
163 }
164
165 /**
166 * @param {!WebInspector.Event} event
167 */
168 _onFileSystemFilesChanged(event) {
169 var embedderPaths = /** @type {!Array<string>} */ (event.data);
170 var paths = embedderPaths.map(embedderPath => WebInspector.ParsedURL.platfor mPathToURL(embedderPath));
171 this.dispatchEventToListeners(WebInspector.IsolatedFileSystemManager.Events. FileSystemFilesChanged, paths);
172 }
173
174 /**
175 * @return {!Array<!WebInspector.IsolatedFileSystem>}
176 */
177 fileSystems() {
178 return this._fileSystems.valuesArray();
179 }
180
181 /**
182 * @param {string} fileSystemPath
183 * @return {?WebInspector.IsolatedFileSystem}
184 */
185 fileSystem(fileSystemPath) {
186 return this._fileSystems.get(fileSystemPath) || null;
187 }
188
189 _initExcludePatterSetting() {
190 var defaultCommonExcludedFolders = [
191 '/node_modules/', '/bower_components/', '/\\.devtools', '/\\.git/', '/\\.s ass-cache/', '/\\.hg/', '/\\.idea/',
192 '/\\.svn/', '/\\.cache/', '/\\.project/'
193 ];
194 var defaultWinExcludedFolders = ['/Thumbs.db$', '/ehthumbs.db$', '/Desktop.i ni$', '/\\$RECYCLE.BIN/'];
195 var defaultMacExcludedFolders = [
196 '/\\.DS_Store$', '/\\.Trashes$', '/\\.Spotlight-V100$', '/\\.AppleDouble$' , '/\\.LSOverride$', '/Icon$',
197 '/\\._.*$'
198 ];
199 var defaultLinuxExcludedFolders = ['/.*~$'];
200 var defaultExcludedFolders = defaultCommonExcludedFolders;
201 if (WebInspector.isWin())
202 defaultExcludedFolders = defaultExcludedFolders.concat(defaultWinExcludedF olders);
203 else if (WebInspector.isMac())
204 defaultExcludedFolders = defaultExcludedFolders.concat(defaultMacExcludedF olders);
205 else
206 defaultExcludedFolders = defaultExcludedFolders.concat(defaultLinuxExclude dFolders);
207 var defaultExcludedFoldersPattern = defaultExcludedFolders.join('|');
208 this._workspaceFolderExcludePatternSetting = WebInspector.settings.createReg ExpSetting(
209 'workspaceFolderExcludePattern', defaultExcludedFoldersPattern, WebInspe ctor.isWin() ? 'i' : '');
210 }
211
212 /**
213 * @return {!WebInspector.Setting}
214 */
215 workspaceFolderExcludePatternSetting() {
216 return this._workspaceFolderExcludePatternSetting;
217 }
218
219 /**
220 * @param {function(!Array.<string>)} callback
221 * @return {number}
222 */
223 registerCallback(callback) {
224 var requestId = ++WebInspector.IsolatedFileSystemManager._lastRequestId;
225 this._callbacks.set(requestId, callback);
226 return requestId;
227 }
228
229 /**
230 * @param {!WebInspector.Progress} progress
231 * @return {number}
232 */
233 registerProgress(progress) {
234 var requestId = ++WebInspector.IsolatedFileSystemManager._lastRequestId;
235 this._progresses.set(requestId, progress);
236 return requestId;
237 }
238
239 /**
240 * @param {!WebInspector.Event} event
241 */
242 _onIndexingTotalWorkCalculated(event) {
243 var requestId = /** @type {number} */ (event.data['requestId']);
244 var totalWork = /** @type {number} */ (event.data['totalWork']);
245
246 var progress = this._progresses.get(requestId);
247 if (!progress)
248 return;
249 progress.setTotalWork(totalWork);
250 }
251
252 /**
253 * @param {!WebInspector.Event} event
254 */
255 _onIndexingWorked(event) {
256 var requestId = /** @type {number} */ (event.data['requestId']);
257 var worked = /** @type {number} */ (event.data['worked']);
258
259 var progress = this._progresses.get(requestId);
260 if (!progress)
261 return;
262 progress.worked(worked);
263 if (progress.isCanceled()) {
264 InspectorFrontendHost.stopIndexing(requestId);
265 this._onIndexingDone(event);
266 }
267 }
268
269 /**
270 * @param {!WebInspector.Event} event
271 */
272 _onIndexingDone(event) {
273 var requestId = /** @type {number} */ (event.data['requestId']);
274
275 var progress = this._progresses.get(requestId);
276 if (!progress)
277 return;
278 progress.done();
279 this._progresses.delete(requestId);
280 }
281
282 /**
283 * @param {!WebInspector.Event} event
284 */
285 _onSearchCompleted(event) {
286 var requestId = /** @type {number} */ (event.data['requestId']);
287 var files = /** @type {!Array.<string>} */ (event.data['files']);
288
289 var callback = this._callbacks.get(requestId);
290 if (!callback)
291 return;
292 callback.call(null, files);
293 this._callbacks.delete(requestId);
294 }
57 }; 295 };
58 296
59 /** @typedef {!{fileSystemName: string, rootURL: string, fileSystemPath: string} } */ 297 /** @typedef {!{fileSystemName: string, rootURL: string, fileSystemPath: string} } */
60 WebInspector.IsolatedFileSystemManager.FileSystem; 298 WebInspector.IsolatedFileSystemManager.FileSystem;
61 299
62 /** @enum {symbol} */ 300 /** @enum {symbol} */
63 WebInspector.IsolatedFileSystemManager.Events = { 301 WebInspector.IsolatedFileSystemManager.Events = {
64 FileSystemAdded: Symbol("FileSystemAdded"), 302 FileSystemAdded: Symbol('FileSystemAdded'),
65 FileSystemRemoved: Symbol("FileSystemRemoved"), 303 FileSystemRemoved: Symbol('FileSystemRemoved'),
66 FileSystemFilesChanged: Symbol("FileSystemFilesChanged"), 304 FileSystemFilesChanged: Symbol('FileSystemFilesChanged'),
67 ExcludedFolderAdded: Symbol("ExcludedFolderAdded"), 305 ExcludedFolderAdded: Symbol('ExcludedFolderAdded'),
68 ExcludedFolderRemoved: Symbol("ExcludedFolderRemoved") 306 ExcludedFolderRemoved: Symbol('ExcludedFolderRemoved')
69 }; 307 };
70 308
71 WebInspector.IsolatedFileSystemManager._lastRequestId = 0; 309 WebInspector.IsolatedFileSystemManager._lastRequestId = 0;
72 310
73 WebInspector.IsolatedFileSystemManager.prototype = {
74 /**
75 * @return {!Promise<!Array<!WebInspector.IsolatedFileSystem>>}
76 */
77 _requestFileSystems: function()
78 {
79 var fulfill;
80 var promise = new Promise(f => fulfill = f);
81 InspectorFrontendHost.events.addEventListener(InspectorFrontendHostAPI.E vents.FileSystemsLoaded, onFileSystemsLoaded, this);
82 InspectorFrontendHost.requestFileSystems();
83 return promise;
84
85 /**
86 * @param {!WebInspector.Event} event
87 * @this {WebInspector.IsolatedFileSystemManager}
88 */
89 function onFileSystemsLoaded(event)
90 {
91 var fileSystems = /** @type {!Array.<!WebInspector.IsolatedFileSyste mManager.FileSystem>} */ (event.data);
92 var promises = [];
93 for (var i = 0; i < fileSystems.length; ++i)
94 promises.push(this._innerAddFileSystem(fileSystems[i], false));
95 Promise.all(promises).then(onFileSystemsAdded);
96 }
97
98 /**
99 * @param {!Array<?WebInspector.IsolatedFileSystem>} fileSystems
100 */
101 function onFileSystemsAdded(fileSystems)
102 {
103 fulfill(fileSystems.filter(fs => !!fs));
104 }
105 },
106
107 addFileSystem: function()
108 {
109 InspectorFrontendHost.addFileSystem("");
110 },
111
112 /**
113 * @param {!WebInspector.IsolatedFileSystem} fileSystem
114 */
115 removeFileSystem: function(fileSystem)
116 {
117 InspectorFrontendHost.removeFileSystem(fileSystem.embedderPath());
118 },
119
120 /**
121 * @return {!Promise<!Array<!WebInspector.IsolatedFileSystem>>}
122 */
123 waitForFileSystems: function()
124 {
125 return this._fileSystemsLoadedPromise;
126 },
127
128 /**
129 * @param {!WebInspector.IsolatedFileSystemManager.FileSystem} fileSystem
130 * @param {boolean} dispatchEvent
131 * @return {!Promise<?WebInspector.IsolatedFileSystem>}
132 */
133 _innerAddFileSystem: function(fileSystem, dispatchEvent)
134 {
135 var embedderPath = fileSystem.fileSystemPath;
136 var fileSystemURL = WebInspector.ParsedURL.platformPathToURL(fileSystem. fileSystemPath);
137 var promise = WebInspector.IsolatedFileSystem.create(this, fileSystemURL , embedderPath, fileSystem.fileSystemName, fileSystem.rootURL);
138 return promise.then(storeFileSystem.bind(this));
139
140 /**
141 * @param {?WebInspector.IsolatedFileSystem} fileSystem
142 * @this {WebInspector.IsolatedFileSystemManager}
143 */
144 function storeFileSystem(fileSystem)
145 {
146 if (!fileSystem)
147 return null;
148 this._fileSystems.set(fileSystemURL, fileSystem);
149 if (dispatchEvent)
150 this.dispatchEventToListeners(WebInspector.IsolatedFileSystemMan ager.Events.FileSystemAdded, fileSystem);
151 return fileSystem;
152 }
153 },
154
155 /**
156 * @param {!WebInspector.Event} event
157 */
158 _onFileSystemAdded: function(event)
159 {
160 var errorMessage = /** @type {string} */ (event.data["errorMessage"]);
161 var fileSystem = /** @type {?WebInspector.IsolatedFileSystemManager.File System} */ (event.data["fileSystem"]);
162 if (errorMessage)
163 WebInspector.console.error(errorMessage);
164 else if (fileSystem)
165 this._innerAddFileSystem(fileSystem, true);
166 },
167
168 /**
169 * @param {!WebInspector.Event} event
170 */
171 _onFileSystemRemoved: function(event)
172 {
173 var embedderPath = /** @type {string} */ (event.data);
174 var fileSystemPath = WebInspector.ParsedURL.platformPathToURL(embedderPa th);
175 var isolatedFileSystem = this._fileSystems.get(fileSystemPath);
176 if (!isolatedFileSystem)
177 return;
178 this._fileSystems.delete(fileSystemPath);
179 isolatedFileSystem.fileSystemRemoved();
180 this.dispatchEventToListeners(WebInspector.IsolatedFileSystemManager.Eve nts.FileSystemRemoved, isolatedFileSystem);
181 },
182
183 /**
184 * @param {!WebInspector.Event} event
185 */
186 _onFileSystemFilesChanged: function(event)
187 {
188 var embedderPaths = /** @type {!Array<string>} */ (event.data);
189 var paths = embedderPaths.map(embedderPath => WebInspector.ParsedURL.pla tformPathToURL(embedderPath));
190 this.dispatchEventToListeners(WebInspector.IsolatedFileSystemManager.Eve nts.FileSystemFilesChanged, paths);
191 },
192
193 /**
194 * @return {!Array<!WebInspector.IsolatedFileSystem>}
195 */
196 fileSystems: function()
197 {
198 return this._fileSystems.valuesArray();
199 },
200
201 /**
202 * @param {string} fileSystemPath
203 * @return {?WebInspector.IsolatedFileSystem}
204 */
205 fileSystem: function(fileSystemPath)
206 {
207 return this._fileSystems.get(fileSystemPath) || null;
208 },
209
210 _initExcludePatterSetting: function()
211 {
212 var defaultCommonExcludedFolders = [
213 "/node_modules/",
214 "/bower_components/",
215 "/\\.devtools",
216 "/\\.git/",
217 "/\\.sass-cache/",
218 "/\\.hg/",
219 "/\\.idea/",
220 "/\\.svn/",
221 "/\\.cache/",
222 "/\\.project/"
223 ];
224 var defaultWinExcludedFolders = [
225 "/Thumbs.db$",
226 "/ehthumbs.db$",
227 "/Desktop.ini$",
228 "/\\$RECYCLE.BIN/"
229 ];
230 var defaultMacExcludedFolders = [
231 "/\\.DS_Store$",
232 "/\\.Trashes$",
233 "/\\.Spotlight-V100$",
234 "/\\.AppleDouble$",
235 "/\\.LSOverride$",
236 "/Icon$",
237 "/\\._.*$"
238 ];
239 var defaultLinuxExcludedFolders = [
240 "/.*~$"
241 ];
242 var defaultExcludedFolders = defaultCommonExcludedFolders;
243 if (WebInspector.isWin())
244 defaultExcludedFolders = defaultExcludedFolders.concat(defaultWinExc ludedFolders);
245 else if (WebInspector.isMac())
246 defaultExcludedFolders = defaultExcludedFolders.concat(defaultMacExc ludedFolders);
247 else
248 defaultExcludedFolders = defaultExcludedFolders.concat(defaultLinuxE xcludedFolders);
249 var defaultExcludedFoldersPattern = defaultExcludedFolders.join("|");
250 this._workspaceFolderExcludePatternSetting = WebInspector.settings.creat eRegExpSetting("workspaceFolderExcludePattern", defaultExcludedFoldersPattern, W ebInspector.isWin() ? "i" : "");
251 },
252
253 /**
254 * @return {!WebInspector.Setting}
255 */
256 workspaceFolderExcludePatternSetting: function()
257 {
258 return this._workspaceFolderExcludePatternSetting;
259 },
260
261 /**
262 * @param {function(!Array.<string>)} callback
263 * @return {number}
264 */
265 registerCallback: function(callback)
266 {
267 var requestId = ++WebInspector.IsolatedFileSystemManager._lastRequestId;
268 this._callbacks.set(requestId, callback);
269 return requestId;
270 },
271
272 /**
273 * @param {!WebInspector.Progress} progress
274 * @return {number}
275 */
276 registerProgress: function(progress)
277 {
278 var requestId = ++WebInspector.IsolatedFileSystemManager._lastRequestId;
279 this._progresses.set(requestId, progress);
280 return requestId;
281 },
282
283 /**
284 * @param {!WebInspector.Event} event
285 */
286 _onIndexingTotalWorkCalculated: function(event)
287 {
288 var requestId = /** @type {number} */ (event.data["requestId"]);
289 var totalWork = /** @type {number} */ (event.data["totalWork"]);
290
291 var progress = this._progresses.get(requestId);
292 if (!progress)
293 return;
294 progress.setTotalWork(totalWork);
295 },
296
297 /**
298 * @param {!WebInspector.Event} event
299 */
300 _onIndexingWorked: function(event)
301 {
302 var requestId = /** @type {number} */ (event.data["requestId"]);
303 var worked = /** @type {number} */ (event.data["worked"]);
304
305 var progress = this._progresses.get(requestId);
306 if (!progress)
307 return;
308 progress.worked(worked);
309 if (progress.isCanceled()) {
310 InspectorFrontendHost.stopIndexing(requestId);
311 this._onIndexingDone(event);
312 }
313 },
314
315 /**
316 * @param {!WebInspector.Event} event
317 */
318 _onIndexingDone: function(event)
319 {
320 var requestId = /** @type {number} */ (event.data["requestId"]);
321
322 var progress = this._progresses.get(requestId);
323 if (!progress)
324 return;
325 progress.done();
326 this._progresses.delete(requestId);
327 },
328
329 /**
330 * @param {!WebInspector.Event} event
331 */
332 _onSearchCompleted: function(event)
333 {
334 var requestId = /** @type {number} */ (event.data["requestId"]);
335 var files = /** @type {!Array.<string>} */ (event.data["files"]);
336
337 var callback = this._callbacks.get(requestId);
338 if (!callback)
339 return;
340 callback.call(null, files);
341 this._callbacks.delete(requestId);
342 },
343
344 __proto__: WebInspector.Object.prototype
345 };
346
347 /** 311 /**
348 * @type {!WebInspector.IsolatedFileSystemManager} 312 * @type {!WebInspector.IsolatedFileSystemManager}
349 */ 313 */
350 WebInspector.isolatedFileSystemManager; 314 WebInspector.isolatedFileSystemManager;
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698