Interférences entre extensions à cause de Prototype ?

Vous vous penchez sur le développement d'applications ou d'extensions pour Mozilla ? C'est alors vers ce forum que se dirigeront naturellement vos requêtes...
LeDU
Arias
Messages : 7
Inscription : 06 oct. 2009, 01:15

Interférences entre extensions à cause de Prototype ?

Message par LeDU »

Bonjour

Depuis quelques mois, j'avais un soucis avec l'extension "Webmail Notifier" qui n'affichait plus la liste des comptes mail que j'avais enregistré.
J'avais déjà désactivé plusieurs extensions pour voir s'il y avait incompatibilité, mais le soucis était toujours là.

Aujourd'hui, je me suis décidé à rechercher de nouveau, mais j'y suis allé plus fort : j'ai désactivé toutes les extensions hormis celle-ci... et elle a fonctionné correctement !
J'ai réactivé les autres au fur et à mesure, et j'ai enfin découvert l'extension qui bloquait la liste des comptes (et la vérification des mails). Il s'agit de celle que j'ai pris en charge !
Bien étonné de cette recherche, j'ai décidé de comprendre le pourquoi... Et en effaçant directement des bouts de codes, j'ai découvert qu'une seule ligne était en cause, et elle se trouve même au début du XUL de l'extension :

Code : Tout sélectionner

<?xml version="1.0"?>
<?xml-stylesheet href="chrome://my-extension/skin/my-extension.css" type="text/css"?>
<overlay id="my-overlay" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">

  <script type="application/x-javascript" src="chrome://my-extension/content/prototype-1.5.1.1-xul.js" />
Il s'agit de cette ligne qui intègre le framework Prototype (en version 1.5.1.1 pour XUL).
Avez-vous des idées pour contourner ce problème ?

A noter que mon extension ne fonctionne pas (encore) correctement au delà de FireFox 3.0.19 (soit à partir de 3.5).
Merci d'avance.



[€DIT]
Ajout d'information... J'ai fouillé dans le code de Webmail Notifier et le blocage viendrait de l'appel à une API lors de l'initialisation de la liste :

Code : Tout sélectionner

var obj=com.tobwithu.util.decodeObject(this.nsIWebMailNotifier.getAccountInfo(i));
La fonction "getAccountInfo" fonctionne correctement.
Maintenant il faut que je trouve ce composant "tobwithu"...
[/€DIT]
LeDU
Arias
Messages : 7
Inscription : 06 oct. 2009, 01:15

Re: Interférences entre extensions à cause de Prototype ?

Message par LeDU »

J'ai apparemment trouvé l'origine du problème : dans le code de "Webmail Notifier", l'auteur a choisi d'utiliser des "for each()".

Code : Tout sélectionner

for each(var o in ar){...}
En plus d'être bien moins performant qu'un "for ()", j'ai l'impression qu'il y a une belle incompatibilité avec le "each" de Prototype.
A part remplacer les "for each" par des simples "for', je ne vois aucune solution... Et vous ?

Merci.
Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Google [Bot] et 1 invité