1
0
mirror of https://github.com/gryf/pentadactyl-pm.git synced 2025-12-19 13:27:59 +01:00

Merge pull request #167 from futuro/fix-noscript

Fix noscript plugin
This commit is contained in:
dkearns
2016-08-23 19:03:59 +10:00
committed by GitHub

View File

@@ -188,8 +188,10 @@ completion.noscriptSites = function (context) {
context.generate = getSites; context.generate = getSites;
context.keys = { context.keys = {
text: util.identity, text: util.identity,
description: site => groupDesc[this.highlight] + description: function (site) {
(this.groups.untrusted && this.highlight != "NoScriptUntrusted" ? " (untrusted)" : ""), return groupDesc[this.highlight] +
(this.groups.untrusted && this.highlight != "NoScriptUntrusted" ? " (untrusted)" : "")
},
highlight: function (site) { highlight: function (site) {
return this.groups.temp ? "NoScriptTemp" : return this.groups.temp ? "NoScriptTemp" :
@@ -243,7 +245,7 @@ prefs.complete = group => context => {
context.keys = { text: "text", description: "description" }; context.keys = { text: "text", description: "description" };
context.completions = values(prefs[group]); context.completions = values(prefs[group]);
}; };
prefs.get = function (group) { return [p.text for (p of values(this[group])) if (getPref(p.pref))]; }; prefs.get = function (group) { return [for (p of values(this[group])) if (getPref(p.pref)) p.text]; };
prefs.set = function (group, val) { prefs.set = function (group, val) {
for (let p of values(this[group])) for (let p of values(this[group]))
setPref(p.pref, val.indexOf(p.text) >= 0); setPref(p.pref, val.indexOf(p.text) >= 0);
@@ -292,27 +294,27 @@ group.options.add(["script"],
has: (val) => hasOwnProperty(services.noscript.jsPolicySites.sitesMap, val) && has: (val) => hasOwnProperty(services.noscript.jsPolicySites.sitesMap, val) &&
!hasOwnProperty(services.noscript.tempSites.sitesMap, val), !hasOwnProperty(services.noscript.tempSites.sitesMap, val),
get set() { get set() {
return new RealSet(k for (k in services.noscript.jsPolicySites.sitesMap)) return new RealSet((for (k of services.noscript.jsPolicySites.sitesMap) k))
.difference(new RealSet(k for (k in services.noscript.tempSites.sitesMap))) .difference(new RealSet((for (k of services.noscript.tempSites.sitesMap) k)))
} }
}, { }, {
names: ["noscript-tempsites", "nst"], names: ["noscript-tempsites", "nst"],
description: "The list of sites temporarily allowed to execute scripts", description: "The list of sites temporarily allowed to execute scripts",
action: (add, sites) => sites.length && noscriptOverlay.safeAllow(sites, add, true, -1), action: (add, sites) => sites.length && noscriptOverlay.safeAllow(sites, add, true, -1),
completer: (context) => completion.noscriptSites(context), completer: (context) => completion.noscriptSites(context),
get set() { return new RealSet(k for (k in services.noscript.tempSites.sitesMap)) }, get set() { return new RealSet((for (k of iter(services.noscript.tempSites.sitesMap)) k)) },
}, { }, {
names: ["noscript-untrusted", "nsu"], names: ["noscript-untrusted", "nsu"],
description: "The list of untrusted sites", description: "The list of untrusted sites",
action: (add, sites) => sites.length && services.noscript.setUntrusted(sites, add), action: (add, sites) => sites.length && services.noscript.setUntrusted(sites, add),
completer: (context) => completion.noscriptSites(context), completer: (context) => completion.noscriptSites(context),
get set() { return new RealSet(k for (k in services.noscript.untrustedSites.sitesMap)) }, get set() { return new RealSet((for (k of iter(services.noscript.untrustedSites.sitesMap)) k)) },
}, { }, {
names: ["noscript-objects", "nso"], names: ["noscript-objects", "nso"],
description: "The list of allowed objects", description: "The list of allowed objects",
get set() { return new RealSet(array.flatten( get set() { return new RealSet(array.flatten(
[Array.concat(v).map(function (v) { return v + "@" + this; }, k) [for (wListObj of iter(services.noscript.objectWhitelist))
for ([k, v] of iter(services.noscript.objectWhitelist))])) }, Array.concat(wListObj[1]).map(function (v) { return v + "@" + this; }, wListObj[0])])) },
action: function (add, patterns) { action: function (add, patterns) {
for (let pattern of values(patterns)) { for (let pattern of values(patterns)) {
let [mime, site] = util.split(pattern, /@/, 2); let [mime, site] = util.split(pattern, /@/, 2);