从Chrome扩展程序覆盖CanvasRenderingContext2D

时间:2018-11-13 20:56:41

标签: google-chrome-extension

我想覆盖CanvasRenderingContext2D,并且正在使用此代码来做到这一点:

(function() {

    var getStackTrace = function() {
        var obj = {};
        Error.captureStackTrace(obj, getStackTrace);
        return obj.stack;
    };
    var orig_fillText = CanvasRenderingContext2D.prototype.fillText;

    CanvasRenderingContext2D.prototype.fillText = function() {
        if(arguments !== undefined){
            var stackTrace = getStackTrace();
            if(stackTrace.indexOf("myText") != -1){
                console.log(arguments[0]);
            }
        }
        orig_fillText.apply(this, arguments);
    };
}());

如果我直接在控制台上执行该代码,则该代码工作正常,但如果我从Chrome扩展程序内容脚本中执行该代码,则该代码不起作用(我正在向具有相同扩展名的页面添加新HTML,并且该部分正在工作,因此chrome扩展名不是问题)。

我可以注意到我的全局变量也未与网站上的JS共享,所以我想这与某种隔离类型有关吗?

0 个答案:

没有答案