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

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

Issue 2703433002: DevTools: Do not do deep search in case of bottom-up profile tree. (Closed)
Patch Set: 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
« no previous file with comments | « no previous file | third_party/WebKit/Source/devtools/front_end/timeline_model/TimelineProfileTree.js » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 * @implements {UI.Searchable} 7 * @implements {UI.Searchable}
8 */ 8 */
9 Timeline.TimelineTreeView = class extends UI.VBox { 9 Timeline.TimelineTreeView = class extends UI.VBox {
10 constructor() { 10 constructor() {
(...skipping 365 matching lines...) Expand 10 before | Expand all | Expand 10 after
376 * @override 376 * @override
377 * @param {!UI.SearchableView.SearchConfig} searchConfig 377 * @param {!UI.SearchableView.SearchConfig} searchConfig
378 * @param {boolean} shouldJump 378 * @param {boolean} shouldJump
379 * @param {boolean=} jumpBackwards 379 * @param {boolean=} jumpBackwards
380 */ 380 */
381 performSearch(searchConfig, shouldJump, jumpBackwards) { 381 performSearch(searchConfig, shouldJump, jumpBackwards) {
382 this._searchResults = []; 382 this._searchResults = [];
383 this._currentResult = 0; 383 this._currentResult = 0;
384 if (!this._root) 384 if (!this._root)
385 return; 385 return;
386 this.populateSearchResults(createPlainTextSearchRegex(searchConfig.query, 'i ')); 386 var searchRegex = createPlainTextSearchRegex(searchConfig.query, 'i');
387 this._searchResults =
388 this._root.searchTree(event => Timeline.TimelineUIUtils.testContentMatch ing(event, searchRegex));
389 this._searchableView.updateSearchMatchesCount(this._searchResults.length);
387 } 390 }
388 391
389 /** 392 /**
390 * @protected
391 * @param {!RegExp} searchRegex
392 */
393 populateSearchResults(searchRegex) {
394 var searchResults = [];
395 searchTree(this._root);
396 this._searchableView.updateSearchMatchesCount(searchResults.length);
397 this._searchResults = searchResults;
398
399 function searchTree(node) {
400 if (node.event && Timeline.TimelineUIUtils.testContentMatching(node.event, searchRegex))
401 searchResults.push(node);
402 for (var child of node.children().values())
403 searchTree(child);
404 }
405 }
406
407 /**
408 * @override 393 * @override
409 */ 394 */
410 jumpToNextSearchResult() { 395 jumpToNextSearchResult() {
411 if (!this._searchResults.length) 396 if (!this._searchResults.length)
412 return; 397 return;
413 this.selectProfileNode(this._searchResults[this._currentResult], false); 398 this.selectProfileNode(this._searchResults[this._currentResult], false);
414 this._currentResult = mod(this._currentResult + 1, this._searchResults.lengt h); 399 this._currentResult = mod(this._currentResult + 1, this._searchResults.lengt h);
415 } 400 }
416 401
417 /** 402 /**
(...skipping 537 matching lines...) Expand 10 before | Expand all | Expand 10 after
955 940
956 _onSelectionChanged() { 941 _onSelectionChanged() {
957 this.dispatchEventToListeners(Timeline.TimelineStackView.Events.SelectionCha nged); 942 this.dispatchEventToListeners(Timeline.TimelineStackView.Events.SelectionCha nged);
958 } 943 }
959 }; 944 };
960 945
961 /** @enum {symbol} */ 946 /** @enum {symbol} */
962 Timeline.TimelineStackView.Events = { 947 Timeline.TimelineStackView.Events = {
963 SelectionChanged: Symbol('SelectionChanged') 948 SelectionChanged: Symbol('SelectionChanged')
964 }; 949 };
OLDNEW
« no previous file with comments | « no previous file | third_party/WebKit/Source/devtools/front_end/timeline_model/TimelineProfileTree.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698