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
3 // found in the LICENSE file.
7 * 'cr-settings-search-page' is the settings page containing search settings.
11 * <iron-animated-pages>
12 * <cr-settings-search-page prefs="{{prefs}}"></cr-settings-search-page>
14 * </iron-animated-pages>
16 * @group Chrome Settings Elements
17 * @element cr-settings-search-page
20 is
: 'cr-settings-search-page',
29 * Whether the page is a subpage.
45 * Title for the page header and navigation menu.
49 value: function() { return loadTimeData
.getString('searchPageTitle'); },
53 * Name of the 'iron-icon' to be shown in the settings-page-header.
61 * List of default search engines available.
62 * @type {?Array<!SearchEngine>}
66 value: function() { return []; },
77 chrome
.searchEnginesPrivate
.onSearchEnginesChanged
.addListener(
78 this.updateSearchEngines_
.bind(this));
79 chrome
.searchEnginesPrivate
.getSearchEngines(
80 this.updateSearchEngines_
.bind(this));
84 * Persists the new default search engine back to Chrome. Called when the
85 * user selects a new default in the search engines dropdown.
88 defaultEngineGuidChanged_: function() {
89 chrome
.searchEnginesPrivate
.setSelectedSearchEngine(
90 this.$.searchEnginesMenu
.value
);
95 * Updates the list of default search engines based on the given |engines|.
96 * @param {!Array<!SearchEngine>} engines All the search engines.
99 updateSearchEngines_: function(engines
) {
100 var defaultEngines
= [];
102 engines
.forEach(function(engine
) {
104 chrome
.searchEnginesPrivate
.SearchEngineType
.DEFAULT
) {
105 defaultEngines
.push(engine
);
106 if (engine
.isSelected
) {
107 this.$.searchEnginesMenu
.value
= engine
.guid
;
112 this.searchEngines
= defaultEngines
;
116 manageSearchEngines_: function() {
117 this.$.pages
.navigateTo('search-engines');
121 handleBack_: function() {