Tenía la impresión de que los content_scripts se ejecutaban directamente en la página, pero ahora parece como si hubiera algún sandboxing.¿Los scripts de "cromo" de la extensión Google Chrome están en la zona de pruebas?
Estoy trabajando en una extensión para registrar todo el tráfico de un sitio XHR (para la depuración y otros fines de desarrollo), y en la consola, funciona de la siguiente código de aspiración:
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);
Este registra un mensaje cada vez que se envía un XHR. Cuando pongo esto en una extensión, sin embargo, el prototipo real no se modifica. Aparentemente el window.XMLHttpRequest.prototype que mi script está viendo difiere del de la página real.
¿Hay alguna forma de evitar esto? Además, ¿este comportamiento de sandboxing está documentado en alguna parte? Miré a mi alrededor, pero no pude encontrar nada.
Ah, qué lástima. gracias por encontrar eso. Si solo Chrome tuviera un poco más de * potencia * en su marco de extensiones. –
maldita sea. así que parece que no hay forma de interceptar y modificar los cuerpos de solicitudes http en ese momento. Desde webrequest solo se admite la modificación de los encabezados y no requestBody ... – K2xL