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

Side by Side Diff: chrome/browser/resources/options/chromeos/internet_detail.js

Issue 547703004: Some JS cleanup, including proper ownership of ONC properties. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@issue_279351_internet_options_8b
Patch Set: Elim unused property, fix logic, add comments Created 6 years, 3 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // require: onc_data.js 5 // require: onc_data.js
6 6
7 // NOTE(stevenjb): This code is in the process of being converted to be 7 // NOTE(stevenjb): This code is in the process of being converted to be
8 // compatible with the networkingPrivate extension API: 8 // compatible with the networkingPrivate extension API:
9 // * The network property dictionaries are being converted to use ONC values. 9 // * The network property dictionaries are being converted to use ONC values.
10 // * chrome.send calls will be replaced with an API object that simulates the 10 // * chrome.send calls will be replaced with an API object that simulates the
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
110 } 110 }
111 111
112 ///////////////////////////////////////////////////////////////////////////// 112 /////////////////////////////////////////////////////////////////////////////
113 // DetailsInternetPage class: 113 // DetailsInternetPage class:
114 114
115 /** 115 /**
116 * Encapsulated handling of ChromeOS internet details overlay page. 116 * Encapsulated handling of ChromeOS internet details overlay page.
117 * @constructor 117 * @constructor
118 */ 118 */
119 function DetailsInternetPage() { 119 function DetailsInternetPage() {
120 this.userApnIndex_ = -1;
121 this.selectedApnIndex_ = -1;
122 this.userApn_ = {};
120 Page.call(this, 'detailsInternetPage', null, 'details-internet-page'); 123 Page.call(this, 'detailsInternetPage', null, 'details-internet-page');
121 } 124 }
122 125
123 cr.addSingletonGetter(DetailsInternetPage); 126 cr.addSingletonGetter(DetailsInternetPage);
124 127
125 DetailsInternetPage.prototype = { 128 DetailsInternetPage.prototype = {
126 __proto__: Page.prototype, 129 __proto__: Page.prototype,
127 130
128 /** @override */ 131 /** @override */
129 initializePage: function() { 132 initializePage: function() {
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
167 $('details-internet-configure').addEventListener('click', 170 $('details-internet-configure').addEventListener('click',
168 function(event) { 171 function(event) {
169 DetailsInternetPage.setDetails(); 172 DetailsInternetPage.setDetails();
170 DetailsInternetPage.configureNetwork(); 173 DetailsInternetPage.configureNetwork();
171 }); 174 });
172 175
173 $('activate-details').addEventListener('click', function(event) { 176 $('activate-details').addEventListener('click', function(event) {
174 DetailsInternetPage.activateFromDetails(); 177 DetailsInternetPage.activateFromDetails();
175 }); 178 });
176 179
177 $('buyplan-details').addEventListener('click', function(event) {
178 var data = $('connection-state').data;
179 chrome.send('buyDataPlan', [data.servicePath]);
180 PageManager.closeOverlay();
181 });
182
183 $('view-account-details').addEventListener('click', function(event) { 180 $('view-account-details').addEventListener('click', function(event) {
184 var data = $('connection-state').data; 181 chrome.send('showMorePlanInfo',
185 chrome.send('showMorePlanInfo', [data.servicePath]); 182 [DetailsInternetPage.getInstance().servicePath_]);
186 PageManager.closeOverlay(); 183 PageManager.closeOverlay();
187 }); 184 });
188 185
189 $('cellular-apn-use-default').addEventListener('click', function(event) { 186 $('cellular-apn-use-default').addEventListener('click', function(event) {
190 var data = $('connection-state').data; 187 DetailsInternetPage.getInstance().setDefaultApn_();
191 var onc = $('connection-state').onc;
192 var apnSelector = $('select-apn');
193
194 if (data.userApnIndex != -1) {
195 apnSelector.remove(data.userApnIndex);
196 data.userApnIndex = -1;
197 }
198
199 var activeApn;
200 var iApn = -1;
201 var apnList = onc.getActiveValue('Cellular.APNList');
202 if (apnList != undefined && apnList.length > 0) {
203 iApn = 0;
204 var defaultApn = apnList[iApn];
205 activeApn['AccessPointName'] =
206 stringFromValue(defaultApn['AccessPointName']);
207 activeApn['Username'] = stringFromValue(defaultApn['Username']);
208 activeApn['Password'] = stringFromValue(defaultApn['Password']);
209 chrome.send('setApn', [data.servicePath,
210 activeApn['AccessPointName'],
211 activeApn['Username'],
212 activeApn['Password']]);
213 }
214 onc.setManagedProperty('Cellular.APN', activeApn);
215 apnSelector.selectedIndex = iApn;
216 data.selectedApn = iApn;
217
218 updateHidden('.apn-list-view', false);
219 updateHidden('.apn-details-view', true);
220 }); 188 });
221 189
222 $('cellular-apn-set').addEventListener('click', function(event) { 190 $('cellular-apn-set').addEventListener('click', function(event) {
223 if ($('cellular-apn').value == '') 191 DetailsInternetPage.getInstance().setApn_($('cellular-apn').value);
224 return;
225
226 var data = $('connection-state').data;
227 var onc = $('connection-state').onc;
228 var apnSelector = $('select-apn');
229
230 var activeApn = {};
231 activeApn['AccessPointName'] =
232 stringFromValue($('cellular-apn').value);
233 activeApn['Username'] =
234 stringFromValue($('cellular-apn-username').value);
235 activeApn['Password'] =
236 stringFromValue($('cellular-apn-password').value);
237 onc.setManagedProperty('Cellular.APN', activeApn);
238 data.userApn = activeApn;
239 chrome.send('setApn', [data.servicePath,
240 activeApn['AccessPointName'],
241 activeApn['Username'],
242 activeApn['Password']]);
243
244 if (data.userApnIndex != -1) {
245 apnSelector.remove(data.userApnIndex);
246 data.userApnIndex = -1;
247 }
248
249 var option = document.createElement('option');
250 option.textContent = activeApn['AccessPointName'];
251 option.value = -1;
252 option.selected = true;
253 apnSelector.add(option, apnSelector[apnSelector.length - 1]);
254 data.userApnIndex = apnSelector.length - 2;
255 data.selectedApn = data.userApnIndex;
256
257 updateHidden('.apn-list-view', false);
258 updateHidden('.apn-details-view', true);
259 }); 192 });
260 193
261 $('cellular-apn-cancel').addEventListener('click', function(event) { 194 $('cellular-apn-cancel').addEventListener('click', function(event) {
262 $('select-apn').selectedIndex = $('connection-state').data.selectedApn; 195 DetailsInternetPage.getInstance().cancelApn_();
263 updateHidden('.apn-list-view', false);
264 updateHidden('.apn-details-view', true);
265 }); 196 });
266 197
267 $('select-apn').addEventListener('change', function(event) { 198 $('select-apn').addEventListener('change', function(event) {
268 var data = $('connection-state').data; 199 DetailsInternetPage.getInstance().selectApn_();
269 var onc = $('connection-state').onc;
270 var apnSelector = $('select-apn');
271 var apnDict;
272 if (apnSelector[apnSelector.selectedIndex].value != -1) {
273 var apnList = onc.getActiveValue('Cellular.APNList');
274 var apnIndex = apnSelector.selectedIndex;
275 assert(apnIndex < apnList.length);
276 apnDict = apnList[apnIndex];
277 chrome.send('setApn', [data.servicePath,
278 stringFromValue(apnDict['AccessPointName']),
279 stringFromValue(apnDict['Username']),
280 stringFromValue(apnDict['Password'])]);
281 data.selectedApn = apnIndex;
282 } else if (apnSelector.selectedIndex == data.userApnIndex) {
283 apnDict = data.userApn;
284 chrome.send('setApn', [data.servicePath,
285 stringFromValue(apnDict['AccessPointName']),
286 stringFromValue(apnDict['Username']),
287 stringFromValue(apnDict['Password'])]);
288 data.selectedApn = apnSelector.selectedIndex;
289 } else {
290 apnDict = onc.getActiveValue('Cellular.APN');
291 $('cellular-apn').value = stringFromValue(apnDict['AccessPointName']);
292 $('cellular-apn-username').value =
293 stringFromValue(apnDict['Username']);
294 $('cellular-apn-password').value =
295 stringFromValue(apnDict['Password']);
296
297 updateHidden('.apn-list-view', true);
298 updateHidden('.apn-details-view', false);
299 }
300 }); 200 });
301 201
302 $('sim-card-lock-enabled').addEventListener('click', function(event) { 202 $('sim-card-lock-enabled').addEventListener('click', function(event) {
303 var newValue = $('sim-card-lock-enabled').checked; 203 var newValue = $('sim-card-lock-enabled').checked;
304 // Leave value as is because user needs to enter PIN code first. 204 // Leave value as is because user needs to enter PIN code first.
305 // When PIN will be entered and value changed, 205 // When PIN will be entered and value changed,
306 // we'll update UI to reflect that change. 206 // we'll update UI to reflect that change.
307 $('sim-card-lock-enabled').checked = !newValue; 207 $('sim-card-lock-enabled').checked = !newValue;
308 chrome.send('setSimCardLock', [newValue]); 208 chrome.send('setSimCardLock', [newValue]);
309 }); 209 });
(...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after
483 // this device is connected. This is so that you can fix the ip configs 383 // this device is connected. This is so that you can fix the ip configs
484 // if you can't connect to any network. 384 // if you can't connect to any network.
485 // TODO(chocobo): Once ipconfig is moved to flimflam service objects, 385 // TODO(chocobo): Once ipconfig is moved to flimflam service objects,
486 // we need to redo this logic to allow configuration of all networks. 386 // we need to redo this logic to allow configuration of all networks.
487 $('ipconfig-section').hidden = !this.connected && this.deviceConnected; 387 $('ipconfig-section').hidden = !this.connected && this.deviceConnected;
488 $('ipconfig-dns-section').hidden = 388 $('ipconfig-dns-section').hidden =
489 !this.connected && this.deviceConnected; 389 !this.connected && this.deviceConnected;
490 390
491 // Network type related. 391 // Network type related.
492 updateHidden('#details-internet-page .cellular-details', 392 updateHidden('#details-internet-page .cellular-details',
493 this.type != 'Cellular'); 393 this.type_ != 'Cellular');
494 updateHidden('#details-internet-page .wifi-details', 394 updateHidden('#details-internet-page .wifi-details',
495 this.type != 'WiFi'); 395 this.type_ != 'WiFi');
496 updateHidden('#details-internet-page .wimax-details', 396 updateHidden('#details-internet-page .wimax-details',
497 this.type != 'Wimax'); 397 this.type_ != 'Wimax');
498 updateHidden('#details-internet-page .vpn-details', this.type != 'VPN'); 398 updateHidden('#details-internet-page .vpn-details', this.type_ != 'VPN');
499 updateHidden('#details-internet-page .proxy-details', !this.showProxy); 399 updateHidden('#details-internet-page .proxy-details', !this.showProxy);
500 400
501 // Cellular 401 // Cellular
502 402
503 // Conditionally call updateHidden on .gsm-only, so that we don't unhide 403 // Conditionally call updateHidden on .gsm-only, so that we don't unhide
504 // a previously hidden element. 404 // a previously hidden element.
505 if (this.gsm) 405 if (this.gsm)
506 updateHidden('#details-internet-page .cdma-only', true); 406 updateHidden('#details-internet-page .cdma-only', true);
507 else 407 else
508 updateHidden('#details-internet-page .gsm-only', true); 408 updateHidden('#details-internet-page .gsm-only', true);
509 409
510 // Wifi 410 // Wifi
511 411
512 // Hide network tab for VPN. 412 // Hide network tab for VPN.
513 updateHidden('#details-internet-page .network-details', 413 updateHidden('#details-internet-page .network-details',
514 this.type == 'VPN'); 414 this.type_ == 'VPN');
515 415
516 // Password and shared. 416 // Password and shared.
517 updateHidden('#details-internet-page #password-details', 417 updateHidden('#details-internet-page #password-details',
518 this.type != 'WiFi' || !this.hasSecurity); 418 this.type_ != 'WiFi' || !this.hasSecurity);
519 updateHidden('#details-internet-page #wifi-shared-network', 419 updateHidden('#details-internet-page #wifi-shared-network',
520 !this.shared); 420 !this.shared);
521 updateHidden('#details-internet-page #prefer-network', 421 updateHidden('#details-internet-page #prefer-network',
522 !this.showPreferred); 422 !this.showPreferred);
523 423
524 // WiMAX. 424 // WiMAX.
525 updateHidden('#details-internet-page #wimax-shared-network', 425 updateHidden('#details-internet-page #wimax-shared-network',
526 !this.shared); 426 !this.shared);
527 427
528 // Proxy 428 // Proxy
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
643 $('ftp-proxy').disabled = allDisabled; 543 $('ftp-proxy').disabled = allDisabled;
644 $('ftp-proxy-port').disabled = allDisabled; 544 $('ftp-proxy-port').disabled = allDisabled;
645 $('socks-host').disabled = allDisabled; 545 $('socks-host').disabled = allDisabled;
646 $('socks-port').disabled = allDisabled; 546 $('socks-port').disabled = allDisabled;
647 $('proxy-use-pac-url').disabled = true; 547 $('proxy-use-pac-url').disabled = true;
648 $('proxy-pac-url').disabled = true; 548 $('proxy-pac-url').disabled = true;
649 $('auto-proxy-parms').hidden = !$('auto-proxy').checked; 549 $('auto-proxy-parms').hidden = !$('auto-proxy').checked;
650 $('manual-proxy-parms').hidden = !$('manual-proxy').checked; 550 $('manual-proxy-parms').hidden = !$('manual-proxy').checked;
651 chrome.send('coreOptionsUserMetricsAction', 551 chrome.send('coreOptionsUserMetricsAction',
652 ['Options_NetworkManualProxy_Enable']); 552 ['Options_NetworkManualProxy_Enable']);
553 },
554
555 updateConnectionButtonVisibilty_: function() {
556 var onc = this.onc_;
557 if (this.type_ == 'Ethernet') {
558 // Ethernet can never be connected or disconnected and can always be
559 // configured (e.g. to set security).
560 $('details-internet-login').hidden = true;
561 $('details-internet-disconnect').hidden = true;
562 $('details-internet-configure').hidden = false;
563 return;
564 }
565
566 var connectState = onc.getActiveValue('ConnectionState');
567 if (connectState == 'NotConnected') {
568 $('details-internet-login').hidden = false;
569 // Connecting to an unconfigured network might trigger certificate
570 // installation UI. Until that gets handled here, always enable the
571 // Connect button.
572 $('details-internet-login').disabled = false;
573 $('details-internet-disconnect').hidden = true;
574 } else {
575 $('details-internet-login').hidden = true;
576 $('details-internet-disconnect').hidden = false;
577 }
578
579 var connectable = onc.getActiveValue('Connectable');
580 if (connectState != 'Connected' &&
581 (!connectable || this.hasSecurity ||
582 (this.type_ == 'Wimax' || this.type_ == 'VPN'))) {
583 $('details-internet-configure').hidden = false;
584 } else {
585 $('details-internet-configure').hidden = true;
586 }
587 },
588
589 populateHeader_: function() {
590 var onc = this.onc_;
591
592 $('network-details-title').textContent = onc.getTranslatedValue('Name');
593 var connectionState = onc.getActiveValue('ConnectionState');
594 var connectionStateString = onc.getTranslatedValue('ConnectionState');
595 this.connected = connectionState == 'Connected';
596 $('network-details-subtitle-status').textContent = connectionStateString;
597 var typeKey;
598 var type = this.type_;
599 if (type == 'Ethernet')
600 typeKey = 'ethernetTitle';
601 else if (type == 'WiFi')
602 typeKey = 'wifiTitle';
603 else if (type == 'Wimax')
604 typeKey = 'wimaxTitle';
605 else if (type == 'Cellular')
606 typeKey = 'cellularTitle';
607 else if (type == 'VPN')
608 typeKey = 'vpnTitle';
609 else
610 typeKey = null;
611 var typeLabel = $('network-details-subtitle-type');
612 var typeSeparator = $('network-details-subtitle-separator');
613 if (typeKey) {
614 typeLabel.textContent = loadTimeData.getString(typeKey);
615 typeLabel.hidden = false;
616 typeSeparator.hidden = false;
617 } else {
618 typeLabel.hidden = true;
619 typeSeparator.hidden = true;
620 }
621 },
622
623 initializeApnList_: function(onc) {
624 var apnSelector = $('select-apn');
625 // Clear APN lists, keep only last element that "other".
626 while (apnSelector.length != 1) {
627 apnSelector.remove(0);
628 }
629 var otherOption = apnSelector[0];
630 var activeApn = onc.getActiveValue('Cellular.APN.AccessPointName');
631 var activeUsername = onc.getActiveValue('Cellular.APN.Username');
632 var activePassword = onc.getActiveValue('Cellular.APN.Password');
633 var lastGoodApn =
634 onc.getActiveValue('Cellular.LastGoodAPN.AccessPointName');
635 var lastGoodUsername =
636 onc.getActiveValue('Cellular.LastGoodAPN.Username');
637 var lastGoodPassword =
638 onc.getActiveValue('Cellular.LastGoodAPN.Password');
639 var apnList = onc.getActiveValue('Cellular.APNList');
640 for (var i = 0; i < apnList.length; i++) {
641 var apnDict = apnList[i];
642 var option = document.createElement('option');
643 var localizedName = apnDict['LocalizedName'];
644 var name = localizedName ? localizedName : apnDict['Name'];
645 var accessPointName = apnDict['AccessPointName'];
646 option.textContent =
647 name ? (name + ' (' + accessPointName + ')') : accessPointName;
648 option.value = i;
649 // If this matches the active Apn, or LastGoodApn, set it as the
650 // selected Apn.
651 if ((activeApn == accessPointName &&
652 activeUsername == apnDict['Username'] &&
653 activePassword == apnDict['Password']) ||
654 (!activeApn &&
655 lastGoodApn == accessPointName &&
656 lastGoodUsername == apnDict['Username'] &&
657 lastGoodPassword == apnDict['Password'])) {
658 this.selectedApnIndex_ = i;
659 }
660 // Insert new option before "other" option.
661 apnSelector.add(option, otherOption);
662 }
663 if (this.selectedApnIndex_ == -1 && activeApn) {
664 var activeOption = document.createElement('option');
665 activeOption.textContent = activeApn;
666 activeOption.value = -1;
667 apnSelector.add(activeOption, otherOption);
668 this.selectedApnIndex_ = apnSelector.length - 2;
669 this.userApnIndex_ = this.selectedApnIndex_;
670 }
671 assert(this.selectedApnIndex_ >= 0);
672 apnSelector.selectedIndex = this.selectedApnIndex_;
673 updateHidden('.apn-list-view', false);
674 updateHidden('.apn-details-view', true);
675 },
676
677 setDefaultApn_: function() {
678 var onc = this.onc_;
679 var apnSelector = $('select-apn');
680
681 if (this.userApnIndex_ != -1) {
682 apnSelector.remove(this.userApnIndex_);
683 this.userApnIndex_ = -1;
684 }
685
686 var activeApn;
687 var iApn = -1;
688 var apnList = onc.getActiveValue('Cellular.APNList');
689 if (apnList != undefined && apnList.length > 0) {
690 iApn = 0;
691 var defaultApn = apnList[iApn];
692 activeApn['AccessPointName'] =
693 stringFromValue(defaultApn['AccessPointName']);
stevenjb 2014/09/08 21:31:18 This was buggy; activeApn needs to be defined as a
armansito 2014/09/08 21:43:32 Yes, good catch by vitalyp@.
694 activeApn['Username'] = stringFromValue(defaultApn['Username']);
695 activeApn['Password'] = stringFromValue(defaultApn['Password']);
696 chrome.send('setApn', [this.servicePath_,
697 activeApn['AccessPointName'],
698 activeApn['Username'],
699 activeApn['Password']]);
700 }
701 onc.setManagedProperty('Cellular.APN', activeApn);
702 apnSelector.selectedIndex = iApn;
703 this.selectedApnIndex_ = iApn;
704
705 updateHidden('.apn-list-view', false);
706 updateHidden('.apn-details-view', true);
707 },
708
709 setApn_: function(apnValue) {
710 if (apnValue == '')
711 return;
712
713 var onc = this.onc_;
714 var apnSelector = $('select-apn');
715
716 var activeApn = {};
717 activeApn['AccessPointName'] = stringFromValue(apnValue);
718 activeApn['Username'] = stringFromValue($('cellular-apn-username').value);
719 activeApn['Password'] = stringFromValue($('cellular-apn-password').value);
720 onc.setManagedProperty('Cellular.APN', activeApn);
721 this.userApn_ = activeApn;
722 chrome.send('setApn', [this.servicePath_,
723 activeApn['AccessPointName'],
724 activeApn['Username'],
725 activeApn['Password']]);
726
727 if (this.userApnIndex_ != -1) {
728 apnSelector.remove(this.userApnIndex_);
729 this.userApnIndex_ = -1;
730 }
731
732 var option = document.createElement('option');
733 option.textContent = activeApn['AccessPointName'];
734 option.value = -1;
735 option.selected = true;
736 apnSelector.add(option, apnSelector[apnSelector.length - 1]);
737 this.userApnIndex_ = apnSelector.length - 2;
738 this.selectedApnIndex_ = this.userApnIndex_;
739
740 updateHidden('.apn-list-view', false);
741 updateHidden('.apn-details-view', true);
742 },
743
744 cancelApn_: function() {
745 $('select-apn').selectedIndex = this.selectedApnIndex_;
746 updateHidden('.apn-list-view', false);
747 updateHidden('.apn-details-view', true);
748 },
749
750 selectApn_: function() {
751 var onc = this.onc_;
752 var apnSelector = $('select-apn');
753 var apnDict;
754 if (apnSelector[apnSelector.selectedIndex].value != -1) {
755 var apnList = onc.getActiveValue('Cellular.APNList');
756 var apnIndex = apnSelector.selectedIndex;
757 assert(apnIndex < apnList.length);
758 apnDict = apnList[apnIndex];
759 chrome.send('setApn', [this.servicePath_,
760 stringFromValue(apnDict['AccessPointName']),
761 stringFromValue(apnDict['Username']),
762 stringFromValue(apnDict['Password'])]);
763 this.selectedApnIndex_ = apnIndex;
764 } else if (apnSelector.selectedIndex == this.userApnIndex_) {
765 apnDict = this.userApn_;
766 chrome.send('setApn', [this.servicePath_,
767 stringFromValue(apnDict['AccessPointName']),
768 stringFromValue(apnDict['Username']),
769 stringFromValue(apnDict['Password'])]);
770 this.selectedApnIndex_ = apnSelector.selectedIndex;
771 } else {
772 apnDict = onc.getActiveValue('Cellular.APN');
773 $('cellular-apn').value = stringFromValue(apnDict['AccessPointName']);
774 $('cellular-apn-username').value = stringFromValue(apnDict['Username']);
775 $('cellular-apn-password').value = stringFromValue(apnDict['Password']);
776
777 updateHidden('.apn-list-view', true);
778 updateHidden('.apn-details-view', false);
779 }
653 } 780 }
654 }; 781 };
655 782
656 /** 783 /**
657 * Enables or Disables all buttons that provide operations on the cellular 784 * Enables or Disables all buttons that provide operations on the cellular
658 * network. 785 * network.
659 */ 786 */
660 DetailsInternetPage.changeCellularButtonsState = function(disable) { 787 DetailsInternetPage.changeCellularButtonsState = function(disable) {
661 var buttonsToDisableList = 788 var buttonsToDisableList =
662 new Array('details-internet-login', 789 new Array('details-internet-login',
663 'details-internet-disconnect', 790 'details-internet-disconnect',
664 'details-internet-configure', 791 'details-internet-configure',
665 'activate-details', 792 'activate-details',
666 'buyplan-details',
667 'view-account-details'); 793 'view-account-details');
668 794
669 for (var i = 0; i < buttonsToDisableList.length; ++i) { 795 for (var i = 0; i < buttonsToDisableList.length; ++i) {
670 var button = $(buttonsToDisableList[i]); 796 var button = $(buttonsToDisableList[i]);
671 button.disabled = disable; 797 button.disabled = disable;
672 } 798 }
673 }; 799 };
674 800
675 /** 801 /**
676 * Shows a spinner while the carrier is changed. 802 * Shows a spinner while the carrier is changed.
677 */ 803 */
678 DetailsInternetPage.showCarrierChangeSpinner = function(visible) { 804 DetailsInternetPage.showCarrierChangeSpinner = function(visible) {
679 $('switch-carrier-spinner').hidden = !visible; 805 $('switch-carrier-spinner').hidden = !visible;
680 // Disable any buttons that allow us to operate on cellular networks. 806 // Disable any buttons that allow us to operate on cellular networks.
681 DetailsInternetPage.changeCellularButtonsState(visible); 807 DetailsInternetPage.changeCellularButtonsState(visible);
682 }; 808 };
683 809
684 /** 810 /**
685 * Changes the network carrier. 811 * Changes the network carrier.
686 */ 812 */
687 DetailsInternetPage.handleCarrierChanged = function() { 813 DetailsInternetPage.handleCarrierChanged = function() {
688 var carrierSelector = $('select-carrier'); 814 var carrierSelector = $('select-carrier');
689 var carrier = carrierSelector[carrierSelector.selectedIndex].textContent; 815 var carrier = carrierSelector[carrierSelector.selectedIndex].textContent;
690 DetailsInternetPage.showCarrierChangeSpinner(true); 816 DetailsInternetPage.showCarrierChangeSpinner(true);
691 var data = $('connection-state').data; 817 chrome.send('setCarrier', [
692 chrome.send('setCarrier', [data.servicePath, carrier]); 818 DetailsInternetPage.getInstance().servicePath_, carrier]);
693 }; 819 };
694 820
695 /** 821 /**
696 * Performs minimal initialization of the InternetDetails dialog in 822 * Performs minimal initialization of the InternetDetails dialog in
697 * preparation for showing proxy-setttings. 823 * preparation for showing proxy-setttings.
698 */ 824 */
699 DetailsInternetPage.initializeProxySettings = function() { 825 DetailsInternetPage.initializeProxySettings = function() {
700 var detailsPage = DetailsInternetPage.getInstance(); 826 DetailsInternetPage.getInstance().initializePageContents_();
701 detailsPage.initializePageContents_();
702 }; 827 };
703 828
704 /** 829 /**
705 * Displays the InternetDetails dialog with only the proxy settings visible. 830 * Displays the InternetDetails dialog with only the proxy settings visible.
706 */ 831 */
707 DetailsInternetPage.showProxySettings = function() { 832 DetailsInternetPage.showProxySettings = function() {
708 var detailsPage = DetailsInternetPage.getInstance(); 833 var detailsPage = DetailsInternetPage.getInstance();
709 $('network-details-header').hidden = true; 834 $('network-details-header').hidden = true;
710 $('buyplan-details').hidden = true;
711 $('activate-details').hidden = true; 835 $('activate-details').hidden = true;
712 $('view-account-details').hidden = true; 836 $('view-account-details').hidden = true;
713 $('web-proxy-auto-discovery').hidden = true; 837 $('web-proxy-auto-discovery').hidden = true;
714 detailsPage.showProxy = true; 838 detailsPage.showProxy = true;
715 updateHidden('#internet-tab', true); 839 updateHidden('#internet-tab', true);
716 updateHidden('#details-tab-strip', true); 840 updateHidden('#details-tab-strip', true);
717 updateHidden('#details-internet-page .action-area', true); 841 updateHidden('#details-internet-page .action-area', true);
718 detailsPage.updateControls(); 842 detailsPage.updateControls();
719 detailsPage.visible = true; 843 detailsPage.visible = true;
720 chrome.send('coreOptionsUserMetricsAction', 844 chrome.send('coreOptionsUserMetricsAction',
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
759 $(proxyPort).value = hostValue[1]; 883 $(proxyPort).value = hostValue[1];
760 } 884 }
761 } 885 }
762 }; 886 };
763 887
764 DetailsInternetPage.updateCarrier = function() { 888 DetailsInternetPage.updateCarrier = function() {
765 DetailsInternetPage.showCarrierChangeSpinner(false); 889 DetailsInternetPage.showCarrierChangeSpinner(false);
766 }; 890 };
767 891
768 DetailsInternetPage.loginFromDetails = function() { 892 DetailsInternetPage.loginFromDetails = function() {
769 var data = $('connection-state').data; 893 var detailsPage = DetailsInternetPage.getInstance();
770 var servicePath = data.servicePath; 894 chrome.send('networkCommand',
771 chrome.send('networkCommand', [data.type, servicePath, 'connect']); 895 [detailsPage.type_, detailsPage.servicePath_, 'connect']);
772 PageManager.closeOverlay(); 896 PageManager.closeOverlay();
773 }; 897 };
774 898
775 DetailsInternetPage.disconnectNetwork = function() { 899 DetailsInternetPage.disconnectNetwork = function() {
776 var data = $('connection-state').data; 900 var detailsPage = DetailsInternetPage.getInstance();
777 var servicePath = data.servicePath; 901 chrome.send('networkCommand',
778 chrome.send('networkCommand', [data.type, servicePath, 'disconnect']); 902 [detailsPage.type_, detailsPage.servicePath_, 'disconnect']);
779 PageManager.closeOverlay(); 903 PageManager.closeOverlay();
780 }; 904 };
781 905
782 DetailsInternetPage.configureNetwork = function() { 906 DetailsInternetPage.configureNetwork = function() {
783 var data = $('connection-state').data; 907 var detailsPage = DetailsInternetPage.getInstance();
784 var servicePath = data.servicePath; 908 chrome.send('networkCommand',
785 chrome.send('networkCommand', [data.type, servicePath, 'configure']); 909 [detailsPage.type_, detailsPage.servicePath_, 'configure']);
786 PageManager.closeOverlay(); 910 PageManager.closeOverlay();
787 }; 911 };
788 912
789 DetailsInternetPage.activateFromDetails = function() { 913 DetailsInternetPage.activateFromDetails = function() {
790 var data = $('connection-state').data; 914 var detailsPage = DetailsInternetPage.getInstance();
791 var servicePath = data.servicePath; 915 if (detailsPage.type_ == 'Cellular') {
792 if (data.type == 'Cellular') 916 chrome.send('networkCommand',
793 chrome.send('networkCommand', [data.type, servicePath, 'activate']); 917 [detailsPage.type_, detailsPage.servicePath_, 'activate']);
918 }
794 PageManager.closeOverlay(); 919 PageManager.closeOverlay();
795 }; 920 };
796 921
797 DetailsInternetPage.setDetails = function() { 922 DetailsInternetPage.setDetails = function() {
798 var data = $('connection-state').data; 923 var detailsPage = DetailsInternetPage.getInstance();
799 var servicePath = data.servicePath; 924 var type = detailsPage.type_;
800 if (data.type == 'WiFi') { 925 var servicePath = detailsPage.servicePath_;
926 if (type == 'WiFi') {
801 sendCheckedIfEnabled(servicePath, 'setPreferNetwork', 927 sendCheckedIfEnabled(servicePath, 'setPreferNetwork',
802 $('prefer-network-wifi')); 928 $('prefer-network-wifi'));
803 sendCheckedIfEnabled(servicePath, 'setAutoConnect', 929 sendCheckedIfEnabled(servicePath, 'setAutoConnect',
804 $('auto-connect-network-wifi')); 930 $('auto-connect-network-wifi'));
805 } else if (data.type == 'Wimax') { 931 } else if (type == 'Wimax') {
806 sendCheckedIfEnabled(servicePath, 'setAutoConnect', 932 sendCheckedIfEnabled(servicePath, 'setAutoConnect',
807 $('auto-connect-network-wimax')); 933 $('auto-connect-network-wimax'));
808 } else if (data.type == 'Cellular') { 934 } else if (type == 'Cellular') {
809 sendCheckedIfEnabled(servicePath, 'setAutoConnect', 935 sendCheckedIfEnabled(servicePath, 'setAutoConnect',
810 $('auto-connect-network-cellular')); 936 $('auto-connect-network-cellular'));
811 } else if (data.type == 'VPN') { 937 } else if (type == 'VPN') {
812 chrome.send('setServerHostname', 938 chrome.send('setServerHostname',
813 [servicePath, 939 [servicePath,
814 $('inet-server-hostname').value]); 940 $('inet-server-hostname').value]);
815 sendCheckedIfEnabled(servicePath, 'setAutoConnect', 941 sendCheckedIfEnabled(servicePath, 'setAutoConnect',
816 $('auto-connect-network-vpn')); 942 $('auto-connect-network-vpn'));
817 } 943 }
818 944
819 var nameServerTypes = ['automatic', 'google', 'user']; 945 var nameServerTypes = ['automatic', 'google', 'user'];
820 var nameServerType = 'automatic'; 946 var nameServerType = 'automatic';
821 for (var i = 0; i < nameServerTypes.length; ++i) { 947 for (var i = 0; i < nameServerTypes.length; ++i) {
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
872 userDns.removeAttribute('selected'); 998 userDns.removeAttribute('selected');
873 break; 999 break;
874 case 'user': 1000 case 'user':
875 automaticDns.removeAttribute('selected'); 1001 automaticDns.removeAttribute('selected');
876 googleDns.removeAttribute('selected'); 1002 googleDns.removeAttribute('selected');
877 userDns.setAttribute('selected', ''); 1003 userDns.setAttribute('selected', '');
878 break; 1004 break;
879 } 1005 }
880 }; 1006 };
881 1007
882 DetailsInternetPage.updateConnectionButtonVisibilty = function(onc) {
883 if (onc.type == 'Ethernet') {
884 // Ethernet can never be connected or disconnected and can always be
885 // configured (e.g. to set security).
886 $('details-internet-login').hidden = true;
887 $('details-internet-disconnect').hidden = true;
888 $('details-internet-configure').hidden = false;
889 return;
890 }
891
892 var connectState = onc.getActiveValue('ConnectionState');
893 if (connectState == 'NotConnected') {
894 $('details-internet-login').hidden = false;
895 // Connecting to an unconfigured network might trigger certificate
896 // installation UI. Until that gets handled here, always enable the
897 // Connect button.
898 $('details-internet-login').disabled = false;
899 $('details-internet-disconnect').hidden = true;
900 } else {
901 $('details-internet-login').hidden = true;
902 $('details-internet-disconnect').hidden = false;
903 }
904
905 var connectable = onc.getActiveValue('Connectable');
906 if (connectState != 'Connected' &&
907 (!connectable || this.hasSecurity ||
908 (onc.type == 'Wimax' || onc.type == 'VPN'))) {
909 $('details-internet-configure').hidden = false;
910 } else {
911 $('details-internet-configure').hidden = true;
912 }
913 };
914
915 DetailsInternetPage.populateHeader = function(detailsPage, onc) {
916 $('network-details-title').textContent = onc.getTranslatedValue('Name');
917 var connectionState = onc.getActiveValue('ConnectionState');
918 var connectionStateString = onc.getTranslatedValue('ConnectionState');
919 detailsPage.connected = connectionState == 'Connected';
920 $('network-details-subtitle-status').textContent = connectionStateString;
921 var typeKey;
922 if (onc.type == 'Ethernet')
923 typeKey = 'ethernetTitle';
924 else if (onc.type == 'WiFi')
925 typeKey = 'wifiTitle';
926 else if (onc.type == 'Wimax')
927 typeKey = 'wimaxTitle';
928 else if (onc.type == 'Cellular')
929 typeKey = 'cellularTitle';
930 else if (onc.type == 'VPN')
931 typeKey = 'vpnTitle';
932 else
933 typeKey = null;
934 var typeLabel = $('network-details-subtitle-type');
935 var typeSeparator = $('network-details-subtitle-separator');
936 if (typeKey) {
937 typeLabel.textContent = loadTimeData.getString(typeKey);
938 typeLabel.hidden = false;
939 typeSeparator.hidden = false;
940 } else {
941 typeLabel.hidden = true;
942 typeSeparator.hidden = true;
943 }
944 };
945
946 DetailsInternetPage.updateConnectionData = function(update) { 1008 DetailsInternetPage.updateConnectionData = function(update) {
947 var detailsPage = DetailsInternetPage.getInstance(); 1009 var detailsPage = DetailsInternetPage.getInstance();
948 if (!detailsPage.visible) 1010 if (!detailsPage.visible)
949 return; 1011 return;
950 1012
951 var data = $('connection-state').data; 1013 if (update.servicePath != detailsPage.servicePath_)
952 if (!data)
953 return;
954
955 if (update.servicePath != data.servicePath)
956 return; 1014 return;
957 1015
958 // Update our cached data object. 1016 // Update our cached data object.
959 updateDataObject(data, update); 1017 var onc = detailsPage.onc_;
960 var onc = new OncData(data); 1018 onc.updateData(update);
961 1019
962 this.populateHeader(detailsPage, onc); 1020 detailsPage.populateHeader_();
963 1021
964 var connectionState = onc.getActiveValue('ConnectionState'); 1022 var connectionState = onc.getActiveValue('ConnectionState');
965 var connectionStateString = onc.getTranslatedValue('ConnectionState'); 1023 var connectionStateString = onc.getTranslatedValue('ConnectionState');
966 detailsPage.deviceConnected = data.deviceConnected; 1024 if ('deviceConnected' in update)
1025 detailsPage.deviceConnected = update.deviceConnected;
967 detailsPage.connected = connectionState == 'Connected'; 1026 detailsPage.connected = connectionState == 'Connected';
968 $('connection-state').textContent = connectionStateString; 1027 $('connection-state').textContent = connectionStateString;
969 1028
970 this.updateConnectionButtonVisibilty(onc); 1029 detailsPage.updateConnectionButtonVisibilty_();
971 1030
972 if (onc.type == 'WiFi') { 1031 var type = detailsPage.type_;
1032 if (type == 'WiFi') {
973 $('wifi-connection-state').textContent = connectionStateString; 1033 $('wifi-connection-state').textContent = connectionStateString;
974 } else if (onc.type == 'Wimax') { 1034 } else if (type == 'Wimax') {
975 $('wimax-connection-state').textContent = connectionStateString; 1035 $('wimax-connection-state').textContent = connectionStateString;
976 } else if (onc.type == 'Cellular') { 1036 } else if (type == 'Cellular') {
977 $('activation-state').textContent = 1037 $('activation-state').textContent =
978 onc.getTranslatedValue('Cellular.ActivationState'); 1038 onc.getTranslatedValue('Cellular.ActivationState');
979 $('buyplan-details').hidden = !data.showBuyButton; 1039 // These properties are only defined if they are true.
980 $('view-account-details').hidden = !data.showViewAccountButton; 1040 $('view-account-details').hidden = !update.showViewAccountButton;
981 1041 $('activate-details').hidden = !update.showActivateButton;
982 $('activate-details').hidden = !data.showActivateButton; 1042 $('details-internet-login').hidden = update.showActivateButton;
983 if (data.showActivateButton)
984 $('details-internet-login').hidden = true;
985 1043
986 if (detailsPage.gsm) { 1044 if (detailsPage.gsm) {
987 var lockEnabled = 1045 var lockEnabled =
988 onc.getActiveValue('Cellular.SIMLockStatus.LockEnabled'); 1046 onc.getActiveValue('Cellular.SIMLockStatus.LockEnabled');
989 $('sim-card-lock-enabled').checked = lockEnabled; 1047 $('sim-card-lock-enabled').checked = lockEnabled;
990 $('change-pin').hidden = !lockEnabled; 1048 $('change-pin').hidden = !lockEnabled;
991 } 1049 }
992 } 1050 }
993
994 $('connection-state').data = data;
995 $('connection-state').onc = onc;
996 }; 1051 };
997 1052
998 DetailsInternetPage.showDetailedInfo = function(data) { 1053 DetailsInternetPage.showDetailedInfo = function(data) {
1054 var onc = new OncData(data);
1055
999 var detailsPage = DetailsInternetPage.getInstance(); 1056 var detailsPage = DetailsInternetPage.getInstance();
1057 detailsPage.onc_ = onc;
1058 var type = onc.getActiveValue('Type');
1059 detailsPage.type_ = type;
1060 detailsPage.servicePath_ = data.servicePath;
1000 1061
1001 var onc = new OncData(data); 1062 detailsPage.populateHeader_();
1002 data.type = onc.type;
1003 1063
1004 this.populateHeader(detailsPage, onc);
1005
1006 // TODO(stevenjb): Find a more appropriate place to cache data.
1007 $('connection-state').data = data;
1008 $('connection-state').onc = onc;
1009
1010 $('buyplan-details').hidden = true;
1011 $('activate-details').hidden = true; 1064 $('activate-details').hidden = true;
1012 $('view-account-details').hidden = true; 1065 $('view-account-details').hidden = true;
1013 1066
1014 this.updateConnectionButtonVisibilty(onc); 1067 detailsPage.updateConnectionButtonVisibilty_();
1015 1068
1016 $('web-proxy-auto-discovery').hidden = true; 1069 $('web-proxy-auto-discovery').hidden = true;
1017 1070
1018 detailsPage.deviceConnected = data.deviceConnected; 1071 detailsPage.deviceConnected = data.deviceConnected;
1019 detailsPage.connected = 1072 detailsPage.connected =
1020 onc.getActiveValue('ConnectionState') == 'Connected'; 1073 onc.getActiveValue('ConnectionState') == 'Connected';
1021 1074
1022 // Only show proxy for remembered networks. 1075 // Only show proxy for remembered networks.
1023 if (data.remembered) { 1076 if (data.remembered) {
1024 detailsPage.showProxy = true; 1077 detailsPage.showProxy = true;
1025 chrome.send('selectNetwork', [data.servicePath]); 1078 chrome.send('selectNetwork', [detailsPage.servicePath_]);
1026 } else { 1079 } else {
1027 detailsPage.showProxy = false; 1080 detailsPage.showProxy = false;
1028 } 1081 }
1029 1082
1030 var connectionStateString = onc.getTranslatedValue('ConnectionState'); 1083 var connectionStateString = onc.getTranslatedValue('ConnectionState');
1031 $('connection-state').textContent = connectionStateString; 1084 $('connection-state').textContent = connectionStateString;
1032 var restricted = onc.getActiveValue('RestrictedConnectivity'); 1085 var restricted = onc.getActiveValue('RestrictedConnectivity');
1033 var restrictedString = loadTimeData.getString( 1086 var restrictedString = loadTimeData.getString(
1034 restricted ? 'restrictedYes' : 'restrictedNo'); 1087 restricted ? 'restrictedYes' : 'restrictedNo');
1035 1088
1036 var inetAddress = {}; 1089 var inetAddress = {};
1037 var inetNetmask = {}; 1090 var inetNetmask = {};
1038 var inetGateway = {}; 1091 var inetGateway = {};
1039 1092
1040 var inetNameServersString; 1093 var inetNameServersString;
1041 1094
1042 if ('IPConfigs' in data) { 1095 var ipconfigList = onc.getActiveValue('IPConfigs');
1043 var ipconfigList = onc.getActiveValue('IPConfigs'); 1096 if (Array.isArray(ipconfigList)) {
1044 for (var i = 0; i < ipconfigList.length; ++i) { 1097 for (var i = 0; i < ipconfigList.length; ++i) {
1045 var ipconfig = ipconfigList[i]; 1098 var ipconfig = ipconfigList[i];
1046 var type = ipconfig['Type']; 1099 var ipType = ipconfig['Type'];
1047 if (type != 'IPv4') { 1100 if (ipType != 'IPv4') {
1048 // TODO(stevenjb): Handle IPv6 properties. 1101 // TODO(stevenjb): Handle IPv6 properties.
1049 continue; 1102 continue;
1050 } 1103 }
1051 var address = ipconfig['IPAddress']; 1104 var address = ipconfig['IPAddress'];
1052 inetAddress.automatic = address; 1105 inetAddress.automatic = address;
1053 inetAddress.value = address; 1106 inetAddress.value = address;
1054 var netmask = PrefixLengthToNetmask(ipconfig['RoutingPrefix']); 1107 var netmask = PrefixLengthToNetmask(ipconfig['RoutingPrefix']);
1055 inetNetmask.automatic = netmask; 1108 inetNetmask.automatic = netmask;
1056 inetNetmask.value = netmask; 1109 inetNetmask.value = netmask;
1057 var gateway = ipconfig['Gateway']; 1110 var gateway = ipconfig['Gateway'];
1058 inetGateway.automatic = gateway; 1111 inetGateway.automatic = gateway;
1059 inetGateway.value = gateway; 1112 inetGateway.value = gateway;
1060 if ('WebProxyAutoDiscoveryUrl' in ipconfig) { 1113 if ('WebProxyAutoDiscoveryUrl' in ipconfig) {
1061 $('web-proxy-auto-discovery').hidden = false; 1114 $('web-proxy-auto-discovery').hidden = false;
1062 $('web-proxy-auto-discovery-url').value = 1115 $('web-proxy-auto-discovery-url').value =
1063 ipconfig['WebProxyAutoDiscoveryUrl']; 1116 ipconfig['WebProxyAutoDiscoveryUrl'];
1064 } 1117 }
1065 if ('NameServers' in ipconfig) { 1118 if ('NameServers' in ipconfig) {
1066 var inetNameServers = ipconfig['NameServers']; 1119 var inetNameServers = ipconfig['NameServers'];
1067 inetNameServers = inetNameServers.sort(); 1120 inetNameServers = inetNameServers.sort();
1068 inetNameServersString = inetNameServers.join(','); 1121 inetNameServersString = inetNameServers.join(',');
1069 } 1122 }
1070 break; // Use the first IPv4 entry. 1123 break; // Use the first IPv4 entry.
1071 } 1124 }
1072 } 1125 }
1073 1126
1074 // Override the "automatic" values with the real saved DHCP values, 1127 // Override the "automatic" values with the real saved DHCP values,
1075 // if they are set. 1128 // if they are set.
1076 var savedNameServersString; 1129 var savedNameServersString;
1077 if ('SavedIPConfig' in data) { 1130 var savedIpAddress = onc.getActiveValue('SavedIPConfig.IPAddress');
1078 var savedIpAddress = onc.getActiveValue('SavedIPConfig.IPAddress'); 1131 if (savedIpAddress != undefined) {
1079 if (savedIpAddress != undefined) { 1132 inetAddress.automatic = savedIpAddress;
1080 inetAddress.automatic = savedIpAddress; 1133 inetAddress.value = savedIpAddress;
1081 inetAddress.value = savedIpAddress; 1134 }
1082 } 1135 var savedPrefix = onc.getActiveValue('SavedIPConfig.RoutingPrefix');
1083 var savedPrefix = onc.getActiveValue('SavedIPConfig.RoutingPrefix'); 1136 if (savedPrefix != undefined) {
1084 if (savedPrefix != undefined) { 1137 var savedNetmask = PrefixLengthToNetmask(savedPrefix);
1085 var savedNetmask = PrefixLengthToNetmask(savedPrefix); 1138 inetNetmask.automatic = savedNetmask;
1086 inetNetmask.automatic = savedNetmask; 1139 inetNetmask.value = savedNetmask;
1087 inetNetmask.value = savedNetmask; 1140 }
1088 } 1141 var savedGateway = onc.getActiveValue('SavedIPConfig.Gateway');
1089 var savedGateway = onc.getActiveValue('SavedIPConfig.Gateway'); 1142 if (savedGateway != undefined) {
1090 if (savedGateway != undefined) { 1143 inetGateway.automatic = savedGateway;
1091 inetGateway.automatic = savedGateway; 1144 inetGateway.value = savedGateway;
1092 inetGateway.value = savedGateway; 1145 }
1093 } 1146 var savedNameServers = onc.getActiveValue('SavedIPConfig.NameServers');
1094 var savedNameServers = onc.getActiveValue('SavedIPConfig.NameServers'); 1147 if (savedNameServers) {
1095 if (savedNameServers) { 1148 savedNameServers = savedNameServers.sort();
1096 savedNameServers = savedNameServers.sort(); 1149 savedNameServersString = savedNameServers.join(',');
1097 savedNameServersString = savedNameServers.join(',');
1098 }
1099 } 1150 }
1100 1151
1101 var ipAutoConfig = 'automatic'; 1152 var ipAutoConfig = 'automatic';
1102 1153
1103 var staticNameServersString; 1154 var staticNameServersString;
1104 if ('StaticIPConfig' in data) { 1155 var staticIpAddress = onc.getActiveValue('StaticIPConfig.IPAddress');
1105 var staticIpAddress = onc.getActiveValue('StaticIPConfig.IPAddress'); 1156 if (staticIpAddress != undefined) {
1106 if (staticIpAddress != undefined) { 1157 ipAutoConfig = 'user';
1107 ipAutoConfig = 'user'; 1158 inetAddress.user = staticIpAddress;
1108 inetAddress.user = staticIpAddress; 1159 inetAddress.value = staticIpAddress;
1109 inetAddress.value = staticIpAddress; 1160 }
1110 } 1161 var staticPrefix = onc.getActiveValue('StaticIPConfig.RoutingPrefix');
1111 var staticPrefix = onc.getActiveValue('StaticIPConfig.RoutingPrefix'); 1162 if (staticPrefix != undefined) {
1112 if (staticPrefix != undefined) { 1163 var staticNetmask = PrefixLengthToNetmask(staticPrefix);
1113 var staticNetmask = PrefixLengthToNetmask(staticPrefix); 1164 inetNetmask.user = staticNetmask;
1114 inetNetmask.user = staticNetmask; 1165 inetNetmask.value = staticNetmask;
1115 inetNetmask.value = staticNetmask; 1166 }
1116 } 1167 var staticGateway = onc.getActiveValue('StaticIPConfig.Gateway');
1117 var staticGateway = onc.getActiveValue('StaticIPConfig.Gateway'); 1168 if (staticGateway != undefined) {
1118 if (staticGateway != undefined) { 1169 inetGateway.user = staticGateway;
1119 inetGateway.user = staticGateway; 1170 inetGateway.value = staticGateway;
1120 inetGateway.value = staticGateway; 1171 }
1121 } 1172 var staticNameServers = onc.getActiveValue('StaticIPConfig.NameServers');
1122 var staticNameServers = onc.getActiveValue('StaticIPConfig.NameServers'); 1173 if (staticNameServers) {
1123 if (staticNameServers) { 1174 staticNameServers = staticNameServers.sort();
1124 staticNameServers = staticNameServers.sort(); 1175 staticNameServersString = staticNameServers.join(',');
1125 staticNameServersString = staticNameServers.join(',');
1126 }
1127 } 1176 }
1128 1177
1129 $('ip-automatic-configuration-checkbox').checked = 1178 $('ip-automatic-configuration-checkbox').checked =
1130 ipAutoConfig == 'automatic'; 1179 ipAutoConfig == 'automatic';
1131 1180
1132 inetAddress.autoConfig = ipAutoConfig; 1181 inetAddress.autoConfig = ipAutoConfig;
1133 inetNetmask.autoConfig = ipAutoConfig; 1182 inetNetmask.autoConfig = ipAutoConfig;
1134 inetGateway.autoConfig = ipAutoConfig; 1183 inetGateway.autoConfig = ipAutoConfig;
1135 1184
1136 var configureAddressField = function(field, model) { 1185 var configureAddressField = function(field, model) {
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
1185 $(field).parentElement.hidden = false; 1234 $(field).parentElement.hidden = false;
1186 } else { 1235 } else {
1187 $(field).parentElement.hidden = true; 1236 $(field).parentElement.hidden = true;
1188 } 1237 }
1189 }; 1238 };
1190 1239
1191 var networkName = onc.getTranslatedValue('Name'); 1240 var networkName = onc.getTranslatedValue('Name');
1192 1241
1193 // Signal strength as percentage (for WiFi and Wimax). 1242 // Signal strength as percentage (for WiFi and Wimax).
1194 var signalStrength; 1243 var signalStrength;
1195 if (onc.type == 'WiFi' || onc.type == 'Wimax') { 1244 if (type == 'WiFi' || type == 'Wimax')
1196 signalStrength = onc.getActiveValue(onc.type + '.SignalStrength'); 1245 signalStrength = onc.getActiveValue(type + '.SignalStrength');
1197 }
1198 if (!signalStrength) 1246 if (!signalStrength)
1199 signalStrength = 0; 1247 signalStrength = 0;
1200 var strengthFormat = loadTimeData.getString('inetSignalStrengthFormat'); 1248 var strengthFormat = loadTimeData.getString('inetSignalStrengthFormat');
1201 var strengthString = strengthFormat.replace('$1', signalStrength); 1249 var strengthString = strengthFormat.replace('$1', signalStrength);
1202 1250
1203 detailsPage.type = onc.type; 1251 if (type == 'WiFi') {
1204 if (onc.type == 'WiFi') {
1205 OptionsPage.showTab($('wifi-network-nav-tab')); 1252 OptionsPage.showTab($('wifi-network-nav-tab'));
1206 detailsPage.gsm = false; 1253 detailsPage.gsm = false;
1207 detailsPage.shared = data.shared; 1254 detailsPage.shared = data.shared;
1208 $('wifi-connection-state').textContent = connectionStateString; 1255 $('wifi-connection-state').textContent = connectionStateString;
1209 $('wifi-restricted-connectivity').textContent = restrictedString; 1256 $('wifi-restricted-connectivity').textContent = restrictedString;
1210 var ssid = onc.getActiveValue('WiFi.SSID'); 1257 var ssid = onc.getActiveValue('WiFi.SSID');
1211 $('wifi-ssid').textContent = ssid ? ssid : networkName; 1258 $('wifi-ssid').textContent = ssid ? ssid : networkName;
1212 setOrHideParent('wifi-bssid', onc.getActiveValue('WiFi.BSSID')); 1259 setOrHideParent('wifi-bssid', onc.getActiveValue('WiFi.BSSID'));
1213 var security = onc.getActiveValue('WiFi.Security'); 1260 var security = onc.getActiveValue('WiFi.Security');
1214 if (security == 'None') 1261 if (security == 'None')
(...skipping 10 matching lines...) Expand all
1225 setOrHideParent('wifi-hardware-address', 1272 setOrHideParent('wifi-hardware-address',
1226 onc.getActiveValue('MacAddress')); 1273 onc.getActiveValue('MacAddress'));
1227 detailsPage.showPreferred = data.remembered; 1274 detailsPage.showPreferred = data.remembered;
1228 var priority = onc.getActiveValue('Priority'); 1275 var priority = onc.getActiveValue('Priority');
1229 $('prefer-network-wifi').checked = priority > 0; 1276 $('prefer-network-wifi').checked = priority > 0;
1230 $('prefer-network-wifi').disabled = !data.remembered; 1277 $('prefer-network-wifi').disabled = !data.remembered;
1231 $('auto-connect-network-wifi').checked = 1278 $('auto-connect-network-wifi').checked =
1232 onc.getActiveValue('AutoConnect'); 1279 onc.getActiveValue('AutoConnect');
1233 $('auto-connect-network-wifi').disabled = !data.remembered; 1280 $('auto-connect-network-wifi').disabled = !data.remembered;
1234 detailsPage.hasSecurity = security != undefined; 1281 detailsPage.hasSecurity = security != undefined;
1235 } else if (onc.type == 'Wimax') { 1282 } else if (type == 'Wimax') {
1236 OptionsPage.showTab($('wimax-network-nav-tab')); 1283 OptionsPage.showTab($('wimax-network-nav-tab'));
1237 detailsPage.gsm = false; 1284 detailsPage.gsm = false;
1238 detailsPage.shared = data.shared; 1285 detailsPage.shared = data.shared;
1239 detailsPage.showPreferred = data.remembered; 1286 detailsPage.showPreferred = data.remembered;
1240 $('wimax-connection-state').textContent = connectionStateString; 1287 $('wimax-connection-state').textContent = connectionStateString;
1241 $('wimax-restricted-connectivity').textContent = restrictedString; 1288 $('wimax-restricted-connectivity').textContent = restrictedString;
1242 $('auto-connect-network-wimax').checked = 1289 $('auto-connect-network-wimax').checked =
1243 onc.getActiveValue('AutoConnect'); 1290 onc.getActiveValue('AutoConnect');
1244 $('auto-connect-network-wimax').disabled = !data.remembered; 1291 $('auto-connect-network-wimax').disabled = !data.remembered;
1245 var identity = onc.getActiveValue('Wimax.EAP.Identity'); 1292 var identity = onc.getActiveValue('Wimax.EAP.Identity');
1246 setOrHideParent('wimax-eap-identity', identity); 1293 setOrHideParent('wimax-eap-identity', identity);
1247 $('wimax-signal-strength').textContent = strengthString; 1294 $('wimax-signal-strength').textContent = strengthString;
1248 } else if (onc.type == 'Cellular') { 1295 } else if (type == 'Cellular') {
1249 OptionsPage.showTab($('cellular-conn-nav-tab')); 1296 OptionsPage.showTab($('cellular-conn-nav-tab'));
1250 if (data.showCarrierSelect && data.currentCarrierIndex != -1) { 1297 if (data.showCarrierSelect && data.currentCarrierIndex != -1) {
1251 var carrierSelector = $('select-carrier'); 1298 var carrierSelector = $('select-carrier');
1252 carrierSelector.onchange = DetailsInternetPage.handleCarrierChanged; 1299 carrierSelector.onchange = DetailsInternetPage.handleCarrierChanged;
1253 carrierSelector.options.length = 0; 1300 carrierSelector.options.length = 0;
1254 for (var i = 0; i < data.carriers.length; ++i) { 1301 for (var i = 0; i < data.carriers.length; ++i) {
1255 var option = document.createElement('option'); 1302 var option = document.createElement('option');
1256 option.textContent = data.carriers[i]; 1303 option.textContent = data.carriers[i];
1257 carrierSelector.add(option); 1304 carrierSelector.add(option);
1258 } 1305 }
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
1301 setOrHideParent('imei', onc.getActiveValue('Cellular.IMEI')); 1348 setOrHideParent('imei', onc.getActiveValue('Cellular.IMEI'));
1302 setOrHideParent('meid', onc.getActiveValue('Cellular.MEID')); 1349 setOrHideParent('meid', onc.getActiveValue('Cellular.MEID'));
1303 setOrHideParent('min', onc.getActiveValue('Cellular.MIN')); 1350 setOrHideParent('min', onc.getActiveValue('Cellular.MIN'));
1304 setOrHideParent('prl-version', onc.getActiveValue('Cellular.PRLVersion')); 1351 setOrHideParent('prl-version', onc.getActiveValue('Cellular.PRLVersion'));
1305 1352
1306 var family = onc.getActiveValue('Cellular.Family'); 1353 var family = onc.getActiveValue('Cellular.Family');
1307 detailsPage.gsm = family == 'GSM'; 1354 detailsPage.gsm = family == 'GSM';
1308 if (detailsPage.gsm) { 1355 if (detailsPage.gsm) {
1309 $('iccid').textContent = onc.getActiveValue('Cellular.ICCID'); 1356 $('iccid').textContent = onc.getActiveValue('Cellular.ICCID');
1310 $('imsi').textContent = onc.getActiveValue('Cellular.IMSI'); 1357 $('imsi').textContent = onc.getActiveValue('Cellular.IMSI');
1311 1358 detailsPage.initializeApnList_(onc);
1312 var apnSelector = $('select-apn');
1313 // Clear APN lists, keep only last element that "other".
1314 while (apnSelector.length != 1)
1315 apnSelector.remove(0);
1316 var otherOption = apnSelector[0];
1317 data.selectedApn = -1;
1318 data.userApnIndex = -1;
1319 var activeApn = onc.getActiveValue('Cellular.APN.AccessPointName');
1320 var activeUsername = onc.getActiveValue('Cellular.APN.Username');
1321 var activePassword = onc.getActiveValue('Cellular.APN.Password');
1322 var lastGoodApn =
1323 onc.getActiveValue('Cellular.LastGoodAPN.AccessPointName');
1324 var lastGoodUsername =
1325 onc.getActiveValue('Cellular.LastGoodAPN.Username');
1326 var lastGoodPassword =
1327 onc.getActiveValue('Cellular.LastGoodAPN.Password');
1328 var apnList = onc.getActiveValue('Cellular.APNList');
1329 for (var i = 0; i < apnList.length; i++) {
1330 var apnDict = apnList[i];
1331 var option = document.createElement('option');
1332 var localizedName = apnDict['LocalizedName'];
1333 var name = localizedName ? localizedName : apnDict['Name'];
1334 var accessPointName = apnDict['AccessPointName'];
1335 option.textContent =
1336 name ? (name + ' (' + accessPointName + ')') : accessPointName;
1337 option.value = i;
1338 // If this matches the active Apn, or LastGoodApn, set it as the
1339 // selected Apn.
1340 if ((activeApn == accessPointName &&
1341 activeUsername == apnDict['Username'] &&
1342 activePassword == apnDict['Password']) ||
1343 (!activeApn &&
1344 lastGoodApn == accessPointName &&
1345 lastGoodUsername == apnDict['Username'] &&
1346 lastGoodPassword == apnDict['Password'])) {
1347 data.selectedApn = i;
1348 }
1349 // Insert new option before "other" option.
1350 apnSelector.add(option, otherOption);
1351 }
1352 if (data.selectedApn == -1 && activeApn) {
1353 var option = document.createElement('option');
1354 option.textContent = activeApn;
1355 option.value = -1;
1356 apnSelector.add(option, otherOption);
1357 data.selectedApn = apnSelector.length - 2;
1358 data.userApnIndex = data.selectedApn;
1359 }
1360 apnSelector.selectedIndex = data.selectedApn;
1361 updateHidden('.apn-list-view', false);
1362 updateHidden('.apn-details-view', true);
1363 var lockEnabled = 1359 var lockEnabled =
1364 onc.getActiveValue('Cellular.SIMLockStatus.LockEnabled'); 1360 onc.getActiveValue('Cellular.SIMLockStatus.LockEnabled');
1365 $('sim-card-lock-enabled').checked = lockEnabled; 1361 $('sim-card-lock-enabled').checked = lockEnabled;
1366 $('change-pin').hidden = !lockEnabled; 1362 $('change-pin').hidden = !lockEnabled;
1367 } 1363 }
1368 $('auto-connect-network-cellular').checked = 1364 $('auto-connect-network-cellular').checked =
1369 onc.getActiveValue('AutoConnect'); 1365 onc.getActiveValue('AutoConnect');
1370 $('auto-connect-network-cellular').disabled = false; 1366 $('auto-connect-network-cellular').disabled = false;
1371 1367
1372 $('buyplan-details').hidden = !data.showBuyButton;
1373 $('view-account-details').hidden = !data.showViewAccountButton; 1368 $('view-account-details').hidden = !data.showViewAccountButton;
1374 $('activate-details').hidden = !data.showActivateButton; 1369 $('activate-details').hidden = !data.showActivateButton;
1375 if (data.showActivateButton) { 1370 $('details-internet-login').hidden = data.showActivateButton;
1376 $('details-internet-login').hidden = true; 1371 } else if (type == 'VPN') {
1377 }
1378 } else if (onc.type == 'VPN') {
1379 OptionsPage.showTab($('vpn-nav-tab')); 1372 OptionsPage.showTab($('vpn-nav-tab'));
1380 detailsPage.gsm = false; 1373 detailsPage.gsm = false;
1381 $('inet-service-name').textContent = networkName; 1374 $('inet-service-name').textContent = networkName;
1382 $('inet-provider-type').textContent = 1375 $('inet-provider-type').textContent =
1383 onc.getTranslatedValue('VPN.Type'); 1376 onc.getTranslatedValue('VPN.Type');
1384 var providerType = onc.getActiveValue('VPN.Type'); 1377 var providerType = onc.getActiveValue('VPN.Type');
1385 var providerKey = 'VPN.' + providerType; 1378 var providerKey = 'VPN.' + providerType;
1386 $('inet-username').textContent = 1379 $('inet-username').textContent =
1387 onc.getActiveValue(providerKey + '.Username'); 1380 onc.getActiveValue(providerKey + '.Username');
1388 var inetServerHostname = $('inet-server-hostname'); 1381 var inetServerHostname = $('inet-server-hostname');
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
1433 1426
1434 // Don't show page name in address bar and in history to prevent people 1427 // Don't show page name in address bar and in history to prevent people
1435 // navigate here by hand and solve issue with page session restore. 1428 // navigate here by hand and solve issue with page session restore.
1436 PageManager.showPageByName('detailsInternetPage', false); 1429 PageManager.showPageByName('detailsInternetPage', false);
1437 }; 1430 };
1438 1431
1439 return { 1432 return {
1440 DetailsInternetPage: DetailsInternetPage 1433 DetailsInternetPage: DetailsInternetPage
1441 }; 1434 };
1442 }); 1435 });
OLDNEW
« no previous file with comments | « chrome/browser/resources/options/chromeos/internet_detail.html ('k') | chrome/browser/resources/options/chromeos/onc_data.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698