diff --git a/lib/intercept.js b/lib/intercept.js index 627a6f6..5629740 100644 --- a/lib/intercept.js +++ b/lib/intercept.js @@ -159,6 +159,7 @@ } }; + let extensionID = browser.extension.getURL(""); scope.intercept = function intercept({subject: window}, {check, checkStack, ask, notify, prefs}){ var siteStatus = check({url: getURL(window)}); logging.verbose("status for page", window, siteStatus); @@ -189,6 +190,15 @@ return undef; } var error = new Error(); + try { + // return original if the extension itself requested the function + if (error.stack.split("\n", 3)[1].split("@", 2)[1].startsWith(extensionID)){ + return original; + } + } + catch (e) { + // stack had an unknown form + } if (checkStack(error.stack)){ return original; } diff --git a/releaseNotes.txt b/releaseNotes.txt index 3523637..8971627 100644 --- a/releaseNotes.txt +++ b/releaseNotes.txt @@ -6,7 +6,7 @@ Version 0.4.5: - fixes: - - + - prevent possible double faking Version 0.4.4b: known issues: