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

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

Issue 2296983003: DevTools: kill WI.IsolatedFileSystemManager FileSystemsLoaded event (Closed)
Patch Set: Created 4 years, 3 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 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
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
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
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;
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698