Web ページでの JavaScript API の使用状況を監視するツールを作成しようとしています。私の計画は、JavaScript API をオーバーライドし、呼び出し情報をグローバル変数に保存してから、postMessage を介してコンテンツ スクリプトに送信することです。ただし、以下のようなコードを Web ページに挿入すると、「Aw Snap」エラーが発生します。
chrome.devtools.panels.create("Test Dev Panel",
"icon.png",
"panel.html",
function (panel) {
var code = [
"window.counter = 0;",
"Array.prototype.push = function () {",
"window.counter++;",
"}",
"window.addEventListener('message', function(event) {",
"window.postMessage('Array.push() has been called ' + window.counter + ' times.', '*');",
"}, false);"
];
chrome.devtools.inspectedWindow.reload({
injectedScript: code.join('')
});
...
});
セキュリティ上の制限である可能性があります。しかし、私の目標を達成する方法はありますか?
--- 更新 --- postMessage() 呼び出しを削除すると、エラーは発生しません。また、Array.prototype オーバーライド コードを削除しても問題はありません。postMessage() の呼び出しと Array のプロトタイプの上書きを同時に行うと、エラーが発生するようです。