| Index: third_party/WebKit/Source/devtools/front_end/ui_lazy/FilteredListWidget.js
|
| diff --git a/third_party/WebKit/Source/devtools/front_end/ui_lazy/FilteredListWidget.js b/third_party/WebKit/Source/devtools/front_end/ui_lazy/FilteredListWidget.js
|
| index c74eec5f0c77cbe14f69346d04987948002f9bdb..7cb25afe43d69abeea683fee6793bab7e874db82 100644
|
| --- a/third_party/WebKit/Source/devtools/front_end/ui_lazy/FilteredListWidget.js
|
| +++ b/third_party/WebKit/Source/devtools/front_end/ui_lazy/FilteredListWidget.js
|
| @@ -32,6 +32,9 @@ UI.FilteredListWidget = class extends UI.VBox {
|
| promptProxy.addEventListener('input', this._onInput.bind(this), false);
|
| promptProxy.classList.add('filtered-list-widget-prompt-element');
|
|
|
| + this._progressElement = this.contentElement.createChild('div', 'filtered-list-widget-progress');
|
| + this._progressBarElement = this._progressElement.createChild('div', 'filtered-list-widget-progress-bar');
|
| +
|
| this._filteredItems = [];
|
| this._viewportControl = new UI.ViewportControl(this);
|
| this._itemElementsContainer = this._viewportControl.element;
|
| @@ -75,6 +78,7 @@ UI.FilteredListWidget = class extends UI.VBox {
|
| this._dialog.setPosition(undefined, 22);
|
| this.show(this._dialog.element);
|
| this._dialog.show();
|
| + this._progressElementWidth = this._progressElement.offsetWidth;
|
| }
|
|
|
| /**
|
| @@ -167,6 +171,9 @@ UI.FilteredListWidget = class extends UI.VBox {
|
| this._refreshViewportWithCurrentResult();
|
| }
|
|
|
| + this._progressBarElement.style.transform = 'scaleX(0)';
|
| + this._progressBarElement.classList.remove('filtered-widget-progress-fade');
|
| +
|
| var query = this._delegate.rewriteQuery(this._value());
|
| this._query = query;
|
|
|
| @@ -182,6 +189,8 @@ UI.FilteredListWidget = class extends UI.VBox {
|
| var minBestScore = 0;
|
| var overflowItems = [];
|
|
|
| + var maxWorkItems = Number.constrain(10, 500, (this._delegate.itemCount() / 10) | 0);
|
| +
|
| scoreItems.call(this, 0);
|
|
|
| /**
|
| @@ -199,7 +208,6 @@ UI.FilteredListWidget = class extends UI.VBox {
|
| */
|
| function scoreItems(fromIndex) {
|
| delete this._scoringTimer;
|
| - var maxWorkItems = 1000;
|
| var workDone = 0;
|
|
|
| for (var i = fromIndex; i < this._delegate.itemCount() && workDone < maxWorkItems; ++i) {
|
| @@ -235,9 +243,11 @@ UI.FilteredListWidget = class extends UI.VBox {
|
| // Process everything in chunks.
|
| if (i < this._delegate.itemCount()) {
|
| this._scoringTimer = setTimeout(scoreItems.bind(this, i), 0);
|
| + this._progressBarElement.style.transform = 'scaleX(' + i / this._delegate.itemCount() + ')';
|
| return;
|
| }
|
| -
|
| + this._progressBarElement.style.transform = 'scaleX(1)';
|
| + this._progressBarElement.classList.add('filtered-widget-progress-fade');
|
| this._refreshViewportWithCurrentResult();
|
| }
|
| }
|
|
|