Comment déboguer extension Firefox
J'ai été dans l'extension Firefox développement récemment, et a rencontré quelques problèmes:
Donc, dans le navigateur.xul j'ai défini ces lignes:
<overlay id="sample" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<script src="jquery.js" />
<script src="global.js" />
</overlay>
Donc, dans global.js j'ai accès à tous jQuery trucs, et en essayant de charger un script simple:
var inner = null;
var o = function () {
var prefManager = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);
return {
init : function () {
alert('here loading inner..');
$.get('http://www.example.com/script.js', function(d) {
alert('loaded inner script!');
inner = d;
gBrowser.addEventListener("load", function () {
alert('onload');
}, false);
}).error(function(e) { alert('error loading inner..'); setTimeout(o.init,1000); });
$(this).ajaxError(function() { alert('ajaxError'); });
}
}
}
window.addEventListener("load", o.init, false);
Mais ni je reçois un "chargé script interne", ni une "erreur de chargement intérieure" alerte.. Et je ne vois pas l'erreur de la console de log des erreurs à partir de l'extension... je suppose que le $.get
silencieusement échec dû à des restrictions, peut-être, mais est-il une bonne façon de déboguer les erreurs normalement? La console d'erreur est le silence de l'extension, il ne montre que les erreurs sur les pages web
oui, mais surtout parce que l'addon est fait pour être "autoupdatable" - je sais que c'est mauvais, je n'ai jamais ce faire, dans la vie de tous les jours, mais dans ce projet en particulier, j'ai juste eu à
Le point est que si vous le faites, alors vous êtes l'introduction d'un trou de sécurité dans le navigateur. Toute personne utilisant par exemple un navigateur sur un non approuvé de la connexion wifi, par exemple, permet de routeur wifi pour injecter du script arbitraire dans le navigateur chrome. Au moins utiliser SSL ici!
je vois, mais cela signifie que même des scripts à partir de stackoverflow.com peut être substitué avec arbitraire, puisqu'ils sont chargés sans ssl trop
Oui, et sans doute le stackoverflow.com les développeurs ne se soucient pas si aléatoire wifi opérateurs pouvez exécuter le script au hasard de faire semblant d'être stackoverflow... ou même de l'identification de l'ensemble du site. S'ils le faisaient, ils seraient à l'exécution de leur site sur le protocole SSL.
OriginalL'auteur Alex K | 2011-07-28
Vous devez vous connecter pour publier un commentaire.
Si vous regardez l'article https://developer.mozilla.org/en/Setting_up_extension_development_environment il propose de mettre en place certaines préférences, y compris
javascript.options.showInConsole
= true. Les journaux d'erreurs dans google chrome, fichiers pour la Console d'Erreur.il a travaillé! je veux dire, il a aidé 🙂 beaucoup plus facile maintenant, j'ai remplacé $.obtenir de la matière première xmlhttprequest, et il roule maintenant 🙂 merci 🙂
Est-il possible de débogage avec des points d'arrêt? Une erreur de la console est aussi utile qu'une mule sur les drogues. (mais oui, toujours mieux que rien)
Depuis FF19 vous pouvez utiliser intégré dans les outils de débogage dans le navigateur chrome lui-même, de voir cette réponse pour plus de détails: stackoverflow.com/questions/17547364/...
OriginalL'auteur Matthew Wilson
En général, il peut être problématique à l'aide de JQuery dans une page XUL, car il suppose que le document est un HTML DOM, plutôt que d'un XML DOM et que le
window
est un HTML fenêtre plutôt qu'un XUL fenêtre. Si j'étais vous, je voudrais utiliser le indice chargeur pour cela. Pour déboguer vous pouvez utiliser Venkman bien que c'est un peu excentriques et j'ai souvent eu recours à justedump()
des déclarations à la console à la place.Mise à jour: voir mon commentaire ci-dessous sur la Boîte À Outils Du Navigateur.
Venkman n'est pas aussi stable/utilisable en tant que le Navigateur intégré permet maintenant inclus dans Firefox maintenant.
Oui cette question est obsolète maintenant. Vous devriez poster une nouvelle réponse sur le boîte à outils du Navigateur (anciennement Navigateur Débogueur) qui je suis d'accord est une excellente nouvelle innovation (il a été autour pendant moins d'un an et devient plus stable avec chaque version).
OriginalL'auteur Matthew Gertner