Chromium Code Reviews| Index: chrome/browser/resources/settings/settings_main/settings_main.js |
| diff --git a/chrome/browser/resources/settings/settings_main/settings_main.js b/chrome/browser/resources/settings/settings_main/settings_main.js |
| index f80a8512c0c54b21bc89b73ddfbf8271534494f2..54522bb9c6225eb707627ffb900a841d71c96e17 100644 |
| --- a/chrome/browser/resources/settings/settings_main/settings_main.js |
| +++ b/chrome/browser/resources/settings/settings_main/settings_main.js |
| @@ -49,6 +49,12 @@ Polymer({ |
| }, |
| }, |
| + /** @private */ |
| + showNoResultsFound_: { |
| + type: Boolean, |
| + value: false, |
| + }, |
| + |
| toolbarSpinnerActive: { |
| type: Boolean, |
| value: false, |
| @@ -64,13 +70,6 @@ Polymer({ |
| }, |
| /** @override */ |
| - ready: function() { |
| - settings.getSearchManager().setCallback(function(isRunning) { |
| - this.toolbarSpinnerActive = isRunning; |
| - }.bind(this)); |
| - }, |
| - |
| - /** @override */ |
| attached: function() { |
| document.addEventListener('toggle-advanced-page', function(e) { |
| this.advancedToggleExpanded_ = e.detail; |
| @@ -154,18 +153,29 @@ Polymer({ |
| */ |
| searchContents: function(query) { |
| this.ensureInDefaultSearchPage_(); |
| + this.toolbarSpinnerActive = true; |
| // Trigger rendering of the basic and advanced pages and search once ready. |
| - // Even if those are already rendered, yield to the message loop before |
| - // initiating searching. |
| this.showPages_ = {about: false, basic: true, advanced: true}; |
| + |
| setTimeout(function() { |
| settings.getSearchManager().search( |
| query, assert(this.$$('settings-basic-page'))); |
| }.bind(this), 0); |
| setTimeout(function() { |
| settings.getSearchManager().search( |
| - query, assert(this.$$('settings-advanced-page'))); |
| + query, assert(this.$$('settings-advanced-page'))).then( |
| + function(request) { |
| + this.toolbarSpinnerActive = false; |
| + this.showNoResultsFound_ = |
| + !request.isSame('') && !request.didFindMatches(); |
| + }.bind(this), |
| + function() { |
| + // Nothing to do here. A previous search request was canceled |
| + // because a new search request was issued before the first one |
| + // completed. This callback is necessary to avoid an "Uncaught |
| + // Promise error" in the console. |
|
Dan Beam
2016/07/26 02:39:31
it's arguable that we should just resolve(null) or
dpapad
2016/07/26 17:19:57
Done, added 'finished' boolean.
|
| + }); |
| }.bind(this), 0); |
| }, |
| }); |