aboutsummaryrefslogtreecommitdiff
path: root/files/fr/mozilla/add-ons/webextensions/work_with_contextual_identities
diff options
context:
space:
mode:
authorFlorian Merz <me@fiji-flo.de>2021-02-11 12:36:08 +0100
committerFlorian Merz <me@fiji-flo.de>2021-02-11 12:36:08 +0100
commit39f2114f9797eb51994966c6bb8ff1814c9a4da8 (patch)
tree66dbd9c921f56e440f8816ed29ac23682a1ac4ef /files/fr/mozilla/add-ons/webextensions/work_with_contextual_identities
parent8260a606c143e6b55a467edf017a56bdcd6cba7e (diff)
downloadtranslated-content-39f2114f9797eb51994966c6bb8ff1814c9a4da8.tar.gz
translated-content-39f2114f9797eb51994966c6bb8ff1814c9a4da8.tar.bz2
translated-content-39f2114f9797eb51994966c6bb8ff1814c9a4da8.zip
unslug fr: move
Diffstat (limited to 'files/fr/mozilla/add-ons/webextensions/work_with_contextual_identities')
-rw-r--r--files/fr/mozilla/add-ons/webextensions/work_with_contextual_identities/index.html169
1 files changed, 169 insertions, 0 deletions
diff --git a/files/fr/mozilla/add-ons/webextensions/work_with_contextual_identities/index.html b/files/fr/mozilla/add-ons/webextensions/work_with_contextual_identities/index.html
new file mode 100644
index 0000000000..7acabb6773
--- /dev/null
+++ b/files/fr/mozilla/add-ons/webextensions/work_with_contextual_identities/index.html
@@ -0,0 +1,169 @@
+---
+title: Travailler avec des identités contextuelles
+slug: Mozilla/Add-ons/WebExtensions/travailler_avec_des_identites_contextuelles
+tags:
+ - Add-ons
+ - Comment
+ - Contextual identities
+ - Débutant
+ - Extensions
+ - Hox-to
+ - WebExtensions
+translation_of: Mozilla/Add-ons/WebExtensions/Work_with_contextual_identities
+---
+<p>{{AddonSidebar}}</p>
+
+<p>Beaucoup de gens ont besoin ou veulent interagir avec le web en utilisant plusieurs personnages. Ils peuvent avoir des comptes pour le travail sur le Web et le courrier électronique personnel. Ils peuvent se déconnecter de leurs comptes de médias sociaux avant d'accéder aux achats en ligne, afin de s'assurer que les scripts de suivi sur les sites d'achat ne peuvent pas prendre en charge leur activité de médias sociaux. Pour répondre à ces exigences, les utilisateurs finissent souvent par utiliser une fenêtre de navigateur standard et privée ou deux navigateurs différents.</p>
+
+<p>Pour répondre à ce besoin, Firefox inclut une fonctionnalité connue sous le nom d'identités contextuelles, d'onglets de conteneurs ou de conteneurs de comptes. Cette fonctionnalité permet la création d'un conteneur de cookies pour chacune des identités que l'utilisateur souhaite utiliser dans son navigateur. Les onglets peuvent être associés à l'une de ces identités, en conservant les cookies distincts de ceux des autres identités dans le navigateur. Le résultat pratique est que, par exemple, un utilisateur peut avoir une identité personnelle et professionnelle. Ils peuvent ensuite utiliser l'identité personnelle dans un onglet, où ils se connectent à leur messagerie Web personnelle, et l'identité professionnelle dans un autre onglet, où ils se connectent à leur messagerie Web professionnelle.</p>
+
+<p>Pour plus d'informations sur cette fonctionnalité, voir :</p>
+
+<ul>
+ <li><a href="https://blog.mozilla.org/firefox/introducing-firefox-multi-account-containers/">Mettez vos multiples personnalités en ligne dans Firefox Multi-Compte ContaYouiners (anglais)</a></li>
+ <li><a href="https://wiki.mozilla.org/Security/Contextual_Identity_Project/Containers">Securité / Projet d'identité contextuelle / conteneurs (anglais)</a></li>
+ <li><a href="https://support.mozilla.org/fr/kb/onglets-contextuels-avec-les-containers">Article de support Firefox sur les conteneurs (français)</a></li>
+</ul>
+
+<h2 id="API_pour_travailler_avec_des_identités_contextuelles">API pour travailler avec des identités contextuelles</h2>
+
+<p>Pour utiliser les fonctionnalités d'identité contextuelle dans les extensions, vous utiliserez deux APIs :</p>
+
+<ul>
+ <li>{{WebExtAPIRef("contextualIdentities")}} qui permet à une extension d'ajouter, d'interroger, de mettre à jour et de supprimer des identités contextuelles.</li>
+ <li>{{WebExtAPIRef("tabs")}} ou plus précisément {{WebExtAPIRef("tabs.create")}} qui vous permet de créer un onglet utilisant le conteneur d'une identité contextuelle (magasin de cookies).</li>
+</ul>
+
+<h2 id="Permissions">Permissions</h2>
+
+<p>Pour utiliser l'API {{WebExtAPIRef("contextualIdentities")}} vous devez inclure la  <a href="/fr/Add-ons/WebExtensions/manifest.json/permissions">permission</a> "contextualIdentities" dans votre fichier <a href="/fr/Add-ons/WebExtensions/manifest.json">manifest.json</a>. Vous n'avez pas besoin de la permission "tabs" pour utiliser {{WebExtAPIRef("tabs.create")}} ; vous avez besoin de la permission "cookies" pour spécifier le conteneur de cookies que vous souhaitez utiliser.</p>
+
+<h2 id="Exemple_de_procédure_pas_à_pas">Exemple de procédure pas à pas</h2>
+
+<p>L'exemple d'extension <a href="https://github.com/mdn/webextensions-examples/tree/master/contextual-identities">contextual-identities</a> fournit un bouton de barre d'outils avec une fenêtre qui répertorie les identités dans le navigateur. Pour chaque identité, l'extension fournit des options permettant de créer un nouvel onglet en utilisant son conteneur de cookies ou de supprimer tous les onglets de l'identité.</p>
+
+<p>Voici une courte vidéo de l'extension en action :</p>
+
+<p>{{EmbedYouTube("SgLCS7_ppas")}}</p>
+
+<h3 id="manifest.json">manifest.json</h3>
+
+<p>Les principales caractéristiques du fichier <a href="https://github.com/mdn/webextensions-examples/blob/master/contextual-identities/manifest.json">manifest.json</a> sont :</p>
+
+<ul>
+ <li>La demande de permissions :
+ <pre class="brush: json">  "permissions": [
+      "contextualIdentities",
+      "cookies"
+  ],</pre>
+ </li>
+ <li>spécification du bouton de la barre d'outils (browseAction) donnant accès aux fonctionnalités de l'extension :
+ <pre class="brush: json">  "browser_action": {
+    "browser_style": true,
+    "default_title": "Contextual Identities",
+    "default_popup": "context.html",
+    "default_icon": {
+      "128": "identity.svg"
+    }</pre>
+ </li>
+</ul>
+
+<h2 id="context.html">context.html</h2>
+
+<p>Une fenêtre contextuelle sur le bouton de la barre d'outils fournit l'interface utilisateur de l'extension. <a href="https://github.com/mdn/webextensions-examples/blob/master/contextual-identities/context.html">context.html</a> implémente ce popup, mais c'est juste un shell dans lequel le script context.js écrit la liste des identités contextuelles et leurs options associées.</p>
+
+<pre class="brush: html">  &lt;body&gt;
+    &lt;div class="panel"&gt;
+      &lt;div id="identity-list"&gt;&lt;/div&gt;
+    &lt;/div&gt;
+  &lt;script src="context.js"&gt;&lt;/script&gt;
+  &lt;/body&gt;</pre>
+
+<h2 id="context.js">context.js</h2>
+
+<p>Toutes les fonctionnalités de l'extension sont implémentées via <a href="https://github.com/mdn/webextensions-examples/blob/master/contextual-identities/context.js">context.js</a>, qui est appelée chaque fois que la barre d'outils est affichée.</p>
+
+<p>Le script obtient d'abord le div 'identity-list' depuis context.html.</p>
+
+<pre class="brush: json">var div = document.getElementById('identity-list');</pre>
+
+<p>Il vérifie ensuite si la fonction d'identités contextuelles est activée dans le navigateur. Si ce n'est pas le cas, des informations sur la façon de l'activer sont ajoutées à la fenêtre contextuelle.</p>
+
+<pre class="brush: json">if (browser.contextualIdentities === undefined) {
+  div.innerText = 'browser.contextualIdentities not available. Check that the privacy.userContext.enabled pref is set to true, and reload the add-on.';
+} else {</pre>
+
+<p>Firefox s'installe avec la fonctionnalité d'identité contextuelle désactivée, elle est activée lorsqu'une extension utilisant l'API contextualIdentities est installée. Cependant, il est toujours possible pour l'utilisateur de désactiver la fonctionnalité, en utilisant une option sur la page des préférences (about:preferences), d'où la nécessité de la vérification.</p>
+
+<p>Le script utilise maintenant contextualIdentities.query pour déterminer s'il existe des identités contextuelles définies dans le navigateur. S'il n'y en a pas, un message est ajouté au popup et le script s'arrête.</p>
+
+<pre class="brush: json">  browser.contextualIdentities.query({})
+    .then((identities) =&gt; {
+      if (!identities.length) {
+        div.innerText = 'No identities returned from the API.';
+        return;
+      }</pre>
+
+<p>Si des identités contextuelles sont présentes — Firefox a quatre identités par défaut — le script parcourt chacune d'elles en ajoutant son nom, stylisé dans la couleur choisie, à l'élément &lt;div&gt;. La fonction <code>createOptions()</code> ajoute ensuite les options à “create” ou  “close all” à la &lt;div&gt; avant qu'elle ne soit ajoutée au popup.</p>
+
+<pre class="brush: json">     for (let identity of identities) {
+       let row = document.createElement('div');
+       let span = document.createElement('span');
+       span.className = 'identity';
+       span.innerText = identity.name;
+       span.style = `color: ${identity.color}`;
+       console.log(identity);
+       row.appendChild(span);
+       createOptions(row, identity);
+       div.appendChild(row);
+     }
+  });
+}
+
+function createOptions(node, identity) {
+  for (let option of ['Create', 'Close All']) {
+    let a = document.createElement('a');
+    a.href = '#';
+    a.innerText = option;
+    a.dataset.action = option.toLowerCase().replace(' ', '-');
+    a.dataset.identity = identity.cookieStoreId;
+    a.addEventListener('click', eventHandler);
+    node.appendChild(a);
+  }
+}</pre>
+
+<p>Le script attend maintenant que l'utilisateur sélectionne une option dans le popup.</p>
+
+<pre class="brush: js">function eventHandler(event) {</pre>
+
+<p>Si l'utilisateur clique sur l'option permettant de créer un onglet pour une identité, l'un d'entre eux est ouvert à l'aide de tabs.create en transmettant l'ID de cookie de l'identité.</p>
+
+<pre class="brush: json">  if (event.target.dataset.action == 'create') {
+    browser.tabs.create({
+      url: 'about:blank',
+      cookieStoreId: event.target.dataset.identity
+    });
+  }</pre>
+
+<p>Si l'utilisateur sélectionne l'option permettant de fermer tous les onglets pour l'identité, le script exécute une tabs.query pour tous les onglets qui utilisent le cookie store de l'identité. Le script passe ensuite cette liste d'onglets à <code>tabs.remove</code>.</p>
+
+<pre class="brush: json">  if (event.target.dataset.action == 'close-all') {
+    browser.tabs.query({
+      cookieStoreId: event.target.dataset.identity
+    }).then((tabs) =&gt; {
+      browser.tabs.remove(tabs.map((i) =&gt; i.id));
+    });
+  }
+  event.preventDefault();
+}</pre>
+
+<h2 id="Apprendre_encore_plus">Apprendre encore plus</h2>
+
+<p>Si vous voulez en savoir plus sur l'API contextualIdentities, consultez :</p>
+
+<ul>
+ <li><a href="/fr/Add-ons/WebExtensions/API/contextualIdentities">contextualIdentities API reference</a>.</li>
+ <li>code source de l'extension <a href="https://github.com/mozilla/multi-account-containers/#readme">Multi-Account Containers</a>. C'est le code pour l'extension <a href="/fr/firefox/addon/multi-account-containers/">Firefox Multi-Account Containers</a>.
+ <p>Cette extension fournit aux utilisateurs des fonctionnalités améliorées pour les identités contextuelles, telles que la possibilité de cliquer longuement sur le nouveau bouton de l'onglet, puis de sélectionner l'identité à utiliser dans le nouvel onglet. Il met vraiment en valeur les capacités offertes par les identités contextuelles et vaut le détour.</p>
+ .</li>
+</ul>