From 37fd9f7a362543fcbc683841fced5836392d2b1b Mon Sep 17 00:00:00 2001 From: kkapsner Date: Wed, 11 May 2016 08:58:45 +0200 Subject: [PATCH] Suppressed notification if maxFakeSize triggers. --- ...sBlocker@kkapsner.de-0.3.1-Development.xpi | Bin 16316 -> 16379 bytes lib/intercept.js | 16 ++++++++++++++-- lib/modifiedAPI.js | 13 +++++++++---- lib/notifications.js | 1 + 4 files changed, 24 insertions(+), 6 deletions(-) diff --git a/CanvasBlocker@kkapsner.de-0.3.1-Development.xpi b/CanvasBlocker@kkapsner.de-0.3.1-Development.xpi index 2bba2e7a068364c79acbdddf451ff9e420ead9e0..4b2bd09c861e1d2bc3fde54709d1d33e92db6789 100644 GIT binary patch delta 3969 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 diff --git a/lib/intercept.js b/lib/intercept.js index 835f23b..0a415d5 100644 --- a/lib/intercept.js +++ b/lib/intercept.js @@ -34,8 +34,20 @@ case "allow": return original; case "fake": - notify({url: window.location.href, errorStack: error.stack}, window); - return changedFunction.fake || changedFunction.fakeGenerator(prefs) || undef; + if (changedFunction.fake){ + + return changedFunction.fake; + } + else { + if (changedFunction.fakeGenerator) { + return changedFunction.fakeGenerator(prefs, function(){ + notify({url: window.location.href, errorStack: error.stack}, window); + }); + } + else { + return undef; + } + } //case "block": default: return undef; diff --git a/lib/modifiedAPI.js b/lib/modifiedAPI.js index f32662a..944fad5 100644 --- a/lib/modifiedAPI.js +++ b/lib/modifiedAPI.js @@ -93,16 +93,21 @@ getImageData: { type: "readout", object: "CanvasRenderingContext2D", - fakeGenerator: function(prefs){ + fakeGenerator: function(prefs, notify){ var maxSize = prefs("maxFakeSize") || Number.POSITIVE_INFINITY; return function getImageData(sx, sy, sw, sh){ var window = getWindow(this.canvas); - var context = (sw * sh > maxSize)? - this: - window.HTMLCanvasElement.prototype.getContext.call( + var context; + if (sw * sh > maxSize){ + context = this; + } + else { + notify(); + context = window.HTMLCanvasElement.prototype.getContext.call( getFakeCanvas(window, this.canvas), "2d" ); + } var data = window.CanvasRenderingContext2D.prototype.getImageData.apply(context, arguments).data; var imageData = new window.wrappedJSObject.ImageData(sw, sh); diff --git a/lib/notifications.js b/lib/notifications.js index 3f089e1..2c16161 100644 --- a/lib/notifications.js +++ b/lib/notifications.js @@ -119,5 +119,6 @@ exports.notify = function({url, errorStack}, {lists, notificationPref, _, browse notification.domain = domain; notification.callingStackMsg = callingStackMsg; } + return notification; } }; \ No newline at end of file