Merge branch 'main' into de

This commit is contained in:
ib 2021-05-17 12:34:54 +02:00 committed by GitHub
commit 46feb192a0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
32 changed files with 145 additions and 49 deletions

2
.gitmodules vendored
View File

@ -1,3 +1,3 @@
[submodule "nscl"] [submodule "nscl"]
path = src/nscl path = src/nscl
url = git@github.com:hackademix/nscl.git url = ../nscl.git

View File

@ -100,7 +100,7 @@
"description": "" "description": ""
}, },
"CascadeRestrictions": { "CascadeRestrictions": {
"message": "সর্বোচ্চ ডকুমেন্টের সব অনুমতি সাবডুকমেন্টেও প্রযোজ্য হবে", "message": "Any capability blocked in the top document must be blocked in its subdocuments too",
"description": "" "description": ""
}, },
"ClearClickDescription": { "ClearClickDescription": {
@ -735,6 +735,10 @@
"message": "noscript", "message": "noscript",
"description": "" "description": ""
}, },
"cap_unchecked_css": {
"message": "unrestricted CSS",
"description": ""
},
"cap_other": { "cap_other": {
"message": "অন্যান্য", "message": "অন্যান্য",
"description": "" "description": ""

View File

@ -100,7 +100,7 @@
"description": "" "description": ""
}, },
"CascadeRestrictions": { "CascadeRestrictions": {
"message": "Any capability blocked in the top document must be blocked in its subdocuments too", "message": "Forzh peseurt arc'hweladur a vefe stanket en teuliad pennañ a vo stanket ivez en isteuliadoù ivez",
"description": "" "description": ""
}, },
"ClearClickDescription": { "ClearClickDescription": {
@ -164,7 +164,7 @@
"description": "" "description": ""
}, },
"Description": { "Description": {
"message": "Maximum protection for your browser: NoScript allows active content only for trusted domains of your choice to prevent exploitation.", "message": "Gwarez evit ho merdeer: NoScript a aotren an endalc'hadoù oberiant hepken evit an domanioù lakaet da fizius hervez ho tibaboù, kement-se evit mirout ouzh ar c'horvoiñ.",
"description": "" "description": ""
}, },
"Donate": { "Donate": {
@ -292,11 +292,11 @@
"description": "" "description": ""
}, },
"OptIncognitoPerm": { "OptIncognitoPerm": {
"message": "Enable setting permanent permissions in incognito/private tabs.\nBEWARE: doing this can leak site information!", "message": "Enaouiñ an arventenn aotreadurioù da badout en ivinelloù dizanv/prevez.\nDIWALLIT: titouroù 'zo el lec'hienn a c'hallo diverañ gant an dra-se!",
"description": "" "description": ""
}, },
"OptAmnesticUpdates": { "OptAmnesticUpdates": {
"message": "Revoke temporary permissions on NoScript updates, even if the browser is not restarted", "message": "Dizober an aotreadurioù berr o fadelezh war hizivadurioù NoScript, ha pa ne vefe ket adloc'het gant ar merdeer",
"description": "" "description": ""
}, },
"KeepLocked": { "KeepLocked": {
@ -735,6 +735,10 @@
"message": "noscript", "message": "noscript",
"description": "" "description": ""
}, },
"cap_unchecked_css": {
"message": "unrestricted CSS",
"description": ""
},
"cap_other": { "cap_other": {
"message": "traoù all", "message": "traoù all",
"description": "" "description": ""

View File

@ -100,7 +100,7 @@
"description": "" "description": ""
}, },
"CascadeRestrictions": { "CascadeRestrictions": {
"message": "Restriccions de documents principals en cascada a subdocuments", "message": "Any capability blocked in the top document must be blocked in its subdocuments too",
"description": "" "description": ""
}, },
"ClearClickDescription": { "ClearClickDescription": {
@ -735,6 +735,10 @@
"message": "noscript", "message": "noscript",
"description": "" "description": ""
}, },
"cap_unchecked_css": {
"message": "unrestricted CSS",
"description": ""
},
"cap_other": { "cap_other": {
"message": "altres", "message": "altres",
"description": "" "description": ""

View File

@ -100,7 +100,7 @@
"description": "" "description": ""
}, },
"CascadeRestrictions": { "CascadeRestrictions": {
"message": "Overlap øverste dokumenters begrænsninger til underdokumenter", "message": "Any capability blocked in the top document must be blocked in its subdocuments too",
"description": "" "description": ""
}, },
"ClearClickDescription": { "ClearClickDescription": {
@ -735,6 +735,10 @@
"message": "noscript", "message": "noscript",
"description": "" "description": ""
}, },
"cap_unchecked_css": {
"message": "unrestricted CSS",
"description": ""
},
"cap_other": { "cap_other": {
"message": "andet", "message": "andet",
"description": "" "description": ""

View File

@ -320,7 +320,7 @@
"description": "" "description": ""
}, },
"Notify": { "Notify": {
"message": "Nachricht über blockierte Scripte zeigen", "message": "Nachricht über blockierte Skripte zeigen",
"description": "" "description": ""
}, },
"Notify_bottom": { "Notify_bottom": {
@ -388,7 +388,7 @@
"description": "" "description": ""
}, },
"PermissionsText": { "PermissionsText": {
"message": "Sie können genau festlegen, welche Webseiten Scripte ausführen dürfen. Fügen Sie die Adresse oder die Domain (z.B. \"https://www.seite.de\" oder \"seite.de\") einer Seite ein, die Sie zulassen möchten, und klicken Sie danach auf Zulassen.", "message": "Sie können genau festlegen, welche Webseiten Skripte ausführen dürfen. Fügen Sie die Adresse oder die Domain (z.B. \"https://www.seite.de\" oder \"seite.de\") einer Seite ein, die Sie zulassen möchten, und klicken Sie danach auf Zulassen.",
"description": "" "description": ""
}, },
"Plugins": { "Plugins": {
@ -668,15 +668,15 @@
"description": "" "description": ""
}, },
"allowed_no": { "allowed_no": {
"message": "Zurzeit verbotene Scripte", "message": "Zurzeit verbotene Skripte",
"description": "" "description": ""
}, },
"allowed_prt": { "allowed_prt": {
"message": "Scripte teilweise zugelassen", "message": "Skripte teilweise zugelassen",
"description": "" "description": ""
}, },
"allowed_yes": { "allowed_yes": {
"message": "Zurzeit zugelassene Scripte", "message": "Zurzeit zugelassene Skripte",
"description": "" "description": ""
}, },
"alwaysAsk": { "alwaysAsk": {
@ -788,7 +788,7 @@
"description": "" "description": ""
}, },
"forbidGlobal": { "forbidGlobal": {
"message": "Scripte allgemein verbieten (empfohlen)", "message": "Skripte allgemein verbieten (empfohlen)",
"description": "" "description": ""
}, },
"forbidLocal": { "forbidLocal": {
@ -836,11 +836,11 @@
"description": "" "description": ""
}, },
"removal_message": { "removal_message": {
"message": "Mit der Deaktivierung oder Deinstallation von NoScript gehen ALLE von NoScript bereitgestellten Schutzfunktionen verloren.\n\nWenn es Ihnen bloß zu viel Aufwand ist, Script-Berechtigungen für jede Seite neu festzulegen, dann gibt es eine sicherere Möglichkeit.\n\nNoScript kann aufhören alle Scripte zu blockieren (ausgenommen diejenigen, die als nicht vertrauenswürdig markiert wurden) und Sie trotzdem mittels erweiterten Sicherheitsfunktionen gegen XSS, Clickjacking, CSRF und andere Bedrohungen im Internet beschützen.\n\nWollen Sie wirklich ALLE NoScript-Schutzfunktionen deaktivieren?\n", "message": "Mit der Deaktivierung oder Deinstallation von NoScript gehen ALLE von NoScript bereitgestellten Schutzfunktionen verloren.\n\nWenn es Ihnen bloß zu viel Aufwand ist, Skript-Berechtigungen für jede Seite neu festzulegen, dann gibt es eine sicherere Möglichkeit.\n\nNoScript kann aufhören alle Skripte zu blockieren (ausgenommen diejenigen, die als nicht vertrauenswürdig markiert wurden) und Sie trotzdem mittels erweiterten Sicherheitsfunktionen gegen XSS, Clickjacking, CSRF und andere Bedrohungen im Internet beschützen.\n\nWollen Sie wirklich ALLE NoScript-Schutzfunktionen deaktivieren?\n",
"description": "" "description": ""
}, },
"removal_no": { "removal_no": {
"message": "Nein, nur aufhören Scripte zu blockieren", "message": "Nein, nur aufhören Skripte zu blockieren",
"description": "" "description": ""
}, },
"removal_title": { "removal_title": {

View File

@ -735,6 +735,10 @@
"message": "noscript", "message": "noscript",
"description": "" "description": ""
}, },
"cap_unchecked_css": {
"message": "unrestricted CSS",
"description": ""
},
"cap_other": { "cap_other": {
"message": "άλλο", "message": "άλλο",
"description": "" "description": ""

View File

@ -552,7 +552,7 @@
"message": "noscript" "message": "noscript"
}, },
"cap_unchecked_css": { "cap_unchecked_css": {
"message": "unchecked CSS" "message": "unrestricted CSS"
}, },
"cap_other": { "cap_other": {
"message": "other" "message": "other"

View File

@ -735,6 +735,10 @@
"message": "noscript", "message": "noscript",
"description": "" "description": ""
}, },
"cap_unchecked_css": {
"message": "CSS no restringido",
"description": ""
},
"cap_other": { "cap_other": {
"message": "otro", "message": "otro",
"description": "" "description": ""

View File

@ -348,7 +348,7 @@
"description": "" "description": ""
}, },
"OptBlockCssScanners": { "OptBlockCssScanners": {
"message": "Bloquer les analyseurs à base de CSS", "message": "Bloquer les analyseurs à base de feuilles de style CSS",
"description": "" "description": ""
}, },
"OptFilterXGet": { "OptFilterXGet": {
@ -735,6 +735,10 @@
"message": "noscript", "message": "noscript",
"description": "" "description": ""
}, },
"cap_unchecked_css": {
"message": "unrestricted CSS",
"description": ""
},
"cap_other": { "cap_other": {
"message": "autre", "message": "autre",
"description": "" "description": ""

View File

@ -735,6 +735,10 @@
"message": "noscript", "message": "noscript",
"description": "" "description": ""
}, },
"cap_unchecked_css": {
"message": "unrestricted CSS",
"description": ""
},
"cap_other": { "cap_other": {
"message": "אחר", "message": "אחר",
"description": "" "description": ""

View File

@ -735,6 +735,10 @@
"message": "noscript", "message": "noscript",
"description": "" "description": ""
}, },
"cap_unchecked_css": {
"message": "óskilyrt CSS",
"description": ""
},
"cap_other": { "cap_other": {
"message": "annað", "message": "annað",
"description": "" "description": ""

View File

@ -100,7 +100,7 @@
"description": "" "description": ""
}, },
"CascadeRestrictions": { "CascadeRestrictions": {
"message": "Applica le restrizioni del documento principale ai sotto-documenti", "message": "Any capability blocked in the top document must be blocked in its subdocuments too",
"description": "" "description": ""
}, },
"ClearClickDescription": { "ClearClickDescription": {
@ -735,6 +735,10 @@
"message": "noscript", "message": "noscript",
"description": "" "description": ""
}, },
"cap_unchecked_css": {
"message": "unrestricted CSS",
"description": ""
},
"cap_other": { "cap_other": {
"message": "altro", "message": "altro",
"description": "" "description": ""

View File

@ -100,7 +100,7 @@
"description": "" "description": ""
}, },
"CascadeRestrictions": { "CascadeRestrictions": {
"message": "サブドキュメントに対するカスケードトップドキュメントの制限", "message": "Any capability blocked in the top document must be blocked in its subdocuments too",
"description": "" "description": ""
}, },
"ClearClickDescription": { "ClearClickDescription": {
@ -735,6 +735,10 @@
"message": "noscript", "message": "noscript",
"description": "" "description": ""
}, },
"cap_unchecked_css": {
"message": "unrestricted CSS",
"description": ""
},
"cap_other": { "cap_other": {
"message": "other", "message": "other",
"description": "" "description": ""

View File

@ -100,7 +100,7 @@
"description": "" "description": ""
}, },
"CascadeRestrictions": { "CascadeRestrictions": {
"message": "Naudoti viršutinio dokumento apribojimus podokumenčiams kaskadiškai", "message": "Any capability blocked in the top document must be blocked in its subdocuments too",
"description": "" "description": ""
}, },
"ClearClickDescription": { "ClearClickDescription": {
@ -735,6 +735,10 @@
"message": "noscript", "message": "noscript",
"description": "" "description": ""
}, },
"cap_unchecked_css": {
"message": "unrestricted CSS",
"description": ""
},
"cap_other": { "cap_other": {
"message": "kita", "message": "kita",
"description": "" "description": ""

View File

@ -100,7 +100,7 @@
"description": "" "description": ""
}, },
"CascadeRestrictions": { "CascadeRestrictions": {
"message": "Забрани за каскадни највисоки документи до поддокументи", "message": "Any capability blocked in the top document must be blocked in its subdocuments too",
"description": "" "description": ""
}, },
"ClearClickDescription": { "ClearClickDescription": {
@ -735,6 +735,10 @@
"message": "noscript", "message": "noscript",
"description": "" "description": ""
}, },
"cap_unchecked_css": {
"message": "unrestricted CSS",
"description": ""
},
"cap_other": { "cap_other": {
"message": "друго", "message": "друго",
"description": "" "description": ""

View File

@ -100,7 +100,7 @@
"description": "" "description": ""
}, },
"CascadeRestrictions": { "CascadeRestrictions": {
"message": "Lata sekatan dokumen teratas ke subdokumen", "message": "Any capability blocked in the top document must be blocked in its subdocuments too",
"description": "" "description": ""
}, },
"ClearClickDescription": { "ClearClickDescription": {
@ -735,6 +735,10 @@
"message": "noscript", "message": "noscript",
"description": "" "description": ""
}, },
"cap_unchecked_css": {
"message": "unrestricted CSS",
"description": ""
},
"cap_other": { "cap_other": {
"message": "lain-lain", "message": "lain-lain",
"description": "" "description": ""

View File

@ -100,7 +100,7 @@
"description": "" "description": ""
}, },
"CascadeRestrictions": { "CascadeRestrictions": {
"message": "Kaskade toppdokumentets begrensninger på underdokumenter", "message": "Any capability blocked in the top document must be blocked in its subdocuments too",
"description": "" "description": ""
}, },
"ClearClickDescription": { "ClearClickDescription": {
@ -735,6 +735,10 @@
"message": "noscript", "message": "noscript",
"description": "" "description": ""
}, },
"cap_unchecked_css": {
"message": "unrestricted CSS",
"description": ""
},
"cap_other": { "cap_other": {
"message": "annet", "message": "annet",
"description": "" "description": ""

View File

@ -735,6 +735,10 @@
"message": "noscript", "message": "noscript",
"description": "" "description": ""
}, },
"cap_unchecked_css": {
"message": "onbeperkte CSS",
"description": ""
},
"cap_other": { "cap_other": {
"message": "overig", "message": "overig",
"description": "" "description": ""

View File

@ -735,6 +735,10 @@
"message": "noscript", "message": "noscript",
"description": "" "description": ""
}, },
"cap_unchecked_css": {
"message": "unrestricted CSS",
"description": ""
},
"cap_other": { "cap_other": {
"message": "inne", "message": "inne",
"description": "" "description": ""

View File

@ -735,6 +735,10 @@
"message": "noscript", "message": "noscript",
"description": "" "description": ""
}, },
"cap_unchecked_css": {
"message": "unrestricted CSS",
"description": ""
},
"cap_other": { "cap_other": {
"message": "outros", "message": "outros",
"description": "" "description": ""

View File

@ -735,6 +735,10 @@
"message": "noscript", "message": "noscript",
"description": "" "description": ""
}, },
"cap_unchecked_css": {
"message": "небезопасные CSS",
"description": ""
},
"cap_other": { "cap_other": {
"message": "other", "message": "other",
"description": "" "description": ""

View File

@ -724,7 +724,7 @@
"description": "" "description": ""
}, },
"cap_fetch": { "cap_fetch": {
"message": "fetch", "message": "CSS e pakufizuar",
"description": "" "description": ""
}, },
"cap_ping": { "cap_ping": {
@ -735,6 +735,10 @@
"message": "noscript", "message": "noscript",
"description": "" "description": ""
}, },
"cap_unchecked_css": {
"message": "unrestricted CSS",
"description": ""
},
"cap_other": { "cap_other": {
"message": "tjetër", "message": "tjetër",
"description": "" "description": ""

View File

@ -100,7 +100,7 @@
"description": "" "description": ""
}, },
"CascadeRestrictions": { "CascadeRestrictions": {
"message": "För över toppdokumentets begränsningar till underdokument", "message": "Any capability blocked in the top document must be blocked in its subdocuments too",
"description": "" "description": ""
}, },
"ClearClickDescription": { "ClearClickDescription": {
@ -735,6 +735,10 @@
"message": "noscript", "message": "noscript",
"description": "" "description": ""
}, },
"cap_unchecked_css": {
"message": "unrestricted CSS",
"description": ""
},
"cap_other": { "cap_other": {
"message": "andra", "message": "andra",
"description": "" "description": ""

View File

@ -735,6 +735,10 @@
"message": "noscript", "message": "noscript",
"description": "" "description": ""
}, },
"cap_unchecked_css": {
"message": "kısıtlanmamış CSS",
"description": ""
},
"cap_other": { "cap_other": {
"message": "diğer", "message": "diğer",
"description": "" "description": ""

View File

@ -735,6 +735,10 @@
"message": "noscript", "message": "noscript",
"description": "" "description": ""
}, },
"cap_unchecked_css": {
"message": "unrestricted CSS",
"description": ""
},
"cap_other": { "cap_other": {
"message": "其他", "message": "其他",
"description": "" "description": ""

View File

@ -100,7 +100,7 @@
"description": "" "description": ""
}, },
"CascadeRestrictions": { "CascadeRestrictions": {
"message": "將上層文件的限制串聯至子文件", "message": "Any capability blocked in the top document must be blocked in its subdocuments too",
"description": "" "description": ""
}, },
"ClearClickDescription": { "ClearClickDescription": {
@ -735,6 +735,10 @@
"message": "noscript", "message": "noscript",
"description": "" "description": ""
}, },
"cap_unchecked_css": {
"message": "unrestricted CSS",
"description": ""
},
"cap_other": { "cap_other": {
"message": "其他", "message": "其他",
"description": "" "description": ""

View File

@ -2,12 +2,12 @@
"use strict"; "use strict";
function onScriptDisabled() { function onScriptDisabled() {
onScriptDisabled = () => {}; onScriptDisabled = () => {}; // call me just once
debug("onScriptDisabled state", document.readyState);
let emulateNoscriptElement = () => { if (ns.allows("noscript")) {
if (ns.allows("noscript")) { NoscriptElements.emulate(true);
NoscriptElements.emulate(true); } else {
} else { let reportNoscriptElements = () => {
if (document.querySelector("noscript")) { if (document.querySelector("noscript")) {
let request = { let request = {
id: "noscript-noscript", id: "noscript-noscript",
@ -18,14 +18,12 @@ function onScriptDisabled() {
}; };
seen.record({policyType: "noscript", request, allowed: false}); seen.record({policyType: "noscript", request, allowed: false});
} }
};
if (document.readyState === "loading") {
window.addEventListener("DOMContentLoaded", reportNoscriptElements, true);
} else {
reportNoscriptElements();
} }
};
debug("onScriptDisabled", document.readyState, new Error().stack); // DEV ONLY
if (document.readyState === "loading") {
window.addEventListener("DOMContentLoaded", emulateNoscriptElement, true);
return;
} else {
emulateNoscriptElement();
} }
let eraser = { let eraser = {
@ -49,7 +47,7 @@ function onScriptDisabled() {
let w = doc.defaultView; let w = doc.defaultView;
if (w.getSelection().isCollapsed) { if (w.getSelection().isCollapsed) {
let root = doc.body || doc.documentElement; let root = doc.body || doc.documentElement;
let posRx = /^(?:absolute|fixed)$/; let posRx = /^(?:absolute|fixed|sticky)$/;
do { do {
if (posRx.test(w.getComputedStyle(el, '').position)) { if (posRx.test(w.getComputedStyle(el, '').position)) {
(eraser.tapped = el.parentNode).removeChild(el); (eraser.tapped = el.parentNode).removeChild(el);

View File

@ -52,7 +52,7 @@
} }
} }
if (/^(ftp|file):/.test(url)) { // ftp: or file: - no CSP headers yet if (/^(?:ftp|file):/.test(url)) { // ftp: or file: - no CSP headers yet
if (this.syncFetchPolicy) { if (this.syncFetchPolicy) {
this.syncFetchPolicy(); this.syncFetchPolicy();
} else { // additional content scripts not loaded yet } else { // additional content scripts not loaded yet
@ -62,7 +62,9 @@
} }
} else { } else {
// CSP headers have been already provided by webRequest, we are not in a hurry... // CSP headers have been already provided by webRequest, we are not in a hurry...
if (/^(javascript|about):/.test(url)) { if (url.startsWith("blob:")) {
url = location.origin;
} else if (/^(?:javascript|about):/.test(url)) {
url = document.readyState === "loading" url = document.readyState === "loading"
? document.baseURI ? document.baseURI
: `${window.isSecureContext ? "https" : "http"}://${document.domain}`; : `${window.isSecureContext ? "https" : "http"}://${document.domain}`;
@ -119,5 +121,5 @@
}, },
}; };
window.ns = window.ns ? Object.assign(ns, window.ns) : ns; window.ns = window.ns ? Object.assign(ns, window.ns) : ns;
debug("StaticNS", window.domPolicy, Date.now(), JSON.stringify(window.ns)); // DEV_ONLY debug("StaticNS", Date.now(), JSON.stringify(window.ns)); // DEV_ONLY
} }

View File

@ -8,7 +8,7 @@
"strict_min_version": "59.0" "strict_min_version": "59.0"
} }
}, },
"version": "11.2.5rc2", "version": "11.2.7",
"description": "__MSG_Description__", "description": "__MSG_Description__",
"incognito": "spanning", "incognito": "spanning",
@ -57,6 +57,7 @@
"/nscl/service/DocStartInjection.js", "/nscl/service/DocStartInjection.js",
"/nscl/service/LastListener.js", "/nscl/service/LastListener.js",
"/nscl/service/TabCache.js", "/nscl/service/TabCache.js",
"/nscl/service/patchWorkers.js",
"ui/Prompts.js", "ui/Prompts.js",
"xss/XSS.js", "xss/XSS.js",
"bg/ReportingCSP.js", "bg/ReportingCSP.js",
@ -94,6 +95,7 @@
"/nscl/common/CapsCSP.js", "/nscl/common/CapsCSP.js",
"/nscl/common/RequestKey.js", "/nscl/common/RequestKey.js",
"/nscl/content/patchWindow.js", "/nscl/content/patchWindow.js",
"/nscl/content/patchWorkers.js",
"/nscl/content/DocumentCSP.js", "/nscl/content/DocumentCSP.js",
"/nscl/content/NoscriptElements.js", "/nscl/content/NoscriptElements.js",
"/nscl/content/prefetchCSSResources.js", "/nscl/content/prefetchCSSResources.js",

@ -1 +1 @@
Subproject commit 1570208f7a04915063ce7776f61ad3bdca543c17 Subproject commit c952d448f27679b73f980af36102060950e22657

View File

@ -42,7 +42,7 @@ html.mobile > body {
#main { #main {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
align-items: center; align-items: stretch;
padding: 0 1.6em; padding: 0 1.6em;
top: 0; top: 0;
left: 0; left: 0;
@ -53,7 +53,6 @@ html.mobile > body {
} }
#message { #message {
flex-grow: 1; flex-grow: 1;
width: 100%;
max-height: 28em; max-height: 28em;
padding: .8em; padding: .8em;
text-align: center; text-align: center;
@ -98,7 +97,6 @@ html.mobile > body {
} }
#buttons { #buttons {
width: 100%;
display: flex; display: flex;
flex-grow: 0; flex-grow: 0;
flex-direction: row; flex-direction: row;