1
0
Fork 0
mirror of https://github.com/kkapsner/CanvasBlocker synced 2025-07-03 20:16:33 +02:00

Decoupled block mode from protected part

Fixes #287
This commit is contained in:
kkapsner 2018-10-23 08:26:23 +02:00
parent 5932ac2292
commit 8b9197a68a
17 changed files with 356 additions and 211 deletions

View file

@ -117,55 +117,70 @@
{
name: "blockMode",
check: function(errorCallback){
const switchMode = {
label: browser.i18n.getMessage("sanitation_resolution.switchToFakeReadout"),
callback: function(){
settings.blockMode = "fakeReadout";
}
};
const blockMode = settings.blockMode;
const blockModeName = browser.i18n.getMessage("blockMode_options." + blockMode);
const protectedCanvasPart = settings.protectedCanvasPart;
if (!blockMode.match("^fake|^ask")){
errorCallback({
message: browser.i18n.getMessage("sanitation_error.badBlockMode"),
severity: "medium",
resolutions: [switchMode]
});
}
["Audio", "Window", "DOMRect"].forEach(function(api){
const mainFlag = "protect" + api;
if (settings[mainFlag]){
if (["fakeInput"].indexOf(blockMode) !== -1){
const blockModeName = browser.i18n.getMessage("blockMode_options." + blockMode);
errorCallback({
message: browser.i18n.getMessage("sanitation_error.blockModeVsProtection")
.replace(/{blockMode}/g, blockModeName)
.replace(/{api}/g, browser.i18n.getMessage("section_" + api + "-api")),
severity: "high",
resolutions: [switchMode, {
label: browser.i18n.getMessage("sanitation_resolution.disableFlag")
.replace(/{flag}/g, browser.i18n.getMessage(mainFlag + "_title")),
callback: function(){
settings[mainFlag] = false;
}
}]
});
}
}
});
if (blockMode === "fakeInput" && settings.rng === "white"){
errorCallback({
message: browser.i18n.getMessage("sanitation_error.fakeInputWithWhiteRng")
.replace(/{blockMode}/g, blockModeName),
severity: "low",
resolutions: [switchMode, {
label: browser.i18n.getMessage("sanitation_resolution.switchToNonPersistentRng"),
resolutions: [{
label: browser.i18n.getMessage("sanitation_resolution.switchToFake"),
callback: function(){
settings.rng = "nonPersistent";
settings.blockMode = "fake";
}
}]
});
}
if (blockMode === "fake" && protectedCanvasPart === "input" && settings.rng === "white"){
errorCallback({
message: browser.i18n.getMessage("sanitation_error.fakeInputWithWhiteRng")
.replace(/{blockMode}/g, browser.i18n.getMessage("blockMode_options." + blockMode))
.replace(
/{protectedCanvasPart}/g,
browser.i18n.getMessage("protectedCanvasPart_options." + settings.protectedCanvasPart)
),
severity: "low",
resolutions: [
{
label: browser.i18n.getMessage("sanitation_resolution.switchToProtectReadout"),
callback: function(){
settings.protectedCanvasPart = "readout";
}
},
{
label: browser.i18n.getMessage("sanitation_resolution.switchToNonPersistentRng"),
callback: function(){
settings.rng = "nonPersistent";
}
}
]
});
}
if (blockMode === "fake" && protectedCanvasPart === "everything"){
errorCallback({
message: browser.i18n.getMessage("sanitation_error.fakeEverythingInCanvas")
.replace(/{blockMode}/g, browser.i18n.getMessage("blockMode_options." + blockMode))
.replace(
/{protectedCanvasPart}/g,
browser.i18n.getMessage("protectedCanvasPart_options." + settings.protectedCanvasPart)
),
severity: "low",
resolutions: [
{
label: browser.i18n.getMessage("sanitation_resolution.switchToProtectReadout"),
callback: function(){
settings.protectedCanvasPart = "readout";
}
},
{
label: browser.i18n.getMessage("sanitation_resolution.switchToProtectInput"),
callback: function(){
settings.protectedCanvasPart = "input";
}
}
]
});
}
}
},
{

View file

@ -18,20 +18,20 @@
{
"name": "askOnlyOnce",
"displayDependencies": {
"blockMode": ["askReadout", "ask"]
"blockMode": ["ask"]
}
},
{
"name": "askDenyMode",
"displayDependencies": {
"blockMode": ["askReadout", "ask"],
"blockMode": ["ask"],
"displayAdvancedSettings": [true]
}
},
{
"name": "showCanvasWhileAsking",
"displayDependencies": {
"blockMode": ["askReadout", "ask"],
"blockMode": ["ask"],
"displayAdvancedSettings": [true]
}
},
@ -40,11 +40,11 @@
"name": "rng",
"displayDependencies": [
{
"blockMode": ["fakeReadout", "fakeInput"],
"blockMode": ["fake"],
"displayAdvancedSettings": [true]
},
{
"blockMode": ["askReadout", "ask"],
"blockMode": ["ask"],
"askDenyMode": ["fake"],
"displayAdvancedSettings": [true]
}
@ -54,12 +54,12 @@
"name": "storePersistentRnd",
"displayDependencies": [
{
"blockMode": ["fakeReadout", "fakeInput"],
"blockMode": ["fake"],
"rng": ["persistent"],
"displayAdvancedSettings": [true]
},
{
"blockMode": ["askReadout", "ask"],
"blockMode": ["ask"],
"askDenyMode": ["fake"],
"rng": ["persistent"],
"displayAdvancedSettings": [true]
@ -71,12 +71,12 @@
"inputs": ["persistentRndClearIntervalValue", "persistentRndClearIntervalUnit"],
"displayDependencies": [
{
"blockMode": ["fakeReadout", "fakeInput"],
"blockMode": ["fake"],
"rng": ["persistent"],
"displayAdvancedSettings": [true]
},
{
"blockMode": ["askReadout", "ask"],
"blockMode": ["ask"],
"askDenyMode": ["fake"],
"rng": ["persistent"],
"displayAdvancedSettings": [true]
@ -87,12 +87,12 @@
"name": "clearPersistentRnd",
"displayDependencies": [
{
"blockMode": ["fakeReadout", "fakeInput"],
"blockMode": ["fake"],
"rng": ["persistent"],
"displayAdvancedSettings": [true]
},
{
"blockMode": ["askReadout", "ask"],
"blockMode": ["ask"],
"askDenyMode": ["fake"],
"rng": ["persistent"],
"displayAdvancedSettings": [true]
@ -163,7 +163,7 @@
{
"name": "showCallingFile",
"displayDependencies": {
"blockMode": ["askReadout", "ask"],
"blockMode": ["ask"],
"displayAdvancedSettings": [true]
}
},
@ -179,7 +179,7 @@
{
"name": "enableStackList",
"displayDependencies": {
"blockMode": ["blockReadout", "fakeReadout", "fakeInput", "askReadout", "block", "ask"],
"blockMode": ["fake", "block", "ask"],
"displayAdvancedSettings": [true]
}
},
@ -194,25 +194,28 @@
{
"name": "whiteList",
"displayDependencies": {
"blockMode": ["blockReadout", "fakeReadout", "fakeInput", "askReadout", "block", "ask"],
"blockMode": ["fake", "block", "ask"],
"displayAdvancedSettings": [true]
}
},
{
"name": "sessionWhiteList",
"displayDependencies": {
"blockMode": ["blockReadout", "fakeReadout", "fakeInput", "askReadout", "block", "ask"],
"blockMode": ["fake", "block", "ask"],
"displayAdvancedSettings": [true]
}
},
{
"name": "blackList",
"displayDependencies": {
"blockMode": ["blockReadout", "fakeReadout", "fakeInput", "askReadout", "ask", "allow"],
"blockMode": ["block", "fake", "ask", "allow"],
"displayAdvancedSettings": [true]
}
},
"Canvas-API",
{
"name": "protectedCanvasPart"
},
{
"name": "protectedAPIFeatures",
"displayedSection": "Canvas-API",
@ -226,11 +229,11 @@
"name": "minFakeSize",
"displayDependencies": [
{
"blockMode": ["fakeReadout", "fakeInput"],
"blockMode": ["fake"],
"displayAdvancedSettings": [true]
},
{
"blockMode": ["askReadout", "ask"],
"blockMode": ["ask"],
"askDenyMode": ["fake"],
"displayAdvancedSettings": [true]
}
@ -240,11 +243,11 @@
"name": "maxFakeSize",
"displayDependencies": [
{
"blockMode": ["fakeReadout", "fakeInput"],
"blockMode": ["fake"],
"displayAdvancedSettings": [true]
},
{
"blockMode": ["askReadout", "ask"],
"blockMode": ["ask"],
"askDenyMode": ["fake"],
"displayAdvancedSettings": [true]
}
@ -254,11 +257,12 @@
"name": "ignoreFrequentColors",
"displayDependencies": [
{
"blockMode": ["fakeReadout"],
"blockMode": ["fake"],
"protectedCanvasPart": ["readout"],
"displayAdvancedSettings": [true]
},
{
"blockMode": ["askReadout", "ask"],
"blockMode": ["ask"],
"askDenyMode": ["fake"],
"displayAdvancedSettings": [true]
}
@ -268,11 +272,12 @@
"name": "minColors",
"displayDependencies": [
{
"blockMode": ["fakeReadout"],
"blockMode": ["fake"],
"protectedCanvasPart": ["readout"],
"displayAdvancedSettings": [true]
},
{
"blockMode": ["askReadout", "ask"],
"blockMode": ["ask"],
"askDenyMode": ["fake"],
"displayAdvancedSettings": [true]
}
@ -282,11 +287,12 @@
"name": "fakeAlphaChannel",
"displayDependencies": [
{
"blockMode": ["fakeReadout"],
"blockMode": ["fake"],
"protectedCanvasPart": ["readout"],
"displayAdvancedSettings": [true]
},
{
"blockMode": ["askReadout", "ask"],
"blockMode": ["ask"],
"askDenyMode": ["fake"],
"displayAdvancedSettings": [true]
}
@ -296,11 +302,12 @@
"name": "useCanvasCache",
"displayDependencies": [
{
"blockMode": ["fakeReadout"],
"blockMode": ["fake"],
"protectedCanvasPart": ["readout"],
"displayAdvancedSettings": [true]
},
{
"blockMode": ["askReadout", "ask"],
"blockMode": ["ask"],
"askDenyMode": ["fake"],
"displayAdvancedSettings": [true]
}
@ -334,12 +341,12 @@
"name": "audioFakeRate",
"displayDependencies": [
{
"blockMode": ["fakeReadout", "fakeInput"],
"blockMode": ["fake"],
"protectAudio": [true],
"displayAdvancedSettings": [true]
},
{
"blockMode": ["askReadout", "ask", "allow"],
"blockMode": ["ask"],
"askDenyMode": ["fake"],
"protectAudio": [true],
"displayAdvancedSettings": [true]
@ -350,12 +357,12 @@
"name": "audioNoiseLevel",
"displayDependencies": [
{
"blockMode": ["fakeReadout", "fakeInput"],
"blockMode": ["fake"],
"protectAudio": [true],
"displayAdvancedSettings": [true]
},
{
"blockMode": ["askReadout", "ask", "allow"],
"blockMode": ["ask"],
"askDenyMode": ["fake"],
"protectAudio": [true],
"displayAdvancedSettings": [true]
@ -366,12 +373,12 @@
"name": "useAudioCache",
"displayDependencies": [
{
"blockMode": ["fakeReadout", "fakeInput"],
"blockMode": ["fake"],
"protectAudio": [true],
"displayAdvancedSettings": [true]
},
{
"blockMode": ["askReadout", "ask", "allow"],
"blockMode": ["ask"],
"askDenyMode": ["fake"],
"protectAudio": [true],
"displayAdvancedSettings": [true]
@ -382,12 +389,12 @@
"name": "audioUseFixedIndices",
"displayDependencies": [
{
"blockMode": ["fakeReadout", "fakeInput"],
"blockMode": ["fake"],
"protectAudio": [true],
"displayAdvancedSettings": [true]
},
{
"blockMode": ["askReadout", "ask", "allow"],
"blockMode": ["ask"],
"askDenyMode": ["fake"],
"protectAudio": [true],
"displayAdvancedSettings": [true]
@ -399,13 +406,13 @@
"displayDependencies": [
{
"audioUseFixedIndices": [true],
"blockMode": ["fakeReadout", "fakeInput"],
"blockMode": ["fake"],
"protectAudio": [true],
"displayAdvancedSettings": [true]
},
{
"audioUseFixedIndices": [true],
"blockMode": ["askReadout", "ask", "allow"],
"blockMode": ["ask"],
"askDenyMode": ["fake"],
"protectAudio": [true],
"displayAdvancedSettings": [true]