Add ICU message format support
[chromium-blink-merge.git] / chrome / browser / resources / settings / search_page / search_page.js
blob6ddbfc7985de58ff23ff4481287b39f988756f9a
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.
5 /**
6  * @fileoverview
7  * 'cr-settings-search-page' is the settings page containing search settings.
8  *
9  * Example:
10  *
11  *    <iron-animated-pages>
12  *      <cr-settings-search-page prefs="{{prefs}}"></cr-settings-search-page>
13  *      ... other pages ...
14  *    </iron-animated-pages>
15  *
16  * @group Chrome Settings Elements
17  * @element cr-settings-search-page
18  */
19 Polymer({
20   is: 'cr-settings-search-page',
22   properties: {
23     /**
24      * Route for the page.
25      */
26     route: String,
28     /**
29      * Whether the page is a subpage.
30      */
31     subpage: {
32       type: Boolean,
33       value: false,
34     },
36     /**
37      * ID of the page.
38      */
39     PAGE_ID: {
40       type: String,
41       value: 'search',
42     },
44     /**
45      * Title for the page header and navigation menu.
46      */
47     pageTitle: {
48       type: String,
49       value: function() { return loadTimeData.getString('searchPageTitle'); },
50     },
52     /**
53      * Name of the 'iron-icon' to be shown in the settings-page-header.
54      */
55     icon: {
56       type: Boolean,
57       value: 'search',
58     },
60     /**
61      * List of default search engines available.
62      * @type {?Array<!SearchEngine>}
63      */
64     searchEngines: {
65       type: Array,
66       value: function() { return []; },
67     },
68   },
70   /** @override */
71   created: function() {
72     chrome.searchEnginesPrivate.onSearchEnginesChanged.addListener(
73         this.updateSearchEngines_.bind(this));
74     chrome.searchEnginesPrivate.getSearchEngines(
75         this.updateSearchEngines_.bind(this));
76   },
78   /**
79    * Persists the new default search engine back to Chrome. Called when the
80    * user selects a new default in the search engines dropdown.
81    * @private
82    */
83   defaultEngineGuidChanged_: function() {
84     chrome.searchEnginesPrivate.setSelectedSearchEngine(
85         this.$.searchEnginesMenu.value);
86   },
89   /**
90    * Updates the list of default search engines based on the given |engines|.
91    * @param {!Array<!SearchEngine>} engines All the search engines.
92    * @private
93    */
94   updateSearchEngines_: function(engines) {
95     var defaultEngines = [];
97     engines.forEach(function(engine) {
98       if (engine.type ==
99           chrome.searchEnginesPrivate.SearchEngineType.DEFAULT) {
100         defaultEngines.push(engine);
101         if (engine.isSelected) {
102           this.$.searchEnginesMenu.value = engine.guid;
103         }
104       }
105     }, this);
107     this.searchEngines = defaultEngines;
108   },
110   /** @private */
111   manageSearchEngines_: function() {
112     MoreRouting.navigateTo('search-engines');
113   },