Index: Source/devtools/front_end/sdk/WorkspaceController.js |
diff --git a/Source/devtools/front_end/sdk/WorkspaceController.js b/Source/devtools/front_end/sdk/WorkspaceController.js |
index 06ad17b14d9fd7f040d799b4d49f2cfb803215c0..47289bd3c31964dc6d4daaa1f1afffb9176ba75c 100644 |
--- a/Source/devtools/front_end/sdk/WorkspaceController.js |
+++ b/Source/devtools/front_end/sdk/WorkspaceController.js |
@@ -35,6 +35,7 @@ WebInspector.WorkspaceController = function(workspace) |
{ |
this._workspace = workspace; |
window.addEventListener("focus", this._windowFocused.bind(this), false); |
+ this._fileSystemRefreshThrottler = new WebInspector.Throttler(1000); |
} |
WebInspector.WorkspaceController.prototype = { |
@@ -43,19 +44,19 @@ WebInspector.WorkspaceController.prototype = { |
*/ |
_windowFocused: function(event) |
{ |
- if (this._fileSystemRefreshTimeout) |
- return; |
- this._fileSystemRefreshTimeout = setTimeout(refreshFileSystems.bind(this), 1000); |
+ this._fileSystemRefreshThrottler.schedule(refreshFileSystems.bind(this)); |
/** |
* @this {WebInspector.WorkspaceController} |
+ * @param {!WebInspector.Throttler.FinishCallback} callback |
*/ |
- function refreshFileSystems() |
+ function refreshFileSystems(callback) |
{ |
- delete this._fileSystemRefreshTimeout; |
+ var barrier = new CallbackBarrier(); |
var projects = this._workspace.projects(); |
for (var i = 0; i < projects.length; ++i) |
- projects[i].refresh("/"); |
+ projects[i].refresh("/", barrier.createCallback()); |
+ barrier.callWhenDone(callback); |
} |
} |
} |