summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorstevenjb <stevenjb@chromium.org>2014-09-09 01:15:40 -0700
committerCommit bot <commit-bot@chromium.org>2014-09-09 08:18:07 +0000
commit5ca466f14cd4b221b5e1340641fd6793621881bd (patch)
tree6a12990c087f1bda3bcb99b3c6e8af1ec108f48e
parentc35ed07fdef5741deb5a306ca838a80515399487 (diff)
downloadchromium_src-5ca466f14cd4b221b5e1340641fd6793621881bd.zip
chromium_src-5ca466f14cd4b221b5e1340641fd6793621881bd.tar.gz
chromium_src-5ca466f14cd4b221b5e1340641fd6793621881bd.tar.bz2
Some JS cleanup, including proper ownership of ONC properties.
This is in preparation for eliminating the remaining non ONC properties from the 'data' object passed from Chrome. BUG=279351 Review URL: https://codereview.chromium.org/547703004 Cr-Commit-Position: refs/heads/master@{#293895}
-rw-r--r--chrome/app/chromeos_strings.grdp3
-rw-r--r--chrome/browser/resources/options/chromeos/internet_detail.html1
-rw-r--r--chrome/browser/resources/options/chromeos/internet_detail.js690
-rw-r--r--chrome/browser/resources/options/chromeos/onc_data.js19
-rw-r--r--chrome/browser/ui/webui/options/chromeos/internet_options_handler.cc15
-rw-r--r--chrome/browser/ui/webui/options/chromeos/internet_options_handler.h1
-rw-r--r--chrome/browser/ui/webui/options/chromeos/internet_options_handler_strings.cc1
7 files changed, 359 insertions, 371 deletions
diff --git a/chrome/app/chromeos_strings.grdp b/chrome/app/chromeos_strings.grdp
index 8627986..e98f694 100644
--- a/chrome/app/chromeos_strings.grdp
+++ b/chrome/app/chromeos_strings.grdp
@@ -2126,9 +2126,6 @@ Press any key to continue exploring.
<message name="IDS_OPTIONS_SETTINGS_ACTIVATE" desc="In the settings tab, the text on the button to activate a cellular network.">
Activate
</message>
- <message name="IDS_OPTIONS_SETTINGS_BUY_PLAN" desc="In settings Internet options, the title for buy cellular data plan button.">
- Buy plan
- </message>
<message name="IDS_OPTIONS_SETTINGS_OPTIONS" desc="In the settings tab, the text on the button to display more options.">
Options...
</message>
diff --git a/chrome/browser/resources/options/chromeos/internet_detail.html b/chrome/browser/resources/options/chromeos/internet_detail.html
index a41f6cc..4314486 100644
--- a/chrome/browser/resources/options/chromeos/internet_detail.html
+++ b/chrome/browser/resources/options/chromeos/internet_detail.html
@@ -672,7 +672,6 @@
<button id="details-internet-configure" i18n-content="configureButton">
</button>
<button id="activate-details" i18n-content="activateButton"></button>
- <button id="buyplan-details" i18n-content="buyplanButton"></button>
<button id="view-account-details" i18n-content="viewAccountButton">
</button>
</div>
diff --git a/chrome/browser/resources/options/chromeos/internet_detail.js b/chrome/browser/resources/options/chromeos/internet_detail.js
index f8f06c0..979777d 100644
--- a/chrome/browser/resources/options/chromeos/internet_detail.js
+++ b/chrome/browser/resources/options/chromeos/internet_detail.js
@@ -117,6 +117,9 @@ cr.define('options.internet', function() {
* @constructor
*/
function DetailsInternetPage() {
+ this.userApnIndex_ = -1;
+ this.selectedApnIndex_ = -1;
+ this.userApn_ = {};
Page.call(this, 'detailsInternetPage', null, 'details-internet-page');
}
@@ -174,129 +177,26 @@ cr.define('options.internet', function() {
DetailsInternetPage.activateFromDetails();
});
- $('buyplan-details').addEventListener('click', function(event) {
- var data = $('connection-state').data;
- chrome.send('buyDataPlan', [data.servicePath]);
- PageManager.closeOverlay();
- });
-
$('view-account-details').addEventListener('click', function(event) {
- var data = $('connection-state').data;
- chrome.send('showMorePlanInfo', [data.servicePath]);
+ chrome.send('showMorePlanInfo',
+ [DetailsInternetPage.getInstance().servicePath_]);
PageManager.closeOverlay();
});
$('cellular-apn-use-default').addEventListener('click', function(event) {
- var data = $('connection-state').data;
- var onc = $('connection-state').onc;
- var apnSelector = $('select-apn');
-
- if (data.userApnIndex != -1) {
- apnSelector.remove(data.userApnIndex);
- data.userApnIndex = -1;
- }
-
- var activeApn;
- var iApn = -1;
- var apnList = onc.getActiveValue('Cellular.APNList');
- if (apnList != undefined && apnList.length > 0) {
- iApn = 0;
- var defaultApn = apnList[iApn];
- activeApn['AccessPointName'] =
- stringFromValue(defaultApn['AccessPointName']);
- activeApn['Username'] = stringFromValue(defaultApn['Username']);
- activeApn['Password'] = stringFromValue(defaultApn['Password']);
- chrome.send('setApn', [data.servicePath,
- activeApn['AccessPointName'],
- activeApn['Username'],
- activeApn['Password']]);
- }
- onc.setManagedProperty('Cellular.APN', activeApn);
- apnSelector.selectedIndex = iApn;
- data.selectedApn = iApn;
-
- updateHidden('.apn-list-view', false);
- updateHidden('.apn-details-view', true);
+ DetailsInternetPage.getInstance().setDefaultApn_();
});
$('cellular-apn-set').addEventListener('click', function(event) {
- if ($('cellular-apn').value == '')
- return;
-
- var data = $('connection-state').data;
- var onc = $('connection-state').onc;
- var apnSelector = $('select-apn');
-
- var activeApn = {};
- activeApn['AccessPointName'] =
- stringFromValue($('cellular-apn').value);
- activeApn['Username'] =
- stringFromValue($('cellular-apn-username').value);
- activeApn['Password'] =
- stringFromValue($('cellular-apn-password').value);
- onc.setManagedProperty('Cellular.APN', activeApn);
- data.userApn = activeApn;
- chrome.send('setApn', [data.servicePath,
- activeApn['AccessPointName'],
- activeApn['Username'],
- activeApn['Password']]);
-
- if (data.userApnIndex != -1) {
- apnSelector.remove(data.userApnIndex);
- data.userApnIndex = -1;
- }
-
- var option = document.createElement('option');
- option.textContent = activeApn['AccessPointName'];
- option.value = -1;
- option.selected = true;
- apnSelector.add(option, apnSelector[apnSelector.length - 1]);
- data.userApnIndex = apnSelector.length - 2;
- data.selectedApn = data.userApnIndex;
-
- updateHidden('.apn-list-view', false);
- updateHidden('.apn-details-view', true);
+ DetailsInternetPage.getInstance().setApn_($('cellular-apn').value);
});
$('cellular-apn-cancel').addEventListener('click', function(event) {
- $('select-apn').selectedIndex = $('connection-state').data.selectedApn;
- updateHidden('.apn-list-view', false);
- updateHidden('.apn-details-view', true);
+ DetailsInternetPage.getInstance().cancelApn_();
});
$('select-apn').addEventListener('change', function(event) {
- var data = $('connection-state').data;
- var onc = $('connection-state').onc;
- var apnSelector = $('select-apn');
- var apnDict;
- if (apnSelector[apnSelector.selectedIndex].value != -1) {
- var apnList = onc.getActiveValue('Cellular.APNList');
- var apnIndex = apnSelector.selectedIndex;
- assert(apnIndex < apnList.length);
- apnDict = apnList[apnIndex];
- chrome.send('setApn', [data.servicePath,
- stringFromValue(apnDict['AccessPointName']),
- stringFromValue(apnDict['Username']),
- stringFromValue(apnDict['Password'])]);
- data.selectedApn = apnIndex;
- } else if (apnSelector.selectedIndex == data.userApnIndex) {
- apnDict = data.userApn;
- chrome.send('setApn', [data.servicePath,
- stringFromValue(apnDict['AccessPointName']),
- stringFromValue(apnDict['Username']),
- stringFromValue(apnDict['Password'])]);
- data.selectedApn = apnSelector.selectedIndex;
- } else {
- apnDict = onc.getActiveValue('Cellular.APN');
- $('cellular-apn').value = stringFromValue(apnDict['AccessPointName']);
- $('cellular-apn-username').value =
- stringFromValue(apnDict['Username']);
- $('cellular-apn-password').value =
- stringFromValue(apnDict['Password']);
-
- updateHidden('.apn-list-view', true);
- updateHidden('.apn-details-view', false);
- }
+ DetailsInternetPage.getInstance().selectApn_();
});
$('sim-card-lock-enabled').addEventListener('click', function(event) {
@@ -490,12 +390,12 @@ cr.define('options.internet', function() {
// Network type related.
updateHidden('#details-internet-page .cellular-details',
- this.type != 'Cellular');
+ this.type_ != 'Cellular');
updateHidden('#details-internet-page .wifi-details',
- this.type != 'WiFi');
+ this.type_ != 'WiFi');
updateHidden('#details-internet-page .wimax-details',
- this.type != 'Wimax');
- updateHidden('#details-internet-page .vpn-details', this.type != 'VPN');
+ this.type_ != 'Wimax');
+ updateHidden('#details-internet-page .vpn-details', this.type_ != 'VPN');
updateHidden('#details-internet-page .proxy-details', !this.showProxy);
// Cellular
@@ -511,11 +411,11 @@ cr.define('options.internet', function() {
// Hide network tab for VPN.
updateHidden('#details-internet-page .network-details',
- this.type == 'VPN');
+ this.type_ == 'VPN');
// Password and shared.
updateHidden('#details-internet-page #password-details',
- this.type != 'WiFi' || !this.hasSecurity);
+ this.type_ != 'WiFi' || !this.hasSecurity);
updateHidden('#details-internet-page #wifi-shared-network',
!this.shared);
updateHidden('#details-internet-page #prefer-network',
@@ -650,6 +550,234 @@ cr.define('options.internet', function() {
$('manual-proxy-parms').hidden = !$('manual-proxy').checked;
chrome.send('coreOptionsUserMetricsAction',
['Options_NetworkManualProxy_Enable']);
+ },
+
+ updateConnectionButtonVisibilty_: function() {
+ var onc = this.onc_;
+ if (this.type_ == 'Ethernet') {
+ // Ethernet can never be connected or disconnected and can always be
+ // configured (e.g. to set security).
+ $('details-internet-login').hidden = true;
+ $('details-internet-disconnect').hidden = true;
+ $('details-internet-configure').hidden = false;
+ return;
+ }
+
+ var connectState = onc.getActiveValue('ConnectionState');
+ if (connectState == 'NotConnected') {
+ $('details-internet-login').hidden = false;
+ // Connecting to an unconfigured network might trigger certificate
+ // installation UI. Until that gets handled here, always enable the
+ // Connect button.
+ $('details-internet-login').disabled = false;
+ $('details-internet-disconnect').hidden = true;
+ } else {
+ $('details-internet-login').hidden = true;
+ $('details-internet-disconnect').hidden = false;
+ }
+
+ var connectable = onc.getActiveValue('Connectable');
+ if (connectState != 'Connected' &&
+ (!connectable || this.hasSecurity ||
+ (this.type_ == 'Wimax' || this.type_ == 'VPN'))) {
+ $('details-internet-configure').hidden = false;
+ } else {
+ $('details-internet-configure').hidden = true;
+ }
+ },
+
+ populateHeader_: function() {
+ var onc = this.onc_;
+
+ $('network-details-title').textContent = onc.getTranslatedValue('Name');
+ var connectionState = onc.getActiveValue('ConnectionState');
+ var connectionStateString = onc.getTranslatedValue('ConnectionState');
+ this.connected = connectionState == 'Connected';
+ $('network-details-subtitle-status').textContent = connectionStateString;
+ var typeKey;
+ var type = this.type_;
+ if (type == 'Ethernet')
+ typeKey = 'ethernetTitle';
+ else if (type == 'WiFi')
+ typeKey = 'wifiTitle';
+ else if (type == 'Wimax')
+ typeKey = 'wimaxTitle';
+ else if (type == 'Cellular')
+ typeKey = 'cellularTitle';
+ else if (type == 'VPN')
+ typeKey = 'vpnTitle';
+ else
+ typeKey = null;
+ var typeLabel = $('network-details-subtitle-type');
+ var typeSeparator = $('network-details-subtitle-separator');
+ if (typeKey) {
+ typeLabel.textContent = loadTimeData.getString(typeKey);
+ typeLabel.hidden = false;
+ typeSeparator.hidden = false;
+ } else {
+ typeLabel.hidden = true;
+ typeSeparator.hidden = true;
+ }
+ },
+
+ initializeApnList_: function(onc) {
+ var apnSelector = $('select-apn');
+ // Clear APN lists, keep only last element that "other".
+ while (apnSelector.length != 1) {
+ apnSelector.remove(0);
+ }
+ var otherOption = apnSelector[0];
+ var activeApn = onc.getActiveValue('Cellular.APN.AccessPointName');
+ var activeUsername = onc.getActiveValue('Cellular.APN.Username');
+ var activePassword = onc.getActiveValue('Cellular.APN.Password');
+ var lastGoodApn =
+ onc.getActiveValue('Cellular.LastGoodAPN.AccessPointName');
+ var lastGoodUsername =
+ onc.getActiveValue('Cellular.LastGoodAPN.Username');
+ var lastGoodPassword =
+ onc.getActiveValue('Cellular.LastGoodAPN.Password');
+ var apnList = onc.getActiveValue('Cellular.APNList');
+ for (var i = 0; i < apnList.length; i++) {
+ var apnDict = apnList[i];
+ var option = document.createElement('option');
+ var localizedName = apnDict['LocalizedName'];
+ var name = localizedName ? localizedName : apnDict['Name'];
+ var accessPointName = apnDict['AccessPointName'];
+ option.textContent =
+ name ? (name + ' (' + accessPointName + ')') : accessPointName;
+ option.value = i;
+ // If this matches the active Apn, or LastGoodApn, set it as the
+ // selected Apn.
+ if ((activeApn == accessPointName &&
+ activeUsername == apnDict['Username'] &&
+ activePassword == apnDict['Password']) ||
+ (!activeApn &&
+ lastGoodApn == accessPointName &&
+ lastGoodUsername == apnDict['Username'] &&
+ lastGoodPassword == apnDict['Password'])) {
+ this.selectedApnIndex_ = i;
+ }
+ // Insert new option before "other" option.
+ apnSelector.add(option, otherOption);
+ }
+ if (this.selectedApnIndex_ == -1 && activeApn) {
+ var activeOption = document.createElement('option');
+ activeOption.textContent = activeApn;
+ activeOption.value = -1;
+ apnSelector.add(activeOption, otherOption);
+ this.selectedApnIndex_ = apnSelector.length - 2;
+ this.userApnIndex_ = this.selectedApnIndex_;
+ }
+ assert(this.selectedApnIndex_ >= 0);
+ apnSelector.selectedIndex = this.selectedApnIndex_;
+ updateHidden('.apn-list-view', false);
+ updateHidden('.apn-details-view', true);
+ },
+
+ setDefaultApn_: function() {
+ var onc = this.onc_;
+ var apnSelector = $('select-apn');
+
+ if (this.userApnIndex_ != -1) {
+ apnSelector.remove(this.userApnIndex_);
+ this.userApnIndex_ = -1;
+ }
+
+ var iApn = -1;
+ var apnList = onc.getActiveValue('Cellular.APNList');
+ if (apnList != undefined && apnList.length > 0) {
+ iApn = 0;
+ var defaultApn = apnList[iApn];
+ var activeApn = {};
+ activeApn['AccessPointName'] =
+ stringFromValue(defaultApn['AccessPointName']);
+ activeApn['Username'] = stringFromValue(defaultApn['Username']);
+ activeApn['Password'] = stringFromValue(defaultApn['Password']);
+ onc.setManagedProperty('Cellular.APN', activeApn);
+ chrome.send('setApn', [this.servicePath_,
+ activeApn['AccessPointName'],
+ activeApn['Username'],
+ activeApn['Password']]);
+ }
+ apnSelector.selectedIndex = iApn;
+ this.selectedApnIndex_ = iApn;
+
+ updateHidden('.apn-list-view', false);
+ updateHidden('.apn-details-view', true);
+ },
+
+ setApn_: function(apnValue) {
+ if (apnValue == '')
+ return;
+
+ var onc = this.onc_;
+ var apnSelector = $('select-apn');
+
+ var activeApn = {};
+ activeApn['AccessPointName'] = stringFromValue(apnValue);
+ activeApn['Username'] = stringFromValue($('cellular-apn-username').value);
+ activeApn['Password'] = stringFromValue($('cellular-apn-password').value);
+ onc.setManagedProperty('Cellular.APN', activeApn);
+ this.userApn_ = activeApn;
+ chrome.send('setApn', [this.servicePath_,
+ activeApn['AccessPointName'],
+ activeApn['Username'],
+ activeApn['Password']]);
+
+ if (this.userApnIndex_ != -1) {
+ apnSelector.remove(this.userApnIndex_);
+ this.userApnIndex_ = -1;
+ }
+
+ var option = document.createElement('option');
+ option.textContent = activeApn['AccessPointName'];
+ option.value = -1;
+ option.selected = true;
+ apnSelector.add(option, apnSelector[apnSelector.length - 1]);
+ this.userApnIndex_ = apnSelector.length - 2;
+ this.selectedApnIndex_ = this.userApnIndex_;
+
+ updateHidden('.apn-list-view', false);
+ updateHidden('.apn-details-view', true);
+ },
+
+ cancelApn_: function() {
+ $('select-apn').selectedIndex = this.selectedApnIndex_;
+ updateHidden('.apn-list-view', false);
+ updateHidden('.apn-details-view', true);
+ },
+
+ selectApn_: function() {
+ var onc = this.onc_;
+ var apnSelector = $('select-apn');
+ var apnDict;
+ if (apnSelector[apnSelector.selectedIndex].value != -1) {
+ var apnList = onc.getActiveValue('Cellular.APNList');
+ var apnIndex = apnSelector.selectedIndex;
+ assert(apnIndex < apnList.length);
+ apnDict = apnList[apnIndex];
+ chrome.send('setApn', [this.servicePath_,
+ stringFromValue(apnDict['AccessPointName']),
+ stringFromValue(apnDict['Username']),
+ stringFromValue(apnDict['Password'])]);
+ this.selectedApnIndex_ = apnIndex;
+ } else if (apnSelector.selectedIndex == this.userApnIndex_) {
+ apnDict = this.userApn_;
+ chrome.send('setApn', [this.servicePath_,
+ stringFromValue(apnDict['AccessPointName']),
+ stringFromValue(apnDict['Username']),
+ stringFromValue(apnDict['Password'])]);
+ this.selectedApnIndex_ = apnSelector.selectedIndex;
+ } else {
+ $('cellular-apn').value =
+ stringFromValue(onc.getActiveValue('Cellular.APN.AccessPointName'));
+ $('cellular-apn-username').value =
+ stringFromValue(onc.getActiveValue('Cellular.APN.Username'));
+ $('cellular-apn-password').value =
+ stringFromValue(onc.getActiveValue('Cellular.APN.Password'));
+ updateHidden('.apn-list-view', true);
+ updateHidden('.apn-details-view', false);
+ }
}
};
@@ -663,7 +791,6 @@ cr.define('options.internet', function() {
'details-internet-disconnect',
'details-internet-configure',
'activate-details',
- 'buyplan-details',
'view-account-details');
for (var i = 0; i < buttonsToDisableList.length; ++i) {
@@ -688,8 +815,8 @@ cr.define('options.internet', function() {
var carrierSelector = $('select-carrier');
var carrier = carrierSelector[carrierSelector.selectedIndex].textContent;
DetailsInternetPage.showCarrierChangeSpinner(true);
- var data = $('connection-state').data;
- chrome.send('setCarrier', [data.servicePath, carrier]);
+ chrome.send('setCarrier', [
+ DetailsInternetPage.getInstance().servicePath_, carrier]);
};
/**
@@ -697,8 +824,7 @@ cr.define('options.internet', function() {
* preparation for showing proxy-setttings.
*/
DetailsInternetPage.initializeProxySettings = function() {
- var detailsPage = DetailsInternetPage.getInstance();
- detailsPage.initializePageContents_();
+ DetailsInternetPage.getInstance().initializePageContents_();
};
/**
@@ -707,7 +833,6 @@ cr.define('options.internet', function() {
DetailsInternetPage.showProxySettings = function() {
var detailsPage = DetailsInternetPage.getInstance();
$('network-details-header').hidden = true;
- $('buyplan-details').hidden = true;
$('activate-details').hidden = true;
$('view-account-details').hidden = true;
$('web-proxy-auto-discovery').hidden = true;
@@ -766,49 +891,51 @@ cr.define('options.internet', function() {
};
DetailsInternetPage.loginFromDetails = function() {
- var data = $('connection-state').data;
- var servicePath = data.servicePath;
- chrome.send('networkCommand', [data.type, servicePath, 'connect']);
+ var detailsPage = DetailsInternetPage.getInstance();
+ chrome.send('networkCommand',
+ [detailsPage.type_, detailsPage.servicePath_, 'connect']);
PageManager.closeOverlay();
};
DetailsInternetPage.disconnectNetwork = function() {
- var data = $('connection-state').data;
- var servicePath = data.servicePath;
- chrome.send('networkCommand', [data.type, servicePath, 'disconnect']);
+ var detailsPage = DetailsInternetPage.getInstance();
+ chrome.send('networkCommand',
+ [detailsPage.type_, detailsPage.servicePath_, 'disconnect']);
PageManager.closeOverlay();
};
DetailsInternetPage.configureNetwork = function() {
- var data = $('connection-state').data;
- var servicePath = data.servicePath;
- chrome.send('networkCommand', [data.type, servicePath, 'configure']);
+ var detailsPage = DetailsInternetPage.getInstance();
+ chrome.send('networkCommand',
+ [detailsPage.type_, detailsPage.servicePath_, 'configure']);
PageManager.closeOverlay();
};
DetailsInternetPage.activateFromDetails = function() {
- var data = $('connection-state').data;
- var servicePath = data.servicePath;
- if (data.type == 'Cellular')
- chrome.send('networkCommand', [data.type, servicePath, 'activate']);
+ var detailsPage = DetailsInternetPage.getInstance();
+ if (detailsPage.type_ == 'Cellular') {
+ chrome.send('networkCommand',
+ [detailsPage.type_, detailsPage.servicePath_, 'activate']);
+ }
PageManager.closeOverlay();
};
DetailsInternetPage.setDetails = function() {
- var data = $('connection-state').data;
- var servicePath = data.servicePath;
- if (data.type == 'WiFi') {
+ var detailsPage = DetailsInternetPage.getInstance();
+ var type = detailsPage.type_;
+ var servicePath = detailsPage.servicePath_;
+ if (type == 'WiFi') {
sendCheckedIfEnabled(servicePath, 'setPreferNetwork',
$('prefer-network-wifi'));
sendCheckedIfEnabled(servicePath, 'setAutoConnect',
$('auto-connect-network-wifi'));
- } else if (data.type == 'Wimax') {
+ } else if (type == 'Wimax') {
sendCheckedIfEnabled(servicePath, 'setAutoConnect',
$('auto-connect-network-wimax'));
- } else if (data.type == 'Cellular') {
+ } else if (type == 'Cellular') {
sendCheckedIfEnabled(servicePath, 'setAutoConnect',
$('auto-connect-network-cellular'));
- } else if (data.type == 'VPN') {
+ } else if (type == 'VPN') {
chrome.send('setServerHostname',
[servicePath,
$('inet-server-hostname').value]);
@@ -879,108 +1006,41 @@ cr.define('options.internet', function() {
}
};
- DetailsInternetPage.updateConnectionButtonVisibilty = function(onc) {
- if (onc.type == 'Ethernet') {
- // Ethernet can never be connected or disconnected and can always be
- // configured (e.g. to set security).
- $('details-internet-login').hidden = true;
- $('details-internet-disconnect').hidden = true;
- $('details-internet-configure').hidden = false;
- return;
- }
-
- var connectState = onc.getActiveValue('ConnectionState');
- if (connectState == 'NotConnected') {
- $('details-internet-login').hidden = false;
- // Connecting to an unconfigured network might trigger certificate
- // installation UI. Until that gets handled here, always enable the
- // Connect button.
- $('details-internet-login').disabled = false;
- $('details-internet-disconnect').hidden = true;
- } else {
- $('details-internet-login').hidden = true;
- $('details-internet-disconnect').hidden = false;
- }
-
- var connectable = onc.getActiveValue('Connectable');
- if (connectState != 'Connected' &&
- (!connectable || this.hasSecurity ||
- (onc.type == 'Wimax' || onc.type == 'VPN'))) {
- $('details-internet-configure').hidden = false;
- } else {
- $('details-internet-configure').hidden = true;
- }
- };
-
- DetailsInternetPage.populateHeader = function(detailsPage, onc) {
- $('network-details-title').textContent = onc.getTranslatedValue('Name');
- var connectionState = onc.getActiveValue('ConnectionState');
- var connectionStateString = onc.getTranslatedValue('ConnectionState');
- detailsPage.connected = connectionState == 'Connected';
- $('network-details-subtitle-status').textContent = connectionStateString;
- var typeKey;
- if (onc.type == 'Ethernet')
- typeKey = 'ethernetTitle';
- else if (onc.type == 'WiFi')
- typeKey = 'wifiTitle';
- else if (onc.type == 'Wimax')
- typeKey = 'wimaxTitle';
- else if (onc.type == 'Cellular')
- typeKey = 'cellularTitle';
- else if (onc.type == 'VPN')
- typeKey = 'vpnTitle';
- else
- typeKey = null;
- var typeLabel = $('network-details-subtitle-type');
- var typeSeparator = $('network-details-subtitle-separator');
- if (typeKey) {
- typeLabel.textContent = loadTimeData.getString(typeKey);
- typeLabel.hidden = false;
- typeSeparator.hidden = false;
- } else {
- typeLabel.hidden = true;
- typeSeparator.hidden = true;
- }
- };
-
DetailsInternetPage.updateConnectionData = function(update) {
var detailsPage = DetailsInternetPage.getInstance();
if (!detailsPage.visible)
return;
- var data = $('connection-state').data;
- if (!data)
- return;
-
- if (update.servicePath != data.servicePath)
+ if (update.servicePath != detailsPage.servicePath_)
return;
// Update our cached data object.
- updateDataObject(data, update);
- var onc = new OncData(data);
+ var onc = detailsPage.onc_;
+ onc.updateData(update);
- this.populateHeader(detailsPage, onc);
+ detailsPage.populateHeader_();
var connectionState = onc.getActiveValue('ConnectionState');
var connectionStateString = onc.getTranslatedValue('ConnectionState');
- detailsPage.deviceConnected = data.deviceConnected;
+ if ('deviceConnected' in update)
+ detailsPage.deviceConnected = update.deviceConnected;
detailsPage.connected = connectionState == 'Connected';
$('connection-state').textContent = connectionStateString;
- this.updateConnectionButtonVisibilty(onc);
+ detailsPage.updateConnectionButtonVisibilty_();
- if (onc.type == 'WiFi') {
+ var type = detailsPage.type_;
+ if (type == 'WiFi') {
$('wifi-connection-state').textContent = connectionStateString;
- } else if (onc.type == 'Wimax') {
+ } else if (type == 'Wimax') {
$('wimax-connection-state').textContent = connectionStateString;
- } else if (onc.type == 'Cellular') {
+ } else if (type == 'Cellular') {
$('activation-state').textContent =
onc.getTranslatedValue('Cellular.ActivationState');
- $('buyplan-details').hidden = !data.showBuyButton;
- $('view-account-details').hidden = !data.showViewAccountButton;
-
- $('activate-details').hidden = !data.showActivateButton;
- if (data.showActivateButton)
+ // These properties are only defined if they are true.
+ $('view-account-details').hidden = !update.showViewAccountButton;
+ $('activate-details').hidden = !update.showActivateButton;
+ if (update.showActivateButton)
$('details-internet-login').hidden = true;
if (detailsPage.gsm) {
@@ -990,28 +1050,23 @@ cr.define('options.internet', function() {
$('change-pin').hidden = !lockEnabled;
}
}
-
- $('connection-state').data = data;
- $('connection-state').onc = onc;
};
DetailsInternetPage.showDetailedInfo = function(data) {
- var detailsPage = DetailsInternetPage.getInstance();
-
var onc = new OncData(data);
- data.type = onc.type;
- this.populateHeader(detailsPage, onc);
+ var detailsPage = DetailsInternetPage.getInstance();
+ detailsPage.onc_ = onc;
+ var type = onc.getActiveValue('Type');
+ detailsPage.type_ = type;
+ detailsPage.servicePath_ = data.servicePath;
- // TODO(stevenjb): Find a more appropriate place to cache data.
- $('connection-state').data = data;
- $('connection-state').onc = onc;
+ detailsPage.populateHeader_();
- $('buyplan-details').hidden = true;
$('activate-details').hidden = true;
$('view-account-details').hidden = true;
- this.updateConnectionButtonVisibilty(onc);
+ detailsPage.updateConnectionButtonVisibilty_();
$('web-proxy-auto-discovery').hidden = true;
@@ -1022,7 +1077,7 @@ cr.define('options.internet', function() {
// Only show proxy for remembered networks.
if (data.remembered) {
detailsPage.showProxy = true;
- chrome.send('selectNetwork', [data.servicePath]);
+ chrome.send('selectNetwork', [detailsPage.servicePath_]);
} else {
detailsPage.showProxy = false;
}
@@ -1039,12 +1094,12 @@ cr.define('options.internet', function() {
var inetNameServersString;
- if ('IPConfigs' in data) {
- var ipconfigList = onc.getActiveValue('IPConfigs');
+ var ipconfigList = onc.getActiveValue('IPConfigs');
+ if (Array.isArray(ipconfigList)) {
for (var i = 0; i < ipconfigList.length; ++i) {
var ipconfig = ipconfigList[i];
- var type = ipconfig['Type'];
- if (type != 'IPv4') {
+ var ipType = ipconfig['Type'];
+ if (ipType != 'IPv4') {
// TODO(stevenjb): Handle IPv6 properties.
continue;
}
@@ -1074,56 +1129,52 @@ cr.define('options.internet', function() {
// Override the "automatic" values with the real saved DHCP values,
// if they are set.
var savedNameServersString;
- if ('SavedIPConfig' in data) {
- var savedIpAddress = onc.getActiveValue('SavedIPConfig.IPAddress');
- if (savedIpAddress != undefined) {
- inetAddress.automatic = savedIpAddress;
- inetAddress.value = savedIpAddress;
- }
- var savedPrefix = onc.getActiveValue('SavedIPConfig.RoutingPrefix');
- if (savedPrefix != undefined) {
- var savedNetmask = PrefixLengthToNetmask(savedPrefix);
- inetNetmask.automatic = savedNetmask;
- inetNetmask.value = savedNetmask;
- }
- var savedGateway = onc.getActiveValue('SavedIPConfig.Gateway');
- if (savedGateway != undefined) {
- inetGateway.automatic = savedGateway;
- inetGateway.value = savedGateway;
- }
- var savedNameServers = onc.getActiveValue('SavedIPConfig.NameServers');
- if (savedNameServers) {
- savedNameServers = savedNameServers.sort();
- savedNameServersString = savedNameServers.join(',');
- }
+ var savedIpAddress = onc.getActiveValue('SavedIPConfig.IPAddress');
+ if (savedIpAddress != undefined) {
+ inetAddress.automatic = savedIpAddress;
+ inetAddress.value = savedIpAddress;
+ }
+ var savedPrefix = onc.getActiveValue('SavedIPConfig.RoutingPrefix');
+ if (savedPrefix != undefined) {
+ var savedNetmask = PrefixLengthToNetmask(savedPrefix);
+ inetNetmask.automatic = savedNetmask;
+ inetNetmask.value = savedNetmask;
+ }
+ var savedGateway = onc.getActiveValue('SavedIPConfig.Gateway');
+ if (savedGateway != undefined) {
+ inetGateway.automatic = savedGateway;
+ inetGateway.value = savedGateway;
+ }
+ var savedNameServers = onc.getActiveValue('SavedIPConfig.NameServers');
+ if (savedNameServers) {
+ savedNameServers = savedNameServers.sort();
+ savedNameServersString = savedNameServers.join(',');
}
var ipAutoConfig = 'automatic';
var staticNameServersString;
- if ('StaticIPConfig' in data) {
- var staticIpAddress = onc.getActiveValue('StaticIPConfig.IPAddress');
- if (staticIpAddress != undefined) {
- ipAutoConfig = 'user';
- inetAddress.user = staticIpAddress;
- inetAddress.value = staticIpAddress;
- }
- var staticPrefix = onc.getActiveValue('StaticIPConfig.RoutingPrefix');
- if (staticPrefix != undefined) {
- var staticNetmask = PrefixLengthToNetmask(staticPrefix);
- inetNetmask.user = staticNetmask;
- inetNetmask.value = staticNetmask;
- }
- var staticGateway = onc.getActiveValue('StaticIPConfig.Gateway');
- if (staticGateway != undefined) {
- inetGateway.user = staticGateway;
- inetGateway.value = staticGateway;
- }
- var staticNameServers = onc.getActiveValue('StaticIPConfig.NameServers');
- if (staticNameServers) {
- staticNameServers = staticNameServers.sort();
- staticNameServersString = staticNameServers.join(',');
- }
+ var staticIpAddress = onc.getActiveValue('StaticIPConfig.IPAddress');
+ if (staticIpAddress != undefined) {
+ ipAutoConfig = 'user';
+ inetAddress.user = staticIpAddress;
+ inetAddress.value = staticIpAddress;
+ }
+ var staticPrefix = onc.getActiveValue('StaticIPConfig.RoutingPrefix');
+ if (staticPrefix != undefined) {
+ var staticNetmask = PrefixLengthToNetmask(staticPrefix);
+ inetNetmask.user = staticNetmask;
+ inetNetmask.value = staticNetmask;
+ }
+ var staticGateway = onc.getActiveValue('StaticIPConfig.Gateway');
+ if (staticGateway != undefined) {
+ inetGateway.user = staticGateway;
+ inetGateway.value = staticGateway;
+ }
+ var staticNameServers = onc.getActiveValue('StaticIPConfig.NameServers');
+ if (staticNameServers) {
+ staticNameServers = staticNameServers.sort();
+ staticNameServersString = staticNameServers.join(',');
}
$('ip-automatic-configuration-checkbox').checked =
@@ -1192,16 +1243,14 @@ cr.define('options.internet', function() {
// Signal strength as percentage (for WiFi and Wimax).
var signalStrength;
- if (onc.type == 'WiFi' || onc.type == 'Wimax') {
- signalStrength = onc.getActiveValue(onc.type + '.SignalStrength');
- }
+ if (type == 'WiFi' || type == 'Wimax')
+ signalStrength = onc.getActiveValue(type + '.SignalStrength');
if (!signalStrength)
signalStrength = 0;
var strengthFormat = loadTimeData.getString('inetSignalStrengthFormat');
var strengthString = strengthFormat.replace('$1', signalStrength);
- detailsPage.type = onc.type;
- if (onc.type == 'WiFi') {
+ if (type == 'WiFi') {
OptionsPage.showTab($('wifi-network-nav-tab'));
detailsPage.gsm = false;
detailsPage.shared = data.shared;
@@ -1232,7 +1281,7 @@ cr.define('options.internet', function() {
onc.getActiveValue('AutoConnect');
$('auto-connect-network-wifi').disabled = !data.remembered;
detailsPage.hasSecurity = security != undefined;
- } else if (onc.type == 'Wimax') {
+ } else if (type == 'Wimax') {
OptionsPage.showTab($('wimax-network-nav-tab'));
detailsPage.gsm = false;
detailsPage.shared = data.shared;
@@ -1245,7 +1294,7 @@ cr.define('options.internet', function() {
var identity = onc.getActiveValue('Wimax.EAP.Identity');
setOrHideParent('wimax-eap-identity', identity);
$('wimax-signal-strength').textContent = strengthString;
- } else if (onc.type == 'Cellular') {
+ } else if (type == 'Cellular') {
OptionsPage.showTab($('cellular-conn-nav-tab'));
if (data.showCarrierSelect && data.currentCarrierIndex != -1) {
var carrierSelector = $('select-carrier');
@@ -1308,58 +1357,7 @@ cr.define('options.internet', function() {
if (detailsPage.gsm) {
$('iccid').textContent = onc.getActiveValue('Cellular.ICCID');
$('imsi').textContent = onc.getActiveValue('Cellular.IMSI');
-
- var apnSelector = $('select-apn');
- // Clear APN lists, keep only last element that "other".
- while (apnSelector.length != 1)
- apnSelector.remove(0);
- var otherOption = apnSelector[0];
- data.selectedApn = -1;
- data.userApnIndex = -1;
- var activeApn = onc.getActiveValue('Cellular.APN.AccessPointName');
- var activeUsername = onc.getActiveValue('Cellular.APN.Username');
- var activePassword = onc.getActiveValue('Cellular.APN.Password');
- var lastGoodApn =
- onc.getActiveValue('Cellular.LastGoodAPN.AccessPointName');
- var lastGoodUsername =
- onc.getActiveValue('Cellular.LastGoodAPN.Username');
- var lastGoodPassword =
- onc.getActiveValue('Cellular.LastGoodAPN.Password');
- var apnList = onc.getActiveValue('Cellular.APNList');
- for (var i = 0; i < apnList.length; i++) {
- var apnDict = apnList[i];
- var option = document.createElement('option');
- var localizedName = apnDict['LocalizedName'];
- var name = localizedName ? localizedName : apnDict['Name'];
- var accessPointName = apnDict['AccessPointName'];
- option.textContent =
- name ? (name + ' (' + accessPointName + ')') : accessPointName;
- option.value = i;
- // If this matches the active Apn, or LastGoodApn, set it as the
- // selected Apn.
- if ((activeApn == accessPointName &&
- activeUsername == apnDict['Username'] &&
- activePassword == apnDict['Password']) ||
- (!activeApn &&
- lastGoodApn == accessPointName &&
- lastGoodUsername == apnDict['Username'] &&
- lastGoodPassword == apnDict['Password'])) {
- data.selectedApn = i;
- }
- // Insert new option before "other" option.
- apnSelector.add(option, otherOption);
- }
- if (data.selectedApn == -1 && activeApn) {
- var option = document.createElement('option');
- option.textContent = activeApn;
- option.value = -1;
- apnSelector.add(option, otherOption);
- data.selectedApn = apnSelector.length - 2;
- data.userApnIndex = data.selectedApn;
- }
- apnSelector.selectedIndex = data.selectedApn;
- updateHidden('.apn-list-view', false);
- updateHidden('.apn-details-view', true);
+ detailsPage.initializeApnList_(onc);
var lockEnabled =
onc.getActiveValue('Cellular.SIMLockStatus.LockEnabled');
$('sim-card-lock-enabled').checked = lockEnabled;
@@ -1369,13 +1367,11 @@ cr.define('options.internet', function() {
onc.getActiveValue('AutoConnect');
$('auto-connect-network-cellular').disabled = false;
- $('buyplan-details').hidden = !data.showBuyButton;
$('view-account-details').hidden = !data.showViewAccountButton;
$('activate-details').hidden = !data.showActivateButton;
- if (data.showActivateButton) {
+ if (data.showActivateButton)
$('details-internet-login').hidden = true;
- }
- } else if (onc.type == 'VPN') {
+ } else if (type == 'VPN') {
OptionsPage.showTab($('vpn-nav-tab'));
detailsPage.gsm = false;
$('inet-service-name').textContent = networkName;
diff --git a/chrome/browser/resources/options/chromeos/onc_data.js b/chrome/browser/resources/options/chromeos/onc_data.js
index 78e25a7..dd1f062 100644
--- a/chrome/browser/resources/options/chromeos/onc_data.js
+++ b/chrome/browser/resources/options/chromeos/onc_data.js
@@ -12,8 +12,6 @@ cr.define('cr.onc', function() {
function OncData(data) {
this.data_ = data;
- // For convenience set 'type' to the active 'Type' value.
- this.type = this.getActiveValue('Type');
}
OncData.prototype = {
@@ -104,7 +102,7 @@ cr.define('cr.onc', function() {
return value;
var oncString = 'Onc' + key + value;
// Handle special cases
- if (key == 'Name' && this.type == 'Ethernet')
+ if (key == 'Name' && this.getActiveValue('Type') == 'Ethernet')
return loadTimeData.getString('ethernetName');
if (key == 'VPN.Type' && value == 'L2TP-IPsec') {
var auth = this.getActiveValue('VPN.IPsec.AuthenticationType');
@@ -135,6 +133,21 @@ cr.define('cr.onc', function() {
},
/**
+ * Updates the properties of |data_| from the properties in |update|.
+ * Note: this only looks at top level entries, so if a dictionary is
+ * updated the entire dictionary is written over. TODO(stevenjb):
+ * eliminate this function when |data_| contains only ONC entries and
+ * any updates consist of complete ONC dictionaries.
+ * @param {Object} update Dictionary containing the updated properties.
+ */
+ updateData: function(update) {
+ for (var prop in update) {
+ if (prop in this.data_)
+ this.data_[prop] = update[prop];
+ }
+ },
+
+ /**
* Get the effective value from a Managed property ONC dictionary.
* @param {object} property The managed property ONC dictionary.
* @return {*} The effective value or undefined.
diff --git a/chrome/browser/ui/webui/options/chromeos/internet_options_handler.cc b/chrome/browser/ui/webui/options/chromeos/internet_options_handler.cc
index b39edf7..b1c3b56 100644
--- a/chrome/browser/ui/webui/options/chromeos/internet_options_handler.cc
+++ b/chrome/browser/ui/webui/options/chromeos/internet_options_handler.cc
@@ -90,7 +90,6 @@ const char kUpdateCarrierFunction[] =
"options.internet.DetailsInternetPage.updateCarrier";
// These are used to register message handlers with JavaScript.
-const char kBuyDataPlanMessage[] = "buyDataPlan";
const char kChangePinMessage[] = "changePin";
const char kDisableCellularMessage[] = "disableCellular";
const char kDisableWifiMessage[] = "disableWifi";
@@ -459,9 +458,6 @@ void InternetOptionsHandler::RegisterMessages() {
web_ui()->RegisterMessageCallback(kDisableWimaxMessage,
base::Bind(&InternetOptionsHandler::DisableWimaxCallback,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(kBuyDataPlanMessage,
- base::Bind(&InternetOptionsHandler::BuyDataPlanCallback,
- base::Unretained(this)));
web_ui()->RegisterMessageCallback(kShowMorePlanInfoMessage,
base::Bind(&InternetOptionsHandler::ShowMorePlanInfoCallback,
base::Unretained(this)));
@@ -554,17 +550,6 @@ void InternetOptionsHandler::ShowMorePlanInfoCallback(
ash::network_connect::ShowMobileSetup(service_path);
}
-void InternetOptionsHandler::BuyDataPlanCallback(const base::ListValue* args) {
- if (!web_ui())
- return;
- std::string service_path;
- if (args->GetSize() != 1 || !args->GetString(0, &service_path)) {
- NOTREACHED();
- return;
- }
- ash::network_connect::ShowMobileSetup(service_path);
-}
-
void InternetOptionsHandler::SetApnCallback(const base::ListValue* args) {
std::string service_path;
if (!args->GetString(0, &service_path)) {
diff --git a/chrome/browser/ui/webui/options/chromeos/internet_options_handler.h b/chrome/browser/ui/webui/options/chromeos/internet_options_handler.h
index f209b64..7bbed86 100644
--- a/chrome/browser/ui/webui/options/chromeos/internet_options_handler.h
+++ b/chrome/browser/ui/webui/options/chromeos/internet_options_handler.h
@@ -58,7 +58,6 @@ class InternetOptionsHandler
void EnableWimaxCallback(const base::ListValue* args);
void DisableWimaxCallback(const base::ListValue* args);
void ShowMorePlanInfoCallback(const base::ListValue* args);
- void BuyDataPlanCallback(const base::ListValue* args);
void SetApnCallback(const base::ListValue* args);
void SetApnProperties(const base::ListValue* args,
const std::string& service_path,
diff --git a/chrome/browser/ui/webui/options/chromeos/internet_options_handler_strings.cc b/chrome/browser/ui/webui/options/chromeos/internet_options_handler_strings.cc
index d3e785c..49ed6f2 100644
--- a/chrome/browser/ui/webui/options/chromeos/internet_options_handler_strings.cc
+++ b/chrome/browser/ui/webui/options/chromeos/internet_options_handler_strings.cc
@@ -106,7 +106,6 @@ StringResource kStringResources[] = {
{"hardwareAddress", IDS_OPTIONS_SETTINGS_INTERNET_OPTIONS_HARDWARE_ADDRESS},
{"detailsInternetDismiss", IDS_CLOSE},
{"activateButton", IDS_OPTIONS_SETTINGS_ACTIVATE},
- {"buyplanButton", IDS_OPTIONS_SETTINGS_BUY_PLAN},
{"connectButton", IDS_OPTIONS_SETTINGS_CONNECT},
{"configureButton", IDS_OPTIONS_SETTINGS_CONFIGURE},
{"disconnectButton", IDS_OPTIONS_SETTINGS_DISCONNECT},