J'avais l'impression que les scripts content_scripts étaient exécutés directement sur la page, mais il semble maintenant qu'il y ait du sandbox.Les scripts "content" de l'extension google chrome sont-ils en sandbox?
Je travaille sur une extension pour enregistrer tout le trafic XHR d'un site (pour le débogage et d'autres fins de développement), et dans la console, le code sniff suivant fonctionne:
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);
Enregistre un message chaque fois qu'un XHR est envoyé. Quand je mets cela dans une extension, cependant, le vrai prototype ne sera pas modifié. Apparemment le window.XMLHttpRequest.prototype que mon script voit diffère de celui de la page actuelle.
Y a-t-il un moyen de contourner ce problème? Aussi, ce comportement de sandboxing est-il documenté n'importe où? J'ai regardé autour de moi, mais je n'ai rien trouvé.
Ah quelle honte. Merci d'avoir trouvé cela. Si seulement le chrome avait un peu plus de * puissance * dans son cadre d'extensions. –
putain. Il semble donc qu'il n'y ait aucun moyen d'intercepter et de modifier les corps de requêtes http. Puisque webrequest ne supporte que les en-têtes modifiants et non requestBody ... – K2xL