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

Side by Side Diff: chrome/browser/resources/chromeos/network_ui/network_ui.js

Issue 260083007: Replace chrome://network implementation with networkConfig API (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 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 | Annotate | Revision Log
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 var NetworkUI = function() { 5 var NetworkUI = (function() {
6 'use strict';
7
6 // Properties to display in the network state table. Each entry can be either 8 // Properties to display in the network state table. Each entry can be either
7 // a single state field or an array of state fields. If more than one is 9 // a single state field or an array of state fields. If more than one is
8 // specified then the first non empty value is used. 10 // specified then the first non empty value is used.
9 var NETWORK_STATE_FIELDS = [ 11 var NETWORK_STATE_FIELDS = [
10 'Name', 'Type', 'State', 'Profile', 'Connectable', 12 networkConfig.Service.ServicePath,
michaelpg 2014/04/29 19:51:00 Why remove Profile?
stevenjb 2014/04/29 21:44:03 Profile isn't applicable to visible networks, only
11 'Error', 'Security', 13 networkConfig.Service.GUID,
12 ['Cellular.NetworkTechnology', 'EAP.EAP'], 14 networkConfig.Service.Name,
13 'Cellular.ActivationState', 'Cellular.RoamingState', 15 networkConfig.Service.Type,
14 'Cellular.OutOfCredits', 'Strength' 16 networkConfig.Service.ConnectionState,
17 networkConfig.Service.ErrorState,
18 networkConfig.Service.WiFi.Security,
19 [networkConfig.Service.Cellular.NetworkTechnology,
20 networkConfig.Service.EAP.EAP],
21 networkConfig.Service.Cellular.ActivationState,
22 networkConfig.Service.Cellular.RoamingState,
23 networkConfig.Service.Cellular.OutOfCredits,
24 networkConfig.Service.WiFi.SignalStrength
15 ]; 25 ];
16 26
17 var FAVORITE_STATE_FIELDS = [ 27 var FAVORITE_STATE_FIELDS = [
18 'Name', 'Type', 'Profile', 'onc_source' 28 networkConfig.Service.ServicePath,
29 networkConfig.Service.GUID,
30 networkConfig.Service.Name,
31 networkConfig.Service.Type,
32 networkConfig.Service.Profile,
33 networkConfig.Service.OncSource
19 ]; 34 ];
20 35
21 var LOG_LEVEL_CLASSNAME = { 36 var LOG_LEVEL_CLASSNAME = {
22 'Error': 'network-log-level-error', 37 'Error': 'network-log-level-error',
23 'User': 'network-log-level-user', 38 'User': 'network-log-level-user',
24 'Event': 'network-log-level-event', 39 'Event': 'network-log-level-event',
25 'Debug': 'network-log-level-debug' 40 'Debug': 'network-log-level-debug'
26 }; 41 };
27 42
28 var LOG_LEVEL_CHECKBOX = { 43 var LOG_LEVEL_CHECKBOX = {
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
121 var createStateTableCell = function(value) { 136 var createStateTableCell = function(value) {
122 var cell = document.createElement('td'); 137 var cell = document.createElement('td');
123 cell.textContent = value || ''; 138 cell.textContent = value || '';
124 return cell; 139 return cell;
125 }; 140 };
126 141
127 /** 142 /**
128 * Create a row in the network state table. 143 * Create a row in the network state table.
129 * 144 *
130 * @param {string} stateFields The state fields to use for the row. 145 * @param {string} stateFields The state fields to use for the row.
131 * @param {string} path The network or favorite path.
132 * @param {dictionary} state Property values for the network or favorite. 146 * @param {dictionary} state Property values for the network or favorite.
133 * @return {DOMElement} The created tr element that contains the network 147 * @return {DOMElement} The created tr element that contains the network
134 * state information. 148 * state information.
135 */ 149 */
136 var createStateTableRow = function(stateFields, path, state) { 150 var createStateTableRow = function(stateFields, state) {
137 var row = document.createElement('tr'); 151 var row = document.createElement('tr');
138 row.className = 'state-table-row'; 152 row.className = 'state-table-row';
139 row.appendChild(createStateTableExpandButton(state)); 153 row.appendChild(createStateTableExpandButton(state));
140 row.appendChild(createStateTableCell(path));
141 var guid = state['GUID'];
142 if (guid)
143 guid = guid.slice(1, 9);
144 row.appendChild(createStateTableCell(guid));
145 for (var i = 0; i < stateFields.length; ++i) { 154 for (var i = 0; i < stateFields.length; ++i) {
146 var field = stateFields[i]; 155 var field = stateFields[i];
147 var value = ''; 156 var value = '';
148 if (typeof field == 'string') { 157 if (typeof field == 'string') {
149 value = state[field]; 158 var dot = field.indexOf('.');
159 if (dot > 0) {
160 var field1 = field.substring(0, dot);
161 var field2 = field.substring(dot + 1);
162 var fieldobj = state[field1];
163 if (fieldobj)
164 value = fieldobj[field2];
165 } else {
166 value = state[field];
167 }
150 } else { 168 } else {
151 for (var j = 0; j < field.length; ++j) { 169 for (var j = 0; j < field.length; ++j) {
152 value = state[field[j]]; 170 value = state[field[j]];
153 if (value) 171 if (value)
154 break; 172 break;
155 } 173 }
156 } 174 }
175 if (field == networkConfig.Service.GUID)
176 value = value.slice(1, 9);
157 row.appendChild(createStateTableCell(value)); 177 row.appendChild(createStateTableCell(value));
158 } 178 }
159 return row; 179 return row;
160 }; 180 };
161 181
162 /** 182 /**
163 * Create table for networks or favorites. 183 * Create table for networks or favorites.
164 * 184 *
165 * @param {string} tablename The name of the table to be created. 185 * @param {string} tablename The name of the table to be created.
166 * @param {Array.<Object>} stateFields The list of fields for the table. 186 * @param {Array.<Object>} stateFields The list of fields for the table.
167 * @param {Array.<Object>} states An array of network or favorite states. 187 * @param {Array.<Object>} states An array of network or favorite states.
168 */ 188 */
169 var createStateTable = function(tablename, stateFields, states) { 189 var createStateTable = function(tablename, stateFields, states) {
170 var table = $(tablename); 190 var table = $(tablename);
171 var oldRows = table.querySelectorAll('.state-table-row'); 191 var oldRows = table.querySelectorAll('.state-table-row');
172 for (var i = 0; i < oldRows.length; ++i) 192 for (var i = 0; i < oldRows.length; ++i)
173 table.removeChild(oldRows[i]); 193 table.removeChild(oldRows[i]);
174 for (var path in states) 194 for (var s in states)
175 table.appendChild(createStateTableRow(stateFields, path, states[path])); 195 table.appendChild(createStateTableRow(stateFields, states[s]));
176 }; 196 };
177 197
178 /** 198 /**
179 * This callback function is triggered when the data is received. 199 * This callback function is triggered when the network log is received.
180 * 200 *
181 * @param {dictionary} data A dictionary that contains network state 201 * @param {dictionary} data A JSON structure of event log entries.
182 * information.
183 */ 202 */
184 var onNetworkInfoReceived = function(data) { 203 var getNetworkLogCallback = function(data) {
185 createEventLog(JSON.parse(data.networkEventLog)); 204 createEventLog(JSON.parse(data));
186 createStateTable(
187 'network-state-table', NETWORK_STATE_FIELDS, data.networkStates);
188 createStateTable(
189 'favorite-state-table', FAVORITE_STATE_FIELDS, data.favoriteStates);
190 }; 205 };
191 206
192 /** 207 /**
208 * This callback function is triggered when visible networks are received.
209 *
210 * @param {dictionary} data A list of network state information for each
211 * visible network.
212 */
213 var onVisibleNetworksReceived = function(data) {
214 createStateTable('network-state-table', NETWORK_STATE_FIELDS, data);
215 };
216
217 /**
218 * This callback function is triggered when favorite networks are received.
219 *
220 * @param {dictionary} data A list of network state information for each
221 * favorite network.
222 */
223 var onFavoriteNetworksReceived = function(data) {
224 createStateTable('favorite-state-table', FAVORITE_STATE_FIELDS, data);
225 };
226
227 /**
193 * Toggle the button state and add or remove a row displaying the complete 228 * Toggle the button state and add or remove a row displaying the complete
194 * state information for a row. 229 * state information for a row.
195 * 230 *
196 * @param {DOMElement} btn The button that was clicked. 231 * @param {DOMElement} btn The button that was clicked.
197 * @param {dictionary} state Property values for the network or favorite. 232 * @param {dictionary} state Property values for the network or favorite.
198 */ 233 */
199 var toggleExpandRow = function(btn, state) { 234 var toggleExpandRow = function(btn, state) {
200 var cell = btn.parentNode; 235 var cell = btn.parentNode;
201 var row = cell.parentNode; 236 var row = cell.parentNode;
202 if (btn.classList.contains('state-table-expand-button-expanded')) { 237 if (btn.classList.contains('state-table-expand-button-expanded')) {
(...skipping 21 matching lines...) Expand all
224 expandedRow.appendChild(emptyCell); 259 expandedRow.appendChild(emptyCell);
225 var detailCell = document.createElement('td'); 260 var detailCell = document.createElement('td');
226 detailCell.className = 'state-table-expanded-cell'; 261 detailCell.className = 'state-table-expanded-cell';
227 detailCell.colSpan = baseRow.childNodes.length - 1; 262 detailCell.colSpan = baseRow.childNodes.length - 1;
228 detailCell.innerHTML = JSON.stringify(state, null, '\t'); 263 detailCell.innerHTML = JSON.stringify(state, null, '\t');
229 expandedRow.appendChild(detailCell); 264 expandedRow.appendChild(detailCell);
230 return expandedRow; 265 return expandedRow;
231 }; 266 };
232 267
233 /** 268 /**
234 * Sends a refresh request. 269 * Sends a refresh request.
michaelpg 2014/04/29 19:51:00 Update comment (and maybe function name)
stevenjb 2014/05/01 01:45:14 Done.
235 */ 270 */
236 var sendRefresh = function() { 271 var sendRefresh = function() {
237 chrome.send('requestNetworkInfo'); 272 chrome.send('NetworkUI.getNetworkLog');
273 networkConfig.getVisibleNetworks(networkConfig.Type.All,
274 onVisibleNetworksReceived);
275 networkConfig.getFavoriteNetworks(networkConfig.Type.All,
276 onFavoriteNetworksReceived);
238 }; 277 };
239 278
240 /** 279 /**
241 * Sets refresh rate if the interval is found in the url. 280 * Sets refresh rate if the interval is found in the url.
242 */ 281 */
243 var setRefresh = function() { 282 var setRefresh = function() {
244 var interval = parseQueryParams(window.location)['refresh']; 283 var interval = parseQueryParams(window.location)['refresh'];
245 if (interval && interval != '') 284 if (interval && interval != '')
246 setInterval(sendRefresh, parseInt(interval) * 1000); 285 setInterval(sendRefresh, parseInt(interval) * 1000);
247 }; 286 };
(...skipping 13 matching lines...) Expand all
261 $('log-debug').onclick = sendRefresh; 300 $('log-debug').onclick = sendRefresh;
262 $('log-fileinfo').checked = false; 301 $('log-fileinfo').checked = false;
263 $('log-fileinfo').onclick = sendRefresh; 302 $('log-fileinfo').onclick = sendRefresh;
264 $('log-timedetail').checked = false; 303 $('log-timedetail').checked = false;
265 $('log-timedetail').onclick = sendRefresh; 304 $('log-timedetail').onclick = sendRefresh;
266 setRefresh(); 305 setRefresh();
267 sendRefresh(); 306 sendRefresh();
268 }); 307 });
269 308
270 return { 309 return {
271 onNetworkInfoReceived: onNetworkInfoReceived 310 getNetworkLogCallback: getNetworkLogCallback
272 }; 311 };
273 }(); 312 })();
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698