У меня сложилось впечатление, что 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, который видит мой скрипт, отличается от такового на реальной странице.
Есть ли способ обойти это? Кроме того, это поведение песочницы зарегистрировано где-нибудь? Я оглянулся, но ничего не смог найти.