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

Unified Diff: chrome/browser/resources/settings/privacy_page/privacy_page.js

Issue 2684853003: MD Settings: change how tap is handled on custom toggle rows (Closed)
Patch Set: todo Created 3 years, 10 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
Index: chrome/browser/resources/settings/privacy_page/privacy_page.js
diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.js b/chrome/browser/resources/settings/privacy_page/privacy_page.js
index d1cb9f9d5a4e3e7f68905d128024b8261f624813..d1fb6d9e9510026b27dcad95b891a2c36abee11a 100644
--- a/chrome/browser/resources/settings/privacy_page/privacy_page.js
+++ b/chrome/browser/resources/settings/privacy_page/privacy_page.js
@@ -32,14 +32,28 @@ Polymer({
pageVisibility: Object,
// <if expr="_google_chrome and not chromeos">
- /** @type {MetricsReporting} */
- metricsReporting_: Object,
+ // TODO(dbeam): make a virtual.* pref namespace and set/get this normally
+ // (but handled differently in C++).
+ /** @private {chrome.settingsPrivate.PrefObject} */
+ metricsReportingPref_: {
+ type: Object,
+ value: function() {
+ // TODO(dbeam): this is basically only to appease PrefControlBehavior.
+ // Maybe add a no-validate attribute instead? This makes little sense.
+ return /** @type {chrome.settingsPrivate.PrefObject} */({});
+ },
+ },
showRestart_: Boolean,
// </if>
- /** @private */
- safeBrowsingExtendedReportingEnabled_: Boolean,
+ /** @private {chrome.settingsPrivate.PrefObject} */
+ safeBrowsingExtendedReportingPref_: {
+ type: Object,
+ value: function() {
+ return /** @type {chrome.settingsPrivate.PrefObject} */({});
+ },
+ },
/** @private */
showClearBrowsingDataDialog_: Boolean,
@@ -48,19 +62,17 @@ Polymer({
ready: function() {
this.ContentSettingsTypes = settings.ContentSettingsTypes;
-// <if expr="_google_chrome and not chromeos">
- var boundSetMetricsReporting = this.setMetricsReporting_.bind(this);
- this.addWebUIListener('metrics-reporting-change', boundSetMetricsReporting);
+ this.browserProxy_ = settings.PrivacyPageBrowserProxyImpl.getInstance();
- var browserProxy = settings.PrivacyPageBrowserProxyImpl.getInstance();
- browserProxy.getMetricsReporting().then(boundSetMetricsReporting);
+// <if expr="_google_chrome and not chromeos">
+ var setMetricsReportingPref = this.setMetricsReportingPref_.bind(this);
+ this.addWebUIListener('metrics-reporting-change', setMetricsReportingPref);
+ this.browserProxy_.getMetricsReporting().then(setMetricsReportingPref);
// </if>
- var boundSetSber = this.setSafeBrowsingExtendedReporting_.bind(this);
- this.addWebUIListener('safe-browsing-extended-reporting-change',
- boundSetSber);
- settings.PrivacyPageBrowserProxyImpl.getInstance()
- .getSafeBrowsingExtendedReporting().then(boundSetSber);
+ var setSber = this.setSafeBrowsingExtendedReporting_.bind(this);
+ this.addWebUIListener('safe-browsing-extended-reporting-change', setSber);
+ this.browserProxy_.getSafeBrowsingExtendedReporting().then(setSber);
},
/** @protected */
@@ -75,8 +87,7 @@ Polymer({
settings.navigateTo(settings.Route.CERTIFICATES);
// </if>
// <if expr="is_win or is_macosx">
- settings.PrivacyPageBrowserProxyImpl.getInstance().
- showManageSSLCertificates();
+ this.browserProxy_.showManageSSLCertificates();
// </if>
},
@@ -112,48 +123,67 @@ Polymer({
'https://support.google.com/chrome/?p=settings_manage_exceptions');
},
+ /** @private */
+ onSberChange_: function() {
+ var enabled = this.$.safeBrowsingExtendedReportingControl.checked;
+ this.browserProxy_.setSafeBrowsingExtendedReportingEnabled(enabled);
+ },
+
// <if expr="_google_chrome and not chromeos">
/** @private */
- onMetricsReportingControlTap_: function() {
- var browserProxy = settings.PrivacyPageBrowserProxyImpl.getInstance();
+ onMetricsReportingChange_: function() {
var enabled = this.$.metricsReportingControl.checked;
- browserProxy.setMetricsReportingEnabled(enabled);
+ this.browserProxy_.setMetricsReportingEnabled(enabled);
},
/**
* @param {!MetricsReporting} metricsReporting
* @private
*/
- setMetricsReporting_: function(metricsReporting) {
+ setMetricsReportingPref_: function(metricsReporting) {
+ var hadPreviousPref = this.metricsReportingPref_.value !== undefined;
+ var pref = {
+ key: '',
+ type: chrome.settingsPrivate.PrefType.BOOLEAN,
+ value: metricsReporting.enabled,
+ };
+ if (metricsReporting.managed) {
+ pref.enforcement = chrome.settingsPrivate.Enforcement.ENFORCED;
+ pref.controlledBy = chrome.settingsPrivate.ControlledBy.USER_POLICY;
+ }
+
+ // Ignore the next change because it will happen when we set the pref.
+ this.metricsReportingPref_ = pref;
+
// TODO(dbeam): remember whether metrics reporting was enabled when Chrome
// started.
- if (metricsReporting.managed) {
+ if (metricsReporting.managed)
this.showRestart_ = false;
- } else if (this.metricsReporting_ &&
- metricsReporting.enabled != this.metricsReporting_.enabled) {
+ else if (hadPreviousPref)
this.showRestart_ = true;
- }
- this.metricsReporting_ = metricsReporting;
},
- /** @private */
- onRestartTap_: function() {
+ /**
+ * @param {Event} e
+ * @private
+ */
+ onRestartTap_: function(e) {
+ e.stopPropagation();
settings.LifetimeBrowserProxyImpl.getInstance().restart();
},
// </if>
- /** @private */
- onSafeBrowsingExtendedReportingControlTap_: function() {
- var browserProxy = settings.PrivacyPageBrowserProxyImpl.getInstance();
- var enabled = this.$.safeBrowsingExtendedReportingControl.checked;
- browserProxy.setSafeBrowsingExtendedReportingEnabled(enabled);
- },
-
- /** @param {boolean} enabled Whether reporting is enabled or not.
- * @private
- */
+ /**
+ * @param {boolean} enabled Whether reporting is enabled or not.
+ * @private
+ */
setSafeBrowsingExtendedReporting_: function(enabled) {
- this.safeBrowsingExtendedReportingEnabled_ = enabled;
+ // Ignore the next change because it will happen when we set the pref.
+ this.safeBrowsingExtendedReportingPref_ = {
+ key: '',
+ type: chrome.settingsPrivate.PrefType.BOOLEAN,
+ value: enabled,
+ };
},
/**

Powered by Google App Engine
This is Rietveld 408576698