Commit 7107b028 authored by stevenjb's avatar stevenjb Committed by Commit bot

Fix VPN dropdown menu in Settings

This addresses two issues:
* Disconnect will correctly disconnect from the first connected or
  connecting network
* Join other... is restored to the VPN dropdown

BUG=424723

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

Cr-Commit-Position: refs/heads/master@{#300728}
parent e935b271
...@@ -511,7 +511,14 @@ cr.define('options.network', function() { ...@@ -511,7 +511,14 @@ cr.define('options.network', function() {
}; };
} }
addendum.push(entry); addendum.push(entry);
} else if (this.data_.key == 'VPN') {
addendum.push({
label: loadTimeData.getString('joinOtherNetwork'),
command: createAddConnectionCallback_('VPN'),
data: {}
});
} }
var list = this.data.rememberedNetworks; var list = this.data.rememberedNetworks;
if (list && list.length > 0) { if (list && list.length > 0) {
var callback = function(list) { var callback = function(list) {
...@@ -531,24 +538,29 @@ cr.define('options.network', function() { ...@@ -531,24 +538,29 @@ cr.define('options.network', function() {
list = this.data.networkList; list = this.data.networkList;
var empty = !list || list.length == 0; var empty = !list || list.length == 0;
if (list) { if (list) {
var connectedVpnServicePath = '';
for (var i = 0; i < list.length; i++) { for (var i = 0; i < list.length; i++) {
var data = list[i]; var data = list[i];
this.createNetworkOptionsCallback_(networkGroup, data); this.createNetworkOptionsCallback_(networkGroup, data);
if (data.ConnectionState == 'Connected') { // For VPN only, append a 'Disconnect' item to the dropdown menu.
if (data.Type == 'VPN') { if (!connectedVpnServicePath && data.Type == 'VPN' &&
var disconnectCallback = function() { (data.ConnectionState == 'Connected' ||
sendChromeMetricsAction('Options_NetworkDisconnectVPN'); data.ConnectionState == 'Connecting')) {
// TODO(stevenjb): chrome.networkingPrivate.startDisconnect connectedVpnServicePath = data.servicePath;
chrome.send('startDisconnect', [data.servicePath]);
};
// Add separator
addendum.push({});
addendum.push({label: loadTimeData.getString('disconnectNetwork'),
command: disconnectCallback,
data: data});
}
} }
} }
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' || if (this.data_.key == 'WiFi' || this.data_.key == 'WiMAX' ||
this.data_.key == 'Cellular') { this.data_.key == 'Cellular') {
......
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