aboutsummaryrefslogtreecommitdiff
path: root/files/fr/mozilla/add-ons/webextensions/api/menus
diff options
context:
space:
mode:
Diffstat (limited to 'files/fr/mozilla/add-ons/webextensions/api/menus')
-rw-r--r--files/fr/mozilla/add-ons/webextensions/api/menus/action_menu_top_level_limit/index.html66
-rw-r--r--files/fr/mozilla/add-ons/webextensions/api/menus/contexttype/index.html103
-rw-r--r--files/fr/mozilla/add-ons/webextensions/api/menus/create/index.html228
-rw-r--r--files/fr/mozilla/add-ons/webextensions/api/menus/createproperties/index.html130
-rw-r--r--files/fr/mozilla/add-ons/webextensions/api/menus/gettargetelement/index.html74
-rw-r--r--files/fr/mozilla/add-ons/webextensions/api/menus/index.html203
-rw-r--r--files/fr/mozilla/add-ons/webextensions/api/menus/itemtype/index.html81
-rw-r--r--files/fr/mozilla/add-ons/webextensions/api/menus/menus.overridecontext()/index.html62
-rw-r--r--files/fr/mozilla/add-ons/webextensions/api/menus/onclickdata/index.html105
-rw-r--r--files/fr/mozilla/add-ons/webextensions/api/menus/onclicked/index.html118
-rw-r--r--files/fr/mozilla/add-ons/webextensions/api/menus/onhidden/index.html70
-rw-r--r--files/fr/mozilla/add-ons/webextensions/api/menus/onshown/index.html153
-rw-r--r--files/fr/mozilla/add-ons/webextensions/api/menus/overridecontext/index.html46
-rw-r--r--files/fr/mozilla/add-ons/webextensions/api/menus/refresh/index.html66
-rw-r--r--files/fr/mozilla/add-ons/webextensions/api/menus/remove/index.html113
-rw-r--r--files/fr/mozilla/add-ons/webextensions/api/menus/removeall/index.html107
-rw-r--r--files/fr/mozilla/add-ons/webextensions/api/menus/update/index.html193
17 files changed, 1918 insertions, 0 deletions
diff --git a/files/fr/mozilla/add-ons/webextensions/api/menus/action_menu_top_level_limit/index.html b/files/fr/mozilla/add-ons/webextensions/api/menus/action_menu_top_level_limit/index.html
new file mode 100644
index 0000000000..4fa664e6e6
--- /dev/null
+++ b/files/fr/mozilla/add-ons/webextensions/api/menus/action_menu_top_level_limit/index.html
@@ -0,0 +1,66 @@
+---
+title: menus.ACTION_MENU_TOP_LEVEL_LIMIT
+slug: Mozilla/Add-ons/WebExtensions/API/menus/ACTION_MENU_TOP_LEVEL_LIMIT
+tags:
+ - ACTION_MENU_TOP_LEVEL_LIMIT
+ - API
+ - Add-ons
+ - Extensions
+ - Non-standard
+ - Property
+ - Reference
+ - WebExtensions
+ - contextMenus
+translation_of: Mozilla/Add-ons/WebExtensions/API/menus/ACTION_MENU_TOP_LEVEL_LIMIT
+---
+<div>{{AddonSidebar()}}</div>
+
+<p>Le nombre maximal d'éléments d'extension de niveau supérieur pouvant être ajoutés à un élément de menu dont {{WebExtAPIRef("contextMenus.ContextType", "ContextType")}} est "browser_action" ou "page_action". Tout élément au-delà de cette limite sera ignoré.</p>
+
+<p>Sa valeur est de <code>6</code> pour Firefox et Chrome.</p>
+
+<p>Pour la compatibilité avec d'autres navigateurs, Firefox rend cette propriété disponible via l'espace de noms <code>contextMenus</code> ainsi que l'espace de noms des <code>menus</code>.</p>
+
+<h2 id="Compatibilité_du_navigateur">Compatibilité du navigateur</h2>
+
+<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
+
+<p>{{Compat("webextensions.api.menus.ACTION_MENU_TOP_LEVEL_LIMIT", 10)}}</p>
+
+<p>{{WebExtExamples}}</p>
+
+<div class="note"><strong>Remerciements</strong>
+
+<p>Cette API est basée sur l'API <a href="https://developer.chrome.com/extensions/contextMenus"><code>chrome.contextMenus</code></a> de chromium. Cette documentation est dérivée de <a href="https://chromium.googlesource.com/chromium/src/+/master/chrome/common/extensions/api/context_menus.json"><code>context_menus.json</code></a> dans le code Chromium.</p>
+</div>
+
+<div class="hidden">
+<pre>// Copyright 2015 The Chromium Authors. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+</pre>
+</div>
diff --git a/files/fr/mozilla/add-ons/webextensions/api/menus/contexttype/index.html b/files/fr/mozilla/add-ons/webextensions/api/menus/contexttype/index.html
new file mode 100644
index 0000000000..955e0e0a40
--- /dev/null
+++ b/files/fr/mozilla/add-ons/webextensions/api/menus/contexttype/index.html
@@ -0,0 +1,103 @@
+---
+title: menus.ContextType
+slug: Mozilla/Add-ons/WebExtensions/API/menus/ContextType
+tags:
+ - API
+ - Add-ons
+ - ContextType
+ - Extensions
+ - Non-standard
+ - Reference
+ - Type
+ - WebExtensions
+ - contextMenus
+ - menus
+translation_of: Mozilla/Add-ons/WebExtensions/API/menus/ContextType
+---
+<div>{{AddonSidebar()}}</div>
+
+<p>Les différents contextes dans lesquels un élément de menu peut apparaître.</p>
+
+<h2 id="Type">Type</h2>
+
+<p>Les valeurs de ce type sont des chaînes. L'élément est affiché lorsque le contexte donné s'applique. Les valeurs possibles sont :</p>
+
+<dl>
+ <dt>all</dt>
+ <dd>La spécification de "tous" équivaut à la combinaison de tous les autres contextes, à l'exception de 'bookmark', 'tab' et 'tools_menu'.</dd>
+ <dt>audio</dt>
+ <dd>S'applique lorsque l'utilisateur clique sur le contexte d'un élément <a href="/fr/docs/Web/HTML/Element/audio">audio</a>.</dd>
+ <dt>bookmark</dt>
+ <dd>S'applique lorsque l'utilisateur clique en contexte sur un élément de signet dans la barre d'outils des signets, le menu des signets, la barre latérale des signets (&lt;kbd&gt;Ctrl&lt;/kbd&gt; + &lt;kbd&gt;B&lt;/kbd&gt;) et la fenêtre Bibliothèque (&lt;kbd&gt;Ctrl&lt;/kbd&gt; + &lt;kbd&gt;Shift&lt;/kbd&gt; + &lt;kbd&gt;B&lt;/kbd&gt;). Ces deux derniers sont supportés à partir de Firefox 66. Nécessite la <a href="/fr/Add-ons/WebExtensions/manifest.json/permissions#API_permissions">permission d'API</a> dans le manifest.</dd>
+ <dt>browser_action</dt>
+ <dd>S'applique lorsque l'utilisateur clique en contexte sur l'action de votre navigateur. Le nombre maximal d'éléments pouvant être ajoutés au menu contextuel de l'action du navigateur de niveau supérieur est {{WebExtAPIRef("menus.ACTION_MENU_TOP_LEVEL_LIMIT")}}, mais vous pouvez ajouter n'importe quel nombre d'éléments aux sous-menus.</dd>
+ <dt>editable</dt>
+ <dd>S'applique lorsque l'utilisateur clique en contexte sur un élément modifiable, comme un <a href="/fr/docs/Web/HTML/Element/textarea">textarea</a>.</dd>
+ <dt>frame</dt>
+ <dd>S'applique lorsque l'utilisateur clique sur le contexte dans une <a href="/fr/docs/Web/HTML/Element/iframe">iframe</a> imbriqué.</dd>
+ <dt>image</dt>
+ <dd>S'applique lorsque l'utilisateur clique sur le contexte d'une image.</dd>
+ <dt>link</dt>
+ <dd>S'applique lorsque l'utilisateur clique en contexte sur un lien.</dd>
+ <dt>page</dt>
+ <dd>S'applique lorsque l'utilisateur clique sur le contexte dans la page, mais aucun des autres contextes de page ne s'applique (par exemple, le clic ne se trouve pas sur une image ou une <em>iframe</em> imbriqué ou un lien).</dd>
+ <dt>page_action</dt>
+ <dd>S'applique lorsque l'utilisateur clique en contexte sur l'action de votre page. Le nombre maximal d'éléments pouvant être ajoutés au menu contextuel de l'action de page de niveau supérieur est {{WebExtAPIRef("menus.ACTION_MENU_TOP_LEVEL_LIMIT")}}, mais vous pouvez ajouter n'importe quel nombre d'éléments aux sous-menus.</dd>
+ <dt>password</dt>
+ <dd>S'applique lorsque l'utilisateur clique en contexte sur un <a href="/fr/docs/Web/HTML/Element/input/password">élément d'entrée de mot de passe</a>.</dd>
+ <dt>selection</dt>
+ <dd>S'applique lorsqu'une partie de la page est sélectionnée.</dd>
+ <dt>tab</dt>
+ <dd>S'applique lorsque l'utilisateur clique en contexte sur un onglet (en particulier, il s'agit de l'onglet ou d'un autre élément de l'interface utilisateur permettant à l'utilisateur de passer d'un onglet de navigateur à un autre, et non à la page elle-même).</dd>
+ <dd>Depuis Firefox 63, cliquer sur l'élément du menu d'un onglet accorde la permission <a href="/fr/Add-ons/WebExtensions/manifest.json/permissions#activeTab_permission">activeTab</a> pour l'onglet cliqué, même si ce n'est pas l'onglet actuellement actif.</dd>
+ <dt>tools_menu</dt>
+ <dd>L'élément sera ajouté au menu des outils du navigateur. Notez que ceci n'est disponible que si vous accédez à <code>ContextType</code> via l'espace de nom des <code>menus</code>. Il n'est pas disponible si vous y accédez via l'espace de noms <code>contextMenus</code>.</dd>
+ <dt>video</dt>
+ <dd>S'applique lorsque l'utilisateur clique sur le contexte d'un élément <a href="/fr/docs/Web/HTML/Element/video">video</a>.</dd>
+</dl>
+
+<p>Notez que "launcher" n'est pas supporté.</p>
+
+<h2 id="Compatibilité_du_navigateur">Compatibilité du navigateur</h2>
+
+<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
+
+<p>{{Compat("webextensions.api.menus.ContextType", 10)}}</p>
+
+<p>{{WebExtExamples}}</p>
+
+<div class="note"><strong>Remerciements</strong>
+
+<p>Cette API est basée sur l'API <a href="https://developer.chrome.com/extensions/contextMenus"><code>chrome.contextMenus</code></a> de chromium. Cette documentation est dérivée de <a href="https://chromium.googlesource.com/chromium/src/+/master/chrome/common/extensions/api/context_menus.json"><code>context_menus.json</code></a> dans le code Chromium.</p>
+</div>
+
+<div class="hidden">
+<pre>// Copyright 2015 The Chromium Authors. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+</pre>
+</div>
diff --git a/files/fr/mozilla/add-ons/webextensions/api/menus/create/index.html b/files/fr/mozilla/add-ons/webextensions/api/menus/create/index.html
new file mode 100644
index 0000000000..a1931b2216
--- /dev/null
+++ b/files/fr/mozilla/add-ons/webextensions/api/menus/create/index.html
@@ -0,0 +1,228 @@
+---
+title: menus.create()
+slug: Mozilla/Add-ons/WebExtensions/API/menus/create
+tags:
+ - API
+ - Add-ons
+ - Create
+ - Extensions
+ - Method
+ - Non-standard
+ - Reference
+ - WebExtensions
+ - contextMenus
+translation_of: Mozilla/Add-ons/WebExtensions/API/menus/create
+---
+<div>{{AddonSidebar()}}</div>
+
+<p>Crée un nouvel élément de menu, avec un objet d'options définissant les propriétés de l'élément.</p>
+
+<p>Contrairement aux autres fonctions asynchrones, celle-ci ne renvoie pas de promesse, mais utilise un callback optionnel pour communiquer le succès ou l'échec. C'est parce que sa valeur de retour est l'ID du nouvel élément.</p>
+
+<p>Pour la compatibilité avec d'autres navigateurs, Firefox rend cette méthode disponible via l'espace noms <code>contextMenus</code> ainsi que l'espace de noms des <code>menus</code>. Notez cependant qu'il n'est pas possible de créer des éléments de menu d'outils (<code>contexts: ["tools_menu"]</code>) en utilisant l'espace de noms <code>contextMenus</code>.</p>
+
+<h2 id="Syntaxe">Syntaxe</h2>
+
+<pre class="syntaxbox brush:js">browser.menus.create(
+ createProperties, // object
+ function() {...} // optional function
+)
+</pre>
+
+<h3 id="Paramètres">Paramètres</h3>
+
+<dl>
+ <dt><code>createProperties</code></dt>
+ <dd><code>object</code>. Propriétés pour le nouvel élément de menu.</dd>
+ <dd>
+ <dl class="reference-values">
+ <dt><code>checked</code> {{optional_inline}}</dt>
+ <dd><code>boolean</code>. L'état initial d'une case à cocher ou d'un élément radio : <code>true</code> pour selected et <code>false</code> pour non sélectionné. Un seul élément radio peut être sélectionné à la fois dans un groupe donné d'éléments radio.</dd>
+ <dt><code>command</code> {{optional_inline}}</dt>
+ <dd>
+ <p><code>string</code>. Chaîne décrivant une action à effectuer lorsque l'utilisateur clique sur l'élément. Les valeurs possibles sont:</p>
+
+ <ul>
+ <li><code>"_execute_browser_action"</code>: simule un clic sur l'action du navigateur de l'extension, en ouvrant son popup s'il en a un</li>
+ <li><code>"_execute_page_action"</code>: simule un clic sur l'action de la page de l'extension, en ouvrant son popup s'il en a un</li>
+ <li><code>"_execute_sidebar_action"</code>: ouvre la barre latérale de l'extension</li>
+ </ul>
+
+ <p>Cliquer sur l'élément déclenchera toujours l'événement {{WebExtAPIRef("menus.onClicked")}}, mais il n'y a aucune garantie de la commande ici: la commande peut être exécutée avant les incendies <code>onClicked</code>.</p>
+ </dd>
+ <dt><code>contexts</code> {{optional_inline}}</dt>
+ <dd>
+ <p><code>array</code> de <code>{{WebExtAPIRef('menus.ContextType')}}</code>. Tableau des contextes dans lesquels cet élément de menu apparaîtra. Si cette option est omise :</p>
+
+ <ul>
+ <li>Si l'élément parent a des contextes définis, alors cet élément héritera des contextes de ses parents</li>
+ <li>sinon, l'élément reçoit un tableau de contexte de ["page"].</li>
+ </ul>
+ </dd>
+ <dt><code>documentUrlPatterns</code> {{optional_inline}}</dt>
+ <dd><code>array</code> de <code><code>string</code></code>. Vous permet de restreindre l'élément à appliquer uniquement aux documents dont l'URL correspond à l'un des <a href="/fr/Add-ons/WebExtensions/Match_patterns">motifs</a> données. Cela s'applique également aux cadres.</dd>
+ <dt><code>enabled</code> {{optional_inline}}</dt>
+ <dd><code>boolean</code>. Si cet élément de menu est activé ou désactivé. Par défaut à <code>true</code>.</dd>
+ <dt><code>icons</code> {{optional_inline}}</dt>
+ <dd>
+ <p><code>object</code>. Une ou plusieurs icônes personnalisées à afficher en regard de l'élément. Les icônes personnalisées ne peuvent être définies que pour les éléments apparaissant dans les sous-menus. Cette propriété est un objet avec une propriété pour chaque icône fournie: le nom de la propriété est la taille de l'icône en pixels et sa valeur est un chemin vers l'icône à partir du répertoire racine de l'extension. Le navigateur va essayer de choisir une icône de 16x16 pixels pour un affichage normal ou une icône de 32x32 pixels pour un affichage haute densité. Donc, pour éviter toute mise à l'échelle, vous pouvez spécifier des icônes comme ceci :</p>
+
+ <pre class="brush: json no-line-numbers language-json"><code class="language-json"><span class="key token">"icons":</span> <span class="punctuation token">{</span>
+ <span class="key token">"16":</span> <span class="string token">"path/to/geo-16.png"</span><span class="punctuation token">,</span>
+ <span class="key token">"32":</span> <span class="string token">"path/to/geo-32.png"</span>
+ <span class="punctuation token">}</span></code></pre>
+
+ <p>Vous pouvez également spécifier une seule icône SVG, qui sera mise à l'échelle de manière appropriée :</p>
+
+ <pre class="brush: json no-line-numbers language-json"><code class="language-json"><span class="key token">"icons":</span> <span class="punctuation token">{</span>
+ <span class="key token">"16":</span> <span class="string token">"path/to/geo.svg"</span>
+ <span class="punctuation token">}</span></code></pre>
+
+ <div class="blockIndicator note">
+ <p><strong>Note</strong>: L'élément de menu de niveau supérieur utilise les <a href="/fr/Add-ons/WebExtensions/manifest.json/icons">icônes</a> spécifiées dans le manifest plutôt que ce qui est spécifié avec cette touche.</p>
+ </div>
+ </dd>
+ <dt><code>id</code> {{optional_inline}}</dt>
+ <dd><code>string</code>. Identifiant unique à attribuer à cet élément Obligatoire pour les pages d'événement. Ne peut pas être identique à un autre ID pour cette extension.</dd>
+ <dt><code>onclick</code> {{optional_inline}}</dt>
+ <dd><code>function</code>. Une fonction qui sera appelée lorsque l'élément de menu est cliqué. Les pages d'événements ne peuvent pas utiliser ceci : à la place, elles devraient enregistrer un écouteur pour {{WebExtAPIRef('menus.onClicked')}}.</dd>
+ <dt><code>parentId</code> {{optional_inline}}</dt>
+ <dd><code><code>integer</code></code> ou <code><code>string</code></code>. L'ID d'un élément de menu parent; Cela fait de l'élément un enfant d'un élément ajouté précédemment. Remarque : Si vous avez créé plus d'un élément de menu, les éléments seront placés dans un sous-menu. Le parent du sous-menu sera étiqueté avec le nom de l'extension.</dd>
+ <dt><code>targetUrlPatterns</code> {{optional_inline}}</dt>
+ <dd><code>array</code> de <code><code>string</code></code>. Similaire à <code>documentUrlPatterns</code>, mais vous permet de filtrer en fonction du <code>href</code> des balises d'ancrage et de l'attribut <code>src</code> des balises img/audio/video tags. Ce paramètre prend en charge n'importe quel schéma d'URL, même ceux qui ne sont généralement pas autorisés dans un modèle de correspondance.</dd>
+ <dt><code>title</code> {{optional_inline}}</dt>
+ <dd>
+ <p><code>string</code>. Le texte à afficher dans l'article. Obligatoire sauf si le <code>type</code> est "separator".</p>
+
+ <p>Vous pouvez utiliser "<code>%s</code>" dans la chaîne. Si vous le faites dans un élément de menu et que du texte est sélectionné dans la page lorsque le menu est affiché, le texte sélectionné sera interpolé dans le titre. Par exemple, si le <code>titre</code> est "traduire '%s' en Pig Latin" et que l'utilisateur sélectionne le mot "cool", alors le menu est activé, le titre de l'élément de menu sera : "Traduire 'cool' en Pig Latin".</p>
+
+ <p>Si le titre contient une esperluette "&amp;" le caractère suivant sera utilisé comme clé d'accès pour l'élément et l'esperluette ne sera pas affichée. Les exceptions à cette règle sont les suivantes :</p>
+
+ <ul>
+ <li>Si le caractère suivant est également une esperluette : alors une esperluette simple sera affichée et aucune clé d'accès ne sera définie. En effet, "&amp;&amp;" est utilisé pour afficher une seule esperluette.</li>
+ <li>Si les caractères suivants sont la directive d'interpolation "%s" :  alors l'esperluette ne sera pas affichée et aucune clé d'accès ne sera définie.</li>
+ <li>Si l'esperluette est le dernier caractère du titre : alors l'esperluette ne sera pas affichée et aucune clé d'accès ne sera définie.</li>
+ </ul>
+
+ <p>Seule la première esperluette sera utilisée pour définir une clé d'accès : les esperluettes suivantes ne seront pas affichées mais ne définiront pas les clés. Ainsi "&amp;A et &amp;B" seront affichés comme "A et B" et "A" comme clé d'accès.</p>
+ </dd>
+ <dt><code>type</code> {{optional_inline}}</dt>
+ <dd><code>{{WebExtAPIRef('menus.ItemType')}}</code>. Le type d'élément de menu : "normal", "checkbox", "radio", "separator". Par défault à "normal".</dd>
+ <dt><code>viewType</code> {{optional_inline}}</dt>
+ <dd><code>{{WebExtAPIRef('extension.ViewType')}}</code>. Liste des types d'affichage où l'élément de menu sera affiché. Par défaut à n'importe quelle vue, y compris celles qui n'ont pas de <code>viewType</code>.</dd>
+ <dt><code>visible</code> {{optional_inline}}</dt>
+ <dd><code>boolean</code>. Si l'élément est affiché dans le menu. Par défaut, la valeur est <code>true</code>.</dd>
+ </dl>
+ </dd>
+ <dt><code>callback</code> {{optional_inline}}</dt>
+ <dd><code>function</code>. Appelé lorsque l'élément a été créé. S'il y a eu des problèmes lors de la création de l'élément, les détails seront disponibles dans {{WebExtAPIRef('runtime.lastError')}}.</dd>
+</dl>
+
+<h3 id="Valeur_retournée">Valeur retournée</h3>
+
+<p><code><code>integer</code></code> ou <code><code>string</code></code>. L'ID de l'article nouvellement créé.</p>
+
+<h2 id="Exemples">Exemples</h2>
+
+<p>Cet exemple crée un élément de menu contextuel qui s'affiche lorsque l'utilisateur a sélectionné du texte dans la page. Il enregistre simplement le texte sélectionné sur la console</p>
+
+<pre class="brush: js">browser.menus.create({
+ id: "log-selection",
+ title: "Log '%s' to the console",
+ contexts: ["selection"]
+});
+
+browser.menus.onClicked.addListener(function(info, tab) {
+ if (info.menuItemId == "log-selection") {
+ console.log(info.selectionText);
+ }
+});</pre>
+
+<p>Cet exemple ajoute deux éléments radio, que vous pouvez utiliser pour choisir d'appliquer une bordure verte ou bleue à la page. Notez que cet exemple nécessitera la <a href="/fr/Add-ons/WebExtensions/manifest.json/permissions#activeTab_permission">permission activeTab</a>.</p>
+
+<pre class="brush: js">function onCreated() {
+ if (browser.runtime.lastError) {
+ console.log("error creating item:" + browser.runtime.lastError);
+ } else {
+ console.log("item created successfully");
+ }
+}
+
+browser.menus.create({
+ id: "radio-green",
+ type: "radio",
+ title: "Make it green",
+ contexts: ["all"],
+ checked: false
+}, onCreated);
+
+browser.menus.create({
+ id: "radio-blue",
+ type: "radio",
+ title: "Make it blue",
+ contexts: ["all"],
+ checked: false
+}, onCreated);
+
+var makeItBlue = 'document.body.style.border = "5px solid blue"';
+var makeItGreen = 'document.body.style.border = "5px solid green"';
+
+browser.menus.onClicked.addListener(function(info, tab) {
+ if (info.menuItemId == "radio-blue") {
+ browser.tabs.executeScript(tab.id, {
+ code: makeItBlue
+ });
+ } else if (info.menuItemId == "radio-green") {
+ browser.tabs.executeScript(tab.id, {
+ code: makeItGreen
+ });
+ }
+});</pre>
+
+<p>{{WebExtExamples}}</p>
+
+
+
+<h2 id="Compatibilité_du_navigateur">Compatibilité du navigateur</h2>
+
+<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
+
+<p>{{Compat("webextensions.api.menus.create", 10)}}</p>
+
+
+
+<div class="note"><strong>Remerciements</strong>
+
+<p>Cette API est basée sur l'API <a href="https://developer.chrome.com/extensions/contextMenus"><code>chrome.contextMenus</code></a> de chromium. Cette documentation est dérivée de <a href="https://chromium.googlesource.com/chromium/src/+/master/chrome/common/extensions/api/context_menus.json"><code>context_menus.json</code></a> dans le code Chromium.</p>
+</div>
+
+<div class="hidden">
+<pre>// Copyright 2015 The Chromium Authors. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+</pre>
+</div>
diff --git a/files/fr/mozilla/add-ons/webextensions/api/menus/createproperties/index.html b/files/fr/mozilla/add-ons/webextensions/api/menus/createproperties/index.html
new file mode 100644
index 0000000000..072350b414
--- /dev/null
+++ b/files/fr/mozilla/add-ons/webextensions/api/menus/createproperties/index.html
@@ -0,0 +1,130 @@
+---
+title: createProperties
+slug: Mozilla/Add-ons/WebExtensions/API/menus/createProperties
+translation_of: Mozilla/Add-ons/WebExtensions/API/menus/createProperties
+---
+<p>{{AddonSidebar()}}</p>
+
+<p>Un <code>object</code> passé au méthodes {{WebExtAPIRef("menus.create()", "menus.create()")}} ou  {{WebExtAPIRef("menus.update()", "menus.update()")}}  pour décrire les propriétés de l'élément de menu nouveau ou mis à jour.</p>
+
+<dl class="reference-values">
+ <dt><code>checked</code> {{optional_inline}}</dt>
+ <dd><code>boolean</code>. The initial state of a checkbox or radio item: <code>true</code> for selected and <code>false</code> for unselected. Only one radio item can be selected at a time in a given group of radio items.</dd>
+ <dt><code>command</code> {{optional_inline}}</dt>
+ <dd>
+ <p><code>string</code>. String describing an action that should be taken when the user clicks the item. Possible values are:</p>
+
+ <ul>
+ <li><code>"_execute_browser_action"</code>: simulate a click on the extension's browser action, opening its popup if it has one</li>
+ <li><code>"_execute_page_action"</code>: simulate a click on the extension's page action, opening its popup if it has one</li>
+ <li><code>"_execute_sidebar_action"</code>: open the extension's sidebar</li>
+ </ul>
+
+ <p>Clicking the item will still trigger the {{WebExtAPIRef("menus.onClicked")}} event, but there's no guarantee of the ordering here: the command may be executed before <code>onClicked</code> fires.</p>
+ </dd>
+ <dt><code>contexts</code> {{optional_inline}}</dt>
+ <dd>
+ <p><code>array</code> of <code>{{WebExtAPIRef('menus.ContextType')}}</code>. Array of contexts in which this menu item will appear. If this option is omitted:</p>
+
+ <ul>
+ <li>if the item's parent has contexts set, then this item will inherit its parent's contexts</li>
+ <li>otherwise, the item is given a context array of ["page"].</li>
+ </ul>
+ </dd>
+ <dt><code>documentUrlPatterns</code> {{optional_inline}}</dt>
+ <dd><code>array</code> of <code><code>string</code></code>. Lets you restrict the item to apply only to documents whose URL matches one of the given <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Match_patterns">match patterns</a>. This applies to frames as well.</dd>
+ <dt><code>enabled</code> {{optional_inline}}</dt>
+ <dd><code>boolean</code>. Whether this menu item is enabled or disabled. Defaults to <code>true</code>.</dd>
+ <dt><code>icons</code> {{optional_inline}}</dt>
+ <dd>
+ <p><code>object</code>. One or more custom icons to display next to the item. Custom icons can only be set for items appearing in submenus. This property is an object with one property for each supplied icon: the property's name should include the icon's size in pixels, and path is relative to the icon from the extension's root directory. The browser tries to choose a 16x16 pixel icon for a normal display or a 32x32 pixel icon for a high-density display. To avoid any scaling, you can specify icons like this:</p>
+
+ <pre class="brush: json no-line-numbers language-json"><code class="language-json"><span class="key token">"icons":</span> <span class="punctuation token">{</span>
+ <span class="key token">"16":</span> <span class="string token">"path/to/geo-16.png"</span><span class="punctuation token">,</span>
+ <span class="key token">"32":</span> <span class="string token">"path/to/geo-32.png"</span>
+ <span class="punctuation token">}</span></code></pre>
+
+ <p>Alternatively, you can specify a single SVG icon, and it will be scaled appropriately:</p>
+
+ <pre class="brush: json no-line-numbers language-json"><code class="language-json"><span class="key token">"icons":</span> <span class="punctuation token">{</span>
+ <span class="key token">"16":</span> <span class="string token">"path/to/geo.svg"</span>
+ <span class="punctuation token">}</span></code></pre>
+
+ <div class="blockIndicator note">
+ <p><strong>Note</strong>: The top-level menu item uses the <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/icons">icons</a> specified in the manifest rather than what is specified with this key.</p>
+ </div>
+ </dd>
+ <dt><code>id</code> {{optional_inline}}</dt>
+ <dd><code>string</code>. The unique ID to assign to this item. Mandatory for event pages. Cannot be the same as another ID for this extension.</dd>
+ <dt><code>onclick</code> {{optional_inline}}</dt>
+ <dd><code>function</code>. A function that will be called when the menu item is clicked. Event pages cannot use this: instead, they should register a listener for {{WebExtAPIRef('menus.onClicked')}}.</dd>
+ <dt><code>parentId</code> {{optional_inline}}</dt>
+ <dd><code><code>integer</code></code> or <code><code>string</code></code>. The ID of a parent menu item; this makes the item a child of a previously added item. Note: If you have created more than one menu item, then the items will be placed in a submenu. The submenu's parent will be labeled with the name of the extension.</dd>
+ <dt><code>targetUrlPatterns</code> {{optional_inline}}</dt>
+ <dd><code>array</code> of <code><code>string</code></code>. Similar to <code>documentUrlPatterns</code>, but lets you filter based on the <code>href</code> of anchor tags and the <code>src</code> attribute of img/audio/video tags. This parameter supports any URL scheme, even those that are usually not allowed in a match pattern.</dd>
+ <dt><code>title</code> {{optional_inline}}</dt>
+ <dd>
+ <p><code>string</code>. The text to be displayed in the item. Mandatory unless <code>type</code> is "separator".</p>
+
+ <p>You can use "<code>%s</code>" in the string. If you do this in a menu item, and some text is selected in the page when the menu is shown, then the selected text will be interpolated into the title. For example, if <code>title</code> is "Translate '%s' to Pig Latin" and the user selects the word "cool", then activates the menu, then the menu item's title will be: "Translate 'cool' to Pig Latin".</p>
+
+ <p>If the title contains an ampersand "&amp;" then the next character will be used as an access key for the item, and the ampersand will not be displayed. Exceptions to this are:</p>
+
+ <ul>
+ <li>If the next character is also an ampersand: then a single ampersand will be displayed and no access key will be set. In effect, "&amp;&amp;" is used to display a single ampersand.</li>
+ <li>If the next characters are the interpolation directive "%s": then the ampersand will not be displayed and no access key will be set.</li>
+ <li>If the ampersand is the last character in the title: then the ampersand will not be displayed and no access key will be set.</li>
+ </ul>
+
+ <p>Only the first ampersand will be used to set an access key: subsequent ampersands will not be displayed but will not set keys. So "&amp;A and &amp;B" will be shown as "A and B" and set "A" as the access key.</p>
+ </dd>
+ <dt><code>type</code> {{optional_inline}}</dt>
+ <dd><code>{{WebExtAPIRef('menus.ItemType')}}</code>. The type of menu item: "normal", "checkbox", "radio", "separator". Defaults to "normal".</dd>
+ <dt><code>viewTypes</code> {{optional_inline}}</dt>
+ <dd><code>{{WebExtAPIRef('extension.ViewType')}}</code>. List of view types where the menu item will be shown. Defaults to any view, including those without a <code>viewType</code>.</dd>
+ <dt><code>visible</code> {{optional_inline}}</dt>
+ <dd><code>boolean</code>. Whether the item is shown in the menu. Defaults to <code>true</code>.</dd>
+</dl>
+
+<h2 id="Browser_compatibility">Browser compatibility</h2>
+
+<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
+
+<p>{{Compat("webextensions.api.menus.createProperties", 10)}}</p>
+
+<p>{{WebExtExamples}}</p>
+
+<div class="note"><strong>Acknowledgements</strong>
+
+<p>This API is based on Chromium's <a href="https://developer.chrome.com/extensions/contextMenus#type-OnClickData" style="outline: 1px dotted currentcolor; outline-offset: 0px;"><code>chrome.contextMenus</code></a> API. This documentation is derived from <a href="https://chromium.googlesource.com/chromium/src/+/master/chrome/common/extensions/api/context_menus.json"><code>context_menus.json</code></a> in the Chromium code.</p>
+</div>
+
+<div class="hidden">
+<pre>// Copyright 2015 The Chromium Authors. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</pre>
+</div>
diff --git a/files/fr/mozilla/add-ons/webextensions/api/menus/gettargetelement/index.html b/files/fr/mozilla/add-ons/webextensions/api/menus/gettargetelement/index.html
new file mode 100644
index 0000000000..d45f8004cf
--- /dev/null
+++ b/files/fr/mozilla/add-ons/webextensions/api/menus/gettargetelement/index.html
@@ -0,0 +1,74 @@
+---
+title: menus.getTargetElement()
+slug: Mozilla/Add-ons/WebExtensions/API/menus/getTargetElement
+tags:
+ - API
+ - Méthode
+ - Reference
+ - WebExtensions
+ - getTargetElement
+ - menus
+translation_of: Mozilla/Add-ons/WebExtensions/API/menus/getTargetElement
+---
+<div>{{AddonSidebar}}</div>
+
+<p class="summary">Renvoie l'élément pour un <code>targetElementId</code> donné</p>
+
+<p class="summary">Cette méthode est disponible pour tous les contextes de script d'extension (scripts de contenu, pages de fond et autres pages d'extension) et retourne l'élément pour un  <code>info.targetElementId</code> donnée, à condition que l'élément existe toujours dans le document où la méthode est appelée.</p>
+
+<p>La méthode ne fonctionne que dans le document qui inclut l'élément cliqué avec le bouton droit de la souris et la méthode <code>targetElementId</code> expire lorsque l'utilisateur ouvre un autre menu contextuel.</p>
+
+<div class="blockIndicator note">
+<p><strong>Note:</strong> <code>menus.getTargetElement</code> ne retourne l'élément demandé que s'il est appelé dans le même contexte que le document qui contient l'élément, par exemple en utilisant des scripts de contenu (comme dans l'exemple ci-dessous).</p>
+</div>
+
+<p><br>
+ Une extension nécessite la permission "menus" pour utiliser cette API</p>
+
+<h2 id="Syntaxe">Syntaxe</h2>
+
+<pre class="syntaxbox">let elem = browser.menus.getTargetElement(targetElementId);
+</pre>
+
+<h3 id="Paramètres">Paramètres</h3>
+
+<dl>
+ <dt><code>targetElementId</code></dt>
+ <dd>La propriété de l'objet <code>{{WebExtAPIRef("menus.OnClickData")}}</code> passé au gestionnaire <code>{{WebExtAPIRef("menus.onClicked")}}</code>ou à l'événement <code>{{WebExtAPIRef("menus.onShown")}}</code>.</dd>
+</dl>
+
+<h3 id="Valeur_retournée">Valeur retournée</h3>
+
+<p>L'élément auquel se réfère le paramètre <code>targetElementId</code>. Si le paramètre <code>targetElementId</code> n'est pas valide, La méthode retourne <code>null</code>.</p>
+
+<h2 id="Exemples">Exemples</h2>
+
+<p>L'exemple suivant utilise la méthode <code>getTargetElement</code> pour obtenir l'élément auquel se réfère la propriété <code>info.targetElementId</code> puis le supprime.</p>
+
+<pre class="brush: js">browser.menus.create({
+ title: "Remove element",
+ documentUrlPatterns: ["*://*/*"],
+ contexts: ["audio", "editable", "frame", "image", "link", "page", "password", "video"],
+ onclick(info, tab) {
+ browser.tabs.executeScript(tab.id, {
+ frameId: info.frameId,
+ code: `browser.menus.getTargetElement(${info.targetElementId}).remove();`,
+ });
+ },
+});
+</pre>
+
+<p>{{WebExtExamples}}</p>
+
+<h2 id="Compatibilité_du_navigateur">Compatibilité du navigateur</h2>
+
+
+
+<p>{{Compat("webextensions.api.menus.getTargetElement")}}</p>
+
+<h2 id="voir_aussi">voir aussi</h2>
+
+<ul>
+ <li>{{WebExtAPIRef("menus.create")}}</li>
+ <li>{{WebExtAPIRef("menus.OnClickData")}}</li>
+</ul>
diff --git a/files/fr/mozilla/add-ons/webextensions/api/menus/index.html b/files/fr/mozilla/add-ons/webextensions/api/menus/index.html
new file mode 100644
index 0000000000..ff1fd72e31
--- /dev/null
+++ b/files/fr/mozilla/add-ons/webextensions/api/menus/index.html
@@ -0,0 +1,203 @@
+---
+title: menus
+slug: Mozilla/Add-ons/WebExtensions/API/menus
+tags:
+ - API
+ - Add-ons
+ - Extensions
+ - Interface
+ - Non-standard
+ - Reference
+ - WebExtensions
+ - contextMenus
+ - menus
+translation_of: Mozilla/Add-ons/WebExtensions/API/menus
+---
+<div>{{AddonSidebar}}</div>
+
+<p>Ajoutez des éléments au système de menus du navigateur.</p>
+
+<p>Cette API est modélisée dans l'API <a href="https://developer.chrome.com/extensions/contextMenus">"contextMenus"</a> de Chrome, qui permet aux extensions Chrome d'ajouter des éléments au menu contextuel du navigateur. L'API <code>browser.menus</code> ajoute quelques fonctionnalités à l'API de Chrome.</p>
+
+<p>Avant Firefox 55, cette API s'appelait à l'origine <code>contextMenus</code>, et ce nom a été retenu comme alias. Vous pouvez donc utiliser <code>contextMenus</code> pour écrire du code qui fonctionne dans Firefox et dans d'autres navigateurs.</p>
+
+<p>Pour utiliser cette API, vous devez avoir la <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/permissions">permission</a> des  <code>menus.</code> vous pouvez également utiliser l'alias <code>contextMenus</code> à la place des <code>menus</code>, mais si vous le faites, vous devez accéder aux API sous le nom <code>browser.contextMenus</code> à la place.</p>
+
+<p>Excepté que <code><a href="https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/menus/getTargetElement">menus.getTargetElement()</a></code>, cette API ne peut pas être utilisée à partir de scripts de contenu.</p>
+
+<h2 id="Créer_des_éléments_de_menu">Créer des éléments de menu</h2>
+
+<p>Pour créer un élément de menu, appelez la méthode {{WebExtAPIRef("menus.create()")}}. Vous transmettez à cette méthode un objet contenant des options pour l'élément, y compris l'ID d'élément, le type d'élément et les contextes dans lesquels il doit être affiché.</p>
+
+<p>Écoutez les clics sur votre élément de menu en ajoutant un écouteur à l'événement {{WebExtAPIRef("menus.onClicked")}}. Cet écouteur recevra un objet  {{WebExtAPIRef("menus.OnClickData")}} contenant les détails de l'événement.</p>
+
+<p>Vous pouvez créer quatre types différents d'élément de menu, en fonction de la valeur de la propriété <code>type</code> que vous fournissez dans les options de <code>create()</code>:</p>
+
+<ul>
+ <li>"normal": un élément de menu qui affiche simplement une étiquette</li>
+ <li>"checkbox": un élément de menu qui représente un état binaire. Il affiche une coche à côté de l'étiquette. Cliquez sur l'élément pour activer la case. L'écouteur de clic recevra deux propriétés supplémentaires : "checked",indiquant si l'élément est vérifié maintenant, et "wasChecked", indiquant si l'élément a été vérifié avant l'événement click.</li>
+ <li>"radio": un élément de menu qui représente l'un des groupes de choix. Tout comme une case à cocher, cela affiche également une coche à côté de l'étiquette, et son écouteur de clic est passé "checked" et "wasChecked". Cependant, si vous créez plus d'un élément radio, les éléments fonctionnent comme un groupe d'éléments radio: un seul élément du groupe peut être vérifié, et cliquer sur un élément en fait l'élément sélectionné.</li>
+ <li>"separateur": une ligne séparant un groupe d'éléments.</li>
+</ul>
+
+<p>Si vous avez créé plus d'un élément de menu contextuel ou plus d'un élément de menu d'outils, les éléments seront placés dans un sous-menu. Le parent du sous-menu sera étiqueté avec le nom de l'extension. Par exemple, voici une extension appelée "Menu démo" qui ajoute deux éléments de menu contextuel:</p>
+
+<p><img alt="" src="https://mdn.mozillademos.org/files/15431/menus-1.png" style="display: block; height: 406px; margin-left: auto; margin-right: auto; width: 500px;"></p>
+
+<h2 id="Icônes">Icônes</h2>
+
+<p>Si vous avez spécifié des icônes pour votre extension à l'aide de la <a href="/fr/Add-ons/WebExtensions/manifest.json/icons">clé de manifest "icons"</a>, votre élément de menu affichera l'icône spécifiée à côté de son libellé. Le navigateur va essayer de choisir une icône de 16x16 pixels pour un affichage normal ou une icône de 32x32 pixels pour un affichage haute définition :</p>
+
+<p><img alt="" src="https://mdn.mozillademos.org/files/15433/menus-2.png" style="display: block; height: 409px; margin-left: auto; margin-right: auto; width: 500px;"></p>
+
+<p>Uniquement pour les éléments d'un sous-menu, vous pouvez spécifier des icônes personnalisées en passant l'option <code>icons</code> à {{WebExtAPIRef("menus.create()")}} :</p>
+
+<p><img alt="" src="https://mdn.mozillademos.org/files/15435/menus-3.png" style="display: block; height: 396px; margin-left: auto; margin-right: auto; width: 500px;"></p>
+
+<h2 id="Exemple">Exemple</h2>
+
+<p>Voici un menu contextuel contenant 4 éléments: un élément normal, deux éléments radio avec des séparateurs de chaque côté et une case à cocher. Les éléments radio sont dotés d'icônes personnalisées.</p>
+
+<p><img alt="" src="https://mdn.mozillademos.org/files/15437/menus-4.png" style="display: block; height: 790px; margin-left: auto; margin-right: auto; width: 500px;">Vous pouvez créer un sous-menu comme celui-ci en utilisant du code comme :</p>
+
+<pre class="brush: js">browser.menus.create({
+ id: "remove-me",
+ title: browser.i18n.getMessage("menuItemRemoveMe"),
+ contexts: ["all"]
+}, onCreated);
+
+browser.menus.create({
+ id: "separator-1",
+ type: "separator",
+ contexts: ["all"]
+}, onCreated);
+
+browser.menus.create({
+ id: "greenify",
+ type: "radio",
+ title: browser.i18n.getMessage("menuItemGreenify"),
+ contexts: ["all"],
+ checked: true,
+ icons: {
+ "16": "icons/paint-green-16.png",
+ "32": "icons/paint-green-32.png"
+ }
+}, onCreated);
+
+browser.menus.create({
+ id: "bluify",
+ type: "radio",
+ title: browser.i18n.getMessage("menuItemBluify"),
+ contexts: ["all"],
+ checked: false,
+ icons: {
+ "16": "icons/paint-blue-16.png",
+ "32": "icons/paint-blue-32.png"
+ }
+}, onCreated);
+
+browser.menus.create({
+ id: "separator-2",
+ type: "separator",
+ contexts: ["all"]
+}, onCreated);
+
+var checkedState = true;
+
+browser.menus.create({
+ id: "check-uncheck",
+ type: "checkbox",
+ title: browser.i18n.getMessage("menuItemUncheckMe"),
+ contexts: ["all"],
+ checked: checkedState
+}, onCreated);</pre>
+
+<h2 id="Types">Types</h2>
+
+<dl>
+ <dt>{{WebExtAPIRef("menus.ContextType")}}</dt>
+ <dd>Les différents contextes dans lesquels un menu peut apparaître.</dd>
+ <dt>{{WebExtAPIRef("menus.ItemType")}}</dt>
+ <dd>Le type d'élément de menu : "normal", "checkbox", "radio", "separator".</dd>
+ <dt>{{WebExtAPIRef("menus.OnClickData")}}</dt>
+ <dd>Informations envoyées lorsqu'un élément de menu est cliqué.</dd>
+</dl>
+
+<h2 id="Propriétés">Propriétés</h2>
+
+<dl>
+ <dt>{{WebExtAPIRef("menus.ACTION_MENU_TOP_LEVEL_LIMIT")}}</dt>
+ <dd>Le nombre maximal d'éléments d'extension de niveau supérieur pouvant être ajoutés à un élément de menu dont le type de contexte est "browser_action" ou "page_action".</dd>
+</dl>
+
+<h2 id="Functions">Functions</h2>
+
+<dl>
+ <dt>{{WebExtAPIRef("menus.create()")}}</dt>
+ <dd>Crée un nouvel élément de menu.</dd>
+ <dt>{{WebExtApiRef("menus.getTargetElement()")}}</dt>
+ <dd>Retourne l'élément pour un <code>info.targetElementId</code> donné</dd>
+ <dt>{{WebExtApiRef("menus.overrideContext()")}}</dt>
+ <dd>Masquer tous les éléments de menu par défaut de Firefox en faveur d'une interface utilisateur de menu contextuel personnalisé.</dd>
+ <dt>{{WebExtAPIRef("menus.refresh()")}}</dt>
+ <dd>Mettre à jour un menu actuellement affiché.</dd>
+ <dt>{{WebExtAPIRef("menus.remove()")}}</dt>
+ <dd>Supprime un élément de menu.</dd>
+ <dt>{{WebExtAPIRef("menus.removeAll()")}}</dt>
+ <dd>Supprime tous les éléments de menu ajoutés par cette extension.</dd>
+ <dt>{{WebExtAPIRef("menus.update()")}}</dt>
+ <dd>Met à jour un élément de menu précédemment créé.</dd>
+</dl>
+
+<h2 id="Evénements">Evénements</h2>
+
+<dl>
+ <dt>{{WebExtAPIRef("menus.onClicked")}}</dt>
+ <dd>Lancé lorsqu'un élément de menu est cliqué.</dd>
+ <dt>{{WebExtAPIRef("menus.onHidden")}}</dt>
+ <dd>Lancé lorsque le navigateur cache un menu.</dd>
+ <dt>{{WebExtAPIRef("menus.onShown")}}</dt>
+ <dd>Lancé lorsque le navigateur affiche un menu.</dd>
+</dl>
+
+<h2 id="Compatibilité_du_navigateur">Compatibilité du navigateur</h2>
+
+<p>{{ Compat("webextensions.api.menus", 1, "true") }}</p>
+
+<p>{{WebExtExamples("h2")}}</p>
+
+<div class="note"><strong>Remerciements</strong>
+
+<p>Cette API est basée sur l'API <a href="https://developer.chrome.com/extensions/contextMenus"><code>chrome.contextMenus</code></a> de chromium. Cette documentation est dérivée de <a href="https://chromium.googlesource.com/chromium/src/+/master/chrome/common/extensions/api/context_menus.json"><code>context_menus.json</code></a> dans le code Chromium.</p>
+</div>
+
+<div class="hidden">
+<pre>// Copyright 2015 The Chromium Authors. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+</pre>
+</div>
diff --git a/files/fr/mozilla/add-ons/webextensions/api/menus/itemtype/index.html b/files/fr/mozilla/add-ons/webextensions/api/menus/itemtype/index.html
new file mode 100644
index 0000000000..88a6c00e24
--- /dev/null
+++ b/files/fr/mozilla/add-ons/webextensions/api/menus/itemtype/index.html
@@ -0,0 +1,81 @@
+---
+title: menus.ItemType
+slug: Mozilla/Add-ons/WebExtensions/API/menus/ItemType
+tags:
+ - API
+ - Add-ons
+ - Extensions
+ - Non-standard
+ - Reference
+ - Type
+ - WebExtensions
+ - contextMenus
+ - itemtype
+translation_of: Mozilla/Add-ons/WebExtensions/API/menus/ItemType
+---
+<div>{{AddonSidebar()}}</div>
+
+<p>Le type d'élément de menu.</p>
+
+<h2 id="Type">Type</h2>
+
+<p>Les valeurs de ce type sont des chaînes. Les valeurs possibles sont:</p>
+
+<dl>
+ <dt>normal</dt>
+ <dd>Un élément de menu qui affiche simplement une étiquette.</dd>
+ <dt>checkbox</dt>
+ <dd>
+ <p>Un élément de menu qui représente un état binaire. Il affiche une coche à côté de l'étiquette. Cliquez sur l'élément pour activer la coche. L'écouteur   {{WebExtAPIRef("menus.onClicked")}} recevra deux propriétés supplémentaires : "checked", indiquant si l'élément est vérifié maintenant, et "wasChecked", indiquant si l'élément a été vérifié avant l'événement click.</p>
+ </dd>
+ <dt>radio</dt>
+ <dd>
+ <p>Un élément de menu qui représente l'un des groupes de choix. Tout comme une case à cocher, cela affiche également une coche à côté de l'étiquette, et son écouteur  {{WebExtAPIRef("menus.onClicked")}} est passé "checked" et "wasChecked". However, Cependant, si vous créez plus d'un élément radio, les éléments fonctionnent comme un groupe d'éléments radio items: un seul élément du groupe peut être vérifié, et cliquer sur un élément en fait l'élément sélectionné.</p>
+ </dd>
+ <dt>separator</dt>
+ <dd>Une ligne séparant un groupe d'éléments.</dd>
+</dl>
+
+<h2 id="Compatibilité_du_navigateur">Compatibilité du navigateur</h2>
+
+<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
+
+<p>{{Compat("webextensions.api.menus.ItemType", 10)}}</p>
+
+<p>{{WebExtExamples}}</p>
+
+<div class="note"><strong>Remerciements</strong>
+
+<p>Cette API est basée sur l'API <a href="https://developer.chrome.com/extensions/contextMenus"><code>chrome.contextMenus</code></a> de chromium. Cette documentation est dérivée de <a href="https://chromium.googlesource.com/chromium/src/+/master/chrome/common/extensions/api/context_menus.json"><code>context_menus.json</code></a> dans le code Chromium.</p>
+</div>
+
+<div class="hidden">
+<pre>// Copyright 2015 The Chromium Authors. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+</pre>
+</div>
diff --git a/files/fr/mozilla/add-ons/webextensions/api/menus/menus.overridecontext()/index.html b/files/fr/mozilla/add-ons/webextensions/api/menus/menus.overridecontext()/index.html
new file mode 100644
index 0000000000..8d8463f069
--- /dev/null
+++ b/files/fr/mozilla/add-ons/webextensions/api/menus/menus.overridecontext()/index.html
@@ -0,0 +1,62 @@
+---
+title: menus.overrideContext()
+slug: Mozilla/Add-ons/WebExtensions/API/menus/menus.overrideContext()
+tags:
+ - API
+ - Add-ons
+ - Extensions
+ - Méthode
+ - WebExtensions
+ - contextMenus
+translation_of: Mozilla/Add-ons/WebExtensions/API/menus/menus.overrideContext()
+---
+<div>{{AddonSidebar()}}</div>
+
+<p>Cette API permet aux extensions de masquer tous les éléments de menu par défaut de Firefox afin de fournir une interface utilisateur de menu contextuel personnalisée. Ce menu contextuel peut comprendre plusieurs éléments de menu de niveau supérieur de l'extension et éventuellement inclure des éléments de menu contextuel d'onglet ou de signet provenant d'autres extensions. Cela doit être appelé lors d'un gestionnaire d'événements DOM du menu <code>contextmenu</code>, et s'applique uniquement au menu qui s'ouvre après cet événement.</p>
+
+<p>Cette API ne peut être appelée que si l'addon dispose de la <a href="/fr/Add-ons/WebExtensions/manifest.json/permissions">permission</a> <code>"menus.overrideContext"</code>.</p>
+
+<h2 id="Syntaxe">Syntaxe</h2>
+
+<pre class="syntaxbox brush:js">browser.menus.overrideContext(
+ contextOptions // object
+)
+</pre>
+
+<h3 id="Paramètres">Paramètres</h3>
+
+<dl>
+ <dt><code>contextOptions</code></dt>
+ <dd><code>object</code>.Propriétés qui définissent le contexte du menu contextuel.</dd>
+ <dd>
+ <dl class="reference-values">
+ <dt><code>bookmarkId</code> {{optional_inline}}</dt>
+ <dd><code>string</code> Requis lorsque le contexte est un <code>signet</code>. Nécessite la <a href="/fr/Add-ons/WebExtensions/manifest.json/permissions">permission </a> <code>"bookmark"</code> .</dd>
+ <dt><code>context</code> {{optional_inline}}</dt>
+ <dd><code>string</code>. pour passer outre, pour autoriser les éléments de menu d'autres extensions dans le menu. Actuellement, seuls <code>"bookmark"</code> et <code>"tab"</code> sont supportés. <code>showDefaults</code> ne peut pas être utilisé avec cette option.</dd>
+ <dt><code>showDefaults</code> {{optional_inline}}</dt>
+ <dd><code>boolean</code>. S'il faut également inclure des éléments de menu par défaut dans le menu.</dd>
+ <dt><code>tabId</code> {{optional_inline}}</dt>
+ <dd><code>string</code> Requis lorsque le contexte est <code>"tab"</code>. Nécessite la <a href="/fr/Add-ons/WebExtensions/manifest.json/permissions">permission</a> <code>"tabs"</code> .</dd>
+ </dl>
+ </dd>
+</dl>
+
+<h2 id="Exemples">Exemples</h2>
+
+<p>Ouvrez le menu contextuel de l'onglet de votre interface utilisateur personnalisée, dans ce cas :</p>
+
+<pre class="brush:js">document.addEventListener('contextmenu', event =&gt; {
+ const foo = event.target.closest('.foo');
+ if (foo) {
+ // When the context menu is opened on an element with the foo class
+ // set the context to "opening a tab context menu".
+ browser.menus.overrideContext({
+ context: 'tab',
+ tabId: parseInt(foo.dataset.tabId)
+ });
+ }
+}, { capture: true });
+</pre>
+
+<p>Voir <a href="https://blog.mozilla.org/addons/2018/11/08/extensions-in-firefox-64/#cm">ce billet de blog</a> pour plus de détails.</p>
diff --git a/files/fr/mozilla/add-ons/webextensions/api/menus/onclickdata/index.html b/files/fr/mozilla/add-ons/webextensions/api/menus/onclickdata/index.html
new file mode 100644
index 0000000000..7393f73820
--- /dev/null
+++ b/files/fr/mozilla/add-ons/webextensions/api/menus/onclickdata/index.html
@@ -0,0 +1,105 @@
+---
+title: menus.OnClickData
+slug: Mozilla/Add-ons/WebExtensions/API/menus/OnClickData
+tags:
+ - API
+ - Add-ons
+ - Extensions
+ - Non-standard
+ - OnClickData
+ - Reference
+ - Type
+ - WebExtensions
+ - contextMenus
+translation_of: Mozilla/Add-ons/WebExtensions/API/menus/OnClickData
+---
+<div>{{AddonSidebar()}}</div>
+
+<p>Informations transmises à l'écouteur d'événement {{WebExtAPIRef("menus.onClicked")}} lorsque vous cliquez sur un élément de menu.</p>
+
+<h2 id="Type">Type</h2>
+
+<p>Les valeurs de ce type sont des objets. Ils contiennent les propriétés suivantes :</p>
+
+<dl class="reference-values">
+ <dt><code>bookmarkId</code> {{optional_inline}}</dt>
+ <dd><code>string</code>. L'ID du signet dans lequel le menu contextuel a été cliqué.***</dd>
+ <dt><code>button</code> {{optional_inline}}</dt>
+ <dd><code>integer</code>. Quel bouton de la souris a été enfoncé. Les valeurs sont les mêmes que pour  <a href="/fr/docs/Web/API/MouseEvent/button"><code>MouseEvent.button</code></a>.</dd>
+ <dt><code>checked</code> {{optional_inline}}</dt>
+ <dd><code>boolean</code>. Un <em>flag</em> indiquant si une case à cocher ou un élément radio a été vérifié après avoir été cliqué.</dd>
+ <dt><code>editable</code></dt>
+ <dd><code>boolean</code>. Un indicateur indiquant si l'élément est modifiable: par exemple, s'il s'agit d'un <a href="/fr/docs/Web/HTML/Element/textarea">textarea</a>.</dd>
+ <dt><code>frameId</code> {{optional_inline}}</dt>
+ <dd><code>integer</code>. L'ID de l'image dans laquelle l'élément a été cliqué. L'ID de trame peut être utilisé dans d'autres API acceptant des ID de trame, tels que {{WebExtAPIRef("tabs.sendMessage()")}}. Si l'élément a été cliqué dans le document de niveau supérieur,par exemple, dans <code>tools_menu</code> ou <code>tab</code> context), <code>frameId</code> n'est <code>pas défini</code>.</dd>
+ <dt><code>frameUrl</code> {{optional_inline}}</dt>
+ <dd><code>string</code>. L'URL du cadre de l'élément sur lequel le menu contextuel a été cliqué, s'il était dans un cadre</dd>
+ <dt><code>linkText</code> {{optional_inline}}</dt>
+ <dd><code>string</code>. Si l'élément est un lien, le texte du lien. Si le lien ne contient aucun texte, l'URL elle-même est donnée ici.</dd>
+ <dt><code>linkUrl </code>{{optional_inline}}</dt>
+ <dd><code>string</code>. Si l'élément est un lien, l'URL vers laquelle il pointe.</dd>
+ <dt><code>mediaType</code> {{optional_inline}}</dt>
+ <dd><code>string</code>. Une de "image", "video", ou "audio" si le menu contextuel a été activé sur l'un de ces types d'éléments.</dd>
+ <dt><code>menuItemId</code></dt>
+ <dd><code><code>integer</code></code> ou <code><code>string</code></code>. ID de l'élément de menu sur lequel vous avez cliqué.</dd>
+ <dt><code>modifiers</code></dt>
+ <dd><code><code>Array</code></code> de<code><code>string</code></code>. Un tableau contenant toutes les touches de modification qui ont été pressées lorsque l'élément a été cliqué. Les valeurs possibles sont : "Alt", "Command", "Ctrl", "MacCtrl", et "Shift". Sur un Mac, si l'utilisateur a la touche Ctrl enfoncée, alors  "Ctrl" et "MacCtrl" sont inclus.</dd>
+ <dt><code>pageUrl</code> {{optional_inline}}</dt>
+ <dd><code>string</code>. L'URL de la page sur laquelle l'élément de menu a été cliqué. Cette propriété n'est pas présente si le clic s'est produit dans un contexte où il n'y a pas de page en cours, comme dans le cas d'une action du navigateur.</dd>
+ <dt><code>parentMenuItemId</code> {{optional_inline}}</dt>
+ <dd><code><code>integer</code></code> ou <code><code>string</code></code>. L'ID parent, le cas échéant, pour l'élément cliqué.</dd>
+ <dt><code>selectionText </code>{{optional_inline}}</dt>
+ <dd><code>string</code>. Si du texte a été sélectionné dans la page, il contient le texte sélectionné.</dd>
+ <dt><code>srcUrl</code> {{optional_inline}}</dt>
+ <dd><code>string</code>. Sera présent pour les éléments avec une URL "src".</dd>
+ <dt><code>targetElementId</code>{{optional_inline}}</dt>
+ <dd><code>integer</code>. Un identificateur de l'élément, le cas échéant, sur lequel le menu contextuel a été créé. Utilisez {{WebExtAPIRef("menus.getTargetElement()")}} dans le script de contenu pour localiser l'élément. Notez que ce n'est pas l'attribut <a href="/fr/docs/Web/HTML/Attributs_universels/id">id</a> de l'élément page.</dd>
+ <dt><code>viewType</code> {{optional_inline}}</dt>
+ <dd>{{WebExtAPIRef("extension.ViewType", "ViewType")}}. Le type de vue de l'extension.</dd>
+ <dt><code>wasChecked</code> {{optional_inline}}</dt>
+ <dd><code>boolean</code>. Un indicateur indiquant si une case à cocher ou un élément radio a été vérifié avant d'avoir cliqué.</dd>
+</dl>
+
+<h2 id="Compatibilité_du_navigateur">Compatibilité du navigateur</h2>
+
+<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
+
+<p>{{Compat("webextensions.api.menus.OnClickData", 10)}}</p>
+
+<p>{{WebExtExamples}}</p>
+
+<div class="note"><strong>Remerciements</strong>
+
+<p>Cette API est basée sur l'API <a href="https://developer.chrome.com/extensions/contextMenus"><code>chrome.contextMenus</code></a> de chromium. Cette documentation est dérivée de <a href="https://chromium.googlesource.com/chromium/src/+/master/chrome/common/extensions/api/context_menus.json"><code>context_menus.json</code></a> dans le code Chromium.</p>
+</div>
+
+<div class="hidden">
+<pre>// Copyright 2015 The Chromium Authors. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+</pre>
+</div>
diff --git a/files/fr/mozilla/add-ons/webextensions/api/menus/onclicked/index.html b/files/fr/mozilla/add-ons/webextensions/api/menus/onclicked/index.html
new file mode 100644
index 0000000000..cea1c7c4df
--- /dev/null
+++ b/files/fr/mozilla/add-ons/webextensions/api/menus/onclicked/index.html
@@ -0,0 +1,118 @@
+---
+title: menus.onClicked
+slug: Mozilla/Add-ons/WebExtensions/API/menus/onClicked
+tags:
+ - API
+ - Add-ons
+ - Event
+ - Extensions
+ - Non-standard
+ - Reference
+ - WebExtensions
+ - contextMenus
+ - onClicked
+translation_of: Mozilla/Add-ons/WebExtensions/API/menus/onClicked
+---
+<div>{{AddonSidebar()}}</div>
+
+<p>Lancé lorsqu'un élément de menu est cliqué.</p>
+
+<p>Pour la compatibilité avec les autres navigateurs, Firefox rend cet événement disponible via l'espace de noms <code>contextMenus</code> ainsi que l'espace de noms des <code>menus</code>.</p>
+
+<h2 id="Syntaxe">Syntaxe</h2>
+
+<pre class="syntaxbox brush:js">browser.menus.onClicked.addListener(listener)
+browser.menus.onClicked.removeListener(listener)
+browser.menus.onClicked.hasListener(listener)
+</pre>
+
+<p>Les événements ont trois fonctions :</p>
+
+<dl>
+ <dt><code>addListener(callback)</code></dt>
+ <dd>Ajoute un écouteur à cet événement.</dd>
+ <dt><code>removeListener(listener)</code></dt>
+ <dd>Arrêtez d'écouter cet événement. L'argument <code>listener</code> est l'écouteur à supprimer.</dd>
+ <dt><code>hasListener(listener)</code></dt>
+ <dd>Vérifiez si <code>listener</code> est enregistré pour cet événement. Renvoie <code>true</code> s'il écoute, sinon <code>false</code>.</dd>
+</dl>
+
+<h2 id="Syntaxe_addListener">Syntaxe addListener</h2>
+
+<h3 id="Paramètres">Paramètres</h3>
+
+<dl>
+ <dt><code>callback</code></dt>
+ <dd>
+ <p>Fonction qui sera appelée lorsque cet événement se produit. La fonction recevra les arguments suivants :</p>
+
+ <dl class="reference-values">
+ <dt><code>info</code></dt>
+ <dd>{{WebExtAPIRef('menus.OnClickData')}}. Informations sur l'élément cliqué et le contexte dans lequel le clic s'est produit.</dd>
+ </dl>
+
+ <dl class="reference-values">
+ <dt><code>tab</code></dt>
+ <dd>{{WebExtAPIRef('tabs.Tab')}}. Les détails de l'onglet où le clic a eu lieu. Si le clic n'a pas eu lieu dans ou sur un onglet, ce paramètre sera manquant.</dd>
+ </dl>
+ </dd>
+</dl>
+
+<h2 id="Compatibilté_du_navigateur">Compatibilté du navigateur</h2>
+
+<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
+
+<p>{{Compat("webextensions.api.menus.onClicked", 10)}}</p>
+
+<h2 id="Exemples">Exemples</h2>
+
+<p>Cet exemple écoute les clics sur un élément de menu, puis enregistre l'ID de l'élément et l'ID de l'onglet :</p>
+
+<pre class="brush: js">browser.menus.create({
+ id: "click-me",
+ title: "Click me!",
+ contexts: ["all"]
+});
+
+browser.menus.onClicked.addListener((info, tab) =&gt; {
+ console.log("Item " + info.menuItemId + " clicked " +
+ "in tab " + tab.id);
+});</pre>
+
+<p>{{WebExtExamples}}</p>
+
+<div class="note"><strong>Remerciements</strong>
+
+<p>Cette API est basée sur l'API <a href="https://developer.chrome.com/extensions/contextMenus"><code>chrome.contextMenus</code></a> de chromium. Cette documentation est dérivée de <a href="https://chromium.googlesource.com/chromium/src/+/master/chrome/common/extensions/api/context_menus.json"><code>context_menus.json</code></a> dans le code Chromium.</p>
+</div>
+
+<div class="hidden">
+<pre>// Copyright 2015 The Chromium Authors. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+</pre>
+</div>
diff --git a/files/fr/mozilla/add-ons/webextensions/api/menus/onhidden/index.html b/files/fr/mozilla/add-ons/webextensions/api/menus/onhidden/index.html
new file mode 100644
index 0000000000..bfa8de8fa9
--- /dev/null
+++ b/files/fr/mozilla/add-ons/webextensions/api/menus/onhidden/index.html
@@ -0,0 +1,70 @@
+---
+title: menus.onHidden
+slug: Mozilla/Add-ons/WebExtensions/API/menus/onHidden
+tags:
+ - API
+ - Add-ons
+ - Event
+ - Extensions
+ - Reference
+ - WebExtensions
+ - menus
+ - onHidden
+translation_of: Mozilla/Add-ons/WebExtensions/API/menus/onHidden
+---
+<div>{{AddonSidebar()}}</div>
+
+<p>Lancé lorsque le navigateur cesse d'afficher un menu: par exemple, parce que l'utilisateur a cliqué à l'extérieur ou sélectionné un élément.</p>
+
+<p>Elle est seulement déclenchée pour les menus qui peuvent être manipulés en utilisant l'API {{WebExtAPIRef("menus")}} elle-même: ceci inclut le menu contextuel, le menu des outils du navigateur et le menu des signets.</p>
+
+<p>Ceci est plus susceptible d'être utilisé en combinaison avec {{WebExtAPIRef("menus.onShown")}} et {{WebExtAPIRef("menus.refresh()")}} API: une extension peut mettre à jour le menu quand il est affiché , puis annuler les modifications quand il est caché.</p>
+
+<p>Firefox rend cet événement disponible via l'espace de noms <code>contextMenus</code> ainsi que l'espace de nom des <code>menus</code>.</p>
+
+<h2 id="Syntaxe">Syntaxe</h2>
+
+<pre class="syntaxbox brush:js">browser.menus.onHidden.addListener(listener)
+browser.menus.onHidden.removeListener(listener)
+browser.menus.onHidden.hasListener(listener)
+</pre>
+
+<p>Les événements ont trois fonctions :</p>
+
+<dl>
+ <dt><code>addListener(listener)</code></dt>
+ <dd>Ajoute un écouteur à cet événement.</dd>
+ <dt><code>removeListener(listener)</code></dt>
+ <dd>Arrêtez d'écouter cet événement. L'argument <code>listener</code>  est l'écouteur à supprimer.</dd>
+ <dt><code>hasListener(listener)</code></dt>
+ <dd>Vérifiez si <code>listener</code> est enregistré pour cet événement. Renvoie <code>true</code> s'il écoute, <code>false</code> sinon.</dd>
+</dl>
+
+<h2 id="Syntaxe_addListener">Syntaxe addListener</h2>
+
+<h3 id="Paramètres">Paramètres</h3>
+
+<dl>
+ <dt><code>callback</code></dt>
+ <dd>
+ <p>Fonction qui sera appelée lorsque cet événement se produit. La fonction sera transmise sans paramètre.</p>
+ </dd>
+</dl>
+
+<h2 id="Compatibilité_du_navigateur">Compatibilité du navigateur</h2>
+
+<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
+
+<p>{{Compat("webextensions.api.menus.onHidden", 10)}}</p>
+
+<h2 id="Exemples">Exemples</h2>
+
+<p>Cet exemple enregistre simplement un message chaque fois qu'un menu est masqué :</p>
+
+<pre class="brush: js">function hidden() {
+ console.log("Menu was hidden");
+}
+
+browser.menus.onHidden.addListener(hidden);</pre>
+
+<p>{{WebExtExamples}}</p>
diff --git a/files/fr/mozilla/add-ons/webextensions/api/menus/onshown/index.html b/files/fr/mozilla/add-ons/webextensions/api/menus/onshown/index.html
new file mode 100644
index 0000000000..5df0ebab15
--- /dev/null
+++ b/files/fr/mozilla/add-ons/webextensions/api/menus/onshown/index.html
@@ -0,0 +1,153 @@
+---
+title: menus.onShown
+slug: Mozilla/Add-ons/WebExtensions/API/menus/onShown
+tags:
+ - API
+ - Add-ons
+ - Event
+ - Extensiosn
+ - Reference
+ - WebExtensions
+ - menus
+ - onShown
+translation_of: Mozilla/Add-ons/WebExtensions/API/menus/onShown
+---
+<div>{{AddonSidebar()}}</div>
+
+<p>Lancé lorsque le navigateur a montré un menu.</p>
+
+<p>Une extension peut utiliser cet événement pour mettre à jour ses éléments de menu en utilisant des informations qui ne sont disponibles qu'une fois le menu affiché. Généralement, une extension trouvera la mise à jour dans son gestionnaire <code>onShown</code> puis appellera {{WebExtAPIRef("menus.refresh()")}} pour mettre à jour le menu lui-même.</p>
+
+<p>Le gestionnaire peut ajouter, supprimer ou mettre à jour des éléments de menu.</p>
+
+<p>Par exemple, l'extension d'exemple <a href="https://github.com/mdn/webextensions-examples/tree/master/menu-labelled-open">menu-labelled-open</a>  ajoute un élément de menu qui s'affiche lorsque l'utilisateur clique sur un lien et qui, lorsqu'il est cliqué, ouvre simplement le lien. Il utilise <code>onShown</code> et <code>refresh()</code> pour annoter l'élément de menu avec le nom d'hôte du lien, afin que l'utilisateur puisse facilement voir où il ira avant de cliquer.</p>
+
+<p>Notez qu'une extension ne devrait pas prendre trop de temps avant d'appeler <code>refresh()</code>, sinon la mise à jour sera visible par l'utilisateur.</p>
+
+<p>Le gestionnaire reçoit des informations sur le menu et son contenu, ainsi que des informations sur la page (telles que le lien et / ou le texte de sélection). Pour accéder aux informations de la page, votre extension doit avoir la <a href="/fr/Add-ons/WebExtensions/manifest.json/permissions#Host_permissions">permission de l'hôte</a>.</p>
+
+<p>Si le gestionnaire <code>onShown</code> appelle des API asynchrones, il est possible que le menu ait été fermé à nouveau avant que le gestionnaire ne reprenne l'exécution. Pour cette raison, si un gestionnaire appelle des API asynchrones, il doit vérifier que le menu est toujours affiché avant la mise à jour du menu. Par exemple :</p>
+
+<pre class="brush: js">var lastMenuInstanceId = 0;
+var nextMenuInstanceId = 1;
+
+browser.menus.onShown.addListener(async function(info, tab) {
+ var menuInstanceId = nextMenuInstanceId++;
+ lastMenuInstanceId = menuInstanceId;
+
+ // Call an async function
+ await .... ;
+
+ // After completing the async operation, check whether the menu is still shown.
+ if (menuInstanceId !== lastMenuInstanceId) {
+ return; // Menu was closed and shown again.
+ }
+ // Now use menus.create/update + menus.refresh.
+});
+
+browser.menus.onHidden.addListener(function() {
+ lastMenuInstanceId = 0;
+});</pre>
+
+<p>Notez qu'il est possible d'appeler les fonctions API des menus de manière synchrone, et dans ce cas vous n'avez pas à effectuer cette vérification :</p>
+
+<pre class="brush: js">browser.menus.onShown.addListener(async function(info, tab) {
+ browser.menus.update(menuId, ...);
+ // Note: Not waiting for returned promise.
+ browser.menus.refresh();
+});</pre>
+
+<p>Toutefois, si vous appelez ces API de manière asynchrone, vous devez effectuer la vérification suivante :</p>
+
+<pre class="brush: js">browser.menus.onShown.addListener(async function(info, tab) {
+ var menuInstanceId = nextMenuInstanceId++;
+ lastMenuInstanceId = menuInstanceId;
+
+ await browser.menus.update(menuId, ...);
+ // must now perform the check
+ if (menuInstanceId !== lastMenuInstanceId) {
+ return;
+ }
+ browser.menus.refresh();
+});</pre>
+
+<p>Firefox rend cet événement disponible via l'espace de noms <code>contextMenus</code> ainsi que l'espace de nom des <code>menus</code>.</p>
+
+<h2 id="Syntaxe">Syntaxe</h2>
+
+<pre class="syntaxbox brush:js">browser.menus.onShown.addListener(listener)
+browser.menus.onShown.removeListener(listener)
+browser.menus.onShown.hasListener(listener)
+</pre>
+
+<p>Les événements ont trois fonctions :</p>
+
+<dl>
+ <dt><code>addListener(listener)</code></dt>
+ <dd>Ajoute un écouteur à cet événement</dd>
+ <dt><code>removeListener(listener)</code></dt>
+ <dd>Arrêtez d'écouter cet événement. L'argument <code>listener</code> est l'écouteur à supprimer.</dd>
+ <dt><code>hasListener(listener)</code></dt>
+ <dd>Vérifiez si le <code>listener</code> est enregistré pour cet événement. Renvoie <code>true</code> s'il écoute, sinon <code>false</code>.</dd>
+</dl>
+
+<h2 id="Syntaxe_addListener">Syntaxe addListener</h2>
+
+<h3 id="Paramètres">Paramètres</h3>
+
+<dl>
+ <dt><code>callback</code></dt>
+ <dd>
+ <p>Fonction qui sera appelée lorsque cet événement se produit. La fonction recevra les arguments suivants :</p>
+
+ <dl class="reference-values">
+ <dt><code>info</code></dt>
+ <dd>
+ <p><code>Object</code>. Ceci est juste comme l'objet {{WebExtAPIRef('menus.OnClickData')}}, sauf qu'il contient deux propriétés supplémentaires:</p>
+
+ <ul>
+ <li><code>contexts</code>: un tableau de tous les {{WebExtAPIRef("menus.ContextType", "contexts")}} applicables à ce menu.</li>
+ <li><code>menuIds</code>: un tableau d'ID de tous les éléments de menu appartenant à cette extension qui sont affichés dans ce menu.</li>
+ </ul>
+
+ <p>En comparaison avec <code>menus.OnClickData</code>, l'objet <code>info</code> omet également les propriétés <code>menuItemId</code> et <code>modifiers</code>, car bien sûr, celles-ci ne sont pas disponibles tant qu'un élément de menu n'a pas été sélectionné.</p>
+
+ <p>Les propriétés <code>contexts</code>, <code>menuIds</code>, <code>frameId</code>, et <code>editable</code> modifiables sont toujours fournis. Toutes les autres propriétés dans <code>info</code> sont uniquement fournies si l'extension a la <a href="/fr/Add-ons/WebExtensions/manifest.json/permissions#Host_permissions">permission d'hôte</a> pour la page.</p>
+ </dd>
+ </dl>
+
+ <dl class="reference-values">
+ <dt><code>tab</code></dt>
+ <dd>{{WebExtAPIRef('tabs.Tab')}}. Les détails de l'onglet où le clic a eu lieu. Si le clic n'a pas eu lieu dans ou sur un onglet, ce paramètre sera manquant.</dd>
+ </dl>
+ </dd>
+</dl>
+
+<h2 id="Compatibilité_du_navigateur">Compatibilité du navigateur</h2>
+
+<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
+
+<p>{{Compat("webextensions.api.menus.onShown", 10)}}</p>
+
+<h2 id="Exemples">Exemples</h2>
+
+<p>Cet exemple permet d'afficher le menu contextuel sur un lien, puis met à jour l'élément de menu <code>openLabelledId</code> avec le nom d'hôte du lien :</p>
+
+<pre class="brush: js">function updateMenuItem(linkHostname) {
+ browser.menus.update(openLabelledId, {
+ title: `Open (${linkHostname})`
+ });
+ browser.menus.refresh();
+}
+
+browser.menus.onShown.addListener(info =&gt; {
+ if (!info.linkUrl) {
+ return;
+ }
+ let linkElement = document.createElement("a");
+ linkElement.href = info.linkUrl;
+ updateMenuItem(linkElement.hostname);
+});
+</pre>
+
+<p>{{WebExtExamples}}</p>
diff --git a/files/fr/mozilla/add-ons/webextensions/api/menus/overridecontext/index.html b/files/fr/mozilla/add-ons/webextensions/api/menus/overridecontext/index.html
new file mode 100644
index 0000000000..6869036f24
--- /dev/null
+++ b/files/fr/mozilla/add-ons/webextensions/api/menus/overridecontext/index.html
@@ -0,0 +1,46 @@
+---
+title: overrideContext()
+slug: Mozilla/Add-ons/WebExtensions/API/menus/overrideContext
+tags:
+ - API
+ - Add-ons
+ - Create
+ - Extensions
+ - Method
+ - WebExtensions
+ - contextMenus
+translation_of: Mozilla/Add-ons/WebExtensions/API/menus/overrideContext
+---
+<p>{{AddonSidebar}}</p>
+
+<p>Masquer tous les éléments de menu par défaut de Firefox en faveur d'un menu contextuel personnalisé.</p>
+
+<p>La méthode overrideContext permet d'afficher les éléments de menu correspondants de cette extension à la place du menu par défaut. Cette méthode doit être appelée à partir d'un gestionnaire d'événements DOM 'contextmenu', et ne s'applique qu'au menu qui s'ouvre après cet événement.</p>
+
+<p>Pour appeler cette méthode, votre extension doit avoir la permission <code>menus.overrideContext</code>.</p>
+
+<h2 id="Syntaxe">Syntaxe</h2>
+
+<pre class="syntaxbox brush:js">browser.menus.overrideContext(
+ contextOptions // object
+)</pre>
+
+<h3 id="Paramètres">Paramètres</h3>
+
+<dl>
+ <dt><code>contextOptions</code></dt>
+ <dd><code>object</code>. Options sur la façon dont les menus contextuels seront remplacés.</dd>
+ <dd>
+ <dl>
+ <dt><code>showDefaults</code> {{optional_inline}}</dt>
+ <dd><code>boolean</code>. S'il faut également inclure les éléments de menu par défaut dans le menu.</dd>
+ <dt><code>context </code>{{optional_inline}}</dt>
+ <dd><code>string</code>. Le ContextType à surcharger, pour autoriser les éléments de menu d'autres extensions dans le menu. Actuellement, seuls <code>'bookmark'</code> et <code>'tab'</code> sont supportés. <code>showDefaults</code> ne peut pas être utilisé avec cette option.</dd>
+ <dt><code>bookmarkId </code>{{optional_inline}}</dt>
+ <dd><code>string</code>. Requis lorsque le contexte est  <code>'bookmark'</code>. Nécessite la permission  'bookmark'.</dd>
+ <dt><code>tabId </code>{{optional_inline}}</dt>
+ <dd><code>integer</code>. Requis lorsque le contexte est <code>'tab'</code>. Nécessite la permission 'tabs'.</dd>
+ <dt></dt>
+ </dl>
+ </dd>
+</dl>
diff --git a/files/fr/mozilla/add-ons/webextensions/api/menus/refresh/index.html b/files/fr/mozilla/add-ons/webextensions/api/menus/refresh/index.html
new file mode 100644
index 0000000000..f2914a6c0f
--- /dev/null
+++ b/files/fr/mozilla/add-ons/webextensions/api/menus/refresh/index.html
@@ -0,0 +1,66 @@
+---
+title: menus.refresh()
+slug: Mozilla/Add-ons/WebExtensions/API/menus/refresh
+tags:
+ - API
+ - Add-ons
+ - Extensions
+ - Method
+ - Reference
+ - WebExtensions
+ - menus
+ - refresh
+translation_of: Mozilla/Add-ons/WebExtensions/API/menus/refresh
+---
+<div>{{AddonSidebar()}}</div>
+
+<p>Actualise un menu affiché.</p>
+
+<p>Met à jour les éléments de menu de l'extension dans le menu affiché par le navigateur, y compris les modifications effectuées depuis l'affichage du menu. N'a aucun effet si le menu n'est pas affiché. La reconstruction d'un menu affiché est une opération coûteuse. N'utilisez cette méthode que lorsque cela est nécessaire.</p>
+
+<p>Cela est généralement appelé depuis l'intérieur d'un gestionnaire d'événements {{WebExtAPIRef("menus.onShown")}} après que le gestionnaire a effectué des mises à jour dans le menu.</p>
+
+<p>Firefox rend cette fonction disponible via l'espace de noms <code>contextMenus</code> ainsi que l'espace de noms des <code>menus</code>.</p>
+
+<p>C'est une fonction asynchrone qui renvoie une <code><a href="/fr/docs/Web/JavaScript/Reference/Objets_globaux/Promise">Promise</a></code>.</p>
+
+<h2 id="Syntaxe">Syntaxe</h2>
+
+<pre class="syntaxbox brush:js">browser.menus.refresh()
+</pre>
+
+<h3 id="Paramètres">Paramètres</h3>
+
+<p>Aucun.</p>
+
+<h3 id="Valeur_retournée">Valeur retournée</h3>
+
+<p>Une <code><a href="/fr/docs/Web/JavaScript/Reference/Objets_globaux/Promise">Promise</a></code> qui se réalise sans arguments.</p>
+
+<h2 id="Compatibilité_du_navigateur">Compatibilité du navigateur</h2>
+
+<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
+
+<p>{{Compat("webextensions.api.menus.refresh", 10)}}</p>
+
+<h2 id="Exemples">Exemples</h2>
+
+<p>Cet exemple permet d'afficher le menu contextuel sur un lien, puis met à jour l'élément de menu <code>openLabelledId</code> menu item avec le nom d'hôte du lien :</p>
+
+<pre class="brush: js line-numbers language-js"><code class="language-js"><span class="keyword token">function</span> <span class="function token">updateMenuItem</span><span class="punctuation token">(</span>linkHostname<span class="punctuation token">)</span> <span class="punctuation token">{</span>
+ browser<span class="punctuation token">.</span>menus<span class="punctuation token">.</span><span class="function token">update</span><span class="punctuation token">(</span>openLabelledId<span class="punctuation token">,</span> <span class="punctuation token">{</span>
+ title<span class="punctuation token">:</span> <span class="template-string token"><span class="string token">`Open (</span><span class="interpolation token"><span class="interpolation-punctuation punctuation token">${</span>linkHostname<span class="interpolation-punctuation punctuation token">}</span></span><span class="string token">)`</span></span>
+ <span class="punctuation token">}</span><span class="punctuation token">)</span><span class="punctuation token">;</span>
+ browser<span class="punctuation token">.</span>menus<span class="punctuation token">.</span><span class="function token">refresh</span><span class="punctuation token">(</span><span class="punctuation token">)</span><span class="punctuation token">;</span>
+<span class="punctuation token">}</span>
+
+browser<span class="punctuation token">.</span>menus<span class="punctuation token">.</span>onShown<span class="punctuation token">.</span><span class="function token">addListener</span><span class="punctuation token">(</span>info <span class="operator token">=</span><span class="operator token">&gt;</span> <span class="punctuation token">{</span>
+ <span class="keyword token">if</span> <span class="punctuation token">(</span><span class="operator token">!</span>info<span class="punctuation token">.</span>linkUrl<span class="punctuation token">)</span> <span class="punctuation token">{</span>
+ <span class="keyword token">return</span><span class="punctuation token">;</span>
+ <span class="punctuation token">}</span>
+ <span class="keyword token">let</span> linkElement <span class="operator token">=</span> document<span class="punctuation token">.</span><span class="function token">createElement</span><span class="punctuation token">(</span><span class="string token">"a"</span><span class="punctuation token">)</span><span class="punctuation token">;</span>
+ linkElement<span class="punctuation token">.</span>href <span class="operator token">=</span> info<span class="punctuation token">.</span>linkUrl<span class="punctuation token">;</span>
+ <span class="function token">updateMenuItem</span><span class="punctuation token">(</span>linkElement<span class="punctuation token">.</span>hostname<span class="punctuation token">)</span><span class="punctuation token">;</span>
+<span class="punctuation token">}</span><span class="punctuation token">)</span><span class="punctuation token">;</span></code></pre>
+
+<p>{{WebExtExamples}}</p>
diff --git a/files/fr/mozilla/add-ons/webextensions/api/menus/remove/index.html b/files/fr/mozilla/add-ons/webextensions/api/menus/remove/index.html
new file mode 100644
index 0000000000..74db66b876
--- /dev/null
+++ b/files/fr/mozilla/add-ons/webextensions/api/menus/remove/index.html
@@ -0,0 +1,113 @@
+---
+title: menus.remove()
+slug: Mozilla/Add-ons/WebExtensions/API/menus/remove
+tags:
+ - API
+ - Add-ons
+ - Extensions
+ - Method
+ - Non-standard
+ - Reference
+ - WebExtensions
+ - contextMenus
+ - remove
+translation_of: Mozilla/Add-ons/WebExtensions/API/menus/remove
+---
+<div>{{AddonSidebar()}}</div>
+
+<p>Supprime un élément de menu.</p>
+
+<p>Pour la compatibilité avec d'autres navigateurs, Firefox rend cette méthode disponible via l'espace de noms <code>contextMenus</code> ainsi que l'espace de noms des <code>menus</code>.</p>
+
+<p>C'est une fonction asynchrone qui renvoie une <code><a href="/fr/docs/Web/JavaScript/Reference/Objets_globaux/Promise">Promise</a></code>.</p>
+
+<h2 id="Syntaxe">Syntaxe</h2>
+
+<pre class="syntaxbox brush:js">var removing = browser.menus.remove(
+ menuItemId // integer or string
+)
+</pre>
+
+<h3 id="Parameters">Parameters</h3>
+
+<dl>
+ <dt><code>menuItemId</code></dt>
+ <dd><code><code>integer</code></code> or <code><code>string</code></code>. The ID of the menu item to remove.</dd>
+</dl>
+
+<h3 id="Valeur_retournée">Valeur retournée</h3>
+
+<p>Une <code><a href="/fr/docs/Web/JavaScript/Reference/Objets_globaux/Promise">Promise</a></code> qui sera définit sans argument si la suppression a réussi, ou rejetée avec un message d'erreur si la suppression a échoué (par exemple, parce que l'élément n'a pas pu être trouvé).</p>
+
+<h2 id="Exemples">Exemples</h2>
+
+<p>Cette extension ajoute un élément de menu intitulé "Remove me!". Si vous cliquez sur l'élément, l'extension le supprime.</p>
+
+<pre class="brush: js">function onRemoved() {
+ console.log("item removed successfully");
+}
+
+function onError() {
+ console.log("error removing item:" + browser.runtime.lastError);
+}
+
+browser.menus.create({
+ id: "remove-me",
+ title: "Remove me!",
+ contexts: ["all"]
+});
+
+browser.menus.onClicked.addListener(function(info, tab) {
+ if (info.menuItemId == "remove-me") {
+ var removing = browser.menus.remove(info.menuItemId);
+ removing.then(onRemoved, onError);
+ }
+});</pre>
+
+<p>{{WebExtExamples}}</p>
+
+
+
+<h2 id="Compatibilité_du_navigateur">Compatibilité du navigateur</h2>
+
+<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
+
+<p>{{Compat("webextensions.api.menus.remove", 10)}}</p>
+
+
+
+<div class="note"><strong>Remerciements</strong>
+
+<p>Cette API est basée sur l'API <a href="https://developer.chrome.com/extensions/contextMenus"><code>chrome.contextMenus</code></a> de chromium. Cette documentation est dérivée de <a href="https://chromium.googlesource.com/chromium/src/+/master/chrome/common/extensions/api/context_menus.json"><code>context_menus.json</code></a> dans le code Chromium.</p>
+</div>
+
+<div class="hidden">
+<pre>// Copyright 2015 The Chromium Authors. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+</pre>
+</div>
diff --git a/files/fr/mozilla/add-ons/webextensions/api/menus/removeall/index.html b/files/fr/mozilla/add-ons/webextensions/api/menus/removeall/index.html
new file mode 100644
index 0000000000..bd485607ac
--- /dev/null
+++ b/files/fr/mozilla/add-ons/webextensions/api/menus/removeall/index.html
@@ -0,0 +1,107 @@
+---
+title: menus.removeAll()
+slug: Mozilla/Add-ons/WebExtensions/API/menus/removeAll
+tags:
+ - API
+ - Add-ons
+ - Extensions
+ - Method
+ - Non-standard
+ - Reference
+ - WebExtensions
+ - contextMenus
+ - menus
+ - removeAll
+translation_of: Mozilla/Add-ons/WebExtensions/API/menus/removeAll
+---
+<div>{{AddonSidebar()}}</div>
+
+<p>Supprime tous les éléments de menu ajoutés par l'extension.</p>
+
+<p>Pour la compatibilité avec d'autres navigateurs, Firefox rend cette méthode disponible via l'espace de noms <code>contextMenus</code> ainsi que l'espace de noms des <code>menus</code>.</p>
+
+<p>C'est une fonction asynchrone qui renvoie une <code><a href="/fr/docs/Web/JavaScript/Reference/Objets_globaux/Promise">Promise</a></code>.</p>
+
+<h2 id="Syntaxe">Syntaxe</h2>
+
+<pre class="syntaxbox brush:js">var removing = browser.menus.removeAll()
+</pre>
+
+<h3 id="Paramètres">Paramètres</h3>
+
+<p>None.</p>
+
+<h3 id="Valeur_retournée">Valeur retournée</h3>
+
+<p>Une <code><a href="/fr/docs/Web/JavaScript/Reference/Objets_globaux/Promise">Promise</a></code> qui sera remplie sans argument lorsque tous les éléments ont été supprimés.</p>
+
+<h2 id="Compatibilité_du_navigateur">Compatibilité du navigateur</h2>
+
+<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
+
+<p>{{Compat("webextensions.api.menus.removeAll", 10)}}</p>
+
+<h2 id="Exemples">Exemples</h2>
+
+<p>Cet exemple ajoute deux éléments de menu. Lorsque l'utilisateur clique sur l'élément "Supprimer tout !", L'extension supprime les deux éléments en utilisant <code>removeAll()</code>.</p>
+
+<pre class="brush: js">function onRemoved() {
+ console.log("items removed successfully");
+}
+
+browser.menus.create({
+ id: "click-me",
+ title: "Click me!",
+ contexts: ["all"]
+});
+
+browser.menus.create({
+ id: "remove-all",
+ title: "Remove all!",
+ contexts: ["all"]
+});
+
+browser.menus.onClicked.addListener(function(info, tab) {
+ if (info.menuItemId == "remove-all") {
+ var removing = browser.menus.removeAll();
+ removing.then(onRemoved);
+ }
+});</pre>
+
+<p>{{WebExtExamples}}</p>
+
+<div class="note"><strong>Remerciements</strong>
+
+<p>Cette API est basée sur l'API <a href="https://developer.chrome.com/extensions/contextMenus"><code>chrome.contextMenus</code></a> de chromium. Cette documentation est dérivée de <a href="https://chromium.googlesource.com/chromium/src/+/master/chrome/common/extensions/api/context_menus.json"><code>context_menus.json</code></a> dans le code Chromium.</p>
+</div>
+
+<div class="hidden">
+<pre>// Copyright 2015 The Chromium Authors. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+</pre>
+</div>
diff --git a/files/fr/mozilla/add-ons/webextensions/api/menus/update/index.html b/files/fr/mozilla/add-ons/webextensions/api/menus/update/index.html
new file mode 100644
index 0000000000..f56c65c361
--- /dev/null
+++ b/files/fr/mozilla/add-ons/webextensions/api/menus/update/index.html
@@ -0,0 +1,193 @@
+---
+title: menus.update()
+slug: Mozilla/Add-ons/WebExtensions/API/menus/update
+tags:
+ - API
+ - Add-ons
+ - Extensions
+ - Method
+ - Non-standard
+ - Reference
+ - Update
+ - WebExtensions
+ - contextMenus
+translation_of: Mozilla/Add-ons/WebExtensions/API/menus/update
+---
+<div>{{AddonSidebar()}}</div>
+
+<p>Met à jour un élément de menu précédemment créé.</p>
+
+<p>Pour la compatibilité avec d'autres navigateurs, Firefox rend cette méthode disponible via l'espace de noms <code>contextMenus</code> ainsi que l'espace de noms des <code>menus</code>.</p>
+
+<p>C'est une fonction asynchrone qui renvoie une <code><a href="/fr/docs/Web/JavaScript/Reference/Objets_globaux/Promise">Promise</a></code>.</p>
+
+<h2 id="Syntaxe">Syntaxe</h2>
+
+<pre class="syntaxbox brush:js">var updating = browser.menus.update(
+ id, // integer or string
+ updateProperties // object
+)
+</pre>
+
+<h3 id="Paramètres">Paramètres</h3>
+
+<dl>
+ <dt><code>id</code></dt>
+ <dd><code><code>integer</code></code> ou <code><code>string</code></code>. L'ID de l'article à mettre à jour.</dd>
+ <dt><code>updateProperties</code></dt>
+ <dd><code>object</code>. Les propriétés à mettre à jour. Identique à l'objet <code>createProperties</code> passé à  {{WebExtAPIRef("menus.create()", "menus.create()")}}, sauf que l'<code>id</code> ne peut être défini. En outre, les <code>icônes</code> ne peuvent être modifiées que dans les commandes de menu, et non dans le menu contextuel de niveau supérieur. L'icône de niveau supérieur correspond à l'icône principale de l'extension telle que déclarée dans le fichier manifeste de l'extension.
+ <dl class="reference-values">
+ <dt><code>checked</code> {{optional_inline}}</dt>
+ <dd><code>boolean</code>. L'état initial d'une case à cocher ou d'un élément radio : <code>true</code> fpour sélectionné et <code>false</code> pour non sélectionné. Un seul élément radio peut être sélectionné à la fois dans un groupe donné d'éléments radio.</dd>
+ <dt><code>command</code> {{optional_inline}}</dt>
+ <dd>
+ <p><code>string</code>. Chaîne décrivant une action qui doit être effectuée lorsque l'utilisateur clique sur l'élément. Les valeurs possibles sont :</p>
+
+ <ul>
+ <li><code>"_execute_browser_action"</code>: simuler un clic sur l'action du navigateur de l'extension, en ouvrant son popup s'il en a un</li>
+ <li><code>"_execute_page_action"</code>: simuler un clic sur l'action de la page de l'extension, en ouvrant son popup si elle en a une</li>
+ <li><code>"_execute_sidebar_action"</code>: ouvre la barre latérale de l'extension</li>
+ </ul>
+
+ <p>Cliquer sur l'élément déclenchera toujours l'événement  {{WebExtAPIRef("menus.onClicked")}}, mais rien ne garantit l'ordre ici: la commande peut être exécutée avant le lancement de <code>onClicked</code>.</p>
+ </dd>
+ <dt><code>contexts</code> {{optional_inline}}</dt>
+ <dd>
+ <p><code>array</code> de <code>{{WebExtAPIRef('menus.ContextType')}}</code>. Tableau des contextes dans lesquels cet élément de menu apparaîtra. Si cette option est omise :</p>
+
+ <ul>
+ <li>si le parent de l'élément a des contextes définis, alors cet élément héritera des contextes de son parent</li>
+ <li>sinon, l'élément reçoit un tableau de contexte de ["page"].</li>
+ </ul>
+ </dd>
+ <dt><code>documentUrlPatterns</code> {{optional_inline}}</dt>
+ <dd><code>array</code> de <code><code>string</code></code>. Vous permet de limiter l'élément à s'appliquer uniquement aux documents dont l'URL correspond à l'un des éléments <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Match_patterns">motifs</a> de données. Ceci s'applique également aux cadres.</dd>
+ <dt><code>enabled</code> {{optional_inline}}</dt>
+ <dd><code>boolean</code>. Si cet élément de menu est activé ou désactivé. La valeur par défaut est <code>true</code>.</dd>
+ <dt><code>icons</code> {{optional_inline}}</dt>
+ <dd>
+ <p><code>object</code>. Une ou plusieurs icônes personnalisées à afficher à côté de l'élément. Les icônes personnalisées ne peuvent être définies que pour les éléments apparaissant dans les sous-menus. Cette propriété est un objet avec une propriété pour chaque icône fournie : le nom de la propriété doit inclure la taille de l'icône en pixels, et le chemin est relatif à l'icône du répertoire racine de l'extension. Le navigateur essaie de choisir une icône 16x16 pixels pour un affichage normal ou une icône 32x32 pixels pour un affichage haute densité. Pour éviter toute mise à l'échelle, vous pouvez spécifier des icônes comme celle-ci :</p>
+
+ <pre class="brush: json no-line-numbers language-json"><code class="language-json"><span class="key token">"icons":</span> <span class="punctuation token">{</span>
+ <span class="key token">"16":</span> <span class="string token">"path/to/geo-16.png"</span><span class="punctuation token">,</span>
+ <span class="key token">"32":</span> <span class="string token">"path/to/geo-32.png"</span>
+ <span class="punctuation token">}</span></code></pre>
+
+ <p>Alternativement, vous pouvez spécifier une seule icône SVG, et elle sera mise à l'échelle de manière appropriée :</p>
+
+ <pre class="brush: json no-line-numbers language-json"><code class="language-json"><span class="key token">"icons":</span> <span class="punctuation token">{</span>
+ <span class="key token">"16":</span> <span class="string token">"path/to/geo.svg"</span>
+ <span class="punctuation token">}</span></code></pre>
+
+ <div class="blockIndicator note">
+ <p><strong>Note</strong>: The top-level menu item uses the <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/icons">icons</a> specified in the manifest rather than what is specified with this key.</p>
+ </div>
+ </dd>
+ <dt><code>id</code> {{optional_inline}}</dt>
+ <dd><code>string</code>. L'ID unique à affecter à cet article. Obligatoire pour les pages d'événements. Ne peut pas être le même qu'un autre ID pour cette extension.</dd>
+ <dt><code>onclick</code> {{optional_inline}}</dt>
+ <dd><code>function</code>. Une fonction qui sera appelée lorsque vous cliquerez sur l'élément de menu. Les pages d'événements ne peuvent pas l'utiliser : elles doivent plutôt enregistrer un auditeur pour {{WebExtAPIRef('menus.onClicked')}}.</dd>
+ <dt><code>parentId</code> {{optional_inline}}</dt>
+ <dd><code><code>integer</code></code> ou <code><code>string</code></code>. L'ID d'un élément de menu parent ; ceci fait de l'élément un enfant d'un élément précédemment ajouté. Remarque : Si vous avez créé plus d'un élément de menu, les éléments seront placés dans un sous-menu. Le parent du sous-menu sera étiqueté avec le nom de l'extension.</dd>
+ <dt><code>targetUrlPatterns</code> {{optional_inline}}</dt>
+ <dd><code>array</code> de <code><code>string</code></code>. Similairer à <code>documentUrlPatterns</code>, mais vous permet de filtrer en fonction de la <code>href</code> des balises d'ancre et l'attribut <code>src</code> des balises  img/audio/video. Ce paramètre prend en charge n'importe quel schéma d'URL, même ceux qui ne sont généralement pas autorisés dans un modèle de correspondance.</dd>
+ <dt><code>title</code> {{optional_inline}}</dt>
+ <dd>
+ <p><code>string</code>. Le texte à afficher dans le poste. Obligatoire sauf si le <code>type</code> est "separateur".</p>
+
+ <p>Vous pouvez utiliser "<code>%s</code>" dans la chaîne de caractères. Si vous le faites dans un élément de menu, et qu'un texte est sélectionné dans la page lorsque le menu est affiché, le texte sélectionné sera interpolé dans le titre. Par exemple, si <code>title</code> est "Traduction '%s' à Pig Latin" et que l'utilisateur sélectionne le mot "cool", puis active le menu, alors le titre de l'élément de menu sera : "Traduction 'cool' à Pig Latin".</p>
+
+ <p>Si le titre contient une esperluette "&amp;", le caractère suivant sera utilisé comme clé d'accès pour l'élément et l'esperluette ne sera pas affichée. Les exceptions à cette règle sont les suivantes :</p>
+
+ <ul>
+ <li>Si le caractère suivant est également une esperluette : alors une esperluette simple sera affichée et aucune clé d'accès ne sera définie. En effet, "&amp;&amp;" est utilisé pour afficher une seule esperluette.</li>
+ <li>Si les caractères suivants sont la directive d'interpolation "%s" : alors l'esperluette ne sera pas affichée et aucune clé d'accès ne sera définie.</li>
+ <li>Si l'esperluette est le dernier caractère du titre : alors l'esperluette ne sera pas affichée et aucune clé d'accès ne sera définie.</li>
+ </ul>
+
+ <p>Seule la première esperluette sera utilisée pour définir une clé d'accès : les esperluettes suivantes ne seront pas affichées mais ne définiront pas les clés. Ainsi, "&amp;A et &amp;B" seront affichés comme "A et B" et "A" comme clé d'accès</p>
+ </dd>
+ <dt><code>type</code> {{optional_inline}}</dt>
+ <dd><code>{{WebExtAPIRef('menus.ItemType')}}</code>. Le type d'élément de menu : "normal", "checkbox", "radio", "separator". Defaults to "normal".</dd>
+ <dt><code>viewTypes</code> {{optional_inline}}</dt>
+ <dd><code>{{WebExtAPIRef('extension.ViewType')}}</code>. Liste des types d'affichage où l'élément de menu sera affiché. Par défaut à n'importe quelle vue, y compris celles qui n'ont pas de <code>viewType</code>.</dd>
+ <dt><code>visible</code> {{optional_inline}}</dt>
+ <dd><code>boolean</code>. Si l'élément est affiché dans le menu. La valeur par défaut est <code>true</code>.</dd>
+ </dl>
+ </dd>
+</dl>
+
+<h3 id="Valeur_retournée">Valeur retournée</h3>
+
+<p>Une <code><a href="/fr/docs/Web/JavaScript/Reference/Objets_globaux/Promise">Promise</a></code> qui sera satisfaite sans argument si la mise à jour a réussi, ou rejetée avec un message d'erreur si la mise à jour a échoué.</p>
+
+<h2 id="Exemples">Exemples</h2>
+
+<p>Cet exemple crée un élément de menu, puis met à jour son titre lorsque l'utilisateur clique dessus :</p>
+
+<pre class="brush: js">function onUpdated() {
+ console.log("item updated successfully");
+}
+
+function onError() {
+ console.log("error updating item:" + browser.runtime.lastError);
+}
+
+browser.menus.create({
+ id: "do-not-click-me",
+ title: "Do not click this button",
+ contexts: ["all"]
+});
+
+browser.menus.onClicked.addListener(function(info, tab) {
+ if (info.menuItemId == "do-not-click-me") {
+ var updating = browser.contextMenus.update(info.menuItemId, {
+ title: "Do not click this button again"
+ });
+ updating.then(onUpdated, onError);
+ }
+});</pre>
+
+<p>{{WebExtExamples}}</p>
+
+<h2 id="Compatibilité_du_navigateur">Compatibilité du navigateur</h2>
+
+<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
+
+<p>{{Compat("webextensions.api.menus.update", 10)}}</p>
+
+<div class="note"><strong>Remerciements</strong>
+
+<p>Cette API est basée sur l'API <a href="https://developer.chrome.com/extensions/contextMenus"><code>chrome.contextMenus</code></a> de chromium. Cette documentation est dérivée de <a href="https://chromium.googlesource.com/chromium/src/+/master/chrome/common/extensions/api/context_menus.json"><code>context_menus.json</code></a> dans le code Chromium.</p>
+</div>
+
+<div class="hidden">
+<pre>// Copyright 2015 The Chromium Authors. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+</pre>
+</div>