From d7ccea21856ba8611492998f8339c3db2a83379c Mon Sep 17 00:00:00 2001 From: hackademix Date: Tue, 16 Jul 2024 00:30:20 +0200 Subject: [PATCH] NoScript Options/Appearance/Show synthetic placeholders for invisible capability probes (issue #369). --- src/_locales/en/messages.json | 3 +++ src/bg/Defaults.js | 1 + src/bg/main.js | 6 +++++- src/ui/options.html | 6 ++++++ src/ui/options.js | 1 + 5 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/_locales/en/messages.json b/src/_locales/en/messages.json index 1e8bf1a..1658691 100644 --- a/src/_locales/en/messages.json +++ b/src/_locales/en/messages.json @@ -155,6 +155,9 @@ "ShowFullAddresses": { "message": "List full addresses in the permissions popup (https://www.noscript.net)" }, + "ShowProbePlaceholders": { + "message": "Show synthetic placeholders for invisible capability probes" + }, "SectionGeneral": { "message": "General" }, diff --git a/src/bg/Defaults.js b/src/bg/Defaults.js index e419653..e58e116 100644 --- a/src/bg/Defaults.js +++ b/src/bg/Defaults.js @@ -28,6 +28,7 @@ var Defaults = { showCtxMenuItem: true, showCountBadge: true, showFullAddresses: false, + showProbePlaceholders: true, amnesticUpdates: false, }, sync: { diff --git a/src/bg/main.js b/src/bg/main.js index 1748bb5..26078e8 100644 --- a/src/bg/main.js +++ b/src/bg/main.js @@ -230,9 +230,13 @@ }); }, async getTheme(msg, {tab, frameId}) { + let code = await Themes.getContentCSS(); + if (!ns.local.showProbePlaceholders) { + code += `\n.__NoScript_Offscreen_PlaceHolders__ {display: none }`; + } try { browser.tabs.insertCSS(tab.id, { - code: await Themes.getContentCSS(), + code, frameId, runAt: "document_start", matchAboutBlank: true, diff --git a/src/ui/options.html b/src/ui/options.html index 5c1bbf9..88cface 100644 --- a/src/ui/options.html +++ b/src/ui/options.html @@ -108,6 +108,12 @@ SPDX-License-Identifier: GPL-3.0-or-later +
+ + + + +
__MSG_settingsThemeLabel__ diff --git a/src/ui/options.js b/src/ui/options.js index dfb5d6e..4e93eb1 100644 --- a/src/ui/options.js +++ b/src/ui/options.js @@ -154,6 +154,7 @@ document.querySelector("#version").textContent = _("Version", opt("showCountBadge", "local"); opt("showCtxMenuItem", "local"); opt("showFullAddresses", "local"); + opt("showProbePlaceholders", "local"); UI.wireChoice("theme", o => Themes.setup(o && o.value) ); opt("vintageTheme", async o => await (o ? Themes.setVintage(o.checked) : Themes.isVintage()));