зеркало из https://github.com/mozilla/gecko-dev.git
Backed out changeset 84d18816918c (bug 1570466) for bc perma failures in browser_protections_report_ui.js on a CLOSED TREE
This commit is contained in:
Родитель
f6e9fb7d0b
Коммит
9df2ccc256
|
@ -77,7 +77,6 @@ h2 {
|
|||
align-items: center;
|
||||
}
|
||||
|
||||
#manage-protections,
|
||||
.card-header > button,
|
||||
#get-proxy-extension-link,
|
||||
#open-about-logins-button,
|
||||
|
@ -101,7 +100,6 @@ h2 {
|
|||
}
|
||||
|
||||
/* We want to hide certain components depending on its state. */
|
||||
#manage-protections,
|
||||
.etp-card .icon.dark,
|
||||
a.hidden,
|
||||
.loading .card-body.hidden,
|
||||
|
@ -182,19 +180,6 @@ a.hidden,
|
|||
color: var(--in-content-deemphasized-text);
|
||||
}
|
||||
|
||||
.custom-not-blocking .content {
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
.etp-card.custom-not-blocking .card-body,
|
||||
.etp-card.custom-not-blocking #protection-details {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.etp-card.custom-not-blocking #manage-protections {
|
||||
display: block;
|
||||
}
|
||||
|
||||
#protection-details {
|
||||
padding-inline-start: 24px;
|
||||
padding-inline-end: 3px;
|
||||
|
@ -685,7 +670,6 @@ label[for="tab-cryptominer"]:hover ~ #highlight-hover {
|
|||
grid-column: 2 / -1;
|
||||
}
|
||||
|
||||
#manage-protections,
|
||||
#sign-up-for-monitor-link,
|
||||
#get-proxy-extension-link {
|
||||
-moz-appearance: button;
|
||||
|
@ -696,19 +680,16 @@ label[for="tab-cryptominer"]:hover ~ #highlight-hover {
|
|||
color: #fff;
|
||||
}
|
||||
|
||||
#manage-protections:active,
|
||||
#sign-up-for-monitor-link:active,
|
||||
#get-proxy-extension-link:active {
|
||||
background-color: var(--blue-80) !important;
|
||||
}
|
||||
|
||||
#manage-protections:hover,
|
||||
#sign-up-for-monitor-link:hover,
|
||||
#get-proxy-extension-link:hover {
|
||||
background-color: var(--blue-70);
|
||||
}
|
||||
|
||||
##manage-protections:focus,
|
||||
#sign-up-for-monitor-link:focus,
|
||||
#get-proxy-extension-link:focus {
|
||||
box-shadow: 0 0 0 1px #0a84ff inset, 0 0 0 1px #0a84ff, 0 0 0 4px rgba(10, 132, 255, 0.3);
|
||||
|
|
|
@ -30,13 +30,10 @@
|
|||
<div class="card-header">
|
||||
<img class="icon light" src="chrome://browser/content/logos/tracking-protection.svg"/>
|
||||
<img class="icon dark" src="chrome://browser/content/logos/tracking-protection-dark-theme.svg"/>
|
||||
<div class="wrapper">
|
||||
<div>
|
||||
<h2 class="card-title" data-l10n-id="etp-card-title"></h2>
|
||||
<p id="etp-card-content" class="content" data-l10n-id="etp-card-content"></p>
|
||||
<p id="protection-details" role="link" tabindex="0"></p>
|
||||
</div>
|
||||
<a target="_blank" id="manage-protections" data-l10n-id="protection-report-manage-protections"></a>
|
||||
<div>
|
||||
<h2 class="card-title" data-l10n-id="etp-card-title"></h2>
|
||||
<p class="content" data-l10n-id="etp-card-content"></p>
|
||||
<p id="protection-details" role="link" tabindex="0"></p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
|
|
|
@ -29,7 +29,6 @@ document.addEventListener("DOMContentLoaded", e => {
|
|||
];
|
||||
|
||||
let protectionDetails = document.getElementById("protection-details");
|
||||
let manageProtections = document.getElementById("manage-protections");
|
||||
let protectionDetailsEvtHandler = evt => {
|
||||
if (evt.keyCode == evt.DOM_VK_RETURN || evt.type == "click") {
|
||||
RPMSendAsyncMessage("OpenContentBlockingPreferences");
|
||||
|
@ -37,8 +36,6 @@ document.addEventListener("DOMContentLoaded", e => {
|
|||
};
|
||||
protectionDetails.addEventListener("click", protectionDetailsEvtHandler);
|
||||
protectionDetails.addEventListener("keypress", protectionDetailsEvtHandler);
|
||||
manageProtections.addEventListener("click", protectionDetailsEvtHandler);
|
||||
manageProtections.addEventListener("keypress", protectionDetailsEvtHandler);
|
||||
|
||||
let cbCategory = RPMGetStringPref("browser.contentblocking.category");
|
||||
if (cbCategory == "custom") {
|
||||
|
@ -208,48 +205,9 @@ document.addEventListener("DOMContentLoaded", e => {
|
|||
});
|
||||
}
|
||||
|
||||
let blockingCookies =
|
||||
RPMGetIntPref("network.cookie.cookieBehavior", 0) != 0;
|
||||
let cryptominingEnabled = RPMGetBoolPref(
|
||||
"privacy.trackingprotection.cryptomining.enabled",
|
||||
false
|
||||
);
|
||||
let fingerprintingEnabled = RPMGetBoolPref(
|
||||
"privacy.trackingprotection.fingerprinting.enabled",
|
||||
false
|
||||
);
|
||||
let tpEnabled = RPMGetBoolPref("privacy.trackingprotection.enabled", false);
|
||||
let socialTracking = RPMGetBoolPref(
|
||||
"privacy.trackingprotection.socialtracking.enabled",
|
||||
false
|
||||
);
|
||||
let socialCookies = RPMGetBoolPref(
|
||||
"privacy.socialtracking.block_cookies.enabled",
|
||||
false
|
||||
);
|
||||
let socialEnabled =
|
||||
socialCookies && (blockingCookies || (tpEnabled && socialTracking));
|
||||
let notBlocking =
|
||||
!blockingCookies &&
|
||||
!cryptominingEnabled &&
|
||||
!fingerprintingEnabled &&
|
||||
!tpEnabled &&
|
||||
!socialEnabled;
|
||||
|
||||
// User has turned off all blocking, show a different card.
|
||||
if (notBlocking) {
|
||||
document
|
||||
.getElementById("etp-card-content")
|
||||
.setAttribute(
|
||||
"data-l10n-id",
|
||||
"protection-report-etp-card-content-custom-not-blocking"
|
||||
);
|
||||
document.querySelector(".etp-card").classList.add("custom-not-blocking");
|
||||
}
|
||||
|
||||
// Hide each type of tab if the user has no recorded
|
||||
// trackers of that type blocked and blocking of that type is off.
|
||||
if (weekTypeCounts.tracker == 0 && !tpEnabled) {
|
||||
// Hide the trackers tab if the user is in standard and
|
||||
// has no recorded trackers blocked.
|
||||
if (weekTypeCounts.tracker == 0 && cbCategory == "standard") {
|
||||
legend.style.gridTemplateAreas = legend.style.gridTemplateAreas.replace(
|
||||
"tracker",
|
||||
""
|
||||
|
@ -258,6 +216,11 @@ document.addEventListener("DOMContentLoaded", e => {
|
|||
radio.setAttribute("disabled", true);
|
||||
document.querySelector("#tab-tracker ~ label").style.display = "none";
|
||||
}
|
||||
let socialEnabled = RPMGetBoolPref(
|
||||
"privacy.socialtracking.block_cookies.enabled",
|
||||
false
|
||||
);
|
||||
|
||||
if (weekTypeCounts.social == 0 && !socialEnabled) {
|
||||
legend.style.gridTemplateAreas = legend.style.gridTemplateAreas.replace(
|
||||
"social",
|
||||
|
@ -267,34 +230,6 @@ document.addEventListener("DOMContentLoaded", e => {
|
|||
radio.setAttribute("disabled", true);
|
||||
document.querySelector("#tab-social ~ label").style.display = "none";
|
||||
}
|
||||
if (weekTypeCounts.cookie == 0 && !blockingCookies) {
|
||||
legend.style.gridTemplateAreas = legend.style.gridTemplateAreas.replace(
|
||||
"cookie",
|
||||
""
|
||||
);
|
||||
let radio = document.getElementById("tab-cookie");
|
||||
radio.setAttribute("disabled", true);
|
||||
document.querySelector("#tab-cookie ~ label").style.display = "none";
|
||||
}
|
||||
if (weekTypeCounts.cryptominer == 0 && !cryptominingEnabled) {
|
||||
legend.style.gridTemplateAreas = legend.style.gridTemplateAreas.replace(
|
||||
"cryptominer",
|
||||
""
|
||||
);
|
||||
let radio = document.getElementById("tab-cryptominer");
|
||||
radio.setAttribute("disabled", true);
|
||||
document.querySelector("#tab-cryptominer ~ label").style.display = "none";
|
||||
}
|
||||
if (weekTypeCounts.fingerprinter == 0 && !fingerprintingEnabled) {
|
||||
legend.style.gridTemplateAreas = legend.style.gridTemplateAreas.replace(
|
||||
"fingerprinter",
|
||||
""
|
||||
);
|
||||
let radio = document.getElementById("tab-fingerprinter");
|
||||
radio.setAttribute("disabled", true);
|
||||
document.querySelector("#tab-fingerprinter ~ label").style.display =
|
||||
"none";
|
||||
}
|
||||
|
||||
let firstRadio = document.querySelector("input:not(:disabled)");
|
||||
firstRadio.checked = true;
|
||||
|
|
|
@ -177,7 +177,7 @@ add_task(async function test_graph_display() {
|
|||
url: "about:protections",
|
||||
gBrowser,
|
||||
});
|
||||
await SpecialPowers.spawn(tab.linkedBrowser, [], async function() {
|
||||
await ContentTask.spawn(tab.linkedBrowser, {}, async function() {
|
||||
const DATA_TYPES = [
|
||||
"cryptominer",
|
||||
"fingerprinter",
|
||||
|
@ -191,21 +191,21 @@ add_task(async function test_graph_display() {
|
|||
return allBars.length;
|
||||
}, "The graph has been built");
|
||||
|
||||
Assert.equal(allBars.length, 7, "7 bars have been found on the graph");
|
||||
is(allBars.length, 7, "7 bars have been found on the graph");
|
||||
|
||||
// For accessibility, test if the graph is a table
|
||||
// and has a correct column count (number of data types + total + day)
|
||||
Assert.equal(
|
||||
is(
|
||||
content.document.getElementById("graph").getAttribute("role"),
|
||||
"table",
|
||||
"Graph is an accessible table"
|
||||
);
|
||||
Assert.equal(
|
||||
is(
|
||||
content.document.getElementById("graph").getAttribute("aria-colcount"),
|
||||
DATA_TYPES.length + 2,
|
||||
"Table has the right number of columns"
|
||||
);
|
||||
Assert.equal(
|
||||
is(
|
||||
content.document.getElementById("graph").getAttribute("aria-labelledby"),
|
||||
"graphLegendDescription",
|
||||
"Table has an accessible label"
|
||||
|
@ -218,211 +218,204 @@ add_task(async function test_graph_display() {
|
|||
// 4 days ago will have no trackers
|
||||
// 5 days ago will have no social (when we add social)
|
||||
// 6 days ago will be empty
|
||||
Assert.equal(
|
||||
is(
|
||||
allBars[6].querySelectorAll(".inner-bar").length,
|
||||
DATA_TYPES.length,
|
||||
"today has all of the data types shown"
|
||||
);
|
||||
Assert.equal(
|
||||
allBars[6].getAttribute("role"),
|
||||
"row",
|
||||
"Today has the correct role"
|
||||
);
|
||||
Assert.equal(
|
||||
is(allBars[6].getAttribute("role"), "row", "Today has the correct role");
|
||||
is(
|
||||
allBars[6].getAttribute("aria-owns"),
|
||||
"day0 count0 cryptominer0 fingerprinter0 tracker0 cookie0 social0",
|
||||
"Row has the columns in the right order"
|
||||
);
|
||||
Assert.equal(
|
||||
is(
|
||||
allBars[6].querySelector(".tracker-bar").style.height,
|
||||
"10%",
|
||||
"trackers take 10%"
|
||||
);
|
||||
Assert.equal(
|
||||
is(
|
||||
allBars[6].querySelector(".tracker-bar").parentNode.getAttribute("role"),
|
||||
"cell",
|
||||
"Trackers have the correct role"
|
||||
);
|
||||
Assert.equal(
|
||||
is(
|
||||
allBars[6].querySelector(".tracker-bar").getAttribute("role"),
|
||||
"img",
|
||||
"Tracker bar has the correct image role"
|
||||
);
|
||||
Assert.equal(
|
||||
is(
|
||||
allBars[6].querySelector(".tracker-bar").getAttribute("aria-label"),
|
||||
"1 tracking content (10%)",
|
||||
"Trackers have the correct accessible text"
|
||||
);
|
||||
Assert.equal(
|
||||
is(
|
||||
allBars[6].querySelector(".cryptominer-bar").style.height,
|
||||
"20%",
|
||||
"cryptominers take 20%"
|
||||
);
|
||||
Assert.equal(
|
||||
is(
|
||||
allBars[6]
|
||||
.querySelector(".cryptominer-bar")
|
||||
.parentNode.getAttribute("role"),
|
||||
"cell",
|
||||
"Cryptominers have the correct role"
|
||||
);
|
||||
Assert.equal(
|
||||
is(
|
||||
allBars[6].querySelector(".cryptominer-bar").getAttribute("role"),
|
||||
"img",
|
||||
"Cryptominer bar has the correct image role"
|
||||
);
|
||||
Assert.equal(
|
||||
is(
|
||||
allBars[6].querySelector(".cryptominer-bar").getAttribute("aria-label"),
|
||||
"2 cryptominers (20%)",
|
||||
"Cryptominers have the correct accessible label"
|
||||
);
|
||||
Assert.equal(
|
||||
is(
|
||||
allBars[6].querySelector(".fingerprinter-bar").style.height,
|
||||
"20%",
|
||||
"fingerprinters take 20%"
|
||||
);
|
||||
Assert.equal(
|
||||
is(
|
||||
allBars[6]
|
||||
.querySelector(".fingerprinter-bar")
|
||||
.parentNode.getAttribute("role"),
|
||||
"cell",
|
||||
"Fingerprinters have the correct role"
|
||||
);
|
||||
Assert.equal(
|
||||
is(
|
||||
allBars[6].querySelector(".fingerprinter-bar").getAttribute("role"),
|
||||
"img",
|
||||
"Fingerprinter bar has the correct image role"
|
||||
);
|
||||
Assert.equal(
|
||||
is(
|
||||
allBars[6].querySelector(".fingerprinter-bar").getAttribute("aria-label"),
|
||||
"2 fingerprinters (20%)",
|
||||
"Fingerprinters have the correct accessible label"
|
||||
);
|
||||
Assert.equal(
|
||||
is(
|
||||
allBars[6].querySelector(".cookie-bar").style.height,
|
||||
"40%",
|
||||
"cross site tracking cookies take 40%"
|
||||
);
|
||||
Assert.equal(
|
||||
is(
|
||||
allBars[6].querySelector(".cookie-bar").parentNode.getAttribute("role"),
|
||||
"cell",
|
||||
"cross site tracking cookies have the correct role"
|
||||
);
|
||||
Assert.equal(
|
||||
is(
|
||||
allBars[6].querySelector(".cookie-bar").getAttribute("role"),
|
||||
"img",
|
||||
"Cross site tracking cookies bar has the correct image role"
|
||||
);
|
||||
Assert.equal(
|
||||
is(
|
||||
allBars[6].querySelector(".cookie-bar").getAttribute("aria-label"),
|
||||
"4 cross-site tracking cookies (40%)",
|
||||
"cross site tracking cookies have the correct accessible label"
|
||||
);
|
||||
Assert.equal(
|
||||
is(
|
||||
allBars[6].querySelector(".social-bar").style.height,
|
||||
"10%",
|
||||
"social trackers take 10%"
|
||||
);
|
||||
Assert.equal(
|
||||
is(
|
||||
allBars[6].querySelector(".social-bar").parentNode.getAttribute("role"),
|
||||
"cell",
|
||||
"social trackers have the correct role"
|
||||
);
|
||||
Assert.equal(
|
||||
is(
|
||||
allBars[6].querySelector(".social-bar").getAttribute("role"),
|
||||
"img",
|
||||
"social tracker bar has the correct image role"
|
||||
);
|
||||
Assert.equal(
|
||||
is(
|
||||
allBars[6].querySelector(".social-bar").getAttribute("aria-label"),
|
||||
"1 social media tracker (10%)",
|
||||
"social trackers have the correct accessible text"
|
||||
);
|
||||
|
||||
Assert.equal(
|
||||
is(
|
||||
allBars[5].querySelectorAll(".inner-bar").length,
|
||||
DATA_TYPES.length - 1,
|
||||
"1 day ago is missing one type"
|
||||
);
|
||||
Assert.ok(
|
||||
ok(
|
||||
!allBars[5].querySelector(".cookie-bar"),
|
||||
"there is no cross site tracking cookie section 1 day ago."
|
||||
);
|
||||
Assert.equal(
|
||||
is(
|
||||
allBars[5].getAttribute("aria-owns"),
|
||||
"day1 count1 cryptominer1 fingerprinter1 tracker1 social1",
|
||||
"Row has the columns in the right order"
|
||||
);
|
||||
|
||||
Assert.equal(
|
||||
is(
|
||||
allBars[4].querySelectorAll(".inner-bar").length,
|
||||
DATA_TYPES.length - 1,
|
||||
"2 days ago is missing one type"
|
||||
);
|
||||
Assert.ok(
|
||||
ok(
|
||||
!allBars[4].querySelector(".fingerprinter-bar"),
|
||||
"there is no fingerprinter section 1 day ago."
|
||||
);
|
||||
Assert.equal(
|
||||
is(
|
||||
allBars[4].getAttribute("aria-owns"),
|
||||
"day2 count2 cryptominer2 tracker2 cookie2 social2",
|
||||
"Row has the columns in the right order"
|
||||
);
|
||||
|
||||
Assert.equal(
|
||||
is(
|
||||
allBars[3].querySelectorAll(".inner-bar").length,
|
||||
DATA_TYPES.length - 1,
|
||||
"3 days ago is missing one type"
|
||||
);
|
||||
Assert.ok(
|
||||
ok(
|
||||
!allBars[3].querySelector(".cryptominer-bar"),
|
||||
"there is no cryptominer section 1 day ago."
|
||||
);
|
||||
Assert.equal(
|
||||
is(
|
||||
allBars[3].getAttribute("aria-owns"),
|
||||
"day3 count3 fingerprinter3 tracker3 cookie3 social3",
|
||||
"Row has the columns in the right order"
|
||||
);
|
||||
|
||||
Assert.equal(
|
||||
is(
|
||||
allBars[2].querySelectorAll(".inner-bar").length,
|
||||
DATA_TYPES.length - 1,
|
||||
"4 days ago is missing one type"
|
||||
);
|
||||
Assert.ok(
|
||||
ok(
|
||||
!allBars[2].querySelector(".tracker-bar"),
|
||||
"there is no tracker section 1 day ago."
|
||||
);
|
||||
Assert.equal(
|
||||
is(
|
||||
allBars[2].getAttribute("aria-owns"),
|
||||
"day4 count4 cryptominer4 fingerprinter4 cookie4 social4",
|
||||
"Row has the columns in the right order"
|
||||
);
|
||||
|
||||
Assert.equal(
|
||||
is(
|
||||
allBars[1].querySelectorAll(".inner-bar").length,
|
||||
DATA_TYPES.length - 1,
|
||||
"5 days ago is missing one type"
|
||||
);
|
||||
Assert.ok(
|
||||
ok(
|
||||
!allBars[1].querySelector(".social-bar"),
|
||||
"there is no social section 1 day ago."
|
||||
);
|
||||
Assert.equal(
|
||||
is(
|
||||
allBars[1].getAttribute("aria-owns"),
|
||||
"day5 count5 cryptominer5 fingerprinter5 tracker5 cookie5",
|
||||
"Row has the columns in the right order"
|
||||
);
|
||||
|
||||
Assert.equal(
|
||||
is(
|
||||
allBars[0].querySelectorAll(".inner-bar").length,
|
||||
0,
|
||||
"6 days ago has no content"
|
||||
);
|
||||
Assert.ok(
|
||||
allBars[0].classList.contains("empty"),
|
||||
"6 days ago is an empty bar"
|
||||
);
|
||||
Assert.equal(
|
||||
ok(allBars[0].classList.contains("empty"), "6 days ago is an empty bar");
|
||||
is(
|
||||
allBars[0].getAttribute("aria-owns"),
|
||||
"day6 ",
|
||||
"Row has the columns in the right order"
|
||||
|
@ -432,36 +425,36 @@ add_task(async function test_graph_display() {
|
|||
// values. This helps screen readers know what type of tracker the reported
|
||||
// tab number is referencing.
|
||||
const socialTab = content.document.getElementById("tab-social");
|
||||
Assert.equal(
|
||||
is(
|
||||
socialTab.getAttribute("aria-labelledby"),
|
||||
"socialLabel socialTitle",
|
||||
"aria-labelledby attribute is socialLabel socialTitle"
|
||||
);
|
||||
Assert.equal(
|
||||
is(
|
||||
socialTab.getAttribute("aria-describedby"),
|
||||
"socialContent",
|
||||
"aria-describedby attribute is socialContent"
|
||||
);
|
||||
|
||||
const cookieTab = content.document.getElementById("tab-cookie");
|
||||
Assert.equal(
|
||||
is(
|
||||
cookieTab.getAttribute("aria-labelledby"),
|
||||
"cookieLabel cookieTitle",
|
||||
"aria-labelledby attribute is cookieLabel cookieTitle"
|
||||
);
|
||||
Assert.equal(
|
||||
is(
|
||||
cookieTab.getAttribute("aria-describedby"),
|
||||
"cookieContent",
|
||||
"aria-describedby attribute is cookieContent"
|
||||
);
|
||||
|
||||
const trackerTab = content.document.getElementById("tab-tracker");
|
||||
Assert.equal(
|
||||
is(
|
||||
trackerTab.getAttribute("aria-labelledby"),
|
||||
"trackerLabel trackerTitle",
|
||||
"aria-labelledby attribute is trackerLabel trackerTitle"
|
||||
);
|
||||
Assert.equal(
|
||||
is(
|
||||
trackerTab.getAttribute("aria-describedby"),
|
||||
"trackerContent",
|
||||
"aria-describedby attribute is trackerContent"
|
||||
|
@ -470,24 +463,24 @@ add_task(async function test_graph_display() {
|
|||
const fingerprinterTab = content.document.getElementById(
|
||||
"tab-fingerprinter"
|
||||
);
|
||||
Assert.equal(
|
||||
is(
|
||||
fingerprinterTab.getAttribute("aria-labelledby"),
|
||||
"fingerprinterLabel fingerprinterTitle",
|
||||
"aria-labelledby attribute is fingerprinterLabel fingerprinterTitle"
|
||||
);
|
||||
Assert.equal(
|
||||
is(
|
||||
fingerprinterTab.getAttribute("aria-describedby"),
|
||||
"fingerprinterContent",
|
||||
"aria-describedby attribute is fingerprinterContent"
|
||||
);
|
||||
|
||||
const cryptominerTab = content.document.getElementById("tab-cryptominer");
|
||||
Assert.equal(
|
||||
is(
|
||||
cryptominerTab.getAttribute("aria-labelledby"),
|
||||
"cryptominerLabel cryptominerTitle",
|
||||
"aria-labelledby attribute is cryptominerLabel cryptominerTitle"
|
||||
);
|
||||
Assert.equal(
|
||||
is(
|
||||
cryptominerTab.getAttribute("aria-describedby"),
|
||||
"cryptominerContent",
|
||||
"aria-describedby attribute is cryptominerContent"
|
||||
|
@ -511,7 +504,7 @@ add_task(async function test_etp_header_string() {
|
|||
url: "about:protections",
|
||||
gBrowser,
|
||||
});
|
||||
await SpecialPowers.spawn(tab.linkedBrowser, [], async function() {
|
||||
await ContentTask.spawn(tab.linkedBrowser, {}, async function() {
|
||||
await ContentTaskUtils.waitForCondition(() => {
|
||||
let l10nID = content.document
|
||||
.querySelector("#protection-details")
|
||||
|
@ -522,7 +515,7 @@ add_task(async function test_etp_header_string() {
|
|||
|
||||
Services.prefs.setStringPref("browser.contentblocking.category", "strict");
|
||||
await reloadTab(tab);
|
||||
await SpecialPowers.spawn(tab.linkedBrowser, [], async function() {
|
||||
await ContentTask.spawn(tab.linkedBrowser, {}, async function() {
|
||||
await ContentTaskUtils.waitForCondition(() => {
|
||||
let l10nID = content.document
|
||||
.querySelector("#protection-details")
|
||||
|
@ -533,7 +526,7 @@ add_task(async function test_etp_header_string() {
|
|||
|
||||
Services.prefs.setStringPref("browser.contentblocking.category", "custom");
|
||||
await reloadTab(tab);
|
||||
await SpecialPowers.spawn(tab.linkedBrowser, [], async function() {
|
||||
await ContentTask.spawn(tab.linkedBrowser, {}, async function() {
|
||||
await ContentTaskUtils.waitForCondition(() => {
|
||||
let l10nID = content.document
|
||||
.querySelector("#protection-details")
|
||||
|
@ -545,180 +538,3 @@ add_task(async function test_etp_header_string() {
|
|||
Services.prefs.setStringPref("browser.contentblocking.category", "standard");
|
||||
BrowserTestUtils.removeTab(tab);
|
||||
});
|
||||
|
||||
// Ensure that each type of tracker is hidden from the graph if there are no recorded
|
||||
// trackers of that type and the user has chosen to not block that type.
|
||||
add_task(async function test_etp_custom_settings() {
|
||||
Services.prefs.setStringPref("browser.contentblocking.category", "strict");
|
||||
// hide cookies from the graph
|
||||
Services.prefs.setIntPref("network.cookie.cookieBehavior", 0);
|
||||
let tab = await BrowserTestUtils.openNewForegroundTab({
|
||||
url: "about:protections",
|
||||
gBrowser,
|
||||
});
|
||||
|
||||
await SpecialPowers.spawn(tab.linkedBrowser, [], async function() {
|
||||
await ContentTaskUtils.waitForCondition(() => {
|
||||
let legend = content.document.getElementById("legend");
|
||||
return ContentTaskUtils.is_visible(legend);
|
||||
}, "The legend is visible");
|
||||
|
||||
let label = content.document.getElementById("cookieLabel");
|
||||
Assert.ok(ContentTaskUtils.is_hidden(label), "Cookie Label is hidden");
|
||||
|
||||
label = content.document.getElementById("trackerLabel");
|
||||
Assert.ok(ContentTaskUtils.is_visible(label), "Tracker Label is visible");
|
||||
label = content.document.getElementById("socialLabel");
|
||||
Assert.ok(ContentTaskUtils.is_visible(label), "Social Label is visible");
|
||||
label = content.document.getElementById("cryptominerLabel");
|
||||
Assert.ok(
|
||||
ContentTaskUtils.is_visible(label),
|
||||
"Cryptominer Label is visible"
|
||||
);
|
||||
label = content.document.getElementById("fingerprinterLabel");
|
||||
Assert.ok(
|
||||
ContentTaskUtils.is_visible(label),
|
||||
"Fingerprinter Label is visible"
|
||||
);
|
||||
});
|
||||
BrowserTestUtils.removeTab(tab);
|
||||
|
||||
// hide ad trackers from the graph
|
||||
Services.prefs.setBoolPref("privacy.trackingprotection.enabled", false);
|
||||
tab = await BrowserTestUtils.openNewForegroundTab({
|
||||
url: "about:protections",
|
||||
gBrowser,
|
||||
});
|
||||
await SpecialPowers.spawn(tab.linkedBrowser, [], async function() {
|
||||
await ContentTaskUtils.waitForCondition(() => {
|
||||
let legend = content.document.getElementById("legend");
|
||||
return ContentTaskUtils.is_visible(legend);
|
||||
}, "The legend is visible");
|
||||
|
||||
let label = content.document.querySelector("#trackerLabel");
|
||||
Assert.ok(ContentTaskUtils.is_hidden(label), "Tracker Label is hidden");
|
||||
|
||||
label = content.document.querySelector("#socialLabel");
|
||||
Assert.ok(ContentTaskUtils.is_hidden(label), "Social Label is hidden");
|
||||
});
|
||||
BrowserTestUtils.removeTab(tab);
|
||||
|
||||
// hide social from the graph
|
||||
Services.prefs.setBoolPref(
|
||||
"privacy.trackingprotection.socialtracking.enabled",
|
||||
false
|
||||
);
|
||||
Services.prefs.setBoolPref(
|
||||
"privacy.socialtracking.block_cookies.enabled",
|
||||
false
|
||||
);
|
||||
tab = await BrowserTestUtils.openNewForegroundTab({
|
||||
url: "about:protections",
|
||||
gBrowser,
|
||||
});
|
||||
await SpecialPowers.spawn(tab.linkedBrowser, [], async function() {
|
||||
await ContentTaskUtils.waitForCondition(() => {
|
||||
let legend = content.document.getElementById("legend");
|
||||
return ContentTaskUtils.is_visible(legend);
|
||||
}, "The legend is visible");
|
||||
|
||||
let label = content.document.querySelector("#socialLabel");
|
||||
Assert.ok(ContentTaskUtils.is_hidden(label), "Social Label is hidden");
|
||||
});
|
||||
BrowserTestUtils.removeTab(tab);
|
||||
|
||||
// hide fingerprinting from the graph
|
||||
Services.prefs.setBoolPref(
|
||||
"privacy.trackingprotection.fingerprinting.enabled",
|
||||
false
|
||||
);
|
||||
tab = await BrowserTestUtils.openNewForegroundTab({
|
||||
url: "about:protections",
|
||||
gBrowser,
|
||||
});
|
||||
await SpecialPowers.spawn(tab.linkedBrowser, [], async function() {
|
||||
await ContentTaskUtils.waitForCondition(() => {
|
||||
let legend = content.document.getElementById("legend");
|
||||
return ContentTaskUtils.is_visible(legend);
|
||||
}, "The legend is visible");
|
||||
|
||||
let label = content.document.querySelector("#fingerprinterLabel");
|
||||
Assert.ok(
|
||||
ContentTaskUtils.is_hidden(label),
|
||||
"Fingerprinter Label is hidden"
|
||||
);
|
||||
});
|
||||
BrowserTestUtils.removeTab(tab);
|
||||
|
||||
// hide cryptomining from the graph
|
||||
Services.prefs.setBoolPref(
|
||||
"privacy.trackingprotection.cryptomining.enabled",
|
||||
false
|
||||
);
|
||||
// Turn fingerprinting on so that all protectionsare not turned off, otherwise we will get a special card.
|
||||
Services.prefs.setBoolPref(
|
||||
"privacy.trackingprotection.fingerprinting.enabled",
|
||||
true
|
||||
);
|
||||
tab = await BrowserTestUtils.openNewForegroundTab({
|
||||
url: "about:protections",
|
||||
gBrowser,
|
||||
});
|
||||
await SpecialPowers.spawn(tab.linkedBrowser, [], async function() {
|
||||
await ContentTaskUtils.waitForCondition(() => {
|
||||
let legend = content.document.getElementById("legend");
|
||||
return ContentTaskUtils.is_visible(legend);
|
||||
}, "The legend is visible");
|
||||
|
||||
let label = content.document.querySelector("#cryptominerLabel");
|
||||
Assert.ok(ContentTaskUtils.is_hidden(label), "Cryptominer Label is hidden");
|
||||
});
|
||||
Services.prefs.clearUserPref("browser.contentblocking.category");
|
||||
Services.prefs.clearUserPref(
|
||||
"privacy.trackingprotection.fingerprinting.enabled"
|
||||
);
|
||||
Services.prefs.clearUserPref(
|
||||
"privacy.trackingprotection.cryptomining.enabled"
|
||||
);
|
||||
Services.prefs.clearUserPref("privacy.trackingprotection.enabled");
|
||||
Services.prefs.clearUserPref("network.cookie.cookieBehavior");
|
||||
|
||||
BrowserTestUtils.removeTab(tab);
|
||||
});
|
||||
|
||||
// Ensure that the Custom manage Protections card is shown if the user has all protections turned off.
|
||||
add_task(async function test_etp_custom_protections_off() {
|
||||
await SpecialPowers.pushPrefEnv({
|
||||
set: [
|
||||
["browser.contentblocking.category", "custom"],
|
||||
["network.cookie.cookieBehavior", 0], // not blocking
|
||||
["privacy.trackingprotection.cryptomining.enabled", false], // not blocking
|
||||
["privacy.trackingprotection.fingerprinting.enabled", false],
|
||||
["privacy.trackingprotection.enabled", false],
|
||||
["privacy.trackingprotection.socialtracking.enabled", false],
|
||||
["privacy.socialtracking.block_cookies.enabled", false],
|
||||
],
|
||||
});
|
||||
|
||||
let tab = await BrowserTestUtils.openNewForegroundTab({
|
||||
url: "about:protections",
|
||||
gBrowser,
|
||||
});
|
||||
|
||||
await SpecialPowers.spawn(tab.linkedBrowser, [], async function() {
|
||||
await ContentTaskUtils.waitForCondition(() => {
|
||||
let etpCard = content.document.querySelector(".etp-card");
|
||||
return etpCard.classList.contains("custom-not-blocking");
|
||||
}, "The custom protections warning card is showing");
|
||||
|
||||
let manageProtectionsCard = content.document.querySelector(
|
||||
"#manage-protections"
|
||||
);
|
||||
Assert.ok(
|
||||
ContentTaskUtils.is_visible(manageProtectionsCard),
|
||||
"Button to manage protections is displayed"
|
||||
);
|
||||
});
|
||||
Services.prefs.setStringPref("browser.contentblocking.category", "standard");
|
||||
BrowserTestUtils.removeTab(tab);
|
||||
});
|
||||
|
|
|
@ -34,8 +34,6 @@ protection-report-content-title = Privacy Protections
|
|||
|
||||
etp-card-title = Enhanced Tracking Protection
|
||||
etp-card-content = Trackers follow you around online to collect information about your browsing habits and interests. { -brand-short-name } blocks many of these trackers and other malicious scripts.
|
||||
protection-report-etp-card-content-custom-not-blocking = All protections are currently turned off. Choose which trackers to block by managing your { -brand-short-name } protections settings.
|
||||
protection-report-manage-protections = Manage Settings
|
||||
|
||||
# This string is used to label the X axis of a graph. Other days of the week are generated via Intl.DateTimeFormat,
|
||||
# capitalization for this string should match the output for your locale.
|
||||
|
|
|
@ -77,10 +77,6 @@ let RPMAccessManager = {
|
|||
"browser.contentblocking.report.monitor.enabled",
|
||||
"privacy.socialtracking.block_cookies.enabled",
|
||||
"browser.contentblocking.report.proxy.enabled",
|
||||
"privacy.trackingprotection.cryptomining.enabled",
|
||||
"privacy.trackingprotection.fingerprinting.enabled",
|
||||
"privacy.trackingprotection.enabled",
|
||||
"privacy.trackingprotection.socialtracking.enabled",
|
||||
],
|
||||
getStringPref: [
|
||||
"browser.contentblocking.category",
|
||||
|
@ -90,7 +86,6 @@ let RPMAccessManager = {
|
|||
"browser.contentblocking.report.manage_devices.url",
|
||||
"browser.contentblocking.report.proxy_extension.url",
|
||||
],
|
||||
getIntPref: ["network.cookie.cookieBehavior"],
|
||||
getFormatURLPref: [
|
||||
"browser.contentblocking.report.monitor.how_it_works.url",
|
||||
"browser.contentblocking.report.lockwise.how_it_works.url",
|
||||
|
|
Загрузка…
Ссылка в новой задаче