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

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, 6 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
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 18 matching lines...) Expand all
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 }
OLDNEW
« Source/devtools/front_end/sdk/Workspace.js ('K') | « 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