Votre extension peut contenir deux types de demandes de permission : les demandes de temps d'installation et les demandes de permission d'exécution. Cette page explique comment vous pouvez tester la façon dont vos utilisateurs verront les demandes de ces permissions.
Comportement de l'octroi de la permission pendant le test
Lorsque vous testez avec une extension non compressée utilisant about:debugging ou web-ext et les permissions d'installation et d'exécution sont traitées comme suit :
- Les demandes de permission de temps d'installation sont accordées en silence. Vous ne voyez pas les avertissements de permission que les utilisateurs verraient.
- Les demandes d'autorisation d'exécution affichent la demande d'accrochecomme d'habitude. Ces permissions restent en place jusqu'à ce qu'elles soient révoquées programmatiquement par l'extension, l'extension est supprimée en utilisant about:debugging ou redémarrer Firefox.
Observeer ou vérifier des demandes de permissions lors de l'installation
Vous suivez différents processus selon que vous souhaitez observer les demandes de permissions associées à une installation ou à une mise à niveau.
Demandes de permission pour l'installation d'extensions
Pour afficher les avertissements de permission de temps d'installation que les utilisateurs voient lors de l'installation de votre extension et retester les demandes d'autorisation d'exécution, installez l'extension depuis son fichier *.xpi ou *.zip.
Pour ce faire, vous devez utiliser un fichier *.xpi ou *.zip non signé :
- donnez un identifiant à votre extension à l'aide de la clé d'applications application.
- exécuter les versions Nightly ou Developer Edition de Firefox.
- Définissez la préférence about:config
xpinstall
.signatures.required
àfalse
.
Installez ensuite l'extension à l'aide de l'option Installer Add-on à partir du fichier dans le gestionnaire de modules complémentaires (about:addons). Au fur et à mesure que l'extension s'installe, la demande d'octroi des permissions s'affiche lors de l'installation, comme ceci :
Notez que le message d'avertissement concerne une extension non signée ; ce message ne s'affiche pas pendant l'installation depuis addons.mozilla.org.
Demande de permission pour la mise à niveau de l'extension
Pour plus de détails sur la façon de fournir des mises à jour d'extension Web lorsque vous hébergez vous-même votre extension, voir Mises à jour.
Pour afficher les avertissements d'autorisation de temps d'installation que les utilisateurs voient lorsque votre extension est mise à niveau par Firefox et retester les demandes d'autorisation d'exécution, vous installez l'extension depuis son fichier.xpi posté sur un serveur HTTP ou HTTPS.
Vous pouvez utiliser un serveur HTTP (tel qu'un simple serveur localhost python) ou un serveur HTTPS. Cependant, votre serveur HTTPS doit avoir un certificat vérifiable, que Firefox peut accepter automatiquement ; vous ne pouvez pas utiliser un certificat auto-signé. Si vous voulez tester à partir d'un serveur HTTPS mais n'en avez pas, les pages GitHub sont une option que vous pouvez utiliser.
Pour effectuer le test, vous devrez :
- déterminer l'adresse du serveur HTTP ou HTTPS où vous pouvez héberger les fichiers.
- utilisez la clé des applications manifest.json pour :
- donnez un identifiant à votre poste, si vous ne l'avez pas déjà fait.
- définir l'URL de mise à jour où vous hébergerez votre manifest de mise à jour. Par exemple :
… "applications": { "gecko": { "strict_min_version": "54.0a1", "update_url": "https://your-account.github.io/webextensions/upgrade.json", "id": "test@your-address.com" } }, …
- si nécessaire, créez un paquet contenant votre extension originale.
- mettre à jour votre extension et ajouter les détails des nouvelles permissions requises au fichier manifest.json, sans oublier de mettre à jour le numéro de version. Créez un paquet contenant votre extension mise à jour.
Si les paquets ont été générés avec des extensions.zip, changez-les en.xpi, sinon votre navigateur pourrait essayer de télécharger plutôt que d'installer l'extension.
- Créer la mise à jour du manifest avec les détails des deux versions d'extension, qui devrait être similaire à celui-ci :
{ "addons": { "test@your-address.com": { "updates": [ { "version": "n.0", "update_link": "https://your-account.github.io/webextensions/your-extension-1.0.xpi" }, { "version": "n+1.0", "update_link": "https://your-account.github.io/webextensions/your-extension-2.0.xpi" } ] } } }
- télécharger les deux paquets d'extension et les mises à jour manifestes sur votre serveur HTTP ou HTTPS.
- exécuter les versions Nightly ou Developer Edition de Firefox.
- dans about:config :
- Définissez la préférence
xpinstall.signatures.required
àfalse
. - Si vous utilisez Nightly et hébergez votre mise à jour sur un serveur HTTP, créez et définissez les préférences
extensions.checkUpdateSecurity
etextensions.install.requireSecureOrigin
àfalse
. Pour faire ceci :- entrez le nom de la préférence dans la zone de recherche.
- cliquez sur Ajouter.
- basculez la préférence pour la mettre à false.
- Définissez la préférence
- ouvrez le lien vers le premier fichier XPI pour l'installer.
- Ouvrez about:addons, cliquez sur l'icône cranter et cliquez sur Check for Updates.
- vous obtiendrez un message d'avertissement de permission, similaire à celui ci-dessous, détaillant les permissions supplémentaires demandées :
Si la mise à niveau n'a pas lieu, recherchez dans les logs addons.update-checker
de la console du navigateur. Toute erreur rencontrée au cours du processus de mise à niveau sera signalée dans le journal de logs.
Re-tester les permissions d'éxécution octroyées
Pour tester à nouveau les permissions d'exécution de votre extension et son comportement post-installation, vous avez deux choix :
- supprimez l'extension en utilisant about:debugging et réinstallez-la, ou redémarrez Firefox.
- si vous utilisez Nightly ou Developer Edition, utilisez l'extension web des extensions permission Manager pour supprimer les permissions.
Vous pouvez ensuite réexécuter l'extension et toutes les demandes de permissions d'exécution seront affichées comme si l'extension était exécutée pour la première fois.