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

Unified Diff: chrome/browser/resources/chromeos/network_ui/network_ui.js

Issue 890663003: Use chrome.networkingPrivate in chrome://network (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase + feedback Created 5 years, 10 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/resources/chromeos/network_ui/network_ui.js
diff --git a/chrome/browser/resources/chromeos/network_ui/network_ui.js b/chrome/browser/resources/chromeos/network_ui/network_ui.js
index 8d86f54d9a8c515674c8786a35fbd128fbe2e6d1..54ef7f3489539e3daa104db4b28f87fc39f63910 100644
--- a/chrome/browser/resources/chromeos/network_ui/network_ui.js
+++ b/chrome/browser/resources/chromeos/network_ui/network_ui.js
@@ -36,7 +36,32 @@ var NetworkUI = (function() {
];
/**
- * Create a cell with a button for expanding a network state table row.
+ * Returns the property associated with a key (which may reference a
+ * sub-object).
+ *
+ * @param {Object} properties The object containing the network properties.
+ * @param {string} key The ONC key for the property. May refer to a nested
+ * propety, e.g. 'WiFi.Security'.
+ * @return {*} The value associated with the property.
+ */
+ var getValueFromProperties = function(properties, key) {
+ if (!key) {
+ console.error('Empty key');
+ return undefined;
+ }
+ var dot = key.indexOf('.');
+ if (dot > 0) {
+ var key1 = key.substring(0, dot);
+ var key2 = key.substring(dot + 1);
+ var subobject = properties[key1];
+ if (subobject)
+ return getValueFromProperties(subobject, key2);
+ }
+ return properties[key];
+ };
+
+ /**
+ * Creates a cell with a button for expanding a network state table row.
*
* @param {string} guid The GUID identifying the network.
* @return {DOMElement} The created td element that displays the given value.
@@ -55,7 +80,7 @@ var NetworkUI = (function() {
};
/**
- * Create a cell in network state table.
+ * Creates a cell in network state table.
*
* @param {string} value Content in the cell.
* @return {DOMElement} The created td element that displays the given value.
@@ -67,7 +92,7 @@ var NetworkUI = (function() {
};
/**
- * Create a row in the network state table.
+ * Creates a row in the network state table.
*
* @param {Array} stateFields The state fields to use for the row.
* @param {Object} state Property values for the network or favorite.
@@ -83,10 +108,10 @@ var NetworkUI = (function() {
var field = stateFields[i];
var value = '';
if (typeof field == 'string') {
- value = networkConfig.getValueFromProperties(state, field);
+ value = getValueFromProperties(state, field);
} else {
for (var j = 0; j < field.length; ++j) {
- value = networkConfig.getValueFromProperties(state, field[j]);
+ value = getValueFromProperties(state, field[j]);
if (value)
break;
}
@@ -99,7 +124,7 @@ var NetworkUI = (function() {
};
/**
- * Create table for networks or favorites.
+ * Creates a table for networks or favorites.
*
* @param {string} tablename The name of the table to be created.
* @param {Array} stateFields The list of fields for the table.
@@ -136,7 +161,7 @@ var NetworkUI = (function() {
};
/**
- * Toggle the button state and add or remove a row displaying the complete
+ * Toggles the button state and add or remove a row displaying the complete
* state information for a row.
*
* @param {DOMElement} btn The button that was clicked.
@@ -169,36 +194,65 @@ var NetworkUI = (function() {
emptyCell.style.border = 'none';
expandedRow.appendChild(emptyCell);
var detailCell = document.createElement('td');
+ detailCell.id = guid;
detailCell.className = 'state-table-expanded-cell';
detailCell.colSpan = baseRow.childNodes.length - 1;
expandedRow.appendChild(detailCell);
- var showDetail = function(state) {
- if (networkConfig.lastError)
- detailCell.textContent = networkConfig.lastError;
+ var showDetail = function(state, error) {
+ if (error && error.message)
+ detailCell.textContent = error.message;
else
detailCell.textContent = JSON.stringify(state, null, '\t');
};
var selected = $('get-property-format').selectedIndex;
var selectedId = $('get-property-format').options[selected].value;
- if (selectedId == 'shill')
- networkConfig.getShillProperties(guid, showDetail);
- else if (selectedId == 'managed')
- networkConfig.getManagedProperties(guid, showDetail);
- else
- networkConfig.getProperties(guid, showDetail);
+ if (selectedId == 'shill') {
+ chrome.send('getShillProperties', [guid]);
+ } else if (selectedId == 'managed') {
+ chrome.networkingPrivate.getManagedProperties(guid, function(properties) {
+ showDetail(properties, chrome.runtime.lastError); });
+ } else {
+ chrome.networkingPrivate.getProperties(guid, function(properties) {
+ showDetail(properties, chrome.runtime.lastError); });
+ }
return expandedRow;
};
/**
+ * Callback invoked by Chrome after a getShillProperties call.
+ *
+ * @param {Object} properties The requested Shill properties. Will contain
+ * just the 'GUID' and 'ShillError' properties if the call failed.
+ */
+ var getShillPropertiesResult = function(args) {
+ var properties = args.shift();
+ var guid = properties['GUID'];
+ if (!guid) {
+ console.error('No GUID in getShillPropertiesResult');
+ return;
+ }
+
+ var detailCell = document.querySelector('td#' + guid);
+ if (!detailCell) {
+ console.error('No cell for GUID: ' + guid);
+ return;
+ }
+
+ if (properties['ShillError'])
+ detailCell.textContent = properties['ShillError'];
+ else
+ detailCell.textContent = JSON.stringify(properties, null, '\t');
+
+ };
+
+ /**
* Requests an update of all network info.
*/
var requestNetworks = function() {
- networkConfig.getNetworks(
- { 'type': 'All', 'visible': true },
- onVisibleNetworksReceived);
- networkConfig.getNetworks(
- { 'type': 'All', 'configured': true },
- onFavoriteNetworksReceived);
+ chrome.networkingPrivate.getNetworks(
+ {'networkType': 'All', 'visible': true}, onVisibleNetworksReceived);
+ chrome.networkingPrivate.getNetworks(
+ {'networkType': 'All', 'configured': true}, onFavoriteNetworksReceived);
};
/**
@@ -211,7 +265,7 @@ var NetworkUI = (function() {
};
/**
- * Get network information from WebUI.
+ * Gets network information from WebUI.
*/
document.addEventListener('DOMContentLoaded', function() {
$('refresh').onclick = requestNetworks;
@@ -219,5 +273,7 @@ var NetworkUI = (function() {
requestNetworks();
});
- return {};
+ return {
+ getShillPropertiesResult: getShillPropertiesResult
+ };
})();

Powered by Google App Engine
This is Rietveld 408576698