Envoyé par : berserker
Date : 02/12/2005 12:52
Bonjour,
J'essai d'utiliser le nouveau système de mise à jour de firefox 1.5. j'ai installé mon extension à partir de mon serveur et je fais une mise à jour de celle ci, je change les numéro de versions dans install.rdf et update.rdf. Cependant la nouvelle version n'est pas détectée. Je dois aller dans outils>extensions et lancer une recherche des mises à jour pour qu'il détecte enfin une nouvelle version et il faut ensuite que je clique sur mettre à jour car il ne le fait pas automatiquement. J'ai observé que les nouvelles versions des xpi installées sur addons.mozilla sont détectés automatiquement mais pas installées là encore il faut le faire manuellement. Dans mes options dans l'onglet avancées>mises à jour il est pourtant cocher "télécharger et installer automatiquement les MAJ".
Y a t'il quelque chose de changer dans l'update.rdf (je n'ai trouvé aucune doc la dessus ) ?
Envoyé par : laurentj
Date : 06/12/2005 10:48
Cependant la nouvelle version n'est pas détectée.(...) J'ai observé que les nouvelles versions des xpi installées sur addons.mozilla sont détectés automatiquement
Je pense que c'est dû au système de sécurité : ton site où il y a le fichier update.rdf ne doit certainement pas être parmis la liste des sites autorisés à t'installer une extension.. ou un bug dans ce truc là.. je ne sais pas.
il est pourtant cocher "télécharger et installer automatiquement les MAJ".
il me semble que cette case ne concerne que les mise à jour de Firefox, et non des extensions. juste au dessus, j'ai bien marqué "when update to firefox are found".
Envoyé par : berserker
Date : 02/01/2006 12:11
Finalement, je me suis débrouillé en faisant appel aux fonctions déja existantes de mise à jour qui utilise l' élément XPCOM nsIExtensionManager.
J'ai créé un overlay qui regarde au démarrage de firefox si il y a une mise à jour pour mon extension
Envoyé par : Zéf
Date : 15/01/2006 18:42
C'est assez rapide comme explication ... :) Est-ce que quelqu'un qui a déja fait ça pourrait en faire profiter tout le monde ? Je pense que ça nous éviterait de passer un certain temps dessus (ça ne m'a pas l'air de couler de source ...)
Merci par avance, Zéf
Envoyé par : syndr0m
Date : 29/05/2006 18:12
Hello,
Ayant aussi cherché à updater "manuellement" une extension, voici un bout de code minimaliste utilisant les XPCom qui pourrait en aider d'autres : (code testé sous firefox 1.5.0.3)
/* ** pour plus d'infos ** cf. extensions.js qui se trouve dans chrome/toolkit.jar!/content/mozapps/extensions */ function UpdateCheckListener() { this._addons = []; } UpdateCheckListener.prototype = { _addons: [], onUpdateStarted: function() { }, onUpdateEnded: function() { if (this._addons.length > 0) em.addDownloads(this._addons, this._addons.length, true); }, onAddonUpdateStarted: function(addon) { }, onAddonUpdateEnded: function(addon, status) { switch (status) { // cf http://xulplanet.com/references/xpcomref/ifaces/nsIAddonUpdateCheckListener.html case Components.interfaces.nsIAddonUpdateCheckListener.STATUS_UPDATE: this._addons.push(addon); break; case Components.interfaces.nsIAddonUpdateCheckListener.STATUS_FAILURE: // ouch :) break; default : break; } }, QueryInterface: function(iid) { if (!iid.equals(Components.interfaces.nsIAddonUpdateCheckListener) && !iid.equals(Components.interfaces.nsISupports)) { throw gComponents.results.NS_ERROR_NO_INTERFACE; } return this; } };
// on instancie un composant type extension manager var em = Components.classes["@mozilla.org/extensions/manager;1"].getService(Components.interfaces.nsIExtensionManager); // on l'utilise pour recuperer la liste des extensions var items = em.getItemList(Components.interfaces.nsIUpdateItem.TYPE_ADDON, { }); // on instancie le listener tel que décrit dans le code ci dessus. var listener = new UpdateCheckListener(); // on update les extensions grace au composant em.update(items, items.length, false, listener);
ce code va donc updater toutes les extensions, il suffit de reduire la liste des items pour n'updater que la votre / ou celles de votre choix. Items est un tableau, vous pouvez avoir des infos de type
items[0].id // ex: monapplication@chezmoi.com items[0].name // ex: monapplication items[0].version // ex: 1.0.1
Attention de bien placer ce code après le chargement de la page ( dans votre onload par exemple).
Envoyé par : chris
Date : 06/06/2006 17:12
Sympa ça !
Je me demande si ça ne vaudrait pas une petite page dans les ressources du wiki ;-)
Envoyé par : chBok
Date : 06/06/2006 17:45
chris > n'hésite pas à éditer le wiki pour insérer cet exemple. Le point de départ serait ici : /wiki/RessourcesLibs. (Il faut juste penser à commenter l'exemple)
Envoyé par : chris
Date : 06/06/2006 17:48
Je pense qu'il est plus juste de laisser son auteur s'en charger
Envoyé par : chBok
Date : 07/06/2006 10:32
syndr0m a écrit:
[Mise à jour
d'extensions|http://xulfr.org/wiki/RessourcesLibs/
MajExtensions] :)
Merci :) C'est du bon boulot !
Il n'est plus possible de poster des messages dans ce forum.
Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.
Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™
sont des marques de la fondation Mozilla.