Index: chrome/browser/resources/options/chromeos/network_list.js |
diff --git a/chrome/browser/resources/options/chromeos/network_list.js b/chrome/browser/resources/options/chromeos/network_list.js |
index 70cc49c6a416f5439040a67c5af824955e30a38c..0b19674ee3f1f5f0582a579d1ea95cd5936cd9a9 100644 |
--- a/chrome/browser/resources/options/chromeos/network_list.js |
+++ b/chrome/browser/resources/options/chromeos/network_list.js |
@@ -511,7 +511,14 @@ cr.define('options.network', function() { |
}; |
} |
addendum.push(entry); |
+ } else if (this.data_.key == 'VPN') { |
+ addendum.push({ |
+ label: loadTimeData.getString('joinOtherNetwork'), |
+ command: createAddConnectionCallback_('VPN'), |
+ data: {} |
+ }); |
} |
+ |
var list = this.data.rememberedNetworks; |
if (list && list.length > 0) { |
var callback = function(list) { |
@@ -531,24 +538,31 @@ cr.define('options.network', function() { |
list = this.data.networkList; |
var empty = !list || list.length == 0; |
if (list) { |
+ var connectedVpnServicePath = ''; |
for (var i = 0; i < list.length; i++) { |
var data = list[i]; |
this.createNetworkOptionsCallback_(networkGroup, data); |
- if (data.ConnectionState == 'Connected') { |
- if (data.Type == 'VPN') { |
- var disconnectCallback = function() { |
- sendChromeMetricsAction('Options_NetworkDisconnectVPN'); |
- // TODO(stevenjb): chrome.networkingPrivate.startDisconnect |
- chrome.send('startDisconnect', [data.servicePath]); |
- }; |
- // Add separator |
- addendum.push({}); |
- addendum.push({label: loadTimeData.getString('disconnectNetwork'), |
- command: disconnectCallback, |
- data: data}); |
- } |
+ // For VPN only we want to append a 'Disconnect' item to the dropdown |
+ // since there should only ever be one connected or connecting VPN. |
tbarzic
2014/10/22 17:06:57
nit: Maybe it would be better to say that it shoul
stevenjb
2014/10/22 17:31:33
Actually, I guess that's true for any network type
|
+ if (!connectedVpnServicePath && |
+ (data.Type == 'VPN') && |
tbarzic
2014/10/22 17:06:57
nit: I'd drop () here
stevenjb
2014/10/22 17:31:33
Done.
|
+ (data.ConnectionState == 'Connected' || |
+ data.ConnectionState == 'Connecting')) { |
+ connectedVpnServicePath = data.servicePath; |
} |
} |
+ if (connectedVpnServicePath) { |
+ var disconnectCallback = function() { |
+ sendChromeMetricsAction('Options_NetworkDisconnectVPN'); |
+ // TODO(stevenjb): chrome.networkingPrivate.startDisconnect |
+ chrome.send('startDisconnect', [connectedVpnServicePath]); |
+ }; |
+ // Add separator |
+ addendum.push({}); |
+ addendum.push({label: loadTimeData.getString('disconnectNetwork'), |
+ command: disconnectCallback, |
+ data: data}); |
+ } |
} |
if (this.data_.key == 'WiFi' || this.data_.key == 'WiMAX' || |
this.data_.key == 'Cellular') { |