Index: third_party/WebKit/Source/devtools/front_end/workspace/IsolatedFileSystem.js |
diff --git a/third_party/WebKit/Source/devtools/front_end/workspace/IsolatedFileSystem.js b/third_party/WebKit/Source/devtools/front_end/workspace/IsolatedFileSystem.js |
index 8f5f211c7e3a5694f74038b54b4133bee3c69323..32591b7b4774ae4f6212f7f614faec0c34057d8e 100644 |
--- a/third_party/WebKit/Source/devtools/front_end/workspace/IsolatedFileSystem.js |
+++ b/third_party/WebKit/Source/devtools/front_end/workspace/IsolatedFileSystem.js |
@@ -40,6 +40,8 @@ WebInspector.IsolatedFileSystem = function(manager, path, name, rootURL) |
this._manager = manager; |
this._path = path; |
this._domFileSystem = InspectorFrontendHost.isolatedFileSystem(name, rootURL); |
+ this._excludedFoldersSetting = WebInspector.settings.createLocalSetting("workspaceExcludedFolders", {}); |
+ this._excludedFolders = this._excludedFoldersSetting.get()[path] || []; |
dgozman
2015/09/26 01:46:41
Note that you modify setting value in place with a
|
} |
/** |
@@ -101,12 +103,12 @@ WebInspector.IsolatedFileSystem.prototype = { |
for (var i = 0; i < entries.length; ++i) { |
var entry = entries[i]; |
if (!entry.isDirectory) { |
- if (this._manager.excludedFolderManager().isFileExcluded(this._path, entry.fullPath)) |
+ if (this._isFileExcluded(entry.fullPath)) |
continue; |
fileCallback(entry.fullPath.substr(1)); |
} |
else { |
- if (this._manager.excludedFolderManager().isFileExcluded(this._path, entry.fullPath + "/")) |
+ if (this._isFileExcluded(entry.fullPath + "/")) |
continue; |
++pendingRequests; |
this._requestEntries(entry.fullPath, innerCallback.bind(this)); |
@@ -487,5 +489,61 @@ WebInspector.IsolatedFileSystem.prototype = { |
console.error(errorMessage + " when requesting entry '" + path + "'"); |
callback([]); |
} |
+ }, |
+ |
+ _saveExcludedFolders: function() |
+ { |
+ var settingValue = this._excludedFoldersSetting.get(); |
+ settingValue[this._path] = this._excludedFolders; |
+ this._excludedFoldersSetting.set(settingValue); |
+ }, |
+ |
+ /** |
+ * @param {string} path |
+ */ |
+ addExcludedFolder: function(path) |
+ { |
+ this._excludedFolders.push(path); |
+ this._saveExcludedFolders(); |
+ this._manager.dispatchEventToListeners(WebInspector.IsolatedFileSystemManager.Events.ExcludedFolderAdded, path); |
+ }, |
+ |
+ /** |
+ * @param {string} path |
+ */ |
+ removeExcludedFolder: function(path) |
+ { |
+ this._excludedFolders.remove(path); |
+ this._saveExcludedFolders(); |
+ this._manager.dispatchEventToListeners(WebInspector.IsolatedFileSystemManager.Events.ExcludedFolderRemoved, path); |
+ }, |
+ |
+ fileSystemRemoved: function() |
+ { |
+ var settingValue = this._excludedFoldersSetting.get(); |
+ delete settingValue[this._path]; |
+ this._excludedFoldersSetting.set(settingValue); |
+ }, |
+ |
+ /** |
+ * @param {string} folderPath |
+ * @return {boolean} |
+ */ |
+ _isFileExcluded: function(folderPath) |
+ { |
+ for (var i = 0; i < this._excludedFolders.length; ++i) { |
+ if (this._excludedFolders[i] === folderPath) |
+ return true; |
+ } |
+ var regex = this._manager.workspaceFolderExcludePatternSetting().asRegExp(); |
+ return !!(regex && regex.test(folderPath)); |
+ }, |
+ |
+ /** |
+ * @return {!Array<string>} |
+ */ |
+ excludedFolders: function() |
+ { |
+ return this._excludedFolders.slice(); |
} |
} |