Chromium Code Reviews| 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..aeb49a9bac9d13bfc9f1fb714662c81e1438fd4e |
| --- /dev/null |
| +++ b/chrome/browser/resources/settings/search_page/search_page.js |
| @@ -0,0 +1,109 @@ |
| +// 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 show. |
|
Jeremy Klein
2015/04/22 17:37:46
nit: ... in the page header.
Oren Blasberg
2015/04/22 18:25:41
Done.
|
| + * |
| + * @attribute icon |
| + * @type string |
| + * @default 'search' |
| + */ |
| + icon: 'search', |
| + |
| + /** |
| + * List of default search engines available. |
| + * |
| + * @attribute searchEngines |
| + * @type Array |
|
Jeremy Klein
2015/04/22 17:37:46
I know all of our types don't have {} right now, b
Jeremy Klein
2015/04/22 17:37:46
!Array<!chrome.searchEnginesPrivate.SearchEngine>,
Oren Blasberg
2015/04/22 18:25:41
Done.
|
| + * @default [] |
| + */ |
| + searchEngines: [], |
|
Jeremy Klein
2015/04/22 17:37:46
Array and Object properties should be initialized
Oren Blasberg
2015/04/22 18:25:41
Done.
|
| + |
| + /** |
| + * GUID of the currently selected default search engine. |
| + * |
| + * @attribute defaultEngineGuid |
| + * @type string |
| + * @default '' |
| + */ |
| + defaultEngineGuid: '', |
| + }, |
| + |
| + domReady: function() { |
|
Jeremy Klein
2015/04/22 17:37:46
@override
Jeremy Klein
2015/04/22 17:37:46
I think this could just be done in attached or rea
Oren Blasberg
2015/04/22 18:25:41
Done.
|
| + chrome.searchEnginesPrivate.onSearchEnginesChanged.addListener( |
| + this.updateSearchEngines_.bind(this)); |
| + chrome.searchEnginesPrivate.getDefaultSearchEngines( |
| + this.updateSearchEngines_.bind(this)); |
| + }, |
| + |
| + defaultEngineGuidChanged: function() { |
|
Jeremy Klein
2015/04/22 17:37:46
Can you add a jsdoc just to clarify that this is c
Oren Blasberg
2015/04/22 18:25:41
Done.
|
| + chrome.searchEnginesPrivate.setDefaultSearchEngine(this.defaultEngineGuid); |
| + }, |
| + |
| + |
| + /** |
| + * Updates the list of search engines with the given |engines|. |
| + * @param {!Array<!chrome.searchEnginesPrivate.SearchEngine>} engines |
| + * @private |
| + */ |
| + updateSearchEngines_: function(engines) { |
| + this.searchEngines = engines; |
| + for (var i = 0; i < engines.length; i++) { |
| + if (engines[i].isDefault) { |
| + this.defaultEngineGuid = engines[i].guid; |
| + } |
| + } |
| + } |
| +}); |