J’ai réussi à réaliser le tout premier module Cesium pour Firefox !
Méthodologie (à noter le problème de taille de fichier vendor.js > 4 Mo en fin d’explication) :
1) Il faut dézipper la version zip de Cesium.
2) Tout d’abord j’ai dû passer le manifest.json en version 2 (obligatoire), en y rajoutant le script background.js :
{
"short_name": "Cesium",
"name": "Cesium",
"manifest_version": 2,
"version": "1.3.11",
"description": "Manage your Duniter Wallet on a libre currency, like Ğ1",
"background": {
"scripts": ["background.js"]
},
"browser_action" : {
"default_title": "Cesium",
"default_icon": "img/logo.svg"
}
}
3) Rajouter à la racine un tout petit background.js qui sert à ouvrir un onglet firefox où se chargera Cesium lorsqu’on cliquera sur l’icône du module :
function openPage() {
browser.tabs.create({
url: "index.html"
});
}
browser.browserAction.onClicked.addListener(openPage);
4°) Pour tester le module (et oui c’est déjà fini !) :
Ouvrez about:debugging#/runtime/this-firefox dans Firefox (doc complète ici), cliquez sur « chargez un module complémentaire » et sélectionnez n’importe quel fichier du répertoire de Cesium.
L’icône Cesium va apparaître alors dans la barre d’outils. Lorsque vous cliquerez dessus, cela va tout simplement ouvrir Cesium dans un nouvel onglet.
L’installation ici est temporaire seulement, si on ferme et relance Firefox le module ne reste pas.
5°) Signature pour installation définitive dans Firefox (et donc possibilité de diffusion).
a) Il suffit de zipper tous les fichiers à partir de la racine (un module firefox, n’est qu’un .zip avec l’extension .xpi !).
b) Il vous faut un compte Firefox développeur
c) vous soumettez directement dans votre compte développeur
d) Ou bien (meilleure option pour automatiser le processus de génération du module) vous récupérez vos clés de signature
Vous installez web-ext.
Toujours à partir de la racine vous lancez la commande web-ext build, qui créera le .zip dans un dossier web-ext-artifacts
Et toujours à partir de la racine vous lancez la commande web-ext sign avec vos clés :
web-ext sign --api-key=user:xxxxxx:yyy --api-secret=zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
6) Impossibilité de signer le module avec la version zip de Cesium 1.3.11:
File is too large to parse.
Error: This file is not binary and is too large to parse. Files larger than 4MB will not be parsed. If your JavaScript file has a large list, consider removing the list and loading it as a separate JSON file instead.
dist_js/vendor.js
En effet ce fichier dist_js/vendor.js qui provient d’Ionic pèse 4,8 MB ! Ce problème de taille semble être signalé un peu partout, et des solutions plus ou moins développées existent…
J’ai choisi pour cette première version de minimiser ce .js pour aller vite. Ce qui a permis d’aller au bout de la procédure et d’obtenir cette première version de module Cesium pour Firefox.
L’opération peut donc être automatisée pour toutes les versions ultérieures, sous réserve de n’avoir que des fichiers de moins de 4 MO.
Une fois l’étape de signature personnelle validée, le module peut être installé par n’importe qui. On peut ensuite aussi soumettre le module dans la liste des modules officiels de Firefox.
A noter que la réalisation d’un module Firefox permet immédiatement d’avoir un logiciel multi-plateforme, sans portage, ne nécessitant donc que l’installation du navigateur libre le plus populaire de la planète.