Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(510)

Side by Side Diff: Source/devtools/front_end/sdk/WorkspaceController.js

Issue 353743008: DevTools: Throttle file system refreshes on focus. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « Source/devtools/front_end/sdk/Workspace.js ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 17 matching lines...) Expand all
28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
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 window.addEventListener("focus", this._windowFocused.bind(this), false); 37 window.addEventListener("focus", this._windowFocused.bind(this), false);
38 this._fileSystemRefreshThrottler = new WebInspector.Throttler(1000);
38 } 39 }
39 40
40 WebInspector.WorkspaceController.prototype = { 41 WebInspector.WorkspaceController.prototype = {
41 /** 42 /**
42 * @param {?Event} event 43 * @param {?Event} event
43 */ 44 */
44 _windowFocused: function(event) 45 _windowFocused: function(event)
45 { 46 {
46 if (this._fileSystemRefreshTimeout) 47 this._fileSystemRefreshThrottler.schedule(refreshFileSystems.bind(this)) ;
47 return;
48 this._fileSystemRefreshTimeout = setTimeout(refreshFileSystems.bind(this ), 1000);
49 48
50 /** 49 /**
51 * @this {WebInspector.WorkspaceController} 50 * @this {WebInspector.WorkspaceController}
51 * @param {!WebInspector.Throttler.FinishCallback} callback
52 */ 52 */
53 function refreshFileSystems() 53 function refreshFileSystems(callback)
54 { 54 {
55 delete this._fileSystemRefreshTimeout; 55 var barrier = new CallbackBarrier();
56 var projects = this._workspace.projects(); 56 var projects = this._workspace.projects();
57 for (var i = 0; i < projects.length; ++i) 57 for (var i = 0; i < projects.length; ++i)
58 projects[i].refresh("/"); 58 projects[i].refresh("/", barrier.createCallback());
59 barrier.callWhenDone(callback);
59 } 60 }
60 } 61 }
61 } 62 }
OLDNEW
« no previous file with comments | « Source/devtools/front_end/sdk/Workspace.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698