mirror of
https://github.com/kkapsner/CanvasBlocker
synced 2025-03-13 11:44:12 +01:00
Functional notifications in right tab!
This commit is contained in:
parent
8524301655
commit
460da0f642
@ -49,6 +49,33 @@
|
|||||||
return bytes;
|
return bytes;
|
||||||
}());
|
}());
|
||||||
|
|
||||||
|
// parse calling stack
|
||||||
|
function errorToCallingStackMsg(error){
|
||||||
|
var msg = "";
|
||||||
|
var callers = error.stack.trim().split("\n");
|
||||||
|
//console.log(callers);
|
||||||
|
var findme = callers.shift(); // Remove us from the stack
|
||||||
|
findme = findme.replace(/(:[0-9]+){1,2}$/, ""); // rm line & column
|
||||||
|
// Eliminate squashed stack. stack may contain 2+ stacks, but why...
|
||||||
|
var inDoubleStack = false;
|
||||||
|
callers = callers.filter(function(caller){
|
||||||
|
var doubleStackStart = caller.search(findme) !== -1;
|
||||||
|
inDoubleStack = inDoubleStack || doubleStackStart;
|
||||||
|
return !inDoubleStack;
|
||||||
|
});
|
||||||
|
msg += "\n\n" + _("sourceOutput") + ": ";
|
||||||
|
if (settings.showCompleteCallingStack){
|
||||||
|
msg += callers.reduce(function(stack, c){
|
||||||
|
return stack + "\n\t" + _("stackEntryOutput", parseStackEntry(c));
|
||||||
|
}, "");
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
msg += _("stackEntryOutput", parseStackEntry(callers[0]));
|
||||||
|
}
|
||||||
|
|
||||||
|
return msg;
|
||||||
|
}
|
||||||
|
|
||||||
// Check canvas appearance
|
// Check canvas appearance
|
||||||
function canvasAppearance(context){
|
function canvasAppearance(context){
|
||||||
var oldBorder = false;
|
var oldBorder = false;
|
||||||
@ -159,6 +186,7 @@
|
|||||||
configureable: false,
|
configureable: false,
|
||||||
get: exportFunction(function(){
|
get: exportFunction(function(){
|
||||||
var status = changedFunction.mode.status;
|
var status = changedFunction.mode.status;
|
||||||
|
var callingStackMsg = errorToCallingStackMsg(new Error());
|
||||||
if (status === "ask"){
|
if (status === "ask"){
|
||||||
var askStatus = changedFunction.mode.askStatus;
|
var askStatus = changedFunction.mode.askStatus;
|
||||||
var appearance = canvasAppearance(this);
|
var appearance = canvasAppearance(this);
|
||||||
@ -170,26 +198,7 @@
|
|||||||
//console.log("asking");
|
//console.log("asking");
|
||||||
var msg = _(changedFunction.mode.askText[appearance.text]);
|
var msg = _(changedFunction.mode.askText[appearance.text]);
|
||||||
if (settings.showCallingFile){
|
if (settings.showCallingFile){
|
||||||
var callers = new Error().stack.trim().split("\n");
|
msg += callingStackMsg;
|
||||||
//console.log(callers);
|
|
||||||
var findme = callers.shift(); // Remove us from the stack
|
|
||||||
findme = findme.replace(/(:[0-9]+){1,2}$/, ""); // rm line & column
|
|
||||||
// Eliminate squashed stack. stack may contain 2+ stacks, but why...
|
|
||||||
var inDoubleStack = false;
|
|
||||||
callers = callers.filter(function(caller){
|
|
||||||
var doubleStackStart = caller.search(findme) !== -1;
|
|
||||||
inDoubleStack = inDoubleStack || doubleStackStart;
|
|
||||||
return !inDoubleStack;
|
|
||||||
});
|
|
||||||
msg += "\n\n" + _("sourceOutput") + ": ";
|
|
||||||
if (settings.showCompleteCallingStack){
|
|
||||||
msg += callers.reduce(function(stack, c){
|
|
||||||
return stack + "\n\t" + _("stackEntryOutput", parseStackEntry(c));
|
|
||||||
}, "");
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
msg += _("stackEntryOutput", parseStackEntry(callers[0]));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
status = window.confirm(msg) ? "allow": "block";
|
status = window.confirm(msg) ? "allow": "block";
|
||||||
askStatus.alreadyAsked[appearance.text] = true;
|
askStatus.alreadyAsked[appearance.text] = true;
|
||||||
@ -198,7 +207,7 @@
|
|||||||
appearance.reset();
|
appearance.reset();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
self.port.emit("accessed " + changedFunction.mode.name, status);
|
self.port.emit("accessed " + changedFunction.mode.name, status, callingStackMsg);
|
||||||
switch (status){
|
switch (status){
|
||||||
case "allow":
|
case "allow":
|
||||||
return original;
|
return original;
|
||||||
|
15
lib/main.js
15
lib/main.js
@ -185,7 +185,7 @@
|
|||||||
checkWorker(worker);
|
checkWorker(worker);
|
||||||
|
|
||||||
// display notifications
|
// display notifications
|
||||||
worker.port.on("accessed readAPI", function(status){
|
worker.port.on("accessed readAPI", function(status, callingStackMsg){
|
||||||
function log(title, object){
|
function log(title, object){
|
||||||
console.log(title);
|
console.log(title);
|
||||||
for (var name in object){
|
for (var name in object){
|
||||||
@ -203,18 +203,21 @@
|
|||||||
var tab = tabUtils.getTabForId(worker.tab.id);
|
var tab = tabUtils.getTabForId(worker.tab.id);
|
||||||
var tabBrowser = tabUtils.getTabBrowserForTab(tab);
|
var tabBrowser = tabUtils.getTabBrowserForTab(tab);
|
||||||
var browser = tabUtils.getBrowserForTab(tab);
|
var browser = tabUtils.getBrowserForTab(tab);
|
||||||
var ownerBrowser = windowUtils.getOwnerBrowserWindow(tab);
|
|
||||||
|
|
||||||
// var notifyBox = ownerBrowser.gBrowser.getNotificationBox();
|
var notifyBox = tabBrowser.getNotificationBox(browser);
|
||||||
var notifyBox = tabBrowser.getNotificationBox();
|
|
||||||
// log(" chrome window", require("sdk/windows").browserWindows);
|
|
||||||
// var notifyBox = windowUtils.getXULWindow(browser.contentWindow).XULBrowserWindow.getNotificationBox(browser.contentWindow);
|
|
||||||
var notification = notifyBox.getNotificationWithValue("fake-readout");
|
var notification = notifyBox.getNotificationWithValue("fake-readout");
|
||||||
if (notification){
|
if (notification){
|
||||||
notification.label = message;
|
notification.label = message;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
var buttons = [
|
var buttons = [
|
||||||
|
{
|
||||||
|
label: _("displayCallingStack"),
|
||||||
|
accessKey: "",
|
||||||
|
callback: function(){
|
||||||
|
browser.contentWindow.alert(callingStackMsg);
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
label: _("whitelistURL"),
|
label: _("whitelistURL"),
|
||||||
accessKey: "",
|
accessKey: "",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user