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

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

Issue 570743002: Move network settings metrics to JS (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@issue_279351_internet_options_10b
Patch Set: 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 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 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
109 function NetworkListItem(data) { 109 function NetworkListItem(data) {
110 var el = cr.doc.createElement('li'); 110 var el = cr.doc.createElement('li');
111 el.data_ = {}; 111 el.data_ = {};
112 for (var key in data) 112 for (var key in data)
113 el.data_[key] = data[key]; 113 el.data_[key] = data[key];
114 NetworkListItem.decorate(el); 114 NetworkListItem.decorate(el);
115 return el; 115 return el;
116 } 116 }
117 117
118 /** 118 /**
119 * @param {string} action An action to send to coreOptionsUserMetricsAction.
120 */
121 function sendChromeMetricsAction(action) {
122 chrome.send('coreOptionsUserMetricsAction', [action]);
123 }
124
125 /**
119 * Decorate an element as a NetworkListItem. 126 * Decorate an element as a NetworkListItem.
120 * @param {!Element} el The element to decorate. 127 * @param {!Element} el The element to decorate.
121 */ 128 */
122 NetworkListItem.decorate = function(el) { 129 NetworkListItem.decorate = function(el) {
123 el.__proto__ = NetworkListItem.prototype; 130 el.__proto__ = NetworkListItem.prototype;
124 el.decorate(); 131 el.decorate();
125 }; 132 };
126 133
127 NetworkListItem.prototype = { 134 NetworkListItem.prototype = {
128 __proto__: ListItem.prototype, 135 __proto__: ListItem.prototype,
(...skipping 303 matching lines...) Expand 10 before | Expand all | Expand 10 after
432 * @return {Element} The newly created menu. 439 * @return {Element} The newly created menu.
433 */ 440 */
434 createMenu: function() { 441 createMenu: function() {
435 var menu = this.ownerDocument.createElement('div'); 442 var menu = this.ownerDocument.createElement('div');
436 menu.id = this.getMenuName(); 443 menu.id = this.getMenuName();
437 menu.className = 'network-menu'; 444 menu.className = 'network-menu';
438 menu.hidden = true; 445 menu.hidden = true;
439 Menu.decorate(menu); 446 Menu.decorate(menu);
440 var addendum = []; 447 var addendum = [];
441 if (this.data_.key == 'WiFi') { 448 if (this.data_.key == 'WiFi') {
442 addendum.push({label: loadTimeData.getString('joinOtherNetwork'), 449 addendum.push({
443 command: 'add', 450 label: loadTimeData.getString('joinOtherNetwork'),
444 data: {Type: 'WiFi', servicePath: ''}}); 451 command: createAddConnectionCallback_('WiFi'),
452 data: {}
453 });
445 } else if (this.data_.key == 'Cellular') { 454 } else if (this.data_.key == 'Cellular') {
446 if (cellularEnabled_ && cellularSupportsScan_) { 455 if (cellularEnabled_ && cellularSupportsScan_) {
447 entry = { 456 addendum.push({
448 label: loadTimeData.getString('otherCellularNetworks'), 457 label: loadTimeData.getString('otherCellularNetworks'),
449 command: createAddConnectionCallback_('Cellular'), 458 command: createAddConnectionCallback_('Cellular'),
450 addClass: ['other-cellulars'], 459 addClass: ['other-cellulars'],
451 data: {} 460 data: {}
452 }; 461 });
453 addendum.push(entry);
454 } 462 }
455 463
456 var label = enableDataRoaming_ ? 'disableDataRoaming' : 464 var label = enableDataRoaming_ ? 'disableDataRoaming' :
457 'enableDataRoaming'; 465 'enableDataRoaming';
458 var disabled = !loadTimeData.getValue('loggedInAsOwner'); 466 var disabled = !loadTimeData.getValue('loggedInAsOwner');
459 var entry = {label: loadTimeData.getString(label), 467 var entry = {label: loadTimeData.getString(label),
460 data: {}}; 468 data: {}};
461 if (disabled) { 469 if (disabled) {
462 entry.command = null; 470 entry.command = null;
463 entry.tooltip = 471 entry.tooltip =
(...skipping 10 matching lines...) Expand all
474 } 482 }
475 addendum.push(entry); 483 addendum.push(entry);
476 } 484 }
477 var list = this.data.rememberedNetworks; 485 var list = this.data.rememberedNetworks;
478 if (list && list.length > 0) { 486 if (list && list.length > 0) {
479 var callback = function(list) { 487 var callback = function(list) {
480 $('remembered-network-list').clear(); 488 $('remembered-network-list').clear();
481 var dialog = options.PreferredNetworks.getInstance(); 489 var dialog = options.PreferredNetworks.getInstance();
482 PageManager.showPageByName('preferredNetworksPage', false); 490 PageManager.showPageByName('preferredNetworksPage', false);
483 dialog.update(list); 491 dialog.update(list);
484 chrome.send('coreOptionsUserMetricsAction', 492 sendChromeMetricsAction('Options_NetworkShowPreferred');
485 ['Options_NetworkShowPreferred']);
486 }; 493 };
487 addendum.push({label: loadTimeData.getString('preferredNetworks'), 494 addendum.push({label: loadTimeData.getString('preferredNetworks'),
488 command: callback, 495 command: callback,
489 data: list}); 496 data: list});
490 } 497 }
491 498
492 var networkGroup = this.ownerDocument.createElement('div'); 499 var networkGroup = this.ownerDocument.createElement('div');
493 networkGroup.className = 'network-menu-group'; 500 networkGroup.className = 'network-menu-group';
494 list = this.data.networkList; 501 list = this.data.networkList;
495 var empty = !list || list.length == 0; 502 var empty = !list || list.length == 0;
496 if (list) { 503 if (list) {
497 for (var i = 0; i < list.length; i++) { 504 for (var i = 0; i < list.length; i++) {
498 var data = list[i]; 505 var data = list[i];
499 this.createNetworkOptionsCallback_(networkGroup, data); 506 this.createNetworkOptionsCallback_(networkGroup, data);
500 if (data.ConnectionState == 'Connected') { 507 if (data.ConnectionState == 'Connected') {
501 if (data.Type == 'VPN') { 508 if (data.Type == 'VPN') {
509 var disconnectCallback = function() {
510 sendChromeMetricsAction('Options_NetworkDisconnectVPN');
511 chrome.send('networkCommand',
512 ['VPN', data.servicePath, 'disconnect']);
513 };
502 // Add separator 514 // Add separator
503 addendum.push({}); 515 addendum.push({});
504 var i18nKey = 'disconnectNetwork'; 516 addendum.push({label: loadTimeData.getString('disconnectNetwork'),
505 addendum.push({label: loadTimeData.getString(i18nKey), 517 command: disconnectCallback,
506 command: 'disconnect',
507 data: data}); 518 data: data});
508 } 519 }
509 } 520 }
510 } 521 }
511 } 522 }
512 if (this.data_.key == 'WiFi' || this.data_.key == 'Wimax' || 523 if (this.data_.key == 'WiFi' || this.data_.key == 'Wimax' ||
513 this.data_.key == 'Cellular') { 524 this.data_.key == 'Cellular') {
514 addendum.push({}); 525 addendum.push({});
515 if (this.data_.key == 'WiFi') { 526 if (this.data_.key == 'WiFi') {
516 addendum.push({label: loadTimeData.getString('turnOffWifi'), 527 addendum.push({label: loadTimeData.getString('turnOffWifi'),
517 command: function() { 528 command: function() {
529 sendChromeMetricsAction('Options_NetworkWifiToggle');
518 chrome.send('disableWifi'); 530 chrome.send('disableWifi');
519 }, 531 },
520 data: {}}); 532 data: {}});
521 } else if (this.data_.key == 'Wimax') { 533 } else if (this.data_.key == 'Wimax') {
522 addendum.push({label: loadTimeData.getString('turnOffWimax'), 534 addendum.push({label: loadTimeData.getString('turnOffWimax'),
523 command: function() { 535 command: function() {
524 chrome.send('disableWimax'); 536 chrome.send('disableWimax');
525 }, 537 },
526 data: {}}); 538 data: {}});
527 } else if (this.data_.key == 'Cellular') { 539 } else if (this.data_.key == 'Cellular') {
(...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after
714 726
715 var buttonLabel = menu.ownerDocument.createElement('span'); 727 var buttonLabel = menu.ownerDocument.createElement('span');
716 buttonLabel.className = 'network-menu-item-label'; 728 buttonLabel.className = 'network-menu-item-label';
717 buttonLabel.textContent = label; 729 buttonLabel.textContent = label;
718 button.appendChild(buttonLabel); 730 button.appendChild(buttonLabel);
719 var callback = null; 731 var callback = null;
720 if (typeof command == 'string') { 732 if (typeof command == 'string') {
721 var type = data.Type; 733 var type = data.Type;
722 var path = data.servicePath; 734 var path = data.servicePath;
723 callback = function() { 735 callback = function() {
724 chrome.send('networkCommand', 736 chrome.send('networkCommand', [type, path, command]);
725 [type, path, command]);
726 closeMenu_(); 737 closeMenu_();
727 }; 738 };
728 } else if (command != null) { 739 } else if (command != null) {
729 if (data) { 740 if (data) {
730 callback = function() { 741 callback = function() {
731 command(data); 742 command(data);
732 closeMenu_(); 743 closeMenu_();
733 }; 744 };
734 } else { 745 } else {
735 callback = function() { 746 callback = function() {
(...skipping 263 matching lines...) Expand 10 before | Expand all | Expand 10 after
999 networkList.endBatchUpdates(); 1010 networkList.endBatchUpdates();
1000 }; 1011 };
1001 1012
1002 /** 1013 /**
1003 * Replaces a network menu with a button for reenabling the type of network. 1014 * Replaces a network menu with a button for reenabling the type of network.
1004 * @param {string} name The type of network (WiFi, Cellular or Wimax). 1015 * @param {string} name The type of network (WiFi, Cellular or Wimax).
1005 * @param {string} command The command for reenabling the network. 1016 * @param {string} command The command for reenabling the network.
1006 * @param {string} icon Type of icon (WiFi or Cellular). 1017 * @param {string} icon Type of icon (WiFi or Cellular).
1007 * @private 1018 * @private
1008 */ 1019 */
1009 function addEnableNetworkButton_(name, command, icon) { 1020 function addEnableNetworkButton_(type, command, icon) {
1010 var subtitle = loadTimeData.getString('networkDisabled'); 1021 var subtitle = loadTimeData.getString('networkDisabled');
1011 var enableNetwork = function() { 1022 var enableNetwork = function() {
1023 if (type == 'WiFi')
1024 sendChromeMetricsAction('Options_NetworkWifiToggle');
1012 chrome.send(command); 1025 chrome.send(command);
1013 }; 1026 };
1014 var networkList = $('network-list'); 1027 var networkList = $('network-list');
1015 networkList.update({key: name, 1028 networkList.update({key: type,
1016 subtitle: subtitle, 1029 subtitle: subtitle,
1017 iconType: icon, 1030 iconType: icon,
1018 command: enableNetwork}); 1031 command: enableNetwork});
1019 } 1032 }
1020 1033
1021 /** 1034 /**
1022 * Element for indicating a policy managed network. 1035 * Element for indicating a policy managed network.
1023 * @constructor 1036 * @constructor
1024 */ 1037 */
1025 function ManagedNetworkIndicator() { 1038 function ManagedNetworkIndicator() {
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
1132 } 1145 }
1133 1146
1134 /** 1147 /**
1135 * Create a callback function that adds a new connection of the given type. 1148 * Create a callback function that adds a new connection of the given type.
1136 * @param {string} type An ONC network type 1149 * @param {string} type An ONC network type
1137 * @return {function()} The created callback. 1150 * @return {function()} The created callback.
1138 * @private 1151 * @private
1139 */ 1152 */
1140 function createAddConnectionCallback_(type) { 1153 function createAddConnectionCallback_(type) {
1141 return function() { 1154 return function() {
1155 if (type == 'WiFi')
1156 sendChromeMetricsAction('Options_NetworkJoinOtherWifi');
1157 else if (type == 'VPN')
1158 sendChromeMetricsAction('Options_NetworkJoinOtherVPN');
1142 chrome.send('networkCommand', [type, '', 'add']); 1159 chrome.send('networkCommand', [type, '', 'add']);
1143 }; 1160 };
1144 } 1161 }
1145 1162
1146 /** 1163 /**
1147 * Whether the Network list is disabled. Only used for display purpose. 1164 * Whether the Network list is disabled. Only used for display purpose.
1148 * @type {boolean} 1165 * @type {boolean}
1149 */ 1166 */
1150 cr.defineProperty(NetworkList, 'disabled', cr.PropertyKind.BOOL_ATTR); 1167 cr.defineProperty(NetworkList, 'disabled', cr.PropertyKind.BOOL_ATTR);
1151 1168
1152 // Export 1169 // Export
1153 return { 1170 return {
1154 NetworkList: NetworkList 1171 NetworkList: NetworkList
1155 }; 1172 };
1156 }); 1173 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698