Il faut savoir que l'interface utilisateur d'une application Mozilla comme Firefox, est définie dans un fichier XML (langage XUL). Ainsi, que ce soit la fenêtre principale, ou les boîtes de dialogues, tout est défini par des fichiers XUL.

Il y a aussi un mécanisme un peu spécial dans Mozilla : les overlays. C'est un moyen de modifier un fichier XUL sans y toucher. Un overlay se résume en fait à un second fichier XUL, dans lequel on fait référence à des éléments au premier fichier XUL. De ce fait, un overlay est lié à la structure du fichier XUL original.

C'est par ce mécanisme d'overlays que les extensions peuvent ajouter un menu, un bouton ou tout autre élément dans l'interface du navigateur, sans que les fichiers propres au navigateur soient modifiés physiquement.

Or d'une version à une autre, les fichiers XUL d'une application comme Firefox sont susceptibles de changer. Aussi, une extension fonctionnant très bien pour une version 1.0 peut ne plus fonctionner (ou plutôt apparaître) dans une version 1.5, puisque des éléments dans les fichiers XUL ont pu disparaître, ou être modifié.

C'est pourquoi les extensions ne sont prévues que pour une ou plusieurs versions spécifiques de Firefox. Et c'est spécifié dans un des fichiers de l'extension. Quand on installe une nouvelle version de Firefox, celui ci désactivent les extensions qui ne sont pas prévue pour sa version.

Bien souvent il suffit de changer le numéro de version de Firefox dans l'extension pour que celle-ci puisse être à nouveau utilisable. Mais ce n'est pas toujours suffisant, il faut certainement modifier les overlays. Tout dépend des changements qui ont été fait dans les fichiers XUL correspondant. Bien sûr, il y a aussi des évolutions dans les API de Firefox, et il peut aussi être nécessaire d'adapter les scripts de l'extension.

En résumé, les extensions sont prévues pour des versions spécifiques d'une application, et sont automatiquement désactivées pour les autres versions afin d'éviter des dysfonctionnements. Il faut donc installer une version de l'extension qui soit adaptée à la nouvelle version de l'application.