Commit 30a7d44d authored by pneubeck's avatar pneubeck Committed by Commit bot

Fix some properties on the settings page read from ONC.

- Fixed AutoConnect, which is stored in each network type's subdictionary.
- Added a Cellular.AutoConnect property to ONC.
- Fixed VPN username for L2TP-IPsec, which is stored in 'L2TP'.
- Removed reading Wimax properties from ONC, as these are not yet supported.

BUG=412807

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

Cr-Commit-Position: refs/heads/master@{#294897}
parent d62ae950
...@@ -215,6 +215,10 @@ class ExtensionNetworkingPrivateApiTest ...@@ -215,6 +215,10 @@ class ExtensionNetworkingPrivateApiTest
AddService("stub_cellular1", "cellular1", AddService("stub_cellular1", "cellular1",
shill::kTypeCellular, shill::kStateIdle); shill::kTypeCellular, shill::kStateIdle);
// Note: These properties will show up in a "Cellular" object in ONC. // Note: These properties will show up in a "Cellular" object in ONC.
service_test_->SetServiceProperty(
"stub_cellular1",
shill::kAutoConnectProperty,
base::FundamentalValue(true));
service_test_->SetServiceProperty( service_test_->SetServiceProperty(
"stub_cellular1", "stub_cellular1",
shill::kNetworkTechnologyProperty, shill::kNetworkTechnologyProperty,
......
...@@ -1307,13 +1307,14 @@ cr.define('options.internet', function() { ...@@ -1307,13 +1307,14 @@ cr.define('options.internet', function() {
$('prefer-network-wifi').checked = priority > 0; $('prefer-network-wifi').checked = priority > 0;
$('prefer-network-wifi').disabled = !remembered; $('prefer-network-wifi').disabled = !remembered;
$('auto-connect-network-wifi').checked = $('auto-connect-network-wifi').checked =
onc.getActiveValue('AutoConnect'); onc.getActiveValue('WiFi.AutoConnect');
$('auto-connect-network-wifi').disabled = !remembered; $('auto-connect-network-wifi').disabled = !remembered;
} else if (type == 'Wimax') { } else if (type == 'Wimax') {
OptionsPage.showTab($('wimax-network-nav-tab')); OptionsPage.showTab($('wimax-network-nav-tab'));
$('wimax-restricted-connectivity').textContent = restrictedString; $('wimax-restricted-connectivity').textContent = restrictedString;
$('auto-connect-network-wimax').checked = $('auto-connect-network-wimax').checked =
onc.getActiveValue('AutoConnect'); onc.getActiveValue('Wimax.AutoConnect');
$('auto-connect-network-wimax').disabled = !remembered; $('auto-connect-network-wimax').disabled = !remembered;
var identity = onc.getActiveValue('Wimax.EAP.Identity'); var identity = onc.getActiveValue('Wimax.EAP.Identity');
setOrHideParent('wimax-eap-identity', identity); setOrHideParent('wimax-eap-identity', identity);
...@@ -1380,7 +1381,7 @@ cr.define('options.internet', function() { ...@@ -1380,7 +1381,7 @@ cr.define('options.internet', function() {
detailsPage.initializeApnList_(onc); detailsPage.initializeApnList_(onc);
} }
$('auto-connect-network-cellular').checked = $('auto-connect-network-cellular').checked =
onc.getActiveValue('AutoConnect'); onc.getActiveValue('Cellular.AutoConnect');
$('auto-connect-network-cellular').disabled = false; $('auto-connect-network-cellular').disabled = false;
} else if (type == 'VPN') { } else if (type == 'VPN') {
OptionsPage.showTab($('vpn-nav-tab')); OptionsPage.showTab($('vpn-nav-tab'));
...@@ -1388,9 +1389,18 @@ cr.define('options.internet', function() { ...@@ -1388,9 +1389,18 @@ cr.define('options.internet', function() {
$('inet-provider-type').textContent = $('inet-provider-type').textContent =
onc.getTranslatedValue('VPN.Type'); onc.getTranslatedValue('VPN.Type');
var providerType = onc.getActiveValue('VPN.Type'); var providerType = onc.getActiveValue('VPN.Type');
var providerKey = 'VPN.' + providerType; var usernameKey;
$('inet-username').textContent = if (providerType == 'OpenVPN')
onc.getActiveValue(providerKey + '.Username'); usernameKey = 'VPN.OpenVPN.Username';
else if (providerType == 'L2TP-IPsec')
usernameKey = 'VPN.L2TP.Username';
if (usernameKey) {
$('inet-username').parentElement.hidden = false;
$('inet-username').textContent = onc.getActiveValue(usernameKey);
} else {
$('inet-username').parentElement.hidden = true;
}
var inetServerHostname = $('inet-server-hostname'); var inetServerHostname = $('inet-server-hostname');
inetServerHostname.value = onc.getActiveValue('VPN.Host'); inetServerHostname.value = onc.getActiveValue('VPN.Host');
inetServerHostname.resetHandler = function() { inetServerHostname.resetHandler = function() {
...@@ -1400,7 +1410,7 @@ cr.define('options.internet', function() { ...@@ -1400,7 +1410,7 @@ cr.define('options.internet', function() {
inetServerHostname.value = recommended; inetServerHostname.value = recommended;
}; };
$('auto-connect-network-vpn').checked = $('auto-connect-network-vpn').checked =
onc.getActiveValue('AutoConnect'); onc.getActiveValue('VPN.AutoConnect');
$('auto-connect-network-vpn').disabled = false; $('auto-connect-network-vpn').disabled = false;
} else { } else {
OptionsPage.showTab($('internet-nav-tab')); OptionsPage.showTab($('internet-nav-tab'));
......
...@@ -296,6 +296,7 @@ var availableTests = [ ...@@ -296,6 +296,7 @@ var availableTests = [
assertEq({ "Cellular": { assertEq({ "Cellular": {
"ActivationState": "NotActivated", "ActivationState": "NotActivated",
"AllowRoaming": false, "AllowRoaming": false,
"AutoConnect": true,
"Carrier": "Cellular1_Carrier", "Carrier": "Cellular1_Carrier",
"HomeProvider": { "HomeProvider": {
"country": "us", "country": "us",
......
...@@ -249,6 +249,7 @@ const OncFieldSignature cellular_fields[] = { ...@@ -249,6 +249,7 @@ const OncFieldSignature cellular_fields[] = {
{ ::onc::kRecommended, &kRecommendedSignature}, { ::onc::kRecommended, &kRecommendedSignature},
{ ::onc::cellular::kAPN, &kCellularApnSignature }, { ::onc::cellular::kAPN, &kCellularApnSignature },
{ ::onc::cellular::kAPNList, &kCellularApnListSignature}, { ::onc::cellular::kAPNList, &kCellularApnListSignature},
{ ::onc::vpn::kAutoConnect, &kBoolSignature},
{NULL}}; {NULL}};
const OncFieldSignature cellular_with_state_fields[] = { const OncFieldSignature cellular_with_state_fields[] = {
......
...@@ -154,6 +154,7 @@ const FieldTranslationEntry cellular_fields[] = { ...@@ -154,6 +154,7 @@ const FieldTranslationEntry cellular_fields[] = {
{ ::onc::cellular::kActivationType, shill::kActivationTypeProperty}, { ::onc::cellular::kActivationType, shill::kActivationTypeProperty},
// This field is converted during translation, see onc_translator_*. // This field is converted during translation, see onc_translator_*.
// { ::onc::cellular::kActivationState, shill::kActivationStateProperty}, // { ::onc::cellular::kActivationState, shill::kActivationStateProperty},
{ ::onc::vpn::kAutoConnect, shill::kAutoConnectProperty},
{ ::onc::cellular::kNetworkTechnology, shill::kNetworkTechnologyProperty}, { ::onc::cellular::kNetworkTechnology, shill::kNetworkTechnologyProperty},
// This field is converted during translation, see onc_translator_*. // This field is converted during translation, see onc_translator_*.
// { ::onc::cellular::kRoamingState, shill::kRoamingStateProperty}, // { ::onc::cellular::kRoamingState, shill::kRoamingStateProperty},
......
...@@ -393,7 +393,10 @@ void ShillToONCTranslator::TranslateNetworkWithState() { ...@@ -393,7 +393,10 @@ void ShillToONCTranslator::TranslateNetworkWithState() {
if (!onc_network_type.empty()) { if (!onc_network_type.empty()) {
onc_object_->SetStringWithoutPathExpansion(::onc::network_config::kType, onc_object_->SetStringWithoutPathExpansion(::onc::network_config::kType,
onc_network_type); onc_network_type);
TranslateAndAddNestedObject(onc_network_type); // Wimax is not supported by ONC, yet.
// TOOD(pneubeck): Wimax support is required, see https://crbug.com/414417 .
if (onc_network_type != ::onc::network_type::kWimax)
TranslateAndAddNestedObject(onc_network_type);
} }
// Since Name is a read only field in Shill unless it's a VPN, it is copied // Since Name is a read only field in Shill unless it's a VPN, it is copied
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
"AccessPointName": "test-apn", "AccessPointName": "test-apn",
"Username": "test-username", "Username": "test-username",
"Password": "test-password" "Password": "test-password"
} },
"AutoConnect": true
} }
} }
{ {
"AutoConnect": true,
"Type": "cellular", "Type": "cellular",
"Cellular.APN": { "Cellular.APN": {
"apn": "test-apn", "apn": "test-apn",
......
{ {
"AutoConnect": true,
"Type": "cellular", "Type": "cellular",
"Name": "Test Network", "Name": "Test Network",
"Cellular.ActivationState": "activated", "Cellular.ActivationState": "activated",
...@@ -21,24 +22,24 @@ ...@@ -21,24 +22,24 @@
"Cellular.AllowRoaming": true, "Cellular.AllowRoaming": true,
"Cellular.APNList": [ "Cellular.APNList": [
{ {
"apn": "test-apn0", "apn": "test-apn0",
"username": "test-username0", "username": "test-username0",
"password": "test-password0" "password": "test-password0"
}, },
{ {
"apn": "test-apn1", "apn": "test-apn1",
"username": "test-username1", "username": "test-username1",
"password": "test-password1" "password": "test-password1"
}, },
{ {
"apn": "test-apn2", "apn": "test-apn2",
"username": "test-username2", "username": "test-username2",
"password": "test-password2" "password": "test-password2"
}, },
{ {
"apn": "test-apn3", "apn": "test-apn3",
"username": "test-username3", "username": "test-username3",
"password": "test-password3" "password": "test-password3"
} }
], ],
"Cellular.HomeProvider": { "Cellular.HomeProvider": {
......
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
"ActivationState": "Activated", "ActivationState": "Activated",
"ActivationType": "OTASP", "ActivationType": "OTASP",
"AllowRoaming": true, "AllowRoaming": true,
"AutoConnect": true,
"HomeProvider": { "HomeProvider": {
"country": "us", "country": "us",
"name": "cellular_provider" "name": "cellular_provider"
......
...@@ -1869,12 +1869,23 @@ ...@@ -1869,12 +1869,23 @@
<span class="value">Cellular</span> and the <span class="value">Cellular</span> and the
field <span class="field">Cellular</span> must be set to an object of field <span class="field">Cellular</span> must be set to an object of
type <span class="type">Cellular</span>. Currently only used for type <span class="type">Cellular</span>. Currently only used for
representing an existing configuraiton; ONC configuration of representing an existing configuration; ONC configuration of
of <span class="field">Cellular</span> networks is not yet supported. of <span class="field">Cellular</span> networks is not yet supported.
Contains the following fields: Contains the following fields:
</p> </p>
<dl class="field_list"> <dl class="field_list">
<dt class="field">AutoConnect</dt>
<dd>
<span class="field_meta">
(optional, defaults to <span class="value">false</span>)
<span class="type">boolean</span>
</span>
Indicating that the network should be connected to automatically when
possible. Note, that disabled <span class="field">AllowRoaming</span>
takes precedence over autoconnect.
</dd>
<dt class="field">APN</dt> <dt class="field">APN</dt>
<dd> <dd>
<span class="field_meta">(optional) <span class="field_meta">(optional)
......
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