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

Unified Diff: chrome/browser/resources/settings/settings_ui/settings_ui.js

Issue 2449663002: MD Settings: Implement search URLs. (Closed)
Patch Set: Register listener earlier. Created 4 years, 2 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/resources/settings/settings_ui/settings_ui.js
diff --git a/chrome/browser/resources/settings/settings_ui/settings_ui.js b/chrome/browser/resources/settings/settings_ui/settings_ui.js
index f14a509792380ed6a0957c0fc8c11ef4853aaabd..7c1145356408dcdd5352a9348d480886370be1ac 100644
--- a/chrome/browser/resources/settings/settings_ui/settings_ui.js
+++ b/chrome/browser/resources/settings/settings_ui/settings_ui.js
@@ -19,6 +19,8 @@ settings.defaultResourceLoaded = true;
Polymer({
is: 'settings-ui',
+ behaviors: [settings.RouteObserverBehavior],
+
properties: {
/**
* Preferences state.
@@ -63,10 +65,6 @@ Polymer({
* strict mode.
*/
ready: function() {
- this.$$('cr-toolbar').addEventListener('search-changed', function(e) {
- this.$$('settings-main').searchContents(e.detail);
- }.bind(this));
-
// Lazy-create the drawer the first time it is opened or swiped into view.
var drawer = assert(this.$$('app-drawer'));
listenOnce(drawer, 'track opened-changed', function() {
@@ -116,6 +114,34 @@ Polymer({
settings.setGlobalScrollTarget(this.$.headerPanel.scroller);
},
+ /** @param {!settings.Route} newRoute */
+ currentRouteChanged: function(newRoute) {
+ var searchQuery = settings.getQueryParameters().get('search') || '';
+ var toolbar = /** @type {!CrToolbarElement} */ (this.$$('cr-toolbar'));
+ var searchField = /** @type {CrToolbarSearchFieldElement} */ (
+ toolbar.getSearchField());
+ searchField.setValue(searchQuery);
+ },
+
+ /**
+ * @param {!Event} e
+ * @private
+ */
+ onSearchChanged_: function(e) {
+ var query = e.detail;
+
+ // 'search-changed' event was fired only because the search box's value was
+ // updated to reflect the already existing search URL parameter, no need to
+ // navigate again.
+ var existingQuery = settings.getQueryParameters().get('search') || '';
+ if (query == existingQuery)
+ return;
+
+ settings.navigateTo(
+ settings.Route.BASIC,
+ query.length > 0 ? new URLSearchParams(`search=${query}`) : undefined);
+ },
+
/**
* @param {Event} event
* @private

Powered by Google App Engine
This is Rietveld 408576698