From 110a7a1592789759f0f427f40856899ea2c3cfd7 Mon Sep 17 00:00:00 2001 From: SphinxKnight Date: Wed, 14 Jul 2021 10:39:25 +0200 Subject: fixes fr #1440 (#1448) * fixes #1440 for fr * UPDT: Update Backgrounds_and_borders * UPDT: Update The_web_and_web_standards * UPDT: Update First_steps/Arrays * UPDT: Update First_steps/Math * UPDT: Update Silly_story_generator * UPDT: Update Django/development_environment * UPDT: Update Client-side_JavaScript_frameworks * UPDT: Update Command_line * UPDT: Update API/tabs * RMV: Removing tags * UPDT: Cleanup html of Add-ons/WebExtensions * UPDT: Fix flaws on WebExtensions/Native_messaging * FIX: Fix flaws on Accessibility_inspector/Simulation * UPDT: Html cleanup on Color_contrast * UPDT: Mega html cleanup for Document_Object_Model/Introduction * FIX: Fix flaws for API/Element * UPDT: Update BCD * FIX: Wrong link lang * UPDT: Fix flaws/links * FIX: Img flaws and link lang * FIX: links error and html * UPDT: Links and cleanup html * FIX: link lang * FIX: link lang * FIX: broken example * FIX: fix broken example and html Co-authored-by: tristantheb --- .../browsersettings/zoomsitespecific/index.html | 2 +- .../add-ons/webextensions/api/tabs/index.html | 86 ++++++------- .../webextensions/api/userscripts/index.html | 6 +- .../api/userscripts/register/index.html | 14 +-- files/fr/mozilla/add-ons/webextensions/index.html | 17 +-- .../webextensions/native_messaging/index.html | 140 ++++++++++----------- .../add-ons/webextensions/what_next_/index.html | 4 +- files/fr/mozilla/firefox/releases/77/index.html | 2 +- 8 files changed, 128 insertions(+), 143 deletions(-) (limited to 'files/fr/mozilla') diff --git a/files/fr/mozilla/add-ons/webextensions/api/browsersettings/zoomsitespecific/index.html b/files/fr/mozilla/add-ons/webextensions/api/browsersettings/zoomsitespecific/index.html index 413b936371..3a76beed7c 100644 --- a/files/fr/mozilla/add-ons/webextensions/api/browsersettings/zoomsitespecific/index.html +++ b/files/fr/mozilla/add-ons/webextensions/api/browsersettings/zoomsitespecific/index.html @@ -33,7 +33,7 @@ translation_of: Mozilla/Add-ons/WebExtensions/API/browserSettings/zoomSiteSpecif

Lors de l'installation de Firefox, browser.zoom.siteSpecific est à vrai.

-

Si privacy.websites.resistFingerprinting est à vrai, ce réglage ne peut pas être changé et le niveau de zoom est appliqué sur le schéma par-onglet.

+

Si privacy.websites.resistFingerprinting est à vrai, ce réglage ne peut pas être changé et le niveau de zoom est appliqué sur le schéma par-onglet.

Compatibilité du navigateur

diff --git a/files/fr/mozilla/add-ons/webextensions/api/tabs/index.html b/files/fr/mozilla/add-ons/webextensions/api/tabs/index.html index 1de179058c..ad889267c4 100644 --- a/files/fr/mozilla/add-ons/webextensions/api/tabs/index.html +++ b/files/fr/mozilla/add-ons/webextensions/api/tabs/index.html @@ -16,27 +16,27 @@ translation_of: Mozilla/Add-ons/WebExtensions/API/tabs ---
{{AddonSidebar}}
-

Permet d’interagir avec le système d’onglets du navigateur.

+

Permet d'interagir avec le système d'onglets du navigateur.

-

Vous pouvez utiliser cette API pour obtenir une liste des onglets ouverts, filtrés par différents critères, ainsi que pour ouvrir, mettre à jour, déplacer, recharger et supprimer des onglets. Vous ne pouvez pas accéder directement au contenu hébergé par les onglets à l’aide de cette API, mais vous pouvez insérer du JavaScript et du CSS dans les onglets en utilisant les API {{WebExtAPIRef("tabs.executeScript()")}} ou {{WebExtAPIRef("tabs.insertCSS()")}}.

+

Vous pouvez utiliser cette API pour obtenir une liste des onglets ouverts, filtrés par différents critères, ainsi que pour ouvrir, mettre à jour, déplacer, recharger et supprimer des onglets. Vous ne pouvez pas accéder directement au contenu hébergé par les onglets à l'aide de cette API, mais vous pouvez insérer du JavaScript et du CSS dans les onglets en utilisant les API {{WebExtAPIRef("tabs.executeScript()")}} ou {{WebExtAPIRef("tabs.insertCSS()")}}.

Vous pouvez utiliser la majeure partie de cette API sans autorisation spéciale. Toutefois :

-

Alternativement, vous pouvez obtenir ces autorisations temporairement, uniquement pour l’onglet actuellement actif et uniquement en réponse à une action explicite de l’utilisateur ou de l’utilisatrice, en demandant la permission "activeTab".

+

Alternativement, vous pouvez obtenir ces autorisations temporairement, uniquement pour l'onglet actuellement actif et uniquement en réponse à une action explicite de l'utilisateur ou de l'utilisatrice, en demandant la permission "activeTab".

-

De nombreuses opérations d’onglet utilisent un identifiant (id) d’onglet. Les id d’onglets sont seulement garantis uniques à un onglet durant une session de navigation. Si le navigateur est redémarré, il pourra recycler, et recyclera, les id d’onglets. Pour associer des informations à un onglet à travers les redémarrages du navigateur, utilisez {{WebExtAPIRef("sessions.setTabValue()")}}.

+

De nombreuses opérations d'onglet utilisent un identifiant (id) d'onglet. Les id d'onglets sont seulement garantis uniques à un onglet durant une session de navigation. Si le navigateur est redémarré, il pourra recycler, et recyclera, les id d'onglets. Pour associer des informations à un onglet à travers les redémarrages du navigateur, utilisez {{WebExtAPIRef("sessions.setTabValue()")}}.

Types

@@ -44,21 +44,21 @@ translation_of: Mozilla/Add-ons/WebExtensions/API/tabs
{{WebExtAPIRef("tabs.MutedInfoReason")}}
Spécifie la raison pour laquelle un onglet a été rendu silencieux ou à nouveau sonore.
{{WebExtAPIRef("tabs.MutedInfo")}}
-
Cet objet contient un booléen indiquant si l’onglet est silencieux et la raison de la dernière modification de l’état.
+
Cet objet contient un booléen indiquant si l'onglet est silencieux et la raison de la dernière modification de l'état.
{{WebExtAPIRef("tabs.PageSettings")}}
-

Permet de contrôler le rendu d’un onglet au format PDF par la méthode {{WebExtAPIRef("tabs.saveAsPDF()")}}.

+

Permet de contrôler le rendu d'un onglet au format PDF par la méthode {{WebExtAPIRef("tabs.saveAsPDF()")}}.

{{WebExtAPIRef("tabs.Tab")}}
Ce type contient des informations sur un onglet.
{{WebExtAPIRef("tabs.TabStatus")}}
-
Indique si l’onglet a fini de charger.
+
Indique si l'onglet a fini de charger.
{{WebExtAPIRef("tabs.WindowType")}}
Le type de fenêtre qui héberge cet onglet.
{{WebExtAPIRef("tabs.ZoomSettingsMode")}}
-
Définit si les modifications de zoom sont traitées par le navigateur, par l’extension ou sont désactivées.
+
Définit si les modifications de zoom sont traitées par le navigateur, par l'extension ou sont désactivées.
{{WebExtAPIRef("tabs.ZoomSettingsScope")}}
-
Définit si les modifications de zoom persisteront pour l’origine de la page ou ne prendront effet que dans cet onglet.
+
Définit si les modifications de zoom persisteront pour l'origine de la page ou ne prendront effet que dans cet onglet.
{{WebExtAPIRef("tabs.ZoomSettings")}}
Définit les paramètres de zoom {{WebExtAPIRef("tabs.ZoomSettingsMode", "mode")}}, {{WebExtAPIRef("tabs.ZoomSettingsScope", "scope")}}, et le facteur de zoom par défaut.
@@ -67,18 +67,18 @@ translation_of: Mozilla/Add-ons/WebExtensions/API/tabs
{{WebExtAPIRef("tabs.TAB_ID_NONE")}}
-
Une valeur d’id spéciale donnée aux onglets qui ne sont pas des onglets de navigation (par exemple, les onglets dans les fenêtres devtools).
+
Une valeur d'id spéciale donnée aux onglets qui ne sont pas des onglets de navigation (par exemple, les onglets dans les fenêtres devtools).

Fonctions

{{WebExtAPIRef("tabs.captureTab()")}}
-
Crée un URI de données codant une image de la zone visible de l’onglet donné.
+
Crée un URI de données codant une image de la zone visible de l'onglet donné.
{{WebExtAPIRef("tabs.captureVisibleTab()")}}
-
Crée un URI de données codant une image de la zone visible de l’onglet actuellement actif dans la fenêtre donnée.
+
Crée un URI de données codant une image de la zone visible de l'onglet actuellement actif dans la fenêtre donnée.
{{WebExtAPIRef("tabs.connect()")}}
-
Définit une connexion pour échanger des messages entre les scripts d’arrière-plan de l’extension (ou d’autres scripts privilégiés, tels que les scripts de popups ou les scripts de page d’options) et les scripts de contenu s’exécutant dans l’onglet spécifié.
+
Définit une connexion pour échanger des messages entre les scripts d'arrière-plan de l'extension (ou d'autres scripts privilégiés, tels que les scripts de popups ou les scripts de page d'options) et les scripts de contenu s'exécutant dans l'onglet spécifié.
{{WebExtAPIRef("tabs.create()")}}
Crée un nouvel onglet.
{{WebExtAPIRef("tabs.detectLanguage()")}}
@@ -90,17 +90,17 @@ translation_of: Mozilla/Add-ons/WebExtensions/API/tabs
{{WebExtAPIRef("tabs.executeScript()")}}
Injecte du code JavaScript dans une page.
{{WebExtAPIRef("tabs.get()")}}
-
Obtient des détails sur l’onglet spécifié.
+
Obtient des détails sur l'onglet spécifié.
{{WebExtAPIRef("tabs.getAllInWindow()")}} {{deprecated_inline}}
Obtient des détails sur tous les onglets de la fenêtre spécifiée.
{{WebExtAPIRef("tabs.getCurrent()")}}
-
Obtient des informations sur l’onglet dans lequel ce script s’exécute, en tant qu’objet {{WebExtAPIRef("tabs.Tab")}}.
+
Obtient des informations sur l'onglet dans lequel ce script s'exécute, en tant qu'objet {{WebExtAPIRef("tabs.Tab")}}.
{{WebExtAPIRef("tabs.getSelected()")}} {{deprecated_inline}}
-
Obtient l’onglet sélectionné dans la fenêtre spécifiée. Deprecated: utilisez plutôt tabs.query({active: true}).
+
Obtient l'onglet sélectionné dans la fenêtre spécifiée. Deprecated: utilisez plutôt tabs.query({active: true}).
{{WebExtAPIRef("tabs.getZoom()")}}
-
Obtient le facteur de zoom actuel de l’onglet spécifié.
+
Obtient le facteur de zoom actuel de l'onglet spécifié.
{{WebExtAPIRef("tabs.getZoomSettings()")}}
-
Obtient les paramètres de zoom actuels pour l’onglet spécifié.
+
Obtient les paramètres de zoom actuels pour l'onglet spécifié.
{{WebExtAPIRef("tabs.goForward()")}}
Passez à la page suivante, si vous en avez une.
{{WebExtAPIRef("tabs.goBack()")}}
@@ -114,66 +114,66 @@ translation_of: Mozilla/Add-ons/WebExtensions/API/tabs
{{WebExtAPIRef("tabs.move()")}}
Déplace un ou plusieurs onglets vers une nouvelle position dans la même fenêtre ou vers une autre fenêtre.
{{WebExtApiRef("tabs.moveInSuccession()")}}
-
Modifie la relation de succession pour un groupe d’onglets.
+
Modifie la relation de succession pour un groupe d'onglets.
{{WebExtAPIRef("tabs.print()")}}
-
Imprime le contenu de l’onglet actif.
+
Imprime le contenu de l'onglet actif.
{{WebExtAPIRef("tabs.printPreview()")}}
-
Ouvre l’aperçu avant impression pour l’onglet actif.
+
Ouvre l'aperçu avant impression pour l'onglet actif.
{{WebExtAPIRef("tabs.query()")}}
-
Obtient tous les onglets ayant les propriétés spécifiées, ou tous les onglets si aucune propriété n’est spécifiée.
+
Obtient tous les onglets ayant les propriétés spécifiées, ou tous les onglets si aucune propriété n'est spécifiée.
{{WebExtAPIRef("tabs.reload()")}}
Recharge un onglet, en contournant éventuellement le cache web local.
{{WebExtAPIRef("tabs.remove()")}}
Ferme un ou plusieurs onglets.
{{WebExtAPIRef("tabs.removeCSS()")}}
-
Supprime d’une page CSS qui a été précédemment injectée en appelant {{WebExtAPIRef("tabs.insertCSS()")}}.
+
Supprime d'une page CSS qui a été précédemment injectée en appelant {{WebExtAPIRef("tabs.insertCSS()")}}.
{{WebExtAPIRef("tabs.saveAsPDF()")}}
Enregistre la page en cours au format PDF.
{{WebExtAPIRef("tabs.sendMessage()")}}
-
Envoie un message unique au(x) script(s) de contenu dans l’onglet spécifié.
+
Envoie un message unique au(x) script(s) de contenu dans l'onglet spécifié.
{{WebExtAPIRef("tabs.sendRequest()")}} {{deprecated_inline}}
-
Envoie une requête unique au(x) script(s) de contenu dans l’onglet spécifié. Déprécié : utilisez {{WebExtAPIRef("tabs.sendMessage()")}} à la place.
+
Envoie une requête unique au(x) script(s) de contenu dans l'onglet spécifié. Déprécié : utilisez {{WebExtAPIRef("tabs.sendMessage()")}} à la place.
{{WebExtAPIRef("tabs.setZoom()")}}
-
Effectue un zoom sur l’onglet spécifié.
+
Effectue un zoom sur l'onglet spécifié.
{{WebExtAPIRef("tabs.setZoomSettings()")}}
-
Définit les paramètres de zoom pour l’onglet spécifié.
+
Définit les paramètres de zoom pour l'onglet spécifié.
{{WebExtAPIRef("tabs.show()")}} {{experimental_inline}}
Affiche un ou plusieurs onglets qui ont été {{WebExtAPIRef("tabs.hide()", "masqués")}}.
{{WebExtAPIRef("tabs.toggleReaderMode()")}}
-
Bascule en mode lecture pour l’onglet spécifié.
+
Bascule en mode lecture pour l'onglet spécifié.
{{WebExtAPIRef("tabs.update()")}}
-
Charge une nouvelle URL dans l’onglet, ou modifie d’autres propriétés de l’onglet.
+
Charge une nouvelle URL dans l'onglet, ou modifie d'autres propriétés de l'onglet.

Évènements

{{WebExtAPIRef("tabs.onActivated")}}
-
Est émis lorsque l’onglet actif dans une fenêtre change. Notez que l’URL de l’onglet peut ne pas être définie au moment où cet évènement a été émis.
+
Est émis lorsque l'onglet actif dans une fenêtre change. Notez que l'URL de l'onglet peut ne pas être définie au moment où cet évènement a été émis.
{{WebExtAPIRef("tabs.onActiveChanged")}} {{deprecated_inline}}
-
Est émis lorsque l’onglet sélectionné dans une fenêtre change. Déprécié : utilisez {{WebExtAPIRef("tabs.onActivated")}} à la place.
+
Est émis lorsque l'onglet sélectionné dans une fenêtre change. Déprécié : utilisez {{WebExtAPIRef("tabs.onActivated")}} à la place.
{{WebExtAPIRef("tabs.onAttached")}}
-
Est émis lorsqu’un onglet est attaché à une fenêtre, par exemple parce qu’il a été déplacé entre différentes fenêtres.
+
Est émis lorsqu'un onglet est attaché à une fenêtre, par exemple parce qu'il a été déplacé entre différentes fenêtres.
{{WebExtAPIRef("tabs.onCreated")}}
-
Est émis lorsqu’un onglet est créé. Notez que l’URL de l’onglet peut ne pas être définie au moment où cet évènement a été émis.
+
Est émis lorsqu'un onglet est créé. Notez que l'URL de l'onglet peut ne pas être définie au moment où cet évènement a été émis.
{{WebExtAPIRef("tabs.onDetached")}}
-
Est émis lorsqu’un onglet est détaché d’une fenêtre, par exemple parce qu’il a été déplacé entre différentes fenêtres.
+
Est émis lorsqu'un onglet est détaché d'une fenêtre, par exemple parce qu'il a été déplacé entre différentes fenêtres.
{{WebExtAPIRef("tabs.onHighlightChanged")}} {{deprecated_inline}}
Est émis lorsque les onglets en surbrillance ou sélectionnés dans une fenêtre changent. Déprécié : utilisez {{WebExtAPIRef("tabs.onHighlighted")}} à la place.
{{WebExtAPIRef("tabs.onHighlighted")}}
Est émis lorsque les onglets en surbrillance ou sélectionnés dans une fenêtre changent.
{{WebExtAPIRef("tabs.onMoved")}}
-
Est émis lorsqu’un onglet est déplacé dans une fenêtre.
+
Est émis lorsqu'un onglet est déplacé dans une fenêtre.
{{WebExtAPIRef("tabs.onRemoved")}}
-
Est émis lorsqu’un onglet est fermé.
+
Est émis lorsqu'un onglet est fermé.
{{WebExtAPIRef("tabs.onReplaced")}}
-
Est émis lorsqu’un onglet est remplacé par un autre onglet en raison d’un prerendering.
+
Est émis lorsqu'un onglet est remplacé par un autre onglet en raison d'un prerendering.
{{WebExtAPIRef("tabs.onSelectionChanged")}} {{deprecated_inline}}
-
Est émis lorsque l’onglet sélectionné dans une fenêtre change. Déprécié : utilisez {{WebExtAPIRef("tabs.onActivated")}} à la place.
+
Est émis lorsque l'onglet sélectionné dans une fenêtre change. Déprécié : utilisez {{WebExtAPIRef("tabs.onActivated")}} à la place.
{{WebExtAPIRef("tabs.onUpdated")}}
-
Est émis lorsqu’un onglet est mis à jour.
+
Est émis lorsqu'un onglet est mis à jour.
{{WebExtAPIRef("tabs.onZoomChange")}}
Est émis lorsque le zoom dans un onglet est changé.
@@ -186,7 +186,7 @@ translation_of: Mozilla/Add-ons/WebExtensions/API/tabs
Remerciements : -

Cette API est basée sur l’API Chromium chrome.tabs. Cette documentation est dérivée de tabs.json dans le code de Chromium code.

+

Cette API est basée sur l'API Chromium chrome.tabs. Cette documentation est dérivée de tabs.json dans le code de Chromium code.

Les données de compatibilité relatives à Microsoft Edge sont fournies par Microsoft Corporation et incluses ici sous la licence Creative Commons Attribution 3.0 pour les États-Unis.

diff --git a/files/fr/mozilla/add-ons/webextensions/api/userscripts/index.html b/files/fr/mozilla/add-ons/webextensions/api/userscripts/index.html index c8e84968e7..e0820570ab 100644 --- a/files/fr/mozilla/add-ons/webextensions/api/userscripts/index.html +++ b/files/fr/mozilla/add-ons/webextensions/api/userscripts/index.html @@ -25,7 +25,7 @@ translation_of: Mozilla/Add-ons/WebExtensions/API/userScripts
-

Cette API requiert la présence de la clé user_scripts dans le manifest.json, même si aucun script API n'est spécifié. Par exemple, user_scripts: {}.

+

Cette API requiert la présence de la clé user_scripts dans le manifest.json, même si aucun script API n'est spécifié. Par exemple, user_scripts: {}.

Pour utiliser l'API, appelez {{WebExtAPIRef("userScripts.register","register()")}} en passant un objet définissant les scripts à enregistrer. La méthode renvoie une promesse qui est résolue par un objet  {{WebExtAPIRef("userScripts.RegisteredUserScript","RegisteredUserScript")}}.

@@ -55,7 +55,7 @@ translation_of: Mozilla/Add-ons/WebExtensions/API/userScripts
{{WebExtAPIRef("userScripts.onBeforeScript")}}
-
Un événement disponible pour le script API, enregistré dans "user_scripts", qui s'exécute avant qu'un script utilisateur ne s'exécute. Utilisez-le pour déclencher l'exportation des API supplémentaires fournies par le script API, afin qu'elles soient disponibles pour le script utilisateur.
+
Un événement disponible pour le script API, enregistré dans "user_scripts", qui s'exécute avant qu'un script utilisateur ne s'exécute. Utilisez-le pour déclencher l'exportation des API supplémentaires fournies par le script API, afin qu'elles soient disponibles pour le script utilisateur.

Compatibilité du navigateur

@@ -65,6 +65,6 @@ translation_of: Mozilla/Add-ons/WebExtensions/API/userScripts

Voir aussi

diff --git a/files/fr/mozilla/add-ons/webextensions/api/userscripts/register/index.html b/files/fr/mozilla/add-ons/webextensions/api/userscripts/register/index.html index 89800b16d4..19dabab7a6 100644 --- a/files/fr/mozilla/add-ons/webextensions/api/userscripts/register/index.html +++ b/files/fr/mozilla/add-ons/webextensions/api/userscripts/register/index.html @@ -37,21 +37,21 @@ await registeredUserScript.unregister();
scriptMetadata {{Optional_Inline}}
Un objet JSON qui contient certaines propriétés de métadonnées associées aux userScripts enregistrés
allFrames {{Optional_Inline}}
-
Identiques à all_frames dans la clé user_scripts.
+
Identiques à all_frames dans la clé user_scripts.
excludeGlobs {{Optional_Inline}}
-
Identique à exclude_globs dans la clé user_scripts.
+
Identique à exclude_globs dans la clé user_scripts.
excludeMatches {{Optional_Inline}}
-
Identique à exclude_matches dans la clé user_scripts.
+
Identique à exclude_matches dans la clé user_scripts.
includeGlobs {{Optional_Inline}}
-
Identique à include_globs dans la clé user_scripts.
+
Identique à include_globs dans la clé user_scripts.
js {{Optional_Inline}}
Un tableau d'objets. Chaque objet a soit une propriété nommée file, qui est une URL commençant par le fichier manifest.json de l'extension et pointant vers un fichier JavaScript à enregistrer, soit une propriété nommée code, qui est un code JavaScript à enregistrer.
matchAboutBlank {{Optional_Inline}}
-
Identique à match_about_blank dans la clé user_scripts.
+
Identique à match_about_blank dans la clé user_scripts.
matches
-
Identique à matches dans la clé user_scripts.
+
Identique à matches dans la clé user_scripts.
runAt {{Optional_Inline}}
-
Identique àrun_at dans la clé user_scripts.
+
Identique àrun_at dans la clé user_scripts.
diff --git a/files/fr/mozilla/add-ons/webextensions/index.html b/files/fr/mozilla/add-ons/webextensions/index.html index ff9e2748b2..6173a4c43b 100644 --- a/files/fr/mozilla/add-ons/webextensions/index.html +++ b/files/fr/mozilla/add-ons/webextensions/index.html @@ -11,12 +11,10 @@ translation_of: Mozilla/Add-ons/WebExtensions

Les extensions, ou modules complémentaires, peuvent étendre et modifier les fonctionnalités d'un navigateur. Les extensions Firefox sont construites en utilisant la technologie de compatibilité multi-navigateurs de l'API WebExtensions.

-

La technologie d'extensions Firefox est, en grande partie, compatible avec l'API d'extension supportée par les navigateurs Chromium tels que Google Chrome, Microsoft Edge et Opera. Dans la plupart des cas, les extensions écrites dans ces navigateurs fonctionnent sur Firefox avec seulement quelques modifications.

+

La technologie d'extensions Firefox est, en grande partie, compatible avec l'API d'extension supportée par les navigateurs Chromium tels que Google Chrome, Microsoft Edge et Opera. Dans la plupart des cas, les extensions écrites dans ces navigateurs fonctionnent sur Firefox avec seulement quelques modifications.

-
- -

Références

JavaScript APIs

@@ -69,12 +63,3 @@ translation_of: Mozilla/Add-ons/WebExtensions

Clés de Manifest

Obtenez tous les détails sur les clés du manifeste, y compris toutes leurs propriétés et paramètres. Vous y trouverez également des informations détaillées sur la compatibilité de chaque clé avec les principaux navigateurs

-
- - - -
diff --git a/files/fr/mozilla/add-ons/webextensions/native_messaging/index.html b/files/fr/mozilla/add-ons/webextensions/native_messaging/index.html index e4c938f580..91ec000ec5 100644 --- a/files/fr/mozilla/add-ons/webextensions/native_messaging/index.html +++ b/files/fr/mozilla/add-ons/webextensions/native_messaging/index.html @@ -7,20 +7,20 @@ translation_of: Mozilla/Add-ons/WebExtensions/Native_messaging ---
{{AddonSidebar}}
-

Native messaging permet à une extension d’échanger des messages avec une application native installée sur l’ordinateur de l’utilisateur. Ceci permet que des applications natives puissent fournir un service à des extensions sans avoir besoin d'être atteignables via internet. Un exemple typique est le gestionnaire de mots de passe : l’application native s’occupe du stockage et du chiffrement des mots de passe et communique avec l’extension afin de remplir les formulaires web. Native messaging permet aussi aux extensions d’accéder à des ressources qui ne sont pas accessibles via les API WebExtension, par exemple le matériel hardware particulier.

+

Native messaging permet à une extension d'échanger des messages avec une application native installée sur l'ordinateur de l'utilisateur. Ceci permet que des applications natives puissent fournir un service à des extensions sans avoir besoin d'être atteignables via internet. Un exemple typique est le gestionnaire de mots de passe : l'application native s'occupe du stockage et du chiffrement des mots de passe et communique avec l'extension afin de remplir les formulaires web. Native messaging permet aussi aux extensions d'accéder à des ressources qui ne sont pas accessibles via les API WebExtension, par exemple le matériel hardware particulier.

-

L’application native n’est pas installée ou gérée par le navigateur : elle est installée à l’aide du système d’installation du système d’exploitation sous‐jacent. En plus de l’application native elle‐même, vous devrez fournir un fichier JSON appelé « manifest hôte » (host manifest) ou « manifest d’application » (app manifest) et l’installer dans un emplacement défini sur l’ordinateur de l’utilisateur. Le fichier manifest de l’application décrit comment le navigateur peut se connecter à l’application native.

+

L'application native n'est pas installée ou gérée par le navigateur : elle est installée à l'aide du système d'installation du système d'exploitation sous‐jacent. En plus de l'application native elle‐même, vous devrez fournir un fichier JSON appelé « manifest hôte » (host manifest) ou « manifest d'application » (app manifest) et l'installer dans un emplacement défini sur l'ordinateur de l'utilisateur. Le fichier manifest de l'application décrit comment le navigateur peut se connecter à l'application native.

-

L’extension doit demander l'autorisation « nativeMessaging » dans son fichier manifest.json. À l’inverse, l’application native doit accorder l’autorisation à l’extension en incluant son ID dans le champ « allowed_extensions » (extensions autorisées) du manifest de l’application.

+

L'extension doit demander l'autorisation « nativeMessaging » dans son fichier manifest.json. À l'inverse, l'application native doit accorder l'autorisation à l'extension en incluant son ID dans le champ « allowed_extensions » (extensions autorisées) du manifest de l'application.

-

Par la suite, l’extension pourra échanger des messages en JSON avec l’application native en utilisant une série de fonctions de l’API {{WebExtAPIRef("runtime")}}. Du côté de l’application native, les messages seront reçus en utilisant l’entrée standard (stdin, standard input) et envoyés en utilisant la sortie standard (stdout, standard output).

+

Par la suite, l'extension pourra échanger des messages en JSON avec l'application native en utilisant une série de fonctions de l'API {{WebExtAPIRef("runtime")}}. Du côté de l'application native, les messages seront reçus en utilisant l'entrée standard (stdin, standard input) et envoyés en utilisant la sortie standard (stdout, standard output).

-

+

-

Le support de native messaging dans les extensions est généralement compatible avec Chrome, avec deux grandes différences :

+

Le support de native messaging dans les extensions est généralement compatible avec Chrome, avec deux grandes différences :

@@ -28,13 +28,13 @@ translation_of: Mozilla/Add-ons/WebExtensions/Native_messaging

Mise en œuvre

-

Le manifest de l’extension (Extension manifest)

+

Le manifest de l'extension (Extension manifest)

-

Si vous souhaitez que votre extension puisse communiquer avec une application native, alors :

+

Si vous souhaitez que votre extension puisse communiquer avec une application native, alors :

Voici un exemple de fichier « manifest.json » :

@@ -68,28 +68,28 @@ translation_of: Mozilla/Add-ons/WebExtensions/Native_messaging } -

Le manifest de l’application (App manifest)

+

Le manifest de l'application (App manifest)

-

Le manifest de l’application décrit au navigateur la manière avec laquelle il peut se connecter à l’application native.

+

Le manifest de l'application décrit au navigateur la manière avec laquelle il peut se connecter à l'application native.

Le fichier manifest de l'application doit être installé avec l'application native. C'est-à-dire que le navigateur lit et valide les fichiers de manifeste des applications mais ne les installe ni ne les gère. Ainsi, le modèle de sécurité pour savoir quand et comment ces fichiers sont installés et mis à jour ressemble beaucoup plus à celui des applications natives que celui des extensions utilisant les API WebExtension.

-

Pour plus de détails sur la syntaxe et l'emplacement du manifeste des applications natives, voir manifest natifs.

+

Pour plus de détails sur la syntaxe et l'emplacement du manifeste des applications natives, voir manifest natifs.

Par exemple, voici un manifeste pour l'application native "ping_pong" :

-
{
-  "name": "ping_pong",
-  "description": "Example host for native messaging",
-  "path": "/path/to/native-messaging/app/ping_pong.py",
-  "type": "stdio",
-  "allowed_extensions": [ "ping_pong@example.org" ]
-}
+
{
+  "name": "ping_pong",
+  "description": "Example host for native messaging",
+  "path": "/path/to/native-messaging/app/ping_pong.py",
+  "type": "stdio",
+  "allowed_extensions": [ "ping_pong@example.org" ]
+}
-

Ceci autorise l’application dont l’ID est « ping_pong@example.org » à se connecter, en passant le nom « ping_pong » comme paramètre à la fonction de l’API {{WebExtAPIRef("runtime")}} concernée. L’application, elle‐même se trouve dans le fichier « /path/to/native‐messaging/app/ping_pong.py ».

+

Ceci autorise l'application dont l'ID est « ping_pong@example.org » à se connecter, en passant le nom « ping_pong » comme paramètre à la fonction de l'API {{WebExtAPIRef("runtime")}} concernée. L'application, elle‐même se trouve dans le fichier « /path/to/native‐messaging/app/ping_pong.py ».

-

Remarque pour Windows: dans l’exemple ci‐dessus, l’application native est un script Python. Il peut être compliqué d’amener Windows à faire fonctionner correctement des scripts Python, une méthode alternative est de fournir un fichier .bat, et de l’indiquer dans le manifest :

+

Remarque pour Windows: dans l'exemple ci‐dessus, l'application native est un script Python. Il peut être compliqué d'amener Windows à faire fonctionner correctement des scripts Python, une méthode alternative est de fournir un fichier .bat, et de l'indiquer dans le manifest :

{
   "name": "ping_pong",
@@ -99,32 +99,32 @@ translation_of: Mozilla/Add-ons/WebExtensions/Native_messaging
   "allowed_extensions": [ "ping_pong@example.org" ]
 }
-

Le fichier batch invoquera alors le script Python :

+

Le fichier batch invoquera alors le script Python :

@echo off
 
 python -u "c:\\path\\to\\native-messaging\\app\\ping_pong.py"
-

Opérations d’échange des  messages

+

Opérations d'échange des messages

Ayant appliqué la configuration de ci‐dessus, une extension peut échanger des messages JSON avec une application native.

-

Du côté de l’extension

+

Du côté de l'extension

-

La messagerie native ne peut pas être utilisée directement dans les scripts de contenu ; vous devrez le faire indirect via des scripts d'arrière plan.

+

La messagerie native ne peut pas être utilisée directement dans les scripts de contenu ; vous devrez le faire indirect via des scripts d'arrière plan.

Il y a deux modèles à utiliser ici : la messagerie basée sur la connexion et la messagerie sans connexion.

Messagerie basée sur une connexion

-

Avec cette manière de faire, vous appelez la fonction {{WebExtAPIRef("runtime.connectNative()")}}, en lui passant comme paramètre le nom de l’application (la valeur de la propriété "name" du manifest de l’application). Ceci lance l’application si elle n’est pas encore démarrée et renverra un objet  {{WebExtAPIRef("runtime.Port")}} à l’extension.

+

Avec cette manière de faire, vous appelez la fonction {{WebExtAPIRef("runtime.connectNative()")}}, en lui passant comme paramètre le nom de l'application (la valeur de la propriété "name" du manifest de l'application). Ceci lance l'application si elle n'est pas encore démarrée et renverra un objet {{WebExtAPIRef("runtime.Port")}} à l'extension.

-

L’application native passe deux arguments lorsqu’elle démarre :

+

L'application native passe deux arguments lorsqu'elle démarre :

@@ -136,11 +136,11 @@ python -u "c:\\path\\to\\native-messaging\\app\\ping_pong.py"
-

L’aplication continue de fonctionner jusqu’à ce que l’extension invoque Port.disconnect() ou jusqu'à ce que la page connectée soit fermée.

+

L'aplication continue de fonctionner jusqu'à ce que l'extension invoque Port.disconnect() ou jusqu'à ce que la page connectée soit fermée.

Pour envoyer des messages en utilisant Port, utilisez sa fonction postMessage(), en passant le message JSON à envoyer. Pour écouter les messages en utilisant Port, ajouter un écouteur (listener) en utilisant sa fonction onMessage.addListener().

-

Voici un exemple de script « background » qui établit une connection avec l’application « ping_pong », qui écoute à l’attente de messages de celle‐ci et qui lui envoie un message « ping » à chaque fois que l’utilisateur clique sur l’action du navigateur (browser action) :

+

Voici un exemple de script « background » qui établit une connection avec l'application « ping_pong », qui écoute à l'attente de messages de celle‐ci et qui lui envoie un message « ping » à chaque fois que l'utilisateur clique sur l'action du navigateur (browser action) :

/*
 On startup, connect to the "ping_pong" app.
@@ -164,24 +164,24 @@ browser.browserAction.onClicked.addListener(() => {
 
 

Messagerie sans connexion

-

Avec cette manière de faire, vous invoquez la fonction  {{WebExtAPIRef("runtime.sendNativeMessage()")}}, en lui passant comme arguments :

+

Avec cette manière de faire, vous invoquez la fonction {{WebExtAPIRef("runtime.sendNativeMessage()")}}, en lui passant comme arguments :

    -
  • le nom de l’application,
  • +
  • le nom de l'application,
  • le message JSON à envoyer,
  • et optionnellement un callback.
-

Une nouvelle instance de l’application sera créée pour chaque message. L’application native passe deux arguments lorsqu’elle démarre :

+

Une nouvelle instance de l'application sera créée pour chaque message. L'application native passe deux arguments lorsqu'elle démarre :

    -
  • le chemin complet du manifest de l’application
  • -
  • (nouveau dans Firefox 55), l’ID (tel qu'indiqué dans la clé du manifest.json de browser_specific_settings) de l’add‐on qui l’a démarré.
  • +
  • le chemin complet du manifest de l'application
  • +
  • (nouveau dans Firefox 55), l'ID (tel qu'indiqué dans la clé du manifest.json de browser_specific_settings) de l'add‐on qui l'a démarré.
-

Le premier message envoyé par l’application est traité comme une réponse à l’invocation de la fonction sendNativeMessage(), et sera passé dans le callback.

+

Le premier message envoyé par l'application est traité comme une réponse à l'invocation de la fonction sendNativeMessage(), et sera passé dans le callback.

-

Voici l’exemple précédent réécrit en utilisant runtime.sendNativeMessage():

+

Voici l'exemple précédent réécrit en utilisant runtime.sendNativeMessage():

function onResponse(response) {
   console.log("Received " + response);
@@ -203,13 +203,13 @@ browser.browserAction.onClicked.addListener(() => {
 });
 
-

Du côté de l’application

+

Du côté de l'application

-

Du côté de l’application, vous utilisez l’entrée standard (standard input) pour recevoir les messages, et la sortie standard (standard output) pour les envoyer.

+

Du côté de l'application, vous utilisez l'entrée standard (standard input) pour recevoir les messages, et la sortie standard (standard output) pour les envoyer.

-

Chaque message est sérialisé sous forme de JSON, est encodé en UTF‐8 et est précédé d’une valeur 32 bits qui contient la longueur du message dans l’ordre des octets natifs.

+

Chaque message est sérialisé sous forme de JSON, est encodé en UTF‐8 et est précédé d'une valeur 32 bits qui contient la longueur du message dans l'ordre des octets natifs.

-

La taille maximum d’un seul message envoyé par l’application est de 1MB. La taille maximum d’un message envoyé vers l’application est de 4GB.

+

La taille maximum d'un seul message envoyé par l'application est de 1MB. La taille maximum d'un message envoyé vers l'application est de 4GB.

Voici un exemple écrit en Python. Il écoute les messages de l'extension. Notez que le fichier doit être exécutable sous Linux. Si le message est "ping", il répond par un message "pong". C'est la version Python 2 :

@@ -255,7 +255,7 @@ while True:

En Python 3, les données binaires reçues doivent être décodées en une chaîne. Le contenu à renvoyer à l'addon doit être encodé en données binaires à l'aide d'une structure :

-
#!/usr/bin/python -u
+
#!/usr/bin/python -u
 
 # Note that running python with the `-u` flag is required on Windows,
 # in order to ensure that stdin and stdout are opened in binary, rather
@@ -295,74 +295,74 @@ def send_message(encoded_message):
 while True:
     message = get_message()
     if message == "ping":
-        send_message(encode_message("pong"))
+ send_message(encode_message("pong"))
-

Fermeture de l’application native

+

Fermeture de l'application native

-

Si vous vous êtes connecté à l’application native en utilisant  runtime.connectNative(), alors elle continuera de fonctionner jusqu’à ce que l’extension appelle Port.disconnect() ou que la page qui s'y est connectée soit fermée. Si vous avez démarré l’application native en utilisant runtime.sendNativeMessage(), alors elle sera fermée après qu’elle aura reçu le message et envoyé une réponse.

+

Si vous vous êtes connecté à l'application native en utilisant runtime.connectNative(), alors elle continuera de fonctionner jusqu'à ce que l'extension appelle Port.disconnect() ou que la page qui s'y est connectée soit fermée. Si vous avez démarré l'application native en utilisant runtime.sendNativeMessage(), alors elle sera fermée après qu'elle aura reçu le message et envoyé une réponse.

-

Pour fermer l’application native :

+

Pour fermer l'application native :

    -
  • Sur les système d’exploitation *.nix comme Linux ou OS X, le navigateur envoie un SIGTERM à l’application native, puis un SIGKILL après que l’application ait eût l’occasion de finir de manière normale. Ces signaux sont propagés à tout sous‐processus sauf pour ceux qui se trouvent dans de nouveaux groupes de processus.
  • -
  • Sous windows, le navigateur met le processus de l’application native dans un Job object et tue le processus. Si l’application native lance un autre processus et désire qu’il reste ouvert après que l’application native elle même soit fermée alors l’application native doit démarrer un autre processus avec le paramètre CREATE_BREAKAWAY_FROM_JOB.
  • +
  • Sur les système d'exploitation *.nix comme Linux ou OS X, le navigateur envoie un SIGTERM à l'application native, puis un SIGKILL après que l'application ait eût l'occasion de finir de manière normale. Ces signaux sont propagés à tout sous‐processus sauf pour ceux qui se trouvent dans de nouveaux groupes de processus.
  • +
  • Sous windows, le navigateur met le processus de l'application native dans un Job object et tue le processus. Si l'application native lance un autre processus et désire qu'il reste ouvert après que l'application native elle même soit fermée alors l'application native doit démarrer un autre processus avec le paramètre CREATE_BREAKAWAY_FROM_JOB.

Dépannage

-

Si quelque chose se passe mal, vérifier dans la console du navigateur. Si l’application native renvoit quelque‐chose vers stderr (strandard error), le navigateur le renverra vers la console du navigateur. Donc si vous avez réussi à lancer l’application native, vous verrez toutes les messages d’erreurs qu’elle émet.

+

Si quelque chose se passe mal, vérifier dans la console du navigateur. Si l'application native renvoit quelque‐chose vers stderr (strandard error), le navigateur le renverra vers la console du navigateur. Donc si vous avez réussi à lancer l'application native, vous verrez toutes les messages d'erreurs qu'elle émet.

-

Si vous n’avez pas réussi à démarrer l’application, vous devriez voir un message d’erreur vous donnant un indice sur le problème.

+

Si vous n'avez pas réussi à démarrer l'application, vous devriez voir un message d'erreur vous donnant un indice sur le problème.

"No such native application <name>"
    -
  •  Vérifiez que le nom passé comme argument à la fonction runtime.connectNative() correspond au nom dans le manifest de l’application
  • -
  • OS X / Linux : vérifiez que le nom du fichier de manifest de l’application est  <name>.json.
  • -
  • Windows : vérifiez que la clé de registre est dans l’endroit correcte, et que son nom correspond au « name » dans le manifest de l’application.
  • -
  • Windows : vérifiez que le chemin donné dans la clé de registre pointe vers le manifest de l’application.
  • +
  • Vérifiez que le nom passé comme argument à la fonction runtime.connectNative() correspond au nom dans le manifest de l'application
  • +
  • OS X / Linux : vérifiez que le nom du fichier de manifest de l'application est <name>.json.
  • +
  • Windows : vérifiez que la clé de registre est dans l'endroit correcte, et que son nom correspond au « name » dans le manifest de l'application.
  • +
  • Windows : vérifiez que le chemin donné dans la clé de registre pointe vers le manifest de l'application.
"Error: Invalid application <name>"
    -
  • Vérifier que le nom de l’application ne contient pas de caractères invalides.
  • +
  • Vérifier que le nom de l'application ne contient pas de caractères invalides.
"'python' is not recognized as an internal or external command, ..."
    -
  • Windows : Si votre application est un script écrit en Python, vérifiez que Python est installé et que vous avez un chemin définit pour lui.
  • +
  • Windows : Si votre application est un script écrit en Python, vérifiez que Python est installé et que vous avez un chemin définit pour lui.
"File at path <path> does not exist, or is not executable"
    -
  • Si vous voyez ce message, alors le fichier de manifest de l’application a été trouvé.
  • -
  • Vérifier que le « chemin » dans le manifest de l’application est correct.
  • -
  • Windows : vérifiez que vous avez « échappé » les séparateurs du chemin ("c:\\path\\to\\file").
  • -
  • Vérifiez que l’application se trouve bien à l’endroit indiqué par la propriété « path » dans le manifest de l’application.
  • -
  • Vérifiez que l’application est exécutable.
  • +
  • Si vous voyez ce message, alors le fichier de manifest de l'application a été trouvé.
  • +
  • Vérifier que le « chemin » dans le manifest de l'application est correct.
  • +
  • Windows : vérifiez que vous avez « échappé » les séparateurs du chemin ("c:\\path\\to\\file").
  • +
  • Vérifiez que l'application se trouve bien à l'endroit indiqué par la propriété « path » dans le manifest de l'application.
  • +
  • Vérifiez que l'application est exécutable.
"This extension does not have permission to use native application <name>"
    -
  • Vérifier que le tableau  « allowed_extensions » dans le manifest de l’application contient l’ID de l’add‐on.
  • +
  • Vérifier que le tableau « allowed_extensions » dans le manifest de l'application contient l'ID de l'add‐on.
"TypeError: browser.runtime.connectNative is not a function"
    -
  • Vérifiez que l’extension à la permission « nativeMessaging »
  • +
  • Vérifiez que l'extension à la permission « nativeMessaging »
-
"[object Object]       NativeMessaging.jsm:218"
+
"[object Object] NativeMessaging.jsm:218"
    -
  • Il y a eu un problème lors du démarrage de l’application.
  • +
  • Il y a eu un problème lors du démarrage de l'application.
-

Incompatibilités avec Chrome

+

Incompatibilités avec Chrome

-

{{Page("Mozilla / Add‐ons / WebExtensions / Chrome_incompatibilities", "Native_messaging")}}

+

Il existe un certain nombre de différences entre les navigateurs qui affectent la messagerie native dans les extensions web, notamment les arguments transmis à l'app native, l'emplacement du fichier manifeste, etc. Ces différences sont abordées dans Incompatibilités Chrome > Messagerie native.

diff --git a/files/fr/mozilla/add-ons/webextensions/what_next_/index.html b/files/fr/mozilla/add-ons/webextensions/what_next_/index.html index 121fe18d09..eec74b2a28 100644 --- a/files/fr/mozilla/add-ons/webextensions/what_next_/index.html +++ b/files/fr/mozilla/add-ons/webextensions/what_next_/index.html @@ -56,8 +56,8 @@ original_slug: Mozilla/Add-ons/WebExtensions/que_faire_ensuite
  • En savoir plus sur les concepts fondamentaux des extensions de navigateur, en commençant par les détails sur l'utilisation des APIs Javascript.
  • Un guide des composants de l'interface utilisateur disponibles pour les extensions de votre navigateur.
  • Une collection de guides pratiques sur la réalisation des tâches clés dans vos extensions ou l'utilisation des API JavaScript.
  • -
  • Un guide de référence complet sur les APIs JavaScript.
  • -
  • Un guide de référence complet sur les clés du manifeste.
  • +
  • Un guide de référence complet sur les APIs JavaScript.
  • +
  • Un guide de référence complet sur les clés du manifeste.
  • Vous voudrez également vous rendre à l'Atelier des extensions où vous trouverez tout ce que vous devez savoir sur la création d'extensions pour Firefox, notamment :

    diff --git a/files/fr/mozilla/firefox/releases/77/index.html b/files/fr/mozilla/firefox/releases/77/index.html index e0cde338a0..5520236f82 100644 --- a/files/fr/mozilla/firefox/releases/77/index.html +++ b/files/fr/mozilla/firefox/releases/77/index.html @@ -96,7 +96,7 @@ original_slug: Mozilla/Firefox/Versions/77

    Changements manifestes

      -
    • Les permissions suivantes sont désormais facultatives, elles peuvent être spécifiées dans la clé du manifeste optional_permissions et demandées en utilisant l'API {{WebExtAPIRef("permissions")}} : browsingData ({{bug(1630417)}}), pkcs11 ({{bug(1630418)}}), proxy ({{bug(1548011)}}), et sessions ({{bug(1630414)}}).
    • +
    • Les permissions suivantes sont désormais facultatives, elles peuvent être spécifiées dans la clé du manifeste optional_permissions et demandées en utilisant l'API {{WebExtAPIRef("permissions")}} : browsingData ({{bug(1630417)}}), pkcs11 ({{bug(1630418)}}), proxy ({{bug(1548011)}}), et sessions ({{bug(1630414)}}).

    Suppressions

    -- cgit v1.2.3-54-g00ecf