content_scripts がページ上で実行されたという印象を受けましたが、現在はサンドボックス化が行われているようです。
サイトのすべての XHR トラフィックをログに記録する拡張機能に取り組んでいます (デバッグやその他の開発目的で)。コンソールでは、次のスニフ コードが機能します。
var o = window.XMLHttpRequest.prototype.open;
window.XMLHttpRequest.prototype.open = function(){
console.log(arguments, 'open');
return o.apply(this, arguments);
};
console.log('myopen');
console.log(window, window.XMLHttpRequest, window.XMLHttpRequest.prototype, o, window.XMLHttpRequest.prototype.open);
これにより、XHR が送信されるたびにメッセージがログに記録されます。ただし、これを拡張機能に入れると、実際のプロトタイプは変更されません。どうやら私のスクリプトが見ている window.XMLHttpRequest.prototype は、実際のページのものとは異なります。
これを回避する方法はありますか?また、このサンドボックスの動作はどこかに文書化されていますか? あたりを見回しましたが、何も見つかりませんでした。