| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2013 Google Inc. All rights reserved. | 2 * Copyright (C) 2013 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 21 matching lines...) Expand all Loading... |
| 32 * @constructor | 32 * @constructor |
| 33 * @param {!WebInspector.IsolatedFileSystemManager} isolatedFileSystemManager | 33 * @param {!WebInspector.IsolatedFileSystemManager} isolatedFileSystemManager |
| 34 * @param {!WebInspector.Workspace} workspace | 34 * @param {!WebInspector.Workspace} workspace |
| 35 */ | 35 */ |
| 36 WebInspector.FileSystemWorkspaceBinding = function(isolatedFileSystemManager, wo
rkspace) | 36 WebInspector.FileSystemWorkspaceBinding = function(isolatedFileSystemManager, wo
rkspace) |
| 37 { | 37 { |
| 38 this._isolatedFileSystemManager = isolatedFileSystemManager; | 38 this._isolatedFileSystemManager = isolatedFileSystemManager; |
| 39 this._workspace = workspace; | 39 this._workspace = workspace; |
| 40 this._isolatedFileSystemManager.addEventListener(WebInspector.IsolatedFileSy
stemManager.Events.FileSystemAdded, this._fileSystemAdded, this); | 40 this._isolatedFileSystemManager.addEventListener(WebInspector.IsolatedFileSy
stemManager.Events.FileSystemAdded, this._fileSystemAdded, this); |
| 41 this._isolatedFileSystemManager.addEventListener(WebInspector.IsolatedFileSy
stemManager.Events.FileSystemRemoved, this._fileSystemRemoved, this); | 41 this._isolatedFileSystemManager.addEventListener(WebInspector.IsolatedFileSy
stemManager.Events.FileSystemRemoved, this._fileSystemRemoved, this); |
| 42 this._isolatedFileSystemManager.addEventListener(WebInspector.IsolatedFileSy
stemManager.Events.FileSystemFilesChanged, this._fileSystemFilesChanged, this); |
| 42 /** @type {!Map.<string, !WebInspector.FileSystemWorkspaceBinding.FileSystem
>} */ | 43 /** @type {!Map.<string, !WebInspector.FileSystemWorkspaceBinding.FileSystem
>} */ |
| 43 this._boundFileSystems = new Map(); | 44 this._boundFileSystems = new Map(); |
| 44 | 45 |
| 45 /** @type {!Object.<number, function(!Array.<string>)>} */ | 46 /** @type {!Object.<number, function(!Array.<string>)>} */ |
| 46 this._callbacks = {}; | 47 this._callbacks = {}; |
| 47 /** @type {!Object.<number, !WebInspector.Progress>} */ | 48 /** @type {!Object.<number, !WebInspector.Progress>} */ |
| 48 this._progresses = {}; | 49 this._progresses = {}; |
| 49 | 50 |
| 50 InspectorFrontendHost.events.addEventListener(InspectorFrontendHostAPI.Event
s.IndexingTotalWorkCalculated, this._onIndexingTotalWorkCalculated, this); | 51 InspectorFrontendHost.events.addEventListener(InspectorFrontendHostAPI.Event
s.IndexingTotalWorkCalculated, this._onIndexingTotalWorkCalculated, this); |
| 51 InspectorFrontendHost.events.addEventListener(InspectorFrontendHostAPI.Event
s.IndexingWorked, this._onIndexingWorked, this); | 52 InspectorFrontendHost.events.addEventListener(InspectorFrontendHostAPI.Event
s.IndexingWorked, this._onIndexingWorked, this); |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 91 */ | 92 */ |
| 92 _fileSystemRemoved: function(event) | 93 _fileSystemRemoved: function(event) |
| 93 { | 94 { |
| 94 var fileSystem = /** @type {!WebInspector.IsolatedFileSystem} */ (event.
data); | 95 var fileSystem = /** @type {!WebInspector.IsolatedFileSystem} */ (event.
data); |
| 95 var boundFileSystem = this._boundFileSystems.get(fileSystem.normalizedPa
th()); | 96 var boundFileSystem = this._boundFileSystems.get(fileSystem.normalizedPa
th()); |
| 96 boundFileSystem.dispose(); | 97 boundFileSystem.dispose(); |
| 97 this._boundFileSystems.remove(fileSystem.normalizedPath()); | 98 this._boundFileSystems.remove(fileSystem.normalizedPath()); |
| 98 }, | 99 }, |
| 99 | 100 |
| 100 /** | 101 /** |
| 102 * @param {!WebInspector.Event} event |
| 103 */ |
| 104 _fileSystemFilesChanged: function(event) |
| 105 { |
| 106 var paths = /** @type {!Array<string>} */ (event.data); |
| 107 for (var path of paths) { |
| 108 var normalizedPath = WebInspector.IsolatedFileSystem.normalizePath(p
ath); |
| 109 for (var key of this._boundFileSystems.keys()) { |
| 110 if (!normalizedPath.startsWith(key)) |
| 111 continue; |
| 112 this._boundFileSystems.get(key)._fileChanged(normalizedPath.subs
tr(key.length + 1)); |
| 113 } |
| 114 } |
| 115 }, |
| 116 |
| 117 /** |
| 101 * @param {string} projectId | 118 * @param {string} projectId |
| 102 * @return {string} | 119 * @return {string} |
| 103 */ | 120 */ |
| 104 fileSystemPath: function(projectId) | 121 fileSystemPath: function(projectId) |
| 105 { | 122 { |
| 106 var fileSystemPath = projectId.substr("filesystem:".length); | 123 var fileSystemPath = projectId.substr("filesystem:".length); |
| 107 var normalizedPath = WebInspector.IsolatedFileSystem.normalizePath(fileS
ystemPath); | 124 var normalizedPath = WebInspector.IsolatedFileSystem.normalizePath(fileS
ystemPath); |
| 108 return projectId.substr("filesystem:".length); | 125 return projectId.substr("filesystem:".length); |
| 109 }, | 126 }, |
| 110 | 127 |
| (...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 226 { | 243 { |
| 227 WebInspector.Object.call(this); | 244 WebInspector.Object.call(this); |
| 228 this._fileSystemWorkspaceBinding = fileSystemWorkspaceBinding; | 245 this._fileSystemWorkspaceBinding = fileSystemWorkspaceBinding; |
| 229 this._fileSystem = isolatedFileSystem; | 246 this._fileSystem = isolatedFileSystem; |
| 230 this._fileSystemBaseURL = "file://" + this._fileSystem.normalizedPath() + "/
"; | 247 this._fileSystemBaseURL = "file://" + this._fileSystem.normalizedPath() + "/
"; |
| 231 this._fileSystemProjectURL = "filesystem:" + this._fileSystem.normalizedPath
(); | 248 this._fileSystemProjectURL = "filesystem:" + this._fileSystem.normalizedPath
(); |
| 232 this._workspace = workspace; | 249 this._workspace = workspace; |
| 233 | 250 |
| 234 this._projectId = WebInspector.FileSystemWorkspaceBinding.projectId(this._fi
leSystem.path()); | 251 this._projectId = WebInspector.FileSystemWorkspaceBinding.projectId(this._fi
leSystem.path()); |
| 235 console.assert(!this._workspace.project(this._projectId)); | 252 console.assert(!this._workspace.project(this._projectId)); |
| 236 this._workspace.addProject(this._projectId, this); | 253 this._project = this._workspace.addProject(this._projectId, this); |
| 237 this.populate(); | 254 this.populate(); |
| 238 } | 255 } |
| 239 | 256 |
| 240 WebInspector.FileSystemWorkspaceBinding.FileSystem.prototype = { | 257 WebInspector.FileSystemWorkspaceBinding.FileSystem.prototype = { |
| 241 /** | 258 /** |
| 242 * @override | 259 * @override |
| 243 * @return {string} | 260 * @return {string} |
| 244 */ | 261 */ |
| 245 type: function() | 262 type: function() |
| 246 { | 263 { |
| (...skipping 363 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 610 }, | 627 }, |
| 611 | 628 |
| 612 /** | 629 /** |
| 613 * @param {string} path | 630 * @param {string} path |
| 614 */ | 631 */ |
| 615 _removeFile: function(path) | 632 _removeFile: function(path) |
| 616 { | 633 { |
| 617 this.dispatchEventToListeners(WebInspector.ProjectDelegate.Events.FileRe
moved, path); | 634 this.dispatchEventToListeners(WebInspector.ProjectDelegate.Events.FileRe
moved, path); |
| 618 }, | 635 }, |
| 619 | 636 |
| 637 /** |
| 638 * @param {string} path |
| 639 */ |
| 640 _fileChanged: function(path) |
| 641 { |
| 642 var uiSourceCode = this._project.uiSourceCode(path); |
| 643 if (!uiSourceCode) { |
| 644 this._addFile(path); |
| 645 return; |
| 646 } |
| 647 this.dispatchEventToListeners(WebInspector.ProjectDelegate.Events.FileCh
anged, path); |
| 648 }, |
| 649 |
| 620 dispose: function() | 650 dispose: function() |
| 621 { | 651 { |
| 622 this._workspace.removeProject(this._projectId); | 652 this._workspace.removeProject(this._projectId); |
| 623 }, | 653 }, |
| 624 | 654 |
| 625 __proto__: WebInspector.Object.prototype | 655 __proto__: WebInspector.Object.prototype |
| 626 } | 656 } |
| OLD | NEW |