La raison la plus courante pour les conflits d'extension est l'utilisation des noms communs dans un espace de noms partagé. Par exemple, si deux extensions définissent une variable globale nommée "log" dans une superposition browser.xul, une seule d'entre elles fonctionnera comme prévu, puisque le "log" de l'autre sera écrasé.
La solution commune est d'apprendre lequel de vos ID sera jeté dans un espace partagé et de préfixer ceux avec votre propre préfixe unique.
Pour le code JavaScript que vous pourriez (et il est une bonne idée de toute façon) mettre votre code dans un objet:
var myExtension = {
onLoad: function() { ... },
...
}
au lieu de
function onLoad() {
}
Voici une très bonne écriture sur le sujet: http://blog.userstyles.org/2007/02/06/avoiding-extension-conflicts/.
D'autres conflits sont rares et doivent être débogués au cas par cas. Par exemple, il y avait un bug dans Mozilla qui provoquait la perte des écouteurs d'événement sur un nœud lorsque le nœud était déplacé sur le DOM. Cela a provoqué plusieurs conflits pour l'extension de l'éditeur de menu qui a permis à l'utilisateur de réorganiser les éléments de menu.