Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 cr.define('options.network', function() { | 5 cr.define('options.network', function() { |
| 6 var ArrayDataModel = cr.ui.ArrayDataModel; | 6 var ArrayDataModel = cr.ui.ArrayDataModel; |
| 7 var List = cr.ui.List; | 7 var List = cr.ui.List; |
| 8 var ListItem = cr.ui.ListItem; | 8 var ListItem = cr.ui.ListItem; |
| 9 var ListSingleSelectionModel = cr.ui.ListSingleSelectionModel; | 9 var ListSingleSelectionModel = cr.ui.ListSingleSelectionModel; |
| 10 var Menu = cr.ui.Menu; | 10 var Menu = cr.ui.Menu; |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 56 var cellularEnabled_ = false; | 56 var cellularEnabled_ = false; |
| 57 | 57 |
| 58 /** | 58 /** |
| 59 * Indicates if cellular device supports network scanning. | 59 * Indicates if cellular device supports network scanning. |
| 60 * @type {boolean} | 60 * @type {boolean} |
| 61 * @private | 61 * @private |
| 62 */ | 62 */ |
| 63 var cellularSupportsScan_ = false; | 63 var cellularSupportsScan_ = false; |
| 64 | 64 |
| 65 /** | 65 /** |
| 66 * Indicates if cellular device supports network scanning. | |
|
armansito
2014/09/16 16:40:41
Shouldn't this be something like "Indicates the cu
stevenjb
2014/09/16 17:32:58
Done.
| |
| 67 * @type {boolean} | |
| 68 * @private | |
| 69 */ | |
| 70 var cellularSimLockType_ = ''; | |
| 71 | |
| 72 /** | |
| 73 * Indicates if cellular device supports network scanning. | |
|
armansito
2014/09/16 16:40:41
Copy-paste?
stevenjb
2014/09/16 17:32:58
Done.
| |
| 74 * @type {boolean} | |
| 75 * @private | |
| 76 */ | |
| 77 var cellularSimAbsent_ = false; | |
| 78 | |
| 79 /** | |
| 66 * Indicates if WiMAX networks are available. | 80 * Indicates if WiMAX networks are available. |
| 67 * @type {boolean} | 81 * @type {boolean} |
| 68 * @private | 82 * @private |
| 69 */ | 83 */ |
| 70 var wimaxAvailable_ = false; | 84 var wimaxAvailable_ = false; |
| 71 | 85 |
| 72 /** | 86 /** |
| 73 * Indicates if WiMAX networks are enabled. | 87 * Indicates if WiMAX networks are enabled. |
| 74 * @type {boolean} | 88 * @type {boolean} |
| 75 * @private | 89 * @private |
| (...skipping 285 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 361 parent.appendChild(this.menu_); | 375 parent.appendChild(this.menu_); |
| 362 } | 376 } |
| 363 var top = this.offsetTop + this.clientHeight; | 377 var top = this.offsetTop + this.clientHeight; |
| 364 var menuId = this.getMenuName(); | 378 var menuId = this.getMenuName(); |
| 365 if (menuId != activeMenu_ || rebuild) { | 379 if (menuId != activeMenu_ || rebuild) { |
| 366 closeMenu_(); | 380 closeMenu_(); |
| 367 activeMenu_ = menuId; | 381 activeMenu_ = menuId; |
| 368 this.menu_.style.setProperty('top', top + 'px'); | 382 this.menu_.style.setProperty('top', top + 'px'); |
| 369 this.menu_.hidden = false; | 383 this.menu_.hidden = false; |
| 370 } | 384 } |
| 371 if (rescan) | 385 if (rescan) { |
| 372 chrome.send('refreshNetworks'); | 386 // TODO(stevenjb): chrome.networkingPrivate.requestNetworkScan |
| 373 }, | 387 chrome.send('requestNetworkScan'); |
| 388 } | |
| 389 } | |
| 374 }; | 390 }; |
| 375 | 391 |
| 376 /** | 392 /** |
| 377 * Creates a control for selecting or configuring a network connection based | 393 * Creates a control for selecting or configuring a network connection based |
| 378 * on the type of connection (e.g. wifi versus vpn). | 394 * on the type of connection (e.g. wifi versus vpn). |
| 379 * @param {{key: string, networkList: Array.<Object>}} data Description of the | 395 * @param {{key: string, networkList: Array.<Object>}} data Description of the |
| 380 * network. | 396 * network. |
| 381 * @constructor | 397 * @constructor |
| 382 * @extends {NetworkMenuItem} | 398 * @extends {NetworkMenuItem} |
| 383 */ | 399 */ |
| (...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 504 list = this.data.networkList; | 520 list = this.data.networkList; |
| 505 var empty = !list || list.length == 0; | 521 var empty = !list || list.length == 0; |
| 506 if (list) { | 522 if (list) { |
| 507 for (var i = 0; i < list.length; i++) { | 523 for (var i = 0; i < list.length; i++) { |
| 508 var data = list[i]; | 524 var data = list[i]; |
| 509 this.createNetworkOptionsCallback_(networkGroup, data); | 525 this.createNetworkOptionsCallback_(networkGroup, data); |
| 510 if (data.ConnectionState == 'Connected') { | 526 if (data.ConnectionState == 'Connected') { |
| 511 if (data.Type == 'VPN') { | 527 if (data.Type == 'VPN') { |
| 512 var disconnectCallback = function() { | 528 var disconnectCallback = function() { |
| 513 sendChromeMetricsAction('Options_NetworkDisconnectVPN'); | 529 sendChromeMetricsAction('Options_NetworkDisconnectVPN'); |
| 514 chrome.send('networkCommand', | 530 // TODO(stevenjb): chrome.networkingPrivate.startDisconnect |
| 515 ['VPN', data.servicePath, 'disconnect']); | 531 chrome.send('startDisconnect', [data.servicePath]); |
| 516 }; | 532 }; |
| 517 // Add separator | 533 // Add separator |
| 518 addendum.push({}); | 534 addendum.push({}); |
| 519 addendum.push({label: loadTimeData.getString('disconnectNetwork'), | 535 addendum.push({label: loadTimeData.getString('disconnectNetwork'), |
| 520 command: disconnectCallback, | 536 command: disconnectCallback, |
| 521 data: data}); | 537 data: data}); |
| 522 } | 538 } |
| 523 } | 539 } |
| 524 } | 540 } |
| 525 } | 541 } |
| 526 if (this.data_.key == 'WiFi' || this.data_.key == 'Wimax' || | 542 if (this.data_.key == 'WiFi' || this.data_.key == 'Wimax' || |
| 527 this.data_.key == 'Cellular') { | 543 this.data_.key == 'Cellular') { |
| 528 addendum.push({}); | 544 addendum.push({}); |
| 529 if (this.data_.key == 'WiFi') { | 545 if (this.data_.key == 'WiFi') { |
| 530 addendum.push({label: loadTimeData.getString('turnOffWifi'), | 546 addendum.push({ |
| 531 command: function() { | 547 label: loadTimeData.getString('turnOffWifi'), |
| 532 sendChromeMetricsAction('Options_NetworkWifiToggle'); | 548 command: function() { |
| 533 chrome.send('disableWifi'); | 549 sendChromeMetricsAction('Options_NetworkWifiToggle'); |
| 534 }, | 550 // TODO(stevenjb): chrome.networkingPrivate.disableNetworkType |
| 535 data: {}}); | 551 chrome.send('disableNetworkType', ['WiFi']); |
| 552 }, | |
| 553 data: {}}); | |
| 536 } else if (this.data_.key == 'Wimax') { | 554 } else if (this.data_.key == 'Wimax') { |
| 537 addendum.push({label: loadTimeData.getString('turnOffWimax'), | 555 addendum.push({ |
| 538 command: function() { | 556 label: loadTimeData.getString('turnOffWimax'), |
| 539 chrome.send('disableWimax'); | 557 command: function() { |
| 540 }, | 558 // TODO(stevenjb): chrome.networkingPrivate.disableNetworkType |
| 541 data: {}}); | 559 chrome.send('disableNetworkType', ['Wimax']); |
| 560 }, | |
| 561 data: {}}); | |
| 542 } else if (this.data_.key == 'Cellular') { | 562 } else if (this.data_.key == 'Cellular') { |
| 543 addendum.push({label: loadTimeData.getString('turnOffCellular'), | 563 addendum.push({ |
| 544 command: function() { | 564 label: loadTimeData.getString('turnOffCellular'), |
| 545 chrome.send('disableCellular'); | 565 command: function() { |
| 546 }, | 566 // TODO(stevenjb): chrome.networkingPrivate.disableNetworkType |
| 547 data: {}}); | 567 chrome.send('disableNetworkType', ['Cellular']); |
| 568 }, | |
| 569 data: {}}); | |
| 548 } | 570 } |
| 549 } | 571 } |
| 550 if (!empty) | 572 if (!empty) |
| 551 menu.appendChild(networkGroup); | 573 menu.appendChild(networkGroup); |
| 552 if (addendum.length > 0) { | 574 if (addendum.length > 0) { |
| 553 var separator = false; | 575 var separator = false; |
| 554 if (!empty) { | 576 if (!empty) { |
| 555 menu.appendChild(MenuItem.createSeparator()); | 577 menu.appendChild(MenuItem.createSeparator()); |
| 556 separator = true; | 578 separator = true; |
| 557 } | 579 } |
| (...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 652 /** | 674 /** |
| 653 * Adds a menu item for showing network details. | 675 * Adds a menu item for showing network details. |
| 654 * @param {!Element} parent The parent element. | 676 * @param {!Element} parent The parent element. |
| 655 * @param {Object} data Description of the network. | 677 * @param {Object} data Description of the network. |
| 656 * @private | 678 * @private |
| 657 */ | 679 */ |
| 658 createNetworkOptionsCallback_: function(parent, data) { | 680 createNetworkOptionsCallback_: function(parent, data) { |
| 659 var menuItem = createCallback_(parent, | 681 var menuItem = createCallback_(parent, |
| 660 data, | 682 data, |
| 661 getNetworkName(data), | 683 getNetworkName(data), |
| 662 'options', | 684 'showDetails', |
| 663 data.iconURL); | 685 data.iconURL); |
| 664 if (data.policyManaged) | 686 if (data.policyManaged) |
| 665 menuItem.appendChild(new ManagedNetworkIndicator()); | 687 menuItem.appendChild(new ManagedNetworkIndicator()); |
| 666 if (data.ConnectionState == 'Connected' || | 688 if (data.ConnectionState == 'Connected' || |
| 667 data.ConnectionState == 'Connecting') { | 689 data.ConnectionState == 'Connecting') { |
| 668 var label = menuItem.getElementsByClassName( | 690 var label = menuItem.getElementsByClassName( |
| 669 'network-menu-item-label')[0]; | 691 'network-menu-item-label')[0]; |
| 670 label.classList.add('active-network'); | 692 label.classList.add('active-network'); |
| 671 } | 693 } |
| 672 } | 694 } |
| (...skipping 282 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 955 * cellularAvailable: boolean, cellularEnabled: boolean, | 977 * cellularAvailable: boolean, cellularEnabled: boolean, |
| 956 * cellularSupportsScan: boolean}} data Description of available network | 978 * cellularSupportsScan: boolean}} data Description of available network |
| 957 * devices and their corresponding state. | 979 * devices and their corresponding state. |
| 958 */ | 980 */ |
| 959 NetworkList.refreshNetworkData = function(data) { | 981 NetworkList.refreshNetworkData = function(data) { |
| 960 var networkList = $('network-list'); | 982 var networkList = $('network-list'); |
| 961 networkList.startBatchUpdates(); | 983 networkList.startBatchUpdates(); |
| 962 cellularAvailable_ = data.cellularAvailable; | 984 cellularAvailable_ = data.cellularAvailable; |
| 963 cellularEnabled_ = data.cellularEnabled; | 985 cellularEnabled_ = data.cellularEnabled; |
| 964 cellularSupportsScan_ = data.cellularSupportsScan; | 986 cellularSupportsScan_ = data.cellularSupportsScan; |
| 987 cellularSimAbsent_ = data.cellularSimAbsent; | |
| 988 cellularSimLockType_ = data.cellularSimLockType; | |
| 965 wimaxAvailable_ = data.wimaxAvailable; | 989 wimaxAvailable_ = data.wimaxAvailable; |
| 966 wimaxEnabled_ = data.wimaxEnabled; | 990 wimaxEnabled_ = data.wimaxEnabled; |
| 967 | 991 |
| 968 // Only show Ethernet control if connected. | 992 // Only show Ethernet control if connected. |
| 969 var ethernetConnection = getConnection_(data.wiredList); | 993 var ethernetConnection = getConnection_(data.wiredList); |
| 970 if (ethernetConnection) { | 994 if (ethernetConnection) { |
| 971 var type = String('Ethernet'); | 995 var type = String('Ethernet'); |
| 972 var path = ethernetConnection.servicePath; | 996 var path = ethernetConnection.servicePath; |
| 973 var ethernetOptions = function() { | 997 var ethernetOptions = function() { |
| 974 chrome.send('networkCommand', | 998 chrome.send('networkCommand', [type, path, 'showDetails']); |
| 975 [type, path, 'options']); | |
| 976 }; | 999 }; |
| 977 networkList.update( | 1000 networkList.update( |
| 978 { key: 'Ethernet', | 1001 { key: 'Ethernet', |
| 979 subtitle: loadTimeData.getString('OncConnectionStateConnected'), | 1002 subtitle: loadTimeData.getString('OncConnectionStateConnected'), |
| 980 iconURL: ethernetConnection.iconURL, | 1003 iconURL: ethernetConnection.iconURL, |
| 981 command: ethernetOptions, | 1004 command: ethernetOptions, |
| 982 policyManaged: ethernetConnection.policyManaged } | 1005 policyManaged: ethernetConnection.policyManaged } |
| 983 ); | 1006 ); |
| 984 } else { | 1007 } else { |
| 985 networkList.deleteItem('Ethernet'); | 1008 networkList.deleteItem('Ethernet'); |
| 986 } | 1009 } |
| 987 | 1010 |
| 988 if (data.wifiEnabled) | 1011 if (data.wifiEnabled) |
| 989 loadData_('WiFi', data.wirelessList, data.rememberedList); | 1012 loadData_('WiFi', data.wirelessList, data.rememberedList); |
| 990 else | 1013 else |
| 991 addEnableNetworkButton_('WiFi', 'enableWifi', 'WiFi'); | 1014 addEnableNetworkButton_('WiFi'); |
| 992 | 1015 |
| 993 // Only show cellular control if available. | 1016 // Only show cellular control if available. |
| 994 if (data.cellularAvailable) { | 1017 if (data.cellularAvailable) { |
| 995 if (data.cellularEnabled) | 1018 if (data.cellularEnabled) |
| 996 loadData_('Cellular', data.wirelessList, data.rememberedList); | 1019 loadData_('Cellular', data.wirelessList, data.rememberedList); |
| 997 else | 1020 else |
| 998 addEnableNetworkButton_('Cellular', 'enableCellular', 'Cellular'); | 1021 addEnableNetworkButton_('Cellular'); |
| 999 } else { | 1022 } else { |
| 1000 networkList.deleteItem('Cellular'); | 1023 networkList.deleteItem('Cellular'); |
| 1001 } | 1024 } |
| 1002 | 1025 |
| 1003 // Only show wimax control if available. Uses cellular icons. | 1026 // Only show wimax control if available. Uses cellular icons. |
| 1004 if (data.wimaxAvailable) { | 1027 if (data.wimaxAvailable) { |
| 1005 if (data.wimaxEnabled) | 1028 if (data.wimaxEnabled) |
| 1006 loadData_('Wimax', data.wirelessList, data.rememberedList); | 1029 loadData_('Wimax', data.wirelessList, data.rememberedList); |
| 1007 else | 1030 else |
| 1008 addEnableNetworkButton_('Wimax', 'enableWimax', 'Cellular'); | 1031 addEnableNetworkButton_('Wimax'); |
| 1009 } else { | 1032 } else { |
| 1010 networkList.deleteItem('Wimax'); | 1033 networkList.deleteItem('Wimax'); |
| 1011 } | 1034 } |
| 1012 | 1035 |
| 1013 // Only show VPN control if there is at least one VPN configured. | 1036 // Only show VPN control if there is at least one VPN configured. |
| 1014 if (data.vpnList.length > 0) | 1037 if (data.vpnList.length > 0) |
| 1015 loadData_('VPN', data.vpnList, data.rememberedList); | 1038 loadData_('VPN', data.vpnList, data.rememberedList); |
| 1016 else | 1039 else |
| 1017 networkList.deleteItem('VPN'); | 1040 networkList.deleteItem('VPN'); |
| 1018 networkList.endBatchUpdates(); | 1041 networkList.endBatchUpdates(); |
| 1019 }; | 1042 }; |
| 1020 | 1043 |
| 1021 /** | 1044 /** |
| 1022 * Replaces a network menu with a button for reenabling the type of network. | 1045 * Replaces a network menu with a button for enabling the network type. |
| 1023 * @param {string} name The type of network (WiFi, Cellular or Wimax). | 1046 * @param {string} type The type of network (WiFi, Cellular or Wimax). |
| 1024 * @param {string} command The command for reenabling the network. | |
| 1025 * @param {string} icon Type of icon (WiFi or Cellular). | |
| 1026 * @private | 1047 * @private |
| 1027 */ | 1048 */ |
| 1028 function addEnableNetworkButton_(type, command, icon) { | 1049 function addEnableNetworkButton_(type) { |
| 1029 var subtitle = loadTimeData.getString('networkDisabled'); | 1050 var subtitle = loadTimeData.getString('networkDisabled'); |
| 1051 var icon = (type == 'Wimax') ? 'Cellular' : type; | |
| 1030 var enableNetwork = function() { | 1052 var enableNetwork = function() { |
| 1031 if (type == 'WiFi') | 1053 if (type == 'WiFi') |
| 1032 sendChromeMetricsAction('Options_NetworkWifiToggle'); | 1054 sendChromeMetricsAction('Options_NetworkWifiToggle'); |
| 1033 chrome.send(command); | 1055 if (type == 'Cellular') { |
| 1056 if (cellularSimLockType_) { | |
| 1057 chrome.send('simOperation', ['unlock']); | |
| 1058 return; | |
| 1059 } else if (cellularEnabled_ && cellularSimAbsent_) { | |
| 1060 chrome.send('simOperation', ['configure']); | |
| 1061 return; | |
| 1062 } | |
| 1063 } | |
| 1064 // TODO(stevenjb): chrome.networkingPrivate.enableNetworkType | |
| 1065 chrome.send('enableNetworkType', [type]); | |
| 1034 }; | 1066 }; |
| 1035 var networkList = $('network-list'); | 1067 $('network-list').update({key: type, |
| 1036 networkList.update({key: type, | 1068 subtitle: subtitle, |
| 1037 subtitle: subtitle, | 1069 iconType: icon, |
| 1038 iconType: icon, | 1070 command: enableNetwork}); |
| 1039 command: enableNetwork}); | |
| 1040 } | 1071 } |
| 1041 | 1072 |
| 1042 /** | 1073 /** |
| 1043 * Element for indicating a policy managed network. | 1074 * Element for indicating a policy managed network. |
| 1044 * @constructor | 1075 * @constructor |
| 1045 * @extends {options.ControlledSettingIndicator} | 1076 * @extends {options.ControlledSettingIndicator} |
| 1046 */ | 1077 */ |
| 1047 function ManagedNetworkIndicator() { | 1078 function ManagedNetworkIndicator() { |
| 1048 var el = cr.doc.createElement('span'); | 1079 var el = cr.doc.createElement('span'); |
| 1049 el.__proto__ = ManagedNetworkIndicator.prototype; | 1080 el.__proto__ = ManagedNetworkIndicator.prototype; |
| (...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1172 /** | 1203 /** |
| 1173 * Whether the Network list is disabled. Only used for display purpose. | 1204 * Whether the Network list is disabled. Only used for display purpose. |
| 1174 */ | 1205 */ |
| 1175 cr.defineProperty(NetworkList, 'disabled', cr.PropertyKind.BOOL_ATTR); | 1206 cr.defineProperty(NetworkList, 'disabled', cr.PropertyKind.BOOL_ATTR); |
| 1176 | 1207 |
| 1177 // Export | 1208 // Export |
| 1178 return { | 1209 return { |
| 1179 NetworkList: NetworkList | 1210 NetworkList: NetworkList |
| 1180 }; | 1211 }; |
| 1181 }); | 1212 }); |
| OLD | NEW |