Modules

Les WebExtensions et l'ID Add-on

Les extensions Firefox contiennent une ID unique qui sert à distinguer cet extension à partir de n'importe quel autre add-on Firefox.

Cet article explique comment les identifiants extensions sont gérés pour les extensions construites avec les API WebExtensions.

Les extensions de Firefox contiennent un identifiant unique à la fois dans Firefox lui-même et sur le site addons.mozilla.org (AMO). Par exemple, il est utilisé par Firefox pour vérifier les mises à jour des extensions installées et identifier les objets (tels que les magasins de données) controlés par cette extension.

Avec les anciens types d'add-on Firefox, le développeur d'extensions doit définir explicitement l'ID de celle-ci. Les extensions XUL / XPCOM définissent l'ID dans l'installation du manifest, tandis que les extensions SDK le configure dans le package.json.

Cependant, à partir de Firefox 48 vous pouvez développer, déboguer, publier et mettre à jour les extensions sans avoir à définir une ID explicite.

Notez que la capacité de développer et de déboguer des WebExtensions qui n'incluent pas d'ID est nouvelle dans Firefox 48. Si vous devez utiliser une version antérieure de Firefox, vous devez utiliser la clé des applications pour définir une ID de manière explicite.

Flux de base sans extension ID

Les extensions peuvent définir explicitement pour définir l'ID à l'aide de la clé des applications dans manifest.json. Cependant, cette clé est généralement facultative. Si vous ne le configurez pas, vous pouvez généralement développer, déboguer, publier et mettre à jour votre extension sans jamais avoir à traiter une ID. Un avantage de cela est que Google Chrome ne reconnaît pas la clé des applications et affichera un avertissement si vous l'incluez.

Notez cependant que certaines API WebExtension utilisent l'ID complémentaire et s'attendent à ce qu'elles soient identiques d'une session de navigateur à l'autre. Si vous utilisez ces API dans Firefox, vous devez définir l'ID explicitement à l'aide de la clé d'applications. Voir Quand avez-vous besoin d'un ID d'extension ?.

Développement et débogage

A partir de Firefox 48, si votre manifest.json ne contient pas d'identifiant, l'extension recevra une ID temporaire générée de manière aléatoire quand vous installez dans Firefox about:debugging. Si vous rechargez l'extension à l'aide du bouton "Recharger", la même ID sera utilisée. Si vous redemmarez Firefox et chargez l'extension, il obtiendra un nouvel ID.

quan

Si vous activez l'extension dans un .xpi ou .zip and installez-le sur about:addons, cela ne fonctionnera pas. Pour que cela fonctionne dans ce scénario, vous devrez ajouter la clé d'applications dans manifest.json

Publication

Une fois que vous avez terminé le développement de l'extension, vous pouvez l'emballer et l'envoyer à AMO pour examen et signature. Si l'extension emballée que vous téléchargez ne contient pas d'ID, AMO en générera une pour vous. C'est seulement à ce stade que l'add-on recevra une ID permanente, qui sera intégrée dans l'extension emballée signée.

Notez qu'une fois qu'une extension a reçu une ID permanente, vous ne pouvez pas la mettre à jour pour utiliser le SDK de l'extension ou les techniques XUL/XPCOM héritées. Si vous passez à l'une de ces plates-formes, vous devez la soumettre comme une nouvelle extension distincte, avec une nouvelle ID.

Mise à jour

Même après cet étape, vous n'avez généralement pas à traiter l'ID du tout. Vous pouvez continuer à développer l'add-on sans ID, et lorsque vous souhaitez mettre à jour, téléchargez la nouvelle version en visitant la page AMO de l'extension. Parce que vous téléchargez l'extension par cette page, AMO sait qu'il s'agit d'une mise à jour de ce complément particulier, bien qu'il ne contienne pas d'ID.

Il est essentiel, avec ce flux de travail, de mettre à jour manuellement à l'aide de sa page sur AMO, sinon AMO ne comprendra pas que la soumission est une mise à jour d'un add-on existant et traitera la mise à jour comme un nouveau add-on

Vous pouvez faire la même chose si vous mettez à jour un ancien type d'extension, tel qu'un complément XUL/XPCOM, pour utiliser les API WebExtensions. Visitez simplement la page de l'ancien add-on sur AMO, téléchargez la nouvelle extension là-bas, et elle sera traitée comme une mise à jour de l'ancienne version.

Quand avez-vous besoin d'un ID d'extension ?

  • Si vous chargez l'extension du fichier XPI, ne la chargez pas temporairement utilisez about:debugging et non signé.
  • Si vous utilisez l'API d'AMO pour télécharger votre extension, plutôt que de le charger manuellement sur sa page, vous devez inclure l'ID de l'extension dans la requête.
  • Certaines APIs WebExtension utilisent l'ID d'extension et s'attendent à ce qu'elles soient identiques d'une session de navigateur à l'autre. Si vous utilisez ces APIs, vous devez définir l'ID explicitement à l'aide de la clé des applications. Cela s'applique aux APIs suivantes :

 

 

 

Étiquettes et contributeurs liés au document

Étiquettes : 
 Contributeurs à cette page : ggrossetie, hellosct1
 Dernière mise à jour par : ggrossetie,