Index: chrome/browser/resources/settings/search_page/search_page.js |
diff --git a/chrome/browser/resources/settings/search_page/search_page.js b/chrome/browser/resources/settings/search_page/search_page.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..22deceb4311ab21aba8574a6595dd32f8bc8d145 |
--- /dev/null |
+++ b/chrome/browser/resources/settings/search_page/search_page.js |
@@ -0,0 +1,119 @@ |
+// Copyright 2015 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+/** |
+ * @fileoverview |
+ * 'cr-settings-search-page' is the settings page containing search settings. |
+ * |
+ * Example: |
+ * |
+ * <core-animated-pages> |
+ * <cr-settings-search-page prefs="{{prefs}}"></cr-settings-search-page> |
+ * ... other pages ... |
+ * </core-animated-pages> |
+ * |
+ * @group Chrome Settings Elements |
+ * @element cr-settings-search-page |
+ */ |
+Polymer('cr-settings-search-page', { |
+ publish: { |
+ /** |
+ * Preferences state. |
+ * |
+ * @attribute prefs |
+ * @type {CrSettingsPrefsElement} |
+ * @default null |
+ */ |
+ prefs: null, |
+ |
+ /** |
+ * Whether the page is a subpage. |
+ * |
+ * @attribute subpage |
+ * @type {boolean} |
+ * @default false |
+ */ |
+ subpage: false, |
+ |
+ /** |
+ * ID of the page. |
+ * |
+ * @attribute PAGE_ID |
+ * @const {string} |
+ * @default 'search' |
+ */ |
+ PAGE_ID: 'search', |
+ |
+ /** |
+ * Title for the page header and navigation menu. |
+ * |
+ * @attribute pageTitle |
+ * @type {string} |
+ */ |
+ pageTitle: loadTimeData.getString('searchPageTitle'), |
+ |
+ /** |
+ * Name of the 'core-icon' to be shown in the settings-page-header. |
+ * |
+ * @attribute icon |
+ * @type {string} |
+ * @default 'search' |
+ */ |
+ icon: 'search', |
+ |
+ /** |
+ * List of default search engines available. |
+ * |
+ * @attribute searchEngines |
+ * @type {Array<!SearchEngine} |
+ * @default null |
+ */ |
+ searchEngines: null, |
+ |
+ /** |
+ * GUID of the currently selected default search engine. |
+ * |
+ * @attribute defaultEngineGuid |
+ * @type {string} |
+ * @default '' |
+ */ |
+ defaultEngineGuid: '', |
+ }, |
+ |
+ /** @override */ |
+ created: function() { |
+ this.searchEngines = []; |
+ }, |
+ |
+ /** @override */ |
+ domReady: function() { |
+ chrome.searchEnginesPrivate.onDefaultSearchEnginesChanged.addListener( |
+ this.updateSearchEngines_.bind(this)); |
+ chrome.searchEnginesPrivate.getDefaultSearchEngines( |
+ this.updateSearchEngines_.bind(this)); |
+ }, |
+ |
+ /** |
+ * Persists the new default search engine back to Chrome. Called when the |
+ * user selects a new default in the search engines dropdown. |
+ */ |
+ defaultEngineGuidChanged: function() { |
+ chrome.searchEnginesPrivate.setSelectedSearchEngine(this.defaultEngineGuid); |
+ }, |
+ |
+ |
+ /** |
+ * Updates the list of search engines with the given |engines|. |
+ * @param {!Array<!SearchEngine>} engines |
+ * @private |
+ */ |
+ updateSearchEngines_: function(engines) { |
+ this.searchEngines = engines; |
+ for (var i = 0; i < engines.length; i++) { |
+ if (engines[i].isSelected) { |
+ this.defaultEngineGuid = engines[i].guid; |
+ } |
+ } |
+ } |
+}); |