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

Side by Side Diff: third_party/WebKit/Source/devtools/front_end/timeline/EventsTimelineTreeView.js

Issue 2673733003: DevTools: Speed up timeline aggregated tree building. (Closed)
Patch Set: 4 landing Created 3 years, 10 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
OLDNEW
1 // Copyright 2017 The Chromium Authors. All rights reserved. 1 // Copyright 2017 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 /** 5 /**
6 * @unrestricted 6 * @unrestricted
7 */ 7 */
8 Timeline.EventsTimelineTreeView = class extends Timeline.TimelineTreeView { 8 Timeline.EventsTimelineTreeView = class extends Timeline.TimelineTreeView {
9 /** 9 /**
10 * @param {!TimelineModel.TimelineModel} model 10 * @param {!TimelineModel.TimelineModel} model
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
49 this.refreshTree(); 49 this.refreshTree();
50 if (selectedEvent) 50 if (selectedEvent)
51 this._selectEvent(selectedEvent, false); 51 this._selectEvent(selectedEvent, false);
52 } 52 }
53 53
54 /** 54 /**
55 * @param {!SDK.TracingModel.Event} event 55 * @param {!SDK.TracingModel.Event} event
56 * @return {?TimelineModel.TimelineProfileTree.Node} 56 * @return {?TimelineModel.TimelineProfileTree.Node}
57 */ 57 */
58 _findNodeWithEvent(event) { 58 _findNodeWithEvent(event) {
59 var iterators = [this._currentTree.children.values()]; 59 var iterators = [this._currentTree.children().values()];
60 60
61 while (iterators.length) { 61 while (iterators.length) {
62 var iterator = iterators.peekLast().next(); 62 var iterator = iterators.peekLast().next();
63 if (iterator.done) { 63 if (iterator.done) {
64 iterators.pop(); 64 iterators.pop();
65 continue; 65 continue;
66 } 66 }
67 var child = /** @type {!TimelineModel.TimelineProfileTree.Node} */ (iterat or.value); 67 var child = /** @type {!TimelineModel.TimelineProfileTree.Node} */ (iterat or.value);
68 if (child.event === event) 68 if (child.event === event)
69 return child; 69 return child;
70 if (child.children) 70 iterators.push(child.children().values());
71 iterators.push(child.children.values());
72 } 71 }
73 return null; 72 return null;
74 } 73 }
75 74
76 /** 75 /**
77 * @param {!SDK.TracingModel.Event} event 76 * @param {!SDK.TracingModel.Event} event
78 * @param {boolean=} expand 77 * @param {boolean=} expand
79 */ 78 */
80 _selectEvent(event, expand) { 79 _selectEvent(event, expand) {
81 var node = this._findNodeWithEvent(event); 80 var node = this._findNodeWithEvent(event);
(...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after
252 this.dispatchEventToListeners(Timeline.EventsTimelineTreeView.Filters.Events .FilterChanged); 251 this.dispatchEventToListeners(Timeline.EventsTimelineTreeView.Filters.Events .FilterChanged);
253 } 252 }
254 }; 253 };
255 254
256 Timeline.EventsTimelineTreeView.Filters._durationFilterPresetsMs = [0, 1, 15]; 255 Timeline.EventsTimelineTreeView.Filters._durationFilterPresetsMs = [0, 1, 15];
257 256
258 /** @enum {symbol} */ 257 /** @enum {symbol} */
259 Timeline.EventsTimelineTreeView.Filters.Events = { 258 Timeline.EventsTimelineTreeView.Filters.Events = {
260 FilterChanged: Symbol('FilterChanged') 259 FilterChanged: Symbol('FilterChanged')
261 }; 260 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698