Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4603)

Unified Diff: chrome/browser/resources/options/chromeos/internet_detail.js

Issue 23629010: internet_detail.js: Handle undefined APN fields. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix another small but subtle bug related to APN selection. Created 7 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/resources/options/chromeos/internet_detail.js
diff --git a/chrome/browser/resources/options/chromeos/internet_detail.js b/chrome/browser/resources/options/chromeos/internet_detail.js
index 05958eb6a3a4f721c24a92a20c708c7a090311b0..088330729b09fba16635619b44ac736621020944 100644
--- a/chrome/browser/resources/options/chromeos/internet_detail.js
+++ b/chrome/browser/resources/options/chromeos/internet_detail.js
@@ -63,6 +63,16 @@ cr.define('options.internet', function() {
DetailsInternetPage.getInstance().updateControls();
}
+ /**
+ * Simple helper method for converting a field to a string. It is used to
+ * easily assign an empty string from fields that may be unknown or undefined.
+ * @param {object} value that should be converted to a string.
+ * @return {string} the result.
+ */
+ function stringFromValue(value) {
+ return value ? String(value) : '';
+ }
+
/////////////////////////////////////////////////////////////////////////////
// DetailsInternetPage class:
@@ -160,15 +170,14 @@ cr.define('options.internet', function() {
if (data.providerApnList.value.length > 0) {
var iApn = 0;
- data.apn.apn = data.providerApnList.value[iApn].apn;
- var username = data.providerApnList.value[iApn].username;
- var password = data.providerApnList.value[iApn].password;
- data.apn.username = username ? username : '';
- data.apn.password = password ? password : '';
+ var defaultApn = data.providerApnList.value[iApn];
+ data.apn.apn = stringFromValue(defaultApn.apn);
+ data.apn.username = stringFromValue(defaultApn.username);
+ data.apn.password = stringFromValue(defaultApn.password);
chrome.send('setApn', [data.servicePath,
- String(data.apn.apn),
- String(data.apn.username),
- String(data.apn.password)]);
+ data.apn.apn,
+ data.apn.username,
+ data.apn.password]);
apnSelector.selectedIndex = iApn;
data.selectedApn = iApn;
} else {
@@ -189,13 +198,18 @@ cr.define('options.internet', function() {
var data = $('connection-state').data;
var apnSelector = $('select-apn');
- data.apn.apn = String($('cellular-apn').value);
- data.apn.username = String($('cellular-apn-username').value);
- data.apn.password = String($('cellular-apn-password').value);
+ data.apn.apn = stringFromValue($('cellular-apn').value);
+ data.apn.username = stringFromValue($('cellular-apn-username').value);
+ data.apn.password = stringFromValue($('cellular-apn-password').value);
+ data.userApn = {
+ 'apn': data.apn.apn,
+ 'username': data.apn.username,
+ 'password': data.apn.password
+ };
stevenjb 2013/09/03 21:44:32 nit/question: Could this just be data.userApn = da
armansito 2013/09/03 22:07:38 I think the code just modifies data.apn instead of
chrome.send('setApn', [data.servicePath,
- String(data.apn.apn),
- String(data.apn.username),
- String(data.apn.password)]);
+ data.apn.apn,
+ data.apn.username,
+ data.apn.password]);
if (data.userApnIndex != -1) {
apnSelector.remove(data.userApnIndex);
@@ -226,23 +240,21 @@ cr.define('options.internet', function() {
if (apnSelector[apnSelector.selectedIndex].value != -1) {
var apnList = data.providerApnList.value;
chrome.send('setApn', [data.servicePath,
- String(apnList[apnSelector.selectedIndex].apn),
- String(apnList[apnSelector.selectedIndex].username),
- String(apnList[apnSelector.selectedIndex].password)
- ]);
+ stringFromValue(apnList[apnSelector.selectedIndex].apn),
+ stringFromValue(apnList[apnSelector.selectedIndex].username),
+ stringFromValue(apnList[apnSelector.selectedIndex].password)]
+ );
data.selectedApn = apnSelector.selectedIndex;
} else if (apnSelector.selectedIndex == data.userApnIndex) {
chrome.send('setApn', [data.servicePath,
- String(data.apn.apn),
- String(data.apn.username),
- String(data.apn.password)]);
+ stringFromValue(data.userApn.apn),
+ stringFromValue(data.userApn.username),
+ stringFromValue(data.userApn.password)]);
data.selectedApn = apnSelector.selectedIndex;
} else {
- $('cellular-apn').value = data.apn.apn;
- var username = data.apn.username;
- var password = data.apn.password;
- $('cellular-apn-username').value = username ? username : '';
- $('cellular-apn-password').value = password ? password : '';
+ $('cellular-apn').value = stringFromValue(data.apn.apn);
+ $('cellular-apn-username').value = stringFromValue(data.apn.username);
+ $('cellular-apn-password').value = stringFromValue(data.apn.password);
updateHidden('.apn-list-view', true);
updateHidden('.apn-details-view', false);
@@ -1126,8 +1138,8 @@ cr.define('options.internet', function() {
})();
detailsPage.gsm = data.gsm;
if (data.gsm) {
- $('iccid').textContent = data.iccid ? data.iccid : '';
- $('imsi').textContent = data.imsi ? data.imsi : '';
+ $('iccid').textContent = stringFromValue(data.iccid);
+ $('imsi').textContent = stringFromValue(data.imsi);
var apnSelector = $('select-apn');
// Clear APN lists, keep only last element that "other".
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698