1
0
Fork 0
mirror of https://github.com/kkapsner/CanvasBlocker synced 2025-07-04 20:46:39 +02:00

Used api property to display correct text in ask mode.

This commit is contained in:
kkapsner 2018-06-21 00:13:32 +02:00
parent 1abc681e3f
commit 0f44820e3d
4 changed files with 49 additions and 16 deletions

View file

@ -15,11 +15,11 @@
const {parseErrorStack} = require("./callingStack");
// Check canvas appearance
function canvasAppearance(window, context){
function canvasAppearance(window, api, context){
var oldBorder = false;
var canvas = false;
var inDOM = null;
if (context){
if (api === "canvas" && context){
var nodeName;
try {
nodeName = context.nodeName;
@ -44,9 +44,9 @@
}
return {
canvas: canvas,
askCategory: canvas? (inDOM? "visible": "invisible"): "nocanvas",
askCategory: canvas? (inDOM? "visible": "invisible"): (api === "canvas"? "nocanvas": api),
get text(){
var text = canvas? (this.visible? "visible": "invisible"): "nocanvas";
var text = canvas? (this.visible? "visible": "invisible"): (api === "canvas"? "nocanvas": api);
Object.defineProperty(this, "text", {value: text});
return text;
},
@ -85,7 +85,8 @@
askText: {
visible: _("askForVisiblePermission"),
invisible: _("askForInvisiblePermission"),
nocanvas: _("askForPermission")
nocanvas: _("askForPermission"),
audio: _("askForAudioPermission")
},
askStatus: {
alreadyAsked: {},
@ -96,7 +97,8 @@
askText: {
visible: _("askForVisibleInputPermission"),
invisible: _("askForInvisibleInputPermission"),
nocanvas: _("askForInputPermission")
nocanvas: _("askForInputPermission"),
audio: _("askForAudioInputPermission")
},
askStatus: {
alreadyAsked: {},
@ -107,7 +109,8 @@
askText: {
visible: _("askForVisibleReadoutPermission"),
invisible: _("askForInvisibleReadoutPermission"),
nocanvas: _("askForReadoutPermission")
nocanvas: _("askForReadoutPermission"),
audio: _("askForAudioReadoutPermission")
},
askStatus: {
alreadyAsked: {},
@ -120,15 +123,16 @@
}
}
scope.ask = function({window, type, canvas, errorStack}, {_, prefs}){
scope.ask = function({window, type, api, canvas, errorStack}, {_, prefs}){
var answer;
var askMode = getAskMode(window, type, _);
var askStatus = askMode.askStatus;
var appearance = canvasAppearance(window, canvas);
if (prefs("askOnlyOnce") !== "no" && askStatus.alreadyAsked[appearance.askCategory]){
var appearance = canvasAppearance(window, api, canvas);
var category = appearance.askCategory;
if (prefs("askOnlyOnce") !== "no" && askStatus.alreadyAsked[category]){
// already asked
appearance.reset();
return askStatus.answer[appearance.askCategory];
return askStatus.answer[category];
}
else {
let imgContainer = null;
@ -171,6 +175,9 @@
}
// asking
var msg = askMode.askText[appearance.text];
// visible vs invisible is only calculated here correctly
category = appearance.text;
if (prefs("showCallingFile")){
msg += parseErrorStack(errorStack).toString(_);
}
@ -183,13 +190,13 @@
["context", "readout", "input"].forEach(function(type){
var askMode = getAskMode(window, type, _);
var askStatus = askMode.askStatus;
askStatus.alreadyAsked[appearance.text] = true;
askStatus.answer[appearance.text] = answer;
askStatus.alreadyAsked[category] = true;
askStatus.answer[category] = answer;
});
}
else {
askStatus.alreadyAsked[appearance.text] = true;
askStatus.answer[appearance.text] = answer;
askStatus.alreadyAsked[category] = true;
askStatus.answer[category] = answer;
}
appearance.reset();
return answer;