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

Unified Diff: chrome/browser/resources/options2/chromeos/internet_options.js

Issue 8895023: Options2: Pull the trigger. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: DIAF. Created 9 years 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
Index: chrome/browser/resources/options2/chromeos/internet_options.js
diff --git a/chrome/browser/resources/options2/chromeos/internet_options.js b/chrome/browser/resources/options2/chromeos/internet_options.js
new file mode 100644
index 0000000000000000000000000000000000000000..6391c9e4d5bc522729f9580a76ca3d253425cd55
--- /dev/null
+++ b/chrome/browser/resources/options2/chromeos/internet_options.js
@@ -0,0 +1,709 @@
+// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+cr.define('options', function() {
+ var OptionsPage = options.OptionsPage;
+ const ArrayDataModel = cr.ui.ArrayDataModel;
+
+ /////////////////////////////////////////////////////////////////////////////
+ // InternetOptions class:
+
+ /**
+ * Encapsulated handling of ChromeOS internet options page.
+ * @constructor
+ */
+ function InternetOptions() {
+ OptionsPage.call(this, 'internet', templateData.internetPageTabTitle,
+ 'internetPage');
+ }
+
+ cr.addSingletonGetter(InternetOptions);
+
+ // Inherit InternetOptions from OptionsPage.
+ InternetOptions.prototype = {
+ __proto__: OptionsPage.prototype,
+
+ /**
+ * Initializes InternetOptions page.
+ * Calls base class implementation to starts preference initialization.
+ */
+ initializePage: function() {
+ OptionsPage.prototype.initializePage.call(this);
+
+ if (templateData.accessLocked) {
+ this.accesslocked = true;
+ }
+
+ options.internet.NetworkElement.decorate($('wired-list'));
+ $('wired-list').load(templateData.wiredList);
+ options.internet.NetworkElement.decorate($('wireless-list'));
+ $('wireless-list').load(templateData.wirelessList);
+ options.internet.NetworkElement.decorate($('vpn-list'));
+ $('vpn-list').load(templateData.vpnList);
+ options.internet.NetworkElement.decorate($('remembered-list'));
+ $('remembered-list').load(templateData.rememberedList);
+
+ this.updatePolicyIndicatorVisibility_();
+
+ options.internet.CellularPlanElement.decorate($('planList'));
+
+ $('wired-section').hidden = (templateData.wiredList.length == 0);
+ $('wireless-section').hidden = (templateData.wirelessList.length == 0);
+ $('vpn-section').hidden = (templateData.vpnList.length == 0);
+ $('remembered-section').hidden =
+ (templateData.rememberedList.length == 0);
+ InternetOptions.setupAttributes(templateData);
+ $('detailsInternetDismiss').addEventListener('click', function(event) {
+ InternetOptions.setDetails();
+ });
+ $('detailsInternetLogin').addEventListener('click', function(event) {
+ InternetOptions.setDetails();
+ InternetOptions.loginFromDetails();
+ });
+ $('detailsInternetDisconnect').addEventListener('click', function(event) {
+ InternetOptions.setDetails();
+ InternetOptions.disconnectNetwork();
+ });
+ $('activateDetails').addEventListener('click', function(event) {
+ InternetOptions.activateFromDetails();
+ });
+ $('enable-wifi').addEventListener('click', function(event) {
+ event.target.disabled = true;
+ chrome.send('enableWifi', []);
+ });
+ $('disable-wifi').addEventListener('click', function(event) {
+ event.target.disabled = true;
+ chrome.send('disableWifi', []);
+ });
+ $('enable-cellular').addEventListener('click', function(event) {
+ event.target.disabled = true;
+ chrome.send('enableCellular', []);
+ });
+ $('disable-cellular').addEventListener('click', function(event) {
+ event.target.disabled = true;
+ chrome.send('disableCellular', []);
+ });
+ $('change-proxy-button').addEventListener('click', function(event) {
+ OptionsPage.closeOverlay();
+ OptionsPage.showPageByName('proxy', false);
+ chrome.send('coreOptionsUserMetricsAction',
+ ['Options_ShowProxySettings']);
+ });
+ $('buyplanDetails').addEventListener('click', function(event) {
+ chrome.send('buyDataPlan', []);
+ OptionsPage.closeOverlay();
+ });
+ $('cellularApnUseDefault').addEventListener('click', function(event) {
+ var data = $('connectionState').data;
+ var apnSelector = $('selectApn');
+
+ if (data.userApnIndex != -1) {
+ apnSelector.remove(data.userApnIndex);
+ data.userApnIndex = -1;
+ }
+
+ if (data.providerApnList.value.length > 0) {
+ var iApn = 0;
+ data.apn.apn = data.providerApnList.value[iApn].apn;
+ data.apn.username = data.providerApnList.value[iApn].username;
+ data.apn.password = data.providerApnList.value[iApn].password;
+ chrome.send('setApn', [String(data.servicePath),
+ String(data.apn.apn),
+ String(data.apn.username),
+ String(data.apn.password)]);
+ apnSelector.selectedIndex = iApn;
+ data.selectedApn = iApn;
+ } else {
+ data.apn.apn = '';
+ data.apn.username = '';
+ data.apn.password = '';
+ apnSelector.selectedIndex = -1;
+ data.selectedApn = -1;
+ }
+
+ InternetOptions.prototype.updateHidden_(
+ cr.doc.querySelectorAll('.apn-list-view'),
+ false);
+ InternetOptions.prototype.updateHidden_(
+ cr.doc.querySelectorAll('.apn-details-view'),
+ true);
+ });
+ $('cellularApnSet').addEventListener('click', function(event) {
+ if ($('cellularApn').value == '')
+ return;
+
+ var data = $('connectionState').data;
+ var apnSelector = $('selectApn');
+
+ data.apn.apn = String($('cellularApn').value);
+ data.apn.username = String($('cellularApnUsername').value);
+ data.apn.password = String($('cellularApnPassword').value);
+ chrome.send('setApn', [String(data.servicePath),
+ String(data.apn.apn),
+ String(data.apn.username),
+ String(data.apn.password)]);
+
+ if (data.userApnIndex != -1) {
+ apnSelector.remove(data.userApnIndex);
+ data.userApnIndex = -1;
+ }
+
+ var option = document.createElement('option');
+ option.textContent = data.apn.apn;
+ option.value = -1;
+ option.selected = true;
+ apnSelector.add(option, apnSelector[apnSelector.length - 1]);
+ data.userApnIndex = apnSelector.length - 2
+ data.selectedApn = data.userApnIndex;
+
+ InternetOptions.prototype.updateHidden_(
+ cr.doc.querySelectorAll('.apn-list-view'),
+ false);
+ InternetOptions.prototype.updateHidden_(
+ cr.doc.querySelectorAll('.apn-details-view'),
+ true);
+ });
+ $('cellularApnCancel').addEventListener('click', function(event) {
+ $('selectApn').selectedIndex = $('connectionState').data.selectedApn;
+
+ InternetOptions.prototype.updateHidden_(
+ cr.doc.querySelectorAll('.apn-list-view'),
+ false);
+ InternetOptions.prototype.updateHidden_(
+ cr.doc.querySelectorAll('.apn-details-view'),
+ true);
+ });
+ $('selectApn').addEventListener('change', function(event) {
+ var data = $('connectionState').data;
+ var apnSelector = $('selectApn');
+ if (apnSelector[apnSelector.selectedIndex].value != -1) {
+ var apnList = data.providerApnList.value;
+ chrome.send('setApn', [String(data.servicePath),
+ String(apnList[apnSelector.selectedIndex].apn),
+ String(apnList[apnSelector.selectedIndex].username),
+ String(apnList[apnSelector.selectedIndex].password)
+ ]);
+ data.selectedApn = apnSelector.selectedIndex;
+ } else if (apnSelector.selectedIndex == data.userApnIndex) {
+ chrome.send('setApn', [String(data.servicePath),
+ String(data.apn.apn),
+ String(data.apn.username),
+ String(data.apn.password)]);
+ data.selectedApn = apnSelector.selectedIndex;
+ } else {
+ $('cellularApn').value = data.apn.apn;
+ $('cellularApnUsername').value = data.apn.username;
+ $('cellularApnPassword').value = data.apn.password;
+
+ InternetOptions.prototype.updateHidden_(
+ cr.doc.querySelectorAll('.apn-list-view'),
+ true);
+ InternetOptions.prototype.updateHidden_(
+ cr.doc.querySelectorAll('.apn-details-view'),
+ false);
+ }
+ });
+ $('sim-card-lock-enabled').addEventListener('click', function(event) {
+ var newValue = $('sim-card-lock-enabled').checked;
+ // Leave value as is because user needs to enter PIN code first.
+ // When PIN will be entered and value changed,
+ // we'll update UI to reflect that change.
+ $('sim-card-lock-enabled').checked = !newValue;
+ chrome.send('setSimCardLock', [newValue]);
+ });
+ $('change-pin').addEventListener('click', function(event) {
+ chrome.send('changePin');
+ });
+ this.showNetworkDetails_();
+ },
+
+ showNetworkDetails_: function() {
+ var params = parseQueryParams(window.location);
+ var servicePath = params.servicePath;
+ var networkType = params.networkType;
+ if (!servicePath || !servicePath.length ||
+ !networkType || !networkType.length)
+ return;
+ var networkName = params.networkName;
+ if (networkName)
+ options.ProxyOptions.getInstance().setNetworkName(networkName);
+ chrome.send('buttonClickCallback',
+ [networkType, servicePath, "options"]);
+ },
+
+ updateHidden_: function(elements, hidden) {
+ for (var i = 0, el; el = elements[i]; i++) {
+ el.hidden = hidden;
+ }
+ },
+
+ /**
+ * Update internet page controls.
+ * @private
+ */
+ updateControls_: function() {
+ accesslocked = this.accesslocked;
+
+ $('locked-network-banner').hidden = !accesslocked;
+ $('wireless-buttons').hidden = accesslocked;
+ $('wired-section').hidden = accesslocked;
+ $('wireless-section').hidden = accesslocked;
+ $('vpn-section').hidden = accesslocked;
+ $('remembered-section').hidden = accesslocked;
+
+ // Don't change hidden attribute on OptionsPage divs directly because it
+ // is used in supporting infrastructure now.
+ if (accesslocked && DetailsInternetPage.getInstance().visible)
+ this.closeOverlay();
+ },
+
+ /**
+ * Updates the policy indicator visibility. Space is only allocated for the
+ * policy indicators if there is at least one visible.
+ * @private
+ */
+ updatePolicyIndicatorVisibility_: function() {
+ var page = $('internetPage');
+ if (page.querySelectorAll(
+ '.network-item > .controlled-setting-indicator[controlled-by]')
+ .length) {
+ page.classList.remove('hide-indicators');
+ } else {
+ page.classList.add('hide-indicators');
+ }
+ }
+ };
+
+ /**
+ * Whether access to this page is locked.
+ * @type {boolean}
+ */
+ cr.defineProperty(InternetOptions, 'accesslocked', cr.PropertyKind.JS,
+ InternetOptions.prototype.updateControls_);
+
+ InternetOptions.loginFromDetails = function () {
+ var data = $('connectionState').data;
+ var servicePath = data.servicePath;
+ chrome.send('buttonClickCallback', [String(data.type),
+ servicePath,
+ 'connect']);
+ OptionsPage.closeOverlay();
+ };
+
+ InternetOptions.disconnectNetwork = function () {
+ var data = $('connectionState').data;
+ var servicePath = data.servicePath;
+ chrome.send('buttonClickCallback', [String(data.type),
+ servicePath,
+ 'disconnect']);
+ OptionsPage.closeOverlay();
+ };
+
+ InternetOptions.activateFromDetails = function () {
+ var data = $('connectionState').data;
+ var servicePath = data.servicePath;
+ if (data.type == options.internet.Constants.TYPE_CELLULAR) {
+ chrome.send('buttonClickCallback', [String(data.type),
+ String(servicePath),
+ 'activate']);
+ }
+ OptionsPage.closeOverlay();
+ };
+
+ InternetOptions.setDetails = function () {
+ var data = $('connectionState').data;
+ var servicePath = data.servicePath;
+ if (data.type == options.internet.Constants.TYPE_WIFI) {
+ chrome.send('setPreferNetwork',
+ [String(servicePath),
+ $('preferNetworkWifi').checked ? "true" : "false"]);
+ chrome.send('setAutoConnect',
+ [String(servicePath),
+ $('autoConnectNetworkWifi').checked ? "true" : "false"]);
+ } else if (data.type == options.internet.Constants.TYPE_CELLULAR) {
+ chrome.send('setAutoConnect',
+ [String(servicePath),
+ $('autoConnectNetworkCellular').checked ? "true" : "false"]);
+ }
+
+ var ipConfigList = $('ipConfigList');
+ chrome.send('setIPConfig',[String(servicePath),
+ $('ipTypeDHCP').checked ? "true" : "false",
+ ipConfigList.dataModel.item(0).value,
+ ipConfigList.dataModel.item(1).value,
+ ipConfigList.dataModel.item(2).value,
+ ipConfigList.dataModel.item(3).value]);
+ OptionsPage.closeOverlay();
+ };
+
+ InternetOptions.setupAttributes = function(data) {
+ var buttons = $('wireless-buttons');
+ if (data.wifiEnabled) {
+ $('disable-wifi').disabled = data.wifiBusy;
+ $('disable-wifi').hidden = false;
+ $('enable-wifi').hidden = true;
+ } else {
+ $('enable-wifi').disabled = data.wifiBusy;
+ $('enable-wifi').hidden = false;
+ $('disable-wifi').hidden = true;
+ }
+ if (data.cellularAvailable) {
+ if (data.cellularEnabled) {
+ $('disable-cellular').disabled = data.cellularBusy;
+ $('disable-cellular').hidden = false;
+ $('enable-cellular').hidden = true;
+ } else {
+ $('enable-cellular').disabled = data.cellularBusy;
+ $('enable-cellular').hidden = false;
+ $('disable-cellular').hidden = true;
+ }
+ if (!AccountsOptions.currentUserIsOwner())
+ $('internet-owner-only-warning').hidden = false;
+ $('data-roaming').hidden = false;
+ } else {
+ $('enable-cellular').hidden = true;
+ $('disable-cellular').hidden = true;
+ $('data-roaming').hidden = true;
+ }
+ };
+
+ //
+ //Chrome callbacks
+ //
+ InternetOptions.refreshNetworkData = function (data) {
+ var self = InternetOptions.getInstance();
+ if (data.accessLocked) {
+ self.accesslocked = true;
+ return;
+ }
+ self.accesslocked = false;
+ $('wired-list').load(data.wiredList);
+ $('wireless-list').load(data.wirelessList);
+ $('vpn-list').load(data.vpnList);
+ $('remembered-list').load(data.rememberedList);
+
+ self.updatePolicyIndicatorVisibility_();
+
+ $('wired-section').hidden = (data.wiredList.length == 0);
+ $('wireless-section').hidden = (data.wirelessList.length == 0);
+ $('vpn-section').hidden = (data.vpnList.length == 0);
+ InternetOptions.setupAttributes(data);
+ $('remembered-section').hidden = (data.rememberedList.length == 0);
+ };
+
+ // TODO(xiyuan): This function seems belonging to DetailsInternetPage.
+ InternetOptions.updateCellularPlans = function (data) {
+ var detailsPage = DetailsInternetPage.getInstance();
+ detailsPage.cellplanloading = false;
+ if (data.plans && data.plans.length) {
+ detailsPage.nocellplan = false
+ detailsPage.hascellplan = true;
+ $('planList').load(data.plans);
+ } else {
+ detailsPage.nocellplan = true;
+ detailsPage.hascellplan = false;
+ }
+
+ detailsPage.hasactiveplan = !data.needsPlan;
+ detailsPage.activated = data.activated;
+ if (!data.activated)
+ $('detailsInternetLogin').hidden = true;
+
+ $('buyplanDetails').hidden = !data.showBuyButton;
+ $('activateDetails').hidden = !data.showActivateButton;
+ };
+
+ InternetOptions.updateSecurityTab = function(requirePin) {
+ $('sim-card-lock-enabled').checked = requirePin;
+ $('change-pin').hidden = !requirePin;
+ };
+
+ InternetOptions.showDetailedInfo = function (data) {
+ var detailsPage = DetailsInternetPage.getInstance();
+ // TODO(chocobo): Is this hack to cache the data here reasonable?
+ $('connectionState').data = data;
+ $('buyplanDetails').hidden = true;
+ $('activateDetails').hidden = true;
+ $('detailsInternetLogin').hidden = data.connected;
+ if (data.type == options.internet.Constants.TYPE_ETHERNET)
+ $('detailsInternetDisconnect').hidden = true;
+ else
+ $('detailsInternetDisconnect').hidden = !data.connected;
+
+ detailsPage.deviceConnected = data.deviceConnected;
+ detailsPage.connecting = data.connecting;
+ detailsPage.connected = data.connected;
+ if (data.connected) {
+ $('inetTitle').textContent = localStrings.getString('inetStatus');
+ } else {
+ $('inetTitle').textContent = localStrings.getString('inetConnect');
+ }
+ $('connectionState').textContent = data.connectionState;
+
+ var inetAddress = '';
+ var inetSubnetAddress = '';
+ var inetGateway = '';
+ var inetDns = '';
+ $('ipTypeDHCP').checked = true;
+ if (data.ipconfigStatic.value) {
+ inetAddress = data.ipconfigStatic.value.address;
+ inetSubnetAddress = data.ipconfigStatic.value.subnetAddress;
+ inetGateway = data.ipconfigStatic.value.gateway;
+ inetDns = data.ipconfigStatic.value.dns;
+ $('ipTypeStatic').checked = true;
+ } else if (data.ipconfigDHCP.value) {
+ inetAddress = data.ipconfigDHCP.value.address;
+ inetSubnetAddress = data.ipconfigDHCP.value.subnetAddress;
+ inetGateway = data.ipconfigDHCP.value.gateway;
+ inetDns = data.ipconfigDHCP.value.dns;
+ }
+
+ // Hide the dhcp/static radio if needed.
+ $('ipTypeDHCPDiv').hidden = !data.showStaticIPConfig;
+ $('ipTypeStaticDiv').hidden = !data.showStaticIPConfig;
+
+ // Hide change-proxy-button and change-proxy-section if not showing proxy.
+ $('change-proxy-button').hidden = !data.showProxy;
+ $('change-proxy-section').hidden = !data.showProxy;
+
+ var ipConfigList = $('ipConfigList');
+ ipConfigList.disabled =
+ $('ipTypeDHCP').checked || data.ipconfigStatic.controlledBy ||
+ !data.showStaticIPConfig;
+ options.internet.IPConfigList.decorate(ipConfigList);
+ ipConfigList.autoExpands = true;
+ var model = new ArrayDataModel([]);
+ model.push({
+ 'property': 'inetAddress',
+ 'name': localStrings.getString('inetAddress'),
+ 'value': inetAddress,
+ });
+ model.push({
+ 'property': 'inetSubnetAddress',
+ 'name': localStrings.getString('inetSubnetAddress'),
+ 'value': inetSubnetAddress,
+ });
+ model.push({
+ 'property': 'inetGateway',
+ 'name': localStrings.getString('inetGateway'),
+ 'value': inetGateway,
+ });
+ model.push({
+ 'property': 'inetDns',
+ 'name': localStrings.getString('inetDns'),
+ 'value': inetDns,
+ });
+ ipConfigList.dataModel = model;
+
+ $('ipTypeDHCP').addEventListener('click', function(event) {
+ // disable ipConfigList and switch back to dhcp values (if any)
+ if (data.ipconfigDHCP.value) {
+ var config = data.ipconfigDHCP.value;
+ ipConfigList.dataModel.item(0).value = config.address;
+ ipConfigList.dataModel.item(1).value = config.subnetAddress;
+ ipConfigList.dataModel.item(2).value = config.gateway;
+ ipConfigList.dataModel.item(3).value = config.dns;
+ }
+ ipConfigList.dataModel.updateIndex(0);
+ ipConfigList.dataModel.updateIndex(1);
+ ipConfigList.dataModel.updateIndex(2);
+ ipConfigList.dataModel.updateIndex(3);
+ // Unselect all so we don't keep the currently selected field editable.
+ ipConfigList.selectionModel.unselectAll();
+ ipConfigList.disabled = true;
+ });
+
+ $('ipTypeStatic').addEventListener('click', function(event) {
+ // enable ipConfigList
+ ipConfigList.disabled = false;
+ ipConfigList.focus();
+ ipConfigList.selectionModel.selectedIndex = 0;
+ });
+
+ if (data.hardwareAddress) {
+ $('hardwareAddress').textContent = data.hardwareAddress;
+ $('hardwareAddressRow').style.display = 'table-row';
+ } else {
+ // This is most likely a device without a hardware address.
+ $('hardwareAddressRow').style.display = 'none';
+ }
+ if (data.type == options.internet.Constants.TYPE_WIFI) {
+ OptionsPage.showTab($('wifiNetworkNavTab'));
+ detailsPage.wireless = true;
+ detailsPage.vpn = false;
+ detailsPage.ethernet = false;
+ detailsPage.cellular = false;
+ detailsPage.gsm = false;
+ detailsPage.shared = data.shared;
+ $('inetSsid').textContent = data.ssid;
+ detailsPage.showPreferred = data.showPreferred;
+ $('preferNetworkWifi').checked = data.preferred.value;
+ $('preferNetworkWifi').disabled = !data.remembered;
+ $('autoConnectNetworkWifi').checked = data.autoConnect.value;
+ $('autoConnectNetworkWifi').disabled = !data.remembered;
+ detailsPage.password = data.encrypted;
+ } else if(data.type == options.internet.Constants.TYPE_CELLULAR) {
+ if (!data.gsm)
+ OptionsPage.showTab($('cellularPlanNavTab'));
+ else
+ OptionsPage.showTab($('cellularConnNavTab'));
+ detailsPage.ethernet = false;
+ detailsPage.wireless = false;
+ detailsPage.vpn = false;
+ detailsPage.cellular = true;
+ if (data.carrierUrl) {
+ var a = $('carrierUrl');
+ if (!a) {
+ a = document.createElement('a');
+ $('serviceName').appendChild(a);
+ a.id = 'carrierUrl';
+ a.target = "_blank";
+ }
+ a.href = data.carrierUrl;
+ a.textContent = data.serviceName;
+ } else {
+ $('serviceName').textContent = data.serviceName;
+ }
+ $('networkTechnology').textContent = data.networkTechnology;
+ $('activationState').textContent = data.activationState;
+ $('roamingState').textContent = data.roamingState;
+ $('restrictedPool').textContent = data.restrictedPool;
+ $('errorState').textContent = data.errorState;
+ $('manufacturer').textContent = data.manufacturer;
+ $('modelId').textContent = data.modelId;
+ $('firmwareRevision').textContent = data.firmwareRevision;
+ $('hardwareRevision').textContent = data.hardwareRevision;
+ $('prlVersion').textContent = data.prlVersion;
+ $('meid').textContent = data.meid;
+ $('imei').textContent = data.imei;
+ $('mdn').textContent = data.mdn;
+ $('esn').textContent = data.esn;
+ $('min').textContent = data.min;
+ detailsPage.gsm = data.gsm;
+ if (data.gsm) {
+ $('operatorName').textContent = data.operatorName;
+ $('operatorCode').textContent = data.operatorCode;
+ $('imsi').textContent = data.imsi;
+
+ var apnSelector = $('selectApn');
+ // 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 apnList = data.providerApnList.value;
+ for (var i = 0; i < apnList.length; i++) {
+ var option = document.createElement('option');
+ var name = apnList[i].localizedName;
+ if (name == '' && apnList[i].name != '')
+ name = apnList[i].name;
+ if (name == '')
+ name = apnList[i].apn;
+ else
+ name = name + ' (' + apnList[i].apn + ')';
+ option.textContent = name;
+ option.value = i;
+ if ((data.apn.apn == apnList[i].apn &&
+ data.apn.username == apnList[i].username &&
+ data.apn.password == apnList[i].password) ||
+ (data.apn.apn == '' &&
+ data.lastGoodApn.apn == apnList[i].apn &&
+ data.lastGoodApn.username == apnList[i].username &&
+ data.lastGoodApn.password == apnList[i].password)) {
+ data.selectedApn = i;
+ }
+ // Insert new option before "other" option.
+ apnSelector.add(option, otherOption);
+ }
+ if (data.selectedApn == -1 && data.apn.apn != '') {
+ var option = document.createElement('option');
+ option.textContent = data.apn.apn;
+ option.value = -1;
+ apnSelector.add(option, otherOption);
+ data.selectedApn = apnSelector.length - 2;
+ data.userApnIndex = data.selectedApn;
+ }
+ apnSelector.selectedIndex = data.selectedApn;
+ InternetOptions.prototype.updateHidden_(
+ cr.doc.querySelectorAll('.apn-list-view'),
+ false);
+ InternetOptions.prototype.updateHidden_(
+ cr.doc.querySelectorAll('.apn-details-view'),
+ true);
+
+ InternetOptions.updateSecurityTab(data.simCardLockEnabled.value);
+ }
+ $('autoConnectNetworkCellular').checked = data.autoConnect.value;
+ $('autoConnectNetworkCellular').disabled = false;
+
+ $('buyplanDetails').hidden = !data.showBuyButton;
+ $('activateDetails').hidden = !data.showActivateButton;
+ if (data.showActivateButton) {
+ $('detailsInternetLogin').hidden = true;
+ }
+
+ detailsPage.hascellplan = false;
+ if (data.connected) {
+ detailsPage.nocellplan = false;
+ detailsPage.cellplanloading = true;
+ chrome.send('refreshCellularPlan', [data.servicePath])
+ } else {
+ detailsPage.nocellplan = true;
+ detailsPage.cellplanloading = false;
+ }
+ } else if (data.type == options.internet.Constants.TYPE_VPN) {
+ OptionsPage.showTab($('vpnNavTab'));
+ detailsPage.wireless = false;
+ detailsPage.vpn = true;
+ detailsPage.ethernet = false;
+ detailsPage.cellular = false;
+ detailsPage.gsm = false;
+ $('inetServiceName').textContent = data.service_name;
+ $('inetServerHostname').textContent = data.server_hostname;
+ $('inetProviderType').textContent = data.provider_type;
+ $('inetUsername').textContent = data.username;
+ } else {
+ OptionsPage.showTab($('internetNavTab'));
+ detailsPage.ethernet = true;
+ detailsPage.wireless = false;
+ detailsPage.vpn = false;
+ detailsPage.cellular = false;
+ detailsPage.gsm = false;
+ }
+
+ // Update controlled option indicators.
+ indicators = cr.doc.querySelectorAll(
+ '#detailsInternetPage .controlled-setting-indicator');
+ for (var i = 0; i < indicators.length; i++) {
+ var dataProperty = indicators[i].getAttribute('data');
+ if (dataProperty && data[dataProperty]) {
+ var controlledBy = data[dataProperty].controlledBy;
+ if (controlledBy) {
+ indicators[i].controlledBy = controlledBy;
+ var forElement = $(indicators[i].getAttribute('for'));
+ if (forElement)
+ forElement.disabled = true;
+ if (forElement.type == 'radio' && !forElement.checked)
+ indicators[i].hidden = true;
+ } else {
+ indicators[i].controlledBy = null;
+ }
+ }
+ }
+
+ // Don't show page name in address bar and in history to prevent people
+ // navigate here by hand and solve issue with page session restore.
+ OptionsPage.showPageByName('detailsInternetPage', false);
+ };
+
+ InternetOptions.invalidNetworkSettings = function () {
+ alert(localStrings.getString('invalidNetworkSettings'));
+ };
+
+ // Export
+ return {
+ InternetOptions: InternetOptions
+ };
+});

Powered by Google App Engine
This is Rietveld 408576698