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

Side by Side Diff: chrome/browser/resources/settings/search_engines_page/search_engines_page.js

Issue 1128313004: Convert search_engines_page (and search_engine-adder) to be compatible with Polymer 0.8. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: jlklein comments. Created 5 years, 7 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 unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 /** 5 /**
6 * @fileoverview 'cr-settings-search-engines-page' is the settings page 6 * @fileoverview 'cr-settings-search-engines-page' is the settings page
7 * containing search engines settings. 7 * containing search engines settings.
8 * 8 *
9 * Example: 9 * Example:
10 * 10 *
11 * <core-animated-pages> 11 * <core-animated-pages>
12 * <cr-settings-search-engines-page prefs="{{prefs}}"> 12 * <cr-settings-search-engines-page prefs="{{prefs}}">
13 * </cr-settings-search-engines-page> 13 * </cr-settings-search-engines-page>
14 * ... other pages ... 14 * ... other pages ...
15 * </core-animated-pages> 15 * </core-animated-pages>
16 * 16 *
17 * @group Chrome Settings Elements 17 * @group Chrome Settings Elements
18 * @element cr-settings-search-engines-page 18 * @element cr-settings-search-engines-page
19 */ 19 */
20 Polymer('cr-settings-search-engines-page', { 20 Polymer({
21 publish: { 21 is: 'cr-settings-search-engines-page',
22
23 properties: {
22 /** 24 /**
23 * Preferences state. 25 * Preferences state.
24 * 26 * @type {?CrSettingsPrefsElement}
25 * @attribute prefs
26 * @type {CrSettingsPrefsElement}
27 * @default null
28 */ 27 */
29 prefs: null, 28 prefs: {
29 type: Object,
30 notify: true
31 },
30 32
31 /** 33 /**
32 * Route for the page. 34 * Route for the page.
33 *
34 * @attribute route
35 * @type {string}
36 * @default ''
37 */ 35 */
38 route: '', 36 route: {
37 type: String,
38 value: ''
39 },
39 40
40 /** 41 /**
41 * Whether the page is a subpage. 42 * Whether the page is a subpage.
42 *
43 * @attribute subpage
44 * @type {boolean}
45 * @default true
46 */ 43 */
47 subpage: true, 44 subpage: {
45 type: Boolean,
46 value: true,
47 readOnly: true
48 },
48 49
49 /** 50 /**
50 * ID of the page. 51 * ID of the page.
51 *
52 * @attribute PAGE_ID
53 * @const {string}
54 * @default 'search'
55 */ 52 */
56 PAGE_ID: 'search_engines', 53 PAGE_ID: {
54 type: String,
55 value: 'search_engines',
56 readOnly: true
57 },
57 58
58 /** 59 /**
59 * Title for the page header and navigation menu. 60 * Title for the page header and navigation menu.
60 *
61 * @attribute pageTitle
62 * @type {string}
63 */ 61 */
64 pageTitle: loadTimeData.getString('searchEnginesPageTitle'), 62 pageTitle: {
63 type: String,
64 value: loadTimeData.getString('searchEnginesPageTitle'),
65 readOnly: true
66 },
65 67
66 /** 68 /**
67 * Name of the 'core-icon' to be shown in the settings-page-header. 69 * Name of the 'core-icon' to be shown in the settings-page-header.
68 *
69 * @attribute icon
70 * @type {string}
71 * @default 'search'
72 */ 70 */
73 icon: 'search', 71 icon: {
74 72 type: String,
75 /** 73 value: 'search',
76 * List of default search engines available. 74 readOnly: true
77 * 75 },
78 * @attribute defaultSearchEngines
79 * @type {Array<!SearchEngine>}
80 * @default null
81 */
82 defaultSearchEngines: null,
83
84 /**
85 * List of other search engines available.
86 *
87 * @attribute otherSearchEngines
88 * @type {Array<!SearchEngine>}
89 * @default null
90 */
91 otherSearchEngines: null,
92
93 /**
94 * GUID of the currently selected default search engine.
95 *
96 * @attribute defaultEngineGuid
97 * @type {string}
98 * @default ''
99 */
100 defaultEngineGuid: '',
101 },
102
103 /** @override */
104 created: function() {
105 this.searchEngines = [];
106 },
107
108 /** @override */
109 domReady: function() {
110 chrome.searchEnginesPrivate.onSearchEnginesChanged.addListener(
111 this.updateSearchEngines_.bind(this));
112 chrome.searchEnginesPrivate.getSearchEngines(
113 this.updateSearchEngines_.bind(this));
114 },
115
116 /**
117 * Persists the new default search engine back to Chrome. Called when the
118 * user selects a new default in the search engines dropdown.
119 */
120 defaultEngineGuidChanged: function() {
121 chrome.searchEnginesPrivate.setSelectedSearchEngine(this.defaultEngineGuid);
122 },
123
124
125 /**
126 * Updates the lists of search engines based on the given |engines|.
127 * @param {!Array<!SearchEngine>} engines All the search engines.
128 * @private
129 */
130 updateSearchEngines_: function(engines) {
131 var defaultEngines = [];
132 var otherEngines = [];
133
134 engines.forEach(function(engine) {
135 if (engine.type ==
136 chrome.searchEnginesPrivate.SearchEngineType.DEFAULT) {
137 defaultEngines.push(engine);
138 if (engine.isSelected) {
139 this.defaultEngineGuid = engine.guid;
140 }
141 } else if (engine.type ==
142 chrome.searchEnginesPrivate.SearchEngineType.OTHER) {
143 otherEngines.push(engine);
144 }
145 }, this);
146
147 this.defaultSearchEngines = defaultEngines;
148 this.otherSearchEngines = otherEngines;
149 }
150 }); 76 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698