| 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 22 matching lines...) Expand all Loading... |
| 33 * @param {!WebInspector.IsolatedFileSystemManager} manager | 33 * @param {!WebInspector.IsolatedFileSystemManager} manager |
| 34 * @param {string} path | 34 * @param {string} path |
| 35 * @param {string} name | 35 * @param {string} name |
| 36 * @param {string} rootURL | 36 * @param {string} rootURL |
| 37 */ | 37 */ |
| 38 WebInspector.IsolatedFileSystem = function(manager, path, name, rootURL) | 38 WebInspector.IsolatedFileSystem = function(manager, path, name, rootURL) |
| 39 { | 39 { |
| 40 this._manager = manager; | 40 this._manager = manager; |
| 41 this._path = path; | 41 this._path = path; |
| 42 this._domFileSystem = InspectorFrontendHost.isolatedFileSystem(name, rootURL
); | 42 this._domFileSystem = InspectorFrontendHost.isolatedFileSystem(name, rootURL
); |
| 43 this._excludedFoldersSetting = WebInspector.settings.createLocalSetting("wor
kspaceExcludedFolders", {}); |
| 44 this._excludedFolders = this._excludedFoldersSetting.get()[path] || []; |
| 43 } | 45 } |
| 44 | 46 |
| 45 /** | 47 /** |
| 46 * @param {!FileError} error | 48 * @param {!FileError} error |
| 47 * @return {string} | 49 * @return {string} |
| 48 */ | 50 */ |
| 49 WebInspector.IsolatedFileSystem.errorMessage = function(error) | 51 WebInspector.IsolatedFileSystem.errorMessage = function(error) |
| 50 { | 52 { |
| 51 return WebInspector.UIString("File system error: %s", error.message); | 53 return WebInspector.UIString("File system error: %s", error.message); |
| 52 } | 54 } |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 94 | 96 |
| 95 /** | 97 /** |
| 96 * @param {!Array.<!FileEntry>} entries | 98 * @param {!Array.<!FileEntry>} entries |
| 97 * @this {WebInspector.IsolatedFileSystem} | 99 * @this {WebInspector.IsolatedFileSystem} |
| 98 */ | 100 */ |
| 99 function innerCallback(entries) | 101 function innerCallback(entries) |
| 100 { | 102 { |
| 101 for (var i = 0; i < entries.length; ++i) { | 103 for (var i = 0; i < entries.length; ++i) { |
| 102 var entry = entries[i]; | 104 var entry = entries[i]; |
| 103 if (!entry.isDirectory) { | 105 if (!entry.isDirectory) { |
| 104 if (this._manager.excludedFolderManager().isFileExcluded(thi
s._path, entry.fullPath)) | 106 if (this._isFileExcluded(entry.fullPath)) |
| 105 continue; | 107 continue; |
| 106 fileCallback(entry.fullPath.substr(1)); | 108 fileCallback(entry.fullPath.substr(1)); |
| 107 } | 109 } |
| 108 else { | 110 else { |
| 109 if (this._manager.excludedFolderManager().isFileExcluded(thi
s._path, entry.fullPath + "/")) | 111 if (this._isFileExcluded(entry.fullPath + "/")) |
| 110 continue; | 112 continue; |
| 111 ++pendingRequests; | 113 ++pendingRequests; |
| 112 this._requestEntries(entry.fullPath, innerCallback.bind(this
)); | 114 this._requestEntries(entry.fullPath, innerCallback.bind(this
)); |
| 113 } | 115 } |
| 114 } | 116 } |
| 115 if (finishedCallback && (--pendingRequests === 0)) | 117 if (finishedCallback && (--pendingRequests === 0)) |
| 116 finishedCallback(); | 118 finishedCallback(); |
| 117 } | 119 } |
| 118 }, | 120 }, |
| 119 | 121 |
| (...skipping 359 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 479 { | 481 { |
| 480 this._readDirectory(dirEntry, callback); | 482 this._readDirectory(dirEntry, callback); |
| 481 } | 483 } |
| 482 | 484 |
| 483 function errorHandler(error) | 485 function errorHandler(error) |
| 484 { | 486 { |
| 485 var errorMessage = WebInspector.IsolatedFileSystem.errorMessage(erro
r); | 487 var errorMessage = WebInspector.IsolatedFileSystem.errorMessage(erro
r); |
| 486 console.error(errorMessage + " when requesting entry '" + path + "'"
); | 488 console.error(errorMessage + " when requesting entry '" + path + "'"
); |
| 487 callback([]); | 489 callback([]); |
| 488 } | 490 } |
| 491 }, |
| 492 |
| 493 _saveExcludedFolders: function() |
| 494 { |
| 495 var settingValue = this._excludedFoldersSetting.get(); |
| 496 settingValue[this._path] = this._excludedFolders; |
| 497 this._excludedFoldersSetting.set(settingValue); |
| 498 }, |
| 499 |
| 500 /** |
| 501 * @param {string} path |
| 502 */ |
| 503 addExcludedFolder: function(path) |
| 504 { |
| 505 this._excludedFolders.push(path); |
| 506 this._saveExcludedFolders(); |
| 507 this._manager.dispatchEventToListeners(WebInspector.IsolatedFileSystemMa
nager.Events.ExcludedFolderAdded, path); |
| 508 }, |
| 509 |
| 510 /** |
| 511 * @param {string} path |
| 512 */ |
| 513 removeExcludedFolder: function(path) |
| 514 { |
| 515 this._excludedFolders.remove(path); |
| 516 this._saveExcludedFolders(); |
| 517 this._manager.dispatchEventToListeners(WebInspector.IsolatedFileSystemMa
nager.Events.ExcludedFolderRemoved, path); |
| 518 }, |
| 519 |
| 520 fileSystemRemoved: function() |
| 521 { |
| 522 var settingValue = this._excludedFoldersSetting.get(); |
| 523 delete settingValue[this._path]; |
| 524 this._excludedFoldersSetting.set(settingValue); |
| 525 }, |
| 526 |
| 527 /** |
| 528 * @param {string} folderPath |
| 529 * @return {boolean} |
| 530 */ |
| 531 _isFileExcluded: function(folderPath) |
| 532 { |
| 533 for (var i = 0; i < this._excludedFolders.length; ++i) { |
| 534 if (this._excludedFolders[i] === folderPath) |
| 535 return true; |
| 536 } |
| 537 var regex = this._manager.workspaceFolderExcludePatternSetting().asRegEx
p(); |
| 538 return !!(regex && regex.test(folderPath)); |
| 539 }, |
| 540 |
| 541 /** |
| 542 * @return {!Array<string>} |
| 543 */ |
| 544 excludedFolders: function() |
| 545 { |
| 546 return this._excludedFolders.slice(); |
| 489 } | 547 } |
| 490 } | 548 } |
| OLD | NEW |