Commit 708c18ce authored by stevenjb's avatar stevenjb Committed by Commit bot

Use networkingPrivate.getDeviceState in Internet Settings

BUG=465418

Review URL: https://codereview.chromium.org/1057613006

Cr-Commit-Position: refs/heads/master@{#325476}
parent 116a40e0
...@@ -64,18 +64,11 @@ cr.define('options.network', function() { ...@@ -64,18 +64,11 @@ cr.define('options.network', function() {
var activeMenu_ = null; var activeMenu_ = null;
/** /**
* Indicates if cellular networks are available. * The state of the cellular device or undefined if not available.
* @type {boolean} * @type {string|undefined}
* @private * @private
*/ */
var cellularAvailable_ = false; var cellularState_ = undefined;
/**
* Indicates if cellular networks are enabled.
* @type {boolean}
* @private
*/
var cellularEnabled_ = false;
/** /**
* Indicates if cellular device supports network scanning. * Indicates if cellular device supports network scanning.
...@@ -99,18 +92,18 @@ cr.define('options.network', function() { ...@@ -99,18 +92,18 @@ cr.define('options.network', function() {
var cellularSimAbsent_ = false; var cellularSimAbsent_ = false;
/** /**
* Indicates if WiMAX networks are available. * The state of the WiFi device or undefined if not available.
* @type {boolean} * @type {string|undefined}
* @private * @private
*/ */
var wimaxAvailable_ = false; var wifiState_ = undefined;
/** /**
* Indicates if WiMAX networks are enabled. * The state of the WiMAX device or undefined if not available.
* @type {boolean} * @type {string|undefined}
* @private * @private
*/ */
var wimaxEnabled_ = false; var wimaxState_ = undefined;
/** /**
* Indicates if mobile data roaming is enabled. * Indicates if mobile data roaming is enabled.
...@@ -119,6 +112,34 @@ cr.define('options.network', function() { ...@@ -119,6 +112,34 @@ cr.define('options.network', function() {
*/ */
var enableDataRoaming_ = false; var enableDataRoaming_ = false;
/**
* List of wired networks.
* @type {Array<!NetworkInfo>}
* @private
*/
var wiredList_ = [];
/**
* List of WiFi, Cellular, and WiMAX networks.
* @type {Array<!NetworkInfo>}
* @private
*/
var wirelessList_ = [];
/**
* List of VPN networks.
* @type {Array<!NetworkInfo>}
* @private
*/
var vpnList_ = [];
/**
* List of remembered (favorite) networks.
* @type {Array<!NetworkInfo>}
* @private
*/
var rememberedList_ = [];
/** /**
* Returns the display name for 'network'. * Returns the display name for 'network'.
* @param {Object} data The network data dictionary. * @param {Object} data The network data dictionary.
...@@ -512,7 +533,7 @@ cr.define('options.network', function() { ...@@ -512,7 +533,7 @@ cr.define('options.network', function() {
data: {} data: {}
}); });
} else if (this.data_.key == 'Cellular') { } else if (this.data_.key == 'Cellular') {
if (cellularEnabled_ && cellularSupportsScan_) { if (cellularState_ == 'Enabled' && cellularSupportsScan_) {
addendum.push({ addendum.push({
label: loadTimeData.getString('otherCellularNetworks'), label: loadTimeData.getString('otherCellularNetworks'),
command: createAddNonVPNConnectionCallback_('Cellular'), command: createAddNonVPNConnectionCallback_('Cellular'),
...@@ -1028,34 +1049,55 @@ cr.define('options.network', function() { ...@@ -1028,34 +1049,55 @@ cr.define('options.network', function() {
/** /**
* Chrome callback for updating network controls. * Chrome callback for updating network controls.
* @param {{cellularAvailable: boolean, * @param {{cellularSimAbsent: boolean,
* cellularEnabled: boolean,
* cellularSimAbsent: boolean,
* cellularSimLockType: string, * cellularSimLockType: string,
* cellularSupportsScan: boolean, * cellularSupportsScan: boolean,
* rememberedList: Array<NetworkInfo>, * rememberedList: Array<NetworkInfo>,
* vpnList: Array<NetworkInfo>, * vpnList: Array<NetworkInfo>,
* wifiAvailable: boolean,
* wifiEnabled: boolean,
* wimaxAvailable: boolean,
* wimaxEnabled: boolean,
* wiredList: Array<NetworkInfo>, * wiredList: Array<NetworkInfo>,
* wirelessList: Array<NetworkInfo>}} data Description of available * wirelessList: Array<NetworkInfo>}} data Description of available
* network devices and their corresponding state. * network devices and their corresponding state.
*/ */
NetworkList.refreshNetworkData = function(data) { NetworkList.refreshNetworkData = function(data) {
var networkList = $('network-list');
networkList.startBatchUpdates();
cellularAvailable_ = data.cellularAvailable;
cellularEnabled_ = data.cellularEnabled;
cellularSupportsScan_ = data.cellularSupportsScan; cellularSupportsScan_ = data.cellularSupportsScan;
cellularSimAbsent_ = data.cellularSimAbsent; cellularSimAbsent_ = data.cellularSimAbsent;
cellularSimLockType_ = data.cellularSimLockType; cellularSimLockType_ = data.cellularSimLockType;
wimaxAvailable_ = data.wimaxAvailable; wiredList_ = data.wiredList;
wimaxEnabled_ = data.wimaxEnabled; wirelessList_ = data.wirelessList;
vpnList_ = data.vpnList;
rememberedList_ = data.rememberedList;
// Request device states.
chrome.networkingPrivate.getDeviceStates(
NetworkList.onGetDeviceStates.bind(this));
};
/**
* Callback from getDeviceStates. Updates network controls.
* @param {Array<{State: string, Type: string}>} deviceStates The result
* from getDeviceStates.
*/
NetworkList.onGetDeviceStates = function(deviceStates) {
var networkList = $('network-list');
networkList.startBatchUpdates();
cellularState_ = undefined;
wifiState_ = undefined;
wimaxState_ = undefined;
for (var i = 0; i < deviceStates.length; ++i) {
var device = deviceStates[i];
var type = device.Type;
var state = device.State;
if (type == 'Cellular')
cellularState_ = cellularState_ || state;
else if (type == 'WiFi')
wifiState_ = wifiState_ || state;
else if (type == 'WiMAX')
wimaxState_ = wimaxState_ || state;
}
// Only show Ethernet control if connected. // Only show Ethernet control if connected.
var ethernetConnection = getConnection_(data.wiredList); var ethernetConnection = getConnection_(wiredList_);
if (ethernetConnection) { if (ethernetConnection) {
var type = String('Ethernet'); var type = String('Ethernet');
var ethernetOptions = showDetails.bind(null, ethernetConnection.GUID); var ethernetOptions = showDetails.bind(null, ethernetConnection.GUID);
...@@ -1070,15 +1112,15 @@ cr.define('options.network', function() { ...@@ -1070,15 +1112,15 @@ cr.define('options.network', function() {
networkList.deleteItem('Ethernet'); networkList.deleteItem('Ethernet');
} }
if (data.wifiEnabled) if (wifiState_ == 'Enabled')
loadData_('WiFi', data.wirelessList, data.rememberedList); loadData_('WiFi', wirelessList_, rememberedList_);
else else
addEnableNetworkButton_('WiFi'); addEnableNetworkButton_('WiFi');
// Only show cellular control if available. // Only show cellular control if available.
if (data.cellularAvailable) { if (cellularState_) {
if (data.cellularEnabled) if (cellularState_ == 'Enabled')
loadData_('Cellular', data.wirelessList, data.rememberedList); loadData_('Cellular', wirelessList_, rememberedList_);
else else
addEnableNetworkButton_('Cellular'); addEnableNetworkButton_('Cellular');
} else { } else {
...@@ -1086,9 +1128,9 @@ cr.define('options.network', function() { ...@@ -1086,9 +1128,9 @@ cr.define('options.network', function() {
} }
// Only show wimax control if available. Uses cellular icons. // Only show wimax control if available. Uses cellular icons.
if (data.wimaxAvailable) { if (wimaxState_) {
if (data.wimaxEnabled) if (wimaxState_ == 'Enabled')
loadData_('WiMAX', data.wirelessList, data.rememberedList); loadData_('WiMAX', wirelessList_, rememberedList_);
else else
addEnableNetworkButton_('WiMAX'); addEnableNetworkButton_('WiMAX');
} else { } else {
...@@ -1096,8 +1138,8 @@ cr.define('options.network', function() { ...@@ -1096,8 +1138,8 @@ cr.define('options.network', function() {
} }
// Only show VPN control if there is at least one VPN configured. // Only show VPN control if there is at least one VPN configured.
if (data.vpnList.length > 0) if (vpnList_.length > 0)
loadData_('VPN', data.vpnList, data.rememberedList); loadData_('VPN', vpnList_, rememberedList_);
else else
networkList.deleteItem('VPN'); networkList.deleteItem('VPN');
networkList.endBatchUpdates(); networkList.endBatchUpdates();
...@@ -1117,7 +1159,7 @@ cr.define('options.network', function() { ...@@ -1117,7 +1159,7 @@ cr.define('options.network', function() {
if (cellularSimLockType_) { if (cellularSimLockType_) {
chrome.send('simOperation', ['unlock']); chrome.send('simOperation', ['unlock']);
return; return;
} else if (cellularEnabled_ && cellularSimAbsent_) { } else if (cellularState_ == 'Enabled' && cellularSimAbsent_) {
chrome.send('simOperation', ['configure']); chrome.send('simOperation', ['configure']);
return; return;
} }
......
...@@ -106,8 +106,6 @@ const char kConfigureNetworkMessage[] = "configureNetwork"; ...@@ -106,8 +106,6 @@ const char kConfigureNetworkMessage[] = "configureNetwork";
const char kLoadVPNProviders[] = "loadVPNProviders"; const char kLoadVPNProviders[] = "loadVPNProviders";
// These are strings used to communicate with JavaScript. // These are strings used to communicate with JavaScript.
const char kTagCellularAvailable[] = "cellularAvailable";
const char kTagCellularEnabled[] = "cellularEnabled";
const char kTagCellularSimAbsent[] = "cellularSimAbsent"; const char kTagCellularSimAbsent[] = "cellularSimAbsent";
const char kTagCellularSimLockType[] = "cellularSimLockType"; const char kTagCellularSimLockType[] = "cellularSimLockType";
const char kTagCellularSupportsScan[] = "cellularSupportsScan"; const char kTagCellularSupportsScan[] = "cellularSupportsScan";
...@@ -120,10 +118,6 @@ const char kTagSimOpUnlock[] = "unlock"; ...@@ -120,10 +118,6 @@ const char kTagSimOpUnlock[] = "unlock";
const char kTagVPNProviderName[] = "name"; const char kTagVPNProviderName[] = "name";
const char kTagVPNProviderExtensionID[] = "extensionID"; const char kTagVPNProviderExtensionID[] = "extensionID";
const char kTagVpnList[] = "vpnList"; const char kTagVpnList[] = "vpnList";
const char kTagWifiAvailable[] = "wifiAvailable";
const char kTagWifiEnabled[] = "wifiEnabled";
const char kTagWimaxAvailable[] = "wimaxAvailable";
const char kTagWimaxEnabled[] = "wimaxEnabled";
const char kTagWiredList[] = "wiredList"; const char kTagWiredList[] = "wiredList";
const char kTagWirelessList[] = "wirelessList"; const char kTagWirelessList[] = "wirelessList";
...@@ -596,34 +590,14 @@ void InternetOptionsHandler::FillNetworkInfo( ...@@ -596,34 +590,14 @@ void InternetOptionsHandler::FillNetworkInfo(
dictionary->Set(kTagVpnList, GetVPNList()); dictionary->Set(kTagVpnList, GetVPNList());
dictionary->Set(kTagRememberedList, GetRememberedList()); dictionary->Set(kTagRememberedList, GetRememberedList());
dictionary->SetBoolean(
kTagWifiAvailable,
handler->IsTechnologyAvailable(NetworkTypePattern::WiFi()));
dictionary->SetBoolean(
kTagWifiEnabled,
handler->IsTechnologyEnabled(NetworkTypePattern::WiFi()));
const DeviceState* cellular = const DeviceState* cellular =
handler->GetDeviceStateByType(NetworkTypePattern::Mobile()); handler->GetDeviceStateByType(NetworkTypePattern::Mobile());
dictionary->SetBoolean(
kTagCellularAvailable,
handler->IsTechnologyAvailable(NetworkTypePattern::Mobile()));
dictionary->SetBoolean(
kTagCellularEnabled,
handler->IsTechnologyEnabled(NetworkTypePattern::Mobile()));
dictionary->SetBoolean(kTagCellularSupportsScan, dictionary->SetBoolean(kTagCellularSupportsScan,
cellular && cellular->support_network_scan()); cellular && cellular->support_network_scan());
dictionary->SetBoolean(kTagCellularSimAbsent, dictionary->SetBoolean(kTagCellularSimAbsent,
cellular && cellular->IsSimAbsent()); cellular && cellular->IsSimAbsent());
dictionary->SetString(kTagCellularSimLockType, dictionary->SetString(kTagCellularSimLockType,
cellular ? cellular->sim_lock_type() : ""); cellular ? cellular->sim_lock_type() : "");
dictionary->SetBoolean(
kTagWimaxAvailable,
handler->IsTechnologyAvailable(NetworkTypePattern::Wimax()));
dictionary->SetBoolean(
kTagWimaxEnabled,
handler->IsTechnologyEnabled(NetworkTypePattern::Wimax()));
} }
} // namespace options } // namespace options
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment