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

Unified Diff: chrome/browser/resources/options/chromeos/internet_detail.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: Rebase 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | chrome/browser/resources/options/chromeos/network_list.js » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/resources/options/chromeos/internet_detail.js
diff --git a/chrome/browser/resources/options/chromeos/internet_detail.js b/chrome/browser/resources/options/chromeos/internet_detail.js
index 5822463f4cb4fc6374c33cd82ac3944a6064732a..ffd13722c7a369ed6a4674d520e10776898237ab 100644
--- a/chrome/browser/resources/options/chromeos/internet_detail.js
+++ b/chrome/browser/resources/options/chromeos/internet_detail.js
@@ -85,14 +85,47 @@ cr.define('options.internet', function() {
}
/**
+ * @param {string} action An action to send to coreOptionsUserMetricsAction.
+ */
+ function sendChromeMetricsAction(action) {
+ chrome.send('coreOptionsUserMetricsAction', [action]);
+ }
+
+ /**
* Sends the 'checked' state of a control to chrome for a network.
* @param {string} path The service path of the network.
* @param {string} message The message to send to chrome.
- * @param {HTMLInputElement} checkbox The checkbox storing the value to send.
+ * @param {string} checkboxId The id of the checkbox with the value to send.
+ * @param {string=} opt_action Optional action to record.
*/
- function sendCheckedIfEnabled(path, message, checkbox) {
- if (!checkbox.hidden && !checkbox.disabled)
+ function sendCheckedIfEnabled(path, message, checkboxId, opt_action) {
+ var checkbox = assertInstanceof($(checkboxId), HTMLInputElement);
+ if (!checkbox.hidden && !checkbox.disabled) {
chrome.send(message, [path, checkbox.checked ? 'true' : 'false']);
+ if (opt_action)
+ sendChromeMetricsAction(opt_action);
+ }
+ }
+
+ /**
+ * Send metrics to Chrome when the detailed page is opened.
+ * @param {string} type The ONC type of the network being shown.
+ * @param {string} state The ONC network state.
+ */
+ function sendShowDetailsMetrics(type, state) {
+ if (type == 'WiFi') {
+ sendChromeMetricsAction('Options_NetworkShowDetailsWifi');
+ if (state != 'NotConnected')
+ sendChromeMetricsAction('Options_NetworkShowDetailsWifiConnected');
+ } else if (type == 'Cellular') {
+ sendChromeMetricsAction('Options_NetworkShowDetailsCellular');
+ if (state != 'NotConnected')
+ sendChromeMetricsAction('Options_NetworkShowDetailsCellularConnected');
+ } else if (type == 'VPN') {
+ sendChromeMetricsAction('Options_NetworkShowDetailsVPN');
+ if (state != 'NotConnected')
+ sendChromeMetricsAction('Options_NetworkShowDetailsVPNConnected');
+ }
}
/**
@@ -537,8 +570,7 @@ cr.define('options.internet', function() {
!$('proxy-use-pac-url').checked;
$('auto-proxy-parms').hidden = !$('auto-proxy').checked;
$('manual-proxy-parms').hidden = !$('manual-proxy').checked;
- chrome.send('coreOptionsUserMetricsAction',
- ['Options_NetworkManualProxy_Disable']);
+ sendChromeMetricsAction('Options_NetworkManualProxy_Disable');
},
/**
@@ -568,8 +600,7 @@ cr.define('options.internet', function() {
$('proxy-pac-url').disabled = true;
$('auto-proxy-parms').hidden = !$('auto-proxy').checked;
$('manual-proxy-parms').hidden = !$('manual-proxy').checked;
- chrome.send('coreOptionsUserMetricsAction',
- ['Options_NetworkManualProxy_Enable']);
+ sendChromeMetricsAction('Options_NetworkManualProxy_Enable');
},
/**
@@ -938,8 +969,7 @@ cr.define('options.internet', function() {
updateHidden('#details-internet-page .action-area', true);
detailsPage.updateControls();
detailsPage.visible = true;
- chrome.send('coreOptionsUserMetricsAction',
- ['Options_NetworkShowProxyTab']);
+ sendChromeMetricsAction('Options_NetworkShowProxyTab');
};
/**
@@ -988,6 +1018,10 @@ cr.define('options.internet', function() {
DetailsInternetPage.loginFromDetails = function() {
var detailsPage = DetailsInternetPage.getInstance();
+ if (detailsPage.type_ == 'WiFi')
+ sendChromeMetricsAction('Options_NetworkConnectToWifi');
+ else if (detailsPage.type_ == 'VPN')
+ sendChromeMetricsAction('Options_NetworkConnectToVPN');
chrome.send('networkCommand',
[detailsPage.type_, detailsPage.servicePath_, 'connect']);
PageManager.closeOverlay();
@@ -995,6 +1029,10 @@ cr.define('options.internet', function() {
DetailsInternetPage.disconnectNetwork = function() {
var detailsPage = DetailsInternetPage.getInstance();
+ if (detailsPage.type_ == 'WiFi')
+ sendChromeMetricsAction('Options_NetworkDisconnectWifi');
+ else if (detailsPage.type_ == 'VPN')
+ sendChromeMetricsAction('Options_NetworkDisconnectVPN');
chrome.send('networkCommand',
[detailsPage.type_, detailsPage.servicePath_, 'disconnect']);
PageManager.closeOverlay();
@@ -1021,23 +1059,31 @@ cr.define('options.internet', function() {
var type = detailsPage.type_;
var servicePath = detailsPage.servicePath_;
if (type == 'WiFi') {
- sendCheckedIfEnabled(servicePath, 'setPreferNetwork',
- assertInstanceof($('prefer-network-wifi'), HTMLInputElement));
- sendCheckedIfEnabled(servicePath, 'setAutoConnect',
- assertInstanceof($('auto-connect-network-wifi'), HTMLInputElement));
+ sendCheckedIfEnabled(servicePath,
+ 'setPreferNetwork',
+ 'prefer-network-wifi',
+ 'Options_NetworkSetPrefer');
+ sendCheckedIfEnabled(servicePath,
+ 'setAutoConnect',
+ 'auto-connect-network-wifi',
+ 'Options_NetworkAutoConnect');
} else if (type == 'Wimax') {
- sendCheckedIfEnabled(servicePath, 'setAutoConnect',
- assertInstanceof($('auto-connect-network-wimax'), HTMLInputElement));
+ sendCheckedIfEnabled(servicePath,
+ 'setAutoConnect',
+ 'auto-connect-network-wimax',
+ 'Options_NetworkAutoConnect');
} else if (type == 'Cellular') {
- sendCheckedIfEnabled(servicePath, 'setAutoConnect',
- assertInstanceof($('auto-connect-network-cellular'),
- HTMLInputElement));
+ sendCheckedIfEnabled(servicePath,
+ 'setAutoConnect',
+ 'auto-connect-network-cellular',
+ 'Options_NetworkAutoConnect');
} else if (type == 'VPN') {
chrome.send('setServerHostname',
- [servicePath,
- $('inet-server-hostname').value]);
- sendCheckedIfEnabled(servicePath, 'setAutoConnect',
- assertInstanceof($('auto-connect-network-vpn'), HTMLInputElement));
+ [servicePath, $('inet-server-hostname').value]);
+ sendCheckedIfEnabled(servicePath,
+ 'setAutoConnect',
+ 'auto-connect-network-vpn',
+ 'Options_NetworkAutoConnect');
}
var nameServerTypes = ['automatic', 'google', 'user'];
@@ -1132,6 +1178,8 @@ cr.define('options.internet', function() {
detailsPage.type_ = type;
detailsPage.servicePath_ = data.servicePath;
+ sendShowDetailsMetrics(type, onc.getActiveValue('ConnectionState'));
+
detailsPage.populateHeader_();
detailsPage.updateConnectionButtonVisibilty_();
detailsPage.updateDetails_(data);
« no previous file with comments | « no previous file | chrome/browser/resources/options/chromeos/network_list.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698