Bug 1956105 - Propagate data upload pref changes between profiles in a group. r=profiles-reviewers,settings-reviewers,mossop
Add a pref that we overlooked in the original patch (bug 1933264). Differential Revision: https://phabricator.services.mozilla.com/D242863
This commit is contained in:
@@ -1190,11 +1190,15 @@ var gPrivacyPane = {
|
|||||||
this.initDataCollection();
|
this.initDataCollection();
|
||||||
|
|
||||||
if (AppConstants.MOZ_DATA_REPORTING) {
|
if (AppConstants.MOZ_DATA_REPORTING) {
|
||||||
this.initSubmitHealthReport();
|
this.updateSubmitHealthReportFromPref();
|
||||||
|
Preferences.get(PREF_UPLOAD_ENABLED).on(
|
||||||
|
"change",
|
||||||
|
gPrivacyPane.updateSubmitHealthReportFromPref
|
||||||
|
);
|
||||||
setEventListener(
|
setEventListener(
|
||||||
"submitHealthReportBox",
|
"submitHealthReportBox",
|
||||||
"command",
|
"command",
|
||||||
gPrivacyPane.updateSubmitHealthReport
|
gPrivacyPane.updateSubmitHealthReportToPref
|
||||||
);
|
);
|
||||||
if (AppConstants.MOZ_NORMANDY) {
|
if (AppConstants.MOZ_NORMANDY) {
|
||||||
this.initOptOutStudyCheckbox();
|
this.initOptOutStudyCheckbox();
|
||||||
@@ -3414,10 +3418,11 @@ var gPrivacyPane = {
|
|||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Initialize the health report service reference and checkbox.
|
* Update the health report service checkbox from preference.
|
||||||
*/
|
*/
|
||||||
initSubmitHealthReport() {
|
updateSubmitHealthReportFromPref() {
|
||||||
let checkbox = document.getElementById("submitHealthReportBox");
|
let checkbox = document.getElementById("submitHealthReportBox");
|
||||||
|
let telemetryContainer = document.getElementById("telemetry-container");
|
||||||
|
|
||||||
// Telemetry is only sending data if MOZ_TELEMETRY_REPORTING is defined.
|
// Telemetry is only sending data if MOZ_TELEMETRY_REPORTING is defined.
|
||||||
// We still want to display the preferences panel if that's not the case, but
|
// We still want to display the preferences panel if that's not the case, but
|
||||||
@@ -3433,12 +3438,13 @@ var gPrivacyPane = {
|
|||||||
checkbox.checked =
|
checkbox.checked =
|
||||||
Services.prefs.getBoolPref(PREF_UPLOAD_ENABLED) &&
|
Services.prefs.getBoolPref(PREF_UPLOAD_ENABLED) &&
|
||||||
AppConstants.MOZ_TELEMETRY_REPORTING;
|
AppConstants.MOZ_TELEMETRY_REPORTING;
|
||||||
|
telemetryContainer.hidden = checkbox.checked;
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Update the health report preference with state from checkbox.
|
* Update the health report preference with state from checkbox.
|
||||||
*/
|
*/
|
||||||
updateSubmitHealthReport() {
|
updateSubmitHealthReportToPref() {
|
||||||
let checkbox = document.getElementById("submitHealthReportBox");
|
let checkbox = document.getElementById("submitHealthReportBox");
|
||||||
let telemetryContainer = document.getElementById("telemetry-container");
|
let telemetryContainer = document.getElementById("telemetry-container");
|
||||||
|
|
||||||
|
|||||||
@@ -196,6 +196,8 @@ skip-if = ["true"]
|
|||||||
|
|
||||||
["browser_privacy_syncDataClearing_v2.js"]
|
["browser_privacy_syncDataClearing_v2.js"]
|
||||||
|
|
||||||
|
["browser_privacy_uploadEnabled.js"]
|
||||||
|
|
||||||
["browser_privacypane_2.js"]
|
["browser_privacypane_2.js"]
|
||||||
|
|
||||||
["browser_privacypane_3.js"]
|
["browser_privacypane_3.js"]
|
||||||
|
|||||||
@@ -0,0 +1,41 @@
|
|||||||
|
/* Any copyright is dedicated to the Public Domain.
|
||||||
|
* http://creativecommons.org/publicdomain/zero/1.0/ */
|
||||||
|
|
||||||
|
// Tests the submitHealthReportBox checkbox is automatically updated when the
|
||||||
|
// corresponding datareporting.healthreport.uploadEnabled pref is changed.
|
||||||
|
|
||||||
|
const PREF_UPLOAD_ENABLED = "datareporting.healthreport.uploadEnabled";
|
||||||
|
|
||||||
|
add_task(async function test_updatePageFromPref() {
|
||||||
|
if (!AppConstants.MOZ_TELEMETRY_REPORTING) {
|
||||||
|
ok(true, "Skipping test because telemetry reporting is disabled");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
await SpecialPowers.pushPrefEnv({
|
||||||
|
set: [[PREF_UPLOAD_ENABLED, false]],
|
||||||
|
});
|
||||||
|
|
||||||
|
await openPreferencesViaOpenPreferencesAPI("panePrivacy", {
|
||||||
|
leaveOpen: true,
|
||||||
|
});
|
||||||
|
|
||||||
|
const doc = gBrowser.selectedBrowser.contentDocument;
|
||||||
|
const checkbox = doc.getElementById("submitHealthReportBox");
|
||||||
|
Assert.ok(!checkbox.checked, "checkbox should match pref state on page load");
|
||||||
|
|
||||||
|
await SpecialPowers.pushPrefEnv({
|
||||||
|
set: [[PREF_UPLOAD_ENABLED, true]],
|
||||||
|
});
|
||||||
|
|
||||||
|
let checkboxUpdated = BrowserTestUtils.waitForMutationCondition(
|
||||||
|
checkbox,
|
||||||
|
{ attributeFilter: ["checked"] },
|
||||||
|
() => checkbox.checked
|
||||||
|
);
|
||||||
|
await checkboxUpdated;
|
||||||
|
|
||||||
|
Assert.ok(checkbox.checked, "pref change should trigger checkbox update");
|
||||||
|
|
||||||
|
BrowserTestUtils.removeTab(gBrowser.selectedTab);
|
||||||
|
});
|
||||||
@@ -113,6 +113,7 @@ class SelectableProfileServiceClass extends EventEmitter {
|
|||||||
"browser.crashReports.unsubmittedCheck.autoSubmit2",
|
"browser.crashReports.unsubmittedCheck.autoSubmit2",
|
||||||
"browser.discovery.enabled",
|
"browser.discovery.enabled",
|
||||||
"browser.urlbar.quicksuggest.dataCollection.enabled",
|
"browser.urlbar.quicksuggest.dataCollection.enabled",
|
||||||
|
"datareporting.healthreport.uploadEnabled",
|
||||||
"datareporting.policy.currentPolicyVersion",
|
"datareporting.policy.currentPolicyVersion",
|
||||||
"datareporting.policy.dataSubmissionEnabled",
|
"datareporting.policy.dataSubmissionEnabled",
|
||||||
"datareporting.policy.dataSubmissionPolicyAcceptedVersion",
|
"datareporting.policy.dataSubmissionPolicyAcceptedVersion",
|
||||||
|
|||||||
Reference in New Issue
Block a user