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 18 matching lines...) Expand all Loading... | |
29 */ | 29 */ |
30 | 30 |
31 /** | 31 /** |
32 * @constructor | 32 * @constructor |
33 */ | 33 */ |
34 WebInspector.WorkspaceController = function(workspace) | 34 WebInspector.WorkspaceController = function(workspace) |
35 { | 35 { |
36 this._workspace = workspace; | 36 this._workspace = workspace; |
37 WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeMod el.EventTypes.InspectedURLChanged, this._inspectedURLChanged, this); | 37 WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeMod el.EventTypes.InspectedURLChanged, this._inspectedURLChanged, this); |
38 window.addEventListener("focus", this._windowFocused.bind(this), false); | 38 window.addEventListener("focus", this._windowFocused.bind(this), false); |
39 this._fileSystemRefreshThrottler = new WebInspector.Throttler(1000); | |
39 } | 40 } |
40 | 41 |
41 WebInspector.WorkspaceController.prototype = { | 42 WebInspector.WorkspaceController.prototype = { |
42 /** | 43 /** |
43 * @param {!WebInspector.Event} event | 44 * @param {!WebInspector.Event} event |
44 */ | 45 */ |
45 _inspectedURLChanged: function(event) | 46 _inspectedURLChanged: function(event) |
46 { | 47 { |
47 WebInspector.Revision.filterOutStaleRevisions(); | 48 WebInspector.Revision.filterOutStaleRevisions(); |
48 }, | 49 }, |
49 | 50 |
50 /** | 51 /** |
51 * @param {?Event} event | 52 * @param {?Event} event |
52 */ | 53 */ |
53 _windowFocused: function(event) | 54 _windowFocused: function(event) |
54 { | 55 { |
55 if (this._fileSystemRefreshTimeout) | 56 this._fileSystemRefreshThrottler.schedule(refreshFileSystems.bind(this)) ; |
56 return; | |
57 this._fileSystemRefreshTimeout = setTimeout(refreshFileSystems.bind(this ), 1000); | |
58 | 57 |
59 /** | 58 /** |
60 * @this {WebInspector.WorkspaceController} | 59 * @this {WebInspector.WorkspaceController} |
60 * @param {!WebInspector.Throttler.FinishCallback} callback | |
61 */ | 61 */ |
62 function refreshFileSystems() | 62 function refreshFileSystems(callback) |
63 { | 63 { |
64 delete this._fileSystemRefreshTimeout; | 64 var barrier = new CallbackBarrier(); |
65 var projects = this._workspace.projects(); | 65 var projects = this._workspace.projects(); |
66 for (var i = 0; i < projects.length; ++i) | 66 for (var i = 0; i < projects.length; ++i) |
67 projects[i].refresh("/"); | 67 projects[i].refresh("/", barrier.createCallback()); |
68 barrier.callWhenDone(callback); | |
lushnikov
2014/06/26 16:01:25
FYI: this differs from what it used to be, but I b
| |
68 } | 69 } |
69 } | 70 } |
70 } | 71 } |
OLD | NEW |