Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 * This partially describes the network list entries passed to | 6 * This partially describes the network list entries passed to |
| 7 * refreshNetworkData. The contents of those lists actually match | 7 * refreshNetworkData. The contents of those lists actually match |
| 8 * CrOnc.NetworkConfigType with the addition of the policyManaged property. | 8 * CrOnc.NetworkConfigType with the addition of the policyManaged property. |
| 9 * TODO(stevenjb): Use networkingPrivate.getNetworks. | 9 * TODO(stevenjb): Use networkingPrivate.getNetworks. |
| 10 * @typedef {{ | 10 * @typedef {{ |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 56 'VPN', | 56 'VPN', |
| 57 'addConnection']; | 57 'addConnection']; |
| 58 | 58 |
| 59 /** | 59 /** |
| 60 * ID of the menu that is currently visible. | 60 * ID of the menu that is currently visible. |
| 61 * @type {?string} | 61 * @type {?string} |
| 62 * @private | 62 * @private |
| 63 */ | 63 */ |
| 64 var activeMenu_ = null; | 64 var activeMenu_ = null; |
| 65 | 65 |
| 66 | |
|
pneubeck (no reviews)
2015/04/15 08:13:06
nit: remove empty line
stevenjb
2015/04/16 17:07:44
Done.
| |
| 66 /** | 67 /** |
| 67 * Indicates if cellular networks are available. | 68 * The state of the cellular device or undefined if not available. |
| 68 * @type {boolean} | 69 * @type {string|undefined} |
| 69 * @private | 70 * @private |
| 70 */ | 71 */ |
| 71 var cellularAvailable_ = false; | 72 var cellularState_ = undefined; |
| 72 | |
| 73 /** | |
| 74 * Indicates if cellular networks are enabled. | |
| 75 * @type {boolean} | |
| 76 * @private | |
| 77 */ | |
| 78 var cellularEnabled_ = false; | |
| 79 | 73 |
| 80 /** | 74 /** |
| 81 * Indicates if cellular device supports network scanning. | 75 * Indicates if cellular device supports network scanning. |
| 82 * @type {boolean} | 76 * @type {boolean} |
| 83 * @private | 77 * @private |
| 84 */ | 78 */ |
| 85 var cellularSupportsScan_ = false; | 79 var cellularSupportsScan_ = false; |
| 86 | 80 |
| 87 /** | 81 /** |
| 88 * Indicates the current SIM lock type of the cellular device. | 82 * Indicates the current SIM lock type of the cellular device. |
| 89 * @type {string} | 83 * @type {string} |
| 90 * @private | 84 * @private |
| 91 */ | 85 */ |
| 92 var cellularSimLockType_ = ''; | 86 var cellularSimLockType_ = ''; |
| 93 | 87 |
| 94 /** | 88 /** |
| 95 * Indicates whether the SIM card is absent on the cellular device. | 89 * Indicates whether the SIM card is absent on the cellular device. |
| 96 * @type {boolean} | 90 * @type {boolean} |
| 97 * @private | 91 * @private |
| 98 */ | 92 */ |
| 99 var cellularSimAbsent_ = false; | 93 var cellularSimAbsent_ = false; |
| 100 | 94 |
| 101 /** | 95 /** |
| 102 * Indicates if WiMAX networks are available. | 96 * The state of the WiFi device or undefined if not available. |
| 103 * @type {boolean} | 97 * @type {string|undefined} |
| 104 * @private | 98 * @private |
| 105 */ | 99 */ |
| 106 var wimaxAvailable_ = false; | 100 var wifiState_ = undefined; |
| 107 | 101 |
| 108 /** | 102 /** |
| 109 * Indicates if WiMAX networks are enabled. | 103 * The state of the WiMAX device or undefined if not available. |
| 110 * @type {boolean} | 104 * @type {string|undefined} |
| 111 * @private | 105 * @private |
| 112 */ | 106 */ |
| 113 var wimaxEnabled_ = false; | 107 var wimaxState_ = undefined; |
| 114 | 108 |
| 115 /** | 109 /** |
| 116 * Indicates if mobile data roaming is enabled. | 110 * Indicates if mobile data roaming is enabled. |
| 117 * @type {boolean} | 111 * @type {boolean} |
| 118 * @private | 112 * @private |
| 119 */ | 113 */ |
| 120 var enableDataRoaming_ = false; | 114 var enableDataRoaming_ = false; |
| 121 | 115 |
| 122 /** | 116 /** |
| 117 * List of wired networks. | |
| 118 * @type {Array<!NetworkInfo>} | |
| 119 * @private | |
| 120 */ | |
| 121 var wiredList_ = []; | |
| 122 | |
| 123 /** | |
| 124 * List of WiFi, Cellular, and WiMAX networks. | |
| 125 * @type {Array<!NetworkInfo>} | |
| 126 * @private | |
| 127 */ | |
| 128 var wirelessList_ = []; | |
| 129 | |
| 130 /** | |
| 131 * List of VPN networks. | |
| 132 * @type {Array<!NetworkInfo>} | |
| 133 * @private | |
| 134 */ | |
| 135 var vpnList_ = []; | |
| 136 | |
| 137 /** | |
| 138 * List of remembered (favorite) networks. | |
| 139 * @type {Array<!NetworkInfo>} | |
| 140 * @private | |
| 141 */ | |
| 142 var rememberedList_ = []; | |
| 143 | |
| 144 /** | |
| 123 * Returns the display name for 'network'. | 145 * Returns the display name for 'network'. |
| 124 * @param {Object} data The network data dictionary. | 146 * @param {Object} data The network data dictionary. |
| 125 */ | 147 */ |
| 126 function getNetworkName(data) { | 148 function getNetworkName(data) { |
| 127 if (data.Type == 'Ethernet') | 149 if (data.Type == 'Ethernet') |
| 128 return loadTimeData.getString('ethernetName'); | 150 return loadTimeData.getString('ethernetName'); |
| 129 if (data.Type == 'VPN') | 151 if (data.Type == 'VPN') |
| 130 return options.VPNProviders.formatNetworkName(new cr.onc.OncData(data)); | 152 return options.VPNProviders.formatNetworkName(new cr.onc.OncData(data)); |
| 131 return data.Name; | 153 return data.Name; |
| 132 } | 154 } |
| (...skipping 372 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 505 menu.hidden = true; | 527 menu.hidden = true; |
| 506 Menu.decorate(menu); | 528 Menu.decorate(menu); |
| 507 var addendum = []; | 529 var addendum = []; |
| 508 if (this.data_.key == 'WiFi') { | 530 if (this.data_.key == 'WiFi') { |
| 509 addendum.push({ | 531 addendum.push({ |
| 510 label: loadTimeData.getString('joinOtherNetwork'), | 532 label: loadTimeData.getString('joinOtherNetwork'), |
| 511 command: createAddNonVPNConnectionCallback_('WiFi'), | 533 command: createAddNonVPNConnectionCallback_('WiFi'), |
| 512 data: {} | 534 data: {} |
| 513 }); | 535 }); |
| 514 } else if (this.data_.key == 'Cellular') { | 536 } else if (this.data_.key == 'Cellular') { |
| 515 if (cellularEnabled_ && cellularSupportsScan_) { | 537 if (cellularState_ == 'Enabled' && cellularSupportsScan_) { |
| 516 addendum.push({ | 538 addendum.push({ |
| 517 label: loadTimeData.getString('otherCellularNetworks'), | 539 label: loadTimeData.getString('otherCellularNetworks'), |
| 518 command: createAddNonVPNConnectionCallback_('Cellular'), | 540 command: createAddNonVPNConnectionCallback_('Cellular'), |
| 519 addClass: ['other-cellulars'], | 541 addClass: ['other-cellulars'], |
| 520 data: {} | 542 data: {} |
| 521 }); | 543 }); |
| 522 } | 544 } |
| 523 | 545 |
| 524 var label = enableDataRoaming_ ? 'disableDataRoaming' : | 546 var label = enableDataRoaming_ ? 'disableDataRoaming' : |
| 525 'enableDataRoaming'; | 547 'enableDataRoaming'; |
| (...skipping 495 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1021 if (index != undefined) { | 1043 if (index != undefined) { |
| 1022 var entry = this.dataModel.item(index); | 1044 var entry = this.dataModel.item(index); |
| 1023 entry.iconType = active ? 'control-active' : 'control-inactive'; | 1045 entry.iconType = active ? 'control-active' : 'control-inactive'; |
| 1024 this.update(entry); | 1046 this.update(entry); |
| 1025 } | 1047 } |
| 1026 } | 1048 } |
| 1027 }; | 1049 }; |
| 1028 | 1050 |
| 1029 /** | 1051 /** |
| 1030 * Chrome callback for updating network controls. | 1052 * Chrome callback for updating network controls. |
| 1031 * @param {{cellularAvailable: boolean, | 1053 * @param {{cellularSimAbsent: boolean, |
| 1032 * cellularEnabled: boolean, | |
| 1033 * cellularSimAbsent: boolean, | |
| 1034 * cellularSimLockType: string, | 1054 * cellularSimLockType: string, |
| 1035 * cellularSupportsScan: boolean, | 1055 * cellularSupportsScan: boolean, |
| 1036 * rememberedList: Array<NetworkInfo>, | 1056 * rememberedList: Array<NetworkInfo>, |
| 1037 * vpnList: Array<NetworkInfo>, | 1057 * vpnList: Array<NetworkInfo>, |
| 1038 * wifiAvailable: boolean, | |
| 1039 * wifiEnabled: boolean, | |
| 1040 * wimaxAvailable: boolean, | |
| 1041 * wimaxEnabled: boolean, | |
| 1042 * wiredList: Array<NetworkInfo>, | 1058 * wiredList: Array<NetworkInfo>, |
| 1043 * wirelessList: Array<NetworkInfo>}} data Description of available | 1059 * wirelessList: Array<NetworkInfo>}} data Description of available |
| 1044 * network devices and their corresponding state. | 1060 * network devices and their corresponding state. |
| 1045 */ | 1061 */ |
| 1046 NetworkList.refreshNetworkData = function(data) { | 1062 NetworkList.refreshNetworkData = function(data) { |
| 1047 var networkList = $('network-list'); | |
| 1048 networkList.startBatchUpdates(); | |
| 1049 cellularAvailable_ = data.cellularAvailable; | |
| 1050 cellularEnabled_ = data.cellularEnabled; | |
| 1051 cellularSupportsScan_ = data.cellularSupportsScan; | 1063 cellularSupportsScan_ = data.cellularSupportsScan; |
| 1052 cellularSimAbsent_ = data.cellularSimAbsent; | 1064 cellularSimAbsent_ = data.cellularSimAbsent; |
| 1053 cellularSimLockType_ = data.cellularSimLockType; | 1065 cellularSimLockType_ = data.cellularSimLockType; |
| 1054 wimaxAvailable_ = data.wimaxAvailable; | 1066 wiredList_ = data.wiredList; |
| 1055 wimaxEnabled_ = data.wimaxEnabled; | 1067 wirelessList_ = data.wirelessList; |
| 1068 vpnList_ = data.vpnList; | |
| 1069 rememberedList_ = data.rememberedList; | |
| 1070 | |
| 1071 // Request device states. | |
| 1072 chrome.networkingPrivate.getDeviceStates( | |
| 1073 NetworkList.onGetDeviceStates.bind(this)); | |
| 1074 }; | |
| 1075 | |
| 1076 /** | |
| 1077 * Callback from getDeviceStates. Updates network controls. | |
| 1078 * @param {Array<{State: string, Type: string}>} deviceStates The result | |
| 1079 * from getDeviceStates. | |
| 1080 */ | |
| 1081 NetworkList.onGetDeviceStates = function(deviceStates) { | |
| 1082 var networkList = $('network-list'); | |
| 1083 networkList.startBatchUpdates(); | |
| 1084 | |
| 1085 cellularState_ = undefined; | |
| 1086 wifiState_ = undefined; | |
| 1087 wimaxState_ = undefined; | |
| 1088 for (var i = 0; i < deviceStates.length; ++i) { | |
| 1089 var device = deviceStates[i]; | |
| 1090 var type = device.Type; | |
|
pneubeck (no reviews)
2015/04/15 08:13:05
nit:
to make it more generic / less code, you coul
stevenjb
2015/04/16 17:07:44
I decided against that since it is an incomplete l
| |
| 1091 var state = device.State; | |
| 1092 if (type == 'Cellular') | |
| 1093 cellularState_ = cellularState_ || state; | |
| 1094 else if (type == 'WiFi') | |
| 1095 wifiState_ = wifiState_ || state; | |
| 1096 else if (type == 'WiMAX') | |
| 1097 wimaxState_ = wimaxState_ || state; | |
| 1098 } | |
| 1056 | 1099 |
| 1057 // Only show Ethernet control if connected. | 1100 // Only show Ethernet control if connected. |
| 1058 var ethernetConnection = getConnection_(data.wiredList); | 1101 var ethernetConnection = getConnection_(wiredList_); |
| 1059 if (ethernetConnection) { | 1102 if (ethernetConnection) { |
| 1060 var type = String('Ethernet'); | 1103 var type = String('Ethernet'); |
| 1061 var ethernetOptions = showDetails.bind(null, ethernetConnection.GUID); | 1104 var ethernetOptions = showDetails.bind(null, ethernetConnection.GUID); |
| 1062 networkList.update( | 1105 networkList.update( |
| 1063 { key: 'Ethernet', | 1106 { key: 'Ethernet', |
| 1064 subtitle: loadTimeData.getString('OncConnectionStateConnected'), | 1107 subtitle: loadTimeData.getString('OncConnectionStateConnected'), |
| 1065 iconData: ethernetConnection, | 1108 iconData: ethernetConnection, |
| 1066 command: ethernetOptions, | 1109 command: ethernetOptions, |
| 1067 policyManaged: ethernetConnection.policyManaged } | 1110 policyManaged: ethernetConnection.policyManaged } |
| 1068 ); | 1111 ); |
| 1069 } else { | 1112 } else { |
| 1070 networkList.deleteItem('Ethernet'); | 1113 networkList.deleteItem('Ethernet'); |
| 1071 } | 1114 } |
| 1072 | 1115 |
| 1073 if (data.wifiEnabled) | 1116 if (wifiState_ == 'Enabled') |
| 1074 loadData_('WiFi', data.wirelessList, data.rememberedList); | 1117 loadData_('WiFi', wirelessList_, rememberedList_); |
| 1075 else | 1118 else |
| 1076 addEnableNetworkButton_('WiFi'); | 1119 addEnableNetworkButton_('WiFi'); |
| 1077 | 1120 |
| 1078 // Only show cellular control if available. | 1121 // Only show cellular control if available. |
| 1079 if (data.cellularAvailable) { | 1122 if (cellularState_) { |
| 1080 if (data.cellularEnabled) | 1123 if (cellularState_ == 'Enabled') |
| 1081 loadData_('Cellular', data.wirelessList, data.rememberedList); | 1124 loadData_('Cellular', wirelessList_, rememberedList_); |
| 1082 else | 1125 else |
| 1083 addEnableNetworkButton_('Cellular'); | 1126 addEnableNetworkButton_('Cellular'); |
| 1084 } else { | 1127 } else { |
| 1085 networkList.deleteItem('Cellular'); | 1128 networkList.deleteItem('Cellular'); |
| 1086 } | 1129 } |
| 1087 | 1130 |
| 1088 // Only show wimax control if available. Uses cellular icons. | 1131 // Only show wimax control if available. Uses cellular icons. |
| 1089 if (data.wimaxAvailable) { | 1132 if (wimaxState_) { |
| 1090 if (data.wimaxEnabled) | 1133 if (wimaxState_ == 'Enabled') |
| 1091 loadData_('WiMAX', data.wirelessList, data.rememberedList); | 1134 loadData_('WiMAX', wirelessList_, rememberedList_); |
| 1092 else | 1135 else |
| 1093 addEnableNetworkButton_('WiMAX'); | 1136 addEnableNetworkButton_('WiMAX'); |
| 1094 } else { | 1137 } else { |
| 1095 networkList.deleteItem('WiMAX'); | 1138 networkList.deleteItem('WiMAX'); |
| 1096 } | 1139 } |
| 1097 | 1140 |
| 1098 // Only show VPN control if there is at least one VPN configured. | 1141 // Only show VPN control if there is at least one VPN configured. |
| 1099 if (data.vpnList.length > 0) | 1142 if (vpnList_.length > 0) |
| 1100 loadData_('VPN', data.vpnList, data.rememberedList); | 1143 loadData_('VPN', vpnList_, rememberedList_); |
| 1101 else | 1144 else |
| 1102 networkList.deleteItem('VPN'); | 1145 networkList.deleteItem('VPN'); |
| 1103 networkList.endBatchUpdates(); | 1146 networkList.endBatchUpdates(); |
| 1104 }; | 1147 }; |
| 1105 | 1148 |
| 1106 /** | 1149 /** |
| 1107 * Replaces a network menu with a button for enabling the network type. | 1150 * Replaces a network menu with a button for enabling the network type. |
| 1108 * @param {string} type The type of network (WiFi, Cellular or Wimax). | 1151 * @param {string} type The type of network (WiFi, Cellular or Wimax). |
| 1109 * @private | 1152 * @private |
| 1110 */ | 1153 */ |
| 1111 function addEnableNetworkButton_(type) { | 1154 function addEnableNetworkButton_(type) { |
| 1112 var subtitle = loadTimeData.getString('networkDisabled'); | 1155 var subtitle = loadTimeData.getString('networkDisabled'); |
| 1113 var enableNetwork = function() { | 1156 var enableNetwork = function() { |
| 1114 if (type == 'WiFi') | 1157 if (type == 'WiFi') |
| 1115 sendChromeMetricsAction('Options_NetworkWifiToggle'); | 1158 sendChromeMetricsAction('Options_NetworkWifiToggle'); |
| 1116 if (type == 'Cellular') { | 1159 if (type == 'Cellular') { |
| 1117 if (cellularSimLockType_) { | 1160 if (cellularSimLockType_) { |
| 1118 chrome.send('simOperation', ['unlock']); | 1161 chrome.send('simOperation', ['unlock']); |
| 1119 return; | 1162 return; |
| 1120 } else if (cellularEnabled_ && cellularSimAbsent_) { | 1163 } else if (cellularState_ == 'Enabled' && cellularSimAbsent_) { |
| 1121 chrome.send('simOperation', ['configure']); | 1164 chrome.send('simOperation', ['configure']); |
| 1122 return; | 1165 return; |
| 1123 } | 1166 } |
| 1124 } | 1167 } |
| 1125 chrome.networkingPrivate.enableNetworkType(type); | 1168 chrome.networkingPrivate.enableNetworkType(type); |
| 1126 }; | 1169 }; |
| 1127 $('network-list').update({key: type, | 1170 $('network-list').update({key: type, |
| 1128 subtitle: subtitle, | 1171 subtitle: subtitle, |
| 1129 iconType: type, | 1172 iconType: type, |
| 1130 command: enableNetwork}); | 1173 command: enableNetwork}); |
| (...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1304 /** | 1347 /** |
| 1305 * Whether the Network list is disabled. Only used for display purpose. | 1348 * Whether the Network list is disabled. Only used for display purpose. |
| 1306 */ | 1349 */ |
| 1307 cr.defineProperty(NetworkList, 'disabled', cr.PropertyKind.BOOL_ATTR); | 1350 cr.defineProperty(NetworkList, 'disabled', cr.PropertyKind.BOOL_ATTR); |
| 1308 | 1351 |
| 1309 // Export | 1352 // Export |
| 1310 return { | 1353 return { |
| 1311 NetworkList: NetworkList | 1354 NetworkList: NetworkList |
| 1312 }; | 1355 }; |
| 1313 }); | 1356 }); |
| OLD | NEW |