3.2 KiB
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.