Première version du module Cesium pour Firefox!

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.

15 J'aimes

Ca c’est génial ! :smiley: Super boulot @Galuel. T’es pas si rouillé que ça en informatique :wink:

5 J'aimes

On a recruté un nouveau développeur \o/

3 J'aimes

Excellent tout ça ! Ça va nous faire gagner beaucoup de temps.

Oui pas un soucis, j’utilise une lib gulp qui concatène les fichiers JS. Il me suffit de créer plusieurs fichiers au lieu d’un et le tour est joué.

Je ferai ça a mon retour de vacances-travaux, début mars.
A moins que quelqu’un d’autre veuille s’en occuper :slight_smile:

@Galuel et sous chromium, as tu testé ?

1 J'aime

Le format WebExtension devrait être compatible avec la majorité des navigateurs web du marché, qui ont la gestion de ce format. À tester…

4 J'aimes

Non, pas envie :slight_smile:

« Ne rien faire contre la volonté » Ruy Lopez de Segura - 1561 - Alcala de Henares

Super ça !

@scanlegentil a gentiment (:crazy_face:) fait une MR sur le dépôt idoine et le plugiciel Cesium pour Firefox est donc ajouté à la page téléchargements de cesium.app.

Merci @Galuel ; ça va être bien pratique ça :slight_smile:

4 J'aimes

Génial oui !
J’ai téléchargé et installé l’extension depuis le catalogue de Firefox, et ça marche impec :smiley: !
Bravo @Galuel et merci @scanlegentil

1 J'aime

Un idée de la raison pour laquelle l’extension n’est plus dispo dans le catalogue Mozilla ?

cesium-mozilla

oui :arrow_heading_down:

1 J'aime

Je vais essayer de finir les travaux aujourd’hui, pour une livraison propre sous addons.mozilla.org . J’ai déjà dû revoir pas mal de choses dans la construction de l’appli, afin qu’elle soit compatible, mais visiblement il me manque encore des choses… Quel boulot tout ça ! Pfiou

7 J'aimes

Bon, alors j’ai mis à jour une version 1.6.1 de Cesium sur addons.mozilla. « En attente de validation… »

Sinon, je viens de voir que pour Chrome/Chomium, le support des extensions risque bien de se terminer en juin 2020. En tous cas, il n’y aura plus de Chrome Store.
Ils préconisent donc de transformer les extensions en Progressive Web Application (PWA), avec support d’un extension connectable au navigateur pour supporter les fonctionnalités comme les notifications, etc.
Retour à la case départ ? :frowning:

Ben non, le module Firefox suffit, pourquoi vouloir aller sur des navigateurs douteux ?

2 J'aimes

Non, ce n’est pas le navigateur, mais la tendance. A voir ce que va décider Mozilla la dessus.
Et puis, comme tu le sais, la pédagogie c’est d’apprendre une chose l’une après l’autre, et non tout à la fois.
C’est ainsi qu’il existe une version Win de Cesium, et même mac… Ce qui n’est pas pour autant cautionner quoi que ce soit. C’est une question de priorité dans les choix : d’abord la monnaie libre, ensuite l’OS libre, etc.

En attendant, vous pouvez simplement installer le fichier cesium-v1.6.1-extension-firefox.xpi de la toute fraiche version officielle v1.6.1 de Cesium. une version stable, pour un moment j’espère… J’suis bien content ! :slight_smile:

2 J'aimes

Un message a été scindé en un nouveau sujet : [Cesium] Déploiement v1.6.1 sur le site Cesium.app

C’est Firefox qui mène la tendance, pas l’inverse. C’est contre la tendance de supposer que Mozilla qui mène le sujet devrait suivre les seconds couteaux aux pratiques hautement douteuses.

Espérons !

Heu la fin du Chrome Store c’est pour les apps chrome, pas pour les extensions… Ce n’était pas un standard, tandis que firefox si.

1 J'aime

TU veux dire qu’ils n’ont pas de catalogue d’extension ? Ou que celui-ci va continuer ? Alors comme déployer dessus ?

Tu déploies pas. Chrome c’est mal, Firefox c’est bien.

1 J'aime