Ho avuto l'impressione che i content_scripts siano stati eseguiti direttamente sulla pagina, ma ora sembra che ci sia del sandboxing in corso.Gli script di "contenuto" dell'estensione google chrome sono in modalità sandbox?
sto lavorando su un'estensione per registrare tutto il traffico XHR di un sito (per altri scopi di sviluppo e debugging), e nella console, il seguente codice funziona annusare:
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);
Questo registra un messaggio ogni volta che viene inviato un XHR. Quando inserisco questa estensione, tuttavia, il vero prototipo non viene modificato. Apparentemente il window.XMLHttpRequest.prototype che il mio script sta vedendo differisce da quello della pagina reale.
C'è un modo per aggirare questo? Inoltre, questo comportamento sandboxing è documentato ovunque? Mi sono guardato intorno, ma non ho trovato nulla.
Ah che vergogna. grazie per averlo trovato Se solo Chrome avesse un po 'più di * potenza * nella sua struttura di estensioni. –
dannazione. quindi sembra che non ci sia modo di intercettare e modificare i corpi delle richieste http allora. Poiché webrequest supporta solo la modifica delle intestazioni e non il requestBody ... – K2xL