Chromium Code Reviews| Index: third_party/WebKit/Source/devtools/front_end/elements/ElementsPanel.js |
| diff --git a/third_party/WebKit/Source/devtools/front_end/elements/ElementsPanel.js b/third_party/WebKit/Source/devtools/front_end/elements/ElementsPanel.js |
| index fab103e3cd75237967b1aadd9579034955290831..7e4690d0fc2f75555d58f934f19460831ae82d8f 100644 |
| --- a/third_party/WebKit/Source/devtools/front_end/elements/ElementsPanel.js |
| +++ b/third_party/WebKit/Source/devtools/front_end/elements/ElementsPanel.js |
| @@ -464,8 +464,7 @@ Elements.ElementsPanel = class extends UI.Panel { |
| */ |
| performSearch(searchConfig, shouldJump, jumpBackwards) { |
| var query = searchConfig.query; |
| - // Call searchCanceled since it will reset everything we need before doing a new search. |
| - this.searchCanceled(); |
| + this._hideSearchHighlights(); |
| const whitespaceTrimmedQuery = query.trim(); |
| if (!whitespaceTrimmedQuery.length) |
| @@ -498,10 +497,18 @@ Elements.ElementsPanel = class extends UI.Panel { |
| this._searchableView.updateSearchMatchesCount(this._searchResults.length); |
| if (!this._searchResults.length) |
| return; |
| - this._currentSearchResultIndex = -1; |
| + if (this._currentSearchResultIndex === undefined) |
| + this._currentSearchResultIndex = -1; |
| + |
| + var index = this._currentSearchResultIndex; |
| - if (shouldJump) |
| - this._jumpToSearchResult(jumpBackwards ? -1 : 0); |
| + if (shouldJump) { |
| + if (index === -1) |
| + index = jumpBackwards ? -1 : 0; |
| + else |
| + index = jumpBackwards ? index - 1 : index + 1; |
| + this._jumpToSearchResult(index); |
| + } |
| } |
| } |
| @@ -554,7 +561,10 @@ Elements.ElementsPanel = class extends UI.Panel { |
| _jumpToSearchResult(index) { |
| this._hideSearchHighlights(); |
| - this._currentSearchResultIndex = (index + this._searchResults.length) % this._searchResults.length; |
| + if (index > this._searchResults.length) |
|
pfeldman
2017/02/07 23:19:36
This should never happen. Whenever we update searc
|
| + this._currentSearchResultIndex = 0; |
| + else |
| + this._currentSearchResultIndex = (index + this._searchResults.length) % this._searchResults.length; |
| this._highlightCurrentSearchResult(); |
| } |
| @@ -630,7 +640,8 @@ Elements.ElementsPanel = class extends UI.Panel { |
| } |
| _hideSearchHighlights() { |
| - if (!this._searchResults || !this._searchResults.length || this._currentSearchResultIndex < 0) |
| + if (!this._searchResults || !this._searchResults.length || this._currentSearchResultIndex < 0 || |
| + this._currentSearchResultIndex > this._searchResults.length - 1) |
|
pfeldman
2017/02/07 23:19:36
ditto
|
| return; |
| var searchResult = this._searchResults[this._currentSearchResultIndex]; |
| if (!searchResult.node) |