Dotfiles_ArchAP/firefox-extension/session-v2
2026-10-07 05:54:56 +02:00
..
background.js feat(session): deploy validated one-click restore v2 and retire v1 2026-10-07 05:54:56 +02:00
manifest.json feat(session): deploy validated one-click restore v2 and retire v1 2026-10-07 05:54:56 +02:00
native-host.json.in feat(session): deploy validated one-click restore v2 and retire v1 2026-10-07 05:54:56 +02:00
README.md feat(session): deploy validated one-click restore v2 and retire v1 2026-10-07 05:54:56 +02:00

Companion Firefox Session Restore V2

Sources de l’extension utilisée par la recette réelle validée. ID : session-v2@labfy.org, version 1.0.0. Host : org.labfy.session_v2_identity. Permissions limitées à sessions et nativeMessaging : aucun accès à la navigation, aux cookies, à l’historique ou au contenu des onglets.

Build et signature

Depuis la racine du dépôt, python3 -B tools/build-session-v2.py construit build/session-v2/labfy-session-v2-unsigned.xpi. Le contenu du XPI est déterministe ; le bundle backend tar.gz est seulement une sortie locale. Aucun binaire ou XPI signé n’est versionné.

La distribution retenue est AMO unlisted, signée par Mozilla, puis installée localement avec consentement explicite. Envoyer le XPI non signé via le portail AMO de développement, choisir la distribution non répertoriée, récupérer le package signé et l’installer depuis le gestionnaire d’extensions Firefox. Les identifiants AMO restent hors du dépôt. Ne pas désactiver l’exigence de signature Firefox Release. Firefox 157 est la version minimale du manifeste.

Sur le profil utilisateur validé, l’extension signée est déjà active et browser.startup.page=3 est déjà configuré. Le nettoyage V1 ne modifie ni installation, ni permissions, ni préférence. Pour une nouvelle installation, le propriétaire du profil doit choisir explicitement la réouverture des fenêtres et onglets précédents.

Native host

Après déploiement Stow, rendre le template native-host.json.in en remplaçant @ABSOLUTE_NATIVE_HOST_LAUNCHER@ par le chemin absolu de $HOME/.config/quickshell/labfy-sway/session-v2-native-host.py. Conserver le nom du host, le type stdio et l’allowlist exacte de l’extension. Le wrapper doit rester exécutable.

Sur l’installation Linux validée, le manifeste est ${XDG_CONFIG_HOME:-$HOME/.config}/mozilla/native-messaging-hosts/org.labfy.session_v2_identity.json. Le chemin historique $HOME/.mozilla pointe vers cette arborescence. Sur un autre packaging Firefox, vérifier le répertoire Native Messaging utilisé avant installation. Créer le manifeste avec permissions 0600 ; ne pas écraser un host actif lors d’une simple mise à jour de documentation.

Le host accepte seulement le protocole map-window avec UUID et jeton runtime. Les messages sont bornés à 4096 octets ; la sortie standard est réservée au framing Native Messaging. Le host lit l’arbre Sway pour corréler le préfixe éphémère, sans exécuter de commande Sway mutatrice. L’extension retire ce préfixe après corrélation. Le provider exige des observations récentes et un publisher vivant ; une identité absente ou ambiguë produit un échec explicite.

Les UUID persistants appartiennent aux fenêtres Firefox ; les observations et identifiants de processus restent privés dans le runtime. Ne pas publier ces fichiers. Le provider demeure le candidat validé pour le profil supporté ; le multi-profil n’est pas pris en charge. Les fenêtres et onglets sont restaurés par Firefox, pas par une lecture de sessionstore côté Labfy.

Voir Session Restore V2 pour le cycle complet, les tests et les limites.