diff options
Diffstat (limited to 'files/fr/orphaned/mozilla/add-ons/webextensions')
19 files changed, 2736 insertions, 0 deletions
diff --git a/files/fr/orphaned/mozilla/add-ons/webextensions/api/userscripts/apiscript/index.html b/files/fr/orphaned/mozilla/add-ons/webextensions/api/userscripts/apiscript/index.html new file mode 100644 index 0000000000..1af1fed65e --- /dev/null +++ b/files/fr/orphaned/mozilla/add-ons/webextensions/api/userscripts/apiscript/index.html @@ -0,0 +1,43 @@ +--- +title: APIScript +slug: Mozilla/Add-ons/WebExtensions/API/userScripts/APIScript +tags: + - APIScript + - Add-ons + - Custimisation + - Extensions + - Firefox + - Reference + - WebExtensions + - userScripts +translation_of: Mozilla/Add-ons/WebExtensions/API/userScripts/APIScript +--- +<p>{{AddOnSidebar}}</p> + +<p>L'APIScript userScripts est un type spécial d'extension Content Script.</p> + +<p>Comme un script de contenu d'extension régulier :</p> + +<ul> + <li>Il s'exécute dans les processus de contenu..</li> + <li>Il a accès à la fenêtre et aux globes de documents relatifs à la page Web à laquelle il est attaché.</li> + <li>Il a accès au même sous-ensemble d'API WebExtension généralement disponibles dans un script de contenu.</li> +</ul> + +<p>Contrairement à une extension régulière Content Script :</p> + +<ul> + <li>Il doit être déclaré dans le manifeste en utilisant la propriété user_scripts.api_script.</li> +</ul> + +<pre class="brush: json">manifest.json +{ + ... + "user_scripts": { + "api_script": "apiscript.js" + } +}</pre> + +<p>Il est exécuté automatiquement sur n'importe quelle page Web correspondant à userScript enregistrée par la même extension, avant qu'un userScript correspondant ne soit exécuté.</p> + +<p>Il a accès à l'API Event browser.userScripts.onBeforeScript que l'APIScript peut utiliser pour inscrire un auditeur à appeler juste avant qu'un userScript correspondant soit exécuté, ce qui permet à l'APIScript d'exporter un ensemble de méthodes API personnalisées pour le rendre disponible à l'userScript.</p> diff --git a/files/fr/orphaned/mozilla/add-ons/webextensions/best_practices_for_updating_your_extension/index.html b/files/fr/orphaned/mozilla/add-ons/webextensions/best_practices_for_updating_your_extension/index.html new file mode 100644 index 0000000000..d8bff8eccc --- /dev/null +++ b/files/fr/orphaned/mozilla/add-ons/webextensions/best_practices_for_updating_your_extension/index.html @@ -0,0 +1,31 @@ +--- +title: Bonnes pratiques pour la mise à jour de votre extension +slug: >- + Mozilla/Add-ons/WebExtensions/bonnes_pratiques_pour_la_mise_a_jour_de_votre_extension +tags: + - Add-ons + - Extensions + - Guide + - WebExtensions +translation_of: Mozilla/Add-ons/WebExtensions/Best_practices_for_updating_your_extension +--- +<p>{{AddonSidebar}}</p> + +<p>Presque toutes les extensions doivent être mises à jour de temps en temps, que ce soit pour corriger des bugs ou ajouter de nouvelles fonctionnalités. La mise à jour de votre extension vaut la peine d'être planifiée méthodiquement, non seulement pour assurer la qualité des changements, mais aussi pour maximiser les possibilités d'engagement ou de réengagement avec votre public.</p> + +<p>Pour vous aider à fournir les mises à jour les plus productives, voici quelques conseils de la communauté des développeurs d'extensions Firefox :</p> + +<ul> + <li>Créez une feuille de route des fonctionnalités que vous souhaitez ajouter à votre extension, en n'oubliant pas de la mettre à jour en fonction des commentaires des utilisateurs. Prévoyez également la sortie de nouvelles versions de navigateurs, pour confirmer que rien ne casse votre extension et pour profiter des nouvelles fonctionnalités. Si vous voulez rendre votre feuille de route publique, ne soyez pas trop précis quant aux dates de livraison, car le non-respect des délais pourrait réduire la confiance des utilisateurs dans votre extension.</li> + <li>Effectuez des mises à jour selon un cycle régulier, mensuel ou trimestriel, à moins que vous n'ayez besoin de corriger un bogue critique. Les utilisateurs peuvent trouver des mises à jour plus fréquentes (par exemple quotidiennes ou même hebdomadaires), en particulier celles qui affectent les fonctionnalités, les fonctions, le comportement ou l'apparence de l'extension, trop perturbatrices. Le maintien d'un cycle de mise à jour régulier peut aider à maintenir l'engagement des utilisateurs.</li> + <li>En plus de tester la version actuelle de Firefox, testez votre extension dans les versions Firefox Nightly et Beta pour vous assurer qu'aucun changement ne risque d'affecter votre extension.</li> + <li>Inclure une page d'intégration qui décrit les améliorations et les changements inclus dans la mise à niveau - ne pas simplement dire "corrections de bogues et améliorations". Pour plus d'informations, voir <a href="/fr/docs/Mozilla/Add-ons/WebExtensions/onboarding_upboarding_offboarding_best_practices">Bonnes pratiques pour les utilisateurs d'embarquement, d'embarquement et de débarquement</a>.</li> + <li>Évitez de déplacer les fonctions "gratuites" derrière un mur payant, car la réaction des utilisateurs est susceptible d'être négative. (L'ajout de nouvelles fonctions payantes n'est généralement pas problématique. Cependant, l'ajout de fonctions payantes à une extension gratuite doit être manipulé avec précaution, pour éviter de donner l'impression que l'extension dans son ensemble doit maintenant être payée). Pour plus de détails, voir <a href="/fr/docs/Mozilla/Add-ons/Distribution/gagner_de_l_argent_avec_les_extensions_de_navigateur">Gagnez de l'argent avec les extensions de navigateur</a>.</li> + <li>Évitez de supprimer brusquement des fonctionnalités, pensez à prévoir une période d'obsolescence d'au moins un cycle de mise à niveau, en particulier lorsque vous n'avez pas de mesures pour l'utilisation de cette fonctionnalité. Le fait de prévoir une période d'amortissement permet aux utilisateurs de fournir une rétroaction sur les répercussions que vous n'avez peut-être pas prévues.</li> + <li>Fournir des instructions guidées pour les fonctions remplacées, telles que la conservation des anciens éléments de menu qui fournissent ensuite un message guidant l'utilisateur vers la nouvelle fonction.</li> + <li>Fournir une combinaison appropriée de corrections de bogues et de fonctionnalités nouvelles ou améliorées dans une mise à niveau. Les utilisateurs qui sont gênés par un bogue peuvent réagir négativement si vos mises à niveau ne semblent pas corriger les bogues. Cependant, si vous avez plusieurs correctifs techniques à apporter qui ont peu ou pas d'impact sur l'utilisateur, vous pouvez envisager de les inclure dans une version séparée, silencieuse (pas de page d'upboarding).</li> + <li>N'oubliez pas de mettre à jour la page de l'AMO de votre extension. Inclure vos notes de version dans la section dédiée. Mettez à jour la description pour couvrir les nouvelles fonctionnalités, remplacez ou ajoutez des captures d'écran, et pensez à modifier l'icône de votre extension pour mettre en évidence les modifications que vous avez apportées.</li> + <li>Inclure des nouvelles sur la mise à jour dans vos canaux tels que le site Web, les médias sociaux, les groupes d'utilisateurs, etc.</li> + <li>Après la publication de votre mise à jour, surveillez les évaluations et les commentaires, la rétroaction et les canaux de soutien pour vous assurer qu'il n'y a pas de réponses inattendues qui suggèrent des erreurs dans vos changements ou que les changements ne fonctionnent pas comme prévu.</li> + <li>Commencez à planifier votre prochaine mise à niveau !</li> +</ul> diff --git a/files/fr/orphaned/mozilla/add-ons/webextensions/choose_a_firefox_version_for_web_extension_develop/index.html b/files/fr/orphaned/mozilla/add-ons/webextensions/choose_a_firefox_version_for_web_extension_develop/index.html new file mode 100644 index 0000000000..69d23ee3ba --- /dev/null +++ b/files/fr/orphaned/mozilla/add-ons/webextensions/choose_a_firefox_version_for_web_extension_develop/index.html @@ -0,0 +1,218 @@ +--- +title: Choisissez une version Firefox pour le développement d'extensions web +slug: >- + Mozilla/Add-ons/WebExtensions/choisissez_une_version_firefox_pour_le_developpement_extensions_web +tags: + - Add-ons + - Développement + - Extensions + - Guide + - Outils + - Tools +translation_of: >- + Mozilla/Add-ons/WebExtensions/Choose_a_Firefox_version_for_web_extension_develop +--- +<p>{{AddonSidebar}}</p> + +<p>Firefox propose plusieurs versions qui offrent différentes capacités pour le développement d'extensions web. Cet article donne un aperçu des différences entre ces versions de Firefox et recommande comment les utiliser dans le cycle de développement.</p> + +<p>Ce tableau résume les informations sur les éditions, les fonctionnalités de développement d'extension et fournit une recommandation pour chaque édition utilisée dans le développement d'extension.</p> + +<table> + <thead> + <tr> + <th scope="col"> + <p>Edition</p> + </th> + <th scope="col"> + <p>Version</p> + </th> + <th scope="col"> + <p>Stable</p> + </th> + <th scope="col"> + <p>Outils pour le développement de l'extension</p> + </th> + <th scope="col"> + <p>Installe les extensions non signées</p> + </th> + <th scope="col"> + <p>Utilisation recommandée pour le développement de l'extension</p> + </th> + </tr> + </thead> + <tbody> + <tr> + <td> + <p><a href="https://www.mozilla.org/fr/firefox/">Release</a></p> + </td> + <td> + <p>Courant</p> + </td> + <td> + <p>Oui</p> + </td> + <td> + <p>Oui</p> + </td> + <td> + <p>Non</p> + </td> + <td> + <p>Tests de régression</p> + + <p>Tests alpha et bêta par l'utilisateur</p> + </td> + </tr> + <tr> + <td> + <p><a href="https://beta.mozilla.org">Beta</a></p> + </td> + <td> + <p>Courant+1</p> + </td> + <td> + <p>Oui</p> + </td> + <td> + <p>Oui</p> + </td> + <td> + <p>Non</p> + </td> + <td> + <p>Tests de régression</p> + + <p>Tests alpha et bêta par l'utilisateur</p> + </td> + </tr> + <tr> + <td> + <p><a href="https://www.mozilla.org/fr/firefox/channel/desktop/#developer">Developer Edition</a></p> + </td> + <td> + <p>Courant +1</p> + </td> + <td> + <p>Oui</p> + </td> + <td> + <p>Oui</p> + </td> + <td> + <p>Oui</p> + </td> + <td> + <p>Développement de l'extension</p> + </td> + </tr> + <tr> + <td> + <p><a href="https://nightly.mozfr.org/">Nightly</a></p> + </td> + <td> + <p>Courant +2</p> + </td> + <td> + <p>Non</p> + </td> + <td> + <p>Oui</p> + </td> + <td> + <p>Oui</p> + </td> + <td> + <p>Accès anticipé à la dernière API WebExtension</p> + </td> + </tr> + <tr> + <td> + <p><a href="https://www.mozilla.org/fr/firefox/organizations/">ESR</a></p> + </td> + <td> + <p>Courant - >1</p> + </td> + <td> + <p>Oui</p> + </td> + <td> + <p>Oui</p> + </td> + <td> + <p>Oui</p> + </td> + <td> + <p>Développement de la vulgarisation au sein des entreprises</p> + </td> + </tr> + </tbody> +</table> + +<h2 id="Firefox_version_and_their_web_extension_development_capabilities">Firefox version and their web extension development capabilities</h2> + +<h3 id="Finale">Finale</h3> + +<p>C'est la version de Firefox que la plupart des gens utilisent, c'est la version offerte quand quelqu'un visite la <a href="https://www.mozilla.org/fr/firefox/">page principale de téléchargement Firefox</a>.</p> + +<p>Vous chargez les extensions en cours de développement dans cette version de Firefox en utilisant <a href="/fr/docs/Outils/about:debugging">about:debugging</a> ou <a href="/fr/docs/Mozilla/Add-ons/WebExtensions/Getting_started_with_web-ext">web-ext</a> et avez accès à la <a href="/fr/docs/Outils/Boîte_à_outils_du_navigateur">fenêtre de débogage de l'addon</a>. Cependant, vous ne pouvez pas installer des extensions non signées, ce qui limite votre capacité à tester des fonctionnalités telles que le comportement de redémarrage, les invites d'autorisation et les mises à niveau.</p> + +<p>Le développement d'extensions pour Firefox pour Android est entièrement supporté.</p> + +<p>Utilisation suggérée pour le développement : Vous pouvez installer et tester une copie signée de votre extension dans la version de publication pour effectuer un test de régression final. Vous pouvez également distribuer des copies signées de votre extension à d'autres personnes pour les aider à effectuer des tests alpha ou bêta.</p> + +<p><a href="https://www.mozilla.org/fr/firefox/">Téléchargement</a></p> + +<h3 id="Béta">Béta</h3> + +<p>Cette version de Firefox est généralement utilisée par les personnes intéressées à profiter des fonctionnalités de la prochaine version de Firefox.</p> + +<p>Vous chargez les extensions en cours de développement dans cette version de Firefox en utilisant <a href="/fr/docs/Outils/about:debugging">about:debugging</a> ou <a href="/fr/docs/Mozilla/Add-ons/WebExtensions/Getting_started_with_web-ext">web-ext</a> et avez accès à la <a href="/fr/docs/Outils/Boîte_à_outils_du_navigateur">fenêtre de débogage de l'addon</a>. Cependant, vous ne pouvez pas installer des extensions non signées, ce qui limite votre capacité à tester des fonctionnalités telles que le comportement de redémarrage, les invites d'autorisation et les mises à niveau.</p> + +<p>Le développement d'extensions pour Firefox pour Android est entièrement supporté.</p> + +<p>Utilisation suggérée pour le développement : Vous pouvez installer et tester une copie signée de votre extension dans Beta pour effectuer un test de régression. De tels tests vous donneront une certaine certitude que votre extension continuera à fonctionner correctement dans la prochaine version de Firefox. Vous pouvez également distribuer des copies signées de votre extension à d'autres personnes pour les aider à effectuer des tests alpha ou bêta.</p> + +<p><a href="https://beta.mozilla.org">Téléchargement</a></p> + +<h3 id="Edition_développeur">Edition développeur</h3> + +<p>Cette version de Firefox est basée sur la version bêta de Firefox avec des fonctionnalités supplémentaires conçues pour aider au développement du Web et des extensions Web.</p> + +<p>Vous chargez les extensions en cours de développement dans cette version de Firefox en utilisant <a href="/fr/docs/Outils/about:debugging">about:debugging</a> ou <a href="/fr/docs/Mozilla/Add-ons/WebExtensions/Getting_started_with_web-ext">web-ext</a> et avez accès à la <a href="/fr/docs/Outils/Boîte_à_outils_du_navigateur">fenêtre de débogage de l'addon</a>. Vous pouvez également installer des extensions non signées, après avoir ajusté ou paramétré certaines propriétés de about:config (généralement moins de changements que nécessaire pour réaliser les mêmes tâches dans Nightly). Cela vous permet de tester des fonctionnalités telles que le comportement de redémarrage, les invites d'autorisation et les mises à niveau.</p> + +<p>Le développement d'extensions pour Firefox pour Android est entièrement supporté.</p> + +<p>Utilisation suggérée pour le développement : Utilisez Developer Edition comme votre principale plate-forme de développement et de test d'extensions web.</p> + +<p><a href="https://www.mozilla.org/fr/firefox/channel/desktop/#developer">Téléchargement</a></p> + +<h3 id="Nightly">Nightly</h3> + +<p>Cette version de Firefox fournit une version qui est mise à jour tous les soirs avec les dernières fonctionnalités de développement pour la future version de Firefox. Il est généralement utilisé par les personnes intéressées à découvrir les toutes dernières fonctionnalités et à donner leur avis lorsqu'elles rencontrent des problèmes.</p> + +<p>Vous chargez les extensions en cours de développement dans cette version de Firefox en utilisant <a href="/fr/docs/Outils/about:debugging">about:debugging</a> our <a href="/fr/docs/Mozilla/Add-ons/WebExtensions/Getting_started_with_web-ext">web-ext</a> et avez accès à la <a href="/fr/docs/Outils/Boîte_à_outils_du_navigateur">fenêtre de débogage de l'addon</a>. Vous pouvez également installer des extensions non signées, après avoir ajusté ou configuré certaines propriétés de about:config. Cela vous permet de tester des fonctionnalités telles que le comportement de redémarrage, les invites d'autorisation et les mises à niveau.</p> + +<p>Le développement d'extensions pour Firefox pour Android est entièrement supporté.</p> + +<p>Utilisation suggérée pour le développement : Nightly fournit un aperçu des futures fonctionnalités de Firefox, y compris les API WebExtension, qui sont en cours de développement. La stabilité des fonctionnalités n'est pas garantie, par conséquent, Nightly n'est pas recommandé comme plateforme de développement d'extension web principale. Vous pouvez, cependant, utiliser Nightly là où vous voulez profiter des fonctionnalités à venir ou tester pour vous donner la plus longue vue d'ensemble de la compatibilité de votre extension avec Firefox.</p> + +<p><a href="https://nightly.mozilla.org">Download</a></p> + +<h3 id="ESR">ESR</h3> + +<p>La version ESR (Extended Support Release) de Firefox offre des fonctionnalités permettant aux professionnels informatiques de configurer et de déployer Firefox dans leur organisation. Il fournit également aux entreprises une version de Firefox stable du point de vue des fonctionnalités pour une durée plus longue que celle du cycle de version normal. Ainsi, au moment d'écrire ces lignes, la version de sortie de Firefox était de 65 (avec Beta sur 66 et Nightly sur 67) la version ESR était de 60.</p> + +<p>Vous chargez les extensions en cours de développement dans cette version de Firefox en utilisant <a href="/fr/docs/Outils/about:debugging">about:debugging</a> ou <a href="/fr/docs/Mozilla/Add-ons/WebExtensions/Getting_started_with_web-ext">web-ext</a> et avez accès à la <a href="/fr/docs/Outils/Boîte_à_outils_du_navigateur">fenêtre de débogage de l'addon</a>. Vous pouvez également installer des extensions non signées, après avoir ajusté ou défini certaines propriétés de about:config (cette fonctionnalité est fournie pour que les entreprises puissent installer des extensions qu'elles veulent garder privées et ne veulent pas soumettre à add-ons.mozilla.org pour signature).</p> + +<p>Le développement d'extensions pour Firefox pour Android est entièrement supporté.</p> + +<p>Utilisation suggérée pour le développement : Utilisez ESR comme principale plate-forme de développement et de test d'extensions Web lors du développement d'extensions pour une entreprise et vous souhaitez confirmer que l'ensemble des fonctionnalités de votre extension est compatible avec la version ESR.</p> + +<p><a href="https://www.mozilla.org/fr/firefox/organizations/">Téléchargement</a></p> + +<div class="SnapLinksContainer" style="margin-left: 0px; margin-top: 0px; display: none;"> +<div class="SL_SelectionRect"> +<div class="SL_SelectionLabel"></div> +</div> +<svg class="SnapLinksHighlighter" xmlns:xmlns="http://www.w3.org/2000/svg"> <rect height="0" width="0"></rect> </svg></div> diff --git a/files/fr/orphaned/mozilla/add-ons/webextensions/comparison_with_the_add-on_sdk/index.html b/files/fr/orphaned/mozilla/add-ons/webextensions/comparison_with_the_add-on_sdk/index.html new file mode 100644 index 0000000000..52ec132d64 --- /dev/null +++ b/files/fr/orphaned/mozilla/add-ons/webextensions/comparison_with_the_add-on_sdk/index.html @@ -0,0 +1,746 @@ +--- +title: Comparaison avec le SDK Add-on +slug: Mozilla/Add-ons/WebExtensions/Comparaison_avec_le_SDK_Add-on +tags: + - Addon SDK + - AddonSDK + - SDK + - WebExtensions + - porting +translation_of: Mozilla/Add-ons/WebExtensions/Comparison_with_the_Add-on_SDK +--- +<div>{{AddonSidebar}}</div> + +<p>Cet article est une comparaison technique entre les add-ons construits avec le SDK et ceux construits avec la technologie WebExtensions. Il est destiné à aider les personnes maintenant un add-on SDK à le porter vers une WebExtension.</p> + +<div class="blockIndicator warning"> +<p>La prise en charge des extensions utilisant XUL/XPCOM ou le SDK Add-on a été supprimée dans Firefox 57, publié en novembre 2017. Comme il n'y a pas de version supportée de Firefox permettant ces technologies, cette page sera supprimée d'ici décembre 2020.</p> +</div> + +<p>Si vous souhaitez porter une <a href="/fr/docs/Archive/Add-ons/Overlay_Extensions">extension de surcouche</a> ou une <a href="/fr/docs/Mozilla/Add-ons/Bootstrapped_extensions">extension <em>bootstrappée</em></a>, consultez la page de <a href="/fr/docs/Mozilla/Add-ons/WebExtensions/Comparison_with_XUL_XPCOM_extensions">comparaison des extensions XUL/XPCOM</a>.</p> + +<p>Les WebExtensions et add-ons SDK partagent les mêmes concepts et structures de base. Ces deux technologies utilisent :</p> + +<ul> + <li>Des <a href="/fr/Add-ons/WebExtensions/Comparison_with_the_Add-on_SDK#Manifest_files">fichiers de manifeste</a> qui définissent les métadonnées de l'extension et certains aspects de son comportement.</li> + <li>Des <a href="/fr/Add-ons/WebExtensions/Comparaison_avec_le_SDK_Add-on#Scripts_persistants">scripts persistants</a> qui accèdent à un ensemble d'API JavaScript privilégiées et qui restent chargés tant que l'extension est activée.</li> + <li>Des <a href="/fr/Add-ons/WebExtensions/Comparaison_avec_le_SDK_Add-on#Scripts_de_contenu">scripts de contenu</a> qui peuvent être injectés dans les pages web et qui peuvent communiquer avec les scripts persistants grâce à une API de messagerie asynchrone.</li> + <li><a href="/fr/Add-ons/WebExtensions/Comparaison_avec_le_SDK_Add-on#Éléments_d'interface_utilisateur">La possibilité d'ajouter des éléments d'interface utilisateur spécifiques</a>, tels que des boutons, au navigateur. Ces boutons peuvent ainsi donner accès à des fenêtres contextuelles définies en HTML, JavaScript et CSS.</li> + <li><a href="/fr/Add-ons/WebExtensions/Comparison_with_the_Add-on_SDK#JavaScript_APIs">Un ensemble d'API JavaScript privilégiées</a> pour interagir avec le Web ou avec le navigateur.</li> + <li><a href="/fr/Add-ons/WebExtensions/Comparaison_avec_le_SDK_Add-on#Outil_en_ligne_de_commande">Un outil en ligne de commande</a> que les développeurs peuvent utiliser afin de tester leurs extensions.</li> +</ul> + +<p>Au-delà de ces ressemblances, il existe de nombreuses différences énumérées ci-après.</p> + +<h2 id="Les_fichiers_de_manifeste">Les fichiers de manifeste</h2> + +<p>Pour ces deux technologies, on dispose d'un fichier manifeste en JSON situé dans le répertoire racine de l'extension. Dans le SDK, ce fichier est appelé <code><a href="/en-US/docs/Archive/Add-ons/Add-on_SDK/Tools/package_json">package.json</a></code> ; pour les WebExtensions, ce fichier s'intitule <code><a href="/fr/Add-ons/WebExtensions/manifest.json">manifest.json</a></code>. Les deux fichiers contiennent des métadonnées de base telles que le nom, la description et les icônes de l'extension.</p> + +<p>Cependant, <code>manifest.json</code> contient de nombreuses clés qui définissent certaines capacités et certains comportements de l'extension. Pour le SDK, certaines sont définies dans le code :</p> + +<table class="fullwidth-table standard-table"> + <thead> + <tr> + <th scope="col">Fonctionnalité</th> + <th scope="col">SDK</th> + <th scope="col">WebExtensions</th> + </tr> + </thead> + <tbody> + <tr> + <td>Scripts de contenu correspondant aux modèles d'URL</td> + <td>API <code><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/page-mod">page-mod</a></code></td> + <td>Clé de manifeste <code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/manifest.json/content_scripts">content_scripts</a></code></td> + </tr> + <tr> + <td>Boutons de la barre d'outils</td> + <td>API <code><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/ui_button_action">ui/button/action</a></code></td> + <td>Clé de manifeste <code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/manifest.json/browser_action">browser_action</a></code></td> + </tr> + <tr> + <td>Accéder aux API privilégiées</td> + <td>Fonction <code>require()</code></td> + <td>Clé de manifeste <code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/manifest.json/permissions">permissions</a></code></td> + </tr> + </tbody> +</table> + +<p>Les WebExtensions sont donc plus déclaratives et moins programmables que les add-ons construits avec le SDK.</p> + +<p>Pour le SDK, on utilisera généralement <code><a href="/fr/Add-ons/SDK/Tools/jpm#jpm_init">jpm init</a></code> afin de créer un nouveau <code>package.json</code>. La technologie WebExtensions n'a pas d'équivalent de <code>jpm init</code>, le fichier de manifeste sera probablement écrit à partir de zéro ou adapté d'un fichier existant.</p> + +<h3 id="En_savoir_plus">En savoir plus</h3> + +<ul> + <li><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/manifest.json">Le fichier <code>manifest.json</code></a></li> +</ul> + +<h2 id="Scripts_persistants">Scripts persistants</h2> + +<p>Les deux technologies utilisent des scripts persistants qui restent chargés pendant que l'extension est active. Ces scripts accèdent à des API privilégiées et peuvent communiquer avec d'autres parties de l'extension telles que les scripts de contenu.</p> + +<p>Dans le SDK, par défaut, ce script est appelé <code>index.js</code> et il <a href="/en-US/docs/Archive/Add-ons/Add-on_SDK/Guides/Module_structure_of_the_SDK#Local_Modules">peut charger d'autres scripts à l'aide du chargeur de module</a>.</p> + +<p>Avec les WebExtensions, ces scripts sont appelés <a href="/fr/Add-ons/WebExtensions/Anatomy_of_a_WebExtension#Background_scripts">scripts d'arrière-plan</a>. Vous pouvez définir un ensemble de scripts listés via la clé de manifeste <code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/manifest.json/background">background</a></code> et tous seront chargés dans le même document (une page HTML vierge cachée et générée automatiquement). Vous pouvez également définir votre propre document personnalisé à l'aide de la clé <code>background</code>.</p> + +<p>Une différence importante est que les scripts d'arrière-plan ont accès à la variable globale <code><a href="/fr/docs/Web/API/Window">window</a></code> globale qui permet d'utiliser l'ensemble des objets DOM habituellement présents dans une fenêtre. De cette façon, l'écriture des extensions se rapproche de l'écriture de pages web avec un accès direct à l'ensemble des API Web classiques (par exemple <a href="/fr/docs/Web/API/XMLHttpRequest">XMLHttpRequest</a> ou <a href="/fr/docs/Web/API/API_IndexedDB">IndexedDB</a>).</p> + +<p>On notera également que, par défaut, les extensions ont une <a href="/fr/Add-ons/WebExtensions/Content_Security_Policy">politique de sécurité de contenu (CSP)</a> qui leur est appliquée. Vous pouvez spécifier votre propre politique, mais la politique par défaut, entre autres, interdit les pratiques potentiellement dangereuses telles que l'utilisation d'<code><a href="/fr/docs/Web/JavaScript/Reference/Objets_globaux/eval">eval()</a></code>.</p> + +<h3 id="En_savoir_plus_2">En savoir plus</h3> + +<ul> + <li><a href="/fr/Add-ons/WebExtensions/Anatomy_of_a_WebExtension#Background_scripts">Scripts d'arrière-plan pour les extensions</a></li> +</ul> + +<h2 id="Scripts_de_contenus">Scripts de contenus</h2> + +<p>Pour les extensions SDK et les WebExtensions, les scripts persistants ne peuvent pas accéder directement au contenu des pages web. Au lieu de cela, les extensions peuvent ajouter des scripts de contenu aux pages web. Ces scripts :</p> + +<ul> + <li>accèdent directement au contenu web</li> + <li>n'accèdent pas aux API privilégiées</li> + <li>peuvent communiquer avec les scripts persistants avec une API de messagerie.</li> +</ul> + +<p>Pour les deux technologies, on dispose de deux façons pour ajouter des scripts de contenu : on peut rattacher un ensemble de scripts aux pages dont l'URL contient un motif donné ou on peut, via le code, ajouter un script à une page d'un onglet donné. Si ces mécanismes existent dans les deux technologies, ils sont exécutés différemment :</p> + +<table class="fullwidth-table standard-table"> + <thead> + <tr> + <th scope="col">Opération</th> + <th scope="col">SDK</th> + <th scope="col">WebExtensions</th> + </tr> + </thead> + <tbody> + <tr> + <td>Attacher des scripts à des pages dont l'URL correspond à un motif</td> + <td>API <code><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/page-mod">page-mod</a></code></td> + <td>Clé de manifeste <code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/manifest.json/content_scripts">content_scripts</a></code></td> + </tr> + <tr> + <td>Attacher des scripts à des pages hébergées dans un onglet</td> + <td><code><a href="/fr/Add-ons/SDK/High-Level_APIs/tabs#Run_scripts_in_a_tab">tab.attach()</a></code></td> + <td><code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/tabs/executeScript">tabs.executeScript()</a></code></td> + </tr> + </tbody> +</table> + +<p>Les motifs de correspondance utilisés pour les URL sont différentes :</p> + +<ul> + <li><a href="/fr/docs/Archive/Add-ons/Add-on_SDK/Low-Level_APIs/util_match-pattern">Motif de correspondance pour le SDK</a></li> + <li><a href="/fr/Add-ons/WebExtensions/match_patterns">Motif de correspondance pour les WebExtensions</a></li> +</ul> + +<p>Dans les deux technologies, on peut passer des options pour contrôler lorsque le script s'exécute et s'il sera attaché aux sous-trames. Les WebExtensions n'ont pas d'équivalent pour <code>contentScriptOptions</code> et, si on veut transmettre les options de configuration à un script de contenu, il faudra les envoyer via un message ou les stocker dans <code><a href="/fr/Add-ons/WebExtensions/API/storage/local">storage.local</a></code>.</p> + +<p>Dans les deux technologies, les scripts de contenu peuvent communiquer avec des scripts persistants grâce à une API de communication asynchrone :</p> + +<table class="fullwidth-table standard-table"> + <thead> + <tr> + <th scope="col">Opération</th> + <th scope="col">SDK</th> + <th scope="col">WebExtensions</th> + </tr> + </thead> + <tbody> + <tr> + <td>Envoi de message</td> + <td><a href="/fr/Add-ons/SDK/Guides/Content_Scripts/port#emit()"><code>port.emit()</code></a></td> + <td><code><a href="/fr/Add-ons/WebExtensions/API/runtime/sendMessage">runtime.sendMessage()</a></code> / <code><a href="/fr/Add-ons/WebExtensions/API/tabs/sendMessage">tabs.sendMessage()</a></code></td> + </tr> + <tr> + <td>Réception de message</td> + <td><code><a href="/fr/Add-ons/SDK/Guides/Content_Scripts/port#on()">port.on()</a></code></td> + <td><code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/runtime/onMessage">runtime.onMessage</a></code></td> + </tr> + </tbody> +</table> + +<ul> + <li><a href="/fr/Add-ons/SDK/Guides/Content_Scripts#Communicating_with_the_add-on">Communiquer avec des scripts persistants dans le SDK</a></li> + <li><a href="/fr/Add-ons/WebExtensions/Content_scripts#Communicating_with_background_scripts">Communiquer avec des scripts persistants dans les WebExtensions</a></li> +</ul> + +<p>Dans les deux cas, les scripts de contenus peuvent communiquer avec les scripts chargés par la page à l'aide de <code><a href="/fr/docs/Web/API/Window/postMessage">window.postMessage</a></code> et <code><a href="/fr/docs/Web/API/EventTarget/addEventListener">window.addEventListener</a></code>.</p> + +<p>Dans les deux cas, les scripts accèdent à une vue « propre » du DOM : cela signifie qu'ils ne voient pas les modifications apportées au DOM par les scripts chargés par la page.</p> + +<p>Dans le SDK, les scripts de contenu peuvent <a href="/fr/Add-ons/SDK/Guides/Content_Scripts/Interacting_with_page_scripts#Sharing_objects_with_page_scripts">partager des objets avec des scripts de page</a>, en utilisant des techniques comme <code>unsafeWindow</code> et <code><a href="/fr/docs/Mozilla/Tech/XPCOM/Language_Bindings/Components.utils.createObjectIn">createObjectIn</a></code>. Avec les WebExtensions, la <code>unsafeWindow</code> est disponible par l'intermédiaire de <code><a href="/fr/Add-ons/WebExtensions/Content_scripts#Accessing_page_script_objects_from_content_scripts">wrappedJSObject</a></code>. Toutes les fonctions d'aide à l'exportation sont également disponibles.</p> + +<h3 id="En_savoir_plus_3">En savoir plus</h3> + +<ul> + <li><a href="/fr/Add-ons/WebExtensions/Content_scripts">Scripts de contenu des WebExtensions</a></li> +</ul> + +<h2 id="Les_éléments_d'interface_utilisateur_(UI)">Les éléments d'interface utilisateur (<em>UI</em>)</h2> + +<p>Les deux technologies fournissent des API pour créer une interface utilisateur pour l'extension. Les options d'interface utilisateur pour les WebExtensions sont plus limitées.</p> + +<table class="fullwidth-table standard-table"> + <thead> + <tr> + <th scope="col">Elément d'interface</th> + <th scope="col">SDK</th> + <th scope="col">WebExtensions</th> + </tr> + </thead> + <tbody> + <tr> + <td>Bouton</td> + <td><code><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/ui_button_action">ui/button/action</a></code></td> + <td><code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/manifest.json/browser_action">browser_action</a></code> / <code><a href="/fr/Add-ons/WebExtensions/manifest.json/page_action">page_action</a></code></td> + </tr> + <tr> + <td>Interrupteur / Bouton à bascule</td> + <td><code><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/ui_button_toggle">ui/button/toggle</a></code></td> + <td><code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/manifest.json/browser_action">browser_action</a></code> / <code><a href="/fr/Add-ons/WebExtensions/manifest.json/page_action">page_action</a></code></td> + </tr> + <tr> + <td>Barre d'outils</td> + <td><code><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/ui_toolbar">ui/toolbar</a></code></td> + <td>Aucun</td> + </tr> + <tr> + <td>Barre latérale</td> + <td><code><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/ui_sidebar">ui/sidebar</a></code></td> + <td><code>sidebar_action</code></td> + </tr> + <tr> + <td>Panneau</td> + <td><code><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/panel">panel</a></code></td> + <td><code>browser_action</code> / <code>page_action</code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/Popups"> popup</a></td> + </tr> + <tr> + <td>Menu contextuel</td> + <td><code><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/context-menu">context-menu</a></code></td> + <td><code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/contextMenus">contextMenus</a></code></td> + </tr> + </tbody> +</table> + +<h3 id="Panneaux_et_fenêtres_contextuelles">Panneaux et fenêtres contextuelles</h3> + +<p>Les panneaux et les <a href="/fr/docs/Mozilla/Add-ons/WebExtensions/Popups">fenêtres contextuelles</a> sont des boites de dialogue transitoires définies à l'aide de HTML, CSS et JavaScript.</p> + +<p>Contrairement aux panneaux, les fenêtres contextuelles sont toujours attachées à un bouton (une action de navigateur ou une action de page) et ne peuvent pas être affichés par programmation : ils ne s'affichent que lorsque l'utilisateur clique sur le bouton.</p> + +<p>Aussi, contrairement aux panneaux, les scripts des fenêtres contextuelles ont accès aux mêmes API que les scripts d'arrière-plan. Ils peuvent même accéder directement à la page d'arrière-plan, via <code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/runtime/getBackgroundPage">runtime.getBackgroundPage()</a></code>.</p> + +<h2 id="Paramètres">Paramètres</h2> + +<p>Les extensions SDK et les WebExtensions permettent toutes les deux de gérer des paramètres (aussi appelées options ou préférences).</p> + +<p>Avec le fichier SDK, il est possible d'indiquer des paramètres via la clé <code>preferences</code> dans le fichier <code>package.json</code>. L'utilisateur peut voir et modifier ces préférences via l'entrée du Gestionnaire de modules de l'extension. À l'inverse, l'extension peut écouter les changements de paramètres à l'aide de l'API <code><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/simple-prefs">simple-prefs</a></code>.</p> + +<p>Dans les WebExtensions, vous devrez implémenter votre propre interface utilisateur afin de présenter les paramètres et votre propre code pour les garder en mémoire pour votre extension. Pour cela, on écrira un fichier HTML qui présente les paramètres et qui peut inclure un script permettant de les sauvegarder. Le script a accès à toutes les API des WebExtensions et on utilisera généralement l'API <code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/storage">storage</a></code> pour la mémorisation.</p> + +<p>L'URL du fichier HTML pour l'écran des paramètres doit être indiqué avec la clé <code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/manifest.json/options_ui">options_ui</a></code> du fichier <code>manifest.json</code>. La page de paramètres apparaît alors dans l'entrée de l'extension sous le Gestionnaire de modules des extensions. La page d'options peut également être ouverte via le code grâce à un appel à <code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/runtime/openOptionsPage">browser.runtime.openOptionsPage</a></code>.</p> + +<p>On notera que les WebExtensions ne permettent pas d'accéder aux préférences du navigateur (c'est-à-dire les préférences exposées dans le SDK par <code><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/preferences_service">preferences/service</a></code>). Toutefois, il est possible de modifier certains paramètres du navigateur grâce aux API <code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/privacy">privacy</a></code> et <code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/browserSettings">browserSettings</a></code>.</p> + +<h3 id="En_apprendre_plus">En apprendre plus</h3> + +<ul> + <li><a href="/fr/Add-ons/WebExtensions/Anatomy_of_a_WebExtension#Options_pages">Introduction aux pages de paramètres</a></li> + <li><a href="https://github.com/mdn/webextensions-examples/tree/master/favourite-colour">Un exemple d'extension qui a une page d'options</a></li> +</ul> + +<h2 id="Internationalisation">Internationalisation</h2> + +<p>Le SDK et les WebExtensions contiennent tous les deux des outils de localisation pour traduire le texte qui sera visible par l'utilisateur. Ces deux outils offrent des fonctionnalités similaires :</p> + +<table class="fullwidth-table standard-table"> + <thead> + <tr> + <th scope="col">Fonctionnalités</th> + <th scope="col">SDK</th> + <th scope="col">WebExtensions</th> + </tr> + </thead> + <tbody> + <tr> + <td>Chaînes dans les scripts d'arrière-plan</td> + <td>Oui</td> + <td>Oui</td> + </tr> + <tr> + <td>Chaînes dans les scripts de contenu</td> + <td>Non</td> + <td>Oui</td> + </tr> + <tr> + <td>Chaînes dans les fichiers HTML</td> + <td>Oui</td> + <td>Non</td> + </tr> + <tr> + <td>Chaînes dans les fichiers CSS</td> + <td>Non</td> + <td>Oui</td> + </tr> + <tr> + <td>Titre et descriptions</td> + <td>Oui</td> + <td>Oui</td> + </tr> + <tr> + <td>Gestion des formes plurielles</td> + <td>Oui</td> + <td>Non</td> + </tr> + <tr> + <td>Textes de substitution (<em>placeholders</em>)</td> + <td>Oui</td> + <td>Oui</td> + </tr> + </tbody> +</table> + +<p>Dans les deux systèmes, les chaînes traduites sont fournies via un ensemble de fichier : un pour chaque locale.</p> + +<p>Pour récupérer les chaînes localisées dans le code de l'extension, on peut utiliser l'API JavaScript <code><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/l10n">l10n</a></code> dans le SDK et l'API <code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/i18n">i18n</a></code> pour les WebExtensions.</p> + +<p>Les WebExtensions ne gèrent pas nativement la localisation des chaînes présentes dans les fichiers HTML : il faut le faire soi-même en utilisant JavaScript pour récupérer des chaînes localisées et pour remplacer dynamiquement le contenu HTML par la version localisée.</p> + +<h3 id="En_savoir_plus_4">En savoir plus</h3> + +<ul> + <li><a href="/fr/Add-ons/WebExtensions/Internationalization">Le guide d'internationalisation des extensions.</a></li> + <li><a href="https://github.com/mdn/webextensions-examples/tree/master/notify-link-clicks-i18n">Exemple d'extension internationalisée.</a></li> + <li><a href="https://gist.github.com/freaktechnik/4a72bc0711d9bc82cf3b075bcc292953">Exemple de script la traduction des documents HTML d'une extension WebExtensions à la façon du SDK</a></li> +</ul> + +<h2 id="Outil_en_ligne_de_commande">Outil en ligne de commande</h2> + +<p>Le SDK livré avec un outil en ligne de commande : <a href="/fr/docs/Mozilla/Add-ons/SDK/Tools/jpm">jpm</a> qu'on peut utiliser pour tester et empaqueter les extensions. Il existe un outil équivalent pour les WebExtensions : <a href="/fr/docs/Mozilla/Add-ons/WebExtensions/Getting_started_with_web-ext">web-ext</a>. Web-ext ne prend pas en charge les mêmes commandes que jpm, mais gère <code><a href="/fr/Add-ons/WebExtensions/web-ext_command_reference#web-ext_run">run</a></code>, <code><a href="/fr/Add-ons/WebExtensions/web-ext_command_reference#web-ext_build">build</a></code> et <code><a href="/fr/Add-ons/WebExtensions/web-ext_command_reference#web-ext_sign">sign</a></code>.</p> + +<p>Il est maintenant possible d'installer (et de recharger) des extensions SDK et les extensions construites avec les API WebExtension dans Firefox à partir de leur répertoire source, sans avoir besoin de les empaqueter dans un fichier XPI. Voir <a href="/fr/Add-ons/WebExtensions/installation_temporaire_dans_Firefox">l'installation temporaire dans Firefox</a>.</p> + +<h3 id="En_savoir_plus_5">En savoir plus</h3> + +<ul> + <li><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/Getting_started_with_web-ext">Tutoriel web-ext</a></li> + <li><a href="/fr/Add-ons/WebExtensions/web-ext_command_reference">Référence web-ext</a></li> + <li><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/Temporary_Installation_in_Firefox">Instalation temporaire dans Firefox</a></li> +</ul> + +<h2 id="Les_API_JavaScript">Les API JavaScript</h2> + +<p>Que ce soit pour le SDK et les WebExtensions, la puissance des extensions provient d'un ensemble d'API JavaScript dédiées. Pour la plupart des API SDK de haut niveau, il existe un équivalent WebExtensions.</p> + +<p>Une grande limitation de WebExtensions par rapport au SDK est que les modules complémentaires SDK peuvent utiliser <code>require("chrome")</code> pour accéder à la gamme complète des API XPCOM dans Firefox. Ceci n'est pas possible avec WebExtensions.</p> + +<p>Pour accéder aux API privilégiées dans le SDK, on utilise <code>require()</code> :</p> + +<pre class="brush: js">var tabs = require("sdk/tabs"); +tabs.open("https://developer.mozilla.org/");</pre> + +<p>Avec WebExtensions, la plupart des API sont déjà disponibles, sans avoir besoin de les importer :</p> + +<pre class="brush: js">browser.tabs.create({ + "url": "/" +});</pre> + +<p>Pour certaines API WebExtension, vous devez d'abord demander la permission, en utilisant la clé des <code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/manifest.json/permissions">permissions</a></code> de manifest.json. Dans l'exemple ci-dessous, l'extension doit demander l'autorisation <code>"tabs"</code> si elle souhaite accéder à l'URL de l'onglet :</p> + +<p><code><strong>manifest.json</strong></code></p> + +<pre class="brush: json">... + +"permissions": [ + "tabs" + ] + +...</pre> + +<p><strong>Script d'arrière-plan</strong></p> + +<pre class="brush: js">function logUrl(tabs) { + console.log(tabs[0].url); +} + +var querying = browser.tabs.query( + {active: true, currentWindow: true} +); + +querying.then(logUrl); +</pre> + +<h3 id="Comparaison_des_API_SDK_WebExtension">Comparaison des API SDK / WebExtension</h3> + +<p>Les tableaux de cette section répertorient chaque API du SDK et indiquent l'API WebExtension équivalente si elle existe.</p> + +<p>Le premier tableau couvre les API SDK de haut niveau, le second couvre les API bas niveau.</p> + +<h4 id="API_haut_niveau">API haut niveau</h4> + +<table class="fullwidth-table standard-table"> + <thead> + <tr> + <th scope="col">SDK</th> + <th scope="col">WebExtensions</th> + </tr> + </thead> + <tbody> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/addon-page">addon-page</a></td> + <td><code><a href="/fr/Add-ons/WebExtensions/API/tabs/create">tabs.create()</a></code> peut être utilisé pour charger des pages packagées avec l'add-on dans des onglets de navigateur.</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/base64">base64</a></td> + <td><a href="/fr/docs/Web/API/WindowBase64"><code>window.atob()</code> et <code>btoa()</code></a></td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/clipboard">clipboard</a></td> + <td><code><a href="/fr/docs/Web/API/Document/execCommand">document.execCommand</a></code> sans <code>select()</code> sur la page d'arrière-plan.</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/context-menu">context-menu</a></td> + <td><code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/contextMenus">contextMenus</a></code></td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/hotkeys">hotkeys</a></td> + <td><code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/commands">commands</a></code></td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/indexed-db">indexed-db</a></td> + <td><code><a href="/fr/docs/Web/API/IndexedDB_API">window.indexedDB</a></code></td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/l10n">l10n</a></td> + <td><code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/i18n">i18n</a></code></td> + </tr> + <tr> + <td><a href="/fr/Add-ons/SDK/High-Level_APIs/notifications">notifications</a></td> + <td><code><a href="/fr/Add-ons/WebExtensions/API/notifications">notifications</a></code></td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/page-mod">page-mod</a></td> + <td><code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/manifest.json/content_scripts">content_scripts</a></code></td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/page-worker">page-worker</a></td> + <td> + <p>Le portage n'est pas terminé et est décrit dans le <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1318532">bug 1318532</a></p> + + <p>Les méthodes de contournement (qui peuvent avoir besoin de <code>webrequestBlocking</code> pour accéder à l'ensemble des pages [<a href="https://stackoverflow.com/questions/15532791/getting-around-x-frame-options-deny-in-a-chrome-extension">exemple</a>]) :</p> + + <ul> + <li>Utiliser la page d'arrière-plan</li> + <li>Charger des <em>iframes</em> distantes dans la page d'arrière-plan</li> + <li>Effectuer un appel <a href="/fr/docs/AJAX">XHR</a> pour obtenir les informations statiques de la page.</li> + </ul> + </td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/panel">panel</a></td> + <td>Voir la section <a href="/fr/Add-ons/WebExtensions/Porting_from_the_Add-on_SDK#UI_elements">sur les interfaces utilisateur</a>.</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/passwords">passwords</a></td> + <td><a href="https://github.com/web-ext-experiments/logins">L'API expérimentale <code>logins</code></a></td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/private-browsing">private-browsing</a></td> + <td><code><a href="/fr/Add-ons/WebExtensions/API/Tabs/Tab">Tab.incognito</a></code> et <code><a href="/fr/Add-ons/WebExtensions/API/windows/Window">Window.incognito</a></code>.</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/querystring">querystring</a></td> + <td><code><a href="/fr/docs/Web/API/URLSearchParams">window.URLSearchParams</a></code></td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/request">request</a></td> + <td><code><a href="/fr/docs/Web/API/Fetch_API">window.fetch</a></code> ou <code><a href="/fr/docs/Web/API/XMLHttpRequest">window.XMLHttpRequest</a></code></td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/selection">selection</a></td> + <td>Utiliser un script de contenu qui envoie la donnée sélectionnée l'add-on. Sinon, si on peut utiliser un menu contextuel sur une sélection, celle-ci sera contenue dans <code>selectionText</code> (<code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/contextMenus/OnClickData">contextMenus.OnClickData</a></code>).</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/self">self</a></td> + <td><code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/runtime/getManifest">runtime.getManifest()</a></code> et <code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/extension/getURL">extension.getURL()</a></code> pour <code>data.url()</code></td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/simple-prefs">simple-prefs</a></td> + <td><code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/storage">storage</a></code> et <code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/manifest.json/options_ui">options_ui</a></code></td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/simple-storage">simple-storage</a></td> + <td><code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/storage">storage</a></code></td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/system">system</a></td> + <td>Partiellement couvert par <code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/runtime">runtime</a></code>.</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/tabs">tabs</a></td> + <td><code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/tabs">tabs</a></code></td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/timers">timers</a></td> + <td><code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/alarms">alarms</a></code></td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/ui">ui</a></td> + <td>Voir la section <a href="/fr/Add-ons/WebExtensions/Porting_from_the_Add-on_SDK#UI_elements">sur les éléments d'interface.</a></td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/url">url</a></td> + <td><code><a href="/fr/docs/Web/API/Window/URL">window.URL</a></code></td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/widget">widget</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/windows">windows</a></td> + <td><code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/windows">windows</a></code></td> + </tr> + </tbody> +</table> + +<h4 id="API_bas_niveau">API bas niveau</h4> + +<table class="fullwidth-table standard-table"> + <thead> + <tr> + <th scope="col">SDK</th> + <th scope="col">WebExtensions</th> + </tr> + </thead> + <tbody> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/_loader">loader</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/chrome">chrome</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/console_plain-text">console/plain-text</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/console_traceback">console/traceback</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/content_content">content/content</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/content_loader">content/loader</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/content_mod">content/mod</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/content_symbiont">content/symbiont</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/content_worker">content/worker</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/core_heritage">core/heritage</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/core_namespace">core/namespace</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/core_promise">core/promise</a></td> + <td><code><a href="/fr/docs/Web/JavaScript/Reference/Global_Objects/Promise">Promise</a></code></td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/dev_panel">dev/panel</a></td> + <td><code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/devtools.panels">devtools.panels</a></code></td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/event_core">event/core</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/event_target">event/target</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/frame_hidden-frame">frame/hidden-frame</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/frame_utils">frame/utils</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/fs_path">fs/path</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/io_byte-streams">io/byte-streams</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/io_file">io/file</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/io_text-streams">io/text-streams</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/lang_functional">lang/functional</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/lang_type">lang/type</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/loader_cuddlefish">loader/cuddlefish</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/loader_sandbox">loader/sandbox</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/net_url">net/url</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/net_xhr">net/xhr</a></td> + <td><code><a href="/fr/docs/Web/API/Fetch_API">window.fetch</a></code> ou <code><a href="/fr/docs/Web/API/XMLHttpRequest">window.XMLHttpRequest</a></code></td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/places_bookmarks">places/bookmarks</a></td> + <td><code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/bookmarks">bookmarks</a></code></td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/places_favicon">places/favicon</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/places_history">places/history</a></td> + <td><code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/history">history</a></code></td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/platform_xpcom">platform/xpcom</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/preferences_event-target">preferences/event-target</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/preferences_service">preferences/service</a></td> + <td>Prise en charge partielle via les API <code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/privacy">privacy</a></code> et <code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/browserSettings">browserSettings</a></code></td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/remote_child">remote/child</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/remote_parent">remote/parent</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/stylesheet_style">stylesheet/style</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/stylesheet_utils">stylesheet/utils</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/system_child_process">system/child_process</a></td> + <td><code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/runtime/connectNative">runtime.connectNative</a></code></td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/system_environment">system/environment</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/system_events">system/events</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/system_runtime">system/runtime</a></td> + <td>Prise en charge partielle via <code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/runtime/getPlatformInfo">runtime.getPlatformInfo</a></code></td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/system_xul-app">system/xul-app</a></td> + <td>Prise en charge partielle via <code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/runtime/getBrowserInfo">runtime.getBrowserInfo</a></code></td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/tabs_utils">tabs/utils</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/ui_button_action">ui/button/action</a></td> + <td><code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/manifest.json/browser_action">browser_action</a></code> / <code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/manifest.json/page_action">page_action</a></code></td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/ui_button_toggle">ui/button/toggle</a></td> + <td><code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/manifest.json/browser_action">browser_action</a></code> / <code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/manifest.json/page_action">page_action</a></code></td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/ui_frame">ui/frame</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/ui_id">ui/id</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/ui_sidebar">ui/sidebar</a></td> + <td><code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/sidebarAction">sidebarAction</a></code></td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/ui_toolbar">ui/toolbar</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/util_array">util/array</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/util_collection">util/collection</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/util_deprecate">util/deprecate</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/util_list">util/list</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/util_match-pattern">util/match-pattern</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/util_object">util/object</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/util_uuid">util/uuid</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/window_utils">window/utils</a></td> + <td>Aucun</td> + </tr> + </tbody> +</table> diff --git a/files/fr/orphaned/mozilla/add-ons/webextensions/developer_accounts/index.html b/files/fr/orphaned/mozilla/add-ons/webextensions/developer_accounts/index.html new file mode 100644 index 0000000000..7cd2470cf8 --- /dev/null +++ b/files/fr/orphaned/mozilla/add-ons/webextensions/developer_accounts/index.html @@ -0,0 +1,26 @@ +--- +title: Comptes développeurs +slug: Mozilla/Add-ons/WebExtensions/Compte_developpeurs +tags: + - Développement + - Extensions + - publications +translation_of: Mozilla/Add-ons/WebExtensions/Developer_accounts +--- +<p>{{AddonSidebar}}</p> + +<p>Les comptes développeurs pour addons.mozilla.org sont intégrés aux <a href="https://accounts.firefox.com/signup">comptes Firefox</a>, ce qui vous permet d'accéder et de gérer plusieurs services Mozilla depuis un seul compte. Vous pouvez gérer votre compte Firefox à partir de <a href="https://accounts.firefox.com/settings">accounts.firefox.com/settings</a>.</p> + +<h3 id="Définition_dun_nom_daffichage">Définition d'un nom d'affichage</h3> + +<p>Il est important de définir un nom d'affichage sur votre <a href="https://addons.mozilla.org/firefox/users/edit">profil sur addons.mozilla.org </a>pour augmenter la transparence avec les utilisateurs, les évaluateurs et la communauté.</p> + +<div class="blockIndicator note"> +<p>Le nom d'affichage de votre compte Firefox ne sera pas synchronisé avec votre profil sur addons.mozilla.org. Vous devrez définir le nom d'affichage de votre compte développeur à partir de votre profil sur addons.mozilla.org</p> +</div> + +<h3 id="Comptes_bloqués">Comptes bloqués</h3> + +<p>Afin d'empêcher les acteurs malveillants de soumettre des spams à addons.mozilla.org, nous n'accepterons pas les soumissions provenant de comptes qui utilisent une adresse e-mail temporaire jetable, ou qui ont soumis plusieurs add-ons qui violent nos <a href="/en-US/docs/Mozilla/Add-ons/AMO/Policy/Reviews">Politiques de add-on</a>.</p> + +<p>Si vous pensez que votre compte a été bloqué par erreur, veuillez envoyer un email à amo-admins [at] mozilla [dot] com et inclure un lien vers votre profil développeur.</p> diff --git a/files/fr/orphaned/mozilla/add-ons/webextensions/distribution_options/add-ons_for_desktop_apps/index.html b/files/fr/orphaned/mozilla/add-ons/webextensions/distribution_options/add-ons_for_desktop_apps/index.html new file mode 100644 index 0000000000..270308150e --- /dev/null +++ b/files/fr/orphaned/mozilla/add-ons/webextensions/distribution_options/add-ons_for_desktop_apps/index.html @@ -0,0 +1,30 @@ +--- +title: Extensions pour applications de bureau +slug: >- + Mozilla/Add-ons/WebExtensions/Alternative_distribution_options/Add-ons_for_desktop_apps +tags: + - Add-ons + - Desktop + - Guide + - Installation + - WebExtensions +translation_of: Mozilla/Add-ons/WebExtensions/Distribution_options/Add-ons_for_desktop_apps +--- +<div>{{AddonSidebar()}}</div> + +<p>Si vous avez développé un module complémentaire à une application de bureau, vous pouvez installer le module complémentaire de plusieurs façons :</p> + +<ul> + <li>Dirigez l'utilisateur à installer à partir de <a href="http://addons.mozilla.org" rel="noreferrer">addons.mozilla.org</a> (AMO) en offrant un lien.</li> + <li>Chargement latéral.</li> + <li>En utilisant le registre Windows.</li> +</ul> + +<p>Parmi ces options, il est recommandé d'indiquer à l'utilisateur d'installer à partir d'AMO en proposant un lien. Les raisons de recommander cette option sont les suivantes :</p> + +<ul> + <li>Cela évite tout problème avec le processus d'installation. l'utilisateur n'obtiendra pas de messages interstitiels pendant l'installation du module complémentaire, trouvera le module complémentaire installé mais sera désactivé ou constatera que le module complémentaire n'a pas été installé.</li> + <li>Si vous mettez à jour le module complémentaire, la nouvelle version sera automatiquement installée, une fois que vous l'aurez téléchargé sur AMO.</li> +</ul> + +<p>En revanche, le chargement de fichiers à l'aide des <a href="/fr/Add-ons/WebExtensions/Alternative_methods_of_installing_add-ons/Sideloading_add-ons#Installation_using_the_standard_extension_folders">dossiers d'extension standard</a> ou du <a href="/fr/Add-ons/WebExtensions/Alternative_methods_of_installing_add-ons/Installing_add-ons_in_an_enterprise_environment#Installation_using_the_Windows_registry">registre Windows</a> nécessite que votre application de bureau installe toute mise à jour du module complémentaire. En outre, en fonction des paramètres par défaut de Firefox, le processus d'installation présentera des avertissements à l'utilisateur (message interstitiel) ou installera le module en mode silencieux, mais le désactivera. Le pire des cas est que l'installation échouera silencieusement si Firefox est configuré pour <a href="/fr/Add-ons/WebExtensions/Alternative_methods_of_installing_add-ons/Installing_add-ons_in_an_enterprise_environment#Controlling_automatic_installation">désactiver l'installation automatique</a>. Vous pouvez mettre à jour la <a href="/fr/Add-ons/WebExtensions/Alternative_methods_of_installing_add-ons/Installing_add-ons_in_an_enterprise_environment#Settings_scope_preferences_programmatically">configuration de Firefox</a> pour éviter ces problèmes, mais ce n'est pas recommandé.</p> diff --git a/files/fr/orphaned/mozilla/add-ons/webextensions/distribution_options/add-ons_in_the_enterprise/index.html b/files/fr/orphaned/mozilla/add-ons/webextensions/distribution_options/add-ons_in_the_enterprise/index.html new file mode 100644 index 0000000000..4e5d88d0d7 --- /dev/null +++ b/files/fr/orphaned/mozilla/add-ons/webextensions/distribution_options/add-ons_in_the_enterprise/index.html @@ -0,0 +1,166 @@ +--- +title: Les Add-ons en entreprise +slug: >- + Mozilla/Add-ons/WebExtensions/Alternative_distribution_options/Add-ons_in_the_enterprise +tags: + - Add-ons + - Guide + - Installation +translation_of: Mozilla/Add-ons/WebExtensions/Distribution_options/Add-ons_in_the_enterprise +--- +<div>{{AddonSidebar()}}</div> + +<p>En tant qu'administrateur informatique d'entreprise, vous souhaiterez peut-être installer des modules complémentaires automatiquement pour vos utilisateurs. Cette page présente les options.</p> + +<h2 id="Extensions_signées_et_non_signées">Extensions signées et non signées</h2> + +<p>Depuis Firefox 43, tous les modules complémentaires doivent être signés avant de pouvoir être installés dans les versions standard ou bêta de Firefox. Les modules non signés peuvent être installés dans les versions<a href="/fr/Firefox/Developer_Edition"> Developer Edition</a>, <a href="/en-US/docs/Mozilla/Firefox#Firefox_Nightly">Nightly</a>, et <a href="/en-US/docs/Mozilla/Firefox/Enterprise_deployment#Extended_Support_Release_(ESR)">ESR</a> de firefox, après avoir basculé la préférence <code>xpinstall.signatures.required</code> dans <code>about:config</code>.</p> + +<p>Si vous souhaitez installer des modules complémentaires non signés, le déploiement d'une version <a href="/en-US/docs/Mozilla/Firefox/Enterprise_deployment#Extended_Support_Release_(ESR)">ESR</a> de Firefox est l'approche recommandée. Une fois cela fait, les add-ons non signés peuvent être installés en utilisant n'importe quelle méthode, y compris l'ouverture du fichier add-on à partir d'une page Web.</p> + +<p>L'approche alternative et recommandée, est d'utiliser l'option pour les add-ons non listés sur <a href="http://addons.mozilla.org" rel="noreferrer">addons.mozilla.org</a> (AMO). Cette option signifie que vous pouvez obtenir un module complémentaire signé sans qu'il soit répertorié dans le répertoire des modules complémentaires publics. Cette fonctionnalité fournit un module signé immédiatement. Ce module signé peut ensuite être installé à partir d'une page Web derrière le pare-feu, ou installé en utilisant l'une des options décrites ici.</p> + +<h2 id="Chargement_latéral">Chargement latéral</h2> + +<p>Vous pouvez charger un module complémentaire à l'aide de l'un des dossiers d'extension standard, comme décrit dans <a href="/fr/Add-ons/WebExtensions/Alternative_distribution_options/Sideloading_add-ons#Installation_à_l'aide_des_dossiers_d'extension_standard">Installation à l'aide de dossiers d'extension standard</a>.</p> + +<h2 id="Installation_à_l'aide_du_registre_Windows">Installation à l'aide du registre Windows</h2> + +<p>Cette section explique comment installer des modules complémentaires dans Firefox en utilisant le registre Windows.</p> + +<div class="warning">Avant Firefox 62, il était possible de charger des extensions décompressées en faisant pointer la clé de registre Windows sur un répertoire contenant une extension non empaquetée. +<p>À partir de Firefox 62, cela n'est plus possible et la clé doit pointer vers un fichier XPI empaqueté, comme décrit dans cette section.</p> +</div> + +<div class="note"> +<p>Il est prudent de modifier les clés de registre pendant que Firefox est en cours d'exécution.</p> +</div> + +<ol> + <li>Assurez-vous que le module complémentaire possède un ID complémentaire, en incluant ce qui suit dans son fichier manifest.json, en remplaçant <em>your-add-on-name@your-domain.com</em> with par un ID approprié pour votre module complémentaire : + + <pre>"applications": { + "gecko": { + "id": "your-add-on-name@your-domain.com" + } + }</pre> + Un identifiant de style d'adresse e-mail est recommandé.</li> + <li>Signez votre module dans AMO en utilisant l'option non listée. Pour plus de détails, voir <a href="/fr/Add-ons/Distribution">Signature et distribution de votre module complémentaire</a>.</li> + <li>Téléchargez le fichier XPI signé et assurez-vous que le nom de fichier est l'ID du module plus l'extension <code>.xpi</code>. Par exemple, <code>c:/webext/borderify@example.com.xpi</code></li> + <li>Ouvrez Regedit et ajoutez les clés comme suit : + <ul> + <li>Ajoutez à tous les utilisateurs de l'ordinateur les clés de registre suivantes : + <pre>HKEY_LOCAL_MACHINE\Software\Mozilla\Firefox\Extensions</pre> + + <p>ou</p> + + <pre>HKEY_LOCAL_MACHINE\Software\Wow6432Node\Mozilla\Firefox\Extensions</pre> + + <div class="note"> + <p dir="ltr"><code>HKEY_LOCAL_MACHINE\Software\Mozilla\Firefox\Extensions</code> n'est pas disponible lors de l'exécution de Firefox 32 bits sur une machine 64 bits, vous ne pouvez installer que pour tous les utilisateurs utilisant la clé <code>Wow6432Node</code>.</p> + </div> + </li> + <li>Pour l'utilisateur actuel, ajoutez à la clé de registre suivante : + <pre>HKEY_CURRENT_USER\Software\Mozilla\Firefox\Extensions</pre> + </li> + </ul> + </li> + <li>Créez une nouvelle valeur de chaîne. Entrée de Registre dont le nom est identique à l'ID du module complémentaire, par exemple, borderify@example.com,et une valeur égale à l'emplacement où le module complémentaire est stocké, par exemple, <code>c:/webext/borderify@example.com.xpi</code>.</li> + <li>Redémarrez Firefox. Le module complémentaire est détecté, mais l'utilisateur peut se voir présenter un interstitiel ou doit activer le module complémentaire dans le module complémentaire avant de pouvoir l'utiliser. Voir <a href="#Firefox_settings">les paramètres de Firefox</a>.)</li> +</ol> + +<p>Si le même add-on apparaît sous <code>HKEY_CURRENT_USER</code> et <code>HKEY_LOCAL_MACHINE</code>, l'instance sous <code>HKEY_CURRENT_USER</code> sera utilisée. Si le même module complémentaire apparaît dans le répertoire de profil de l'utilisateur (par exemple, s'il l'a déjà installé manuellement), cette version aura la priorité sur toutes les instances trouvées dans le Registre.</p> + +<p>Pour supprimer un module installé à l'aide du registre Windows, supprimez simplement l'entrée du Registre. Après la suppression de l'entrée du registre, Firefox détectera le changement la prochaine fois qu'il sera lancé. Il est prudent de modifier les clés de registre pendant que Firefox est en cours d'exécution.</p> + +<p>Si vous installez en utilisant le registre de Windows, Firefox ne mettra pas automatiquement à jour votre module complémentaire. Vous devrez mettre au point le module complémentaire en utilisant n'importe quel processus d'installation externe à Firefox.</p> + +<h2 id="Les_paramètres_de_Firefox">Les paramètres de Firefox</h2> + +<p>Deux paramètres affectent l'utilisation d'options d'installation alternatives. La préférence <code>extensions.autoDisableScopes</code> détermine si les modules complémentaires sont installés automatiquement ou après confirmation de l'utilisateur. La préférence <code>extensions.enabledScopes</code> est utilisée pour désactiver l'installation de la plupart des emplacements. En plus de ces options, la méthode de définition de ces préférences par programme est discutée.</p> + +<h3 id="Contrôler_l'installation_automatique">Contrôler l'installation automatique</h3> + +<p>Les téléchargements standards de Firefox sont configurés pour que les sideloads utilisant le dossier extensions standard ou le registre Windows, ne s'installent pas automatiquement. Selon la version de Firefox :</p> + +<ul> + <li>l'utilisateur a affiché un avertissement interstitiel :<br> + <img alt="An interstitial warning about the installation of the add-on" src="https://mdn.mozillademos.org/files/15209/interstitial_windows.png" style="height: 441px; width: 630px;"></li> + <li>le module complémentaire est installé mais désactivé, et l'utilisateur doit l'activer depuis le gestionnaire de modules complémentaires :<br> + <img alt="An add-on is installed but disabled " src="https://mdn.mozillademos.org/files/15207/add_on_disabled.png" style="height: 61px; width: 707px;"></li> +</ul> + +<p>L'utilisation des installations désactivées interstitielles et silencieuses varie selon les versions de Firefox, par exemple, la version 54 utilise le message interstitiel..</p> + +<p>La disponibilité de l'installation automatique est contrôlée par la préférence et le comportement <code>extensions.autoDisableScopes</code> définis par les valeurs suivantes :</p> + +<div> +<table> + <colgroup> + <col> + <col> + </colgroup> + <tbody> + <tr> + <td>Valeur</td> + <td>Installation du champ</td> + </tr> + <tr> + <td>1 (or '0b0001')</td> + <td>Le profil de l'utilisateur actuel.</td> + </tr> + <tr> + <td>2 (or '0b0010')</td> + <td>Tous les profils de l'utilisateur connecté</td> + </tr> + <tr> + <td>4 (or '0b0100')</td> + <td>Installé et détenu par Firefox.</td> + </tr> + <tr> + <td>8 (or '0b1000')</td> + <td>Installé pour tous les utilisateurs de l'ordinateur.</td> + </tr> + <tr> + <td>15 (or '0b1111')</td> + <td>La combinaison de tous les champs d'application.</td> + </tr> + </tbody> +</table> +</div> + +<p>Par défaut, <code>extensions.autoDisableScopes</code> est défini sur 15 afin que les installations automatiques soient désactivées à partir de tous les emplacements. Pour désactiver uniquement un sous-ensemble d'emplacements, définissez la préférence sur la somme des valeurs des emplacements que vous souhaitez désactiver. Par exemple, 3 désactive "Profil de l'utilisateur actuel" et "Tous les profils de l'utilisateur connecté". La définition de la valeur sur 0 désactive cette fonctionnalité et signifie que tous les modules complémentaires seront installés sans confirmation de l'utilisateur.</p> + +<h3 id="Désactivation_des_emplacements_d'installation">Désactivation des emplacements d'installation</h3> + +<p>Dans certaines circonstances, vous pouvez souhaiter que Firefox ignore tout ou partie des emplacements d'installation supplémentaires répertoriés ci-dessus. Dans ce cas, utilisez la préférence <code>extensions.enabledScopes</code>. Par défaut, cette préférence n'est pas incluse dans les téléchargements standard de Firefox, il faudra donc l'ajouter. vous pouvez ajouter la <a href="/fr/kb/about-config-editor-firefox#w_adding-changing-and-resetting-preferences">préférence manuellement</a> ou la faire par programmation en suivant les instructions de la section suivante.</p> + +<div class="note"> +<p>Il est impossible de désactiver le chargement de modules complémentaires à partir du répertoire de profil.</p> +</div> + +<h3 id="Définir_les_préférences_d'étendue_par_programme">Définir les préférences d'étendue par programme</h3> + +<p>Utilisez la logique suivante pour définir les valeurs de <code>extensions.autoDisableScopes</code> et <code>extensions.enabledScopes</code> par programme pour vous assurer que les modules complémentaires sont installés automatiquement :</p> + +<ol> + <li>Editez le fichier de <a href="/fr/Firefox/Enterprise_deployment#Configuration">configuration administratif</a>.</li> + <li>Vérifiez la présence de lignes définissant les préférences <code>extensions.autoDisableScopes</code> et/ou <code>extensions.enabledScopes</code> et remplacez-les / ajoutez-les si nécessaire.</li> + <li>Ces lignes de préférence doivent être utilisées comme ci-dessous, avec les valeurs de votre choix comme expliqué dans le haut de cette section : + <pre class="brush: js">defaultPref("extensions.autoDisableScopes", 0); +defaultPref("extensions.enabledScopes", 15); +// Or use binary value like this +defaultPref("extensions.enabledScopes", 0b1111);</pre> + </li> +</ol> + +<div class="note"> +<p>Selon <a href="http://www.favbrowser.com/how-to-create-a-new-default-firefox-experience-in-your-enterprise/">cette page</a> : <small>(en date du 28 septembre 2012)</small><br> + “Vous ne pouvez pas définir cette préférence à distance en utilisant les fichiers autoconfig.”<br> + Ce qui vous recommande de définir uniquement ces préférences dans un fichier autoconfig local.<br> + Si cette information est erronée, ajustez ou supprimez cette note.</p> +</div> + +<h2 id="Regroupement_de_modules_complémentaires_avec_un_Firefox_personnalisé">Regroupement de modules complémentaires avec un Firefox personnalisé</h2> + +<p>Vous pouvez regrouper des modules complémentaires dans un Firefox personnalisé, et ils seront installés automatiquement lorsque l'utilisateur démarre l'application pour la première fois. Voir<a href="/fr/docs/Mozilla/Developer_guide/Customizing_Firefox"> Personnalisation de Firefox</a> pour plus de détails.</p> diff --git a/files/fr/orphaned/mozilla/add-ons/webextensions/distribution_options/index.html b/files/fr/orphaned/mozilla/add-ons/webextensions/distribution_options/index.html new file mode 100644 index 0000000000..1b45607060 --- /dev/null +++ b/files/fr/orphaned/mozilla/add-ons/webextensions/distribution_options/index.html @@ -0,0 +1,68 @@ +--- +title: Options de distribution +slug: Mozilla/Add-ons/WebExtensions/Alternative_distribution_options +tags: + - Add-ons + - Installation + - Landing + - WebExtensions +translation_of: Mozilla/Add-ons/WebExtensions/Distribution_options +--- +<div>{{AddonSidebar()}}</div> + +<p>Le processus standard de distribution et d'installation des extensions de navigateur se fait via Firefox en utilisant un fichier XPI signé obtenu à partir de <a href="http://addons.mozilla.org" rel="noreferrer">addons.mozilla.org</a> (AMO) (pour les add-ons listés) ou un téléchargement configuré par un développeur (pour les add-ons non listés).</p> + +<p>Nous examinons ici les exigences en matière de signature et les commentaires connexes, avant de discuter de la façon de choisir entre la distribution sur AMO ou la distribution d'une extension de navigateur vous-même. Nous examinons également les canaux disponibles sur AMO et répondons aux questions sur la propriété du code et les litiges.</p> + +<h2 id="Signature_de_votre_extension">Signature de votre extension</h2> + +<p>Les extensions de navigateur doivent être signées par Mozilla avant de pouvoir être installées dans les versions release et beta de Firefox. Les thèmes, et d'autres types d'ajouts tels que les dictionnaires d'orthographe, n'ont pas besoin d'être signés.</p> + +<p>Ce processus de signature se fait via addons.mozilla.org (AMO), que vous choisissiez de distribuer votre add-on via AMO ou de le faire vous-même.</p> + +<p>Les extensions non signées peuvent être installées dans les versions <a href="/fr/docs/Mozilla/Firefox/Developer_Edition">Developer Edition</a>, Nightly, et <a href="https://developer.mozilla.org/en-US/Firefox/Enterprise_deployment">ESR</a> de Firefox, après avoir activé la préférence <em>xpinstall.signatures.required</em> dans <code>about:config</code>.</p> + +<p>Mozilla signe les extensions de navigateur via le site Web de <a class="external external-icon" href="https://addons.mozilla.org/developers/addon/submit" rel="noopener">AMO</a>. Il y a trois façons de soumettre votre extension pour signature :</p> + +<ol> + <li>téléchargez votre add-on via le <a href="https://developer.mozilla.org/en-US/Add-ons/Distribution/Submitting_an_add-on">Developer Hub sur AMO</a>.</li> + <li>utilisez l' <a class="external external-icon" href="http://addons-server.readthedocs.io/en/latest/topics/api/signing.html" rel="noopener">API de signature addons.mozilla.org</a>.</li> + <li>utilisez le <a href="https://developer.mozilla.org/en-US/Add-ons/WebExtensions/web-ext_command_reference#web-ext_sign">signé web-ext.</a></li> +</ol> + +<p>Toutes les options de signature sont soumises à l'<a href="https://developer.mozilla.org/en-US/Add-ons/AMO/Policy/Agreement">accord de distribution du module complémentaire Firefox</a>.</p> + +<p>Si vous téléchargez votre extension via le centre de développement AMO, vous avez le choix entre l'inscription sur AMO ou l'auto-distribution. Si vous choisissez l'auto-distribution, à la fin du processus, vous téléchargez des copies signées de votre add-on.</p> + +<p>L'utilisation de l'API de signature ou du web-ext renvoie vos add-ons signés, sans qu'aucune liste de distribution ne soit créée sur AMO.</p> + +<p>Quelle que soit la méthode utilisée, tous les add-ons doivent passer une validation automatisée avant d'être signés. Ils peuvent également faire l'objet d'un examen manuel du code. Les critères d'examen appliqués aux prorogations se trouvent dans la <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/AMO/Policy/Reviews">polique complémentaire</a>.</p> + +<h2 id="Distribuer_votre_extension">Distribuer votre extension</h2> + +<p>Vous n'êtes pas tenu d'inscrire ou de distribuer votre poste par l'entremise de l'AMO. Vous devrez décider si vous voulez distribuer et inscrire votre extension par l'entremise de l'AMO ou si vous voulez la distribuer vous-même. Voici quelques points à prendre en considération :</p> + +<ul> + <li>AMO est une plateforme de distribution très populaire, avec des millions de visiteurs et d'installations mensuels.</li> + <li>AMO est intégré dans le gestionnaire de modules complémentaires Firefox, ce qui facilite l'installation des extensions publiées sur AMO.</li> + <li>Lorsqu'une extension est listée dans AMO, les mises à jour des copies installées sont gérées automatiquement par Firefox chaque fois qu'une nouvelle version est listée dans AMO.</li> + <li>L'URL où Firefox peut trouver les mises à jour doit être incluse dans la clé <a href="https://developer.mozilla.org/en-US/Add-ons/Updates">update_link</a> du manifest d'extension pour que Firefox puisse effectuer des mises à jour automatiques. Les extensions auto-distribuées qui n'ont pas d'URL de mise à jour vérifient AMO pour les mises à jour et sont mises à jour vers une version listée, si elle est disponible.</li> +</ul> + +<p>Pour plus d'informations sur la façon de soumettre un add-on pour distribution sur AMO ou auto-distribution, voir <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/Distribution/Submitting_an_add-on">Soumettre une extension.</a></p> + +<h2 id="Autres_options_de_distribution">Autres options de distribution</h2> + +<p>Ces méthodes peuvent ne pas convenir à tout le monde, par exemple, lorsqu'une extension de navigateur est fournie avec une application native ou lorsqu'une entreprise souhaite installer une extension pour toutes ses instances de Firefox. Cette section décrit les solutions de rechange.</p> + +<ul> + <li> + <p><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/Alternative_distribution_options/Sideloading_add-ons">Sideloading add-ons</a> — permet à un utilisateur d'installer une extension en utilisant un fichier XPI enregistré sur son ordinateur.</p> + </li> + <li> + <p><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/Alternative_distribution_options/Add-ons_for_desktop_apps">Add-ons for use with a desktop app</a> — cette section décrit les meilleures pratiques pour fournir une extension à utiliser avec une application de bureau.</p> + </li> + <li> + <p><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/Alternative_distribution_options/Add-ons_in_the_enterprise">Add-ons in an enterprise environment</a> — cette page traite de l'utilisation des extensions signées par rapport aux extensions non signées, des options d'installation, des paramètres Firefox affectant l'installation, et de l'inclusion des add-ons avec un paquet d'installation Firefox personnalisé.</p> + </li> +</ul> diff --git a/files/fr/orphaned/mozilla/add-ons/webextensions/distribution_options/sideloading_add-ons/index.html b/files/fr/orphaned/mozilla/add-ons/webextensions/distribution_options/sideloading_add-ons/index.html new file mode 100644 index 0000000000..2271640415 --- /dev/null +++ b/files/fr/orphaned/mozilla/add-ons/webextensions/distribution_options/sideloading_add-ons/index.html @@ -0,0 +1,134 @@ +--- +title: Sideloading add-ons +slug: >- + Mozilla/Add-ons/WebExtensions/Alternative_distribution_options/Sideloading_add-ons +tags: + - Guide + - Installation + - Sideloading + - WebExtensions +translation_of: Mozilla/Add-ons/WebExtensions/Distribution_options/Sideloading_add-ons +--- +<div>{{AddonSidebar()}}</div> + +<p>Vous souhaiterez peut-être envoyer un fichier XPI à votre utilisateur par un moyen autre qu'un téléchargement sur le Web, par exemple une distribution par e-mail d'une version bêta pour les tests utilisateur. Dans ce cas, il existe deux options pratiques pour installer le module complémentaire :</p> + +<ul> + <li>À l'aide de l'option <strong>Installer le module à partir d'un fichier</strong> dans le gestionnaire de modules complémentaires.</li> + <li>Ajout du fichier à l'un des dossiers d'extension standard.</li> +</ul> + +<div class="note">Aucune mise à jour automatique ne sera effectuée pour les modules complémentaires installés à l'aide de ces méthodes. Vous devrez fournir un nouveau fichier XPI à votre utilisateur pour chaque mise à jour. Cependant, des vérifications de compatibilité automatiques sont toujours effectuées.</div> + +<h2 id="Preparation_de_votre_extension">Preparation de votre extension</h2> + +<p>Indépendamment de la méthode de chargement latéral utilisée, vous devez préparer l'extension comme suit :</p> + +<ol> + <li>Assurez-vous que le module complémentaire inclut un ID, en ajoutant ce qui suit à son fichier manifest.json, en remplaçant <em>votre your-add-on-name@your-domain.com</em> par un ID approprié dans vote mode complémentaire : + + <pre class="brush: json">"applications": { + "gecko": { + "id": "your-add-on-name@your-domain.com" + } +} +</pre> + Un identifiant de style d'adresse e-mail est recommandé.</li> + <li>Signez le module complémentaire dans <a href="http://addons.mozilla.org" rel="noreferrer">addons.mozilla.org</a> (AMO). Selon la manière dont vous souhaitez rendre votre module complémentaire disponible, vous pouvez utiliser les options non répertoriées (si vous distribuez le module complémentaire uniquement) ou répertoriées. Pour plus de détails, voir <a href="/fr/Add-ons/Distribution">Signature et distribution de votre module complémentaire</a>.</li> +</ol> + +<h2 id="Utilisation_de_l'option_Installer_le_module_à_partir_d'un_fichier">Utilisation de l'option Installer le module à partir d'un fichier</h2> + +<p>Pour utiliser <strong>Installer le module complémentaire à partir d'un fichier</strong> dans le gestionnaire de modules complémentaire, send the user the signed add-on with the following instructions:</p> + +<ol> + <li>Enregistrez le fichier complémentaire à un emplacement approprié sur votre ordinateur.</li> + <li>Dans Firefox, ouvrir le menu Firefox <img alt="Firefox browser menu button" src="https://mdn.mozillademos.org/files/15199/Firefox_menu.png" style="height: 24px; width: 32px;"> et cliquez sur <strong>Add-ons</strong>.</li> + <li>Dans les paramètres de cog, ouvrez <strong>Installer le module complémentaire à partir du fichier </strong>:<br> + <img alt="Add-on Manager utilities cog" src="https://mdn.mozillademos.org/files/15201/add-on_manager_cog.png" style="height: 188px; width: 347px;"></li> + <li>Recherchez et ouvrez le fichier à partir de l'emplacement où il a été enregistré.</li> + <li>Lorsque vous y êtes invité, cliquez sur <strong>Ajouter :</strong><br> + <img alt="Message asking user to confirm the installation of the add-on" src="https://mdn.mozillademos.org/files/15203/add_add_on_confirmation.png" style="height: 198px; width: 403px;"></li> + <li>Le module complémentaire apparaîtra désormais dans la liste des modules complémentaires installés du gestionnaire de modules complémentaires et sera prêt à être utilisé :<br> + <img alt="After installation the add-on is listed in the add-on manager" src="https://mdn.mozillademos.org/files/15205/add_on_added.png" style="height: 55px; width: 649px;"></li> +</ol> + +<h2 id="Installation_à_l'aide_des_dossiers_d'extension_standard">Installation à l'aide des dossiers d'extension standard</h2> + +<p>Cette méthode d'installation complémentaire consiste à copier le module complémentaire dans l'un des dossiers d'extension standard sur l'ordinateur de l'utilisateur. Une fois copié, la prochaine fois que Firefox sera lancé le module complémentaire sera installé. Par défaut, l'utilisateur sera invité à approuver l'installation et, si l'utilisateur l'approuve, le module complémentaire sera installé et chargé automatiquement pour les lancements ultérieurs. Si l'utilisateur possède plusieurs profils Firefox, l'approbation et l'installation auront lieu au prochain lancement de chaque profil. Pour plus d'informations sur le contrôle de l'utilisateur à approuver l'installation, voir <a href="/fr/Add-ons/WebExtensions/Alternative_methods_of_installing_add-ons/Installing_add-ons_in_an_enterprise_environment#Controlling_automatic_installation">Contrôle de l'installation automatique</a>.</p> + +<h3 id="Renommez_votre_fichier_XPI">Renommez votre fichier XPI</h3> + +<p>Pour utiliser cette méthode, votre fichier XPI doit être nommé à l'aide de l'ID d'extension ou d'application, comme indiqué dans la section <a href="/fr/Add-ons/WebExtensions/Alternative_methods_of_installing_add-ons/Sideloading_add-ons#Preparing_your_add-on">Préparation de votre module complémentaire</a>. Le fichier complémentaire signé que vous avez téléchargé à partir d'AMO s'appellera quelque chose comme borderify-1.0-an+fx.xpi (voir <a href="/fr/Add-ons/Distribution">Signature et distribution de votre module complémetaire</a> pour plus de détails), modifiez-le par exemple borderify@example.com.xpi.</p> + +<div class="note"> +<p>Si vous développez un module complémentaire pour Firefox vous pouvez utiliser un <a href="/fr/Add-ons/Setting_up_extension_development_environment#Firefox_extension_proxy_file">fichier proxy d'extensions</a> pour installer un module complémentaire sans copier les fichiers dans les dossiers d'extension standard.</p> +</div> + +<h3 id="Ajoutez_le_fichier_d'extension_XPI_dans_un_dossier_d'extensions_commun.">Ajoutez le fichier d'extension XPI dans un dossier d'extensions commun.</h3> + +<p>Dans ce qui suit {ec8030f7-c20a-464f-9b0e-13a3a9e97384} est l'identifiant de l'application de Firefox. </p> + +<p>L'installation standard de Firefox désactive l'installation automatique de modules complémentaires à partir de ces emplacements (voir <a href="/fr/Add-ons/WebExtensions/Alternative_methods_of_installing_add-ons/Installing_add-ons_in_an_enterprise_environment#Controlling_automatic_installation">Contrôle de l'installation automatique</a>). Par conséquent, le processus pour chacune des méthodes décrites ci-dessous est le suivant :</p> + +<ul> + <li>Copiez le fichier XPI renommé dans le dossier des extensions pour <a href="#Windows">Windows</a>, <a href="#OSX">OSX</a>, ou <a href="#Linux">Linux</a> selon le cas. Notez que, selon le système d'exploitation de bureau et ses paramètres, l'utilisateur peut avoir besoin d'une autorisation d'administrateur pour effectuer cette action.</li> + <li>Fermez et redémarrez Firefox.</li> + <li>Selon le système d'exploitation et la version de Firefox, l'un des événements suivants se produira: + <ul> + <li>L'installation se fera en mode silencieux et l'utilisateur devra ouvrir le gestionnaire de modules complémentaires et activer le module complémentaire :<br> + <img alt="An add-on is installed but disabled " src="https://mdn.mozillademos.org/files/15207/add_on_disabled.png" style="height: 61px; width: 707px;"><br> + Pour activer le module complémentaire, l'utilisateur devra cliquer sur <strong>Enable</strong>.</li> + <li>Un message interstitiel sera affiché :<br> + <img alt="An interstitial warning about the installation of the add-on" src="https://mdn.mozillademos.org/files/15209/interstitial_windows.png" style="height: 441px; width: 630px;"><br> + Pour installer le module complémentaire, l'utilisateur devra cocher <strong>Autoriser cette installation </strong>et cliquer sur <strong>Continue</strong>r.</li> + </ul> + </li> + <li>L'add-on est maintenant installé.</li> +</ul> + +<p>Pour plus de détails sur les installations interstitielles et silencieuses, voir <a href="/fr/Add-ons/WebExtensions/Alternative_methods_of_installing_add-ons/Installing_add-ons_in_an_enterprise_environment#Controlling_automatic_installation">Contrôle de l'installation automatique</a>.</p> + +<div class="note"> +<p>Pour désinstaller le module complémentaire, fermez Firefox et supprimez le module complémentaire de l'emplacement où il a été ajouté.</p> +</div> + +<h4 id="Windows">Windows</h4> + +<p>Pour installer le module complémentaire pour un utilisateur de l'ordinateur, copiez le fichier XPI dans <span lang="fr"><span>:</span></span></p> + +<pre>C:\Users\<user name>\AppData\Roaming\mozilla\Extensions\\{ec8030f7-c20a-464f-9b0e-13a3a9e97384}\</pre> + +<p>Si ce dossier n'existe pas, créez-le. Vous pouvez également identifier le chemin de l'utilisateur actuel avec la variable %appdata% du système.</p> + +<div class="note"> +<p>Remarque : Pour installer un module complémentaire pour tous les utilisateurs d'un ordinateur Windows, voir <a href="/fr/Add-ons/WebExtensions/Alternative_methods_of_installing_add-ons/Installing_add-ons_in_an_enterprise_environment#Installation_using_the_Windows_registry">Installation à l'aide du registre Windows</a>.</p> +</div> + +<h4 id="OSX">OSX</h4> + +<p>Pour installer un module complémentaire à utiliser par tous les profils Firefox et tous les utilisateurs, copiez le fichier XPI dans le dossier d'extension globale situé dans la bibliothèque. Si ce dossier n'existe pas, vous devrez le créer.</p> + +<pre>/Library/Application Support/mozilla/Extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}/</pre> + +<p>Pour installer un module complémentaire pour un utilisateur spécifique, copiez le fichier XPI dans la bibliothèque locale de l'utilisateur :</p> + +<pre>~/Library/Application Support/mozilla/Extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}/</pre> + +<h4 id="Linux">Linux</h4> + +<p>Pour installer un module complémentaire utilisé par tous les utilisateurs, copiez le fichier XPI dans :</p> + +<pre>/usr/lib/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}/</pre> + +<p>Ou...</p> + +<pre>/usr/lib64/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}/</pre> + +<p dir="ltr">Ou...</p> + +<pre>/usr/share/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}/</pre> + +<p>Pour installer un module complémentaire pour un utilisateur spécifique, copiez le fichier XPI dans :</p> + +<pre>~/.mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}/</pre> diff --git a/files/fr/orphaned/mozilla/add-ons/webextensions/package_your_extension_/index.html b/files/fr/orphaned/mozilla/add-ons/webextensions/package_your_extension_/index.html new file mode 100644 index 0000000000..8f50b00eaf --- /dev/null +++ b/files/fr/orphaned/mozilla/add-ons/webextensions/package_your_extension_/index.html @@ -0,0 +1,58 @@ +--- +title: Publier votre extension +slug: Mozilla/Add-ons/WebExtensions/Publishing_your_WebExtension +tags: + - WebExtensions +translation_of: Mozilla/Add-ons/WebExtensions/Package_your_extension_ +--- +<div>{{AddonSidebar}}</div> + +<div class="pull-aside"> +<div class="moreinfo"> +<p>Les extensions packagées dans Firefox sont appelées "fichiers XPI", qui sont des fichiers ZIP avec une extension différente.</p> + +<p>Vous n'avez pas besoin d'utiliser l'extension XPI lors du téléchargement vers AMO.</p> +</div> +</div> + +<p><span class="seoSummary">Pendant le développement, votre extension sera constituée d'un répertoire contenant un fichier manifest.json et les autres fichiers dont elle a besoin : scripts, icônes, documents HTML, etc. Vous devez les zipper dans un seul fichier pour les télécharger vers AMO.</span></p> + +<p>La façon la plus pratique de compiler votre extension est d'utiliser la <a href="/fr/Add-ons/WebExtensions/web-ext_command_reference#web-ext_build">build web-ext</a>. Cet outil exclut automatiquement les fichiers qui sont généralement indésirables dans les paquets, comme les fichiers <code>.git</code> . Sinon, suivez les instructions ci-dessous pour le système d'exploitation.</p> + +<div class="note"> +<p><strong>Astuce</strong>. Le fichier ZIP doit être un fichier ZIP des fichiers de l'extension elle-même, et non du répertoire qui les contient.</p> +</div> + +<h3 id="Windows">Windows</h3> + +<ol> + <li>Ouvrez le répertoire contenant les fichiers de votre extension.</li> + <li>Sélectionnez tous les fichiers et répertoires nécessaires pour implémenter votre extension, excluez les fichiers qui ne sont pas nécessaires pour exécuter l'extension, tels que <code>.git</code>, les sources graphiques et les fichiers similaires.</li> + <li>Ouvrez le menu contextuel et cliquez sur <strong>Envoyer</strong> dans le <strong>dossier compressé (zipped)</strong>.</li> +</ol> + +<p><img alt="Illustration of how to use the send to compress folder feature in File Explorer to create a web extension package." src="https://mdn.mozillademos.org/files/16565/creating_package_windows.png"></p> + +<h3 id="macOS">macOS</h3> + +<ol> + <li>Ouvrez le répertoire contenant les fichiers de votre extension.</li> + <li>Sélectionnez tous les fichiers et répertoires nécessaires pour implémenter votre extension, excluez les fichiers qui ne sont pas nécessaires pour exécuter l'extension, tels que <code>.git</code>, les sources graphiques et les fichiers similaires.</li> + <li>Ouvrez le menu contextuel et cliquez <strong>Compress <em>n</em> éléments</strong>.</li> +</ol> + +<p><img alt="Illustration of how to use the compress feature in Finder to create a web extinction package." src="https://mdn.mozillademos.org/files/16564/creating_package_mac.png" style="height: 437px; width: 768px;"></p> + +<div class="pull-aside"> +<div class="moreinfo">Voir <a href="http://www.info-zip.org/mans/zip.html">http://www.info-zip.org/mans/zip.html</a>.</div> +</div> + +<h3 id="Linux_macOS_Terminal">Linux / macOS Terminal</h3> + +<ol> + <li>Ouvrir un Terminal.</li> + <li>Ouvrez le répertoire contenant les fichiers de votre extension, en utilisant la commande<br> + <code>cd path/to/<em>my-extension</em>/</code></li> + <li>ZIPez le contenu du répertoire en vous souvenant d'exclure les fichiers qui ne sont pas nécessaires à l'exécution de l'extension, tels que <code>.git</code>, les sources graphiques, et les fichiers similaires - en utilisant la commande<br> + <code>zip -r -FS ../<em>my-extension</em>.zip * --exclude *.git*</code></li> +</ol> diff --git a/files/fr/orphaned/mozilla/add-ons/webextensions/porting_a_legacy_firefox_add-on/index.html b/files/fr/orphaned/mozilla/add-ons/webextensions/porting_a_legacy_firefox_add-on/index.html new file mode 100644 index 0000000000..5227fba14b --- /dev/null +++ b/files/fr/orphaned/mozilla/add-ons/webextensions/porting_a_legacy_firefox_add-on/index.html @@ -0,0 +1,85 @@ +--- +title: Portage d'une extension Firefox héritée +slug: Mozilla/Add-ons/WebExtensions/Portage_d_une_extension_Firefox_heritee +tags: + - WebExtensions +translation_of: Mozilla/Add-ons/WebExtensions/Porting_a_legacy_Firefox_add-on +--- +<div>{{AddonSidebar}}</div> + +<p>Si vous avez développé une extension Firefox en utilisant une technologie héritée en utilisant XUL/XPCOM ou le kit d'extensions, cette page vous aidera à migrer votre extension pour utiliser les API WebExtensions. La norme pour créer des extensions pour Firefox consiste à utiliser les API <a class="external text" href="/fr/Add-ons/WebExtensions" rel="nofollow">WebExtensions</a>. Ce sera le seul type d'extension pris en charge par Firefox d'ici la fin du mois de novembre 2017 avec la sortie de <a class="external text" href="https://wiki.mozilla.org/RapidRelease/Calendar" rel="nofollow">Firefox 57</a>.</p> + +<div class="blockIndicator warning"> +<p>La prise en charge des extensions utilisant XUL/XPCOM ou le SDK Add-on a été supprimée dans Firefox 57, publié en novembre 2017. Comme il n'y a pas de version supportée de Firefox permettant ces technologies, cette page sera supprimée d'ici décembre 2020.</p> +</div> + +<h2 id="Démarrage_rapide">Démarrage rapide</h2> + +<ol> + <li>Obtenez une idée des principales choses que vous devrez modifier dans votre extension : + <ul> + <li>Familiarisez-vous avec le <a href="/fr/Add-ons/WebExtensions/Anatomy_of_a_WebExtension">format et la structure WebExtension</a>, et <a href="/fr/Add-ons/WebExtensions/Your_first_WebExtension">créez un exemple basique</a>.</li> + <li>Si votre extension est basé sur XUL et XPCOM, qu'il s'agisse d'une <a href="https://developer.mozilla.org/fr/Add-ons/Overlay_Extensions">extension de superposition</a> ou d'une <a href="https://developer.mozilla.org/fr/Add-ons/Bootstrapped_extensions">extension bootstrap</a>, consultez la <a href="/fr/Add-ons/WebExtensions/Comparison_with_XUL_XPCOM_extensions">comparaison avec les extensions XUL/XPCOM</a> pour savoir comment les WebExtensions peuvent correspondre aux API existantes que vous utilisez.</li> + <li> + <p>Si votre extension est basée sur le SDK d'extensions, consultez la <a href="/fr/Add-ons/WebExtensions/Comparison_with_the_Add-on_SDK">comparaison avec le SDK d'extensions</a> pour savoir comment les WebExtensions peuvent correspondre aux SDK API existantes que vous utilisez.</p> + </li> + </ul> + </li> + <li>Réécrivez le code de votre extension. Voir ci-dessous les chemins de migration pour différents types d'extensions. A partir de Firefox 51, vous pouvez intégrer une extension construite à l'aide d'API WebExtension dans une extension bootstrap ou une extension SDK, et peut donc porter une extension héritée une pièce à la fois et avoir une extension fonctionnelle à chaque étape. Consultez <a href="/fr/Add-ons/WebExtensions/Embedded_WebExtensions">Embedded WebExtensions</a>.</li> + <li>Lorsque vous êtes prêt à soumettre la version WebExtension de votre extension à AMO... attendez une minute... êtes-vous vraiment prêt ? En raison du modèle de permissions d'extensions, vous ne pouvez pas revenir de WebExtensions à l'utilisation d'un format d'extension hérité. Donc tester <em>bien</em>, car il s'agit d'un aller simple permanent. Consultez également l'exemple hybride ci-dessous. Si vous n'êtes pas prêt, vous pouvez intégrer votre WebExtension dans un conteneur d'extension existant, ce qui vous permet de tester votre migration d'extension mais encore de revenir si nécessaire en cas d'urgence.</li> + <li>Lorsque vous êtes vraiment prêt à soumettre la version WebExtension de votre extension à AMO, connectez d'abord votre ancienne ID d'extension au nouveau fichier manifest.json de WebExtension. Votre extension doit avoir le même ID que les versions précédentes. Copiez la valeur dans le champ "id" de votre fichier package.json dans le champ id dans la section des <a href="/fr/Add-ons/WebExtensions/manifest.json/applications">applications</a> du fichier manifest.json WebExtension. Ensuite, vous pouvez soumettre votre mise à jour de l'extension à AMO comme vous le feriez normalement.</li> +</ol> + +<div class="note"> +<p>Notez qu'il s'agit d'une conversion unidirectionnelle: vous <strong>ne pouvez pas</strong> mettre à jour une WebExtension pour utiliser une technologie héritée. Cela signifie que vous devez être sûr que vous êtes prêt à vous engager aux WebExtensions avant de soumettre la mise à jour de l'extension à AMO.</p> +</div> + +<h2 id="Chemin_de_migration">Chemin de migration</h2> + +<h3 id="SDK_Extensions"><br> + SDK Extensions</h3> + +<p>Voici le tableau de comparaison montrant les <a href="/fr/Add-ons/WebExtensions/Comparison_with_the_Add-on_SDK">APIs SDK et leurs homologues de format WebExtensions</a>. Si vous ne voyez pas les API dont vous avez besoin pour utiliser les APIs WebExtensions, consultez ci-dessous pour savoir comment demander des API et aussi comment les implémenter.</p> + +<h3 id="XULXPCOM_Extensions">XUL/XPCOM Extensions</h3> + +<p>Voici le tableau de comparaison montrant les <a href="/fr/Add-ons/WebExtensions/Comparison_with_XUL_XPCOM_extensions">APIs XUL/XPCOM et leurs homologues de format WebExtensions</a>. Si vous ne voyez pas les API dont vous avez besoin pour utiliser les APIs WebExtension, consultez ci-dessous pour savoir comment demander des API et aussi comment les implémenter.</p> + +<h2 id="Vous_ne_trouvez_pas_les_APIs_WebExtensions_dont_vous_avez_besoin">Vous ne trouvez pas les APIs WebExtensions dont vous avez besoin ?</h2> + +<p><strong>Développez les APIs WebExtension pour Firefox</strong> - Si vous êtes expérimenté avec l'infrastructure Mozilla et souhaitez développer des API WebExtensions directement pour Firefox, voici une liste d' <a href="https://mzl.la/2dVs5Ys">APIs approuvées</a> que vous pouvez commencer à contribuer.</p> + +<p><strong>Expérimentez avec les nouvelles APIs WebExtension</strong> - Si vous souhaitez créer un prototype et un bricolage avec les API WebExtensions sans avoir à créer Firefox, les <a href="http://webextensions-experiments.readthedocs.io/en/latest/index.html">Expériences WebExtensions</a> sont pour vous !</p> + +<p><strong>Demandez une nouvelle API WebExtensions </strong>- Si vous souhaitez demander une nouvelle API WebExtensions, lisez <a class="external text" href="https://wiki.mozilla.org/WebExtensions/NewAPIs" rel="nofollow">cette page.</a></p> + +<h2 id="Outils">Outils</h2> + +<ul> + <li><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/Getting_started_with_web-ext">web-ext</a> st un outil de ligne de commande conçu pour accélérer diverses parties du processus de développement d'extension, rendant le développement plus rapide et plus facile.</li> + <li><a href="https://compatibility-lookup.services.mozilla.com/">Lookup tool</a> pour vérifier votre type d'extension et obtenir des recommandations sur les ressources de portage</li> + <li><a href="https://github.com/mi-g/weh">WebExtensions Helper</a> accélère le développement de l'extension du navigateur en fournissant des utilitaires pour les extensions basées sur WebExtensions (Firefox, Chrome, Opera and Edge)</li> + <li><a href="https://github.com/yeoman/generator-chrome-extension">Chrome Extension generator </a>crée tout ce dont vous avez besoin pour commencer avec le développement de l'extension. Vous pouvez choisir l'interface utilisateur du navigateur (Browser,Page Action, Omnibox) et sélectionner les permissions dont vous avez besoin.</li> + <li><a href="http://extensionizr.com/">Extensionizr</a> est un assistant qui vous aide à créer une extension simple</li> + <li><a href="https://github.com/mahemoff/chrome-boilerplate">Chrome Boilerplate</a> est un code de référence pour Chrome WebExtension<span class="col-11 mr-2 text-gray-dark">.</span></li> + <li><a href="https://github.com/sitepoint/ChromeSkel_a">Skeleton Chrome Extension</a> est une extension bootstrap et un modèle</li> +</ul> + +<h2 id="Documentation">Documentation</h2> + +<ul> + <li><a href="https://wiki.mozilla.org/Add-ons/developer/communication">Page du projet WebExtensions</a> sur le wiki de Mozilla</li> + <li><a href="/fr/Add-ons/WebExtensions">Guide pratique</a> couvrant les cas communs de développement d'extension, comme <a href="/fr/Add-ons/WebExtensions/Intercept_HTTP_requests">intercepter des requêtes web</a> et <a href="/fr/Add-ons/WebExtensions/Add_a_button_to_the_toolbar">ajouter un bouton à la barre d'outils</a></li> + <li><a href="/fr/Add-ons/WebExtensions/Comparison_with_the_Add-on_SDK">Comparaison avec the Add-on SDK</a></li> + <li><a href="/fr/Add-ons/WebExtensions/Comparison_with_XUL_XPCOM_extensions">Comparaison avec XUL/XPCOM extensions</a></li> + <li><a href="/fr/Add-ons/WebExtensions/Browser_support_for_JavaScript_APIs">Tableau de compatibilité du navigateur</a> pour toutes les APIs WebExtensions</li> + <li><a href="/fr/Add-ons/WebExtensions/Examples">Examples d'extensions</a></li> +</ul> + +<h2 id="Contact">Contact</h2> + +<ul> + <li> + <p>Vous pouvez utiliser les liens <a href="/fr/Add-ons#Contact_us">ici</a> pour obtenir de l'aide, vous tenir à jour avec les nouvelles des add-ons, et nous donner des commentaires.</p> + </li> +</ul> diff --git a/files/fr/orphaned/mozilla/add-ons/webextensions/request_the_right_permissions/index.html b/files/fr/orphaned/mozilla/add-ons/webextensions/request_the_right_permissions/index.html new file mode 100644 index 0000000000..e0c9a4ef04 --- /dev/null +++ b/files/fr/orphaned/mozilla/add-ons/webextensions/request_the_right_permissions/index.html @@ -0,0 +1,367 @@ +--- +title: Demander les bonnes permissions +slug: Mozilla/Add-ons/WebExtensions/demander_les_bonnes_permissions +tags: + - Add-ons + - Comment + - Débutant + - Extensions + - Hox-to + - Intermédiaire + - Permissions + - WebExtensions +translation_of: Mozilla/Add-ons/WebExtensions/Request_the_right_permissions +--- +<p>{{AddonSidebar}}</p> + +<p>Ou comment éviter les permissions décourageant les utilisateurs d'installer vos extensions.</p> + +<h2 id="Introduction">Introduction</h2> + +<p>Avec l'introduction de Firefox Quantum (57), la gestion des permissions lors de l'installation d'une extension a changé. Auparavant, les permissions étaient accordées silencieusement aux extensions. Cependant, les utilisateurs sont maintenant informés des permissions demandées par une extension lors de son installation, avec un message comme celui-ci:</p> + +<p><img alt="Example of the permissions messages from the Gesturefy extension" src="https://mdn.mozillademos.org/files/15736/General_permissions_message_example.png" style="height: 287px; width: 411px;"></p> + +<p>En outre, si une mise à jour d'extension nécessite des permissions supplémentaires, l'utilisateur est invité à approuver les permissions avant l'installation de la version mise à jour :</p> + +<p><img alt="Example of the message displayed when an extension update requests additional permissions" src="https://mdn.mozillademos.org/files/15737/Permissions_update.png" style="height: 336px; width: 357px;"></p> + +<p>Si l'utilisateur choisit de ne pas approuver les permissions et annule la mise à jour, la version précédente reste installée et disponible.</p> + +<p>L'affichage des messages de permission améliore le modèle de sécurité de l'extension en sensibilisant les utilisateurs à l'impact potentiel de l'installation d'une extension. Il met également Firefox en ligne avec les autres principaux navigateurs, où les utilisateurs ont été informés des demandes de permission des extensions pour un certain temps.</p> + +<p>Étant donné que les utilisateurs de Firefox n'ont pas vu les demandes de permissions au cours de l'installation auparavant, cette modification pourrait décourager certains d'entre eux d'installer votre extension, car les messages pourraient suggérer qu'elle fait quelque chose d'effrayant. Nous fournissons aux utilisateurs avec une <a href="https://support.mozilla.org/kb/permission-request-messages-explained">explication de ces messages de permissions</a> et des conseils sur <a href="https://support.mozilla.org/kb/tips-assessing-safety-extension">comment juger s'ils sont appropriés</a>. Cependant, il y a plusieurs choses que vous pouvez faire pour réduire la probabilité que les utilisateurs abandonnent l'installation de votre extension à cause de ces messages :</p> + +<ul> + <li>Assurez-vous que vous ne demandez pas de permissions inutiles.</li> + <li>Demander des permissions à l'exécution, ce qui vous permet de demander les permissionss en contexte et de proposer une option de repli si l'utilisateur ne les accorde pas.</li> + <li>Décrivez pourquoi votre extension demande ses permissions dans sa description AMO.</li> +</ul> + +<p>Conseil: Les avertissements d'autorisation ne sont pas émis <a href="/fr/Add-ons/WebExtensions/Temporary_Installation_in_Firefox">lorsque vous chargez une extension décompressée</a>. Pour plus d'informations sur l'affichage du flux d'autorisations d'exécution standard, voir <a href="/fr/Add-ons/WebExtensions/Test_permission_requests">Test de demandes de permission</a>.</p> + +<h2 id="Permissions_conseillées">Permissions conseillées</h2> + +<p>Toutes les <a href="/fr/Add-ons/WebExtensions/manifest.json/permissions">permissions</a> ne donnent pas de conseils à l'utilisateur. Les permissions qui déclenchent l'affichage d'un message et les messages qu'ils déclenchent sont :</p> + +<table class="standard-table"> + <tbody> + <tr> + <td><strong>Permission</strong></td> + <td><strong>Permissions messages</strong></td> + </tr> + <tr> + <td> + <p>Host permissions</p> + </td> + <td> + <p style="margin-bottom: 0px;">Accédez à vos données pour tous les sites Web<br> + Accédez à vos données pour les sites du domaine[named].<br> + Accédez à vos données dans # d'autres domaines<br> + Accédez à vos données pour[site nommé].<br> + Accédez à vos données sur # autres sites".</p> + </td> + </tr> + <tr> + <td>API permissions:</td> + <td></td> + </tr> + <tr> + <td style="padding: 0px, 0px;"> + <ul style="margin-bottom: 0px;"> + <li><code>bookmarks</code></li> + </ul> + </td> + <td style="padding: 0px, 0px;">Lire et modifier les marques pages</td> + </tr> + <tr> + <td style="padding: 0px, 0px;"> + <ul style="margin-bottom: 0px;"> + <li style="margin-bottom: 0px;"><code>browserSettings</code></li> + </ul> + </td> + <td style="margin-bottom: 0px; padding: 0px, 0px;">Lire et modifier les paramètres du navigateur</td> + </tr> + <tr> + <td style="padding: 0px, 0px;"> + <ul style="margin-bottom: 0px;"> + <li style="margin-bottom: 0px;"><code>browsingData</code></li> + </ul> + </td> + <td style="margin-bottom: 0px; padding: 0px, 0px;">Effacer l'historique de navigation récent, les cookies et les données associées.</td> + </tr> + <tr> + <td style="padding: 0px, 0px;"> + <ul style="margin-bottom: 0px;"> + <li><code>downloads</code></li> + </ul> + </td> + <td>Télécharger des fichiers et lire et modifier l'historique des téléchargements du navigateur.</td> + </tr> + <tr> + <td style="padding: 0px, 0px;"> + <ul style="margin-bottom: 0px;"> + <li><code>downloads.open</code></li> + </ul> + </td> + <td style="padding: 0px, 0px;">Ouvrir les fichiers téléchargés sur votre ordinateur</td> + </tr> + <tr> + <td style="padding: 0px, 0px;"> + <ul style="margin-bottom: 0px;"> + <li><code>find</code></li> + </ul> + </td> + <td style="padding: 0px, 0px;">Lire le texte de tous les onglets ouverts</td> + </tr> + <tr> + <td style="padding: 0px, 0px;"> + <ul style="margin-bottom: 0px;"> + <li><code>geolocation</code></li> + </ul> + </td> + <td style="padding: 0px, 0px;">Accédez à votre localisation</td> + </tr> + <tr> + <td> + <ul style="margin-bottom: 0px;"> + <li><code>history</code></li> + </ul> + </td> + <td style="padding: 0px, 0px;">Historique de navigation</td> + </tr> + <tr> + <td style="padding: 0px, 0px;"> + <ul style="margin-bottom: 0px;"> + <li><code>management</code></li> + </ul> + </td> + <td>Surveiller l'utilisation des extensions et gérer les thèmes</td> + </tr> + <tr> + <td style="padding: 0px, 0px;"> + <ul style="margin-bottom: 0px;"> + <li><code>nativeMessaging</code></li> + </ul> + </td> + <td>Échanger des messages avec des programmes autres que Firefox</td> + </tr> + <tr> + <td style="padding: 0px, 0px;"> + <ul style="margin-bottom: 0px;"> + <li><code>notifications</code></li> + </ul> + </td> + <td style="padding: 0px, 0px;">Afficher les notifications qui vous sont destinées</td> + </tr> + <tr> + <td> + <ul style="margin-bottom: 0px;"> + <li><code>pkcs11</code></li> + </ul> + </td> + <td>Fournir des services d'authentification cryptographique</td> + </tr> + <tr> + <td style="padding: 0px, 0px;"> + <ul style="margin-bottom: 0px;"> + <li><code>privacy</code></li> + </ul> + </td> + <td style="padding: 0px, 0px;">Lire et modifier les paramètres de confidentialité</td> + </tr> + <tr> + <td style="padding: 0px, 0px;"> + <ul style="margin-bottom: 0px;"> + <li><code>proxy</code></li> + </ul> + </td> + <td style="padding: 0px, 0px;">Contrôler les paramètres de proxy du navigateur</td> + </tr> + <tr> + <td style="padding: 0px, 0px;"> + <ul style="margin-bottom: 0px;"> + <li><code>sessions</code></li> + </ul> + </td> + <td style="padding: 0px, 0px;">Accéder aux onglets récemment fermés</td> + </tr> + <tr> + <td style="padding: 0px, 0px;"> + <ul style="margin-bottom: 0px;"> + <li><code>tabs</code></li> + </ul> + </td> + <td style="padding: 0px, 0px;">Onglets du navigateur d'accès</td> + </tr> + <tr> + <td style="padding: 0px, 0px;"> + <ul style="margin-bottom: 0px;"> + <li><code>topSites</code></li> + </ul> + </td> + <td style="padding: 0px, 0px;">Historique de navigation</td> + </tr> + <tr> + <td style="padding: 0px, 0px;"> + <ul style="margin-bottom: 0px;"> + <li><code>webNavigation</code></li> + </ul> + </td> + <td style="padding: 0px, 0px;">Accéder à l'activité du navigateur pendant la navigation</td> + </tr> + <tr> + <td>Clipboard access</td> + <td></td> + </tr> + <tr> + <td style="padding: 0px, 0px;"> + <ul style="margin-bottom: 0px;"> + <li><code>clipboardWrite</code></li> + </ul> + </td> + <td style="padding: 0px, 0px;">Saisie des données dans le presse-papiers</td> + </tr> + <tr> + <td style="padding: 0px, 0px;"> + <ul style="margin-bottom: 0px;"> + <li><code>clipboardRead</code></li> + </ul> + </td> + <td>Obtenir les données du presse-papiers</td> + </tr> + <tr> + <td><code>unlimitedStorage</code></td> + <td>Stocker un nombre illimité de données côté client</td> + </tr> + <tr> + <td>The manifest key <a href="/fr/Add-ons/WebExtensions/manifest.json/devtools_page">"devtools_page"</a></td> + <td>Étendre les outils de développement pour accéder à vos données dans des onglets ouverts.</td> + </tr> + </tbody> +</table> + +<div class="blockIndicator note"> + + +<p>Les permissions qui affichent les messages et les messages qu'ils affichent peuvent être différentes dans d'autres navigateurs. Pour plus d'informations sur l'affichage du message d'autorisation dans Chrome, voir <a href="https://developer.chrome.com/apps/permission_warnings#view_warnings" rel="noreferrer nofollow">Affichage des avertissements.</a></p> + + +</div> + +<p>Les permissions suivantes ne sont pas alertées aux utilisateurs :</p> + +<ul> + <li>API permissions + <ul> + <li><code>alarms</code></li> + <li><code>contextMenus</code></li> + <li><code>contextualIdentities</code></li> + <li><code>cookies</code></li> + <li><code>identity</code></li> + <li><code>idle</code></li> + <li><code>menus</code></li> + <li><code>storage</code></li> + <li><code>theme</code></li> + <li><code>webRequest</code></li> + <li><code>webRequestBlocking</code></li> + </ul> + </li> + <li><code>activeTab</code></li> +</ul> + +<h2 id="Évitez_les_permissions_inutiles">Évitez les permissions inutiles</h2> + +<p>Cette section examine les situations dans lesquelles vous pourriez demander plus de permissions que vos besoins d'extension et ce que vous devez faire à leur sujet.</p> + +<h3 id="Ne_demandez_que_les_permissions_que_votre_extension_utilise">Ne demandez que les permissions que votre extension utilise</h3> + +<p>Cela peut sembler évident, mais si vous créez une extension en utilisant un exemple précédent en tant que modèle ou si vous supprimez une fonctionnalité au cours du développement ou du test, vous demandez peut-être des permissions dont votre extension n'a pas besoin. En adressant ceci est un cas de faire une vérification manuelle de votre code contre les permissions (<code>"permissions"</code> et <a href="/fr/Add-ons/WebExtensions/manifest.json/optional_permissions">"optional_permissions"</a>) que vous demandez dans le manifest.json de l'extension.</p> + +<h3 id="Utilisez_activeTab_plutôt_que_tabs_et_permissions_d'hôte">Utilisez "activeTab" plutôt que "tabs" et permissions d'hôte</h3> + +<p>Prenez une extension que vous développez pour aider les utilisateurs mal-voyants. À la demande de l'utilisateur, vous allez rechercher et mettre à jour CSS dans une page Web pour remplacer les couleurs que l'utilisateur peut avoir du mal à distinguer avec des couleurs sûres. Vous avez évidemment besoin d'accéder et de mettre à jour CSS sur chaque page que votre utilisateur visite. Vous pouvez le faire en demandant la permission <code>"tabs"</code> et la permission d'hôte <code>"<all_urls>"</code>.</p> + +<pre class="brush: json">"permissions": [ + "<all_urls>", + "tabs" +]</pre> + +<p>Demander ces permissions, permet à l'utilisateur d'obtenir ce conseil :</p> + +<p><img alt='Example of the "Access your data for all websites" permission message' src="https://mdn.mozillademos.org/files/15738/All_Websites_permissions.png" style="height: 142px; width: 357px;"></p> + +<p>L'alternative est de demander <code>"activeTab"</code>. Cette permission fournit à votre extension les mêmes fonctionnalités mais uniquement pour l'onglet actif et uniquement lorsqu'elle est exécutée à partir de l'interface utilisateur de l'extension (depuis un bouton de barre d'outils, un bouton de barre de navigation, un menu contextuel ou une touche de raccourci).</p> + +<p>Fait important, <code>"activeTab"</code> n'entraîne pas l'affichage d'un message de permission lors de l'installation de l'extension.</p> + +<h3 id="Evitez_la_permission_d'hôte_<all_urls>_si_vous_pouvez">Evitez la permission d'hôte "<all_urls>" si vous pouvez</h3> + +<p>Comme indiqué dans l'exemple précédent, demander la permission d'hôte <code>"<all_urls>"</code> entraîne le message de demande d'accès Access à vos données pour tous les sites Webs. Si votre extension est conçue pour fonctionner avec un ou plusieurs sites Web ou domaines, affinez la requête. Lors de l'installation, les utilisateurs recevront des informations sur les quatre premiers sites Web ou les domaines auxquels vous demandez l'accès.</p> + +<p><img alt="Example of the permissions message when host permission for four websites as requested" src="https://mdn.mozillademos.org/files/15739/Permissions_host_four.png"></p> + +<p>Si vous demandez l'accès à plus de quatre sites Web ou domaines, le message liste les trois premiers et indique le nombre d'autres demandes.</p> + +<p><img alt="Example of the permissions message when hosts permission for 5 or more website is requested" src="https://mdn.mozillademos.org/files/15740/Permissions_host_four_plus.png" style="height: 194px; width: 357px;"></p> + +<h3 id="Evitez_la_permission_unlimitedStorage">Evitez la permission "unlimitedStorage"</h3> + +<p>Ne demandez la permission <code>"unlimitedStorage"</code> que si vous estimez que le stockage de données local de votre extension dépasse 5MB s'il ne dépasse pas ce montant, ne le demandez pas.</p> + +<p><img alt="Example of the permission message when requesting access to unlimited client-side data storage" src="https://mdn.mozillademos.org/files/15741/Permissions_unlimiteddata.png" style="height: 143px; width: 357px;"></p> + +<p>Remarque: Firefox ne limite pas actuellement la taille du stockage local, bien qu'il demande aux utilisateurs d'approuver cette demande de permission si vous le faites. Firefox peut ajouter une restriction à l'avenir. Si cela se produit, il est peu probable que la limite soit inférieure à la restriction actuelle de 5 Mo de Chrome.</p> + +<h2 id="Demander_les_permissions_à_éxécuter">Demander les permissions à éxécuter</h2> + +<p>Les utilisateurs peuvent ne pas comprendre le contexte des permissions demandées lors de l'installation. L'approche alternative consiste à demander les permissions au besoin, à l'aide de l'<a href="/fr/Add-ons/WebExtensions/API/permissions">API permissions</a>, et à fournir ainsi un contexte à l'utilisateur.</p> + +<p>Un scénario typique pour utiliser cette approche est la permission <code>"geoLocation"</code>. Supposons que vous avez écrit une extension de prise de notes qui inclut la possibilité d'ajouter une mini-carte de l'emplacement des preneurs de notes. Demander l'accès à l'emplacement pendant l'installation peut laisser l'utilisateur incertain de la raison pour laquelle l'extension doit accéder à l'emplacement, de sorte qu'ils ne l'installeront peut-être pas. Toutefois, si la permission d'utiliser l'emplacement est demandée lorsque l'utilisateur tente d'abord d'ajouter une minicarte, il comprend mieux pourquoi la permission est nécessaire et a plus de chances de l'accorder. Et s'ils choisissent de ne pas accorder la permission, l'extension peut offrir un retour en arrière gracieux — dans cet exemple, sans ajouter la minicarte — mais le résultat important de cette approche est que l'utilisateur a installé et utilisé votre extension.</p> + +<p><img alt="Example of an additional or runtime permission request message" src="https://mdn.mozillademos.org/files/15742/Permissions_optional_request.png" style="height: 155px; width: 357px;"></p> + +<p>Faire une demande de permission d'exécution est simple. Incluez les permissions que vous souhaitez demander sous la clé manifest.json <code>"<a href="/fr/Add-ons/WebExtensions/manifest.json/optional_permissions">optional_permissions</a>"</code>. Passez ensuite les autorisations que vous souhaitez accorder à {{WebExtAPIRef("permissions.request")}}, qui invite l'utilisateur à accorder les permissions. true est renvoyé si l'utilisateur accorde la requête, false si ce n'est pas le cas.</p> + +<p>Vous ne pouvez pas demander toutes les permissions disponibles aux <code>"permissions"</code> en utilisant des permissions facultatives. Vous ne pouvez pas demander les permissions d'API suivantes:</p> + +<ul> + <li><code>alarms</code></li> + <li><code>background</code></li> + <li><code>browsingData</code></li> + <li><code>contentSettings</code></li> + <li><code>contextualIdentities</code></li> + <li><code>debugger</code></li> + <li><code>downloads</code></li> + <li><code>downloads.open</code></li> + <li><code>find</code></li> + <li><code>identity</code></li> + <li><code>menus</code></li> + <li><code>nativeMessaging</code></li> + <li><code>pageCapture </code></li> + <li><code>pkcs11</code></li> + <li><code>privacy</code></li> + <li><code>proxy</code></li> + <li><code>sessions</code></li> + <li><code>storage</code></li> + <li><code>theme</code></li> +</ul> + +<p>Il y a un certain nombre de choses à noter :</p> + +<ul> + <li>Vous pouvez uniquement demander des permissions dans le gestionnaire pour une action utilisateur, par exemple à partir d'un bouton de barre d'outils (action du navigateur), d'un élément de menu contextuel ou similaire.</li> + <li>Si vous demandez plusieurs permissions à la fois, elles sont toutes accordées ou toutes refusées, l'utilisateur ne peut pas choisir d'en accorder certaines et pas d'autres</li> +</ul> + +<p>Pour plus d'informations sur les permissions facultatives, consultez <a href="/fr/Add-ons/WebExtensions/manifest.json/optional_permissions">optional_permissions</a> et l'exemple <a href="https://github.com/mdn/webextensions-examples/tree/master/permissions">permissions</a>.</p> + +<h2 id="Ajouter_des_informations_sur_les_permissions_à_vos_extensions_page_AMO">Ajouter des informations sur les permissions à vos extensions page AMO</h2> + +<p>Les messages de permissions sont plus susceptibles d'empêcher un utilisateur d'installer votre extension, car ils ne comprennent pas pourquoi les permissions sont demandées. Bien que l'utilisateur puisse obtenir des conseils généraux sur l'impact d'une permission, il peut ne pas être suffisant pour lui de comprendre pourquoi une permission est demandée dans votre extension.</p> + +<p>Pour résoudre ce problème, fournissez des informations dans la description AMO de votre extension qui explique les permissions demandées par votre extension et pourquoi.</p> + +<p>Un bon exemple de cette approche est <a href="https://addons.mozilla.org/en-US/firefox/addon/gesturefy/">Gesturefy</a>, qui offre aux utilisateurs les conseils suivants :</p> + +<p><img alt="Extract from Gesturefy's AMO description providing information on thepermissions requested by this extension" src="https://mdn.mozillademos.org/files/15743/gesturefy_permissions_explanation.png" style="height: 520px; width: 866px;"></p> diff --git a/files/fr/orphaned/mozilla/add-ons/webextensions/security_best_practices/index.html b/files/fr/orphaned/mozilla/add-ons/webextensions/security_best_practices/index.html new file mode 100644 index 0000000000..05a6a7a699 --- /dev/null +++ b/files/fr/orphaned/mozilla/add-ons/webextensions/security_best_practices/index.html @@ -0,0 +1,63 @@ +--- +title: Bonnes pratiques de sécurité +slug: Mozilla/Add-ons/WebExtensions/securite_bonne_pratique +tags: + - Débutant + - Extensions + - Intermédiaire + - Sécurité + - WebExtensions + - revue +translation_of: Mozilla/Add-ons/WebExtensions/Security_best_practices +--- +<div>{{AddonSidebar}}</div> + +<p>Voici une liste des meilleures pratiques à suivre pour protéger les utilisateurs de votre extension. Si vous ne suivez pas ces bonnes pratiques, votre extension risque d'échouer les avis sur <a href="https://addons.mozilla.org">addons.mozilla.org</a>, Si vous ne suivez pas ces bonnes pratiques, votre extension risque d'échouer les avis survous empêchant ainsi de distribuer votre module ou de le bloquer à l'installation dans Firefox.</p> + +<ul> + <li><strong>Ne pas injecter ou incorporer des scripts distants</strong><br> + Si vous identifiez un service que vous souhaitez utiliser dans votre extension, n'injectez pas le script du service à partir d'une source distante. Une telle approche est risquée, car le code pourrait être modifié sans que vous le sachiez — et, surtout, sans la connaissance et le consentement de l'utilisateur des extensions — compromettant la sécurité de votre extension. Vous devriez donc ajouter une copie du script dans le code de votre extension.</li> + <li><strong>Assurez-vous d'insérer le contenu distant en toute sécurité</strong><br> + Assurez-vous de suivre les bonnes pratiques lorsque votre extension utilise du contenu distant : + <ul> + <li>insérez des chaînes à l'aide de méthodes de manipulation DOM natives sécurisées : <a href="/fr/docs/Web/API/Document/createElement">document.createElement</a>, <a href="/fr/docs/Web/API/Element/setAttribute">Element.setAtttribute</a>, et <a href="/fr/docs/Web/API/Node/textContent">Node.textContent</a>.</li> + <li>utilisez les fonctions <code>attr()</code> et <code>text()</code> pour insérer des chaînes.</li> + <li>assainir le contenu HTML avec <a href="https://github.com/cure53/DOMPurify">DOMPurify</a>.</li> + <li>utiliser des commandes de moteur de modèle qui échappent à tout code HTML avant de l'insérer.</li> + </ul> + + <p>Pour plus d'informations, voir <a href="/fr/Add-ons/WebExtensions/Safely_inserting_external_content_into_a_page">Insérer du contenu externe en toute sécurité dans une page</a>.</p> + </li> + <li><strong>Utiliser XHR pour Google Analytics</strong><br> + Si vous souhaitez ajouter Google Analytics à votre extension, n'insérez pas le code JavaScript Google Analytics. Il est plutôt recommandé d'utiliser l'API REST Google Analytics dans un appel XHR, par exemple: + <pre class="brush: js">let request = new XMLHttpRequest(); +let message = + "v=1&tid=" + GA_TRACKING_ID + "&cid= " + GA_CLIENT_ID + "&aip=1" + + "&ds=add-on&t=event&ec=AAA&ea=" + aType; + +request.open("POST", "https://www.google-analytics.com/collect", true); +request.send(message);</pre> + Vous pouvez trouver plus d'informations dans l'article de blog <a href="https://blog.mozilla.org/addons/2016/05/31/using-google-analytics-in-extensions/">Utilisation de Google Analytics dans les Extensions</a>.</li> + <li><strong>Utiliser la stratégie de sécurité du contenu de l'extension standard (CSP)</strong><br> + La stratégie standard limite les sources à partir desquelles votre extension peut charger les ressources <a href="/fr/docs/Web/HTML/Element/script"><code><script></code></a> et <a href="/fr/docs/Web/HTML/Element/object"><code><object></code></a>, et interdit les pratiques potentiellement dangereuses, telles que l'utilisation de <a href="/fr/docs/Web/JavaScript/Reference/Global_Objects/eval">eval()</a>. Bien que la clé manifest.json <a href="/fr/Add-ons/WebExtensions/manifest.json/content_security_policy">content_security_policy</a> vous permette de modifier la stratégie de sécurité du contenu de votre extension, cette opération n'est pas recommandée car elle empêche les extensions d'exécuter involontairement du contenu malveillant. Si votre CSP modifié autorise l'injection de script à distance, votre extension sera rejetée par AMO pendant la révision.<br> + Pour plus d'informations, voir <a href="/fr/Add-ons/WebExtensions/Content_Security_Policy#Default_content_security_policy">Stratégie de sécurité du contenu par défaut</a>.</li> + <li><strong>Partagez des objets avec JavaScript sur la page avec soin</strong><br> + Firefox fournit <code>wrappedJSObject</code> afin qu'un script de contenu puisse accéder aux objets JavaScript créés par les scripts de page. Le danger ici est qu'une page Web malveillante puisse, par exemple, modifier les fonctions des objets JavaScript pour exécuter son propre code.<br> + Pour plus d'informations, voir <a href="/fr/Add-ons/WebExtensions/Sharing_objects_with_page_scripts">Accès aux objets de script de page à partir de scripts de contenu</a>.</li> + <li><strong>Utilisez <code>window.eval()</code> dans les scripts de contenu avec prudence</strong><br> + Vous devez être très prudent lorsque vous exécutez du code dans le contexte d'une page. Une page Web malveillante pourrait tenter d'exécuter du code en exploitant l'utilisation de <code>window.eval()</code>. Il peut le faire, par exemple, en redéfinissant les objets que votre code pourrait vouloir évaluer.<br> + Pour plus d'informations, voir <a href="/fr/docs/Web/JavaScript/Reference/Global_Objects/eval#Don't_use_eval_needlessly!">Ne pas utiliser eval inutilement !</a></li> + <li><strong>Créez votre interface utilisateur avec des composants d'extension</strong><br> + Créez l'interface utilisateur de votre extension à l'aide des <a href="/fr/Add-ons/WebExtensions/user_interface">fonctions intégrées de l'interface utilisateur d'extension</a>, telles que les pages groupées, pageAction et les fenêtres contextuelles sur pageAction et browserAction. N'ajoutez pas d'éléments d'interface utilisateur, tels que des boutons ou des barres d'outils, directement aux pages Web. Si vous le faites, les scripts sur la page Web pourraient compromettre votre extension. Voir <a href="https://www.grepular.com/Keybase_Browser_Extension_Insecure">extension du navigateur Keybase Insecure</a> pour un exemple des problèmes potentiels.<br> + Si les composants de l'interface utilisateur standard ne suffisent pas, utilisez des iframes avec des <a href="/fr/docs/Web/HTTP/Basics_of_HTTP/Data_URIs">URL de données</a> pour éviter les empreintes digitales ou ajoutez des iframes au code d'extension afin qu'une page ne puisse pas interagir avec le contenu de votre interface utilisateur, comme les boutons.</li> + <li><strong>Ajouter eslint-plugin-no-unsanitized à ESLint</strong><br> + Si vous utilisez ESLint pour vérifier votre code d'extension, pensez à ajouter eslint-plugin-no-unsanitized. Ce plug-in de règles ESLint signale les instances où du code non-initié provenant d'API ou d'entrées utilisateur peut provoquer des problèmes.</li> + <li><strong>Ne pas injecter les chemins moz-extension directement</strong><br> + Lorsque les liens, les inclusions ou les images injectés incluent des chemins vers <code>moz-extension://{hash}</code> le script de suivi d'une page peut utiliser cette information pour <a href="https://en.wikipedia.org/wiki/Device_fingerprint">identifier</a> l'utilisateur, car le hachage (UUID) est unique à l'installation de l'extension et, par conséquent, l'utilisateur.<br> + La meilleure façon d'éviter ce problème est de suivre les conseils généraux concernant l'injection de contenu. Cependant, si vous pensez que l'injection de contenu est votre seule approche pratique, assurez-vous que les chemins moz-extension sont incorporés dans un iframe en utilisant une <a href="/fr/docs/Web/HTTP/Basics_of_HTTP/Data_URIs">URL de données</a> ou l'attribut <a href="/fr/docs/Web/HTML/Element/iframe#attr-srcdoc">srcdoc</a>.</li> + <li><strong>S'assurer que les bibliothèques tierces sont à jour</strong><br> + tierces réputées seront mises à jour lorsque des problèmes seront détectés. L'utilisation de bibliothèques tierces périmées (et potentiellement non sécurisées) est fortement déconseillée et, lorsqu'un risque important est identifié, l'AMO peut agir pour bloquer les extensions en utilisant le code obsolète.<br> + Par conséquent, utilisez toujours la dernière version des bibliothèques tierces lorsque vous créez votre extension. Ensuite, prenez connaissance des mises à jour de ces bibliothèques et soyez prêt à mettre à jour votre extension pour vous assurer qu'elle utilise une version à jour de la bibliothèque.</li> + <li><strong>Ne pas modifier les bibliothèques tierces</strong><br> + Les modifications apportées à une bibliothèque tierce sont un indicateur significatif qu'un développeur essaie de cacher du code malveillant dans un code généralement connu et approuvé. AMO va donc essayer de détecter les modifications apportées aux bibliothèques tierces et peut désactiver les extensions lorsqu'il trouve des modifications.</li> +</ul> diff --git a/files/fr/orphaned/mozilla/add-ons/webextensions/temporary_installation_in_firefox/index.html b/files/fr/orphaned/mozilla/add-ons/webextensions/temporary_installation_in_firefox/index.html new file mode 100644 index 0000000000..26f97b3cac --- /dev/null +++ b/files/fr/orphaned/mozilla/add-ons/webextensions/temporary_installation_in_firefox/index.html @@ -0,0 +1,56 @@ +--- +title: Installation temporaire dans Firefox +slug: Mozilla/Add-ons/WebExtensions/installation_temporaire_dans_Firefox +tags: + - WebExtensions +translation_of: Mozilla/Add-ons/WebExtensions/Temporary_Installation_in_Firefox +--- +<div>{{AddonSidebar}}</div> + +<p>Cet article décrit comment une extension<em> </em>développée peut être temporairement installée dans Firefox pour la tester et la déboguer. L'extension restera installée jusqu'à ce que vous redémarriez Firefox. Vous pouvez utiliser cette méthode avec tout type d'extension ne nécessitant pas de redémarrage, y compris les <a href="/fr/docs/Mozilla/Add-ons/Bootstrapped_extensions">extensions bootstrap</a> et les <a href="/fr/docs/Mozilla/Add-ons/SDK">extensions utilisant le SDK des Add-ons</a>.</p> + +<p>Notez que les utilisateurs <em>ne devraient pas</em> utiliser cette méthode pour installer des extensions dans Firefox. Les utilisateurs installeront des extensions en téléchargeant et en ouvrant des extensions packagées qui ont été signées par Mozilla. Pour savoir comment un développeur d'extension peut faire packager et signer son extension, consultez <a href="/fr/docs/Mozilla/Add-ons/WebExtensions/Publishing_your_WebExtension">Publier votre extension</a>.</p> + +<p>Pour installer une extension temporairement :</p> + +<ul> + <li>Ouvrez Firefox</li> + <li>Entrez "about:debugging" dans la barre de l'URL</li> + <li>Cliquez sur "Charger un module temporaire"</li> + <li>Ouvrez le répertoire de l'extension et sélectionnez n'importe quel fichier à l'intérieur de l'extension.</li> +</ul> + +<p>L'extension sera installée et restera installée jusqu'à ce que vous redémarriez Firefox.</p> + +<p>{{EmbedYouTube("cer9EUKegG4")}}</p> + +<h2 id="Recharger_une_extension_temporaire">Recharger une extension temporaire</h2> + +<p>À partir de Firefox 48, il y a un nouveau bouton appelé "Recharger" à côté du nom de l'extension dans about:debugging :</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/13462/reload.png" style="display: block; height: 544px; margin-left: auto; margin-right: auto; width: 848px;">Il fait ce qu'il dit :</p> + +<ul> + <li>Recharger les scripts persistants, tels que les <a href="/fr/Add-ons/WebExtensions/Anatomy_of_a_WebExtension#Background_scripts">scripts de fond d'écran</a></li> + <li>Analyser le fichier <code>manifest.json</code> de nouveau, pour prendre en compte les changements de <code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/manifest.json/permissions">permissions</a></code>, <code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/manifest.json/content_scripts">content_scripts</a></code>, <code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/manifest.json/browser_action">browser_action</a></code> ou d'autres clefs.</li> +</ul> + +<p>{{EmbedYouTube("NuajE60jfGY")}}</p> + +<div class="note"> +<p>Notez que dans Firefox 48 uniquement, "Recharger" ne met pas à jour le nom et la description de l'extension qui sont affichés dans about:debugging et about:addons. Ceci a été corrigé dans Firefox 49.</p> +</div> + +<h2 id="Utilisation_de_la_ligne_de_commande">Utilisation de la ligne de commande</h2> + +<p>Si vous utilisez déjà la ligne de commande pour le développement, consultez l'outil <a href="/fr/Add-ons/WebExtensions/Getting_started_with_web-ext">web-ext</a>. Il automatise temporairement l'installation et recharge automatiquement votre extension quand le code source a changé.</p> + +<h2 id="Détection_d'installation_temporaire">Détection d'installation temporaire</h2> + +<p>Votre extension peut détecter si elle a été installée depuis about:debugging au lieu d'avoir été téléchargée comme une extension packagée et signée depuis <a href="https://addons.mozilla.org">addons.mozilla.org</a>. Écoutez l'événement {{WebExtAPIRef("runtime.onInstalled")}} et vérifiez la valeur de <code>details.temporary</code>.</p> + +<h2 id="Limitations">Limitations</h2> + +<p>L'installation temporaire d'une extension n'imite pas complètement le comportement d'une extension signée. Par exemple, si l'extension fait des demandes d'autorisation de temps d'installation, celles-ci ne sont pas affichées dans le cadre du processus d'installation temporaire. De plus, des fonctions, comme le stockage local, persistent même si l'extension est supprimée et que le navigateur redémarre.</p> + +<p>Pour plus d'informations sur la façon de traiter ces situations, voir les <a href="/fr/Add-ons/WebExtensions/Test_permission_requests">demandes de permissions</a> et <a href="/fr/Add-ons/WebExtensions/Testing_persistent_and_restart_features">Test des fonctionnalités persistantes et de redémarrage</a>.</p> diff --git a/files/fr/orphaned/mozilla/add-ons/webextensions/test_permission_requests/index.html b/files/fr/orphaned/mozilla/add-ons/webextensions/test_permission_requests/index.html new file mode 100644 index 0000000000..815653592d --- /dev/null +++ b/files/fr/orphaned/mozilla/add-ons/webextensions/test_permission_requests/index.html @@ -0,0 +1,134 @@ +--- +title: Demandes de permission +slug: Mozilla/Add-ons/WebExtensions/demandes_de_permission +tags: + - Add-ons + - Extensions + - Guide + - Permissions + - Testing + - WebExtensions +translation_of: Mozilla/Add-ons/WebExtensions/Test_permission_requests +--- +<p>{{AddonSidebar}}</p> + +<p>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.</p> + +<h2 id="Comportement_de_l'octroi_de_la_permission_pendant_le_test"><strong>Comportement de l'octroi de la permission pendant le test</strong></h2> + +<p>Lorsque vous testez avec une extension non compressée utilisant <a href="/fr/docs/Tools/about:debugging"><kbd>about:debugging</kbd></a> ou <a href="/fr/Add-ons/WebExtensions/web-ext_command_reference">web-ext</a> et les permissions d'installation et d'exécution sont traitées comme suit :</p> + +<ul> + <li>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.</li> + <li><span class="tlid-translation translation"><span title="">L</span></span>es 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 <kbd>about:debugging</kbd> ou redémarrer Firefox.</li> +</ul> + +<h2 id="Observeer_ou_vérifier_des_demandes_de_permissions_lors_de_l'installation"><strong>Observeer ou vérifier des demandes de permissions lors de l'installation</strong></h2> + +<p>Vous suivez différents processus selon que vous souhaitez observer les demandes de permissions associées à une installation ou à une mise à niveau.</p> + +<h3 id="Demandes_de_permission_pour_l'installation_d'extensions"><strong>Demandes de permission pour l'installation d'extensions</strong></h3> + +<p>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.</p> + +<p>Pour ce faire, vous devez utiliser un fichier *.xpi ou *.zip non signé :</p> + +<ul> + <li>donnez un identifiant à votre extension à l'aide de la clé d'<a href="/fr/docs/applications">applications</a> application.</li> + <li>exécuter les versions <a href="https://nightly.mozilla.org/"> Nightly</a> ou<a href="https://www.mozilla.org/firefox/developer/"> Developer Edition</a> de Firefox.</li> + <li>Définissez la préférence <kbd>about:config</kbd> <code>xpinstall</code><code>.signatures.required</code> à <code>false</code>.</li> +</ul> + +<p>Installez ensuite l'extension à l'aide de l'option <strong>Installer Add-on à partir du fichier</strong> dans le gestionnaire de modules complémentaires (<kbd>about:addons</kbd>). Au fur et à mesure que l'extension s'installe, la demande d'octroi des permissions s'affiche lors de l'installation, comme ceci :</p> + +<p><img alt="Example of the doorhanger displayed when installing an extension through about:addons" src="https://mdn.mozillademos.org/files/16538/installing_unpackaged_extension.png" style="height: 256px; width: 378px;"></p> + +<p>Notez que le message d'avertissement concerne une extension non signée ; ce message ne s'affiche pas pendant l'installation depuis <a href="http://addons.mozilla.org">addons.mozilla.org</a>.</p> + +<h3 id="Demande_de_permission_pour_la_mise_à_niveau_de_l'extension"><strong>Demande de permission pour la mise à niveau de l'extension</strong></h3> + +<div class="blockIndicator note"> +<p>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 <a href="/fr/Add-ons/Updates">Mises à jour</a>.</p> +</div> + +<p>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.</p> + +<p>Vous pouvez utiliser un serveur HTTP (tel qu'un simple <a href="/fr/docs/Apprendre/Common_questions/configurer_un_serveur_de_test_local">serveur localhost python</a>) 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.</p> + +<p>Pour effectuer le test, vous devrez :</p> + +<ul> + <li>déterminer l'adresse du serveur HTTP ou HTTPS où vous pouvez héberger les fichiers.</li> + <li>utilisez la clé des <a href="/fr/docs/applications">applications</a> manifest.json pour : + <ul> + <li>donnez un identifiant à votre poste, si vous ne l'avez pas déjà fait.</li> + <li>définir l'URL de mise à jour où vous hébergerez votre <a href="/fr/Add-ons/Updates">manifest de mise à jour</a>. Par exemple : + <pre class="brush: json">… +"applications": { + "gecko": { + "strict_min_version": "54.0a1", + "update_url": "<a href="https://your-account.github.io/webextensions/upgrade.json">https://your-account.github.io/webextensions/upgrade.json</a>", + "id": "<a href="mailto:test@your-address.com">test@your-address.com</a>" + } +}, +…</pre> + </li> + </ul> + </li> + <li>si nécessaire, <a href="/fr/Add-ons/WebExtensions/Package_your_extension_">créez un paquet</a> contenant votre extension originale.</li> + <li>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. + <div class="blockIndicator warning">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.</div> + </li> +</ul> + +<ul> + <li>Créer la <a href="/fr/Add-ons/Updates">mise à jour du manifest</a> avec les détails des deux versions d'extension, qui devrait être similaire à celui-ci : + + <pre class="brush: json">{ + "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" } + ] + } + } +}</pre> + </li> + <li>télécharger les deux paquets d'extension et les mises à jour manifestes sur votre serveur HTTP ou HTTPS.</li> + <li>exécuter les versions <a href="https://nightly.mozilla.org/">Nightly</a> ou<a href="https://www.mozilla.org/firefox/developer/"> Developer Edition</a> de Firefox.</li> + <li>dans <kbd>about:config</kbd> : + <ul> + <li>Définissez la préférence <code>xpinstall.signatures.required</code> à <code>false</code>.</li> + <li>Si vous utilisez <a href="https://nightly.mozilla.org/">Nightly</a> et hébergez votre mise à jour sur un serveur HTTP, créez et définissez les préférences <code>extensions.checkUpdateSecurity</code> et <code>extensions.install.requireSecureOrigin</code> à <code>false</code>. Pour faire ceci : + <ul> + <li>entrez le nom de la préférence dans la zone de recherche.</li> + <li>cliquez sur<strong> Ajouter</strong>.<br> + <img alt="Create a new about:config item in Nightly" src="https://mdn.mozillademos.org/files/16541/preference_create_2.png"></li> + <li>basculez la préférence pour la mettre à false.<br> + <img alt="Toggle the boolean value of a about:config item in Nightly" src="https://mdn.mozillademos.org/files/16542/preference_toggle_2.png" style="height: 147px; width: 987px;"></li> + </ul> + </li> + </ul> + </li> + <li>ouvrez le lien vers le premier fichier XPI pour l'installer.</li> + <li>Ouvrez <kbd>about:addons</kbd>, cliquez sur l'icône cranter et cliquez sur <strong>Check for Updates</strong>.</li> + <li>vous obtiendrez un message d'avertissement de permission, similaire à celui ci-dessous, détaillant les permissions supplémentaires demandées :<br> + <img alt="Example of the doorhanger displayed when testing permission requests for an extension upgrade" src="https://mdn.mozillademos.org/files/16545/upgrade_install_2.png" style="height: 215px; width: 376px;"></li> +</ul> + +<div class="blockIndicator note"> +<p>Si la mise à niveau n'a pas lieu, recherchez dans les logs <code>addons.update-checker</code> de la <a href="/en-US/docs/Tools/Browser_Console">console du navigateur</a>. Toute erreur rencontrée au cours du processus de mise à niveau sera signalée dans le journal de logs.</p> +</div> + +<h2 id="Re-tester_les_permissions_d'éxécution_octroyées"><strong>Re-tester les permissions d'éxécution octroyées</strong></h2> + +<p>Pour tester à nouveau les permissions d'exécution de votre extension et son comportement post-installation, vous avez deux choix :</p> + +<ul> + <li>supprimez l'extension en utilisant <kbd>about:debugging</kbd> et réinstallez-la, ou redémarrez Firefox.<br> + <img alt="Highlights the location of the remove option for a web extension in about:debugging" src="https://mdn.mozillademos.org/files/16563/reload_to_retest.png" style="height: 403px; width: 1229px;"></li> + <li>si vous utilisez <a href="https://nightly.mozilla.org/">Nightly</a> ou<a href="https://www.mozilla.org/firefox/developer/"> Developer Edition</a>, utilisez l'extension web des <a href="https://github.com/rpl/dev-webext-permissions-manager">extensions permission Manager</a> pour supprimer les permissions.</li> +</ul> + +<p>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.</p> diff --git a/files/fr/orphaned/mozilla/add-ons/webextensions/testing_persistent_and_restart_features/index.html b/files/fr/orphaned/mozilla/add-ons/webextensions/testing_persistent_and_restart_features/index.html new file mode 100644 index 0000000000..92e16e408d --- /dev/null +++ b/files/fr/orphaned/mozilla/add-ons/webextensions/testing_persistent_and_restart_features/index.html @@ -0,0 +1,124 @@ +--- +title: Test des fonctionnalités persistantes et de redémarrage +slug: >- + Mozilla/Add-ons/WebExtensions/test_des_fonctionnalites_persistantes_et_de_redemarrage +tags: + - Comment + - Débutant + - Développement + - Intermédiaire + - WebExtensions + - add-on + - test + - web-ext +translation_of: Mozilla/Add-ons/WebExtensions/Testing_persistent_and_restart_features +--- +<p>{{AddonSidebar}}</p> + +<p>Lors du test de votre extension, vous pouvez remarquer que certaines fonctionnalités se réinitialisent ou cessent de fonctionner lorsque vous chargez une version mise à jour ou après le redémarrage de Firefox. Par exemple, vous pouvez utiliser le stockage local et remarquer que les données précédemment sauvegardées disparaissent lorsque vous rechargez votre extension. Alternativement, vous pouvez tester votre extension à travers un redémarrage de Firefox, mais notez que votre extension ne reste pas chargée.</p> + +<p>Cet article explique pourquoi vous voyez ces comportements. Il vous montre ensuite ce qu'il faut faire pour vous assurer que les fonctions persistent lorsque vous rechargez votre extension et comment configurer pour tester le comportement de redémarrage.</p> + +<p>Avant de regarder comment Firefox traite l'extension que vous testez; Il y a quelques fonctionnalités de Firefox et des extensions dont vous devez être conscient : l'ID du module complémentaire et les profils Firefox.</p> + +<h2 id="Qu'est-ce_qu'un_ID_complémentaire">Qu'est-ce qu'un ID complémentaire ?</h2> + +<p>L'ID de module complémentaire est utilisé pour identifier de manière unique chaque extension et à son tour, cet ID est utilisé pour lier une extension à certaines fonctionnalités des API WebExtension. Ces fonctionnalités sont:</p> + +<ul> + <li>{{WebExtAPIRef("storage.managed")}} — identifie les données comme appartenant à l'extension par son ID add-on.</li> + <li>{{WebExtAPIRef("storage.sync")}} — identifie les données comme appartenant à l'extension par son ID complémentaire.</li> + <li>{{WebExtAPIRef("identity.getRedirectURL")}} — l'URL de redirection inclut l'ID complémentaire de l'extension.</li> + <li><a href="/fr/Add-ons/WebExtensions/Native_messaging">Native messaging </a>— l'application native identifie les extensions qui peuvent communiquer avec elles par leur ID complémentaire.</li> + <li>{{WebExtAPIRef("pkcs11")}} — le module PKCS #11 identifie les extensions qui peuvent communiquer avec lui par leur ID complémentaire.</li> + <li>{{WebExtAPIRef("runtime.onMessageExternal")}} — une extension envoie des messages à un autre poste en utilisant son ID complémentaire comme adresse.</li> + <li>{{WebExtAPIRef("runtime.onConnectExternal")}} — une extension demande une connexion avec une extension par l'ID d'extension de l'autre extension.</li> + <li>{{WebExtAPIRef("browserAction")}} — la position sauvegardée du bouton est identifiée comme appartenant à l'extension en fonction de son ID add-on.</li> +</ul> + +<p>Une extension peut se voir attribuer un ID complémentaire en utilisant la clé <code>"applications"</code> du fichier manifest.json.</p> + +<pre class="brush: json">"applications": { + "gecko": { + "id": "addon@example.com", + } + }</pre> + +<p>Si l'extension n'a pas d'ID de module défini avec la clé <code>"applications"</code> , il reçoit un ID de module complémentaire via l'un des éléments suivants:</p> + +<ul> + <li>Si l'extension est soumise à l'AMO et signée, elle reçoit un identifiant lorsqu'elle est signée.</li> + <li>Si l'extension est chargée à l'aide de Load Temporary Add-on dans about:debugging un ID complémentaire temporaire lui est affecté.<br> + <img alt="Example of a temporarily loaded extension showing its various IDs" src="https://mdn.mozillademos.org/files/15774/Temporary_extensions.png" style="height: 289px; width: 837px;"></li> +</ul> + +<p>Vous remarquerez un ID supplémentaire dans l'image ci-dessus, l'UUID interne. C'est un identifiant unique donné à l'extension lors de l'installation. Il est utilisé pour définir l'emplacement de stockage des ressources incluses dans l'extension et identifier les données d'un poste dans <a href="/fr/docs/Web/API/Window/localStorage">window.localStorage</a> ou <a href="/fr/docs/Web/API/IndexedDB_API">indexedDB</a>. Cependant, vous n'avez pas besoin de connaître sa valeur. Son utilisation dans <code>window.localStorage</code> ou <code>indexedDB</code> est transparente et pour accéder aux ressources incluses dans l'extension, vous utilisez {{WebExtAPIRef("runtime.getURL")}}, qui renvoie le chemin d'accès aux ressources. De plus, étant donné qu'il est unique à chaque installation, il ne fournit pas d'ID pouvant être utilisé à d'autres fins.</p> + +<h2 id="Qu'est-ce_qu'un_profil_Firefox">Qu'est-ce qu'un profil Firefox?</h2> + +<p>Les données qui définissent la manière dont l'utilisateur a configuré Firefox, ainsi que les informations générées lors de la navigation sur le Web, telles que l'historique et les cookies, sont stockées dans un dossier spécial, appelé <a href="https://support.mozilla.org/fr/kb/profils-ou-firefox-conserve-donnees-utilisateur">profile</a>. En plus des cookies, le profil contient du stockage local et d'autres contenus liés au profil.</p> + +<h2 id="Comportement_d'extension_dans_Firefox">Comportement d'extension dans Firefox</h2> + +<p>Lorsque vous développez une extension, en supposant que vous n'avez pas défini d'ID complémentaire à l'aide de la clé <code>"applications"</code>, le comportement par défaut dans Firefox est le suivant :</p> + +<ul> + <li>lorsque vous utilisez la fonction Load Temporary Add-on dans environ: le débogage de votre extension se voit attribuer un nouvel ID de module complémentaire chaque fois que vous le chargez.</li> + <li>Lorsque vous utilisez Web-ext, en plus d'obtenir un nouvel ID complémentaire chaque fois que vous lancez une extension, il est également lancé dans un nouveau profil.</li> + <li>lorsqu'une extension temporairement chargée est déchargée, le stockage local, tel que celui utilisé par <code>storage.local</code>, <code>window.localStorage</code>, et <code>indexedDB</code>, est supprimé.</li> + <li>Lorsque vous arrêtez Firefox, les extensions temporairement chargées sont déchargées et ne sont donc pas disponibles lorsque Firefox redémarre. Cela inclut les extensions chargées avec Load Temporary Add-on dans about:debugging et web-ext.</li> +</ul> + +<p>Les conséquences de ce comportement, lors du rechargement d'une extension, sont les suivantes :</p> + +<ul> + <li>toutes les données dans le stockage local ou de synchronisation sont perdues.</li> + <li>toute URL de redirection devient invalide.</li> + <li>l'extension ne pourra plus communiquer avec des applications natives ou un module PKCS #11.</li> + <li>il ne sera plus possible d'envoyer des messages ou de créer des connexions entre les extensions.</li> + <li>vous ne pouvez pas tester le comportement de l'extension si Firefox est arrêté et redémarré.</li> + <li>Les positions de <code>browserAction</code> ne sont pas reportées</li> +</ul> + +<h2 id="Que_dois-je_faire_pour_m'assurer_de_pouvoir_tester_mon_extension">Que dois-je faire pour m'assurer de pouvoir tester mon extension ?</h2> + +<p>Pour que votre extension se comporte comme une extension signée pendant les tests de développement, utilisez les techniques suivantes :</p> + +<ul> + <li>pour vous assurer qu'une extension peut utiliser des fonctionnalités dépendantes de l'ID complémentaire entre les rechargements, telles que le stockage local ou la communication d'application native : + <ul> + <li>définir un ID de module complémentaire à l'aide de la clé <code>"applications"</code> dans le fichier manifest.json de l'extension.</li> + <li>lorsque vous utilisez web-ext, assurez-vous d'utiliser le même profil.</li> + </ul> + </li> + <li>pour vous assurer d'utiliser le même profil pour plusieurs tests d'une extension lors de l'utilisation de web-ext : + <ul> + <li>en option, utilisez <a href="https://support.mozilla.org/fr/kb/utiliser-gestionnaire-profils-creer-supprimer-profils">Profile Manager</a> pour créer un nouveau profil Firefox.</li> + <li>rouvez le chemin vers votre nouveau profil ou le profil Firefox par défaut en suivant les instructions dans <a href="https://support.mozilla.org/fr/kb/profils-ou-firefox-conserve-donnees-utilisateur#w_trouver-votre-profil-sans-ouvrir-firefox">Comment trouver mon profil ?</a></li> + <li>ajoutez le chemin du profil Firefox à la commande <code>web-ext run</code> comme ceci :<br> + <code>web-ext run --firefox-profile [A PATH TO A FIREFOX PROFILE] --keep-profile-changes</code></li> + </ul> + </li> + <li>pour préserver les données <code>storage.local</code>, l'accès à <code>window.localStorage</code> ou les données <code>indexedDB</code> lors de la suppression d'un add-on temporaire (par exemple entre deux redémarrages du navigateur) : + <ul> + <li>allez à about:config et réglez <code>extensions.webextensions.keepStorageOnUninstall</code> et <code>extensions.webextensions.keepUuidOnUninstall</code> à <code>true</code>.</li> + </ul> + </li> + <li>pour tester le comportement de redémarrage : + <ul> + <li>définir un ID de module complémentaire à l'aide de la clé <code>"applications"</code> dans le fichier manifest.json de l'extension.</li> + <li>installez les éditions <a href="https://www.mozilla.org/firefox/nightly/all/">Nightly</a> ou <a href="https://www.mozilla.org/firefox/developer/">Developer</a> de Firefox. Remarque : Vous pouvez également utiliser les versions <a href="https://wiki.mozilla.org/Add-ons/Extension_Signing#Unbranded_Builds">unbranded Beta et Release builds</a>.</li> + <li>allez à about:config et définissez <code>xpinstall.signatures.required</code> à <code>false</code>.</li> + <li>Compressez votre extension dans un fichier ZIP <a href="/fr/Add-ons/WebExtensions/web-ext_command_reference#web-ext_build">using web-ext</a> ou en <a href="/fr/Add-ons/WebExtensions/Publishing_your_WebExtension#1._Zip_up_your_extension's_files">compressant manuellement</a>.</li> + <li>installez votre extension en utilisant Install Add-on From File dans le gestionnaire de modules complémentaires (about:addons).<br> + Remarque: N'oubliez pas que vous devrez recharger votre extension chaque fois que vous la modifiez.<br> + Remarque: Si vous ne définissez pas l'ID du module complémentaire, lorsque vous chargez l'extension, vous obtenez une erreur comme celle-ci : + <p><img alt="Example of the message displayed when an add-on ID cannot be found for an extension" src="https://mdn.mozillademos.org/files/15775/ID_failure.png" style="height: 163px; width: 429px;"></p> + + <p>avec une erreur correspondante dans la console du navigateur .</p> + + <p><img alt="Example of the message displayed in the browser console when an add-on ID cannot be found for an extension" src="https://mdn.mozillademos.org/files/15776/ID_failure_console.png" style="height: 116px; width: 1167px;"></p> + </li> + </ul> + </li> +</ul> diff --git a/files/fr/orphaned/mozilla/add-ons/webextensions/user_experience_best_practices/index.html b/files/fr/orphaned/mozilla/add-ons/webextensions/user_experience_best_practices/index.html new file mode 100644 index 0000000000..bab0b4a22a --- /dev/null +++ b/files/fr/orphaned/mozilla/add-ons/webextensions/user_experience_best_practices/index.html @@ -0,0 +1,190 @@ +--- +title: Expérience utilisateur bonnes pratiques +slug: Mozilla/Add-ons/WebExtensions/Experience_utilisateur_bonnes_pratiques +tags: + - Add-ons + - Extensions + - Guide + - UI + - UX +translation_of: Mozilla/Add-ons/WebExtensions/User_experience_best_practices +--- +<div>{{AddonSidebar()}}</div> + +<p>Vous voudrez vous assurer que vos utilisateurs ont une excellente expérience en utilisant votre extension—quand vous le ferez, les bonnes critiques et évaluations suivront sur <a href="https://addons.mozilla.org">addons.mozilla.org</a> (AMO).</p> + +<p dir="ltr">Si vous êtes nouveau sur le sujet de rendre un logiciel utilisable. un bon point de départ pour démarrer est l'<a href="https://en.wikipedia.org/wiki/Heuristic_evaluation#Nielsen">Heuristique d'usabilité</a> de Jakob Nielsen. Nous vous recommandons, que vous soyez nouveau pour le développement d'extension ou pour un professionnel expérimenté, en utilisant les Heuristiques de Nielsen comme une liste de contrôle du <a href="#Test_test_and_then_test_again">test de votre expérience utilisateur (UX)</a>.</p> + +<p>Nous présentons ici les six étapes à suivre pour créer des fonctionnalités Firefox et UX spécifiques afin que vous puissiez créer une extension qui séduise, informe, enchante et fidélise vos utilisateurs.</p> + +<p>En plus des étapes décrites ici, votre extension doit suivre les règles d'<a href="https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/AMO/Policy/Reviews">Add-on Policies</a>, qui incluent la transparence avec les utilisateurs sur la sécurité, la confidentialité et le contrôle de l'utilisateur.</p> + +<h2 id="1._Gardez_le_cap">1. Gardez le cap</h2> + +<p dir="ltr">Les meilleures extensions Firefox offrent aux utilisateurs une nouvelle fonctionnalité ou capacité qui répond à un besoin, qu'il soit plus intelligent, plus efficace ou plus agréable de navigation. Idéalement, votre extension permet à l'utilisateur d'économiser du temps, de l'argent ou de la frustration.</p> + +<p>Une extension est meilleure lorsqu'elle est centrée autour d'un cas d'utilisation principal et qu'elle s'adresse à ce cas d'utilisation aussi bien que possible pour le public cible :</p> + +<ul> + <li>Il doit ajouter une fonction ou un ensemble de fonctions étroitement liées au navigateur, modifier une fonction du navigateur ou modifier des pages Web.</li> + <li>Déterminez si vous y êtes parvenu en demandant si vous pouvez facilement communiquer les caractéristiques et le but de la prolongation en trois phrases (courtes) ou moins.</li> +</ul> + +<h2 id="2._Donner_aux_utilisateurs_ce_dont_ils_ont_besoin_là_où_ils_en_ont_besoin">2. Donner aux utilisateurs ce dont ils ont besoin, là où ils en ont besoin</h2> + +<p dir="ltr">Choisir la bonne façon, ou la combinaison de plusieurs façons, de rendre la fonctionnalité de votre extension disponible pour l'utilisateur peut avoir un effet significatif sur la convivialité. Poser quelques questions simples sur les fonctionnalités de votre poste peut vous guider rapidement vers les bons choix :</p> + +<h3 dir="ltr" id="Est-ce_que_mon_extension_fonctionne_sur_la_plupart_des_sites_et_pages_web">Est-ce que mon extension fonctionne sur la plupart des sites et pages web ?</h3> + +<p dir="ltr">Si votre extension fournit à l'utilisateur des fonctionnalités qu'il peut utiliser sur presque tous les sites Web ou pages, donnez-lui accès à partir d'un <strong><a href="https://developer.mozilla.org/en-US/Add-ons/WebExtensions/user_interface/Browser_action">bouton de la barre d'outils</a> </strong><strong>en utilisant <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/browserAction">l'action du navigateur.</a></strong></p> + +<ul dir="ltr"> + <li>Cela peut inclure l'accès à votre éditeur d'images ou l'ouverture d'une page de votre site Web.</li> +</ul> + +<p dir="ltr"><img alt="" src="https://mdn.mozillademos.org/files/12966/browser-action.png" style="display: block; height: 387px; margin-left: auto; margin-right: auto; width: 782px;"></p> + +<p dir="ltr">Lorsque vous voulez donner l'accès à l'utilisateur à plusieurs fonctions, vous pouvez ajouter <a href="/en-US/Add-ons/WebExtensions/Popups">popup</a> au bouton (un popup apparaît comme un crochet de porte qui s'ouvre lorsque l'utilisateur sélectionne le bouton d'action du navigateur).</p> + +<h3 dir="ltr" id="Est-ce_que_mon_extension_ne_fonctionne_que_pour_certains_sites_et_pages_web">Est-ce que mon extension ne fonctionne que pour certains sites et pages web ?</h3> + +<p dir="ltr"> </p> + +<p dir="ltr">Si votre extension fournit à l'utilisateur des fonctionnalités qu'il peut utiliser sur presque tous les sites Web ou pages, donnez-lui accès à partir d'un <strong><a href="https://developer.mozilla.org/en-US/Add-ons/WebExtensions/user_interface/Browser_action">bouton de la barre d'outils</a> </strong><strong>en utilisant <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/browserAction">l'action du navigateur.</a></strong></p> + +<ul dir="ltr"> + <li>Cela peut inclure l'accès à votre éditeur d'images ou l'ouverture d'une page de votre site Web.</li> +</ul> + +<p dir="ltr"> </p> + +<p dir="ltr"><img alt="" src="https://mdn.mozillademos.org/files/12960/page-action.png" style="display: block; height: 262px; margin-left: auto; margin-right: auto; width: 850px;"></p> + +<p dir="ltr">Lorsque vous souhaitez donner accès à plusieurs fonctions à l'utilisateur, vous pouvez ajouter une fenêtre contextuelle au bouton.</p> + +<h3 dir="ltr" id="Mon_extension_doit-elle_afficher_des_informations_ou_proposer_des_actions_en_parallèle_avec_des_pages_web">Mon extension doit-elle afficher des informations ou proposer des actions en parallèle avec des pages web ?</h3> + +<p dir="ltr">Si votre extension contient des informations ou des actions auxquelles un utilisateur souhaite accéder immédiatement lorsqu'il consulte une page Web, <strong>utilisez une <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface/Sidebars">barre latérale</a></strong>.</p> + +<ul dir="ltr"> + <li>Il peut s'agir de notes que l'utilisateur peut faire sur le contenu d'une page ou d'une fonction offrant diverses substitutions de polices pour améliorer la lisibilité.</li> +</ul> + +<p dir="ltr"><img alt="" src="https://mdn.mozillademos.org/files/14825/bookmarks-sidebar.png" style="display: block; height: 761px; margin-left: auto; margin-right: auto; width: 728px;"></p> + +<h3 dir="ltr" id="Mon_extension_offre-t-elle_des_fonctionnalités_spécifiques_au_contenu_de_la_page_ou_à_d'autres_fonctions_du_navigateur">Mon extension offre-t-elle des fonctionnalités spécifiques au contenu de la page ou à d'autres fonctions du navigateur ?</h3> + +<p dir="ltr">Si votre extension offre des fonctionnalités auxquelles l'utilisateur peut vouloir accéder en contexte, <strong>ajoutez-les à un <a href="/en-US/Add-ons/WebExtensions/user_interface/Context_menu_items">menu contextuel</a></strong> approprié.</p> + +<ul dir="ltr"> + <li>Cela peut inclure l'accès à un éditeur d'image dans le menu contextuel de l'image ou des fonctions de copie étendues dans le menu contextuel pour le contenu de la page sélectionnée.</li> +</ul> + +<p dir="ltr"><img alt="Example of content menu items added by a WebExtension, from the context-menu-demo example" src="https://mdn.mozillademos.org/files/15051/context_menu_example.png" style="display: block; height: 587px; margin-left: auto; margin-right: auto; width: 573px;"></p> + +<h3 dir="ltr" id="Est-ce_que_mon_poste_possède_des_paramètres_que_l'utilisateur_peut_régler">Est-ce que mon poste possède des paramètres que l'utilisateur peut régler ?</h3> + +<p dir="ltr">Si votre extension permet à l'utilisateur de modifier et d'enregistrer les paramètres qui affectent le comportement de l'extension, utilisez une <strong><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface/Options_pages">page d'options</a> pour fournir un lien Préférences standard vers les paramètres </strong>du gestionnaire des extensions</p> + +<p dir="ltr"><img alt="Typical preferences button, to access an extension's settings, from the Add-on Manager" src="https://mdn.mozillademos.org/files/15271/add-on-manager-preferences-button.png" style="display: block; height: 80px; margin-left: auto; margin-right: auto; width: 732px;"></p> + +<div class="note"> +<p dir="ltr">Dans le système d'exploitation Windows, le bouton "Préférences" est appelé "Options".</p> +</div> + +<h3 dir="ltr" id="Est-ce_que_mon_extension_a_besoin_de_collecter_beaucoup_d'informations_ou_d'afficher_du_contenu_en_plus_des_onglets_actuels">Est-ce que mon extension a besoin de collecter beaucoup d'informations ou d'afficher du contenu en plus des onglets actuels ?</h3> + +<p dir="ltr">Lorsque votre extension a besoin de rassembler ou d'afficher des quantités importantes d'informations (plus qu'il n'est nécessaire pour une <a href="/en-US/docs/Web/API/Window/alert">alerte</a> ou qu'un formatage supplémentaire serait avantageux) <strong>utilisez <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface/Bundled_web_pages">pages webs groupées</a> pour fournir des formulaires et un contenu similaire.</strong></p> + +<p dir="ltr"><img alt="Example of a simple bundled page displayed as a detached panel." src="https://mdn.mozillademos.org/files/15073/bundled_page_as_panel.png" style="display: block; height: 445px; margin-left: auto; margin-right: auto; width: 680px;"></p> + +<h3 dir="ltr" id="Est-ce_que_mon_extension_essaie_d'aider_l'utilisateur_à_trouver_des_pages_web_ou_du_contenu">Est-ce que mon extension essaie d'aider l'utilisateur à trouver des pages web ou du contenu ?</h3> + +<p dir="ltr">Si votre extension inclut une fonctionnalité permettant de localiser des pages Web ou du contenu, par exemple en proposant une recherche spécifique à un site, utilisez les <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface/Omnibox">suggessions de la barre d'adresse</a> pour fournir ces recommandations.</p> + +<p dir="ltr"><img alt="Example showing the result of the firefox_code_search WebExtension's customization of the address bar suggestions." src="https://mdn.mozillademos.org/files/15075/omnibox_example_full.png" style="display: block; height: 325px; margin-left: auto; margin-right: auto; width: 679px;"></p> + +<h3 dir="ltr" id="Mon_extension_offre-t-elle_des_outils_pour_les_développeurs">Mon extension offre-t-elle des outils pour les développeurs ?</h3> + +<p dir="ltr">Si vous fournissez des outils pour les développeurs, ajoutez-les aux outils de développement Firefox en utilisant les <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface/devtools_panels">panneaux des outils de développement</a>.</p> + +<h2 dir="ltr" id="3._Tenir_l'utilisateur_informé">3. Tenir l'utilisateur informé</h2> + +<p dir="ltr">S'assurer que l'utilisateur sait ce qui va se passer, ce qui se passe et ce qui s'est passé dans votre extension est un élément essentiel pour établir la confiance et assurer un utilisateur heureux.</p> + +<h3 dir="ltr" id="Dites_à_l'utilisateur_ce_qui_va_se_passer_avant_qu'il_ne_se_produise.">Dites à l'utilisateur ce qui va se passer, avant qu'il ne se produise.</h3> + +<p dir="ltr">Les utilisateurs doivent comprendre ce qui se passe lorsqu'ils cliquent sur un bouton :</p> + +<ul dir="ltr"> + <li>Fournissez une étiquette de bouton significative et descriptive.</li> + <li>Fournissez des infobulles qui décrivent l'action que le bouton va effectuer..</li> + <li>Ne mettez <strong>pas</strong> le nom de l'extension seul dans l'infobulle, à moins qu'il ne soit descriptif de l'action que le bouton va effectuer..</li> + <li><strong>N'</strong>utilisez <strong>pas</strong> l'infobulle pour d'autres types d'informations telles que des statistiques détaillées sur votre extension. Gardez le contenu de l'infobulle simple et concentrez-vous sur ce qui se passera lorsque l'utilisateur clique sur le bouton.</li> +</ul> + +<h3 dir="ltr" id="Si_quelque_chose_est_vraiment_important_et_que_l'utilisateur_n'en_est_pas_conscient_informez-le.">Si quelque chose est <em>vraiment</em> important et que l'utilisateur n'en est pas conscient, informez-le.</h3> + +<p>Si votre extension a terminé une tâche d'arrière-plan critique et de longue durée, utilisez les <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface/Notifications">notifications</a> natives du système d'exploitation pour mettre à jour l'utilisateur lorsque la tâche est terminée. Ceci peut être utile lorsque l'utilisateur ne se concentre pas sur l'extension ou le navigateur, une fois la tâche terminée.</p> + +<p>Toutefois, utilisez les avis avec parcimonie. S'il suffit que l'utilisateur découvre qu'un processus est terminé lorsqu'il revient au navigateur ou à l'extension, <strong>n'</strong>utilisez pas de notifications.</p> + +<p dir="ltr"><img alt="" src="https://mdn.mozillademos.org/files/14043/notify-shadowed.png" style="display: block; height: 334px; margin-left: auto; margin-right: auto; width: 700px;"></p> + +<h3 dir="ltr" id="Utiliser_les_badges_browserAction_avec_parcimonie">Utiliser les badges browserAction avec parcimonie</h3> + +<p>Pour informer les utilisateurs des événements importants, vous pouvez <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/browserAction/setBadgeText">ajouter un badge</a> au dessus de l'icône de la barre <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/browserAction">browserAction</a>. Faites-le avec parcimonie - n'utilisez pas de badges pour fournir des mises à jour régulières ou persistantes de l'état.</p> + +<p>Lorsqu'il s'agit de <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/browserAction/setBadgeBackgroundColor">coloriser un badge</a>, il est recommandé d'utiliser l'une des quatre couleurs pour les notifications de gravité différente :</p> + +<ul> + <li>Décontracté : bleu</li> + <li>Succès : vert</li> + <li>Attention : jaune</li> + <li>Erreur : rouge</li> +</ul> + +<div class="note"> +<p dir="ltr">L'utilisation des couleurs Firefox est suggérée, pour plus de détails voir <a href="http://design.firefox.com/photon/visuals/color.html">Firefox Colors</a>. Cependant, pour des raisons de compatibilité avec <a href="https://developer.chrome.com/extensions/browserAction#icon">Chrome</a> et Opera, nous prenons en charge toutes les couleurs que vous souhaitez utiliser.</p> +</div> + +<h2 dir="ltr" id="4._Soyez_Firefoxy_dans_l'apparence_et_la_convivialité">4. Soyez Firefoxy dans l'apparence et la convivialité</h2> + +<p>Vos utilisateurs ont choisi Firefox pour une raison, peut-être pour plusieurs raisons, alors faites correspondre l'apparence de votre extension à celle de Firefox en utilisant le <a href="http://design.firefox.com/photon">Firefox Photon Design System</a>.</p> + +<p>En suivant Photon, vous vous assurerez que votre extension s'intègre à l'expérience Firefox et la rendra plus facile à utiliser pour les utilisateurs.</p> + +<h2 dir="ltr" id="5._Grande_expérience_d'intégration">5. Grande expérience d'intégration</h2> + +<p dir="ltr">Les premières minutes après l'installation de votre extension peuvent être cruciales pour son succès. Votre nouvel utilisateur doit savoir par où commencer et comment utiliser les fonctions de l'extension de votre navigateur.</p> + +<p dir="ltr">Fournir une page d'accueil qui donne aux utilisateurs les informations essentielles dont ils ont besoin pour commencer. Rédigez des informations brèves et précises et proposez des options de configuration simples, le cas échéant. Pour plus d'informations sur la création d'une page d'embarquement, voir <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/onboarding_upboarding_offboarding_best_practices">Bonnes pratiques pour les utilisateurs d'embarquement, d'embarquement, et de débarquement</a>.</p> + +<p dir="ltr">Si l'utilisateur saute la page d'embarquement, assurez-vous que votre poste est prêt à être utilisé immédiatement après l'installation. Il devrait être optimisé pour son cas d'utilisation principal et fonctionner comme prévu pour la plupart des utilisateurs sans avoir besoin de personnalisation.</p> + +<h2 dir="ltr" id="6._Testez_testez_puis_testez_à_nouveau">6. Testez, testez, puis testez à nouveau</h2> + +<p>Le test est une partie essentielle de la création d'un UX exceptionnel pour votre extension. Il y a deux aspects clés du test de votre UX:</p> + +<ol> + <li>Effectuez des tests sur plusieurs appareils et plates-formes pour vous assurer que votre extension fonctionne et qu'elle fonctionne correctement dans le plus grand nombre d'endroits possible. Cela inclut la prise en compte de facteurs tels que la taille de l'écran et la résolution de l'utilisateur —simplement parce que votre extension est bonne et facile à utiliser sur votre écran de bureau ne signifie pas qu'elle fonctionne aussi bien sur un écran d'ordinateur portable, ou, effectivement, vice et versa.</li> + <li>Testez avec autant d'utilisateurs que possible. Ne supposez pas que vous connaissez votre auditoire, car les antécédents et l'expérience des gens peuvent faire une énorme différence dans la façon dont ils interagissent avec votre extension. Ainsi, permettre les tests utilisateur dans le cadre du développement de votre extension.</li> +</ol> + +<p dir="ltr">Conseils de test :</p> + +<ul> + <li>Dans AMO, vous avez la possibilité d'<a href="/fr/Add-ons/Distribution/Submitting_an_add-on#Listing_on_AMO">identifier votre extension comme expérimentale</a> ou publier une <a href="/fr/Add-ons/Distribution#Beta_versions">version beta ou une autre version non finale</a>. + + <ul> + <li>Si vous marquez votre extension comme expérimentale, elle est listée dans AMO, mais avec un profil plus bas. Lorsque l'extension est prête pour un public plus large, vous pouvez désactiver le drapeau expérimental dans AMO.</li> + <li>Si vous avez une extension publiée, vous pouvez utiliser le canal Développement pour proposer une version alpha ou bêta à tester. Vous devrez diriger vos testeurs vers le canal de développement de la liste de votre extension ou indiquer à vos testeurs le lien à utiliser pour installer votre extension.<br> + <img alt="The development channel section of an extension's listing page, offering access to alpha and beta versions for testing." src="https://mdn.mozillademos.org/files/15273/extensions-development-channel.png" style="display: block; height: 262px; margin-left: auto; margin-right: auto; width: 751px;"><br> + Lorsque vous êtes satisfait de votre mise à jour, vous pouvez la publier comme la nouvelle version de votre extension.</li> + </ul> + </li> + <li>Si vous souhaitez distribuer votre extension à des utilisateurs extérieurs à AMO, vous trouverez les instructions pour le faire, ainsi que les instructions d'installation que vous devez fournir aux utilisateurs, dans l'article sur les <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Alternative_distribution_options/Sideloading_add-ons">extensions de chargement latéral.</a> N'oubliez pas que, contrairement à la distribution par l'entremise d'AMO, vous devrez envoyer aux utilisateurs toute version mise à jour de votre extension à mesure que vous apporterez des améliorations.</li> + <li>Utilisez le <a href="https://developer.mozilla.org/en-US/docs/Tools/Responsive_Design_Mode">mode design réactif</a> pour tester le comportement de votre extension sur d'autres tailles d'écran et types d'appareils.</li> +</ul> + +<p><strong>Créer une grande extension est un processus itératif. Bien que nous ayons décrit les six étapes ici, vous y reviendrez probablement au fur et à mesure que vous apprendrez ce qui fonctionne et ce qui ne fonctionne pas grâce aux commentaires des utilisateurs, aux tests et au temps. </strong></p> diff --git a/files/fr/orphaned/mozilla/add-ons/webextensions/user_interface/accessibility_guidelines/index.html b/files/fr/orphaned/mozilla/add-ons/webextensions/user_interface/accessibility_guidelines/index.html new file mode 100644 index 0000000000..e974f0871b --- /dev/null +++ b/files/fr/orphaned/mozilla/add-ons/webextensions/user_interface/accessibility_guidelines/index.html @@ -0,0 +1,153 @@ +--- +title: Lignes directrices en matière d'accessibilité +slug: >- + Mozilla/Add-ons/WebExtensions/user_interface/lignes_directrices_en_matiere_accessibilite +tags: + - Développement + - Extensions + - UI + - UX + - WebExtensions + - interface utilisateur +translation_of: Mozilla/Add-ons/WebExtensions/user_interface/Accessibility_guidelines +--- +<p>{{AddonSidebar()}}</p> + +<p>En ce qui concerne l'accessibilité, les extensions devraient suivre les mêmes lignes directrices que les sites Web. Cependant, les extensions ont des caractéristiques uniques qui méritent d'être prises en considération lors de la conception pour l'accessibilité. Voici une ventilation des fonctions d'extension et comment elles devraient être utilisées pour rendre une extension accessible.</p> + +<p>Vous trouverez plus d'information sur la conception et l'accessibilité dans la section <a href="https://design.firefox.com/photon/">Photon Design System</a> et <a href="/en-US/docs/Mozilla/Accessibility">Accessibilité et Mozilla</a> section de MDN.</p> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Fonction d'interface utilisateur</th> + <th scope="col"> Lignes directrices</th> + </tr> + </thead> + <tbody> + <tr> + <td> + <p><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/manifest.json/commands">Raccourcis clavier (commands)</a></p> + </td> + <td> + <p>Les raccourcis clavier permettent d'activer facilement les fonctions d'extension.</p> + + <p>Pour améliorer l'accessibilité, ajoutez des raccourcis clavier pour :</p> + + <ul> + <li>éléments de l'interface utilisateur de l'extension, tels que les boutons de la barre d'outils et de la barre d'adresse.</li> + <li>toutes les fonctionnalités d'une extension, cependant, lorsque cela n'est pas pratique, fournissent des raccourcis pour les fonctionnalités d'extension couramment utilisées. </li> + </ul> + + <div class="blockIndicator note"> + <p>Les utilisateurs peuvent modifier les raccourcis clavier d'une extension en fonction de leurs besoins. Cependant, les utilisateurs ne peuvent pas ajouter de raccourcis, c'est pourquoi il est préférable d'en ajouter autant que possible.</p> + </div> + </td> + </tr> + <tr> + <td> + <p><a href="/Add-ons/WebExtensions/user_interface/Browser_action">Bouton de la barre d'outils (action du navigateur)</a></p> + </td> + <td> + <p>Pour tenir compte du thème actif, fournissez des <a href="/fr/docs/Mozilla/Add-ons/WebExtensions/manifest.json/browser_action#theme_icons">icônes de boutons de la barre d'outils pour les thèmes avec du texte clair et foncé</a>.</p> + + <p>Suivez les directives du Photon Design System sur l'<a href="https://design.firefox.com/photon/visuals/iconography.html">Iconographie</a>. Utilisez différentes images pour transmettre l'état, par exemple basculé ou actif. N'utilisez pas d'icônes colorées ou de changements de couleur pour indiquer les changements d'état, car ils peuvent ne pas être visibles pour tous les utilisateurs.</p> + + <p>Incluez toujours un titre de texte pour que les détails des boutons puissent être lus par un lecteur d'écran. Le titre du bouton doit être mis à jour pour refléter :</p> + + <ul> + <li>l'état de l'extension.</li> + <li>le contenu des badges texte affichés sur le bouton.</li> + </ul> + + <p>Ajoutez un raccourci à l'action du bouton, en utilisant l'option spéciale de raccourci spécial <code>_execute_browser_action</code>.</p> + </td> + </tr> + <tr> + <td> + <p><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/user_interface/Popups">Bouton de la barre d'outils avec une fenêtre contextuelle</a></p> + </td> + <td> + <p>Le balisage dans la fenêtre contextuelle doit suivre les <a href="/fr/docs/Accessibilité">lignes directrices standard d'accessibilité au web</a>.</p> + </td> + </tr> + <tr> + <td> + <p><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/user_interface/Page_actions">Bouton de la barre d'adresse (action page)</a></p> + </td> + <td> + <p>Les mêmes directives que les boutons de la barre d'outils doivent être suivies.</p> + + <p>Ajoutez un raccourci à l'action du bouton, en utilisant l'option de raccourci <code>_execute_page_action</code>.</p> + </td> + </tr> + <tr> + <td> + <p><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/user_interface/Popups">Bouton de la bare d'adresse avec un popup</a></p> + </td> + <td> + <p>Le balisage dans la fenêtre contextuelle devrait suivre les <a href="/fr/docs/Accessibilité">lignes directrices standard d'accessibilité du web</a>.</p> + </td> + </tr> + <tr> + <td> + <p><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/user_interface/elements_menu_contextuel">Elément du menu contextuel</a></p> + </td> + <td> + <p>Les éléments de menu contextuel offrent aux utilisateurs un moyen accessible de découvrir les fonctions d'extension associées aux éléments d'une page Web. Par conséquent, dans la mesure du possible, ajoutez des fonctions d'extension à leurs menus contextuels pertinents.</p> + </td> + </tr> + <tr> + <td> + <p><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/user_interface/barres_laterales">Barre latérale</a></p> + </td> + <td> + <p>Le balisage dans la barre latérale doit être conforme aux <a href="/fr/docs/Accessibilité">lignes directrices standard d'accessibilité du web</a>.</p> + + <p>Ajoutez un raccourci clavier pour ouvrir une barre latérale, en utilisant l'option de raccourci spécial <code>_execute_sidebar_action</code>.</p> + </td> + </tr> + <tr> + <td> + <p><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/user_interface/Options_pages">Options page</a></p> + </td> + <td> + <p>Le balisage de la page des options doit suivre les <a href="/fr/docs/Accessibilité">lignes directrices standard d'accessibilité du Web</a>.</p> + </td> + </tr> + <tr> + <td> + <p><a href="/Add-ons/WebExtensions/user_interface/Extension_pages">Extension page</a></p> + </td> + <td> + <p>Le balisage de la page d'extension doit suivre les <a href="/fr/docs/Accessibilité">lignes directrices standard d'accessibilité du Web</a>.</p> + </td> + </tr> + <tr> + <td> + <p><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/user_interface/Notifications">Notification</a></p> + </td> + <td> + <p>Fournir des notifications pour les événements qui se produisent en arrière-plan ou qui ne sont pas autrement notifiés dans l'interface utilisateur. Soyez économe en notifications, mais veillez à ne pas les minimiser au détriment de l'accessibilité.</p> + </td> + </tr> + <tr> + <td> + <p><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/user_interface/Omnibox">Suggestion de la barre d'adresse</a></p> + </td> + <td> + <p>Ajoutez des suggestions selon le guide, il n'y a pas d'autres considérations d'accessibilité pour les extensions.</p> + </td> + </tr> + <tr> + <td> + <p><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/user_interface/panneaux_devtools">Panneau d'outils de développement</a></p> + </td> + <td> + <p>Le balisage dans la barre latérale doit être conforme aux <a href="/fr/docs/Accessibilité">conforme aux directives d'accessibilité du Web standard</a>.</p> + + <p>Il est recommandé d'offrir un raccourci clavier pour ouvrir un panneau devtools.</p> + </td> + </tr> + </tbody> +</table> diff --git a/files/fr/orphaned/mozilla/add-ons/webextensions/what_does_review_rejection_mean_to_users/index.html b/files/fr/orphaned/mozilla/add-ons/webextensions/what_does_review_rejection_mean_to_users/index.html new file mode 100644 index 0000000000..df7532390b --- /dev/null +++ b/files/fr/orphaned/mozilla/add-ons/webextensions/what_does_review_rejection_mean_to_users/index.html @@ -0,0 +1,44 @@ +--- +title: Que signifie le rejet d'une révision pour les utilisateurs ? +slug: >- + Mozilla/Add-ons/WebExtensions/que_signifie_le_rejet_d_une_revision_pour_les_utilisateurs +tags: + - Add-ons + - Extensions + - Guide + - Review + - WebExtensions + - publication +translation_of: Mozilla/Add-ons/WebExtensions/What_does_review_rejection_mean_to_users +--- +<p>{{AddonSidebar}}</p> + +<p><span class="seoSummary">Cet article explique comment les utilisateurs et les personnes à la recherche de votre extension sont affectés si vous obtenez un rejet du processus de révision Mozilla.</span></p> + +<h2 id="Aperçu_de_lexamen">Aperçu de l'examen</h2> + +<p>Toute extension que vous soumettez à <a href="http://addons.mozilla.org">addons.mozilla.org</a> (AMO) fait l'objet de deux évaluations. Il y a une validation machine de votre extension dans le cadre du flux de soumission, et un examen humain qui a lieu après la publication de votre extension.</p> + +<p>La validation de la machine vous indique immédiatement si quelque chose doit être corrigé pour permettre la publication de votre extension. L'examen humain a lieu après la publication et peut avoir lieu à tout moment. Au début de cet examen, l'examinateur peut demander des éclaircissements au sujet de votre prolongation. Le résultat de l'examen pourrait être le rejet de la dernière version de votre extension, et le rejet des versions antérieures non révisées si elles contiennent également des problèmes.</p> + +<p>Pour plus d'informations sur ces processus, voir <a href="/en-US/docs/Mozilla/Add-ons/Distribution/Submitting_an_add-on">Soumission d'un add-on</a> et de la <a href="/fr/docs/Mozilla/Add-ons/AMO/Règles/Reviews">politiques Add-on</a>.</p> + +<h2 id="Incidence_du_rejet_de_lexamen">Incidence du rejet de l'examen</h2> + +<p>Si votre prolongation est rejetée par l'examen humain :</p> + +<ul> + <li>Vous recevez un courriel expliquant la raison du rejet et les mesures que vous devez prendre pour corriger les problèmes identifiés.</li> + <li>Si une version antérieure de votre extension est publique, celle-ci devient celle vue par les visiteurs d'AMO.</li> + <li>S'il n'y a pas de version publique de votre poste à afficher, l'inscription de votre poste sur AMO est suspendue. Cela signifie que votre extension n'apparaît plus dans aucune liste sur AMO et ne sera plus retournée dans les résultats des recherches effectuées par les visiteurs AMO. Si quelqu'un suit un lien externe vers votre liste d'extensions, il arrivera à une page 404.</li> +</ul> + +<p>Les personnes qui ont installé votre extension ne remarqueront aucun changement suite au rejet de la révision ; elles pourront continuer à utiliser votre extension comme d'habitude.</p> + +<h2 id="Liste_de_blocage">Liste de blocage</h2> + +<p>La liste de blocage est un mécanisme qui permet à Mozilla d'empêcher l'utilisation d'une extension dans Firefox (un bloc dur) ou de demander aux utilisateurs de confirmer qu'ils souhaitent exécuter l'extension (un bloc mou).</p> + +<p>Si vous ne répondez pas à la rétroaction d'examen et ne corrigez pas rapidement les problèmes, votre prolongation pourrait être considérée pour l'inscription sur la liste de blocage, particulièrement si les problèmes identifiés ont trait à des vulnérabilités critiques en matière de sécurité, de stabilité ou de rendement. Cependant, si votre extension est délibérément malveillante ou abusive, elle peut être bloquée sans notification.</p> + +<p>Pour plus d'informations sur la liste de blocage, voir <a href="https://wiki.mozilla.org/Blocklisting">Liste de blocage</a> dans le wiki Mozilla.</p> |