diff options
Diffstat (limited to 'files/fr/orphaned')
81 files changed, 6990 insertions, 0 deletions
diff --git a/files/fr/orphaned/introduction_à_la_cryptographie_à_clef_publique/certificats_et_authentification/index.html b/files/fr/orphaned/introduction_à_la_cryptographie_à_clef_publique/certificats_et_authentification/index.html new file mode 100644 index 0000000000..0207687122 --- /dev/null +++ b/files/fr/orphaned/introduction_à_la_cryptographie_à_clef_publique/certificats_et_authentification/index.html @@ -0,0 +1,395 @@ +--- +title: Certificats et authentification +slug: >- + Introduction_à_la_cryptographie_à_clef_publique/Certificats_et_authentification +tags: + - Sécurité +--- +<h3 id="Certificat_identifiant_une_personne_ou_une_entité">Certificat identifiant une personne ou une entité</h3> + +<p>Un <em>certificat</em> est un document électronique utilisé pour identifier un individu, un serveur, une entreprise ou toute autre entité et pour associer une clef publique à cette identité. Tout comme un permis de conduire, un passeport, ou tout autre moyen d'identification personnelle couramment utilisé, un certificat fournit généralement une preuve reconnue de l'identité de la personne. La cryptographie à clef publique utilise les certificats pour éviter les problèmes d'usurpation d'identité (voir <a href="#Probl.C3.A8mes_de_s.C3.A9curit.C3.A9_sur_Internet">Problèmes de sécurité sur Internet</a>).</p> + +<p>Pour obtenir un permis de conduire, il faut s'inscrire dans une agence gouvernementale, telle que le <em>Department of Motor Vehicles</em>, qui vérifie votre identité, votre capacité à conduire, votre adresse, et d'autres information avant de délivrer le permis. Pour obtenir une carte d'étudiant, il faut s'adresser à une université ou une école, qui contrôle certaines informations (comme le paiement des frais d'inscription) avant de délivrer la carte d'étudiant. Pour obtenir une carte de bibliothèque, il faut uniquement fournir votre nom et une attestation de logement à vos nom et adresse.</p> + +<p>Les certificats fonctionnent sur les mêmes principes que ces différents documents d'identité. Les autorités de certification (AC ou CA) sont des entités qui valident les identités et émettent les certificats. Elles peuvent être des tierces-parties indépendantes ou des organisations possédant leur propre serveur d'émission de certificats (tel que <em>Red Hat Certificate System</em>). Les méthodes utilisées pour valider une identité varient selon les politiques d'émission d'une AC donnée — tout comme les méthodes de validation des autres formulaires d'identification varient selon les organismes d'émission et leurs domaines d'application. En général, avant d'émettre un certificat, une AC doit utiliser ses procédures de vérification publiées pour un type de certificat afin de s'assurer que l'entité demandant le certificat est bien celle qu'elle prétend être.</p> + +<p>Le certificat émis par l'AC lie une clef publique particulière au nom de l'entité qu'il identifie (tel qu'un nom d'employé ou de serveur). Les certificats aident à prévenir l'utilisation de fausses clefs publiques pour l'usurpation d'identité. Seule la clef publique certifiée dans le certificat fonctionnera avec la clef privée correspondante possédée par l'entité identifiée par le certificat.</p> + +<p>En plus de la clef publique, un certificat contient toujours le nom de l'entité qu'il identifie, une date d'expiration, le nom de son AC émettrice, un numéro de série et d'éventuelles autres informations utiles. Plus important, un certificat contient toujours la signature numérique de l'AC émettrice. La signature numérique de l'AC émettrice permet au certificat de fonctionner comme une <em>lettre d'introduction</em> pour les utilisateurs qui connaissent l'AC et lui font confiance mais qui ne connaissent pas l'entité identifiée par le certificat.</p> + +<p>Pour plus d'informations concernant le rôle des autorités de certification (AC), voir « <a href="#Comment_les_certificats_d.27AC_sont_utilis.C3.A9s_pour_.C3.A9tablir_une_relation_de_confiance">Comment les certificats d'AC sont utilisés pour établir une relation de confiance</a> ».</p> + +<h3 id="L'authentification_confirme_une_identité">L'authentification confirme une identité</h3> + +<p>L'<em>authentification</em> est le processus de confirmation d'une identité. Dans le contexte d'interactions entre les réseaux, l'authentification comporte l'identification confiante d'une partie par une autre. L'authentification sur les réseaux peut avoir plusieurs formes. Les certificats sont un moyen d'authentification.</p> + +<p>Les interactions entre les réseaux se font généralement entre un client, tel que le navigateur d'un ordinateur personnel, et un serveur, tel que le matériel et le logiciel hébergeant un site Web. L'<em>authentification cliente</em> se réfère à l'identification confiante d'un client par un serveur (c'est-à-dire, l'identification de la personne supposée utiliser le logiciel client). <em>L'authentification serveur</em> se réfère à l'identification confiante d'un serveur par le client (c'est-à-dire, l'identification de l'organisation supposée être responsable du serveur à une adresse réseau particulière).</p> + +<p>Les authentifications cliente et serveur ne sont pas les seules formes d'authentification permises par les certificats. Par exemple, la signature numérique d'un courriel combinée au certificat identifiant l'expéditeur fournissent une forte preuve que la personne identifiée par le certificat a bien envoyé le message. De même, une signature numérique dans un formulaire HTML combinée à un certificat identifiant le signataire peut fournir une preuve, après coup, que la personne identifiée par le certificat est d'accord avec le contenu du formulaire. En plus de l'authentification, la signature numérique assure, dans les deux cas, un degré de non répudiation (c'est-à-dire que la signature numérique rend difficile la négation ultérieure par le signataire des informations présentes dans le message électronique ou le formulaire).</p> + +<p>L'authentification cliente est un élément essentiel de la sécurité réseau, sur les intranets ou les extranets. Les sections qui suivent présentes deux formes d'authentification cliente :</p> + +<ul> + <li><strong>Authentification basée sur un mot de passe</strong> : Presque tous les serveurs permettent l'authentification cliente à l'aide d'un nom, ou pseudonyme, et d'un mot de passe. Par exemple, un serveur pour demander à un utilisateur de fournir un nom et un mot de passe avant de donner des droits d'accès à certaines parties du serveur. Le serveur maintient une liste des noms et des mots de passe ; si un nom particulier est dans cette liste, et que l'utilisateur fournit le bon mot de passe, le serveur donne des droit d'accès.</li> + <li><strong>Authentification basée sur un certificat</strong> : L'authentification basée sur les certificats est une étape du protocole SSL. Le client signe numériquement des données générées aléatoirement et envoie à la fois ces données signées et le certificat sur le réseau. Le serveur utilise les techniques de cryptographie à clef publique pour valider la signature et confirmer la validité du certificat.</li> +</ul> + +<h4 id="L'authentification_par_mot_de_passe">L'authentification par mot de passe</h4> + +<p>La figure 4 montre les étapes basiques mise en œuvre dans l'authentification d'un client à l'aide d'un nom et d'un mot de passe. Cette figure suppose que :</p> + +<ul> + <li>L'utilisateur a déjà décidé de faire confiance au serveur, sans authentification ou sur la base d'une authentification de serveur via SSL.</li> + <li>L'utilisateur a demandé une ressource contrôlée par le serveur.</li> + <li>Le serveur demande une authentification client avant de donner les droits d'accès aux ressources demandées.</li> +</ul> + +<p><img alt="Figure 4. Utilisation d'un mot de passe pour authentifier un client auprès d'un serveur" class="internal" src="/@api/deki/files/1157/=01pswd.png"></p> + +<p>Voici les étapes décrites dans la figure 4 :</p> + +<ol> + <li>En réponse à une demande d'authentification de la part du serveur, le client affiche une boîte de dialogue demandant le nom de l'utilisateur et son mot de passe pour accéder à ce serveur. L'utilisateur doit fournir séparément un nom et un mot de passe pour chaque nouveau serveur qu'il désire utiliser pendant sa session de travail.</li> + <li>Le client envoie le nom et le mot de passe par le réseau, en clair ou par une connexion SSL chiffrée.</li> + <li>Le serveur vérifie le nom et le mot de passe dans sa base de données locale et, s'ils correspondent, il les accepte comme preuves authentifiant l'identité de l'utilisateur.</li> + <li>Le serveur détermine si l'utilisateur est autorisé à accéder aux ressources demandées, et si oui, autorise le client à y accéder.</li> +</ol> + +<p>Avec cet arrangement, l'utilisateur doit fournir un mot de passe pour chaque serveur, et l'administrateur doit conserver les noms et les mots de passe de chaque utilisateur, généralement sur des serveurs distincts.</p> + +<p>Une implémentation propre ne mémorise pas les mots de passe en texte simple. À la place, il concatène le mot de passe avec une valeur aléatoire propre à chaque utilisateur (également appelée « <em>salt</em> ») et mémorise la valeur hachée du résultat avec le « <em>salt</em> ». Ceci rend plus difficile des attaques de force brute.</p> + +<p>Comme expliqué dans la section suivante, un des avantages de l'authentification par certificat est qu'elle peut être utilisée pour remplacer les trois premières étapes décrites à la figure 4 avec un mécanisme qui permet à l'utilisateur de fournir un seul mot de passe (qui n'est pas transmis à travers le réseau) et permet à l'administrateur de centraliser le contrôle de l'authentification des utilisateurs.</p> + +<h4 id="L'authentification_par_certificat">L'authentification par certificat</h4> + +<p>La figure 5 décrit le fonctionnement d'une authentification client à l'aide des certificats et du protocole SSL. Pour authentifier un utilisateur auprès d'un serveur, Le client signe numériquement des données générées aléatoirement et envoie à la fois ces données signées et le certificat sur le réseau. Pour les besoins de cette discussion, la signature numérique associée aux données signées peut être considérée comme une preuve fournie par le client au serveur. Le serveur authentifie l'identité de l'utilisateur en se basant sur la force de cette preuve.</p> + +<p>Comme pour la figure 4, la figure 5 suppose que l'utilisateur a déjà décidé de faire confiance au serveur et qu'il a demandé une ressource, et que le serveur a demandé une authentification client lors du processus d'évaluation des droits à accéder à la ressource demandée.</p> + +<p><img alt="Figure 5. Utilisation d'une authentification par certificat d'un client auprès d'un serveur" class="internal" src="/@api/deki/files/1159/=02cert.png"></p> + +<p>Contrairement au processus décrit à la figure 4, celui de la figure 5 nécessite d'utiliser SSL. La figure 5 suppose également que le client possède un certificat valide qui peut être utilisé pour l'identifier auprès du serveur. L'authentification par certificat est généralement considérée comme préférable à l'authentification par mot de passe car elle est basée sur ce que l'utilisateur a (la clef privée) aussi bien que sur ce que l'utilisateur sait (le mot de passe qui protège cette clef privée). Cependant, il est important de remarquer que ces deux affirmations ne sont vraies que si aucune personne non autorisée n'a accès à l'ordinateur de l'utilisateur ou a son mot de passe, si le mot de passe de la base de données des clefs privées du logiciel client a été défini, et si le logiciel est paramétré pour demander le mot de passe à intervalles raisonnablement fréquents.</p> + +<p>Ni l'authentification par mot de passe, ni l'authentification par certificat ne répondent aux questions de sécurité soulevées par l'accès physique à l'ordinateur d'un individu ou à ses mots de passe. La cryptographie à clef publique peut uniquement vérifier qu'une clef privée utilisée pour signer des données, correspond à la clef publique présente dans un certificat. Il est de la responsabilité de l'utilisateur de protéger physiquement son ordinateur et de conserver secret le mot de passe de sa clef privée.</p> + +<p>Voici les étapes décrites dans la figure 5 :</p> + +<ol> + <li>Le logiciel client, tel que le navigateur, maintient une base de données des clefs privées correspondantes aux clefs publiques publiées avec tous les certificats émis pour ce client. Le client demande le mot de passe de cette base de données la première fois qu'il a besoin d'y accéder lors d'une session donnée — par exemple, la première fois que l'utilisateur essaie d'accéder à un serveur SSL qui requiert une authentification par certificat. Après avoir renseigné une première fois ce mot de passe, l'utilisateur n'en a plus besoin pour la durée de la session, même en accédant à d'autres serveurs SSL.</li> + <li>Le client débloque la base de données des clefs privées, récupère la clef privée du certificat de l'utilisateur et utilise cette clef privée pour signer numériquement des données générées aléatoirement dans ce but en se basant sur des entrées du client et du serveur. Ces données et la signature numérique constituent une « preuve » de la validité de la clef privée. La signature numérique peut uniquement être créée avec la clef privée et peut être validée par la clef publique associée aux données signées, ce qui est réservé à la session SSL.</li> + <li>Le client envoie le certificat de l'utilisateur et la <em>preuve</em> (les données générées aléatoirement signées numériquement) par le réseau.</li> + <li>Le serveur utilise le certificat et la <em>preuve</em> pour authentifier l'identité de l'utilisateur (pour plus de détails sur ce fonctionnement, voir « <a href="/fr/Introduction_à_SSL" title="fr/Introduction_à_SSL">Introduction à SSL</a> »).</li> + <li>À ce moment, le serveur peut éventuellement exécuter des tâches d'authentification supplémentaires, comme vérifier si le certificat présenté par le client est stocké dans l'entrée de l'utilisateur d'un annuaire LDAP. Le serveur continue alors à évaluer si l'utilisateur identifié est autorisé ou non à accéder à la ressource demandée. Ce processus d'évaluation peut employer une variété de mécanismes standards d'autorisation, en utilisant éventuellement des informations présentes dans un annuaire LDAP, des bases de données d'entreprises, etc. Si le résultat de l'évaluation est positif, le serveur autorise le client à accéder à la ressource demandée.</li> +</ol> + +<p>Comme on peut le voir en comparant les figures 4 et 5, les certificats remplacent la portion de l'authentification correspondant à l'interaction entre le client et le serveur. Plutôt que de demander à l'utilisateur d'envoyer des mots de passe par le réseau à longueur de journée, l'ouverture de session unique demande une seule fois à l'utilisateur de saisir son mot de passe de base de données de clefs privée, sans l'envoyer par le réseau. Pour la suite de la session, le client présente le certificat de l'utilisateur pour authentifier l'utilisateur auprès de chaque serveur auquel il se connecte. Les mécanismes d'autorisation existants basés sur l'authentification de l'identité du l'utilisateur ne sont pas concernés.</p> + +<h3 id="Comment_utiliser_les_certificats">Comment utiliser les certificats</h3> + +<ul> + <li><a href="#Types_de_certificats">Types de certificats</a></li> + <li><a href="#Le_protocole_SSL">Le protocole SSL</a></li> + <li><a href="#Messages_sign.C3.A9s_et_encrypt.C3.A9s">Messages signés et encryptés</a></li> + <li><a href="#Signature_de_formulaire">Signature de formulaire</a></li> + <li><a href="#Ouverture_unique_de_session">Ouverture unique de session</a></li> + <li><a href="#Signature_d.27objet">Signature d'objet</a></li> +</ul> + +<h4 id="Types_de_certificats">Types de certificats</h4> + +<p>Cinq types de certificats sont couramment utilisé avec les produits Red Hat :</p> + +<ul> + <li><strong>Certificats de client SSL</strong> : Utilisés pour identifier des client auprès de serveurs via SSL (authentification client). Généralement, l'identité du client est présumée être la même que celle d'un être humain, tel qu'un employé dans une entreprise. Voir <a href="#_L.27authentification_par_certificat"> L'authentification par certificat</a>, pour une description de la façon dont les certificats d'un client SSL sont utilisés pour l'authentification client. Les certificats d'un client SSL peuvent également être utilisés pour la signature de formulaires et comme composante d'une solution de l'ouverture de session unique.</li> +</ul> + +<dl> + <dt>Exemples </dt> + <dd>Une banque donne un certificat client SSL à l'un de ses usagers qui lui permet de s'identifier auprès du serveur de la banque et d'accéder à ses comptes. Une compagnie peut donner un certificat client SSL à l'un de ses nouveaux employés qui lui permet de s'identifier auprès du serveur de l'entreprise et d'obtenir accès aux ressources disponibles sur ce serveur.</dd> +</dl> + +<ul> + <li><strong>Certificats de serveur SSL</strong> : Utilisé pour identifier les serveurs auprès des client via SSL (authentification serveur). L'authentification serveur peut être utilisée avec ou sans authentification client. L'authentification serveur est obligatoire lors de l'établissement d'une connexion SSL chiffrée. Pour plus d'informations, voir <a href="#Le_protocole_SSL">Le protocole SSL</a>.</li> +</ul> + +<dl> + <dt>Exemple </dt> + <dd>Les sites internet de commerce électronique (communément appelé e-commerce) supportent habituellement l'authentification serveur par certificat, au minimum, pour établir une session SSL chiffrée et assure les clients qu'ils traitent avec un site identifié comme étant celui d'une entreprise donnée. La session SSL assure que les informations personnelles renseignées par le client et transmises par le réseau, telles que son numéro de carte de crédit, ne seront pas aisément interceptées.</dd> +</dl> + +<ul> + <li><strong>Certificats S/MIME</strong> : Utilisés pour signer et chiffrer les courriels. Comme pour les certificats client SSL, l'identité du client est généralement présumé être la même que celle d'un être humain, tel qu'un employé d'une entreprise. Un certificat unique peut être utilisé comme certificat S/MIME et comme certificat SSL (voir <a href="#Messages_sign.C3.A9s_et_chiffr.C3.A9s">Messages signés et chiffrés</a>). Les certificats S/MIME peuvent également être utilisés pour la signature de formulaires et comme composante d'une solution de l'ouverture de session unique.</li> +</ul> + +<dl> + <dt>Exemples </dt> + <dd>Une entreprise déploie des certificats combinés S/MIME et SSL dans l'unique but d'authentifier l'identité des employés, permettant ainsi la signature de messages et l'authentification de client SSL, mais pas le chiffrage des messages. Une autre entreprise émet des certificats S/MIME uniquement dans le but de signer et de chiffrer les messages de natures financière ou légale qu'elle envoie.</dd> +</dl> + +<ul> + <li><strong>Certificats de signature d'objet</strong> : Utilisés pour identifier les signataires de code Java, de scripts JavaScript, ou d'autres fichiers signés. Pour plus d'informations, voir <a href="#Signature_d.27objets">Signature d'objets</a>.</li> +</ul> + +<dl> + <dt>Exemple </dt> + <dd>Une entreprise de logiciel signe les logiciels qu'elle distribue par Internet pour fournir l'assurance à ses utilisateurs que le logiciel est un produit légitime. L'utilisation des certificats et des signatures numériques de cette façon peut également servir pour que les utilisateurs identifient et contrôlent l'accès à leurs ordinateurs des logiciels téléchargés.</dd> +</dl> + +<ul> + <li><strong>Certificats d'AC</strong> : Utilisés pour identifier les autorités de certification (AC). Les logiciels client et serveur utilisent les certificats d'AC pour déterminer quelles autres certifications peuvent être de confiance. Pour plus d'informations, voir <a href="#Utilisation_des_certificats_d.27AC_pour_.C3.A9tablir_la_confiance">Utilisation des certificats d'AC pour établir la confiance</a>.</li> +</ul> + +<dl> + <dt>Exemple </dt> + <dd>Les certificats d'AC stockés dans <em>Communicator</em> déterminent quels autres certificats peuvent être utilisés pour l'authentification. Un administrateur peut implémenter certains aspects de la politique de sécurité de son entreprise en contrôlant les certificats d'AC stockés dans les <em>Communicator</em> de chaque utilisateur.</dd> +</dl> + +<p>Les sections ci-dessous décrivent l'utilisation des certificats dans les produits Red Hat.</p> + +<h4 id="Le_protocole_SSL">Le protocole SSL</h4> + +<p>Le protocole <em>Secure Sockets Layer</em> (SSL) est un ensemble de règles gouvernant l'authentification serveur, l'authentification client et les communications encryptées entre des serveurs et des clients. SSL est largement utilisé sur Internet, particulièrement pour les interactions mettant en œuvre l'échange d'informations confidentielles telles que les numéros de cartes de crédit.</p> + +<p>SSL requiert un certificat SSL serveur, au minimum. Comme partie du processus de négociation, le serveur présente son certificat au client afin d'authentifier son identité. Le processus d'authentification utilise le chiffrement par clef privée et les signatures numériques pour confirmer que ce serveur est bien celui-ci qu'il prétend être. Une fois le serveur authentifié, le client et le serveur utilisent des techniques de chiffrement à clefs symétriques, ce qui est rapide, pour chiffrer toutes les informations qu'ils échangent pour le reste de la session et pour détecter toutes tentatives d'altération des données qui peuvent arriver.</p> + +<p>Les serveurs peuvent éventuellement être configurés pour demander l'authentification client aussi bien que l'authentification serveur. Dans ce cas, après le succès de l'authentification serveur, le client doit à son tour présenter son certificat au serveur afin d'authentifier son identité avant qu'une connexion SSL ne puisse s'établir.</p> + +<p>Pour une présentation de l'authentification client avec SSL et ses différences par rapport à authentification par mot de passe, voir « <a href="#L.27authentification_confirme_une_identit.C3.A9"> L'authentification confirme une identité</a> ». Pour des informations plus détaillées à propos de SSL, voir « <a href="/fr/Introduction_à_SSL" title="fr/Introduction_à_SSL">Introduction à SSL</a> ».</p> + +<h4 id="Messages_signés_et_encryptés">Messages signés et encryptés</h4> + +<p>Certains logiciels de courriers électroniques (y compris Messenger, qui fait parti de Communicator) supportent les messages chiffrés et numériquement signés suivant un protocole largement accepté connu sous le nom de <em>Secure Multipurpose Internet Mail Extension</em> (S/MIME). L'utilisation de S/MIME pour signer et chiffrer des messages requiert que l'expéditeur possède un certificat S/MIME.</p> + +<p>Un message électronique qui comprend une signature numérique fournit l'assurance qu'il a bien été envoyé par la personne dont le nom apparaît dans l'en-tête du message, authentifiant ainsi l'expéditeur. Si la signature numérique ne peut pas être validée pour le courrieleur à la fin de la réception, l'utilisateur est alerté.</p> + +<p>La signature numérique est unique au message qu'elle accompagne. Si le message reçu diffère de quelque manière que se soit du message qui a été envoyé - même par l'ajout ou la suppression d'une virgule - la signature numérique ne peut pas être validée. Par conséquent un message signé fournit aussi une certaine assurance que les données qu'il contient n'ont pas été altérées. Comme on l'a vu au début de ce document, cette sorte d'assurance est connue sous le nom de non répudiation. En d'autres termes, lorsqu'un message est signé, il est très difficile à l'expéditeur de nier l'avoir envoyé. Ceci est capital pour de nombreuses formes de communications commerciales. Pour plus d'informations à propose du mécanisme de signature numérique, voir « <a href="/fr/Introduction_à_la_cryptographie_à_clef_publique/Signatures_numériques" title="fr/Introduction_à_la_cryptographie_à_clef_publique/Signatures_numériques">Signatures numériques</a> ».</p> + +<p>S/MIME rend également possible le chiffrement symétrique (chiffrement à clefs publiques) des messages électroniques. C'est aussi important pour certains utilisateur professionnels. Cependant, l'utilisation du chiffrement pour les messages requiert une gestion soigneuse. Si le destinataire des messages chiffrés perd sa clef et qu'il n'a pas de sauvegarde de la clef, par exemple, les messages chiffrés ne pourront jamais être déchiffrés.</p> + +<h4 id="Signature_de_formulaire">Signature de formulaire</h4> + +<p>De nombreuses formes de e-commerce requièrent la possibilité de fournir une preuve persistante qu'une personne a autorisé une transaction. Bien que SSL fournisse une authentification cliente limitée à la durée de la connexion, il ne fournit pas d'authentification persistante pour les transactions pouvant intervenir pendant cette connexion SSL. S/MIME fournit une authentification persistante pour les messages électroniques, mais le e-commerce utilise souvent des formulaires dans des pages Web plutôt que l'échange de courriel.</p> + +<p>La technologie Red Hat connue sous le nom de <em>signature de formulaire</em> répond au besoin de l'authentification persistante des transactions financières. La signature de formulaire permet à un utilisateur d'associer une signature numérique avec les données Web générées comme résultat d'une transaction, telles qu'un ordre d'achat ou tout autre document financier. La clef privée associée avec soit le certificat SSL client, soit un certificat S/MIME peut être utilisée dans ce but.</p> + +<p>Lorsqu'un utilisateur clique sur le bouton « soumettre » d'un formulaire Web qui supporte la signature de formulaire, une boîte de dialogue affiche le texte exacte à signer. L'auteur du formulaire peut soit spécifier le certificat à utiliser soit sélectionner un certificat SSL ou S/MIME parmi ceux du client installés dans Communicator. Lorsque l'utilisateur clique sur « OK », le texte est signé et les deux (le texte et la signature numérique) sont envoyés au serveur. Le serveur peut alors utiliser un utilitaire Red Hat appelé <em>Signature Verification Tool</em> (Outil de Vérification de Signature) pour valider la signature numérique.</p> + +<p>Pour plus d'informations sur le support des signatures de formulaires dans les produits Red Hat, voir <em>Red Hat Form Signing</em>.</p> + +<h4 id="Ouverture_unique_de_session">Ouverture unique de session</h4> + +<p>Les utilisateurs doivent souvent retenir plusieurs mots de passe pour les différents services qu'ils utilisent. Par exemple, un utilisateur peut devoir saisir des mots de passe différents pour accéder au réseau, collecter ses messages, accéder à un répertoire, utiliser le service d'agenda de son entreprise et accéder à une grande variété de serveurs. La multiplication des mots de passe devient vite un casse-tête pour les utilisateurs comme pour les administrateurs. Les utilisateurs ayant des difficultés à retenir leurs mots de passe ont tendances à en choisir de faible force et à les écrire dans des endroits accessibles. Les administrateurs doivent maintenir une base de données séparée de mot de passe sur chaque serveur et traiter des problèmes potentiels de sécurité liés au fait que des mots de passe sont envoyés sur le réseau par habitude et fréquemment.</p> + +<p>La solution à ce problème requiert un moyen pour l'utilisateur d'ouvrir une session unique, en utilisant un mot de passe unique, et d'obtenir un accès authentifié à toutes les ressources du réseau que l'utilisateur est autorisé à employer - sans envoyer aucun autre mot de passe. Cette possibilité est connue comme <em>ouverture de session unique</em>.</p> + +<p>Both client SSL certificates and S/MIME certificates can play a significant role in a</p> + +<p>Les certificats clients SSL et S/MIME permettent tous deux d'implémenter une ouverture de session unique, voir "<a href="#_L.27authentification_par_certificat">L'authentification par certificat</a>" pour un exemple d'ouverture de session unique basée sur SSL.</p> + +<p>L'utilisateur se connecte à sa base de donnée locale de clé privée à l'aide d'un mot de passe. Puis utilise une clé privée pour signer ses messages et ainsi s'authentifier auprès de tous les serveurs nécessitant une authentification client SSL. Remarquez que dans ce processus le mot de passe n'est pas envoyé à travers le réseau. Cela simplifie l'accès du client au serveur d'une part et la gestion d'authentification côté serveur d'autre part. </p> + +<p>En plus de l'utilisation des certificats, une solution d'ouverture de session unique complète doit être capable d'interopérer avec les systèmes d'entreprise, tels que les systèmes d'exploitation sous-jacents qui s'appuient sur les mots de passe ou toutes autres formes d'authentification.</p> + +<h4 id="Signature_d'objet">Signature d'objet</h4> + +<p>Communicator supporte un ensemble d'outils et de technologies appelés <em>signature d'objet</em>. La signature d'objet utilise des techniques standard de cryptographie à clef publique pour permettre aux utilisateurs d'obtenir des informations fiables à propos du code qu'ils téléchargent de la même façon qu'ils peuvent obtenir des informations fiables à propos des logiciels <em>prêt-à-installer</em>.</p> + +<p>Plus important, la signature d'objet aide les utilisateurs et les administrateurs réseaux à prendre des décisions concernant les logiciels distribués par Internet ou intranet — par exemple, autoriser ou non les applets Java signés par une entité donnée à utiliser certaines fonctionnalités spécifiques d'un ordinateur.</p> + +<p>Les « objets » signés avec les technologies de signature d'objet peuvent être des applets ou tout autre code Java, scripts JavaScript, plugins, ou tout autre type de fichiers. La « signature » est une signature numérique. Les objets signés et leur signature sont généralement stockés dans une archive spéciale appelé archive <code>JAR</code>.</p> + +<p>Les développeurs de logiciels et toute personne désireuse de signer des fichiers à l'aide de cette technique doit tout d'abord obtenir un certificat de signature d'objet.</p> + +<h3 id="Contenu_d'un_certificat">Contenu d'un certificat</h3> + +<p>Le contenu des certificats supportés par Red Hat et de nombreuses autres éditeurs de logiciels sont organisés selon la spécification de certificat X.509 v3, qui a été recommandée par l'International Telecommunications Union (ITU), une organisation de standardisation internationale, depuis 1988.</p> + +<p>Les utilisateurs n'ont généralement pas besoin de connaître le contenu exact d'un certificat. Cependant les administrateurs système travaillant avec les certificats peuvent avoir besoin de se familiariser avec les informations qu'il contient.</p> + +<h4 id="Noms_distincts">Noms distincts</h4> + +<p>Un certificat X.509 v3 relie un nom distinct (<em>distinguished name</em> ou DN en anglais) à une clef publique. Un DN est une série de paires nom-valeur, telle que <code>uid=martin</code>, qui identifie de façon unique une entité (qui est le « sujet » du certificat).</p> + +<p>Par exemple, voici ce que donnerait le DN typique d'un employé de Red Hat, Inc.:</p> + +<pre>uid=martin,e=martin@<code>exemple.net</code>,cn=Jean Martin,o=Red Hat, Inc.,c=FR +</pre> + +<p>Les abréviation devant chaque signe égale « = » de cet exemple on les significations suivantes :</p> + +<ul> + <li><code>uid</code> : ID utilisateur</li> + <li><code>e</code> : adresse électronique</li> + <li><code>cn</code> : le nom courant de l'utilisateur</li> + <li><code>o</code> : organisation</li> + <li><code>c</code> : pays</li> +</ul> + +<p>Les DN peuvent inclure une grande variété d'autres paires nom-valeur. Elles sont utilisées pour identifier à la fois les sujets du certificat et les entrés dans les annuaires qui supportent LDAP (Lightweight Directory Access Protocol).</p> + +<p>Les règles régissant la construction des DN peuvent parfois être complexes et ne font pas parties de l'objectif de ce document. Pour de plus amples informations à propos des DN, voir <em><a class="external" href="http://www.ietf.org/rfc/rfc1485.txt">A String Representation of Distinguished Names (en)</a></em>.</p> + +<h4 id="Un_certificat_typique">Un certificat typique</h4> + +<p>Chaque certificat de type X.509 comprend deux sections :</p> + +<ul> + <li>La section <em>données</em> inclut les informations suivantes : + + <ul> + <li>Le numéro de version du standard X.509 supporté par le certificat.</li> + <li>Le numéro de série du certificat. Chaque certificat émis par une autorité de certification (AC) a un numéro de série unique parmi les certificats émis par cette AC.</li> + <li>Informations</li> + <li>Informations concernant la clef publique de l'utilisateur, comprenant l'algorithme utilisé et une représentation de la clef elle-même.</li> + <li>Le DN de l'AC émettrice du certificat.</li> + <li>La période de validité du certificat (par exemple, entre le 15 novembre 1999 à 13 h 00 et le 15 novembre 2000 à 13 h 00).</li> + <li>Le DN du sujet du certificat (par exemple, dans un certificat client SSL, le DN de l'utilisateur), également appelé le nom du sujet.</li> + <li>Des <em>extensions de certificat</em> optionnelles, pouvant fournir des données supplémentaires utilisées par le client ou le serveur. Par exemple, l'extension de certificat <em>type</em> indique le type auquel appartient le certificat : un certificat client SSL, un certificat serveur SSL, un certificat de signature de message, etc. Les extensions de certificat peuvent également être utilisées pour d'autres raisons.</li> + </ul> + </li> + <li>La section <em>signature</em> inclut les informations suivantes : + <ul> + <li>L'algorithme de cryptographie, ou chiffrement, utilisé par l'AC émettrice pour créer sa propre signature numérique. Pour plus d'informations à propos des chiffrements, voir "<a href="/fr/Introduction_à_SSL" title="fr/Introduction_à_SSL">Introduction à SSL</a>."</li> + <li>La signature numérique de l'AC, obtenue par le hachage de toutes les données contenues dans le certificat et chiffrée avec la clef privée de l'AC.</li> + </ul> + </li> +</ul> + +<p>Voici les sections de données et de signature d'un certificat dans un format lisible par un être humain :</p> + +<pre>Certificate: +Data: + Version: v3 (0x2) + Serial Number: 3 (0x3) + Signature Algorithm: PKCS #1 MD5 With RSA Encryption + Issuer: OU=Ace Certificate Authority, O=Ace Industry, C=US + Validity: + Not Before: Fri Oct 17 18:36:25 1997 + Not After: Sun Oct 17 18:36:25 1999 + Subject: CN=Jane Doe, OU=Finance, O=Ace Industry, C=US + Subject Public Key Info: + Algorithm: PKCS #1 RSA Encryption + Public Key: + Modulus: + 00:ca:fa:79:98:8f:19:f8:d7:de:e4:49:80:48:e6:2a:2a:86: + ed:27:40:4d:86:b3:05:c0:01:bb:50:15:c9:de:dc:85:19:22: + 43:7d:45:6d:71:4e:17:3d:f0:36:4b:5b:7f:a8:51:a3:a1:00: + 98:ce:7f:47:50:2c:93:36:7c:01:6e:cb:89:06:41:72:b5:e9: + 73:49:38:76:ef:b6:8f:ac:49:bb:63:0f:9b:ff:16:2a:e3:0e: + 9d:3b:af:ce:9a:3e:48:65:de:96:61:d5:0a:11:2a:a2:80:b0: + 7d:d8:99:cb:0c:99:34:c9:ab:25:06:a8:31:ad:8c:4b:aa:54: + 91:f4:15 + Public Exponent: 65537 (0x10001) + Extensions: + Identifier: Certificate Type + Critical: no + Certified Usage: + SSL Client + Identifier: Authority Key Identifier + Critical: no + Key Identifier: + f2:f2:06:59:90:18:47:51:f5:89:33:5a:31:7a:e6:5c:fb:36: + 26:c9 + Signature: + Algorithm: PKCS #1 MD5 With RSA Encryption + Signature: + 6d:23:af:f3:d3:b6:7a:df:90:df:cd:7e:18:6c:01:69:8e:54:65:fc:06: + 30:43:34:d1:63:1f:06:7d:c3:40:a8:2a:82:c1:a4:83:2a:fb:2e:8f:fb: + f0:6d:ff:75:a3:78:f7:52:47:46:62:97:1d:d9:c6:11:0a:02:a2:e0:cc: + 2a:75:6c:8b:b6:9b:87:00:7d:7c:84:76:79:ba:f8:b4:d2:62:58:c3:c5: + b6:c1:43:ac:63:44:42:fd:af:c8:0f:2f:38:85:6d:d6:59:e8:41:42:a5: + 4a:e5:26:38:ff:32:78:a1:38:f1:ed:dc:0d:31:d1:b0:6d:67:e9:46:a8: + d:c4 +</pre> + +<p>Voici le même certificat affiché au format d'encodage 64 bytes interprété par un logiciel :</p> + +<pre> -----BEGIN CERTIFICATE----- + MIICKzCCAZSgAwIBAgIBAzANBgkqhkiG9w0BAQQFADA3MQswCQYDVQQGEwJVUzER + MA8GA1UEChMITmV0c2NhcGUxFTATBgNVBAsTDFN1cHJpeWEncyBDQTAeFw05NzEw + MTgwMTM2MjVaFw05OTEwMTgwMTM2MjVaMEgxCzAJBgNVBAYTAlVTMREwDwYDVQQK + EwhOZXRzY2FwZTENMAsGA1UECxMEUHViczEXMBUGA1UEAxMOU3Vwcml5YSBTaGV0 + dHkwgZ8wDQYJKoZIhvcNAQEFBQADgY0AMIGJAoGBAMr6eZiPGfjX3uRJgEjmKiqG + 7SdATYazBcABu1AVyd7chRkiQ31FbXFOGD3wNktbf6hRo6EAmM5/R1AskzZ8AW7L + iQZBcrXpc0k4du+2Q6xJu2MPm/8WKuMOnTuvzpo+SGXelmHVChEqooCwfdiZywyZ + NMmrJgaoMa2MS6pUkfQVAgMBAAGjNjA0MBEGCWCGSAGG+EIBAQQEAwIAgDAfBgNV + HSMEGDAWgBTy8gZZkBhHUfWJM1oxeuZc+zYmyTANBgkqhkiG9w0BAQQFAAOBgQBt + I6/z07Z635DfzX4XbAFpjlRl/AYwQzTSYx8GfcNAqCqCwaSDKvsuj/vwbf91o3j3 + UkdGYpcd2cYRCgKi4MwqdWyLtpuHAH18hHZ5uvi00mJYw8W2wUOsY0RC/a/IDy84 + hW3WWehBUqVK5SY4/zJ4oTjx7dwNMdGwbWfpRqjd1A== + -----END CERTIFICATE----- + +</pre> + +<h3 id="Utiliser_les_certificats_pour_établir_la_confiance">Utiliser les certificats pour établir la confiance</h3> + +<p>Les autorités de certification (AC) sont des entités qui valident l'identité et l'émission des certificats. Elles peuvent être des organismes indépendants ou des entreprises qui utilisent leur propre logiciel d'émission de certificats (tel que <em>Red Hat Certificate System</em>).</p> + +<p>Tout logiciel client ou serveur qui supporte les certificats maintient une liste des certificats d'AC de confiance. Ces certificats d'AC déterminent quels autres certificats le logiciel peut valider - en d'autres mots, dans quels émetteurs de certificats le logiciel peut avoir confiance. Dans le cas le plus simple, le logiciel ne peut valider que les certificats émis par une des AC pour lesquelles il possède le certificat. Il est également possible pour un certificat d'une AC de confiance de faire parti d'une chaîne de certificats d'AC, chacun émis par l'AC parente dans la hiérarchie de certificat.</p> + +<p>Les sections suivantes expliquent comment les hiérarchies et les chaînes de certificats déterminent les logiciels de confiance.</p> + +<ul> + <li><a href="#Hi.C3.A9rarchies_d.27AC">Hiérarchies d'AC</a></li> + <li><a href="#Cha.C3.AEnes_de_certificat">Chaînes de certificat</a></li> + <li><a href="#V.C3.A9rification_d.27une_cha.C3.AEne_de_certificat">Vérification d'une chaîne de certificat</a></li> +</ul> + +<h4 id="Hiérarchies_d'AC">Hiérarchies d'AC</h4> + +<p>Dans les grandes organisations, il peut être judicieux de déléguer la responsabilité de l'émission des certificats à plusieurs autorités de certification. Par exemple, le nombre de certificats requis peut être trop important à maintenir par une seule AC ; les différents services de l'organisation peuvent avoir différentes politiques d'attribution des certificats ; ou il peut être important pour l'AC d'être physiquement localisée dans la même zone géographique que les personnes auxquelles elle délivre les certificats.</p> + +<p>Il est possible de déléguer la responsabilité de l'émission de certificats à des AC subordonnées. Le standard X.509 inclus un modèle de paramétrage d'une hiérarchie d'AC telle celle montrée à la Figure 6.</p> + +<p><img alt="Figure 6. Exemple de hiérarchie d'AC" class="internal" src="/@api/deki/files/1166/=14HIER.gif"></p> + +<p>Dans ce modèle, l'AC racine est au sommet de la hiérarchie. Le certificat de l'AC racine est un « certificat auto-signé » : c'est-à-dire que le certificat est signé numériquement par la même entité — L'AC racine — que celle que le certificat identifie. Les AC directement subordonnées à l'AC racine on des certificats d'AC signés par l'AC racine. Les AC se trouvant sous les AC subordonnées dans la hiérarchie ont leurs certificats signés par les plus hautes AC subordonnées.</p> + +<p>Les organisations ont une grande flexibilité quant à l'établissement de leurs hiérarchies d'AC. La figure 6 ne montre qu'un exemple ; beaucoup d'autres hiérarchies sont possibles.</p> + +<h4 id="Chaînes_de_certificat">Chaînes de certificat</h4> + +<p>Les hiérarchie d'AC se reflètent dans les chaînes de certificats. Une <em>chaîne de certificats</em> est une série de certificats émis par des AC successives. La figure 7 montre une chaîne de certificats <strong>leading from a certificate that identifies some entity through two subordinate CA certificates to the CA certificate for the root CA (based on the CA hierarchy shown in Figure 6).</strong></p> + +<p><img alt="Figure 7. Exemple de chaîne de certificat" class="internal" src="/@api/deki/files/1167/=15chn.gif"></p> + +<p>Une chaîne de certificats trace le chemin des certificats d'une branche de la hiérarchie jusqu'à la racine. Dans une chaîne de certificats, on a donc :</p> + +<ul> + <li>chaque certificat est suivi par le certificat de son émetteur.</li> + <li>chaque certificat contient le nom (DN) de l'émetteur du certificat, qui est identique à celui du nom du sujet du certificat suivant dans la chaîne.</li> +</ul> + +<p>Dans la figure 7, Le certificat <em>Engineering CA</em> contient le DN de l'AC (qui est <em>USA CA</em>), qui a émis le certificat. Le DN de <em>USA CA</em> est également le nom du sujet du prochain certificat dans la chaîne.</p> + +<ul> + <li>Chaque certificat est signé avec la clef privée de son émetteur. La signature peut être vérifiée avec la clef publique du certificat de l'émetteur, qui est le prochain certificat dans la chaîne.</li> +</ul> + +<p>Dans la figure 7, la clef publique dans le certificat de <em>USA CA</em> peut être utilisée pour vérifier que la signature numérique de <em>USA CA</em> dans le certificat de <em>Engineering CA</em>.</p> + +<h4 id="Vérification_d'une_chaîne_de_certificat">Vérification d'une chaîne de certificat</h4> + +<p>La vérification de la chaîne de certificats est le processus permettant de s'assurer que la chaîne de certificats donnée est bien formée, proprement signée et sécurisée. Les logiciels Red Hat utilisent la procédure suivante pour former et vérifier une chaîne de certificats, en commençant par le certificat présenté pour l'authentification :</p> + +<ol> + <li>La période de validité du certificat est vérifiée par rapport à la date actuelle fournie par l'horloge système du vérificateur.</li> + <li>Le certificat de l'émetteur est localisé. La source peut être une base de certificats locale du vérificateur (du client ou du serveur) ou une chaîne de certificats fournit par le sujet (par exemple, par une connexion SSL).</li> + <li>La signature du certificat est vérifiée à l'aide de la clef publique du certificat de l'émetteur.</li> + <li>Si le certificat de l'émetteur est présent dans les certificats de confiance du vérificateur, la vérification s'arrête avec succès à cette étape. Autrement, le certificat de l'émetteur est vérifié pour être certain qu'il contient les indications appropriées concernant les AC subordonnées dans l'extension du type de certificat de Red Hat, et la chaîne de vérification recommence depuis l'étape 1, mais avec le nouveau certificat. La figure 8 présente un exemple de ce processus.</li> +</ol> + +<p><img alt="Figure 8. Vérification d'un chaîne de certificats complète, jusqu'à l'AC racine" class="internal" src="/@api/deki/files/1168/=16chver.gif"></p> + +<p>La figure 8 décrit ce qui se passe lorsque seule l'AC racine est incluse dans la base locale de certificats du vérificateur. Si un certificat d'une des AC intermédiaires présentes dans cette figure, telle que <em>Engineering CA</em>, est trouvé dans la base locale de certificats du vérificateur, la vérification s'arrête à ce certificat, comme décrit à la figure 9.</p> + +<p><img alt="Figure 9. Vérification d'une chaîne de certificats, jusqu'à une AC intermédiaire" class="internal" src="/@api/deki/files/1169/=19chver.gif"></p> + +<p>Des dates de validité expirées, une signature invalide ou l'absence d'un certificat pour l'AC émettrice à n'importe quelle étape de la chaîne de certificats provoquera un échec de l'authentification. Par exemple, la figure 10 montre l'échec d'une vérification si le certificat de l'AC racine ou celui d'une AC intermédiaire ne sont pas présent dans la base locale de certificats du vérificateur.</p> + +<p><img alt="Figure 10. Une chaîne de certificat qui ne peut pas être vérifiée" class="internal" src="/@api/deki/files/1170/=20chver.gif"></p> + +<p>Pour des informations générales sur le fonctionnement des signatures numériques, voir « <a href="/fr/Introduction_à_la_cryptographie_à_clef_publique/Signatures_numériques" title="fr/Introduction_à_la_cryptographie_à_clef_publique/Signatures_numériques">Signatures numériques</a> ». Pour une description plus détaillée sur le processus de vérification des signatures dans le contexte d'une authentification SSL client-serveur, voir « <a href="/fr/Introduction_à_SSL" title="fr/Introduction_à_SSL">Introduction à SSL</a> ».</p> + +<p>{{PreviousNext("Introduction à la cryptographie à clef publique:Signatures numériques", "Introduction à la cryptographie à clef publique:Gestion des certificats", "Gestion des certificats")}}</p> diff --git a/files/fr/orphaned/introduction_à_la_cryptographie_à_clef_publique/chiffrement_et_déchiffrement/index.html b/files/fr/orphaned/introduction_à_la_cryptographie_à_clef_publique/chiffrement_et_déchiffrement/index.html new file mode 100644 index 0000000000..6abf3ba1dc --- /dev/null +++ b/files/fr/orphaned/introduction_à_la_cryptographie_à_clef_publique/chiffrement_et_déchiffrement/index.html @@ -0,0 +1,55 @@ +--- +title: Chiffrement et déchiffrement +slug: Introduction_à_la_cryptographie_à_clef_publique/Chiffrement_et_déchiffrement +tags: + - Sécurité +--- +<p>Le chiffrement est un processus de transformation des informations de façon à les rendre inintelligibles à toute personne autre que le destinataire. Le déchiffrement est le processus inverse du chiffrement, il sert à transformer les informations de façon à les rendre à nouveau intelligibles. Un algorithme de cryptographie, également appelé chiffre, est une fonction mathématique utilisée pour le chiffrement ou le déchiffrement. Dans la plupart des cas, deux fonctions complémentaires sont employées, l'une pour le chiffrement et la second pour le déchiffrement.</p> + +<p>Dans la cryptographie moderne, la possibilité de conserver des informations secrètes ne se fait pas à partir de l'algorithme de cryptographie, largement connu, mais avec un nombre appelé clef qui doit être utilisé avec l'algorithme de cryptographie afin de produire un résultat chiffré ou pour déchiffrer des informations précédemment chiffrées. Le déchiffrement avec la bonne clef est simple. Sans cette clef, il devient très difficile et dans certains cas impossible pour tous les besoins pratiques.</p> + +<p>Les sections suivantes introduisent à l'utilisation des clefs pour le chiffrement et le déchiffrement.</p> + +<ul> + <li><a href="#Chiffrement_par_clef_sym.C3.A9trique">Chiffrement par clef symétrique</a></li> + <li><a href="#Chiffrement_par_clef_publique">Chiffrement par clef publique</a></li> + <li><a href="#Longueur_de_clef_et_force_du_chiffrement">Longueur de clef et force du chiffrement</a></li> +</ul> + +<h3 id="Chiffrement_par_clef_sym.C3.A9trique" name="Chiffrement_par_clef_sym.C3.A9trique">Chiffrement par clef symétrique</h3> + +<p>Avec le chiffrement par clef symétrique, le chiffrement peut être calculé avec la clef de déchiffrement et vice versa. Avec la plupart des algorithme symétrique, la même clef est utilisée pour le chiffrement et le déchiffrement, comme indiqué sur la figure 1.</p> + +<p><img alt="Figure 1. Chiffrement par clef symétrique"></p> + +<p>L'implémentation d'un chiffrement par clef symétrique peut être hautement efficace, ainsi les utilisateurs ne subissent pas de longs délais d'attente lors du chiffrement ou du déchiffrement. Le chiffrement par clef symétrique fournit un haut degré d'authentification, car les informations chiffrées avec une clef symétrique ne peuvent pas être déchiffrées avec une clef symétrique différente. Ainsi, tant que la clef symétrique est gardée secrète par les deux correspondants qui l'utilise pour le chiffrement de leurs communications, chacun d'eux est assuré qu'il communique bien avec l'autre aussi longtemps que les messages déchiffrés ont un sens.</p> + +<p>Le chiffrement par clef symétrique est efficace tant que les deux parties en présence gardent la clef secrète. Si quelqu'un d'autre découvre la clef, cela met en cause la confidentialité et l'authenticité des informations échangées. Une personne possédant une clef symétrique non autorisée peut non seulement déchiffrer les messages envoyé avec cette clef, mais elle peut également chiffrer de nouveaux messages et les envoyer comme s'ils provenaient d'un des deux correspondants qui utilisait originellement la clef.</p> + +<p>Le chiffrement par clef symétrique joue un rôle important dans le protocole SSL, qui est largement utilisé pour l'authentification, la détection des altérations de données, et le chiffrement sur les réseaux TCP/IP. SSL utilise également les techniques de chiffrement par clef publique qui est décrit dans la section suivante.</p> + +<h3 id="Chiffrement_par_clef_publique" name="Chiffrement_par_clef_publique">Chiffrement par clef publique</h3> + +<p>Les implémentations du chiffrement à clef publique les plus communément utilisées sont fondées sur des algorithmes brevetés par<em>RSA Data Security</em>. Par conséquent, cette section décrit l'approche RSA du chiffrement à clef publique.</p> + +<p>Le chiffrement à clef publique (également appelé chiffrement asymétrique) utilise une paire de clefs, l'une publique et l'autre privée, associées à une entité qui a besoin d'authentifier son identité de façon électronique ou de chiffrer des données. La clef publique est publiée et la clef privée correspondante est conservée secrète par l'entité. Pour plus d'informations sur les moyens de publication des clefs publiques, voir « <a href="fr/Introduction_%c3%a0_la_cryptographie_%c3%a0_clef_publique/Certificats_et_authentification">Certificats et Authentification</a> ». Les données chiffrées avec la clef publique ne peuvent être déchiffrées qu'avec votre clef privée. <a href="#Figure2">Figure 2</a> montre une vue simplifiée du fonctionnement du chiffrement par clef publique.</p> + +<p><img alt="Figure 2. Chiffrement par clef publique"></p> + +<p>Dans le schéma de la Figure 2, vous distribuez librement une clef publique, et vous seul serez capable de lire les données chiffrées en utilisant cette clef. En général, pour envoyer des données chiffrées à quelqu'un, vous chiffrez les données avec la clef publique de cette personne, et le destinataire des données chiffrées les déchiffrera avec la clef privée correspondante.</p> + +<p>Comparée au chiffrement par clef symétrique, le chiffrement par clef publique requiert plus de calcul et il n'est donc pas toujours adapté pour de grandes quantités de données. Cependant, il est possible d'utiliser le chiffrement par clef publique pour envoyer une clef symétrique, qui peut alors être utilisée pour chiffrer des données supplémentaires. C'est cette approche qu'utilise le <a href="fr/Introduction_%c3%a0_SSL#Le_protocole_SSL">protocole SSL</a>.</p> + +<p>Comme cela peut arriver, l'opération inverse de celle décrite dans la figure 2 est également possible : les données chiffrées avec votre clef privée ne peuvent être déchiffrées qu'avec votre clef public. Cependant ce n'est pas le meilleur moyen de chiffrer des données sensibles, car cela signifie que n'importe qui possédant votre clef publique, qui par définition est publiée, pourra déchiffrer les données. Néanmoins, le chiffrement par clef publique est utile, parce qu'il signifie que vous pouvez utiliser votre clef privée pour signer des données avec votre signature numérique - une condition importante pour le commerce électronique ou tout autre application commerciale de la cryptographie. Les logiciels clients tels que Netscape Communicator peuvent alors utiliser votre clef publique pour confirmer que le message a été signé avec votre clef privée et qu'il n'a pas été altéré depuis sa signature. « <a href="fr/Introduction_%c3%a0_la_cryptographie_%c3%a0_clef_publique/Signatures_num%c3%a9riques">Signatures numériques</a> » et les sections suivantes décrivent le fonctionnement du processus de confirmation.</p> + +<h3 id="Longueur_de_clef_et_force_du_chiffrement" name="Longueur_de_clef_et_force_du_chiffrement">Longueur de clef et force du chiffrement</h3> + +<p>En général, la force d'un chiffrement est rapporté à la difficulté à casser la clef, qui dépend à la foi du chiffrement utilisé et de la longueur de la clef. Par exemple, la difficulté de découvrir la clef du chiffrement RSA le plus communément utilisé pour le chiffrement par clef publique dépend de la difficulté de factoriser de grands nombres, un problème mathématique bien connu.</p> + +<p>La force d'un chiffrement est souvent décrite en terme de taille des clefs utilisées pour l'encryptage : en général, les plus longues clefs fournissent les plus forts chiffrements. La longueur d'une clef se mesure en bits. Par exemple, des clefs de 128 bits utilisées avec un chiffrement par clef symétrique RC4 supportées par SSL fournissent significativement une meilleure protection cryptographique que des clefs de 40 bits associées au même chiffrement. En gros, un chiffrement RC4 128 bits est 3 x 10<sup>26</sup> fois plus fort qu'un chiffrement RC4 40 bits. Pour plus d'informations à propos de RC4 et des autres chiffrements utilisés avec SSL, voir « <a href="fr/Introduction_%c3%a0_SSL">Introduction à SSL</a> ».</p> + +<p>Les différent chiffrements peuvent requérir différentes longueurs de clef pour parvenir au même niveau de cryptage. Le chiffrement RSA utilisé pour le chiffrement par clef publique, par exemple, ne peut utiliser qu'un sous-ensemble de toutes les valeurs possibles pour une clef d'une longueur donnée, à cause de la nature du problème mathématique sur lequel il est basé. Les autres chiffrements, tels que ceux utilisés par le chiffrement à clef symétrique, peuvent utiliser toutes les valeurs possibles pour une clef de longueur donnée, plutôt qu'un sous-ensemble de ces valeurs. Ainsi, une clef de 128 bits associée à un chiffrement par clef symétrique fournira un meilleur cryptage des données qu'une clef de 128 bits associée à un chiffrement RSA par clef publique. Cette différence explique pourquoi les chiffrement par clef publique RSA doivent utiliser des clefs de 512 bits (voire plus) pour être considérés forts du point du vue cryptographique, alors que les chiffrements par clef symétrique peuvent parvenir au même niveau de protection avec une clef de 64 bits. Même ce haut niveau de chiffrement peut être vulnérable aux attaques extérieures dans un futur proche.</p> + +<p>Parce que la possibilité d'intercepter clandestinement des informations chiffrées et de pouvoir les déchiffrer est historiquement une importante activité militaire, le gouvernement étasunien a restreint l'exportation de logiciels de cryptographie, incluant la plupart des logiciels permettant l'utilisation de clefs de chiffrement de plus de 40 bits</p> + +<p>{{PreviousNext("Introduction à la cryptographie à clef publique:Les problèmes de sécurité sur Internet", "Introduction à la cryptographie à clef publique:Signatures numériques")}}</p> diff --git a/files/fr/orphaned/introduction_à_la_cryptographie_à_clef_publique/gestion_des_certificats/index.html b/files/fr/orphaned/introduction_à_la_cryptographie_à_clef_publique/gestion_des_certificats/index.html new file mode 100644 index 0000000000..cd835c6f24 --- /dev/null +++ b/files/fr/orphaned/introduction_à_la_cryptographie_à_clef_publique/gestion_des_certificats/index.html @@ -0,0 +1,53 @@ +--- +title: Gestion des certificats +slug: Introduction_à_la_cryptographie_à_clef_publique/Gestion_des_certificats +tags: + - Sécurité +--- +<p>L'ensemble des standards et des services facilitant l'utilisation de la cryptographie à clef publique et des certificats X.509 v3 dans un environnement réseau est appelé <em>public key infrastructure</em> (PKI ou infrastructure à clef publique). La gestion de PKI est un sujet complexe qui dépasse le cadre de se document. Les sections qui suivent présentent quelques-uns des problèmes liés à la gestion de certificats qu'on retrouve dans les produits Red Hat.</p> + +<h3 id="Émission_de_certificats">Émission de certificats</h3> + +<p>Le processus d'émission d'un certificat dépend de l'autorité de certification qui l'a émis et du but dans lequel il l'a été. Les processus d'émission de formulaires non numériques varient de façons identiques. Par exemple, si vous désirez obtenir une carte d'identité générique (pas un permis de conduire) du Department of Motor Vehicles de l'état de California, les conditions sont claires : vous devez présenter un justificatif d'identité, tel qu'une facture à votre nom, et une carte d'étudiant. Si vous désirez un permis de conduire en bonne et due forme, vous devez en plus passer un test de conduite la première fois que vous le réclamez et un test sur le code de la route pour son renouvellement. Si vous voulez obtenir un permis de conduire commercial pour un 38-tonnes, les conditions sont plus exigeantes. Si vous vivez dans un autre état ou un autre pays, les conditions d'obtention de ces différents permis de conduire seront différentes.</p> + +<p>De même, les différentes autorités de certification ont différentes procédures d'émission des différents types de certificats. Dans certains cas, la seule condition pourra être votre adresse électronique. Dans d'autres cas, un nom d'utilisateur et un mot de passe vous seront demandés. À l'autre bout de l'échelle, pour les certificats identifiants des personnes pouvant prendre des décisions importantes, le processus d'émission pourra requérir des documents notariés, une enquête de fond et un entretien personnel.</p> + +<p>Selon les politiques de l'organisation, le processus d'émission des certificats peut soit être complètement transparent pour l'utilisateur, soit exiger une participation significative de l'utilisateur et des procédures complexes. En général, l'émission de certificats doit être flexible, ainsi les organisations peuvent les adapter à leurs besoins.</p> + +<p><a class="external" href="http://www.redhat.com/docs/manuals/cert-system/index.html">Red Hat Certificate System permet à une organisation de paramètrer sa propre autorité de certification et d'émission de certificats.</a></p> + +<p>L'émission de certificats est l'une des nombreuses tâches de gestion qui peuvent être déléguées à une autorité de certification indépendante.</p> + +<h3 id="Certificats_et_annuaire_LDAP">Certificats et annuaire LDAP</h3> + +<p>Le<em>Lightweight Directory Access Protocol</em> (LDAP) d'accès aux services d'annuaire propose une grande flexibilité pour la gestion des certificats d'une organisation. Les administrateurs systèmes peuvent stocker la plupart des informations requises par la gestion des certificats dans un annuaire compatible LDAP. Par exemple, une autorité de certification peut utiliser les informations contenues dans un annuaire pour préremplir un certificat avec les informations concernant un nouvel employé. L'autorité de certification peut niveler les informations de l'annuaire de nombreuses manières pour émettre les certificats un à un ou en groupe, en utilisant un éventail des différentes techniques d'identification en fonction de la politique de sécurité d'une organisation donnée. Les autres routines des tâches de gestion, telles que la gestion de clefs, le renouvellement ou la révocation de certificats, peuvent être partiellement ou pleinement automatisées à l'aide de l'annuaire.</p> + +<p>Les informations stockées dans l'annuaire peuvent également être utilisées en association avec les certificats pour contrôler l'accès aux différentes ressources disponibles sur un réseau en fonction des utilisateurs ou des groupes d'utilisateurs. L'émission de certificats et toutes les tâches de gestion des certificats font intégralement parties de la gestion des utilisateurs et des groupes d'utilisateurs.</p> + +<p>En général, les services d'annuaires performants sont une brique essentielle de toute stratégie de gestion des certificats. Red Hat<em>Directory Server</em> est pleinement intégré à Red Hat<em>Certificate System</em> afin de fournir une solution de gestion des certificats complète.</p> + +<h3 id="Gestion_des_clefs">Gestion des clefs</h3> + +<p>Avant d'émettre un certificat, la clef publique qu'il contient et la clef privée correspondante doivent être générées. Il est parfois plus utile d'émettre, pour une unique personne, un certificat et une paire de clefs pour les opérations de signature, et un second certificat et une paire de clefs pour les opérations de chiffrement. Séparer les certificats de signature et de chiffrement permet de conserver la clef de signature uniquement sur une machine local, assurant ainsi une non répudiation maximale, et de sauvegarder la clef privée de chiffrement dans un endroit centralisé où elle peut être récupérée au cas où l'utilisateur perdrait la clef originale ou quitterait l'entreprise.</p> + +<p>Les clefs peuvent être générées par un logiciel client ou générées de façon centralisée par l'autorité de certification puis distribuées aux utilisateurs via un annuaire LDAP. Il y a plusieurs options entrant dans le choix du type de génération des clefs, locale et centralisée. Par exemple, la génération locale des clefs assure une non répudiation maximale, mais elle peut induire une plus grande participation de l'utilisateur lors des étapes d'émission. La flexibilité des possibilités dans la gestion des clefs est essentielle pour la plupart des organisations.</p> + +<p><em>Le recouvrement de clef</em>, ou la capacité de récupérer une sauvegarde des clefs de chiffrement suivant des conditions bien définies, peut être un point important de la gestion des certificats (selon l'utilisation des certificats par l'organisation). Les schémas de recouvrement de clefs mettent habituellement en œuvre un mécanisme de type<em>m sur n</em> : par exemple,<em>m</em> dirigeants d'une organisation sur<em>n</em> doivent donner leur accord, chacun contribuant à l'aide d'un code (ou d'une clef) personnel et spécial, avant que la clef d'une personne en particulier puisse être récupérée. Ce type de mécanisme assure que plusieurs personnes autorisées doivent donner leur accord avant qu'une clef de chiffrement puisse être récupérée.</p> + +<h3 id="Renouvellement_et_révocation_de_certificats">Renouvellement et révocation de certificats</h3> + +<p>Comme un permis de conduire dans certains pays, un certificat spécifie une période de temps pendant laquelle il est valide. Les tentatives d'utilisation d'un certificat avant ou après la période de validité échoueront. Par conséquent, les mécanismes de gestion du renouvellement des certificats sont essentiels dans toute stratégie de gestion des certificats. Par exemple, un administrateur voudra être notifié automatiquement lorsqu'un certificat s'apprête à expirer, afin de compléter le processus de renouvellement approprié pendant le temps restant, sans gêner le détenteur du certificat. Le processus de renouvellement peut impliquer la réutilisation de la même paire de clefs publiques ou d'une nouvelle paire.</p> + +<p>Un permis de conduire peut être suspendu, même s'il n'est pas périmé - par exemple, suite à une décision de justice pour infraction grave au code de la route. De même, il est parfois nécessaire de révoquer un certificat avant sa date d'expiration - par exemple, si un employé quitte l'entreprise ou s'il est muté dans un autre service.</p> + +<p>La révocation des certificats peut être gérée de différentes manières. Pour certaines organisations, il peut être suffisant de paramétrer les serveurs afin que le processus d'authentification inclut la vérification de la présence du certificat présenté dans l'annuaire. Lorsqu'un administrateur révoque un certificat, le certificat peut être automatiquement supprimé de l'annuaire et ainsi toutes les tentatives d'authentification échoueront, même si le certificat reste valide dans tous les autres domaines. Une autre approche implique la publication d'une <em>Certificates Revocation List</em> (CRL ou liste de certificats révoquées) dans l'annuaire à intervalles réguliers et la vérification de cette liste lors du processus d'authentification. Pour d'autres organisation, il sera peut-être préférable de vérifier directement l'autorité de certification émettrice chaque fois qu'un certificat est présenté pour une authentification. Ce processus est parfois appelé vérification de l'état d'un certificat en temps réel.</p> + +<h3 id="Autorités_d'enregistrement">Autorités d'enregistrement</h3> + +<p>Les interactions entre les entités identifiées par des certificats (parfois appelées entités finales) et les autorités de certifications (AC, pour <em>Certificates Authority</em>) sont un élément essentiel de la gestion des certificats. Ces interactions incluent les opérations telles que l'enregistrement de la certification, le recouvrement, le renouvellement ou la révocation de certificats, et la sauvegarde et le recouvrement de clefs. En général, une AC (Autorité de certification) doit être en mesure d'authentifier les identités des entités finales avant de répondre à leurs requêtes. De plus, certaines requêtes doivent être approuvées par un administrateur autorisé ou un gestionnaire afin d'aboutir.</p> + +<p>Comme on l'a vu précédemment, les moyens mis en œuvre par les différentes AC pour vérifier une identité avant d'émettre un certificat sont très nombreux selon l'organisation et le domaine d'utilisation du certificat. Pour fournir une flexibilité opérationnelle maximale, les interactions avec les entités finales peuvent être séparées des autres fonctions d'une AC et gérées par un service séparé appelé une <em>Registration Authority</em> (RA, ou Autorité d'enregistrement).</p> + +<p>Une RA (autorité d'enregistrement) agît comme une application amont de l'AC, en recevant les requêtes des entités finales, en les authentifiant puis en les renvoyant vers l'AC. Après réception de la réponse de l'AC, la RA notifie les résultats à l'entité finale. Les RA peuvent être très utiles pour adapter une infrastructure à clef publique à différents départements, zones géographiques, ou d'autres unités opérationnelles ayant des politiques et des exigences d'authentification très différentes.</p> + +<p>{{Previous("Introduction à la cryptographie à clef publique:Certificats et authentification")}}</p> diff --git a/files/fr/orphaned/introduction_à_la_cryptographie_à_clef_publique/les_problèmes_de_sécurité_sur_internet/index.html b/files/fr/orphaned/introduction_à_la_cryptographie_à_clef_publique/les_problèmes_de_sécurité_sur_internet/index.html new file mode 100644 index 0000000000..9e79f1d777 --- /dev/null +++ b/files/fr/orphaned/introduction_à_la_cryptographie_à_clef_publique/les_problèmes_de_sécurité_sur_internet/index.html @@ -0,0 +1,36 @@ +--- +title: Les problèmes de sécurité sur Internet +slug: >- + Introduction_à_la_cryptographie_à_clef_publique/Les_problèmes_de_sécurité_sur_Internet +tags: + - Sécurité +--- +<p>Toutes les communications Internet utilisent le<em>Transmission Control Protocol/Internet Protocol</em> (TCP/IP). TCP/IP permet d'envoyer des informations d'un ordinateur à un autre au travers d'une grande variété d'ordinateurs intermédiaires et de réseaux distincts avant qu'elles atteignent leur destination.</p> + +<p>La grande flexibilité de TCP/IP à conduit à son adoption mondiale en tant que protocole de base pour les communications Internet et Intranet. Dans le même temps, le fait que TCP/IP permettent aux informations de transiter par de nombreux ordinateurs intermédiaires rend possible à une tierce-partie d'interférer avec les communications des façons suivantes :</p> + +<ul> + <li><strong>Écoute clandestine</strong>. Les informations restent intactes, mais leur confidentialité est compromise. Par exemple, quelqu'un peut intercepter votre numéro de carte de crédit, enregistrer des conversations sensibles ou intercepter des informations classifiées.</li> + <li><strong>Altération de données</strong>. Les informations en transit sont modifiées ou remplacées puis envoyées au destinataire. Par exemple, quelqu'un peut altérer une commande de biens de consommation ou changer les données personnelles d'un internaute.</li> + <li><strong>Usurpation d'identité</strong>. Les informations sont transmises à une personne se faisant passer pour le destinataire. L'usurpation d'identité peut être de deux natures différentes : + <ul> + <li>Mystification (ou spoofing en anglais). Une personne peut prétendre être quelqu'un d'autre. Par exemple, une personne peut prétendre avoir l'adresse électronique <code><a class="link-mailto" href="mailto:jdoe@exemple.net" rel="freelink">jdoe@exemple.net</a></code>, ou un ordinateur peut s'identifier comme étant le domaine <code>www.exemple.net</code> alors qu'il ne l'est pas. Ce type d'usurpation est connu sous le nom de spoofing.</li> + <li>Fausse déclaration. Une personne ou une organisation peut se présenter faussement. Par exemple, le site <code>www.exemple.net</code> peut prétendre être un site de vente de meubles en lignes alors qu'il ne prend que les paiement par cartes de crédits mais qu'il n'envoie aucune marchandise.</li> + </ul> + </li> +</ul> + +<p>Normalement, les utilisateurs des nombreux ordinateurs coopérant ensemble à l'existence d'Internet, ou de toute autre réseau, ne surveillent pas et n'interfèrent pas avec le trafic réseau circulant continuellement par leurs machines. Cependant, de nombreuses données personnelles sensibles et les transactions commerciales sur Internet requièrent certaines précautions afin de minimiser les risques dus aux menaces listées ci-dessus. Heureusement, un ensemble de techniques et de standards bien rodés, connu sous le nom de cryptographie à clef publique, rend plus facile la mise en place de telles précautions.</p> + +<p>La cryptographie à clef publique facilite les tâches suivantes :</p> + +<ul> + <li>Le chiffrement et le déchiffrement permettent à deux entités communicantes de<em>déguiser</em> les informations qu'elles s'échangent. L'expéditeur chiffre, ou brouille, les informations avant de les envoyer. Le destinataire déchiffre, ou décode, ces informations après leur réception. Lors du transit, les informations cryptées sont inintelligibles aux tierces personnes.</li> + <li>La détection de l'altération permet au destinataire des informations de vérifier qu'elles n'ont pas été modifiées lors du transit. Toute tentative de modifier les données ou de leur substituer un faux message sera détecté.</li> + <li>L'authentification permet au destinataire des informations de déterminer leur origine, pour confirmer l'identité de l'expéditeur.</li> + <li>La non-répudiation empêche l'expéditeur des informations de prétendre par la suite de ne pas les avoir envoyées.</li> +</ul> + +<p>Les sections qui suivent introduisent les concepts de cryptographie à clef publique qui sont à la base de ces possibilités.</p> + +<p>{{PreviousNext("Introduction à la cryptographie à clef publique", "Introduction à la cryptographie à clef publique:Chiffrement et déchiffrement")}}</p> diff --git a/files/fr/orphaned/introduction_à_la_cryptographie_à_clef_publique/signatures_numériques/index.html b/files/fr/orphaned/introduction_à_la_cryptographie_à_clef_publique/signatures_numériques/index.html new file mode 100644 index 0000000000..360b6340a9 --- /dev/null +++ b/files/fr/orphaned/introduction_à_la_cryptographie_à_clef_publique/signatures_numériques/index.html @@ -0,0 +1,30 @@ +--- +title: Signatures numériques +slug: Introduction_à_la_cryptographie_à_clef_publique/Signatures_numériques +tags: + - Sécurité +--- +<p>Le chiffrement et le déchiffrement permettent de limiter le problème des écoutes clandestines, un des trois problèmes de sécurité sur Internet mentionné dans une précédente section de ce document. Mais ils ne permettent pas, à eux seuls, de contrer les deux autres problèmes mentionnés dans « <a href="fr/Introduction_%c3%a0_la_cryptographie_%c3%a0_clef_publique/Les_probl%c3%a8mes_de_s%c3%a9curit%c3%a9_sur_Internet">Les problèmes de sécurité sur Internet</a> » : l'altération des données et l'usurpation d'identité.</p> + +<p>Cette section décrit comment la cryptographie à clef publique peut combattre l'altération des données. Les sections suivantes décriront les solutions permettant de résoudre les problèmes d'usurpation.</p> + +<p>La détection de l'altération des données et les techniques d'authentification qui s'y rapportent sont basées sur une fonction mathématique appelée empreinte numérique à sens unique (également appelée <strong>a message digest</strong>). Une empreinte numérique à sens unique est un nombre de longueur fixe ayant les caractéristiques suivantes :</p> + +<ul> + <li>La valeur de l'empreinte numérique est unique pour les données<em>hachées</em>. Tout changement dans les données, même la modification ou l'altération d'un seul et unique caractère, produit une valeur différentes.</li> + <li>Le contenu des données hachées ne peut pas, pour les applications pratiques, être déduit depuis l'empreinte numérique - c'est pour cela que cette fonction est à « sens unique ».</li> +</ul> + +<p>Comme évoqué dans « <a href="fr/Introduction_%c3%a0_la_cryptographie_%c3%a0_clef_publique/Chiffrement_et_d%c3%a9chiffrement#Chiffrement_par_clef_publique">Chiffrement par clef publique</a> », il est possible d'utiliser votre clef privée pour le chiffrement et votre clef publique pour le déchiffrement. Bien que ce ne soit pas souhaitable lorsque vous chiffrez des informations sensibles, c'est une partie cruciale de la signature numérique de données. Plutôt que de chiffrer les données elles-mêmes, le logiciel de signature crée une empreinte numérique à « sens unique », puis utilise votre clef privée pour chiffrer cette empreinte. L'empreinte chiffrée, tout comme les autres informations, tel que l'algorithme de hachage, est connu sous le nom de signature numérique.</p> + +<p>Figure 3 montre une vue simplifiée de l'utilisation d'un signature numérique pour valider l'intégrité de données signées.</p> + +<p><img alt="Figure 3. Utilisation d'une signature numérique pour valider l'intégrité de données"></p> + +<p>Figure 3 montre que deux éléments sont transférés au destinataire des données signées : les données originales et la signature numérique, qui est simplement une empreinte numérique (des données originales) qui a été chiffrée avec la clef privée du signataire. Pour valider l'intégrité des données, le logiciel récepteur doit d'abord utiliser la clef publique du signataire pour décrypter l'empreinte numérique. Il utilise alors le même algorithme de hachage qui a généré l'empreinte numérique pour générer une nouvelle empreinte à « sens unique » des mêmes données. Bien que se ne soit pas indiqué sur la figure 3, les informations concernant l'algorithme de hachage sont également envoyées avec la signature numérique. Finalement, le logiciel de réception compare la nouvelle empreinte avec l'originale. Si les deux correspondent, les données n'ont pas changées depuis leur signature. Dans le cas contraire, elles ont été altérées, ou la signature a été créée avec une clef privée ne correspondant pas à la clef publique présentée par la signataire.</p> + +<p>Si les deux empreintes correspondent, le destinataire peut être certain que la clef publique utilisée pour déchiffrer la signature numérique correspond à la clef privée utilisée pour la création cette signature. Cependant, la confirmation de l'identité du signataire requiert également un moyen de confirmer que la clef publique appartient bien à une personne en particulier ou à une autre entité. Pour plus d'informations sur la façon dont cela fonctionne, voir la section suivante, « <a href="fr/Introduction_%c3%a0_la_cryptographie_%c3%a0_clef_publique/Certificats_et_authentification">Certificats et authentification</a> ».</p> + +<p>L'importance d'une signature numérique est comparable à celle d'une signature manuelle. Une fois les données signées, il vous est difficile après coup de prétendre le contraire - en supposant que le clef privée n'a pas été compromise ou qu'elle n'est pas sous le contrôle de son propriétaire. Cette qualité de la signature numérique fournit un haut degré de non-répudiation - ainsi, il est difficile au signataire de nier avoir signé les données. Dans certains cas, une signature numérique peut être l'équivalent légal d'une signature manuelle.</p> + +<p>{{PreviousNext("Introduction à la cryptographie à clef publique:Chiffrement et déchiffrement", "Introduction à la cryptographie à clef publique:Certificats et authentification")}}</p> diff --git a/files/fr/orphaned/learn/how_to_contribute/index.html b/files/fr/orphaned/learn/how_to_contribute/index.html new file mode 100644 index 0000000000..29814aaee9 --- /dev/null +++ b/files/fr/orphaned/learn/how_to_contribute/index.html @@ -0,0 +1,85 @@ +--- +title: Comment contribuer à l'Espace d'apprentissage du MDN +slug: Apprendre/Comment_contribuer +tags: + - Apprendre + - Documentation + - Débutant + - Guide + - contribuer +translation_of: Learn/How_to_contribute +--- +<p>{{LearnSidebar}}</p> + +<blockquote> +<p>Si vous êtes parvenu à cette page du premier coup ou après avoir longuement cherché, cela signifie probablement que vous souhaitez contribuer à l'« Espace d'Apprentissage du MDN » (aussi appelée Learning Area). Excellente nouvelle !</p> + +<p><span class="seoSummary">Sur cette page, vous trouverez tout ce dont vous aurez besoin pour aider à améliorer le contenu pédagogique sur MDN. Vous pouvez contribuer de nombreuses façons, selon le temps que vous avez ou que vous souhaitez y passer, que vous soyez <a href="#I'm_a_beginner">un débutant</a>, <a href="#I'm_a_web_developer">un développeur web</a>, ou <a href="#I'm_a_teacher">un enseignant</a>.</span></p> +</blockquote> + +<div class="note"> +<p>Note : Vous pouvez trouver un guide pour écrire un nouvel article sur <a href="https://developer.mozilla.org/fr/docs/MDN/Contribute/Howto/Write_an_article_to_help_learn_about_the_Web">C</a><a href="https://developer.mozilla.org/fr/docs/MDN/Contribute/Howto/Write_an_article_to_help_learn_about_the_Web">omment rédiger un article pour aider les gens à se familiariser avec le Web..</a></p> +</div> + +<h2 id="Trouver_une_tâche_spécifique">Trouver une tâche spécifique</h2> + +<p><strong><span id="result_box" lang="fr"><span>Un moyen courant utilisé par les contributeurs à l'« Espace d'Apprentissage » est de lire les articles, corriger les fautes de frappe et suggérer des améliorations.</span></span></strong> <strong> Vos exemples sont également les bienvenus sur notre </strong> <strong><a href="https://github.com/mdn/learning-area/">dépôt GitHub</a>,</strong> <strong>et vous pouvez prendre contact avec nous si vous voulez demander ce qui doit être fait.</strong></p> + +<p>Contribuer représente également une excellente méthode pour apprendre tout en s'amusant. Si vous vous sentez perdu et/ou si vous avez des questions, n'hésitez pas à nous contacter via <a href="https://lists.mozilla.org/listinfo/dev-mdc">la liste de diffusion (anglophone)</a> ou <a href="irc://irc.mozilla.org/mdn">notre canal IRC (anglophone)</a> (voir en pied de page pour plus de détails). <a href="/en-US/profiles/chrisdavidmills">Chris Mills</a> est le responsable du projet pour l'« Espace d'Apprentissage » — vous pouvez aussi essayer de le contacter directement.</p> + +<p>Les paragraphes suivants donnent quelques idées générales des types de tâches que vous pouvez réaliser.</p> + +<h2 id="Je_suis_un_débutant"><a id="I'm_a_beginner" name="I'm_a_beginner">Je suis un débutant</a></h2> + +<p>Fantastique ! Les retours des débutants sont particulièrement précieux lorsqu'il s'agit d'écrire des articles pédagogiques. Votre point de vue est unique, car vous faites partie du public visé par ces articles, <span id="result_box" lang="fr"><span>ce qui peut faire de vous un membre inestimable de notre équipe.</span></span> <span id="result_box" lang="fr"><span>En effet, si vous utilisez un de nos articles pour apprendre quelque chose et que vous êtes bloqué, ou si vous trouvez l'article déroutant d'une certaine manière, vous pouvez le corriger ou nous le faire savoir afin que nous puissions être sûrs qu'il sera corrigé.</span></span></p> + +<p>Voici quelques façons de contribuer :</p> + +<dl> + <dt><a href="/fr/docs/Project%3AMDN/contribuer/Règles_d_étiquettage">Ajouter des étiquettes aux articles</a> (<em>5 min</em>)</dt> + <dd>Étiqueter le contenu de MDN est le moyen le plus simple de contribuer sur MDN. <span id="result_box" lang="fr"><span>Comme beaucoup de nos fonctionnalités utilisent des balises pour aider à présenter l'information dans son contexte, aider à l'étiquetage est une contribution très précieuse.</span> <span>Jetez un oeil sur les listes</span></span> <a href="https://developer.mozilla.org/fr/docs/Glossaire#Contribute">des termes du glossaire</a> et <a href="/en-US/docs/MDN/Doc_status/Learn#No_tags">aux articles de la section d'apprentissage</a> qui n'ont pas d'étiquettes. <em>(Pour le français, utiliser des termes français, ceux qu'un francophone envisagera de rechercher)</em></dd> + <dt><a href="/fr/docs/Glossaire">Lire et effectuer une relecture d'un terme du glossaire</a> (<em>5 min</em>)</dt> + <dd>Nous avons besoin de votre regard neuf sur le contenu qui a été rédigé. Si vous trouvez qu'un terme du glossaire est difficile à comprendre, cela signifie que sa définition doit être améliorée. N'hésitez pas à apporter les changements que vous estimez nécessaires. Si vous ne pensez pas avoir les compétences requises pour modifier l'entrée en question, dites-le nous <a href="https://lists.mozilla.org/listinfo/dev-mdc">sur la liste de diffusion</a>.</dd> + <dt><a href="/docs/MDN/Contribute/Howto/Write_a_new_entry_in_the_Glossary">Rédiger une nouvelle définition dans le glossaire</a> (<em>20 minutes</em>)</dt> + <dd>La méthode la plus efficace pour apprendre quelque chose de nouveau est de : choisir un concept que vous aimeriez comprendre, en apprendre le plus possible à ce sujet et expliquer ce concept dans le glossaire. Expliquer quelque chose aux autres est une excellente façon de vérifier que vous avez bien compris et aide énormément à ancrer cette connaissance dans votre mémoire. Vous aurez ainsi fait quelque chose pour vous et aussi pour les autres. Gagnant gagnant !</dd> + <dt><a href="/fr/Apprendre/Index">Lire et effectuer une relecture d'un article pédagogique</a> (<em>2 heures</em>)</dt> + <dd>Cetta action a beaucoup d'analogies avec la relecture d'un terme du glossaire présentée plus haut ; mais elle prendra plus de temps car les articles sont généralement plus longs.</dd> +</dl> + +<h2 id="Je_suis_un_développeur_web"><a id="I'm_a_web_developer" name="I'm_a_web_developer">Je suis un développeur web</a></h2> + +<p>Parfait, vos compétences techniques sont l'ingrédient idéal pour que nous soyons sûrs de fournir un contenu pédagogique <strong>et </strong>techniquement précis pour les débutants. Cette section du MDN est dédiée à l'apprentissage des concepts du Web, il est donc nécessaire que les explications fournies soient aussi simples que possible, sans être simplistes et donc inutilisables . Il est plus important d'être compréhensible que de donner une foultitude de détails.</p> + +<dl> + <dt><a href="/fr/docs/Glossaire">Lire et effectuer une relecture d'une définition du glossaire</a> (<em>5 min</em>)</dt> + <dd>En tant que développeur web, vous pouvez nous aider à ce que le contenu soit précis sur le plan technique, sans pour autant qu'il soit pédant. N'hésitez pas à modifier les articles si vous pensez que c'est nécessaire. Si vous souhaitez échanger sur le sujet avant d'éditer, n'hésitez pas à nous contacter via <a href="https://lists.mozilla.org/listinfo/dev-mdc">la liste de diffusion (anglophone)</a> ou <a href="irc://irc.mozilla.org/mdn">notre canal IRC (anglophone)</a>.</dd> + <dt><a href="/fr/docs/MDN/Contribute/Howto/Write_a_new_entry_in_the_Glossary">Écrire une nouvelle définition dans le glossaire</a> (<em>20 minutes</em>)</dt> + <dd>Clarifier le jargon technique est une bonne méthode pour apprendre et être techniquement précis et clair. Les débutants vous en remercieront. <a href="https://developer.mozilla.org/fr/docs/Glossaire#Contribute">Quelques termes ne sont pas encore définis</a> et ont besoin de vous, choisissez-en un qui vous intéresse et allez-y.</dd> + <dt><a href="/fr/Apprendre/Index">Lire et effectuer une relecture d'un article pédagogique</a> (<em>2 heures</em>)</dt> + <dd>Cette action ressemble beaucoup à celle de la relecture d'un terme du glossaire (présentée plus haut). Elle demande plus de temps car les articles sont généralement plus longs.</dd> + <dt><a href="/fr/docs/MDN/Contribute/Howto/Write_an_article_to_help_learn_about_the_Web">Écrire un nouvel article pour la section Apprendre</a> (<em>4 heures ou plus</em>)</dt> + <dd>MDN manque de ressources à destination des débutants à propos des technologies web (<a href="/fr/Apprendre/HTML">HTML</a>, <a href="/fr/Apprendre/CSS">CSS</a>, <a href="/fr/Apprendre/JavaScript">JavaScript</a>, etc.). Certains articles et contenus existent déjà mais ont besoin d'être revus et remaniés. Dépassez vos limites en mettant les technologies web à la portée des débutants.</dd> + <dt><a href="/fr/docs/MDN/Contribute/Howto/Create_an_interactive_exercise_to_help_learning_the_web">Créer exercices, exemples de code et outils d'apprentissage interactifs</a> (? heures)</dt> + <dd>Les différents articles pédagogiques ont besoin d'éléments d'« Apprentissage actif » car chacun apprend mieux en faisant soi-même. Ces éléments peuvent être des exercices ou du contenu interactif qui permette à un utilisateur d'appliquer et de manipuler les concepts détaillés dans un article. De nombreux outils existent pour créer de tels exemples de code : <a href="https://jsfiddle.net/">JSFiddle</a> ou similaire pour construire un contenu interactif et avec <a href="https://thimble.mozilla.org/" rel="external">Thimble</a>, libérez votre créativité !</dd> +</dl> + +<h2 id="Je_suis_un_enseignant"><a id="I'm_a_teacher" name="I'm_a_teacher">Je suis un enseignant</a></h2> + +<p>MDN est connu pour son excellence sur le plan technique et moins connu, à juste titre, pour son contenu à destination des débutants. C'est là que nous avons besoin de vous, comme enseignant ou formateur. Vous pouvez nous aider à améliorer la pédagogie et la cohérence éducative du contenu du MDN.</p> + +<dl> + <dt><a href="/fr/docs/Glossaire">Lire et effectuer une relecture d'une définition du glossaire</a> (<em>15 min</em>)</dt> + <dd>Consultez une des définitions du glossaire et amendez-la si nécessaire. Si vous souhaitez discuter du contenu avant de publier, n'hésitez pas à nous contacter via <a href="https://lists.mozilla.org/listinfo/dev-mdc">la liste de diffusion (anglophone)</a> ou <a href="irc://irc.mozilla.org/mdn">notre canal IRC (anglophone)</a>.</dd> + <dt><a href="/fr/docs/MDN/Contribute/Howto/Write_a_new_entry_in_the_Glossary">Écrire une nouvelle définition dans le glossaire</a> (<em>1 heure</em>)</dt> + <dd>Définir les termes de façon simple et claire pour fournir un aperçu efficace des concepts est essentiel pour s'adresser aux débutants. Votre expérience de pédagogue peut être tout particulièrement utile pour créer un excellent glossaire. <a href="https://developer.mozilla.org/fr/docs/Glossaire#Contribute">De nombreux termes ne sont pas encore définis</a>, choisissez-en un puis allez-y !</dd> + <dt><a href="/fr/docs/tag/needsSchema">Ajouter des illustrations et/ou des schémas à des articles</a> (<em>1 heure</em>)</dt> + <dd>Comme vous le savez, les illustrations sont indispensables pour apprendre. Or, c'est quelque chose qui manque souvent sur MDN et vos compétences peuvent faire la différence dans ce domaine. Consultez <a href="/en-US/docs/tag/needsSchema">la liste des articles en manque d'illustration</a> et choisissez-en un pour lequel vous souhaitez ajouter des éléments graphiques.</dd> + <dt><a href="/fr/Apprendre/Index">Lire et effectuer une relecture d'un article pédagogique</a> (<em>2 heures</em>)</dt> + <dd>Cette action ressemble beaucoup à la relecture d'un terme du glossaire présentée plus haut. Elle prend plus de temps car les articles sont généralement plus longs.</dd> + <dt><a href="/fr/docs/MDN/Contribute/Howto/Write_an_article_to_help_learn_about_the_Web">Écrire un nouvel article dans la section « Apprendre »</a> (<em>4 heures</em>)</dt> + <dd>Cette section a besoin d'articles simples et directs sur le web et les notions fonctionnelles attenantes. Ces articles doivent être écrits dans un but pédagogique : il ne s'agit pas de couvrir l'exhaustivité d'un domaine ou d'un concept mais d'en expliquer l'essentiel. Cet équilibre est difficile à trouver et c'est là que votre expérience toute particulière entre en jeu.</dd> + <dt><a href="/fr/docs/MDN/Contribute/Howto/Create_an_interactive_exercise_to_help_learning_the_web">Créer des exercices, des <abbr title="Multiple Choice Tests">quizz</abbr> ou des outils d'apprentissage interactifs</a> (<em>? heures</em>)</dt> + <dd>Les différents articles pédagogiques ont besoin d'éléments de « apprentissage actif » car chacun apprend mieux en faisant soi-même. Ces éléments peuvent être des exercices ou du contenu interactif qui permet à un utilisateur d'appliquer et de manipuler les concepts détaillés dans un article. De nombreux outils existent pour créer de tels exemples : <a href="https://jsfiddle.net/">JSFiddle</a>, <a href="https://thimble.mozilla.org/" rel="external">Thimble</a>. Libérez votre créativité !</dd> + <dt><a href="/fr/docs/MDN/Contribute/Howto/Create_learning_pathways">Créer des chemins d'apprentissage</a> (<em>? hours</em>)</dt> + <dd>Afin de fournir des tutoriels progressifs et compréhensibles, les articles doivent être organisés en suites logiques. Cette organisation permet d'utiliser le contenu existant et d'identifier ce qui manque (auquel cas un nouvel article sera le bienvenu).</dd> +</dl> diff --git a/files/fr/orphaned/mdn/community/conversations/index.html b/files/fr/orphaned/mdn/community/conversations/index.html new file mode 100644 index 0000000000..70596f8299 --- /dev/null +++ b/files/fr/orphaned/mdn/community/conversations/index.html @@ -0,0 +1,56 @@ +--- +title: Discussions de la communauté MDN +slug: MDN/Rejoindre_la_communauté/Conversations +translation_of: MDN/Community/Conversations +--- +<div>{{MDNSidebar}}</div><p class="summary">Le travail de MDN se fait beaucoup sur le site MDN mais la communauté est trés active aussi par des discussions (synchrones ou asychrones) se faisant en ligne, par chat ou rencontres organisées.</p> + +<h2 id="Les_discussions_asynchrones">Les discussions asynchrones :</h2> + +<p>Pour partager des informations et tenir des conversations en direct, <a href="https://discourse.mozilla.org/c/mdn">MDN a sa propre catégorie ("MDN") dans le forum Mozilla. </a> Choisissez cette catégorie pour tous les sujets ayant trait à MDN, y compris le contenu de la documentation, la création, la traduction et la maintenance; la plateforme de développement MDN, et le planning, la définition des objectifs, le suivi des avancées.</p> + +<ul> + <li>Pour rejoindre les conversations Mozilla, voyez la page <a href="https://discourse.mozilla-community.org/t/signing-up-and-logging-in/16017">pour s'inscrire (en)</a>; si vous avez un compte LDAP Mozilla, vous devriez l'utiliser à la place du "Login par email".</li> + <li>Pour s'inscrire dans une catégorie, voyez <a href="https://discourse.mozilla-community.org/t/subscribing-to-categories-and-topics/16024">s'incrire dans des catégories et sujets (en)</a>.</li> + <li>(Optionnel) Si vos préférez, dans un premier temps, interagir dans les discussions par email, voyez <a href="https://discourse.mozilla-community.org/t/mailman-mode/15279">Comment converser par email (en).</a> Vous pouvez débuter une conversation dans "Discourse" (discussion) en envoyant un message à : <a href="mailto://mdn@mozilla-community.org">mdn@mozilla-community.org</a>. Si vous utilisez Discourse par email, vous pouvez répondre aux messages en répondant au message de notification que vous avez reçu. Si vous voulez insérer des commentaires dans une réponse, faites deux retour chariot avant et après votre intervention, que Discourse puisse l'analyser correctement.</li> +</ul> + +<h3 id="Historical_archives">Historical archives</h3> + +<p>Avant Juin 2017, les discussions de MDN se faisaient par "mailing lists" qui étaient filtrées et archivées avec "Google groups". Si vous voulez voir ces discussions anciennes, regardez dans les "Google groups" correspondants aux vieilles liste de mailings. ( oui, nous savons hélas que ces noms sont redondants et déroutants. Un accident historique, désolé pour ça...)</p> + +<dl> + <dt><a href="https://groups.google.com/forum/#!forum/mozilla.dev.mdc">mozilla.dev.mdc</a> a.k.a. <strong>dev-mdc</strong></dt> + <dd>Cette liste concernait le contenu de la documentation sur MDN.</dd> + <dt><a href="https://groups.google.com/forum/#!forum/mozilla.dev.mdn">mozilla.dev.mdn </a>a.k.a. <strong>dev-mdn</strong></dt> + <dd>Cette liste concernait le travail de développement sur la plateforme MDN <a href="/en-US/docs/Project:MDN/Kuma">Kuma</a>.</dd> + <dt><a href="https://groups.google.com/forum/#!forum/mozilla.mdn">mozilla.mdn </a>a.k.a. <strong>mdn@</strong></dt> + <dd>Ce forum concernait le planning et l'établissement des priorités de discussions pour le site MDN et autres initiatives associées.</dd> +</dl> + +<p> </p> + +<h2 id="Chat_sur_IRC">Chat sur IRC</h2> + +<p> </p> + +<p>Internet Relay Chat (IRC) est notre méthode préférée pour le chat quotidien et la discussion en temps réel entre membres de la communauté. Nous utilisons quelques canaux sur le serveur irc.mozilla.org pour les discussions sur MDN.</p> + +<dl> + <dt><a href="irc://irc.mozilla.org/mdn" title="irc://irc.mozilla.org/mdn">#mdn</a></dt> + <dd>This channel is our primary channel for discussing the content of MDN. We talk about writing, organization of content, and so on. We also have "water cooler" conversations here—it's a way our community can keep in touch and just hang out. This is also the place to talk about other aspects of MDN (other than development of the platform), such as Demo Studio, profiles, and so on.</dd> + <dt><a href="irc://irc.mozilla.org/mdndev" title="irc://irc.mozilla.org/mdndev">#mdndev</a></dt> + <dd>This channel is where our development team—the people that write the code that makes MDN work—hangs out and discusses their day-to-day work. You're welcome to join in and either participate in the development or simply ask questions about issues you see with the software.</dd> +</dl> + +<p>These channels are most likely to be active during weekdays in North America.</p> + +<p>You may want to <a href="https://wiki.mozilla.org/IRC" title="https://wiki.mozilla.org/IRC">learn more about IRC</a> and use an installable IRC client such as <a href="https://addons.mozilla.org/en-US/firefox/addon/chatzilla/" title="https://addons.mozilla.org/en-US/firefox/addon/chatzilla/">ChatZilla</a>. It is implemented as a Firefox add-on, which makes it quick and easy to install and use. If you're not familiar with IRC, an easy way to join is using a web-based IRC client such as <a href="https://chat.mibbit.com/">Mibbit</a>. Here are the direct links to the <a href="http://chat.mibbit.com/?server=irc.mozilla.org%3A%2B6697&channel=%23mdn">#mdn</a> and <a href="http://chat.mibbit.com/?server=irc.mozilla.org%3A%2B6697&channel=%23mdndev">#mdndev</a> channels on Mibbit.</p> + +<h2 id="Join_our_meetings_(and_other_events)">Join our meetings (and other events)</h2> + +<p>The MDN team holds a number of regular meetings that are open to the MDN community. See the <a href="https://wiki.mozilla.org/MDN/Meetings">MDN Meetings</a> page on the Mozilla wiki for details on the schedule, agendas and notes, and info on how to join.</p> + +<p>See the <a href="https://www.google.com/calendar/embed?src=mozilla.com_2d35383434313235392d323530%40resource.calendar.google.com">MDN Events calendar</a> for these and other meetings, local meetups, and other events. The recurring meetings are summarized on the <a href="https://wiki.mozilla.org/MDN/Meetings">MDN Meetings wiki page</a>.</p> + +<p>If you see a meeting which takes place in the "mdn" channel on our Vidyo videoconferencing system, you can <a href="https://v.mozilla.com/flex.html?roomdirect.html&key=gMM1xZxpQgqiQFNkUR3eBuHgxg">join the conversation on the web</a>.</p> diff --git a/files/fr/orphaned/mdn/community/doc_sprints/index.html b/files/fr/orphaned/mdn/community/doc_sprints/index.html new file mode 100644 index 0000000000..8fbfa54cd1 --- /dev/null +++ b/files/fr/orphaned/mdn/community/doc_sprints/index.html @@ -0,0 +1,133 @@ +--- +title: Doc sprints +slug: MDN/Rejoindre_la_communauté/Doc_sprints +translation_of: MDN/Community/Doc_sprints +--- +<div>{{MDNSidebar}}</div><p>{{ draft() }}</p> + +<div class="note"> +<p><span id="result_box" lang="fr"><span class="hps"><strong>Remarque</strong>:</span> <span class="hps">La communauté</span> <span class="hps">MDN</span> <span class="hps">a souvent</span> <span class="hps">tenu</span> des <span class="hps">doc sprints</span> au <span class="hps">cours de</span> <span class="hps">la période 2010-2013</span><span>.</span> <span class="hps">À partir de</span> <span class="hps">2014,</span> <span class="hps">ces événements</span> <span class="hps">ont été élargis en</span> <span class="hps">champ</span> <span class="atn hps">de «</span><span>Hack</span> on <span class="hps">MDN»</span> <span class="hps">les événements</span> <span class="hps">qui incluent</span> <span class="hps">le code</span> <span class="hps">de piratage</span> <span class="hps">ainsi que des projets</span> <span class="hps">de documentation</span><span>.</span> <span class="hps">La plupart des conseils</span> <span class="hps">ci-dessous</span> s'<span class="hps">applique aussi bien aux</span> <span class="hps">"Hack"</span> <span class="hps">sprints</span></span><span lang="fr"> <span class="hps">et qu'aux </span><span class="hps">documentation </span></span><span id="result_box" lang="fr"><span class="hps">sprints</span></span><span lang="fr"><span>.</span></span></p> +</div> + +<p><span id="result_box" lang="fr"><span class="hps">Ceci est</span> <span class="hps">un guide pour</span> <span class="hps">l'organisation d'un</span> <span class="hps">doc sprint</span><span>.</span> <span class="hps">Il contient</span> <span class="hps">des conseils et astuces</span> <span class="hps">de personnes qui ont</span> <span class="hps">organisé</span> <span class="hps">les doc sprints</span><span>,</span> <span class="hps">pour vous aider</span> <span class="hps">dans l'organisation de</span> <span class="hps">celui-ci aussi</span><span>.</span> <span class="hps">Ce guide</span> <span class="hps">appuie également sur les</span> <span class="hps">idées</span> <span class="hps">du livre</span></span> <a class="external" href="http://booki.flossmanuals.net/book-sprints/_draft/_v/1.0/introduction/" title="http://booki.flossmanuals.net/book-sprints/_draft/_v/1.0/introduction/">FLOSS Manuals Book Sprints</a>.</p> + +<h2 id="Qu'est_ce_qu'un_doc_sprint">Qu'est ce qu'un doc sprint?</h2> + +<p>Un doc <span id="result_box" lang="fr"><span class="hps">sprint</span> <span class="hps">est</span> <span class="hps">une courte période où</span> <span class="hps">un groupe de personnes</span> <span class="hps">se réunissent</span><span>,</span> <span class="hps">virtuellement ou</span> <span class="hps">réellement</span><span>,</span> <span class="hps">à collaborer à</span> <span class="hps">la rédaction de documentation</span> <span class="hps">sur un sujet donné</span> <span class="hps">ou des sujets connexes</span><span>.</span></span></p> + +<h2 id="Types_de_sprints">Types de sprints</h2> + +<p><span id="result_box" lang="fr"><span class="hps">Les sprints</span> <span class="hps">peuvent être</span> <span class="hps">virtuel ou</span> <span class="hps">en personne</span><span>,</span> <span class="hps">ou une combinaison</span><span>.</span> <span class="hps">Pour</span> <span class="hps">un sprint</span> <span class="hps">virtuel,</span> <span class="hps">tout le monde participe</span> <span class="hps">à partir de</span> <span class="hps">là où ils</span> <span class="hps">se trouvent</span><span>,</span> <span class="hps">en communiquant uniquement</span> <span class="hps">par le biais des cannaux dédiés</span><span>.</span> <span class="hps">Pour un</span> <span class="hps">sprint</span> <span class="hps">en personne</span><span>,</span> <span class="hps">les participants se réunissent</span> <span class="hps">au même endroit</span> <span class="hps">pendant toute la durée</span> <span class="hps">du sprint</span><span>,</span> <span class="hps">afin qu'ils puissent</span> <span class="hps">communiquer face</span><span>-à-face</span><span>.</span> <span class="hps">Les sprints</span> <span class="hps">hybrides peuvent être</span> <span class="hps">la plupart du temps</span> <span class="hps">en</span> <span class="hps">personne</span> <span class="hps">avec des</span> <span class="hps">participants à distance</span><span>,</span> <span class="hps">ou</span> <span class="hps">la plupart du temps</span> <span class="hps">virtuel</span> <span class="hps">avec des</span> <span class="hps">rassemblements</span> <span class="hps">locaux</span><span>.</span> <span class="hps">En personne</span> <span class="hps">les sprints</span> <span class="hps">exigent plus de planification</span> <span class="hps">logistique</span><span>,</span> <span class="hps">pour assurer le lieu de la reunion </span><span>,</span> <span class="hps">reunir</span> <span class="hps">tout le monde dans un même endroit</span><span class="hps">,</span> les<span class="hps"> loger et</span> <span class="hps">les nourrir</span> <span class="hps">pendant le sprint</span><span>.</span></span></p> + +<p><span id="result_box" lang="fr"><span class="hps">Une autre manière de classer par catégorie les sprints focalisés sur des thématiques </span><span>.</span> <span class="hps">Par exemple</span><span>,</span> <span class="hps">un sprint</span> <span class="hps">pourrait se concentrer</span> <span class="hps">sur un</span> <span class="hps">domaine particulier</span><span>,</span> <span class="hps">tels que le développement</span> <span class="hps">Web</span><span>,</span> <span class="hps">ou</span> <span class="hps">sur la traduction dans une langue</span> <span class="hps">particulière</span><span>.</span></span></p> + +<h2 id="Planification_d'un_sprint">Planification d'un sprint</h2> + +<h3 id="Determiner_les_objectifs">Determiner les objectifs</h3> + +<p><span id="result_box" lang="fr"><span class="hps">Ayez une idée claire</span> <span class="hps">sur quels</span> <span class="hps">sont les objectifs</span> <span class="hps">pour le sprint</span><span>,</span> <span class="hps">à la fois pour</span> <span class="hps">le contenu</span> <span class="hps">et la communauté.</span> <span class="hps">Cela permet de</span> <span class="hps">conduire votre</span> <span class="hps">planification dans les moindres</span> <span class="hps">détails</span><span>.</span></span></p> + +<ul> + <li><span class="short_text" id="result_box" lang="fr"><span class="hps">Voulez-vous</span> <span class="hps"> documenter un</span> <span class="hps">sujet particulier</span><span>?</span></span></li> + <li><span id="result_box" lang="fr"><span class="hps">Voulez-vous</span> <span class="hps">créer un</span> <span class="hps">type particulier de</span> <span class="hps">documents</span> <span class="hps">ou de ressources</span><span>?</span> <span class="hps">Par exemple,</span> <span class="hps">des tutoriels, des</span> <span class="hps">exemples de code,</span> <span class="hps">ou</span> <span class="hps">des traductions dans une</span> <span class="hps">langue particulière</span><span>.</span></span></li> + <li><span id="result_box" lang="fr"><span class="hps">Voulez-vous</span> <span class="hps">attirer de nouvelles personnes</span> <span class="hps">à contribuer au</span> <span class="hps">MDN?</span></span></li> + <li><span id="result_box" lang="fr"><span class="hps">Voulez-vous</span> <span class="hps">augmenter</span> <span class="hps">la cohésion entre les</span> <span class="hps">membres de la communauté</span> <span class="hps">existante</span><span>?</span></span></li> +</ul> + +<h3 id="Décider_du_type_et_de_la_portée"><span class="short_text" id="result_box" lang="fr"><span class="hps">Décider</span> <span class="hps">du type</span> <span class="hps">et de la portée</span></span></h3> + +<p><span id="result_box" lang="fr"><span class="hps">Basé sur</span> <span class="hps">vos objectifs</span><span>,</span> <span class="hps">se prononcer sur</span> <span class="hps">le type de</span> <span class="hps">sprint</span> <span class="hps">(virtuel</span><span>,</span> <span class="hps">en personne</span><span>,</span> <span class="hps">ou une combinaison</span><span>) et</span> <span class="hps">la portée</span> <span class="atn hps">(</span><span>sur quoi seront focalisés les participants</span><span>)</span></span>.</p> + +<p><span id="result_box" lang="fr"><span class="hps">Par exemple</span><span>,</span> <span class="hps">si vous</span> <span class="hps">voulez attirer</span> <span class="hps">de nouveaux</span> <span class="hps">membres de la communauté</span><span>,</span> <span class="hps">un sprint</span></span><span lang="fr"><span class="hps"> local en personne serait</span> <span class="hps">un bon choix</span><span>,</span> <span class="hps">car aucun</span> <span class="hps">voyage</span> <span class="hps">est impliqué</span><span>,</span> <span class="hps">mais les participants</span> ont <span class="hps">l'occasion de se rencontrer</span><span>.</span> <span class="hps">Si</span> <span class="hps">vous voulez vous concentrer</span> <span class="hps">sur un</span> <span class="hps">domaine spécifique</span><span>,</span> <span class="hps">où les</span> <span class="hps">contributeurs de contenu</span> <span class="hps">sont</span> <span class="hps">répartis géographiquement</span><span>,</span> <span class="hps">et</span> <span class="hps">se connaissent déjà</span><span class="hps"> les uns les</span> <span class="hps">autres</span><span>,</span> alors <span class="hps">un virtual sprint</span> peut faire l'affaire<span class="hps">.</span></span></p> + +<h3 id="Choisissez_les_dates_et_heures"><span class="short_text" id="result_box" lang="fr"><span class="hps">Choisissez</span> <span class="hps">les dates et heures</span></span></h3> + +<p><span id="result_box" lang="fr"><span class="hps">Pour</span> <span class="hps">les sprints</span> <span class="hps">en personne</span> <span class="hps">qui nécessitent</span> <span class="hps">un Voyage,</span> <span class="hps">nous avons constaté que</span> <span class="hps">trois</span> <span class="atn hps">jours (</span><span>Soit</span> <span class="hps">deux</span> <span class="hps">jours</span> <span class="hps">de week-end</span> <span class="hps">et</span> <span class="hps">un jour de semaine</span><span>) est</span> <span class="hps">assez suffisant </span><span class="hps">pour pouvoir accomplir </span> <span class="hps">un travail</span> <span class="hps">important</span><span>,</span> <span class="hps">sans prendre trop</span> <span class="hps">de temps loin de</span> <span class="hps">la vie</span> <span class="hps">normale</span> <span class="hps">de tout le monde</span><span>.</span> <span class="hps">Pour</span><span>,</span> <span class="hps">sprints</span> <span class="hps">public, local,</span> <span class="hps">en personne</span><span>, un jour</span> <span class="hps">oû vous pouvez expérer avoir le plus de personne pour s'engager.</span> <span class="hps">Pour</span> <span class="hps">les sprints</span> <span class="hps">virtuels</span><span>,</span> <span class="hps">ils se font</span> <span class="hps">généralement</span> sur<span class="hps"> deux jours</span><span>:</span> <span class="hps">un</span> <span class="hps">jour de semaine</span> <span class="hps">et un jour</span> <span class="hps">de</span> <span class="hps">week-end</span><span>.</span> <span class="hps">Comme</span> <span class="hps"> autre exemple</span><span>,</span> <span class="hps">dans le passé</span><span>, il y a eu</span> <span class="hps">un mini</span><span class="atn">-</span><span>sprint pour</span> <span class="hps">l'écriture et</span> <span class="hps">la traduction de</span> <span class="hps">documents</span><span>,</span> <span class="hps">chaque mercredi soir</span> <span class="hps">dans le bureau</span> <span class="hps">Mozilla</span> <span class="hps">Paris</span><span>;</span> <span class="hps">il était</span> <span class="hps">principalement</span> <span class="hps">en personne</span> <span class="hps">pour les résidents</span><span>, mais</span> <span class="hps">a également obtenu</span> <span class="hps">la participation à distance</span> <span class="hps">de Montréal</span> <span class="atn hps">(</span><span>où il</span> <span class="hps">était à</span> <span class="hps">l'heure du déjeuner</span><span>)</span><span>.</span></span></p> + +<p><span id="result_box" lang="fr"><span>Placer un</span> <span>sprint</span> <span>à</span> <span>la fin</span> <span>d'une conférence</span> à laquelle<span> tout le monde</span> <span>a assisté</span> <span>a bien fonctionné</span></span>; <span id="result_box" lang="fr"><span>essayer de lancer</span> <span>un sprint</span> <span>lors d'une conférence</span> <span>à laquelle tout le monde</span> <span>a assisté</span> <span>ne fonctionnait pas</span> <span>si bien</span><span>.</span> <span>Assurez-vous</span> <span>que les participants</span> <span>aient connaissance du</span><span> sprint</span> <span>quand ils font</span> <span>leurs</span> <span>plans</span> <span>de conférence</span><span>,</span> <span>de sorte qu'ils</span> <span>permettent</span> <span>des jours supplémentaires</span> <span>pour le sprint</span><span>.</span></span></p> + +<p><span id="result_box" lang="fr"><span>Considérez les</span> <span>fuseaux horaires</span> <span>des participants</span> <span>virtuels</span></span>; <span id="result_box" lang="fr"><span>être sûr que vous</span> <span>laissez suffisamment de temps</span> <span>de travail</span> <span>dans chaque fuseau horaire</span></span>, <span id="result_box" lang="fr"><span>et vous avez</span> <span>un certain chevauchement</span> <span>lorsque plusieurs</span> <span>zones</span> <span>(</span><span>comme l'Europe et</span> <span>des Amériques</span><span>,</span> <span>ou</span> <span>Amériques</span> <span>et en Asie</span><span>)</span> <span>sont éveillés</span></span>. Cependant, c'est une réalité que le temps de personne n'est bon pour tout le monde partout.</p> + +<p><span id="result_box" lang="fr"><span>Pour</span> <span>les virtual sprints</span><span>,</span> <span>les</span> rendez-vous <span>peuvent être réglées</span> <span>à moins de 2-3</span> <span>semaines à l'avance</span><span>.</span> <span>Pour</span> <span>les in-person sprints</span><span>,</span> <span>vous devez décider</span> <span>plus à l'avance</span><span>, afin de</span> <span>laisser le temps aux</span> <span>gens de décider</span> <span>et de faire</span> <span>des arrangements de voyage</span><span>. </span></span></p> + +<h3 id="Promouvoir_le_sprint">Promouvoir le sprint</h3> + +<p><span id="result_box" lang="fr"><span>Vous pouvez faire</span> <span>le sprint</span> <span>ouvert,</span> <span>et inviter</span> <span>le monde</span><span>,</span> <span>mais vous devriez avoir</span> <span>quelques personnes clés</span> <span>qui vous savez</span> <span>participeront</span><span> effictivement.</span> <span>Travailler avec eux</span> <span>lors de la sélection</span> <span>des dates</span><span>,</span> <span>pour vous assurer</span> <span>qu'ils</span> <span>sont disponibles pendant</span> <span>les</span> <span>dates choisies</span><span>.</span> <span>Si</span> <span>le sprint</span> <span>n'est pas ouvert,</span> <span>alors vous avez besoin</span> <span>seulement</span> <span>d'étendre</span> <span>les invitations</span><span>;</span> <span>Assurez-vous que</span> <span>chaque invitation</span> <span>est personnelle</span><span>,</span> <span>expliquant pourquoi</span> <span>cette personne</span> <span>a été spécialement</span> <span>invité</span><span>e.</span></span></p> + +<div class="g-unit" id="gt-res-c"> +<div id="gt-res-p"> +<div id="gt-res-data"> +<div id="gt-res-wrap"> +<div class="almost_half_cell" id="gt-res-content"> +<div dir="ltr" style="zoom: 1;"> +<div id="tts_button"> </div> +<span id="result_box" lang="fr"><span>Pour</span> <span>les public sprints</span><span>,</span> <span>identifier les groupes</span> <span>existants</span> <span>qui ont un</span> <span>intérêt pour le sujet</span><span>, par exemple</span><span>:</span> <span>Les groupes</span> <span>meetup</span> <span>développeur</span> <span>Web</span> <span>locaux</span> <span>pour un in-person sprint</span> <span>locale</span><span>.</span> <span>Envoyer</span> <span>une annonce</span> <span>par</span> <span>quelque</span> <span>canal est</span> <span>approprié pour</span> <span>ce groupe.</span> <span>Assurez-vous de</span> <span>fournir un lien vers</span> <span>une page</span> <span>web avec</span> <span>plus de détails,</span> <span>et</span> <span>inclure un call-to-action </span><span>pour les</span> <span>gens s'enregistrer</span> <span>pour le sprint</span><span>. </span></span><a href="https://www.eventbrite.com/" title="https://www.eventbrite.com/">Eventbrite </a>et <a href="http://lanyrd.com" title="http://lanyrd.com">Lanyrd</a> sont deuw services qui supportent les enregistrements. Pour les événements Mozilla developer,<span id="result_box" lang="fr"><span>nous avons constaté</span> <span>que près de</span> <span>la moitié des personnes</span> <span>qui s'enregistrent</span> <span>apparaissent effectivement</span></span><span lang="fr"><span>.</span></span></div> +</div> +</div> +</div> +</div> +</div> + +<p><span id="result_box" lang="fr"><span>Utilisez les</span> <span>canaux de médias sociaux</span> <span>qui sont appropriés</span> <span>pour atteindre vos</span> <span>participants</span> <span>cibles</span><span>.</span> <span>Nous avons constaté que</span> <span>pour les développeurs Web</span><span>, cela signifie</span> <span>Twitter</span><span>,</span> <span>suivi par</span> <span>Google Plus</span><span>,</span> <span>plus</span> que <span>Facebook</span> <span>ou LinkedIn</span><span>.</span> <span>Cependant</span><span>, les canaux</span> <span>populaires</span> <span>peuvent varier</span> <span>géographiquement</span> <span>(comme</span> <span>Orkut</span> <span>au Brésil</span><span>)</span><span>.</span> <span>Faites appel à</span> <span>quelques personnes</span> <span>bien</span> <span>connectées</span> <span>qui ont</span> <span>une forte popularité</span> <span>parmi</span> <span>votre public cible</span><span>,</span> <span>et leur demander de</span> <span>re-</span><span>partager</span> <span>vos messages</span><span>.</span></span></p> + +<h3 id="Logistiques_pour_les_in-person_sprints">Logistiques pour les in-person sprints</h3> + +<p>Les logistiques pour les in-person sprints sont plus grands pour les longs sprint que pour ceux où les participants se deplacent pour assister. Un court sprint ou un sprint seulement reservé aux locaux nécessite relativement moins de support logistique.</p> + +<h4 id="Budget_et_financement"><span class="short_text" id="result_box" lang="fr"><span>Budget et financement</span></span></h4> + +<p><span id="result_box" lang="fr"><span>Vous devez</span> <span>savoir combien</span> <span>l'événement</span> <span>va coûter</span><span>,</span> <span>et d'où</span> <span>l'argent va venir</span><span>.</span></span></p> + +<p>Les coûts à considérer dans votre budget incluent:</p> + +<ul> + <li>Voyage</li> + <li><span class="short_text" id="result_box" lang="fr"><span>Hébergement</span></span></li> + <li>Nourriture</li> + <li><span class="short_text" id="result_box" lang="fr"><span>Espace de réunion</span></span></li> +</ul> + +<p><span id="result_box" lang="fr"><span>Certains de ces coûts</span> <span>peuvent</span> <span>être auto-</span><span>financé</span> <span>par les participants</span><span>,</span> <span>ce qui signifie qu'ils</span> <span>paient pour leurs</span> <span>propres dépenses.</span> <span>Il existe une variété</span> <span>de façons d'</span><span>économiser de l'argent</span><span>,</span> <span>qui sont mentionnés</span> <span>dans les sections suivantes</span><span>.</span></span></p> + +<p><span id="result_box" lang="fr"><span>Il peut être</span> <span>possible d'obtenir</span> <span>le parrainage de</span> <span>Mozilla</span> <span>pour financer</span> <span>une partie des coûts</span> <span>de</span> <span>votre événement</span><span>.</span> <span>Il permet d'avoir</span> <span>une orientation claire</span> <span>pour votre événement</span><span>,</span> <span>et un plan</span> <span>spécifique et</span> <span>budget.</span> <span>S'il y a un</span></span> <a href="https://reps.mozilla.org/people/#/">Mozilla Rep</a> <span id="result_box" lang="fr"><span>dans votre région,</span> <span>travailler avec eux pour</span> <span>demander</span> <span>le budget et</span> <span>butin</span> <span>à travers le programme</span> <span>Reps</span><span>.</span> <span>Sinon, vous</span> <span>pouvez soumettre</span></span> une <a href="https://bugzilla.mozilla.org/form.dev-engagement-event">demande d'événements de développement</a> dans Bugzilla.</p> + +<dl> + <dt>Site</dt> + <dd><span id="result_box" lang="fr"><span>Il y a</span> <span>beaucoup d'options pour</span> <span>un espace de réunion</span><span>.</span> <span>Si vous</span> <span>êtes</span> <span>dans une ville avec</span> <span>un bureau</span> <span>Mozilla</span><span>, vous pouvez utiliser</span> <span>l'espace communautaire</span> <span>dans ce bureau</span><span>.</span> <span>Ailleurs</span><span>, les options comprennent</span> <span>des salles de réunion</span> <span>dans les bibliothèques</span><span>, églises,</span> <span>cafés,</span> <span>ou des entreprises</span> <span>où vous avez</span> <span>des contacts</span><span>.</span> <span>Beaucoup de villes ont</span> <span>maintenant</span> <span>des espaces</span> <span>de coworking</span> <span>qui louent</span> <span>leurs</span> <span>salles de conférence</span> <span>pour un prix raisonnable</span><span>.</span></span></dd> + <dt>Ressources</dt> + <dd><span id="result_box" lang="fr"><span>Assurez-vous que</span> <span>votre site</span> <span>a de bonnes</span> <span>tables et des chaises</span><span>,</span> <span>et</span> <span>une alimentation fiable</span> <span>et un accès Internet</span><span>.</span> <span>Assis</span> <span>toute la journée sur</span> <span>une mauvaise</span> <span>chaise est</span> <span>non seulement</span> <span>mal à l'aise</span><span>;</span> <span>il peut</span> <span>conduire à des blessures</span><span>.</span> <span>Assurez-vous que</span> <span>le nombre de</span> particiapants <span>et leurs</span> <span>ordinateurs et périphériques</span> <span>ne</span> <span>l'emporte pas sur</span> <span>l'alimentation</span> <span>et</span> <span>la bande passante disponible</span> <span>sur Internet.</span> <span>Soyez généreux</span> <span>(</span><span>mais pas dangereux</span><span>)</span> <span>avec des cordons</span> <span>d'extension</span><span>,</span> <span>et, si nécessaire</span><span>,</span> <span>d'adaptateurs électriques</span><span>.</span> <span>Un projecteur</span> <span>pour la visualisation</span> <span>partagée</span> <span>peut être très utile</span><span>.</span> <span>Whiteboards</span> <span>et</span> <span>notes autocollantes</span> <span>sont grands</span> <span>pour le brainstorming</span> <span>et la planification.</span></span></dd> + <dt>Voyage</dt> + <dd><span id="result_box" lang="fr"><span>Voyage</span> <span>est pertinente que si</span> <span>les</span> particanpts <span>ne sont pas tous</span> <span>à proximité du lieu</span> <span>de</span> <span>sprint.</span> <span>Les</span> <span>stratégies habituelles</span> <span>pour</span> <span>économiser sur</span> <span>Voyage</span> <span>s'appliquent</span><span>,</span> <span>et</span> <span>ne sont pas spécifiques</span> <span>aux</span> <span>sprints</span> <span>doc</span><span>.</span></span></dd> + <dt><span class="short_text" id="result_box" lang="fr"><span>Hébergements</span></span></dt> + <dd><span id="result_box" lang="fr"><span>Où</span> les particapants <span>restent</span> <span>ne devraient pas être</span> <span>incommode</span>mrnt <span>loin du</span> <span>lieu de la réunion</span><span>.</span> <span>Il</span> <span>peut être moins cher</span> <span>(</span><span>et peut-être</span> <span>plus amusant</span><span>)</span> <span>de diviser le</span> <span>coût d'une maison</span> <span>de vacances</span> <span>ou appartement</span><span>,</span> <span>plutôt que de payer</span> <span>pour les</span> <span>chambres d'hôtel</span> <span>individuelles</span><span>.</span> <span>Si vous</span> <span>avez un mélange de</span> <span>visiteurs et des habitants</span> <span>(</span><span>prêts</span><span>)</span><span>,</span> <span>les</span> <span>visiteurs</span> <span>peuvent séjourner</span> <span>dans les maisons des</span> <span>membres</span> <span>de la communauté locale</span><span>.</span></span></dd> + <dt>Nourriture</dt> + <dd><span id="result_box" lang="fr"><span>Les participants</span> <span>ont besoin de manger</span><span>!</span> <span>Prendre des dispositions pour</span> <span>la nourriture pendant</span> <span>le sprint</span><span>,</span> <span>et informer les</span> participants <span>si</span> <span>certains repas</span> <span>ne seront pas</span> <span>organisées.</span> <span>Si le groupe</span> <span>reste</span> <span>dans une maison</span><span>,</span> <span>vous pouvez</span> <span>économiser de l'argent</span> <span>en achetant et</span> <span>en cuisinant la nourriture</span> <span>plutôt que de sortir</span> <span>pour manger.</span> <span>Même</span> <span>si la nourriture est</span> <span>auto-financée</span><span>, il peut</span> <span>réduire</span> des <span>tracas</span> de piocher <span>dans un</span> <span>fonds commun</span> <span>pour la nourriture</span><span>,</span> <span>plutôt que</span> <span>diviser</span> <span>chaque</span> <span>facture de restaurant</span><span>.</span> <span>Si</span> <span>votre site</span> <span>permet</span><span>,</span> <span>des collations</span> <span>(certains</span> <span>sains et</span> <span>d'autres non</span><span>)</span> <span>disponibles</span> <span>entre les repas</span><span>.</span></span></dd> + <dt><span class="short_text" id="result_box" lang="fr"><span>Amusement</span></span></dt> + <dd><span id="result_box" lang="fr"><span>Prenez du temps pour</span> <span>des </span><span>des activités sociales de non-écriture</span><span>.</span> <span>Ceux-ci peuvent</span> <span>être informelles</span><span>,</span> <span>comme aller</span> <span>pour une randonnée</span> <span>ensemble, ou</span> <span>plus formelle</span><span>,</span> <span>comme une</span> <span>excursion touristique</span><span>.</span> <span>Sortir</span> <span>de la bière</span> <span>(</span><span>à la fin de</span> <span>la journée</span><span>, bien sûr)</span> <span>est généralement</span> <span>un gagnant.</span> <span>D'autre part</span><span>, ne pas</span> <span>planifier</span> <span>toutes les heures</span> <span>de la vie quotidienne</span><span>.</span> <span>Tout le monde</span> <span>a besoin d'</span><span>un temps d'arrêt</span><span>, en particulier</span> <span>les introvertis</span><span>.</span></span></dd> +</dl> + +<h2 id="Pendant_le_sprint">Pendant le sprint</h2> + +<h3 id="Planifier_le_travail">Planifier le travail</h3> + +<p> </p> + +<h3 id="Tâches_de_suivi"><span class="short_text" id="result_box" lang="fr"><span>Tâches</span> <span>de suivi</span></span></h3> + +<p><span id="result_box" lang="fr"><span>Avoir</span> <span>un moyen de suivre</span> <span>que des tâches</span> <span>doivent</span> <span>être éfféctuées</span><span>,</span> <span>qui fait quoi</span><span>,</span> <span>et</span> <span>ce qui a été</span> <span>accompli</span><span>.</span> <span>Pour les doc sprints MDN</span><span>,</span> <span>nous utilisons</span> <span>une page wiki</span> <span>pour la planification</span> <span>à l'avance</span><span>,</span> <span>et une</span> <span>EtherPad</span> <span>pour le suivi des</span> <span>travaux</span> <span>au cours du</span> <span>sprint. </span></span></p> + +<p><span id="result_box" lang="fr"><span>Souvent</span><span>,</span> <span>les gens veulent aider</span><span>, mais</span> <span>ne savent</span> <span>pas par où commencer</span><span>,</span> <span>et de décider</span> <span>parmi les</span> <span>nombreuses options</span> <span>prend</span> <span>trop d'effort</span> <span>mental.</span> <span>Pour tout</span> <span>participant donné</span><span>,</span> <span>leur donner</span> <span>quelques</span> <span>tâches possibles</span> <span>(</span><span>"</span><span>vous pourriez faire</span> <span>A</span> <span>ou</span> <span>B</span><span>"</span><span>)</span><span>;</span> <span>ce qui simplifie</span> <span>leur choix</span><span>,</span> <span>sans leur faire penser</span> <span>qu'ils sont gérés</span><span>.</span></span></p> + +<h3 id="Collaboration">Collaboration</h3> + +<p><span id="result_box" lang="fr"><span>L'un des avantages</span> <span>de</span>s in-person <span>sprints</span><span> est</span> <span>que les gens peuvent</span> <span>travailler ensemble de façon</span> <span>dont ils pourraient ne pas</span> <span>être en mesure </span><span>quand ils</span> <span>ne sont pas</span> <span>au même endroit</span><span>, par exemple</span><span>,</span> <span>en travaillant</span> <span>sur</span> <span>des idées</span> <span>ensemble sur</span> <span>un tableau blanc ou</span> <span>par</span> <span>remue-méninges avec</span> <span>notes autocollantes</span><span>.</span> <span>Pourtant, il existe</span> <span>des possibilités de collaboration</span> <span>et de camaraderie</span> <span>dans tout type de</span> <span>sprint.</span> <span>Chatter</span> <span>via IRC</span> <span>est essentiel</span> <span>pour les virtual sprints</span><span>,</span> <span>et toujours très</span> <span>utile pour les</span> in-person <span>sprints</span> <span>(</span><span>par exemple, pour</span> <span>partager des liens</span><span>)</span><span>.</span> <span>Pour</span> <span>un plus grand sens</span> <span>de la «présence</span> <span>virtuelle»</span><span>,</span> <span>envisager d'utiliser un</span> <span>service de conférence</span> <span>vidéo</span><span>,</span> <span>tels que</span> <span>Google</span> <span>Hangout</span><span>.</span></span></p> + +<p><span id="result_box" lang="fr"><span>En tant qu'organisateur</span><span>, rechercher les</span> <span>intérêts communs</span> <span>entre les participants et</span> <span>des</span> <span>façon dont ils</span> <span>peuvent travailler ensemble</span><span>.</span></span></p> + +<h3 id="Célébrer_les_réalisations"><span class="short_text" id="result_box" lang="fr"><span>Célébrer</span> <span>les réalisations</span></span></h3> + +<p><span id="result_box" lang="fr"><span>Assurez-vous de</span> <span>prendre le temps de</span> <span>célébrer</span> <span>les réalisations</span> <span>à la fin de</span> <span>l'esprit</span><span>.</span> <span>Cela donne</span> <span>des participants</span> <span>est une</span> <span>meilleure sensation que</span> <span>lorsque le</span> <span>sprint</span> <span>se termine juste</span> <span>sans</span> <span>résumé</span><span>.</span> <span>Si</span> <span>possible,</span> <span>avoir des gens</span> une<span> "demo"</span> de <span>ce qu'ils ont fait</span><span>, même</span> <span>si c'est juste</span> <span>montrer</span> <span>une nouvelle</span> <span>page de l'article</span><span>.</span></span></p> + +<p><span id="result_box" lang="fr"><span>En outre,</span> <span>partager</span> <span>les</span> <span>réalisations</span> <span>de sprint</span> <span>par</span> <span>un billet de blog</span><span>,</span> <span>pour célébrer publiquement</span> <span>aussi bien.</span> <span>Ceci est important</span> <span>pour tout type de</span> <span>sprint,</span> <span>mais surtout pour les</span> <span>virtual sprints</span><span>,</span> <span>où les</span> <span>participants</span> <span>pourraient</span> <span>ne pas être tous</span> <span>en ligne à</span> <span>la fin officielle</span> <span>du sprint</span> <span>pour une</span> <span>séance de synthèse</span><span>. </span></span></p> + +<p> </p> diff --git a/files/fr/orphaned/mdn/community/index.html b/files/fr/orphaned/mdn/community/index.html new file mode 100644 index 0000000000..4e97b48397 --- /dev/null +++ b/files/fr/orphaned/mdn/community/index.html @@ -0,0 +1,51 @@ +--- +title: Rejoindre la communauté +slug: MDN/Rejoindre_la_communauté +tags: + - Communauté + - Guide + - MDN Meta +translation_of: MDN/Community +--- +<div>{{MDNSidebar}}</div> + +<div class="summary"> +<p>MDN (acronyme anglais pour réseau de développeur Mozilla) est plus qu’un wiki : c’est une communauté de développeurs travaillant ensemble à faire de MDN une ressource exceptionnelle pour les développeurs qui utilisent les technologies libres du Web.</p> +</div> + +<p>Nous aimerions que vous contribuiez à MDN, mais nous aimerions encore plus que vous participiez à la communauté MDN. Voici comment s’y connecter, en 3 petites étapes :</p> + +<ol> + <li><a href="https://developer.mozilla.org/fr/docs/MDN/Contribute/Howto/Comment_cr%C3%A9er_un_compte_sur_MDN">Créer un compte MDN</a>.</li> + <li><a href="https://developer.mozilla.org/en-US/docs/MDN/Community/Conversations">Rejoindre des discussions. </a>((en) pas encore traduit)</li> + <li><a href="https://developer.mozilla.org/en-US/docs/MDN/Community/Whats_happening">Suivre ce qui se passe.</a> ((en) pas encore traduit)</li> +</ol> + +<h2 id="Comment_fonctionne_la_communauté">Comment fonctionne la communauté ?</h2> + +<p>Les articles suivants décrivent la communauté de MDN.</p> + +<div class="row topicpage-table"> +<div class="section"> +<dl> + <dt class="landingPageList"><a href="https://developer.mozilla.org/en-US/docs/MDN/Community/Roles">Community roles</a> ((en) <em>rôles dans la communauté</em>)</dt> + <dd class="landingPageList"><span id="result_box" lang="fr"><span>Il y a un certain nombre de rôles, au sein de la communauté MDN, qui ont des responsabilités spécifiques.</span></span></dd> + <dt class="landingPageList"><a href="https://developer.mozilla.org/fr/docs/MDN/Rejoindre_la_communaut%C3%A9/Doc_sprints">Doc sprints</a></dt> + <dd class="landingPageList"><span id="result_box" lang="fr"><span>Ceci est un guide pour organiser un « </span></span><span lang="fr"><span>doc sprint </span></span><span id="result_box" lang="fr"><span>»</span></span><span lang="fr"><span>.</span> <span>Il contient des avis et des conseils de personnes qui en ont organisé, pour vous aider si vous souhaitez en faire un.</span></span></dd> + <dt class="landingPageList"><a href="https://developer.mozilla.org/en-US/docs/MDN/Community/Whats_happening">Follow what’s happening</a> ((en) <em>suivre ce qui se passe</em>)</dt> + <dd class="landingPageList">MDN vous est présenté par l’article wiki <a class="external external-icon" href="https://wiki.mozilla.org/MDN">Mozilla Developer Network community</a> (en). <span id="result_box" lang="fr"><span>Il contient quelques façons de partager des informations sur ce que nous faisons.</span></span></dd> +</dl> + +<dl> +</dl> +</div> + +<div class="section"> +<dl> + <dt class="landingPageList"><a href="https://developer.mozilla.org/en-US/docs/MDN/Community/Conversations">MDN community conversations</a> ((en) <em>discussions de la communauté</em>)</dt> + <dd class="landingPageList"><span id="result_box" lang="fr"><span>Le « travail » de MDN se déroule sur le site MDN, mais la « communauté » passe également par des discussions (asynchrones) et des conversations et réunions en ligne (synchrones).</span></span></dd> + <dt class="landingPageList"><a href="https://developer.mozilla.org/en-US/docs/MDN/Community/Working_in_community">Working in community</a> ((en) <em>travailler dans la communauté</em>)</dt> + <dd class="landingPageList"><span id="result_box" lang="fr"><span>Une partie importante de la contribution à la documentation MDN, à une échelle significative, est de savoir comment travailler dans le cadre de la communauté MDN.</span></span> <span id="result_box" lang="fr"><span>Cet article offre des conseils pour vous aider à tirer le meilleur parti de vos interactions avec les autres auteurs et avec les équipes de développement.</span></span></dd> +</dl> +</div> +</div> diff --git a/files/fr/orphaned/mdn/community/whats_happening/index.html b/files/fr/orphaned/mdn/community/whats_happening/index.html new file mode 100644 index 0000000000..8aba56f330 --- /dev/null +++ b/files/fr/orphaned/mdn/community/whats_happening/index.html @@ -0,0 +1,42 @@ +--- +title: Suivez ce qui se passe +slug: MDN/Rejoindre_la_communauté/Whats_happening +tags: + - Communauté + - Débutant + - Guide + - MDN Meta +translation_of: MDN/Community/Whats_happening +--- +<div>{{MDNSidebar}}</div> + +<p>MDN vous est présenté par la <a href="https://wiki.mozilla.org/MDN">communauté MDN</a>. Voici quelques façons dont nous partageons des informations sur ce que nous faisons.</p> + +<h2 id="Blogs">Blogs</h2> + +<dl> + <dt><a href="https://hacks.mozilla.org/" title="https://hacks.mozilla.org/">Mozilla Hacks</a></dt> + <dd>Actualités à propos et couverture approfondie des technologies et fonctionnalités Web et Mozilla.</dd> + <dt><a href="https://blog.mozilla.org/community/category/developer-engagement/">Engageant les Développeurs</a></dt> + <dd>Promouvoir l'activité et la discussion au sein de la communauté impliquée dans MDN chez Mozilla.</dd> +</dl> + +<h2 id="Flux_déphémères">Flux d'éphémères</h2> + +<ul> + <li><a href="http://twitter.com/MozDevNet">@MozDevNet</a>: Pages intéressantes, tutoriels, guides, appels à soumissions, mises à jour importantes et autres nouvelles sur Mozilla Developer Network.</li> + <li><a href="https://twitter.com/mozhacks" title="https://twitter.com/mozhacks">@MozHacks</a>: Tweets sur les nouvelles technologies web, les excellentes applications HTML5, et les fonctionnalités de Firefox.</li> + <li><a href="http://www.youtube.com/user/mozhacks" title="http://www.youtube.com/user/mozhacks">Mozilla Hacks (YouTube)</a></li> +</ul> + +<h2 id="Tableaux_détat_et_tableaux_de_bord">Tableaux d'état et tableaux de bord</h2> + +<p>Consultez les pages d'<a href="/fr/docs/MDN/Doc_status">état de la documentation</a> pour voir ce qui se passe dans toute l'étendue du contenue MDN. Vous pourrez voir quels articles doivent être écrits ou mis à jour, quels sujets ont le plus besoin d'aide, et bien plus encore.</p> + +<h2 id="Réunions_MDN">Réunions MDN</h2> + +<p>Il y a un certain nombre de réunions régulières pour suivre et partager les progrès de divers porjets et processus liés au MDN. Celles-ci sont décrites sur la <a href="https://wiki.mozilla.org/MDN/Meetings">page wiki des réunions MDN</a>.</p> + +<p>Pour avoir une idée générale de ce qui se passe, la meilleure réunion à laquelle participer est la réunion de la communauté MDN, qui a lieu toutes les deux semaines le mercredi à 10:00, heure du Pacifique (UTC-0800 Octobre-Mars, UTC-0700 en Mars-Octobre), dans le canal <a href="irc://irc.mozilla.org/mdn" title="irc://irc.mozilla.org/devmo">IRC #mdn</a>. Voir la page wiki des <a href="https://wiki.mozilla.org/MDN/Meetings/Community" title="https://wiki.mozilla.org/MDN/Community_meetings">réunions de la communauté MDN</a> pour les agendas et les notes des réunions précédentes.</p> + +<p>Le calendrier des <a class="external text" href="https://www.google.com/calendar/embed?src=mozilla.com_2d35383434313235392d323530%40resource.calendar.google.com" rel="nofollow">Événements MDN Publics</a> contient des réunions de la communauté MDN, des sprints de doc, et d'autres événements liés à MDN. Si vous voyez une réunion qui a lieu dans le canal "mdn" sur notre système de visioconférence Vidyo, vous pouvez <a href="https://v.mozilla.com/flex.html?roomdirect.html&key=gMM1xZxpQgqiQFNkUR3eBuHgxg">rejoindre la conversation sur le web</a>.</p> diff --git a/files/fr/orphaned/mdn/contribute/howto/create_an_mdn_account/index.html b/files/fr/orphaned/mdn/contribute/howto/create_an_mdn_account/index.html new file mode 100644 index 0000000000..a19f772968 --- /dev/null +++ b/files/fr/orphaned/mdn/contribute/howto/create_an_mdn_account/index.html @@ -0,0 +1,45 @@ +--- +title: Comment créer un compte sur MDN +slug: MDN/Contribute/Howto/Comment_créer_un_compte_sur_MDN +tags: + - Documentation + - Débutant + - Guide + - MDN Meta +translation_of: MDN/Contribute/Howto/Create_an_MDN_account +--- +<div>{{MDNSidebar}}</div><p><span class="seoSummary">Pour modifier un article ou du contenu sur MDN, il vous faut un profil sur MDN. Pour parcourir MDN, vous n'avez besoin d'aucun profil, rassurez-vous. Dans le guide qui suit, on voit comment créer un profil MDN.</span></p> + +<div class="pull-aside"> +<div class="moreinfo"><strong>Pourquoi dois-je utiliser mon adresse électronique sur MDN ?</strong><br> +<br> +Votre adresse électronique est utilisée pour récupérer votre compte et peut être utilisée par les administrateurs MDN afin de vous contacter (à propos de votre compte ou de vos contributions sur le site).<br> +<br> +Vous pouvez également l'utiliser pour vous abonner à des pages dont vous souhaitez connaître les modifications (<a href="/fr/docs/MDN/Contribute/Tools/Page_watching">voir cet article pour plus de détails</a>) ou pour recevoir d'autres messages : par exemple, si vous vous inscrivez à la version beta, vous pouvez recevoir des messages relatifs à des fonctionnalités en cours de test.<br> +<br> +Votre adresse électronique n'est jamais affichée sur MDN et est uniquement utilisée dans le respect de <a href="https://www.mozilla.org/privacy/websites/">notre politique de confidentialité</a>. + +<div class="note">Si vous vous connectez à MDN via GitHub et une adresse <code>noreply</code>, vous ne recevrez aucun message de MDN (même si vous vous abonnez aux modifications d'une page).</div> +</div> +</div> + +<ol> + <li>En haut de chaque article MDN, vous trouverez un bouton <strong>Connexion</strong>. Si vous cliquez dessus, cela affichera la liste des services pour s'authentifier sur MDN.</li> + <li> + <p>Sélectionnez un de ces services. <strong>Actuellement, seul GitHub est disponible.</strong> En sélectionnant GitHub, votre page de profil MDN, publique, aura un lien vers votre profil GitHub.</p> + </li> + <li> + <p>Suivez ensuite les étapes de GitHub pour connecter votre compte à MDN.</p> + </li> + <li>Une fois les étapes d'authentification terminée, vous reviendrez sur MDN où on vous demandera un nom d'utilisateur et une adresse électronique. <em>Votre nom d'utilisateur sera public et utilisé pour vous attribuer vos contributions. N'utilisez pas votre adresse électronique comme nom d'utilisateur</em><strong>.</strong></li> + <li>Cliquez sur <strong>Créez votre profil MDN</strong>.</li> + <li>Si l'adresse électronique utilisée à l'étape 4 n'est pas la même que celle utilisée avec le service d'authentification, veuillez vérifier votre messagerie électronique et cliquer sur le lien de confirmation que nous vous avons envoyé.</li> +</ol> + +<p>Et voilà ! Vous avez désormais un compte MDN et vous pouvez éditer les articles !</p> + +<p>Vous pouvez cliquer sur votre nom en haut de chaque page MDN afin de voir votre profil public. Depuis cette page de profil, vous pouvez cliquer sur <strong>Modifier</strong> pour éditer les informations de votre profil.</p> + +<div class="note"> +<p><strong>Note </strong><strong>:</strong> Les noms d'utilisateur ne peuvent plus contenir d'espaces ou d'arobases (@). Attention, votre nom d'utilisateur sera utilisé publiquement afin d'identifier vos contributions !</p> +</div> diff --git a/files/fr/orphaned/mdn/contribute/howto/do_a_technical_review/index.html b/files/fr/orphaned/mdn/contribute/howto/do_a_technical_review/index.html new file mode 100644 index 0000000000..d2e299a83c --- /dev/null +++ b/files/fr/orphaned/mdn/contribute/howto/do_a_technical_review/index.html @@ -0,0 +1,42 @@ +--- +title: Comment faire une relecture technique +slug: MDN/Contribute/Howto/faire_relecture_technique +translation_of: MDN/Contribute/Howto/Do_a_technical_review +--- +<div>{{MDNSidebar}}</div> + +<p class="summary"><strong>La relecture technique consiste en une vérification de la véracité des explications techniques de l'article, et à corriger les erreurs qui pourraient s'y trouver. Si un rédacteur de l'article souhaite que quelqu'un d'autre vérifie le contenu technique, le rédacteur coche la </strong><strong>case "Technical review" (Relecture technique) lors de l'édition. Souvent le rédacteur contacte un ingénieur particulier pour réaliser la relecture technique, mais n'importe qui avec une expertise technique sur le sujet peut le faire.</strong></p> + +<table class="fullwidth-table"> + <tbody> + <tr> + <td><strong>Où cela doit être fait ?</strong></td> + <td>Dans les articles qui sont marqués comme nécessitant une <a href="/fr/docs/needs-review/technical">relecture technique</a>.</td> + </tr> + <tr> + <td><strong>Qu'est ce qu'il faut savoir pour faire cette tâche ?</strong></td> + <td> + <ul> + <li>Expertise sur le sujet couvert par l'article que vous vous apprêtez à relire.</li> + <li>Savoir éditer des articles sur MDN.</li> + </ul> + </td> + </tr> + <tr> + <td><strong>Quelles sont les étapes ?</strong></td> + <td> + <ol> + <li>Allez sur la <a href="/fr/docs/needs-review/technical">liste des pages nécessitant une relecture technique</a>.</li> + <li>Choisissez une page dont vous connaissez très bien le sujet.</li> + <li>Cliquez sur le lien de l'article.</li> + <li>Une fois la page chargée, cliquez sur le bouton <strong>MODIFIER</strong> en haut de l'article ; il vous amènera à l'interface d'édition. N'hésitez pas à changer de page si celle-ci ne vous convient pas.</li> + <li>En lisant l'article, corrigez toute information technique erronée, et ajoutez les informations importantes qui seraient absentes.</li> + <li>Expliquez ce que vous avez fait, en bas de l'article dans la section "Commentaire sur la révision". (par exemple : "<em>Relecture technique terminée</em>") Si vous avez corrigé des informations pensez à les inclure dans votre commentaire (par exemple : <em>Relecture technique ; correction de la description des paramètres</em>").</li> + <li>Cliquer sur le bouton <strong>ENREGISTRER LES MODIFICATIONS</strong>.</li> + <li>Une fois que l'article corrigé apparait à l'écran, après avoir quitté le mode d'édition, cochez l'entrée <strong>Technical</strong>, sur le côté droit, et cliquez <strong>Submit Review.</strong></li> + <li>Vous avez fini !</li> + </ol> + </td> + </tr> + </tbody> +</table> diff --git a/files/fr/orphaned/mdn/contribute/howto/do_an_editorial_review/index.html b/files/fr/orphaned/mdn/contribute/howto/do_an_editorial_review/index.html new file mode 100644 index 0000000000..4a6d2d8770 --- /dev/null +++ b/files/fr/orphaned/mdn/contribute/howto/do_an_editorial_review/index.html @@ -0,0 +1,55 @@ +--- +title: Comment faire une relecture rédactionnelle +slug: MDN/Contribute/Howto/faire_relecture_redactionnelle +tags: + - Documentation + - Guide + - MDN Meta + - Revue éditoriale +translation_of: MDN/Contribute/Howto/Do_an_editorial_review +--- +<div>{{MDNSidebar}}</div> + +<div>{{IncludeSubnav("/fr/docs/MDN")}}</div> + +<p class="summary">Une <strong>revue éditoriale</strong> consiste à corriger des fautes d'orthographe, de grammaire ou d'usage dans le texte d'un article. Il n'est pas nécessaire d'être un expert linguistique pour contribuer et toute relecture et correction attentive représente une contribution extrêmement utile.</p> + +<p><span class="seoSummary">Dans cet article, on décrit ce qu'est une revue éditoriale et comment aider à ce que le contenu de MDN soit formulé précisément.</span></p> + +<dl> + <dt>Qu'est-ce que cette tâche ?</dt> + <dd>Il s'agit de relire et de corriger les articles ayant été marqués comme nécessitant une revue éditoriale.</dd> + <dt>Où faut-il accomplir cette tâche ?</dt> + <dd>Les revues éditoriales concernent principalement les articles qui ont été marqués comme nécessitant une revue éditoriale.</dd> + <dt>Que faut-il savoir pour accomplir cette tâche ?</dt> + <dd>Il faut avoir de bonnes notions en grammaire et en orthographe. Une revue éditoriale consiste à vérifier la grammaire, l'orthographe et les formulations utilisées dans un article. C'est également l'occasion de vérifier que <a href="/fr/docs/MDN/Contribute/Guidelines/Writing_style_guide">le guide stylistique de MDN</a> est bien respecté.</dd> + <dt>Quelles sont les étapes à suivre ?</dt> + <dd> + <ol> + <li>Choisissez un article à relire : + <ol> + <li>Consultez <a href="/fr/docs/needs-review/editorial">la liste des articles en attente d'une revue éditoriale</a>. Cette page liste l'ensemble des articles pour lesquels ont été demandées des revues éditoriales.</li> + <li>Cliquez sur le lien d'un article pour charger la page.<br> + <strong>Note : </strong>cette liste est générée de façon automatique mais peut ne pas être rafraîchie. Si l'article que vous avez choisi ne contient plus la bannière <em>Cet article doit recevoir les relectures suivantes</em>, vous pouvez rafraîchir la page avec la liste et en choisir un autre.</li> + </ol> + </li> + <li><a id="core-steps" name="core-steps"></a>Lisez l'article avec précaution en faisant attention aux coquilles, fautes d'orthographe ou de grammaire ou aux formulations approximatives. N'hésitez pas à changer d'article si celui que vous avez choisi ne vous convient pas.</li> + <li>S'il n'y a pas d'erreur, vous n'avez pas besoin de modifier l'article pour terminer la relecture. Vous pouvez utiliser la zone présente dans la barre verticale à gauche de l'article :<br> + <img alt="capture d’écran de la boite de menu latéral indiquant une demande de relecture rédactionnelle" src="https://mdn.mozillademos.org/files/17172/SidebarReviewBoxEditorial.fr.png" style="height: 153px; width: 318px;"></li> + <li>Décocher la case marquée <strong>Rédactionnel</strong> puis cliquer sur <strong>Enregistrer</strong>.</li> + <li>Si vous décelez des erreurs : + <ol> + <li>Cliquez sur le bouton <strong>Modifier</strong> en haut de la page, vous accéderez alors à <a href="/fr/docs/Project:Guide_du_rédacteur">l'éditeur</a>.</li> + <li>Corrigez les fautes trouvées. Si vous n'avez pas le temps ou que vous ne pensez pas avoir corrigé toutes les fautes, ce n'est pas grave et cela représente déjà une contribution essentielle, auquel cas, vous pouvez laisser la demande de revue sur la page.</li> + <li>Saisissez un commentaire de révision dans la zone en bas de l'article (par exemple : <em>Revue éditoriale effectuée, correction de XX</em>). Cela permet aux autres contributeurs et aux éditeurs de savoir ce que vous avez modifié et pourquoi.</li> + <li>Décochez la case Rédactionnel dans la zone <strong>Relecture nécessaire ?</strong> Cette zone est située juste avant les commentaires de révision.</li> + <li>Enfin, cliquez sur le bouton <strong>Publier</strong>.</li> + </ol> + </li> + </ol> + + <div class="note"> + <p><strong>Note :</strong> Vos modifications peuvent ne pas être immédiatement visibles après l'enregistrement en raison du traitement de la page par le système. Vous pouvez rafraîchir la page après quelques instants pour résoudre ce problème s'il se présente.</p> + </div> + </dd> +</dl> diff --git a/files/fr/orphaned/mdn/contribute/howto/set_the_summary_for_a_page/index.html b/files/fr/orphaned/mdn/contribute/howto/set_the_summary_for_a_page/index.html new file mode 100644 index 0000000000..eb57ce4229 --- /dev/null +++ b/files/fr/orphaned/mdn/contribute/howto/set_the_summary_for_a_page/index.html @@ -0,0 +1,60 @@ +--- +title: Comment définir le résumé d'une page +slug: MDN/Contribute/Howto/Set_the_summary_for_a_page +tags: + - Communauté + - Documentation + - Guide + - MDN +translation_of: MDN/Contribute/Howto/Set_the_summary_for_a_page +--- +<div>{{MDNSidebar}}</div><p><span class="seoSummary">Vous pouvez définir le resumé d'une page sur MDN, qui pourra être utilisée de diverses manières. Notamment dans les résultats des moteurs de recherches, dans les autres pages MDN ainsi que les pages d'actualités et dans les infobulles.</span>Cela doit être un texte ayant un sens à la fois dans le contexte de la page, mais également lors de l'affichage dans d'autres contextes, sans le reste du contenu de la page.</p> + +<p>Un résumé peut avoir été explicitement défini dans la page. S'il n'y en a pas, la ou les premières phrases sont alors utilisées, ce qui n'est pas toujours le plus adapté dans ce cas.</p> + +<table class="full-width-table"> + <tbody> + <tr> + <td><strong>Quelle est la tâche ?</strong></td> + <td>Définir dans la page un texte qui puisse être utilisé comme résumé dans un autre contexte ; cette tâche peut inclure une réécriture adaptée du texte, si nécessaire.</td> + </tr> + <tr> + <td><strong>Où est-ce qu'il y en a besoin ?</strong></td> + <td>Dans les pages qui n'ont pas de résumé, ou un qui peut être amélioré.</td> + </tr> + <tr> + <td><strong>Qu'avez vous besoin de savoir pour la réaliser ?</strong></td> + <td>Connaissance de l'éditeur MDN ; de bonnes compétences de rédaction en français ; suffisamment de connaissances dans le sujet de la page, pour pouvoir écrire un bon résumé.</td> + </tr> + <tr> + <td><strong>Quelles sont les étapes à réaliser ?</strong></td> + <td> + <ol> + <li>Choisir une page sur laquelle ajouter un résumé : + <ol> + <li>Dans la page du <a href="/en-US/docs/MDN/Doc_status">statut de la documentation MDN</a>, cliquer sur un lien de la catégorie <strong>Sections</strong> qui représente un sujet que vous connaissez (par exemple, HTML) :<br> + <img alt="" src="https://mdn.mozillademos.org/files/8681/sections.png" style="height: 130px; width: 504px;"></li> + <li>Dans la page de votre sujet, cliquez sur l'entête <strong>Pages</strong> dans le tableau <strong>Summary</strong>. Cela vous redirige vers un index de toutes les pages de ce sujet ; il affiche le lien de la page dans la colonne de gauche. Les tags et résumés dans la colonne de droite :<br> + <img alt="" src="https://mdn.mozillademos.org/files/8675/pages.png" style="height: 82px; width: 361px;"></li> + <li>Choisir une page dont le résumé est manquant, ou mauvais :<br> + <img alt="" src="https://mdn.mozillademos.org/files/8677/summary.png" style="height: 38px; width: 296px;"></li> + <li>Cliquer sur le lien pour aller sur la page.</li> + </ol> + </li> + <li>Cliquer sur <strong>Modifier</strong> pour ouvrir la page dans l'éditeur MDN.</li> + <li>Chercher une phrase ou deux qui fonctionnent comme un résumé en dehors du contexte. Si nécessaire, modifier le contenu pour obtenir des phrases adaptées à un résumé.</li> + <li>Sélectionner le texte à utiliser comme résumé.</li> + <li>Dans le widget <em>Styles</em> de la barre d'outils de l'éditeur, sélectionner <strong>SEO Summary</strong>. (Dans le code source de la page, cela crée un élément {{HTMLElement("span")}} avec la classe <code>class="seoSummary"</code> autour du texte sélectionné.)<br> + <img alt="" src="https://mdn.mozillademos.org/files/8679/styles.png" style="height: 231px; width: 403px;"></li> + <li>Enregistrer vos modifications avec un commentaire de révision du style "Définir le résumé de la page" ou "Set the page summary" (en anglais).</li> + </ol> + </td> + </tr> + </tbody> +</table> + +<p> </p> + +<p> </p> + +<p> </p> diff --git a/files/fr/orphaned/mdn/contribute/howto/tag_javascript_pages/index.html b/files/fr/orphaned/mdn/contribute/howto/tag_javascript_pages/index.html new file mode 100644 index 0000000000..93e6a0a105 --- /dev/null +++ b/files/fr/orphaned/mdn/contribute/howto/tag_javascript_pages/index.html @@ -0,0 +1,74 @@ +--- +title: Comment étiqueter les pages JavaScript +slug: MDN/Contribute/Howto/Étiquettes_pages_JavaScript +tags: + - Guide + - JavaScript + - MDN Meta + - Méthode +translation_of: MDN/Contribute/Howto/Tag_JavaScript_pages +--- +<div>{{MDNSidebar}}</div><p class="summary"><strong>L'étiquettage (Tagging)</strong> consiste à ajouter des méta-informations aux pages pour que leurs contenus puissent être groupés, par exemple dans l'outil de recherche.</p> + +<dl> + <dt><strong>Où cela doit-il être fait ?</strong></dt> + <dd>Dans <a href="/en-US/docs/Web/JavaScript/Doc_status#No_tags">les pages Javascript sans étiquettes.</a></dd> + <dt><strong>Que devez-vous savoir pour faire cette tâche ?</strong></dt> + <dd>Connaissances basiques en Javascript, comme savoir ce qu'est une méthode ou une propriété.</dd> + <dt><strong>Quelles sont les étapes pour le faire ?</strong></dt> + <dd> + <ol> + <li>Choisissez une des pages dans la liste liée ci-dessus.</li> + <li>Cliquez sur le lien de l'article pour charger la page.</li> + <li>Une fois que la page a été chargée, cliquez sur le bouton <strong>MODIFIER</strong> près du haut : cela vous placera dans l'éditeur MDN.</li> + <li>Au minimum l'étiquette <code>JavaScript</code> devrait être ajoutée. Il y a quelques autres étiquettes possible à ajouter: + <table class="standard-table"> + <thead> + <tr> + <th scope="col">Étiquette</th> + <th scope="col">Sur quelle page l'utiliser</th> + </tr> + </thead> + <tbody> + <tr> + <td><code>Method</code></td> + <td>méthodes</td> + </tr> + <tr> + <td><code>Property</code></td> + <td>propriétés</td> + </tr> + <tr> + <td><code>prototype</code></td> + <td>prototypes</td> + </tr> + <tr> + <td>Nom du type d'objet</td> + <td>méthodes d'objet; par exemple String.fromCharCode doit avoir l'étiquette <code>String</code></td> + </tr> + <tr> + <td><code>ECMAScript6 </code>et <code>Experimental</code></td> + <td>Nouveautés ajoutées dans la nouvelle version de l'ECMAScript</td> + </tr> + <tr> + <td><code>Deprecated</code></td> + <td>fonctionnalités dépréciées (dont l'usage n'est pas encouragé mais qui reste supporté)</td> + </tr> + <tr> + <td><code>Obsolete</code></td> + <td>fonctionnalités obsolètes (lesquelles ne sont plus supportée dans les navigateurs modernes)</td> + </tr> + <tr> + <td>autres</td> + <td>Voir <a href="/en-US/docs/Project:MDN/Contributing/Tagging_standards">MDN tagging standards</a> pour d'autres étiquettes possibles à appliquer</td> + </tr> + </tbody> + </table> + </li> + <li>Sauvegardez avec un commentaire.</li> + <li>Vous avez terminé !</li> + </ol> + </dd> +</dl> + +<p> </p> diff --git a/files/fr/orphaned/mdn/contribute/howto/write_an_article_to_help_learn_about_the_web/index.html b/files/fr/orphaned/mdn/contribute/howto/write_an_article_to_help_learn_about_the_web/index.html new file mode 100644 index 0000000000..5ef97245d0 --- /dev/null +++ b/files/fr/orphaned/mdn/contribute/howto/write_an_article_to_help_learn_about_the_web/index.html @@ -0,0 +1,129 @@ +--- +title: Comment rédiger un article pour aider les gens à se familiariser avec le Web +slug: MDN/Contribute/Howto/Write_an_article_to_help_learn_about_the_Web +tags: + - Apprentissage + - Guide + - How to +translation_of: MDN/Contribute/Howto/Write_an_article_to_help_learn_about_the_Web +--- +<div>{{MDNSidebar}}</div> + +<blockquote> +<p>L'<strong><a href="/fr/docs/Apprendre">Espace d'apprentissage</a></strong> de MDN est le portail pour les articles qui présentent les concepts Web aux nouveaux développeurs. Parce que son contenu s'adresse surtout aux débutants, c'est un endroit idéal pour partager les connaissances et aider les nouveaux arrivants à connaître le Web. Il est important de s'assurer que les nouveaux développeurs peuvent comprendre ce contenu, c'est pourquoi nous y accordons une attention particulière.</p> + +<p>Cet article explique comment écrire des pages pour l'<a href="https://developer.mozilla.org/fr/docs/Apprendre">Espace d'apprentissage.</a></p> +</blockquote> + +<h2 id="Comment_écrire_un_article_pour_l'Espace_d'Apprentissage">Comment écrire un article pour l'Espace d'Apprentissage</h2> + +<p> </p> + +<p>Pour commencer à partager vos connaissances, cliquez simplement sur le gros bouton vert, puis parcourez les cinq étapes ci-dessous. Si vous êtes à la recherche d'idées, jetez un coup d'oeil au tableau de notre <a href="https://trello.com/b/LDggrYSV">équipe Trello</a> !</p> + +<p> </p> + +<div class="align-center"><a class="button ignore-external mega positive" href="/en-US/docs/new?parent=111819">Écrire un nouvel article pour l'Espace d'Apprentissage</a> + +<div> </div> +</div> + +<p> </p> + +<p>Cet article ne se retrouvera peut-être pas exactement au bon endroit, mais au moins, il est sur MDN. Si vous avez besoin de parler à quelqu'un pour le mettre au bon endroit, n'hésitez pas à <a href="https://developer.mozilla.org/en-US/docs/Learn#Contact_us">nous contacter</a>.</p> + +<h3 id="Étape_n°_1_écrire_un_résumé_en_deux_lignes">Étape n° 1 : écrire un résumé en deux lignes</h3> + +<p>La première phrase de l'article doit résumer le sujet que vous allez traiter, et la seconde aborder quelques particularités des éléments mis dans l'article. Par exemple :</p> + +<div class="summary"> +<p>Alors que les fichiers {{glossary("HTML")}} contiennent du contenu structuré, les {{Glossary("CSS")}}, autre technologie majeure du Web, donneront au contenu l'apparence souhaitée. Dans cet article, nous allons détailler le fonctionnement de cette technologie et indiquer comment écrire votre propre exemple de base.</p> +</div> + +<p>Notez comment l'exemple explique brièvement que le CSS est une technologie Web de base utilisée pour styliser les pages. C'est suffisant pour que le lecteur puisse se faire une bonne idée de ce que l'article traite.</p> + +<p>Comme les articles du domaine d'apprentissage s'adressent principalement aux débutants, chaque article doit porter sur un sujet simple afin de ne pas noyer le lecteur sous un flot de concepts nouveaux. Si vous ne pouvez pas résumer l'article en une phrase, il se peut que vous essayiez d'en faire trop en un article !</p> + +<h3 id="Étape_n°_2_ajouter_une_boîte_d'en‑tête">Étape n° 2 : ajouter une boîte d'en‑tête</h3> + +<p>Ajoutez ensuite une boîte d'en‑tête pour aider les lecteurs à se repérer et savoir où ils en sont dans le processus d'apprentissage. Voici l'exemple d'une boîte d'en‑tête issue de « <a href="https://developer.mozilla.org/fr/Apprendre/Comprendre_les_URL">Comprendre les URL et leur structure</a> ». Vous pouvez utiliser cet article comme modèle lorsque vous écrivez le vôtre.</p> + +<p> </p> + +<table class="learn-box standard-table"> + <tbody> + <tr> + <th scope="row">Prérequis :</th> + <td>Vous devez au préalable savoir <a href="https://developer.mozilla.org/fr/Apprendre/Fonctionnement_Internet">comment fonctionne Internet</a>, <a href="https://developer.mozilla.org/fr/Apprendre/Qu_est-ce_qu_un_serveur_web">ce qu'est un serveur web</a> et <a href="https://developer.mozilla.org/fr/Apprendre/Le_fonctionnement_des_liens_sur_le_Web">les concepts sous-jacents aux liens sur le Web</a>.</td> + </tr> + <tr> + <th scope="row">Objectifs :</th> + <td>Savoir ce qu'est une URL et comprendre son rôle sur le Web.</td> + </tr> + </tbody> +</table> + +<p> </p> + +<dl> + <dt>Prérequis</dt> + <dd>Que doit déjà savoir le lecteur pour comprendre l'article ? Lorsque c'est possible, faites de chaque prérequis un lien vers un autre article du domaine d'apprentissage couvrant le concept (à moins qu'il ne s'agisse d'un article vraiment élémentaire qui n'exige aucune connaissance préalable).</dd> + <dt>Objectifs</dt> + <dd>Cette section décrit brièvement ce que le lecteur apprendra à la lecture de cet article. C'est un peu différent du résumé en deux lignes ; ce dernier est le condensé du sujet de l'article, tandis que les objectifs précisent ce que le lecteur peut s'attendre à apprendre à la lecture de l'article.</dd> +</dl> + +<div class="note"> +<p><strong>Note :</strong> Pour créer ce tableau, vous pouvez, soit faire un copier‑coller de l'exemple ci-dessus, soit utiliser l'<a href="https://developer.mozilla.org/en-US/docs/MDN/Contribute/Editor/Tables">outil</a><a href="https://developer.mozilla.org/en-US/docs/MDN/Contribute/Editor/Tables"> table</a> de l'éditeur du MDN. Si vous choisissez d'utiliser l'outil table, vous devez spécifiquement ajouter la classe CSS <code>learn‑box</code> en plus de la classe <code> standard‑table</code> par défaut. Pour ce faire, lorsque vous créez ou modifiez les propriétés de la table, allez dans le panneau "Avancé" et réglez le champ <strong>Stylesheet Classes</strong> sur « <code>standard‑table learn‑box</code> ».</p> +</div> + +<h3 id="Étape_n°_3_écrire_la_description_complète">Étape n° 3 : écrire la description complète</h3> + +<p>Rédigez ensuite une description plus verbeuse donnant un aperçu plus complet de l'article et en soulignant les concepts les plus importants. N'oubliez pas d'expliquer pourquoi le lecteur doit prendre le temps d'apprendre ce sujet et de lire votre article !</p> + +<h3 id="Étape_n°_4_approfondir">Étape n° 4 : approfondir</h3> + +<p>Quand vous en avez fini avec tout cela, vous pouvez enfin approfondir le sujet. Vous pouvez structurer cette partie de votre article comme vous l'entendez (n'hésitez pas à consulter notre <a href="https://developer.mozilla.org/en-US/docs/MDN/Contribute/Style_guide">guide de style</a>). C'est votre chance de briller ! Expliquez en détail ce à propos de quoi vous écrivez. Fournissez des liens vers la documentation de référence complète, expliquez en détail le fonctionnement de la technologie, fournissez des détails sur la syntaxe et l'utilisation, et ainsi de suite. C'est à vous de décider !</p> + +<p>Pour vous guider, voici quelques astuces de rédaction pour les débutants :</p> + +<ul> + <li> + <p>Ne traitez qu'un seul sujet. Si vous pensez qu'il est nécessaire de parler d'autres sujets, cela signifie soit qu'il manque un prérequis, soit qu'il faut diviser votre article en plusieurs articles.</p> + </li> + <li>Utilisez un anglais simple. Évitez les termes techniques lorsque vous le pouvez ou, au minimum, définissez-les et, le cas échéant, établissez un lien vers les entrées correspondantes du glossaire.</li> + <li>Incluez des exemples simples pour faciliter la compréhension des concepts théoriques. Beaucoup de personnes apprennent mieux par l'exemple. Plutôt que d'écrire des articles académiques, nous voulons que les débutants comprennent facilement le texte.</li> + <li>Les aides visuelles peuvent souvent faciliter la compréhension ; elles portent des informations supplémentaires, alors n'hésitez pas à utiliser des images, des diagrammes, des vidéos et des tableaux. Si vous utilisez des diagrammes ou des graphiques contenant du texte, nous vous incitons à utiliser {{Glossary("SVG")}} pour que nos équipes de traducteurs puissent transcrire les éléments textuels dans les autres langues.</li> +</ul> + +<p>Jetez un coup d'œil aux premières sections de l'article <a href="https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Building_blocks/Functions">Fonctions - blocs de code réutilisables</a> pour quelques bonnes descriptions.</p> + +<h3 id="Étape_n°_5_fournir_du_matériau_pour_un_«_apprentissage_actif_»">Étape n° 5 : fournir du matériau pour un « apprentissage actif »</h3> + +<p>Pour illustrer l'article et aider le lecteur à mieux saisir ce qu'il apprend, faites en sorte de pourvoir des exercices, des tutoriels et des tâches à accomplir. En demandant au lecteur d'utiliser et d'expérimenter activement et de façon pratique les concepts expliqués dans l'article, vous pouvez l'aider à « verrouiller » l'information dans sa tête.</p> + +<p>Vous pouvez choisir d'incorporer les exemples directement dans la page en tant qu'<a href="/en-US/docs/MDN/Contribute/Structures/Live_samples">exemples directs</a> ou <a href="/en-US/docs/MDN/Contribute/Editor/Links">établir un lien sur eux </a>s'ils ne fonctionnent pas sous la forme précédente. Si vous êtes intéressés par la création de ces éléments de forte valeur, veuillez lire l'article <a href="https://developer.mozilla.org/en-US/docs/MDN/Contribute/Howto/Create_an_interactive_exercise_to_help_learning_the_web">Créer un exercice interactif pour faciliter l'apprentissage du Web</a>.</p> + +<p>Si vous ne pouvez pas fournir de liens vers du matériel d'apprentissage actif existant (vous n'en connaissez pas ou n'avez pas le temps de les créer), vous devriez ajouter une ancre {{Tag("NeedsActiveLearning")}} à l'article. De cette façon, d'autres contributeurs peuvent trouver des articles nécessitant du matériel d'apprentissage actif et peut-être vous aider à les trouver.</p> + +<p>Voyez <a href="/en-US/docs/Learn/CSS/Introduction_to_CSS/Simple_selectors#Active_learning_Selecting_different_elements">Apprentissage actif : selection des divers éléments</a> dans le cas d'un exercice d'apprentissage actif ou <a href="/en-US/docs/Learn/JavaScript/Building_blocks/Functions#Active_learning_Playing_with_scope">Apprentissage actif : jouer dans la portée</a> pour un autre style d'exercices : il consiste à faire télécharger localement un canevas et le modifier en suivant des étapes préétablies.</p> + +<h3 id="Étape_n°_6_faire_revoir_l'article_et_le_mettre_au_menu_de_l'Espace_d'Apprentissage">Étape n° 6 : faire revoir l'article et le mettre au menu de l'Espace d'Apprentissage</h3> + +<p>Après avoir écrit l'article, faites-le nous savoir pour que nous puissions en faire la revue et suggérer des améliorations. Encore une fois, voyez notre section <a href="/en-US/docs/Learn#Contact_us">Nous contacter </a>pour connaître les meilleures façons d'entrer en contact.</p> + +<p>Pour vraiment terminer votre article, il est nécessaire de le placer dans le menu principal de navigation de l'Espace d'Apprentissage. Ce menu est généré par la macro <a href="/en-US/docs/Template:LearnSidebar">LearnSidebar</a> : vous aurez besoin de privilèges spéciaux pour la modifier, donc, encore une fois, parlez en à l'une de nos équipes pour qu'il y soit ajouté.</p> + +<p>Enfin, vous devriez ajouter l'accès au menu dans votre page — on effectue cet ajout à l'aide d'un appel à la macro \{{LearnSidebar}}} dans un paragraphe au haut de votre page.</p> + +<ul> +</ul> + +<h2 id="Suggestions_d'articles">Suggestions d'articles</h2> + +<p>Vous souhaitez contribuer, mais vous n'êtes pas sûr du sujet à retenir ?</p> + +<p>L'équipe de l'Espace d'Apprentissage tient un <a href="https://trello.com/b/LDggrYSV"> tableau Trello d'idées</a> d'articles à écrire. Vous êtes libre d'en choisir une et de vous mettre au travail !</p> + +<p> </p> + +<p> </p> diff --git a/files/fr/orphaned/mdn/editor/basics/attachments/index.html b/files/fr/orphaned/mdn/editor/basics/attachments/index.html new file mode 100644 index 0000000000..ad2c850716 --- /dev/null +++ b/files/fr/orphaned/mdn/editor/basics/attachments/index.html @@ -0,0 +1,74 @@ +--- +title: Les pièces jointes dans l’éditeur MDN +slug: MDN/Editor/Basics/Pieces_jointes +tags: + - Débutant + - Guide +translation_of: MDN/Editor/Basics/Attachments +--- +<div>{{MDNSidebar}}</div> + +<p class="summary">La section « Pièces jointes » de l’éditeur MDN vous permet de déposer des fichiers sur MDN pour les utiliser dans le contenu MDN, ainsi que visualiser quels fichiers sont utilisés dans le document en cours.</p> + +<div class="note"> +<p>Cette section n’est visible (en bas de page) uniquement si vous avez les permissions requises pour adjoindre des fichiers aux pages. Les utilisateurs n’obtiennent pas cette permission par défaut, donc si vous en avez besoin prenez contact avec les <a href="/en-US/docs/MDN/Contribute/Processes/Requesting_elevated_privileges">administrateurs MDN</a> pour demander (en anglais) cette permission.</p> +</div> + +<p>La section « Pièces jointes » n’est de plus visible que lors de l’édition d’un article existant. Elle n’apparaît pas dans l’éditeur pour un nouvel article.</p> + +<h2 id="Démarche_pour_les_pièces_jointes">Démarche pour les pièces jointes</h2> + +<p>La façon dont fonctionne le dépôt de fichiers a pour effet de rafraîchir la page à chaque dépôt. Si vous avez réalisé des modifications non sauvegardées à ce moment-là, elles pourront être perdues. C’est donc une bonne idée de sauvegarder vos modifications en cours préalablement au dépôt de fichiers.</p> + +<p>Une bonne démarche est donc la suivante :</p> + +<ol> + <li>Faites vos modifications, en insérant des textes bouche-trous aux emplacements où vous voulez insérer des images ;</li> + <li>Sauvegardez vos modifications ;</li> + <li>Adjoindre vos images ;</li> + <li>Insérez les images à la place des bouche-trous ;</li> + <li>Sauvegardez votre travail à nouveau par sécurité.</li> +</ol> + +<p>Si vous avez des modifications non publiées quand vous déposez une pièce jointe, elles peuvent avoir été sauvegardées comme brouillon, que vous pouvez récupérer en cliquant sur le lien <strong>Restore draft / Récupérer le brouillon</strong> en haut de la zone d’édition. Ou vous pouvez activer <strong>Publish and Keep Editing / Publier et poursuivre l’édition</strong> avant de déposer une pièce jointe. Elles peuvent être perdues si vous les laissez en suspens trop longtemps ou si vous oubliez de les récupérer d’une façon ou d’une autre, nous vous recommandons donc la démarche ci-dessus.</p> + +<h2 id="L’IU_«_Pièces_jointes_»">L’<abbr title="Interface Utilisateur">IU</abbr> « Pièces jointes »</h2> + +<p>Pour adjoindre une pièce jointe à une page, activez par clic ou clavier le bouton <strong>Envoyer des fichiers</strong> ; cette action a pour effet de déployer la section de dépôt de fichier qui ressemble à :</p> + +<p><img alt="Section « Pièces jointes » déployée après appui du bouton « Envoyer des fichiers », vide. Disposition en tableau avec des colonnes Fichier, Titre, Description, Commentaires avec champs correspondants, vides. Suivi d’un bouton Upload / Dépôt." src="https://mdn.mozillademos.org/files/17174/attachments-no-files.fr.png" style="height: 268px; width: 1172px;"></p> + +<p>Comme vous pouvez le voir, cette section se présente sous forme d’un tableau qui vous permet de sélectionner un fichier puis lui donner un intitulé, et éventuellement fournir une description et un commentaire éditorial. Quand les champs sont remplis et que vous avez sélectionné votre fichier, activez par clic ou clavier le bouton <strong>Upload / Déposer</strong> pour l’envoyer sur MDN.</p> + +<p>Le cas d’utilisation le plus commun pour les pièces jointes est d’ajouter des images à des pages. Quand vous déposez une image, assurez-vous s’il vous plaît d’utiliser un outil d’optimisation pour rendre le fichier le plus léger à télécharger que possible. Cela améliore le temps de chargement de la page et augmente globalement la performance de MDN. Vous pouvez utiliser votre outil préféré, si vous en avez un. Sinon nous vous suggérons d’utiliser <a class="external external-icon" href="https://tinypng.com/">TinyPNG</a>, en tant qu’outil convivial.</p> + +<div class="note"> +<p>Seule une sélection de formats de fichiers est autorisée comme pièces jointes sur MDN : GIF, JPEG, PNG, et HTML. Les images Photoshop sont autorisées mais devraient être évitées à part dans des cas très particuliers. Tout autre format de fichier est interdit par le formulaire de dépôt. Déposer des fichiers SVG nécessite une autorisation particulière, par conséquent <a href="/en-US/docs/MDN/Contribute/Processes/Requesting_elevated_privileges">contactez l’équipe rédactionnelle MDN</a> (en anglais) si vous avez besoin de déposer un fichier SVG.</p> +</div> + +<p>Sentez-vous libre d’<a href="/fr/docs/MDN/Contribute/Editor/Basics/Pieces_jointes$edit">ouvrir cette page-ci dans l’éditeur</a> et d’aller jeter un coup d’œil en bas de page à sa liste de pièces jointes pour vous faire une idée.</p> + +<p>Une fois qu’un fichier a été joint, il apparaîtra (par le titre que vous lui avez affecté dans le formulaire de dépôt) dans la boite de dialogue <strong>Propriétés de l’image</strong> quand vous ajoutez une image à une page. Voir la page MDN <a href="/en-US/docs/MDN/Contribute/Editor/Images">Images</a> (en anglais) pour les détails de cette interface.</p> + +<h2 id="Restrictions_d’accès">Restrictions d’accès</h2> + +<p>Il y a un potentiel évident de vandalisme et de pollution en déposant des images qui ne relèvent pas de MDN Web Docs, et par conséquent cet outil n’est pas disponible pour tous les utilisateurs.</p> + +<h3 id="Rôles_qui_possède_cette_capacité">Rôles qui possède cette capacité</h3> + +<ul> + <li><a href="/en-US/docs/MDN/Contribute/Admins"><strong>Administrateur</strong></a><strong> (en)</strong> ;</li> + <li><a href="/en-US/docs/MDN/Contribute/Topic_driver_role"><strong>Responsable de sujet</strong></a><strong> (en)</strong> ;</li> + <li><a href="/en-US/docs/MDN/Contribute/Localization_driver_role"><strong>Responsable de traduction</strong></a><strong> (en)</strong>.</li> +</ul> + +<h3 id="Conditions_pour_obtenir_cette_capacité">Conditions pour obtenir cette capacité</h3> + +<p>Vous pouvez obtenir un accès à cet outil si vous réunissez ces conditions :</p> + +<ul> + <li>Vous en avez un besoin récurrent (p. ex. si vous êtes en train de travailler activement sur un ensemble de pages qui ont besoin d’images en pièces jointes). Si vous n’avez qu’un besoin ponctuel, demandez à un administrateur de réaliser l’opération pour vous ;</li> + <li>Vous modifiez MDN régulièrement, et vous avez un palmarès de contributions utiles.</li> +</ul> + +<p>Voir <a href="/en-US/docs/MDN/Contribute/Processes/Requesting_elevated_privileges">Demander une élévation de droits</a> (en) pour le processus d’attribution de cette capacité.</p> diff --git a/files/fr/orphaned/mdn/editor/basics/index.html b/files/fr/orphaned/mdn/editor/basics/index.html new file mode 100644 index 0000000000..4fda34d601 --- /dev/null +++ b/files/fr/orphaned/mdn/editor/basics/index.html @@ -0,0 +1,74 @@ +--- +title: Editor UI elements +slug: MDN/Editor/Basics +tags: + - Beginner + - Documentation + - Guide + - MDN + - MDN Meta + - NeedsTranslation + - TopicStub + - editor +translation_of: MDN/Editor/Basics +--- +<div>{{MDNSidebar}}</div> + +<p><span class="seoSummary">L'éditeur WYSIWYG intégré sur MDN est conçu pour rendre aussi facile que possible la création, la modification et l'amélioration d'articles et d'autres pages presque partout sur le site.</span> La fenêtre de l'éditeur, illustrée ci-dessous, se compose de huit zones clés. Ce guide fournit des informations sur chaque section afin que vous sachiez comment utiliser l'ensemble de notre environnement d'édition.</p> + +<div class="note"> +<p>Nous travaillons constamment sur des améliorations à MDN, il y aura donc des moments où cette documentation ou les captures d'écran ci-dessous peuvent être légèrement obsolètes. Cependant, nous mettrons régulièrement à jour cette documentation pour éviter qu'elle ne soit anormalement en retard.</p> +</div> + +<p><img alt="Screenshot of the editor UI (August 2017) with each section labeled" src="https://mdn.mozillademos.org/files/15261/edit-page-with-labels.png" style="border-style: solid; border-width: 2px; height: 723px; width: 808px;"></p> + +<p>L'interface utilisateur de l'éditeur contient les sections suivantes, comme indiqué ci-dessus. Cliquez sur un lien ci-dessous pour en savoir plus sur cette section de l'éditeur.</p> + +<ul> + <li><a href="/en-US/docs/MDN/Contribute/Editor/Basics/Page_info">Page info</a></li> + <li><a href="/en-US/docs/MDN/Contribute/Editor/Basics/Page_controls">Page controls</a></li> + <li><a href="/en-US/docs/MDN/Contribute/Editor/Basics/Toolbar">Toolbar</a></li> + <li><a href="/en-US/docs/MDN/Contribute/Editor/Basics#Edit_box">Edit box</a></li> + <li><a href="/en-US/docs/MDN/Contribute/Editor/Basics/Tags">Tags</a></li> + <li><a href="#Revision_comment">Revision comment</a></li> + <li><a href="#Review_requests">Review requests</a></li> + <li><a href="/en-US/docs/MDN/Contribute/Editor/Basics/Attachments">Attachments</a></li> +</ul> + +<h2 id="Edit_box">Edit box</h2> + +<p>The edit box is, of course, where you actually do your writing.</p> + +<p>Right-clicking in the editor box offers appropriate additional options depending on the context of your click: right-clicking in a table offers table-related options and right-clicking in a list offers list-related options, for example. By default, the editor uses its own contextual menu when you right-click on the editor. To access your browser's default contextual menu (such as to access the Firefox spell checker's list of suggested corrections), hold down the <kbd>Shift</kbd> or <kbd>Control</kbd> key (the <kbd>Command</kbd> key on Mac OS X) while clicking.</p> + +<p>When working in the edit box, you can use its <a href="/en-US/docs/MDN/Contribute/Editor/Edit_box">keyboard shortcuts</a>.</p> + +<h2 id="Revision_comment">Revision comment</h2> + +<p>After you've made your changes, it's strongly recommended you add a comment to your revision. This is displayed in the revision history for the page, as well as on the <a href="/en-US/dashboards/revisions">Revision Dashboard</a>. It helps to explain or justify your changes to others that may review your work later. To add a revision comment, simply type the note into the revision comment box before clicking either of the <strong>Publish</strong> buttons at the top or bottom of the page.</p> + +<p>There are a few reasons this is helpful:</p> + +<ul> + <li>If the reason for your change isn't obvious, your note can explain the reasoning to others.</li> + <li>If your change is technically complex, it can explain to editors the logic behind it; this can include a bug number, for example, that editors can refer to for more information.</li> + <li>If your edit involves deleting a large amount of content, you can justify the deletion (for example, "I moved this content to article X").</li> +</ul> + +<h2 id="Review_requests">Review requests</h2> + +<p>The MDN community uses <strong>reviews</strong> to try to monitor and improve the quality of MDN's content. This works by setting a flag on an article indicating that a review is needed. You can learn more about <a href="/en-US/docs/MDN/Contribute/Howto/Do_a_technical_review">technical reviews</a> and <a href="/en-US/docs/MDN/Contribute/Howto/Do_an_editorial_review">editorial review</a> in the <a href="/en-US/docs/MDN/Contribute/Howto">How to</a> guides.</p> + +<p>To request a review on the article you've worked on, toggle on the checkbox next to the type of review that's needed. Technical reviews should be requested any time you make changes to the explanation of how something technical works, while editorial reviews are a good idea when you've made changes and would like someone to review your writing and style choices.</p> + +<p>While selecting a review checkbox adds the article to the lists of those <a href="/en-US/docs/needs-review/technical">needing technical review</a> or <a href="/en-US/docs/needs-review/editorial">needing editorial review</a>, it does not guarantee that anyone will immediately review the article. For technical reviews, it's a good idea to directly contact a <a href="/en-US/docs/MDN/Community/Roles/Subject-matter_experts">subject-matter expert</a> in the relevant technical area. For editorial reviews, you can post in the <a href="https://discourse.mozilla.org/c/mdn">MDN discussion forum</a> to request that someone review your changes.</p> + +<p>Be sure to click one of the <strong>Publish</strong> buttons after making your selections, to commit your review request.</p> + +<h2 id="Voir_aussi">Voir aussi</h2> + +<ul> + <li><a href="https://docs.ckeditor.com/">CKEditor User's Guide</a></li> +</ul> + +<h6 id="EditorGuideQuicklinks">{{EditorGuideQuicklinks}}</h6> diff --git a/files/fr/orphaned/mdn/editor/index.html b/files/fr/orphaned/mdn/editor/index.html new file mode 100644 index 0000000000..89f9382092 --- /dev/null +++ b/files/fr/orphaned/mdn/editor/index.html @@ -0,0 +1,226 @@ +--- +title: Guide du rédacteur +slug: MDN/Editor +tags: + - Projet_MDC +translation_of: MDN/Editor +--- +<p>{{MDNSidebar}}</p> + +<p>Ce guide du rédacteur est une référence de style pour le Mozilla Developer Center. Il est conçu pour être un ensemble sympathique de bonnes pratiques plutôt qu’une liste de règles stricte, tout ce qui s’y trouve peut donc être ignoré. Ne soyez pas mécontent ou surpris, par contre, si un autre contributeur arrive par la suite avec ses gros sabots et retravaille votre article pour s’y conformer de plus près.</p> + +<p>Naturellement, ce guide s’applique principalement à la traduction française du wiki MDC en anglais. Les traductions dans les autres langues peuvent (et sont encouragées à) avoir leurs propres règles.</p> + +<h3 id="Guides_de_style_recommand.C3.A9s" name="Guides_de_style_recommand.C3.A9s">Guides de style recommandés</h3> + +<p>Si vous avez des questions concernant l’usage et le style non traitées ici, nous recommandons la consultation du <a class="external" href="http://developers.sun.com/techtopics/global/technology/translation/style-guides/Guide_stylistique_francais.pdf">Guide stylistique de Sun</a>. Vous trouverez d’autres guides sur la page qui leur est consacrée sur <a class="external" href="http://traduc.org/Guides_de_traduction">traduc.org</a>.</p> + +<h3 id="Dictionnaires_recommand.C3.A9s" name="Dictionnaires_recommand.C3.A9s">Dictionnaires recommandés</h3> + +<p>Pour des questions d’orthographe, outre les dictionnaires papier classiques, vous pouvez vous référer au <a class="external" href="http://granddictionnaire.com/">Grand dictionnaire terminologique</a> de l’OQLF pour les termes techniques, et <a class="external" href="http://www.wordreference.com/enfr/">WordReference</a> pour les autres mots.</p> + +<p>Vous pouvez utiliser l’ancienne ou la nouvelle orthographe, mais essayez de garder la même au sein du même article (ou de la même série d’articles). Utilisez par exemple « évènement » dans la <a href="fr/R%c3%a9f%c3%a9rence_du_DOM_Gecko">Référence du DOM Gecko</a>. Utilisez <strong>toujours</strong> des accents sur les majuscules, un mauvais clavier n’est pas une excuse (le correcteur orthographique intégré à Firefox pourra vous y aider).</p> + +<p>Ce guide sera complété au cours du temps, si vous avez des questions particulières qui n’y sont pas traitées, envoyez-les à la <a>liste de discussion</a> ou sur la page de discussion associée à ce guide.</p> + +<h3 id="Nommage_des_pages_et_capitalisation_des_titres" name="Nommage_des_pages_et_capitalisation_des_titres">Nommage des pages et capitalisation des titres</h3> + +<ul> + <li>Les noms de page et de section doivent simplement commencer par une majuscule (au premier mot et sur les noms propres) plutôt que de mettre une majuscule à chaque mot : + <ul> + <li><strong style="color: green;">Correct</strong> : « Une nouvelle méthode pour les rollovers JavaScript »</li> + <li><strong style="color: red;">Incorrect</strong> : « Une Nouvelle Méthode pour les Rollovers JavaScript »</li> + </ul> + </li> +</ul> + +<h3 id="Abr.C3.A9viations_latines" name="Abr.C3.A9viations_latines">Abréviations latines</h3> + +<h4 id="Dans_les_notes_et_parenth.C3.A8ses" name="Dans_les_notes_et_parenth.C3.A8ses">Dans les notes et parenthèses</h4> + +<ul> + <li>Seule l’abréviation <em>et cætera</em> (etc.) doit être utilisée dans les parenthèses et dans les notes. Elle doit toujours se terminer par un seul point. N’utilisez pas les autres abréviations latines (<em>i.e.</em>, <em>e.g.</em>) qui ne sont pas comprises par tout le monde ou pas toujours identifiée comme d’origine latine. Utilisez plutôt « comme », « par exemple », « c.-à-d. ». + + <ul> + <li><strong style="color: green;">Correct</strong> : Les applications Gecko (Firefox, Thunderbird, etc.) peuvent être utilisées …</li> + <li><strong style="color: red;">Incorrect</strong> : Les applications Gecko (Firefox, Thunderbird, etc…) peuvent être utilisées …</li> + <li><strong style="color: green;">Correct</strong> : Les navigateurs Gecko (comme Firefox) peuvent être utilisés …</li> + <li><strong style="color: red;">Incorrect</strong> : Les navigateurs Gecko (e.g. Firefox) peuvent être utilisés …</li> + </ul> + </li> +</ul> + +<h4 id="Dans_le_texte_principal" name="Dans_le_texte_principal">Dans le texte principal</h4> + +<ul> + <li>Dans le texte principal (c.-à-d. en dehors des notes et des parenthèses, utilisez un équivalent français complet de ce que désignent ces abréviations. + <ul> + <li><strong style="color: green;">Correct</strong> : … pour les navigateurs et d’autres applications.</li> + <li><strong style="color: red;">Incorrect</strong> : … pour les navigateurs, etc.</li> + <li><strong style="color: green;">Correct</strong> : les navigateurs comme Firefox peuvent être utilisés …</li> + <li><strong style="color: red;">Incorrect</strong> : les navigateurs e.g. Firefox peuvent être utilisés …</li> + </ul> + </li> +</ul> + +<h4 id="Signification_et_.C3.A9quivalents_des_abr.C3.A9viations_latines" name="Signification_et_.C3.A9quivalents_des_abr.C3.A9viations_latines">Signification et équivalents des abréviations latines</h4> + +<table class="fullwidth-table"> + <tbody> + <tr> + <th>Abrév.</th> + <th>Latin</th> + <th>Français</th> + </tr> + <tr> + <td>cf.</td> + <td><em>confer</em></td> + <td>voir</td> + </tr> + <tr> + <td>e.g.</td> + <td><em>exempli gratia</em></td> + <td>par exemple</td> + </tr> + <tr> + <td>et al.</td> + <td><em>et alii</em></td> + <td>et autres</td> + </tr> + <tr> + <td>etc.</td> + <td><em>et cætera</em></td> + <td>et ainsi de suite</td> + </tr> + <tr> + <td>i.e.</td> + <td><em>id est</em></td> + <td>c.-à-d., c’est-à-dire, en d’autres mots</td> + </tr> + <tr> + <td>N.B.</td> + <td><em>nota bene</em></td> + <td>Notez que…</td> + </tr> + <tr> + <td>P.S.</td> + <td><em>post scriptum</em></td> + <td>écrit après</td> + </tr> + </tbody> +</table> + +<p>N.B. Beaucoup de gens confondent « e.g. » avec « i.e. », ne les utilisez donc pas en français.</p> + +<h3 id="Acronymes_et_abr.C3.A9viations" name="Acronymes_et_abr.C3.A9viations">Acronymes et abréviations</h3> + +<h4 id="Majuscules_et_points" name="Majuscules_et_points">Majuscules et points</h4> + +<ul> + <li>Utilisez des capitales et ne mettez pas les points pour tous les acronymes et abréviations, donc les organisations comme l’ONU. + <ul> + <li><strong style="color: green;">Correct</strong> : XUL</li> + <li><strong style="color: red;">Incorrect</strong> : X.U.L. ; Xul</li> + </ul> + </li> +</ul> + +<h4 id="Expansion" name="Expansion">Expansion</h4> + +<ul> + <li>À la première mention d’un terme sur une page, introduisez son expansion entre parenthèses, puis sa traduction en français. + <ul> + <li><strong style="color: green;">Correct</strong> : « XUL (XML User Interface Language) est le langage XML d’interface utilisateur de Mozilla… »</li> + <li><strong style="color: red;">Incorrect</strong> : « XUL est le langage XML d’interface utilisateur de Mozilla… »</li> + </ul> + </li> +</ul> + +<h5 id="Exceptions" name="Exceptions">Exceptions</h5> + +<ul> + <li>Ne dépliez les acronymes que s’ils ne sont pas supposés familiers du lecteur. En cas de doute, faites l’expansion ou, mieux, faites un lien vers l’article décrivant la technologie.</li> +</ul> + +<h4 id="Pluriels_d.27acronymes_ou_d.27abr.C3.A9viations" name="Pluriels_d.27acronymes_ou_d.27abr.C3.A9viations">Pluriels d'acronymes ou d'abréviations</h4> + +<ul> + <li>N’ajoutez aucun <em>s</em> pour accorder un acronyme ou une abréviation au pluriel (à moins qu’elle soit lexicalisée en un nom commun connu et défini dans les dictionnaires usuels, le plus souvent avec une orthographe modifiée où s’insèrent des voyelles supplémentaires prononçables et transcrites, et qui peut alors être écrit entièrement en minuscules et s’accorder normalement, mais le plus souvent cet usage n’est pas clairement établi et cette transcription est à éviter s’il ne s’agit que d’une transcription phonétique lettre par lettre de l’abréviation et sans racines étymologiques). + + <ul> + <li><strong style="color: green;">Correct</strong> : des CD-ROM</li> + <li><strong style="color: orange;">Éviter</strong> : des cédéroms</li> + <li><strong style="color: red;">Incorrect</strong> : des CD-ROMs</li> + <li><strong style="color: red;">Incorrect</strong> : des CD-ROM's</li> + </ul> + </li> +</ul> + +<h3 id="Pluriels" name="Pluriels">Pluriels</h3> + +<ul> + <li>Utilisez les pluriels francisés, pas les formes héritées ou influencées par le latin ou le grec, et conservez au pluriel les accents de francisation. + <ul> + <li><strong style="color: green;">Correct</strong> : des syllabus, des scénarios, des alinéas, des folios</li> + <li><strong style="color: red;">Incorrect</strong> : des syllabi, des scénarii, des alinéæ, des folii</li> + </ul> + </li> +</ul> + +<h3 id="Nombres" name="Nombres">Nombres</h3> + +<h4 id="Dates" name="Dates">Dates</h4> + +<ul> + <li>Pour les dates (n’incluant pas les dates dans les codes d’exemples) utilisez le format : 1er janvier 1990. + <ul> + <li><strong style="color: green;">Correct</strong> : 24 février 2006</li> + <li><strong style="color: red;">Incorrect</strong> : 24 Février 2006 ; 24/02/2006</li> + </ul> + </li> +</ul> + +<ul> + <li>Vous pouvez également utiliser le format ISO AAAA-MM-JJ. + <ul> + <li><strong style="color: green;">Correct</strong> : 2006-02-24</li> + <li><strong style="color: red;">Incorrect</strong> : 02/24/2006 ; 24/02/2006 ; 02/24/06</li> + </ul> + </li> +</ul> + +<h4 id="S.C3.A9parateurs_de_milliers_et_virgules" name="S.C3.A9parateurs_de_milliers_et_virgules">Séparateurs de milliers et virgules</h4> + +<ul> + <li>Utilisez des espaces pour séparer les milliers de plus de quatre chiffres et non des points ou des virgules. + <ul> + <li><strong style="color: green;">Correct</strong> : 4000 ; 54 000</li> + <li><strong style="color: red;">Incorrect</strong> : 4,000 ; 4 000 ; 54000</li> + </ul> + </li> + <li>Utilisez la virgule pour séparer la partie décimale d’un nombre, sauf dans les exemples de code.</li> +</ul> + +<h3 id="Ponctuation" name="Ponctuation">Ponctuation</h3> + +<h4 id="Espaces_et_ponctuation" name="Espaces_et_ponctuation">Espaces et ponctuation</h4> + +<ul> + <li>Utilisez une espace (de préférence insécable) avant les signes de ponctuation haute (« : », « ; », « ! », « ? »), ainsi qu’après l’ouverture et avant la fermeture des guillemets français (en chevrons). Idéalement il faudrait une espace fine (<code>&thinsp;</code>) et de préférence insécable (<code>&nnbsp;</code> ou <code>&#x202F;</code>) mais celles-ci ne s’affichent pas correctement sur tous les systèmes.</li> + <li>Ne mettez aucune espace avant une virgule ou un point, ni avant la fermeture des parenthèses, crochets ou accolades, mais après. Faites le contraire pour l’ouverture des parenthèses, crochets ou accolades.</li> +</ul> + +<h4 id="Virgules_et_.C3.A9num.C3.A9rations" name="Virgules_et_.C3.A9num.C3.A9rations">Virgules et énumérations</h4> + +<ul> + <li>N'utilisez pas de virgule avant un « et » en fin d'énumération. + <ul> + <li><strong style="color: green;">Correct</strong> : Nous utiliserons des trains, des avions et des automobiles.</li> + <li><strong style="color: red;">Incorrect</strong> : Nous utiliserons des trains, des avions, et des automobiles.</li> + </ul> + </li> +</ul> + +<h3 id="Autres_ressources" name="Autres_ressources">Autres ressources</h3> + +<p>Si vous connaissez d’autres ressources, n’hésitez pas à les ajouter ici.</p> diff --git a/files/fr/orphaned/mdn/tools/template_editing/index.html b/files/fr/orphaned/mdn/tools/template_editing/index.html new file mode 100644 index 0000000000..3f56b7d1f9 --- /dev/null +++ b/files/fr/orphaned/mdn/tools/template_editing/index.html @@ -0,0 +1,15 @@ +--- +title: Template editing +slug: MDN/Tools/Template_editing +tags: + - Guide + - MDN + - MDN Meta + - Outils +translation_of: MDN/Tools/Template_editing +--- +<div>{{MDNSidebar}}</div> + +<p>Sur MDN, les modèles écrits en <a href="/en-US/docs/MDN/Contribute/Tools/KumaScript">KumaScript</a> sont utilisées pour automatiser la génération de contenu et la personnalisation au sein des pages. Chaque modèle est un fichier séparé dans <a href="https://github.com/mozilla/kumascript/tree/master/macros">le dossier des macros du dépôt Github de KumaScript</a>.</p> + +<p><span class="seoSummary">Toute personne éditant les pages wiki de MDN peut invoquer des modèles via des <a href="/en-US/docs/MDN/Contribute/Structures/Macros">macros</a> sur les articles MDN. Chacun peut créer et éditer des modèles via <a href="https://github.com/mozilla/kumascript">le dépôt Github de KumaScript</a> en utilisant les pratiques normées du logiciel libre (copier le dépôt, créer une branche, faire ses changements, et soumettre une requête de publication à la relecture).</span>Notez que soumettre une requête de publication est courrament le seul moyen de mettre à jour les chaînes traduites dans les modèles qui les contiennent.</p> diff --git a/files/fr/orphaned/mozilla/add-ons/webextensions/api/userscripts/apiscript/index.html b/files/fr/orphaned/mozilla/add-ons/webextensions/api/userscripts/apiscript/index.html new file mode 100644 index 0000000000..1af1fed65e --- /dev/null +++ b/files/fr/orphaned/mozilla/add-ons/webextensions/api/userscripts/apiscript/index.html @@ -0,0 +1,43 @@ +--- +title: APIScript +slug: Mozilla/Add-ons/WebExtensions/API/userScripts/APIScript +tags: + - APIScript + - Add-ons + - Custimisation + - Extensions + - Firefox + - Reference + - WebExtensions + - userScripts +translation_of: Mozilla/Add-ons/WebExtensions/API/userScripts/APIScript +--- +<p>{{AddOnSidebar}}</p> + +<p>L'APIScript userScripts est un type spécial d'extension Content Script.</p> + +<p>Comme un script de contenu d'extension régulier :</p> + +<ul> + <li>Il s'exécute dans les processus de contenu..</li> + <li>Il a accès à la fenêtre et aux globes de documents relatifs à la page Web à laquelle il est attaché.</li> + <li>Il a accès au même sous-ensemble d'API WebExtension généralement disponibles dans un script de contenu.</li> +</ul> + +<p>Contrairement à une extension régulière Content Script :</p> + +<ul> + <li>Il doit être déclaré dans le manifeste en utilisant la propriété user_scripts.api_script.</li> +</ul> + +<pre class="brush: json">manifest.json +{ + ... + "user_scripts": { + "api_script": "apiscript.js" + } +}</pre> + +<p>Il est exécuté automatiquement sur n'importe quelle page Web correspondant à userScript enregistrée par la même extension, avant qu'un userScript correspondant ne soit exécuté.</p> + +<p>Il a accès à l'API Event browser.userScripts.onBeforeScript que l'APIScript peut utiliser pour inscrire un auditeur à appeler juste avant qu'un userScript correspondant soit exécuté, ce qui permet à l'APIScript d'exporter un ensemble de méthodes API personnalisées pour le rendre disponible à l'userScript.</p> diff --git a/files/fr/orphaned/mozilla/add-ons/webextensions/best_practices_for_updating_your_extension/index.html b/files/fr/orphaned/mozilla/add-ons/webextensions/best_practices_for_updating_your_extension/index.html new file mode 100644 index 0000000000..d8bff8eccc --- /dev/null +++ b/files/fr/orphaned/mozilla/add-ons/webextensions/best_practices_for_updating_your_extension/index.html @@ -0,0 +1,31 @@ +--- +title: Bonnes pratiques pour la mise à jour de votre extension +slug: >- + Mozilla/Add-ons/WebExtensions/bonnes_pratiques_pour_la_mise_a_jour_de_votre_extension +tags: + - Add-ons + - Extensions + - Guide + - WebExtensions +translation_of: Mozilla/Add-ons/WebExtensions/Best_practices_for_updating_your_extension +--- +<p>{{AddonSidebar}}</p> + +<p>Presque toutes les extensions doivent être mises à jour de temps en temps, que ce soit pour corriger des bugs ou ajouter de nouvelles fonctionnalités. La mise à jour de votre extension vaut la peine d'être planifiée méthodiquement, non seulement pour assurer la qualité des changements, mais aussi pour maximiser les possibilités d'engagement ou de réengagement avec votre public.</p> + +<p>Pour vous aider à fournir les mises à jour les plus productives, voici quelques conseils de la communauté des développeurs d'extensions Firefox :</p> + +<ul> + <li>Créez une feuille de route des fonctionnalités que vous souhaitez ajouter à votre extension, en n'oubliant pas de la mettre à jour en fonction des commentaires des utilisateurs. Prévoyez également la sortie de nouvelles versions de navigateurs, pour confirmer que rien ne casse votre extension et pour profiter des nouvelles fonctionnalités. Si vous voulez rendre votre feuille de route publique, ne soyez pas trop précis quant aux dates de livraison, car le non-respect des délais pourrait réduire la confiance des utilisateurs dans votre extension.</li> + <li>Effectuez des mises à jour selon un cycle régulier, mensuel ou trimestriel, à moins que vous n'ayez besoin de corriger un bogue critique. Les utilisateurs peuvent trouver des mises à jour plus fréquentes (par exemple quotidiennes ou même hebdomadaires), en particulier celles qui affectent les fonctionnalités, les fonctions, le comportement ou l'apparence de l'extension, trop perturbatrices. Le maintien d'un cycle de mise à jour régulier peut aider à maintenir l'engagement des utilisateurs.</li> + <li>En plus de tester la version actuelle de Firefox, testez votre extension dans les versions Firefox Nightly et Beta pour vous assurer qu'aucun changement ne risque d'affecter votre extension.</li> + <li>Inclure une page d'intégration qui décrit les améliorations et les changements inclus dans la mise à niveau - ne pas simplement dire "corrections de bogues et améliorations". Pour plus d'informations, voir <a href="/fr/docs/Mozilla/Add-ons/WebExtensions/onboarding_upboarding_offboarding_best_practices">Bonnes pratiques pour les utilisateurs d'embarquement, d'embarquement et de débarquement</a>.</li> + <li>Évitez de déplacer les fonctions "gratuites" derrière un mur payant, car la réaction des utilisateurs est susceptible d'être négative. (L'ajout de nouvelles fonctions payantes n'est généralement pas problématique. Cependant, l'ajout de fonctions payantes à une extension gratuite doit être manipulé avec précaution, pour éviter de donner l'impression que l'extension dans son ensemble doit maintenant être payée). Pour plus de détails, voir <a href="/fr/docs/Mozilla/Add-ons/Distribution/gagner_de_l_argent_avec_les_extensions_de_navigateur">Gagnez de l'argent avec les extensions de navigateur</a>.</li> + <li>Évitez de supprimer brusquement des fonctionnalités, pensez à prévoir une période d'obsolescence d'au moins un cycle de mise à niveau, en particulier lorsque vous n'avez pas de mesures pour l'utilisation de cette fonctionnalité. Le fait de prévoir une période d'amortissement permet aux utilisateurs de fournir une rétroaction sur les répercussions que vous n'avez peut-être pas prévues.</li> + <li>Fournir des instructions guidées pour les fonctions remplacées, telles que la conservation des anciens éléments de menu qui fournissent ensuite un message guidant l'utilisateur vers la nouvelle fonction.</li> + <li>Fournir une combinaison appropriée de corrections de bogues et de fonctionnalités nouvelles ou améliorées dans une mise à niveau. Les utilisateurs qui sont gênés par un bogue peuvent réagir négativement si vos mises à niveau ne semblent pas corriger les bogues. Cependant, si vous avez plusieurs correctifs techniques à apporter qui ont peu ou pas d'impact sur l'utilisateur, vous pouvez envisager de les inclure dans une version séparée, silencieuse (pas de page d'upboarding).</li> + <li>N'oubliez pas de mettre à jour la page de l'AMO de votre extension. Inclure vos notes de version dans la section dédiée. Mettez à jour la description pour couvrir les nouvelles fonctionnalités, remplacez ou ajoutez des captures d'écran, et pensez à modifier l'icône de votre extension pour mettre en évidence les modifications que vous avez apportées.</li> + <li>Inclure des nouvelles sur la mise à jour dans vos canaux tels que le site Web, les médias sociaux, les groupes d'utilisateurs, etc.</li> + <li>Après la publication de votre mise à jour, surveillez les évaluations et les commentaires, la rétroaction et les canaux de soutien pour vous assurer qu'il n'y a pas de réponses inattendues qui suggèrent des erreurs dans vos changements ou que les changements ne fonctionnent pas comme prévu.</li> + <li>Commencez à planifier votre prochaine mise à niveau !</li> +</ul> diff --git a/files/fr/orphaned/mozilla/add-ons/webextensions/choose_a_firefox_version_for_web_extension_develop/index.html b/files/fr/orphaned/mozilla/add-ons/webextensions/choose_a_firefox_version_for_web_extension_develop/index.html new file mode 100644 index 0000000000..69d23ee3ba --- /dev/null +++ b/files/fr/orphaned/mozilla/add-ons/webextensions/choose_a_firefox_version_for_web_extension_develop/index.html @@ -0,0 +1,218 @@ +--- +title: Choisissez une version Firefox pour le développement d'extensions web +slug: >- + Mozilla/Add-ons/WebExtensions/choisissez_une_version_firefox_pour_le_developpement_extensions_web +tags: + - Add-ons + - Développement + - Extensions + - Guide + - Outils + - Tools +translation_of: >- + Mozilla/Add-ons/WebExtensions/Choose_a_Firefox_version_for_web_extension_develop +--- +<p>{{AddonSidebar}}</p> + +<p>Firefox propose plusieurs versions qui offrent différentes capacités pour le développement d'extensions web. Cet article donne un aperçu des différences entre ces versions de Firefox et recommande comment les utiliser dans le cycle de développement.</p> + +<p>Ce tableau résume les informations sur les éditions, les fonctionnalités de développement d'extension et fournit une recommandation pour chaque édition utilisée dans le développement d'extension.</p> + +<table> + <thead> + <tr> + <th scope="col"> + <p>Edition</p> + </th> + <th scope="col"> + <p>Version</p> + </th> + <th scope="col"> + <p>Stable</p> + </th> + <th scope="col"> + <p>Outils pour le développement de l'extension</p> + </th> + <th scope="col"> + <p>Installe les extensions non signées</p> + </th> + <th scope="col"> + <p>Utilisation recommandée pour le développement de l'extension</p> + </th> + </tr> + </thead> + <tbody> + <tr> + <td> + <p><a href="https://www.mozilla.org/fr/firefox/">Release</a></p> + </td> + <td> + <p>Courant</p> + </td> + <td> + <p>Oui</p> + </td> + <td> + <p>Oui</p> + </td> + <td> + <p>Non</p> + </td> + <td> + <p>Tests de régression</p> + + <p>Tests alpha et bêta par l'utilisateur</p> + </td> + </tr> + <tr> + <td> + <p><a href="https://beta.mozilla.org">Beta</a></p> + </td> + <td> + <p>Courant+1</p> + </td> + <td> + <p>Oui</p> + </td> + <td> + <p>Oui</p> + </td> + <td> + <p>Non</p> + </td> + <td> + <p>Tests de régression</p> + + <p>Tests alpha et bêta par l'utilisateur</p> + </td> + </tr> + <tr> + <td> + <p><a href="https://www.mozilla.org/fr/firefox/channel/desktop/#developer">Developer Edition</a></p> + </td> + <td> + <p>Courant +1</p> + </td> + <td> + <p>Oui</p> + </td> + <td> + <p>Oui</p> + </td> + <td> + <p>Oui</p> + </td> + <td> + <p>Développement de l'extension</p> + </td> + </tr> + <tr> + <td> + <p><a href="https://nightly.mozfr.org/">Nightly</a></p> + </td> + <td> + <p>Courant +2</p> + </td> + <td> + <p>Non</p> + </td> + <td> + <p>Oui</p> + </td> + <td> + <p>Oui</p> + </td> + <td> + <p>Accès anticipé à la dernière API WebExtension</p> + </td> + </tr> + <tr> + <td> + <p><a href="https://www.mozilla.org/fr/firefox/organizations/">ESR</a></p> + </td> + <td> + <p>Courant - >1</p> + </td> + <td> + <p>Oui</p> + </td> + <td> + <p>Oui</p> + </td> + <td> + <p>Oui</p> + </td> + <td> + <p>Développement de la vulgarisation au sein des entreprises</p> + </td> + </tr> + </tbody> +</table> + +<h2 id="Firefox_version_and_their_web_extension_development_capabilities">Firefox version and their web extension development capabilities</h2> + +<h3 id="Finale">Finale</h3> + +<p>C'est la version de Firefox que la plupart des gens utilisent, c'est la version offerte quand quelqu'un visite la <a href="https://www.mozilla.org/fr/firefox/">page principale de téléchargement Firefox</a>.</p> + +<p>Vous chargez les extensions en cours de développement dans cette version de Firefox en utilisant <a href="/fr/docs/Outils/about:debugging">about:debugging</a> ou <a href="/fr/docs/Mozilla/Add-ons/WebExtensions/Getting_started_with_web-ext">web-ext</a> et avez accès à la <a href="/fr/docs/Outils/Boîte_à_outils_du_navigateur">fenêtre de débogage de l'addon</a>. Cependant, vous ne pouvez pas installer des extensions non signées, ce qui limite votre capacité à tester des fonctionnalités telles que le comportement de redémarrage, les invites d'autorisation et les mises à niveau.</p> + +<p>Le développement d'extensions pour Firefox pour Android est entièrement supporté.</p> + +<p>Utilisation suggérée pour le développement : Vous pouvez installer et tester une copie signée de votre extension dans la version de publication pour effectuer un test de régression final. Vous pouvez également distribuer des copies signées de votre extension à d'autres personnes pour les aider à effectuer des tests alpha ou bêta.</p> + +<p><a href="https://www.mozilla.org/fr/firefox/">Téléchargement</a></p> + +<h3 id="Béta">Béta</h3> + +<p>Cette version de Firefox est généralement utilisée par les personnes intéressées à profiter des fonctionnalités de la prochaine version de Firefox.</p> + +<p>Vous chargez les extensions en cours de développement dans cette version de Firefox en utilisant <a href="/fr/docs/Outils/about:debugging">about:debugging</a> ou <a href="/fr/docs/Mozilla/Add-ons/WebExtensions/Getting_started_with_web-ext">web-ext</a> et avez accès à la <a href="/fr/docs/Outils/Boîte_à_outils_du_navigateur">fenêtre de débogage de l'addon</a>. Cependant, vous ne pouvez pas installer des extensions non signées, ce qui limite votre capacité à tester des fonctionnalités telles que le comportement de redémarrage, les invites d'autorisation et les mises à niveau.</p> + +<p>Le développement d'extensions pour Firefox pour Android est entièrement supporté.</p> + +<p>Utilisation suggérée pour le développement : Vous pouvez installer et tester une copie signée de votre extension dans Beta pour effectuer un test de régression. De tels tests vous donneront une certaine certitude que votre extension continuera à fonctionner correctement dans la prochaine version de Firefox. Vous pouvez également distribuer des copies signées de votre extension à d'autres personnes pour les aider à effectuer des tests alpha ou bêta.</p> + +<p><a href="https://beta.mozilla.org">Téléchargement</a></p> + +<h3 id="Edition_développeur">Edition développeur</h3> + +<p>Cette version de Firefox est basée sur la version bêta de Firefox avec des fonctionnalités supplémentaires conçues pour aider au développement du Web et des extensions Web.</p> + +<p>Vous chargez les extensions en cours de développement dans cette version de Firefox en utilisant <a href="/fr/docs/Outils/about:debugging">about:debugging</a> ou <a href="/fr/docs/Mozilla/Add-ons/WebExtensions/Getting_started_with_web-ext">web-ext</a> et avez accès à la <a href="/fr/docs/Outils/Boîte_à_outils_du_navigateur">fenêtre de débogage de l'addon</a>. Vous pouvez également installer des extensions non signées, après avoir ajusté ou paramétré certaines propriétés de about:config (généralement moins de changements que nécessaire pour réaliser les mêmes tâches dans Nightly). Cela vous permet de tester des fonctionnalités telles que le comportement de redémarrage, les invites d'autorisation et les mises à niveau.</p> + +<p>Le développement d'extensions pour Firefox pour Android est entièrement supporté.</p> + +<p>Utilisation suggérée pour le développement : Utilisez Developer Edition comme votre principale plate-forme de développement et de test d'extensions web.</p> + +<p><a href="https://www.mozilla.org/fr/firefox/channel/desktop/#developer">Téléchargement</a></p> + +<h3 id="Nightly">Nightly</h3> + +<p>Cette version de Firefox fournit une version qui est mise à jour tous les soirs avec les dernières fonctionnalités de développement pour la future version de Firefox. Il est généralement utilisé par les personnes intéressées à découvrir les toutes dernières fonctionnalités et à donner leur avis lorsqu'elles rencontrent des problèmes.</p> + +<p>Vous chargez les extensions en cours de développement dans cette version de Firefox en utilisant <a href="/fr/docs/Outils/about:debugging">about:debugging</a> our <a href="/fr/docs/Mozilla/Add-ons/WebExtensions/Getting_started_with_web-ext">web-ext</a> et avez accès à la <a href="/fr/docs/Outils/Boîte_à_outils_du_navigateur">fenêtre de débogage de l'addon</a>. Vous pouvez également installer des extensions non signées, après avoir ajusté ou configuré certaines propriétés de about:config. Cela vous permet de tester des fonctionnalités telles que le comportement de redémarrage, les invites d'autorisation et les mises à niveau.</p> + +<p>Le développement d'extensions pour Firefox pour Android est entièrement supporté.</p> + +<p>Utilisation suggérée pour le développement : Nightly fournit un aperçu des futures fonctionnalités de Firefox, y compris les API WebExtension, qui sont en cours de développement. La stabilité des fonctionnalités n'est pas garantie, par conséquent, Nightly n'est pas recommandé comme plateforme de développement d'extension web principale. Vous pouvez, cependant, utiliser Nightly là où vous voulez profiter des fonctionnalités à venir ou tester pour vous donner la plus longue vue d'ensemble de la compatibilité de votre extension avec Firefox.</p> + +<p><a href="https://nightly.mozilla.org">Download</a></p> + +<h3 id="ESR">ESR</h3> + +<p>La version ESR (Extended Support Release) de Firefox offre des fonctionnalités permettant aux professionnels informatiques de configurer et de déployer Firefox dans leur organisation. Il fournit également aux entreprises une version de Firefox stable du point de vue des fonctionnalités pour une durée plus longue que celle du cycle de version normal. Ainsi, au moment d'écrire ces lignes, la version de sortie de Firefox était de 65 (avec Beta sur 66 et Nightly sur 67) la version ESR était de 60.</p> + +<p>Vous chargez les extensions en cours de développement dans cette version de Firefox en utilisant <a href="/fr/docs/Outils/about:debugging">about:debugging</a> ou <a href="/fr/docs/Mozilla/Add-ons/WebExtensions/Getting_started_with_web-ext">web-ext</a> et avez accès à la <a href="/fr/docs/Outils/Boîte_à_outils_du_navigateur">fenêtre de débogage de l'addon</a>. Vous pouvez également installer des extensions non signées, après avoir ajusté ou défini certaines propriétés de about:config (cette fonctionnalité est fournie pour que les entreprises puissent installer des extensions qu'elles veulent garder privées et ne veulent pas soumettre à add-ons.mozilla.org pour signature).</p> + +<p>Le développement d'extensions pour Firefox pour Android est entièrement supporté.</p> + +<p>Utilisation suggérée pour le développement : Utilisez ESR comme principale plate-forme de développement et de test d'extensions Web lors du développement d'extensions pour une entreprise et vous souhaitez confirmer que l'ensemble des fonctionnalités de votre extension est compatible avec la version ESR.</p> + +<p><a href="https://www.mozilla.org/fr/firefox/organizations/">Téléchargement</a></p> + +<div class="SnapLinksContainer" style="margin-left: 0px; margin-top: 0px; display: none;"> +<div class="SL_SelectionRect"> +<div class="SL_SelectionLabel"></div> +</div> +<svg class="SnapLinksHighlighter" xmlns:xmlns="http://www.w3.org/2000/svg"> <rect height="0" width="0"></rect> </svg></div> diff --git a/files/fr/orphaned/mozilla/add-ons/webextensions/comparison_with_the_add-on_sdk/index.html b/files/fr/orphaned/mozilla/add-ons/webextensions/comparison_with_the_add-on_sdk/index.html new file mode 100644 index 0000000000..52ec132d64 --- /dev/null +++ b/files/fr/orphaned/mozilla/add-ons/webextensions/comparison_with_the_add-on_sdk/index.html @@ -0,0 +1,746 @@ +--- +title: Comparaison avec le SDK Add-on +slug: Mozilla/Add-ons/WebExtensions/Comparaison_avec_le_SDK_Add-on +tags: + - Addon SDK + - AddonSDK + - SDK + - WebExtensions + - porting +translation_of: Mozilla/Add-ons/WebExtensions/Comparison_with_the_Add-on_SDK +--- +<div>{{AddonSidebar}}</div> + +<p>Cet article est une comparaison technique entre les add-ons construits avec le SDK et ceux construits avec la technologie WebExtensions. Il est destiné à aider les personnes maintenant un add-on SDK à le porter vers une WebExtension.</p> + +<div class="blockIndicator warning"> +<p>La prise en charge des extensions utilisant XUL/XPCOM ou le SDK Add-on a été supprimée dans Firefox 57, publié en novembre 2017. Comme il n'y a pas de version supportée de Firefox permettant ces technologies, cette page sera supprimée d'ici décembre 2020.</p> +</div> + +<p>Si vous souhaitez porter une <a href="/fr/docs/Archive/Add-ons/Overlay_Extensions">extension de surcouche</a> ou une <a href="/fr/docs/Mozilla/Add-ons/Bootstrapped_extensions">extension <em>bootstrappée</em></a>, consultez la page de <a href="/fr/docs/Mozilla/Add-ons/WebExtensions/Comparison_with_XUL_XPCOM_extensions">comparaison des extensions XUL/XPCOM</a>.</p> + +<p>Les WebExtensions et add-ons SDK partagent les mêmes concepts et structures de base. Ces deux technologies utilisent :</p> + +<ul> + <li>Des <a href="/fr/Add-ons/WebExtensions/Comparison_with_the_Add-on_SDK#Manifest_files">fichiers de manifeste</a> qui définissent les métadonnées de l'extension et certains aspects de son comportement.</li> + <li>Des <a href="/fr/Add-ons/WebExtensions/Comparaison_avec_le_SDK_Add-on#Scripts_persistants">scripts persistants</a> qui accèdent à un ensemble d'API JavaScript privilégiées et qui restent chargés tant que l'extension est activée.</li> + <li>Des <a href="/fr/Add-ons/WebExtensions/Comparaison_avec_le_SDK_Add-on#Scripts_de_contenu">scripts de contenu</a> qui peuvent être injectés dans les pages web et qui peuvent communiquer avec les scripts persistants grâce à une API de messagerie asynchrone.</li> + <li><a href="/fr/Add-ons/WebExtensions/Comparaison_avec_le_SDK_Add-on#Éléments_d'interface_utilisateur">La possibilité d'ajouter des éléments d'interface utilisateur spécifiques</a>, tels que des boutons, au navigateur. Ces boutons peuvent ainsi donner accès à des fenêtres contextuelles définies en HTML, JavaScript et CSS.</li> + <li><a href="/fr/Add-ons/WebExtensions/Comparison_with_the_Add-on_SDK#JavaScript_APIs">Un ensemble d'API JavaScript privilégiées</a> pour interagir avec le Web ou avec le navigateur.</li> + <li><a href="/fr/Add-ons/WebExtensions/Comparaison_avec_le_SDK_Add-on#Outil_en_ligne_de_commande">Un outil en ligne de commande</a> que les développeurs peuvent utiliser afin de tester leurs extensions.</li> +</ul> + +<p>Au-delà de ces ressemblances, il existe de nombreuses différences énumérées ci-après.</p> + +<h2 id="Les_fichiers_de_manifeste">Les fichiers de manifeste</h2> + +<p>Pour ces deux technologies, on dispose d'un fichier manifeste en JSON situé dans le répertoire racine de l'extension. Dans le SDK, ce fichier est appelé <code><a href="/en-US/docs/Archive/Add-ons/Add-on_SDK/Tools/package_json">package.json</a></code> ; pour les WebExtensions, ce fichier s'intitule <code><a href="/fr/Add-ons/WebExtensions/manifest.json">manifest.json</a></code>. Les deux fichiers contiennent des métadonnées de base telles que le nom, la description et les icônes de l'extension.</p> + +<p>Cependant, <code>manifest.json</code> contient de nombreuses clés qui définissent certaines capacités et certains comportements de l'extension. Pour le SDK, certaines sont définies dans le code :</p> + +<table class="fullwidth-table standard-table"> + <thead> + <tr> + <th scope="col">Fonctionnalité</th> + <th scope="col">SDK</th> + <th scope="col">WebExtensions</th> + </tr> + </thead> + <tbody> + <tr> + <td>Scripts de contenu correspondant aux modèles d'URL</td> + <td>API <code><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/page-mod">page-mod</a></code></td> + <td>Clé de manifeste <code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/manifest.json/content_scripts">content_scripts</a></code></td> + </tr> + <tr> + <td>Boutons de la barre d'outils</td> + <td>API <code><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/ui_button_action">ui/button/action</a></code></td> + <td>Clé de manifeste <code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/manifest.json/browser_action">browser_action</a></code></td> + </tr> + <tr> + <td>Accéder aux API privilégiées</td> + <td>Fonction <code>require()</code></td> + <td>Clé de manifeste <code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/manifest.json/permissions">permissions</a></code></td> + </tr> + </tbody> +</table> + +<p>Les WebExtensions sont donc plus déclaratives et moins programmables que les add-ons construits avec le SDK.</p> + +<p>Pour le SDK, on utilisera généralement <code><a href="/fr/Add-ons/SDK/Tools/jpm#jpm_init">jpm init</a></code> afin de créer un nouveau <code>package.json</code>. La technologie WebExtensions n'a pas d'équivalent de <code>jpm init</code>, le fichier de manifeste sera probablement écrit à partir de zéro ou adapté d'un fichier existant.</p> + +<h3 id="En_savoir_plus">En savoir plus</h3> + +<ul> + <li><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/manifest.json">Le fichier <code>manifest.json</code></a></li> +</ul> + +<h2 id="Scripts_persistants">Scripts persistants</h2> + +<p>Les deux technologies utilisent des scripts persistants qui restent chargés pendant que l'extension est active. Ces scripts accèdent à des API privilégiées et peuvent communiquer avec d'autres parties de l'extension telles que les scripts de contenu.</p> + +<p>Dans le SDK, par défaut, ce script est appelé <code>index.js</code> et il <a href="/en-US/docs/Archive/Add-ons/Add-on_SDK/Guides/Module_structure_of_the_SDK#Local_Modules">peut charger d'autres scripts à l'aide du chargeur de module</a>.</p> + +<p>Avec les WebExtensions, ces scripts sont appelés <a href="/fr/Add-ons/WebExtensions/Anatomy_of_a_WebExtension#Background_scripts">scripts d'arrière-plan</a>. Vous pouvez définir un ensemble de scripts listés via la clé de manifeste <code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/manifest.json/background">background</a></code> et tous seront chargés dans le même document (une page HTML vierge cachée et générée automatiquement). Vous pouvez également définir votre propre document personnalisé à l'aide de la clé <code>background</code>.</p> + +<p>Une différence importante est que les scripts d'arrière-plan ont accès à la variable globale <code><a href="/fr/docs/Web/API/Window">window</a></code> globale qui permet d'utiliser l'ensemble des objets DOM habituellement présents dans une fenêtre. De cette façon, l'écriture des extensions se rapproche de l'écriture de pages web avec un accès direct à l'ensemble des API Web classiques (par exemple <a href="/fr/docs/Web/API/XMLHttpRequest">XMLHttpRequest</a> ou <a href="/fr/docs/Web/API/API_IndexedDB">IndexedDB</a>).</p> + +<p>On notera également que, par défaut, les extensions ont une <a href="/fr/Add-ons/WebExtensions/Content_Security_Policy">politique de sécurité de contenu (CSP)</a> qui leur est appliquée. Vous pouvez spécifier votre propre politique, mais la politique par défaut, entre autres, interdit les pratiques potentiellement dangereuses telles que l'utilisation d'<code><a href="/fr/docs/Web/JavaScript/Reference/Objets_globaux/eval">eval()</a></code>.</p> + +<h3 id="En_savoir_plus_2">En savoir plus</h3> + +<ul> + <li><a href="/fr/Add-ons/WebExtensions/Anatomy_of_a_WebExtension#Background_scripts">Scripts d'arrière-plan pour les extensions</a></li> +</ul> + +<h2 id="Scripts_de_contenus">Scripts de contenus</h2> + +<p>Pour les extensions SDK et les WebExtensions, les scripts persistants ne peuvent pas accéder directement au contenu des pages web. Au lieu de cela, les extensions peuvent ajouter des scripts de contenu aux pages web. Ces scripts :</p> + +<ul> + <li>accèdent directement au contenu web</li> + <li>n'accèdent pas aux API privilégiées</li> + <li>peuvent communiquer avec les scripts persistants avec une API de messagerie.</li> +</ul> + +<p>Pour les deux technologies, on dispose de deux façons pour ajouter des scripts de contenu : on peut rattacher un ensemble de scripts aux pages dont l'URL contient un motif donné ou on peut, via le code, ajouter un script à une page d'un onglet donné. Si ces mécanismes existent dans les deux technologies, ils sont exécutés différemment :</p> + +<table class="fullwidth-table standard-table"> + <thead> + <tr> + <th scope="col">Opération</th> + <th scope="col">SDK</th> + <th scope="col">WebExtensions</th> + </tr> + </thead> + <tbody> + <tr> + <td>Attacher des scripts à des pages dont l'URL correspond à un motif</td> + <td>API <code><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/page-mod">page-mod</a></code></td> + <td>Clé de manifeste <code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/manifest.json/content_scripts">content_scripts</a></code></td> + </tr> + <tr> + <td>Attacher des scripts à des pages hébergées dans un onglet</td> + <td><code><a href="/fr/Add-ons/SDK/High-Level_APIs/tabs#Run_scripts_in_a_tab">tab.attach()</a></code></td> + <td><code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/tabs/executeScript">tabs.executeScript()</a></code></td> + </tr> + </tbody> +</table> + +<p>Les motifs de correspondance utilisés pour les URL sont différentes :</p> + +<ul> + <li><a href="/fr/docs/Archive/Add-ons/Add-on_SDK/Low-Level_APIs/util_match-pattern">Motif de correspondance pour le SDK</a></li> + <li><a href="/fr/Add-ons/WebExtensions/match_patterns">Motif de correspondance pour les WebExtensions</a></li> +</ul> + +<p>Dans les deux technologies, on peut passer des options pour contrôler lorsque le script s'exécute et s'il sera attaché aux sous-trames. Les WebExtensions n'ont pas d'équivalent pour <code>contentScriptOptions</code> et, si on veut transmettre les options de configuration à un script de contenu, il faudra les envoyer via un message ou les stocker dans <code><a href="/fr/Add-ons/WebExtensions/API/storage/local">storage.local</a></code>.</p> + +<p>Dans les deux technologies, les scripts de contenu peuvent communiquer avec des scripts persistants grâce à une API de communication asynchrone :</p> + +<table class="fullwidth-table standard-table"> + <thead> + <tr> + <th scope="col">Opération</th> + <th scope="col">SDK</th> + <th scope="col">WebExtensions</th> + </tr> + </thead> + <tbody> + <tr> + <td>Envoi de message</td> + <td><a href="/fr/Add-ons/SDK/Guides/Content_Scripts/port#emit()"><code>port.emit()</code></a></td> + <td><code><a href="/fr/Add-ons/WebExtensions/API/runtime/sendMessage">runtime.sendMessage()</a></code> / <code><a href="/fr/Add-ons/WebExtensions/API/tabs/sendMessage">tabs.sendMessage()</a></code></td> + </tr> + <tr> + <td>Réception de message</td> + <td><code><a href="/fr/Add-ons/SDK/Guides/Content_Scripts/port#on()">port.on()</a></code></td> + <td><code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/runtime/onMessage">runtime.onMessage</a></code></td> + </tr> + </tbody> +</table> + +<ul> + <li><a href="/fr/Add-ons/SDK/Guides/Content_Scripts#Communicating_with_the_add-on">Communiquer avec des scripts persistants dans le SDK</a></li> + <li><a href="/fr/Add-ons/WebExtensions/Content_scripts#Communicating_with_background_scripts">Communiquer avec des scripts persistants dans les WebExtensions</a></li> +</ul> + +<p>Dans les deux cas, les scripts de contenus peuvent communiquer avec les scripts chargés par la page à l'aide de <code><a href="/fr/docs/Web/API/Window/postMessage">window.postMessage</a></code> et <code><a href="/fr/docs/Web/API/EventTarget/addEventListener">window.addEventListener</a></code>.</p> + +<p>Dans les deux cas, les scripts accèdent à une vue « propre » du DOM : cela signifie qu'ils ne voient pas les modifications apportées au DOM par les scripts chargés par la page.</p> + +<p>Dans le SDK, les scripts de contenu peuvent <a href="/fr/Add-ons/SDK/Guides/Content_Scripts/Interacting_with_page_scripts#Sharing_objects_with_page_scripts">partager des objets avec des scripts de page</a>, en utilisant des techniques comme <code>unsafeWindow</code> et <code><a href="/fr/docs/Mozilla/Tech/XPCOM/Language_Bindings/Components.utils.createObjectIn">createObjectIn</a></code>. Avec les WebExtensions, la <code>unsafeWindow</code> est disponible par l'intermédiaire de <code><a href="/fr/Add-ons/WebExtensions/Content_scripts#Accessing_page_script_objects_from_content_scripts">wrappedJSObject</a></code>. Toutes les fonctions d'aide à l'exportation sont également disponibles.</p> + +<h3 id="En_savoir_plus_3">En savoir plus</h3> + +<ul> + <li><a href="/fr/Add-ons/WebExtensions/Content_scripts">Scripts de contenu des WebExtensions</a></li> +</ul> + +<h2 id="Les_éléments_d'interface_utilisateur_(UI)">Les éléments d'interface utilisateur (<em>UI</em>)</h2> + +<p>Les deux technologies fournissent des API pour créer une interface utilisateur pour l'extension. Les options d'interface utilisateur pour les WebExtensions sont plus limitées.</p> + +<table class="fullwidth-table standard-table"> + <thead> + <tr> + <th scope="col">Elément d'interface</th> + <th scope="col">SDK</th> + <th scope="col">WebExtensions</th> + </tr> + </thead> + <tbody> + <tr> + <td>Bouton</td> + <td><code><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/ui_button_action">ui/button/action</a></code></td> + <td><code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/manifest.json/browser_action">browser_action</a></code> / <code><a href="/fr/Add-ons/WebExtensions/manifest.json/page_action">page_action</a></code></td> + </tr> + <tr> + <td>Interrupteur / Bouton à bascule</td> + <td><code><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/ui_button_toggle">ui/button/toggle</a></code></td> + <td><code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/manifest.json/browser_action">browser_action</a></code> / <code><a href="/fr/Add-ons/WebExtensions/manifest.json/page_action">page_action</a></code></td> + </tr> + <tr> + <td>Barre d'outils</td> + <td><code><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/ui_toolbar">ui/toolbar</a></code></td> + <td>Aucun</td> + </tr> + <tr> + <td>Barre latérale</td> + <td><code><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/ui_sidebar">ui/sidebar</a></code></td> + <td><code>sidebar_action</code></td> + </tr> + <tr> + <td>Panneau</td> + <td><code><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/panel">panel</a></code></td> + <td><code>browser_action</code> / <code>page_action</code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/Popups"> popup</a></td> + </tr> + <tr> + <td>Menu contextuel</td> + <td><code><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/context-menu">context-menu</a></code></td> + <td><code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/contextMenus">contextMenus</a></code></td> + </tr> + </tbody> +</table> + +<h3 id="Panneaux_et_fenêtres_contextuelles">Panneaux et fenêtres contextuelles</h3> + +<p>Les panneaux et les <a href="/fr/docs/Mozilla/Add-ons/WebExtensions/Popups">fenêtres contextuelles</a> sont des boites de dialogue transitoires définies à l'aide de HTML, CSS et JavaScript.</p> + +<p>Contrairement aux panneaux, les fenêtres contextuelles sont toujours attachées à un bouton (une action de navigateur ou une action de page) et ne peuvent pas être affichés par programmation : ils ne s'affichent que lorsque l'utilisateur clique sur le bouton.</p> + +<p>Aussi, contrairement aux panneaux, les scripts des fenêtres contextuelles ont accès aux mêmes API que les scripts d'arrière-plan. Ils peuvent même accéder directement à la page d'arrière-plan, via <code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/runtime/getBackgroundPage">runtime.getBackgroundPage()</a></code>.</p> + +<h2 id="Paramètres">Paramètres</h2> + +<p>Les extensions SDK et les WebExtensions permettent toutes les deux de gérer des paramètres (aussi appelées options ou préférences).</p> + +<p>Avec le fichier SDK, il est possible d'indiquer des paramètres via la clé <code>preferences</code> dans le fichier <code>package.json</code>. L'utilisateur peut voir et modifier ces préférences via l'entrée du Gestionnaire de modules de l'extension. À l'inverse, l'extension peut écouter les changements de paramètres à l'aide de l'API <code><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/simple-prefs">simple-prefs</a></code>.</p> + +<p>Dans les WebExtensions, vous devrez implémenter votre propre interface utilisateur afin de présenter les paramètres et votre propre code pour les garder en mémoire pour votre extension. Pour cela, on écrira un fichier HTML qui présente les paramètres et qui peut inclure un script permettant de les sauvegarder. Le script a accès à toutes les API des WebExtensions et on utilisera généralement l'API <code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/storage">storage</a></code> pour la mémorisation.</p> + +<p>L'URL du fichier HTML pour l'écran des paramètres doit être indiqué avec la clé <code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/manifest.json/options_ui">options_ui</a></code> du fichier <code>manifest.json</code>. La page de paramètres apparaît alors dans l'entrée de l'extension sous le Gestionnaire de modules des extensions. La page d'options peut également être ouverte via le code grâce à un appel à <code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/runtime/openOptionsPage">browser.runtime.openOptionsPage</a></code>.</p> + +<p>On notera que les WebExtensions ne permettent pas d'accéder aux préférences du navigateur (c'est-à-dire les préférences exposées dans le SDK par <code><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/preferences_service">preferences/service</a></code>). Toutefois, il est possible de modifier certains paramètres du navigateur grâce aux API <code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/privacy">privacy</a></code> et <code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/browserSettings">browserSettings</a></code>.</p> + +<h3 id="En_apprendre_plus">En apprendre plus</h3> + +<ul> + <li><a href="/fr/Add-ons/WebExtensions/Anatomy_of_a_WebExtension#Options_pages">Introduction aux pages de paramètres</a></li> + <li><a href="https://github.com/mdn/webextensions-examples/tree/master/favourite-colour">Un exemple d'extension qui a une page d'options</a></li> +</ul> + +<h2 id="Internationalisation">Internationalisation</h2> + +<p>Le SDK et les WebExtensions contiennent tous les deux des outils de localisation pour traduire le texte qui sera visible par l'utilisateur. Ces deux outils offrent des fonctionnalités similaires :</p> + +<table class="fullwidth-table standard-table"> + <thead> + <tr> + <th scope="col">Fonctionnalités</th> + <th scope="col">SDK</th> + <th scope="col">WebExtensions</th> + </tr> + </thead> + <tbody> + <tr> + <td>Chaînes dans les scripts d'arrière-plan</td> + <td>Oui</td> + <td>Oui</td> + </tr> + <tr> + <td>Chaînes dans les scripts de contenu</td> + <td>Non</td> + <td>Oui</td> + </tr> + <tr> + <td>Chaînes dans les fichiers HTML</td> + <td>Oui</td> + <td>Non</td> + </tr> + <tr> + <td>Chaînes dans les fichiers CSS</td> + <td>Non</td> + <td>Oui</td> + </tr> + <tr> + <td>Titre et descriptions</td> + <td>Oui</td> + <td>Oui</td> + </tr> + <tr> + <td>Gestion des formes plurielles</td> + <td>Oui</td> + <td>Non</td> + </tr> + <tr> + <td>Textes de substitution (<em>placeholders</em>)</td> + <td>Oui</td> + <td>Oui</td> + </tr> + </tbody> +</table> + +<p>Dans les deux systèmes, les chaînes traduites sont fournies via un ensemble de fichier : un pour chaque locale.</p> + +<p>Pour récupérer les chaînes localisées dans le code de l'extension, on peut utiliser l'API JavaScript <code><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/l10n">l10n</a></code> dans le SDK et l'API <code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/i18n">i18n</a></code> pour les WebExtensions.</p> + +<p>Les WebExtensions ne gèrent pas nativement la localisation des chaînes présentes dans les fichiers HTML : il faut le faire soi-même en utilisant JavaScript pour récupérer des chaînes localisées et pour remplacer dynamiquement le contenu HTML par la version localisée.</p> + +<h3 id="En_savoir_plus_4">En savoir plus</h3> + +<ul> + <li><a href="/fr/Add-ons/WebExtensions/Internationalization">Le guide d'internationalisation des extensions.</a></li> + <li><a href="https://github.com/mdn/webextensions-examples/tree/master/notify-link-clicks-i18n">Exemple d'extension internationalisée.</a></li> + <li><a href="https://gist.github.com/freaktechnik/4a72bc0711d9bc82cf3b075bcc292953">Exemple de script la traduction des documents HTML d'une extension WebExtensions à la façon du SDK</a></li> +</ul> + +<h2 id="Outil_en_ligne_de_commande">Outil en ligne de commande</h2> + +<p>Le SDK livré avec un outil en ligne de commande : <a href="/fr/docs/Mozilla/Add-ons/SDK/Tools/jpm">jpm</a> qu'on peut utiliser pour tester et empaqueter les extensions. Il existe un outil équivalent pour les WebExtensions : <a href="/fr/docs/Mozilla/Add-ons/WebExtensions/Getting_started_with_web-ext">web-ext</a>. Web-ext ne prend pas en charge les mêmes commandes que jpm, mais gère <code><a href="/fr/Add-ons/WebExtensions/web-ext_command_reference#web-ext_run">run</a></code>, <code><a href="/fr/Add-ons/WebExtensions/web-ext_command_reference#web-ext_build">build</a></code> et <code><a href="/fr/Add-ons/WebExtensions/web-ext_command_reference#web-ext_sign">sign</a></code>.</p> + +<p>Il est maintenant possible d'installer (et de recharger) des extensions SDK et les extensions construites avec les API WebExtension dans Firefox à partir de leur répertoire source, sans avoir besoin de les empaqueter dans un fichier XPI. Voir <a href="/fr/Add-ons/WebExtensions/installation_temporaire_dans_Firefox">l'installation temporaire dans Firefox</a>.</p> + +<h3 id="En_savoir_plus_5">En savoir plus</h3> + +<ul> + <li><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/Getting_started_with_web-ext">Tutoriel web-ext</a></li> + <li><a href="/fr/Add-ons/WebExtensions/web-ext_command_reference">Référence web-ext</a></li> + <li><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/Temporary_Installation_in_Firefox">Instalation temporaire dans Firefox</a></li> +</ul> + +<h2 id="Les_API_JavaScript">Les API JavaScript</h2> + +<p>Que ce soit pour le SDK et les WebExtensions, la puissance des extensions provient d'un ensemble d'API JavaScript dédiées. Pour la plupart des API SDK de haut niveau, il existe un équivalent WebExtensions.</p> + +<p>Une grande limitation de WebExtensions par rapport au SDK est que les modules complémentaires SDK peuvent utiliser <code>require("chrome")</code> pour accéder à la gamme complète des API XPCOM dans Firefox. Ceci n'est pas possible avec WebExtensions.</p> + +<p>Pour accéder aux API privilégiées dans le SDK, on utilise <code>require()</code> :</p> + +<pre class="brush: js">var tabs = require("sdk/tabs"); +tabs.open("https://developer.mozilla.org/");</pre> + +<p>Avec WebExtensions, la plupart des API sont déjà disponibles, sans avoir besoin de les importer :</p> + +<pre class="brush: js">browser.tabs.create({ + "url": "/" +});</pre> + +<p>Pour certaines API WebExtension, vous devez d'abord demander la permission, en utilisant la clé des <code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/manifest.json/permissions">permissions</a></code> de manifest.json. Dans l'exemple ci-dessous, l'extension doit demander l'autorisation <code>"tabs"</code> si elle souhaite accéder à l'URL de l'onglet :</p> + +<p><code><strong>manifest.json</strong></code></p> + +<pre class="brush: json">... + +"permissions": [ + "tabs" + ] + +...</pre> + +<p><strong>Script d'arrière-plan</strong></p> + +<pre class="brush: js">function logUrl(tabs) { + console.log(tabs[0].url); +} + +var querying = browser.tabs.query( + {active: true, currentWindow: true} +); + +querying.then(logUrl); +</pre> + +<h3 id="Comparaison_des_API_SDK_WebExtension">Comparaison des API SDK / WebExtension</h3> + +<p>Les tableaux de cette section répertorient chaque API du SDK et indiquent l'API WebExtension équivalente si elle existe.</p> + +<p>Le premier tableau couvre les API SDK de haut niveau, le second couvre les API bas niveau.</p> + +<h4 id="API_haut_niveau">API haut niveau</h4> + +<table class="fullwidth-table standard-table"> + <thead> + <tr> + <th scope="col">SDK</th> + <th scope="col">WebExtensions</th> + </tr> + </thead> + <tbody> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/addon-page">addon-page</a></td> + <td><code><a href="/fr/Add-ons/WebExtensions/API/tabs/create">tabs.create()</a></code> peut être utilisé pour charger des pages packagées avec l'add-on dans des onglets de navigateur.</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/base64">base64</a></td> + <td><a href="/fr/docs/Web/API/WindowBase64"><code>window.atob()</code> et <code>btoa()</code></a></td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/clipboard">clipboard</a></td> + <td><code><a href="/fr/docs/Web/API/Document/execCommand">document.execCommand</a></code> sans <code>select()</code> sur la page d'arrière-plan.</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/context-menu">context-menu</a></td> + <td><code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/contextMenus">contextMenus</a></code></td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/hotkeys">hotkeys</a></td> + <td><code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/commands">commands</a></code></td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/indexed-db">indexed-db</a></td> + <td><code><a href="/fr/docs/Web/API/IndexedDB_API">window.indexedDB</a></code></td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/l10n">l10n</a></td> + <td><code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/i18n">i18n</a></code></td> + </tr> + <tr> + <td><a href="/fr/Add-ons/SDK/High-Level_APIs/notifications">notifications</a></td> + <td><code><a href="/fr/Add-ons/WebExtensions/API/notifications">notifications</a></code></td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/page-mod">page-mod</a></td> + <td><code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/manifest.json/content_scripts">content_scripts</a></code></td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/page-worker">page-worker</a></td> + <td> + <p>Le portage n'est pas terminé et est décrit dans le <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1318532">bug 1318532</a></p> + + <p>Les méthodes de contournement (qui peuvent avoir besoin de <code>webrequestBlocking</code> pour accéder à l'ensemble des pages [<a href="https://stackoverflow.com/questions/15532791/getting-around-x-frame-options-deny-in-a-chrome-extension">exemple</a>]) :</p> + + <ul> + <li>Utiliser la page d'arrière-plan</li> + <li>Charger des <em>iframes</em> distantes dans la page d'arrière-plan</li> + <li>Effectuer un appel <a href="/fr/docs/AJAX">XHR</a> pour obtenir les informations statiques de la page.</li> + </ul> + </td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/panel">panel</a></td> + <td>Voir la section <a href="/fr/Add-ons/WebExtensions/Porting_from_the_Add-on_SDK#UI_elements">sur les interfaces utilisateur</a>.</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/passwords">passwords</a></td> + <td><a href="https://github.com/web-ext-experiments/logins">L'API expérimentale <code>logins</code></a></td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/private-browsing">private-browsing</a></td> + <td><code><a href="/fr/Add-ons/WebExtensions/API/Tabs/Tab">Tab.incognito</a></code> et <code><a href="/fr/Add-ons/WebExtensions/API/windows/Window">Window.incognito</a></code>.</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/querystring">querystring</a></td> + <td><code><a href="/fr/docs/Web/API/URLSearchParams">window.URLSearchParams</a></code></td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/request">request</a></td> + <td><code><a href="/fr/docs/Web/API/Fetch_API">window.fetch</a></code> ou <code><a href="/fr/docs/Web/API/XMLHttpRequest">window.XMLHttpRequest</a></code></td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/selection">selection</a></td> + <td>Utiliser un script de contenu qui envoie la donnée sélectionnée l'add-on. Sinon, si on peut utiliser un menu contextuel sur une sélection, celle-ci sera contenue dans <code>selectionText</code> (<code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/contextMenus/OnClickData">contextMenus.OnClickData</a></code>).</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/self">self</a></td> + <td><code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/runtime/getManifest">runtime.getManifest()</a></code> et <code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/extension/getURL">extension.getURL()</a></code> pour <code>data.url()</code></td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/simple-prefs">simple-prefs</a></td> + <td><code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/storage">storage</a></code> et <code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/manifest.json/options_ui">options_ui</a></code></td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/simple-storage">simple-storage</a></td> + <td><code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/storage">storage</a></code></td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/system">system</a></td> + <td>Partiellement couvert par <code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/runtime">runtime</a></code>.</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/tabs">tabs</a></td> + <td><code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/tabs">tabs</a></code></td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/timers">timers</a></td> + <td><code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/alarms">alarms</a></code></td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/ui">ui</a></td> + <td>Voir la section <a href="/fr/Add-ons/WebExtensions/Porting_from_the_Add-on_SDK#UI_elements">sur les éléments d'interface.</a></td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/url">url</a></td> + <td><code><a href="/fr/docs/Web/API/Window/URL">window.URL</a></code></td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/widget">widget</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/windows">windows</a></td> + <td><code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/windows">windows</a></code></td> + </tr> + </tbody> +</table> + +<h4 id="API_bas_niveau">API bas niveau</h4> + +<table class="fullwidth-table standard-table"> + <thead> + <tr> + <th scope="col">SDK</th> + <th scope="col">WebExtensions</th> + </tr> + </thead> + <tbody> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/_loader">loader</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/chrome">chrome</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/console_plain-text">console/plain-text</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/console_traceback">console/traceback</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/content_content">content/content</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/content_loader">content/loader</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/content_mod">content/mod</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/content_symbiont">content/symbiont</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/content_worker">content/worker</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/core_heritage">core/heritage</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/core_namespace">core/namespace</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/core_promise">core/promise</a></td> + <td><code><a href="/fr/docs/Web/JavaScript/Reference/Global_Objects/Promise">Promise</a></code></td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/dev_panel">dev/panel</a></td> + <td><code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/devtools.panels">devtools.panels</a></code></td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/event_core">event/core</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/event_target">event/target</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/frame_hidden-frame">frame/hidden-frame</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/frame_utils">frame/utils</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/fs_path">fs/path</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/io_byte-streams">io/byte-streams</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/io_file">io/file</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/io_text-streams">io/text-streams</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/lang_functional">lang/functional</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/lang_type">lang/type</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/loader_cuddlefish">loader/cuddlefish</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/loader_sandbox">loader/sandbox</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/net_url">net/url</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/net_xhr">net/xhr</a></td> + <td><code><a href="/fr/docs/Web/API/Fetch_API">window.fetch</a></code> ou <code><a href="/fr/docs/Web/API/XMLHttpRequest">window.XMLHttpRequest</a></code></td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/places_bookmarks">places/bookmarks</a></td> + <td><code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/bookmarks">bookmarks</a></code></td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/places_favicon">places/favicon</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/places_history">places/history</a></td> + <td><code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/history">history</a></code></td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/platform_xpcom">platform/xpcom</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/preferences_event-target">preferences/event-target</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/preferences_service">preferences/service</a></td> + <td>Prise en charge partielle via les API <code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/privacy">privacy</a></code> et <code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/browserSettings">browserSettings</a></code></td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/remote_child">remote/child</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/remote_parent">remote/parent</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/stylesheet_style">stylesheet/style</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/stylesheet_utils">stylesheet/utils</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/system_child_process">system/child_process</a></td> + <td><code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/runtime/connectNative">runtime.connectNative</a></code></td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/system_environment">system/environment</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/system_events">system/events</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/system_runtime">system/runtime</a></td> + <td>Prise en charge partielle via <code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/runtime/getPlatformInfo">runtime.getPlatformInfo</a></code></td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/system_xul-app">system/xul-app</a></td> + <td>Prise en charge partielle via <code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/runtime/getBrowserInfo">runtime.getBrowserInfo</a></code></td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/tabs_utils">tabs/utils</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/ui_button_action">ui/button/action</a></td> + <td><code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/manifest.json/browser_action">browser_action</a></code> / <code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/manifest.json/page_action">page_action</a></code></td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/ui_button_toggle">ui/button/toggle</a></td> + <td><code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/manifest.json/browser_action">browser_action</a></code> / <code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/manifest.json/page_action">page_action</a></code></td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/ui_frame">ui/frame</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/ui_id">ui/id</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/ui_sidebar">ui/sidebar</a></td> + <td><code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/sidebarAction">sidebarAction</a></code></td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/ui_toolbar">ui/toolbar</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/util_array">util/array</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/util_collection">util/collection</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/util_deprecate">util/deprecate</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/util_list">util/list</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/util_match-pattern">util/match-pattern</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/util_object">util/object</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/util_uuid">util/uuid</a></td> + <td>Aucun</td> + </tr> + <tr> + <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/window_utils">window/utils</a></td> + <td>Aucun</td> + </tr> + </tbody> +</table> diff --git a/files/fr/orphaned/mozilla/add-ons/webextensions/developer_accounts/index.html b/files/fr/orphaned/mozilla/add-ons/webextensions/developer_accounts/index.html new file mode 100644 index 0000000000..7cd2470cf8 --- /dev/null +++ b/files/fr/orphaned/mozilla/add-ons/webextensions/developer_accounts/index.html @@ -0,0 +1,26 @@ +--- +title: Comptes développeurs +slug: Mozilla/Add-ons/WebExtensions/Compte_developpeurs +tags: + - Développement + - Extensions + - publications +translation_of: Mozilla/Add-ons/WebExtensions/Developer_accounts +--- +<p>{{AddonSidebar}}</p> + +<p>Les comptes développeurs pour addons.mozilla.org sont intégrés aux <a href="https://accounts.firefox.com/signup">comptes Firefox</a>, ce qui vous permet d'accéder et de gérer plusieurs services Mozilla depuis un seul compte. Vous pouvez gérer votre compte Firefox à partir de <a href="https://accounts.firefox.com/settings">accounts.firefox.com/settings</a>.</p> + +<h3 id="Définition_dun_nom_daffichage">Définition d'un nom d'affichage</h3> + +<p>Il est important de définir un nom d'affichage sur votre <a href="https://addons.mozilla.org/firefox/users/edit">profil sur addons.mozilla.org </a>pour augmenter la transparence avec les utilisateurs, les évaluateurs et la communauté.</p> + +<div class="blockIndicator note"> +<p>Le nom d'affichage de votre compte Firefox ne sera pas synchronisé avec votre profil sur addons.mozilla.org. Vous devrez définir le nom d'affichage de votre compte développeur à partir de votre profil sur addons.mozilla.org</p> +</div> + +<h3 id="Comptes_bloqués">Comptes bloqués</h3> + +<p>Afin d'empêcher les acteurs malveillants de soumettre des spams à addons.mozilla.org, nous n'accepterons pas les soumissions provenant de comptes qui utilisent une adresse e-mail temporaire jetable, ou qui ont soumis plusieurs add-ons qui violent nos <a href="/en-US/docs/Mozilla/Add-ons/AMO/Policy/Reviews">Politiques de add-on</a>.</p> + +<p>Si vous pensez que votre compte a été bloqué par erreur, veuillez envoyer un email à amo-admins [at] mozilla [dot] com et inclure un lien vers votre profil développeur.</p> diff --git a/files/fr/orphaned/mozilla/add-ons/webextensions/distribution_options/add-ons_for_desktop_apps/index.html b/files/fr/orphaned/mozilla/add-ons/webextensions/distribution_options/add-ons_for_desktop_apps/index.html new file mode 100644 index 0000000000..270308150e --- /dev/null +++ b/files/fr/orphaned/mozilla/add-ons/webextensions/distribution_options/add-ons_for_desktop_apps/index.html @@ -0,0 +1,30 @@ +--- +title: Extensions pour applications de bureau +slug: >- + Mozilla/Add-ons/WebExtensions/Alternative_distribution_options/Add-ons_for_desktop_apps +tags: + - Add-ons + - Desktop + - Guide + - Installation + - WebExtensions +translation_of: Mozilla/Add-ons/WebExtensions/Distribution_options/Add-ons_for_desktop_apps +--- +<div>{{AddonSidebar()}}</div> + +<p>Si vous avez développé un module complémentaire à une application de bureau, vous pouvez installer le module complémentaire de plusieurs façons :</p> + +<ul> + <li>Dirigez l'utilisateur à installer à partir de <a href="http://addons.mozilla.org" rel="noreferrer">addons.mozilla.org</a> (AMO) en offrant un lien.</li> + <li>Chargement latéral.</li> + <li>En utilisant le registre Windows.</li> +</ul> + +<p>Parmi ces options, il est recommandé d'indiquer à l'utilisateur d'installer à partir d'AMO en proposant un lien. Les raisons de recommander cette option sont les suivantes :</p> + +<ul> + <li>Cela évite tout problème avec le processus d'installation. l'utilisateur n'obtiendra pas de messages interstitiels pendant l'installation du module complémentaire, trouvera le module complémentaire installé mais sera désactivé ou constatera que le module complémentaire n'a pas été installé.</li> + <li>Si vous mettez à jour le module complémentaire, la nouvelle version sera automatiquement installée, une fois que vous l'aurez téléchargé sur AMO.</li> +</ul> + +<p>En revanche, le chargement de fichiers à l'aide des <a href="/fr/Add-ons/WebExtensions/Alternative_methods_of_installing_add-ons/Sideloading_add-ons#Installation_using_the_standard_extension_folders">dossiers d'extension standard</a> ou du <a href="/fr/Add-ons/WebExtensions/Alternative_methods_of_installing_add-ons/Installing_add-ons_in_an_enterprise_environment#Installation_using_the_Windows_registry">registre Windows</a> nécessite que votre application de bureau installe toute mise à jour du module complémentaire. En outre, en fonction des paramètres par défaut de Firefox, le processus d'installation présentera des avertissements à l'utilisateur (message interstitiel) ou installera le module en mode silencieux, mais le désactivera. Le pire des cas est que l'installation échouera silencieusement si Firefox est configuré pour <a href="/fr/Add-ons/WebExtensions/Alternative_methods_of_installing_add-ons/Installing_add-ons_in_an_enterprise_environment#Controlling_automatic_installation">désactiver l'installation automatique</a>. Vous pouvez mettre à jour la <a href="/fr/Add-ons/WebExtensions/Alternative_methods_of_installing_add-ons/Installing_add-ons_in_an_enterprise_environment#Settings_scope_preferences_programmatically">configuration de Firefox</a> pour éviter ces problèmes, mais ce n'est pas recommandé.</p> diff --git a/files/fr/orphaned/mozilla/add-ons/webextensions/distribution_options/add-ons_in_the_enterprise/index.html b/files/fr/orphaned/mozilla/add-ons/webextensions/distribution_options/add-ons_in_the_enterprise/index.html new file mode 100644 index 0000000000..4e5d88d0d7 --- /dev/null +++ b/files/fr/orphaned/mozilla/add-ons/webextensions/distribution_options/add-ons_in_the_enterprise/index.html @@ -0,0 +1,166 @@ +--- +title: Les Add-ons en entreprise +slug: >- + Mozilla/Add-ons/WebExtensions/Alternative_distribution_options/Add-ons_in_the_enterprise +tags: + - Add-ons + - Guide + - Installation +translation_of: Mozilla/Add-ons/WebExtensions/Distribution_options/Add-ons_in_the_enterprise +--- +<div>{{AddonSidebar()}}</div> + +<p>En tant qu'administrateur informatique d'entreprise, vous souhaiterez peut-être installer des modules complémentaires automatiquement pour vos utilisateurs. Cette page présente les options.</p> + +<h2 id="Extensions_signées_et_non_signées">Extensions signées et non signées</h2> + +<p>Depuis Firefox 43, tous les modules complémentaires doivent être signés avant de pouvoir être installés dans les versions standard ou bêta de Firefox. Les modules non signés peuvent être installés dans les versions<a href="/fr/Firefox/Developer_Edition"> Developer Edition</a>, <a href="/en-US/docs/Mozilla/Firefox#Firefox_Nightly">Nightly</a>, et <a href="/en-US/docs/Mozilla/Firefox/Enterprise_deployment#Extended_Support_Release_(ESR)">ESR</a> de firefox, après avoir basculé la préférence <code>xpinstall.signatures.required</code> dans <code>about:config</code>.</p> + +<p>Si vous souhaitez installer des modules complémentaires non signés, le déploiement d'une version <a href="/en-US/docs/Mozilla/Firefox/Enterprise_deployment#Extended_Support_Release_(ESR)">ESR</a> de Firefox est l'approche recommandée. Une fois cela fait, les add-ons non signés peuvent être installés en utilisant n'importe quelle méthode, y compris l'ouverture du fichier add-on à partir d'une page Web.</p> + +<p>L'approche alternative et recommandée, est d'utiliser l'option pour les add-ons non listés sur <a href="http://addons.mozilla.org" rel="noreferrer">addons.mozilla.org</a> (AMO). Cette option signifie que vous pouvez obtenir un module complémentaire signé sans qu'il soit répertorié dans le répertoire des modules complémentaires publics. Cette fonctionnalité fournit un module signé immédiatement. Ce module signé peut ensuite être installé à partir d'une page Web derrière le pare-feu, ou installé en utilisant l'une des options décrites ici.</p> + +<h2 id="Chargement_latéral">Chargement latéral</h2> + +<p>Vous pouvez charger un module complémentaire à l'aide de l'un des dossiers d'extension standard, comme décrit dans <a href="/fr/Add-ons/WebExtensions/Alternative_distribution_options/Sideloading_add-ons#Installation_à_l'aide_des_dossiers_d'extension_standard">Installation à l'aide de dossiers d'extension standard</a>.</p> + +<h2 id="Installation_à_l'aide_du_registre_Windows">Installation à l'aide du registre Windows</h2> + +<p>Cette section explique comment installer des modules complémentaires dans Firefox en utilisant le registre Windows.</p> + +<div class="warning">Avant Firefox 62, il était possible de charger des extensions décompressées en faisant pointer la clé de registre Windows sur un répertoire contenant une extension non empaquetée. +<p>À partir de Firefox 62, cela n'est plus possible et la clé doit pointer vers un fichier XPI empaqueté, comme décrit dans cette section.</p> +</div> + +<div class="note"> +<p>Il est prudent de modifier les clés de registre pendant que Firefox est en cours d'exécution.</p> +</div> + +<ol> + <li>Assurez-vous que le module complémentaire possède un ID complémentaire, en incluant ce qui suit dans son fichier manifest.json, en remplaçant <em>your-add-on-name@your-domain.com</em> with par un ID approprié pour votre module complémentaire : + + <pre>"applications": { + "gecko": { + "id": "your-add-on-name@your-domain.com" + } + }</pre> + Un identifiant de style d'adresse e-mail est recommandé.</li> + <li>Signez votre module dans AMO en utilisant l'option non listée. Pour plus de détails, voir <a href="/fr/Add-ons/Distribution">Signature et distribution de votre module complémentaire</a>.</li> + <li>Téléchargez le fichier XPI signé et assurez-vous que le nom de fichier est l'ID du module plus l'extension <code>.xpi</code>. Par exemple, <code>c:/webext/borderify@example.com.xpi</code></li> + <li>Ouvrez Regedit et ajoutez les clés comme suit : + <ul> + <li>Ajoutez à tous les utilisateurs de l'ordinateur les clés de registre suivantes : + <pre>HKEY_LOCAL_MACHINE\Software\Mozilla\Firefox\Extensions</pre> + + <p>ou</p> + + <pre>HKEY_LOCAL_MACHINE\Software\Wow6432Node\Mozilla\Firefox\Extensions</pre> + + <div class="note"> + <p dir="ltr"><code>HKEY_LOCAL_MACHINE\Software\Mozilla\Firefox\Extensions</code> n'est pas disponible lors de l'exécution de Firefox 32 bits sur une machine 64 bits, vous ne pouvez installer que pour tous les utilisateurs utilisant la clé <code>Wow6432Node</code>.</p> + </div> + </li> + <li>Pour l'utilisateur actuel, ajoutez à la clé de registre suivante : + <pre>HKEY_CURRENT_USER\Software\Mozilla\Firefox\Extensions</pre> + </li> + </ul> + </li> + <li>Créez une nouvelle valeur de chaîne. Entrée de Registre dont le nom est identique à l'ID du module complémentaire, par exemple, borderify@example.com,et une valeur égale à l'emplacement où le module complémentaire est stocké, par exemple, <code>c:/webext/borderify@example.com.xpi</code>.</li> + <li>Redémarrez Firefox. Le module complémentaire est détecté, mais l'utilisateur peut se voir présenter un interstitiel ou doit activer le module complémentaire dans le module complémentaire avant de pouvoir l'utiliser. Voir <a href="#Firefox_settings">les paramètres de Firefox</a>.)</li> +</ol> + +<p>Si le même add-on apparaît sous <code>HKEY_CURRENT_USER</code> et <code>HKEY_LOCAL_MACHINE</code>, l'instance sous <code>HKEY_CURRENT_USER</code> sera utilisée. Si le même module complémentaire apparaît dans le répertoire de profil de l'utilisateur (par exemple, s'il l'a déjà installé manuellement), cette version aura la priorité sur toutes les instances trouvées dans le Registre.</p> + +<p>Pour supprimer un module installé à l'aide du registre Windows, supprimez simplement l'entrée du Registre. Après la suppression de l'entrée du registre, Firefox détectera le changement la prochaine fois qu'il sera lancé. Il est prudent de modifier les clés de registre pendant que Firefox est en cours d'exécution.</p> + +<p>Si vous installez en utilisant le registre de Windows, Firefox ne mettra pas automatiquement à jour votre module complémentaire. Vous devrez mettre au point le module complémentaire en utilisant n'importe quel processus d'installation externe à Firefox.</p> + +<h2 id="Les_paramètres_de_Firefox">Les paramètres de Firefox</h2> + +<p>Deux paramètres affectent l'utilisation d'options d'installation alternatives. La préférence <code>extensions.autoDisableScopes</code> détermine si les modules complémentaires sont installés automatiquement ou après confirmation de l'utilisateur. La préférence <code>extensions.enabledScopes</code> est utilisée pour désactiver l'installation de la plupart des emplacements. En plus de ces options, la méthode de définition de ces préférences par programme est discutée.</p> + +<h3 id="Contrôler_l'installation_automatique">Contrôler l'installation automatique</h3> + +<p>Les téléchargements standards de Firefox sont configurés pour que les sideloads utilisant le dossier extensions standard ou le registre Windows, ne s'installent pas automatiquement. Selon la version de Firefox :</p> + +<ul> + <li>l'utilisateur a affiché un avertissement interstitiel :<br> + <img alt="An interstitial warning about the installation of the add-on" src="https://mdn.mozillademos.org/files/15209/interstitial_windows.png" style="height: 441px; width: 630px;"></li> + <li>le module complémentaire est installé mais désactivé, et l'utilisateur doit l'activer depuis le gestionnaire de modules complémentaires :<br> + <img alt="An add-on is installed but disabled " src="https://mdn.mozillademos.org/files/15207/add_on_disabled.png" style="height: 61px; width: 707px;"></li> +</ul> + +<p>L'utilisation des installations désactivées interstitielles et silencieuses varie selon les versions de Firefox, par exemple, la version 54 utilise le message interstitiel..</p> + +<p>La disponibilité de l'installation automatique est contrôlée par la préférence et le comportement <code>extensions.autoDisableScopes</code> définis par les valeurs suivantes :</p> + +<div> +<table> + <colgroup> + <col> + <col> + </colgroup> + <tbody> + <tr> + <td>Valeur</td> + <td>Installation du champ</td> + </tr> + <tr> + <td>1 (or '0b0001')</td> + <td>Le profil de l'utilisateur actuel.</td> + </tr> + <tr> + <td>2 (or '0b0010')</td> + <td>Tous les profils de l'utilisateur connecté</td> + </tr> + <tr> + <td>4 (or '0b0100')</td> + <td>Installé et détenu par Firefox.</td> + </tr> + <tr> + <td>8 (or '0b1000')</td> + <td>Installé pour tous les utilisateurs de l'ordinateur.</td> + </tr> + <tr> + <td>15 (or '0b1111')</td> + <td>La combinaison de tous les champs d'application.</td> + </tr> + </tbody> +</table> +</div> + +<p>Par défaut, <code>extensions.autoDisableScopes</code> est défini sur 15 afin que les installations automatiques soient désactivées à partir de tous les emplacements. Pour désactiver uniquement un sous-ensemble d'emplacements, définissez la préférence sur la somme des valeurs des emplacements que vous souhaitez désactiver. Par exemple, 3 désactive "Profil de l'utilisateur actuel" et "Tous les profils de l'utilisateur connecté". La définition de la valeur sur 0 désactive cette fonctionnalité et signifie que tous les modules complémentaires seront installés sans confirmation de l'utilisateur.</p> + +<h3 id="Désactivation_des_emplacements_d'installation">Désactivation des emplacements d'installation</h3> + +<p>Dans certaines circonstances, vous pouvez souhaiter que Firefox ignore tout ou partie des emplacements d'installation supplémentaires répertoriés ci-dessus. Dans ce cas, utilisez la préférence <code>extensions.enabledScopes</code>. Par défaut, cette préférence n'est pas incluse dans les téléchargements standard de Firefox, il faudra donc l'ajouter. vous pouvez ajouter la <a href="/fr/kb/about-config-editor-firefox#w_adding-changing-and-resetting-preferences">préférence manuellement</a> ou la faire par programmation en suivant les instructions de la section suivante.</p> + +<div class="note"> +<p>Il est impossible de désactiver le chargement de modules complémentaires à partir du répertoire de profil.</p> +</div> + +<h3 id="Définir_les_préférences_d'étendue_par_programme">Définir les préférences d'étendue par programme</h3> + +<p>Utilisez la logique suivante pour définir les valeurs de <code>extensions.autoDisableScopes</code> et <code>extensions.enabledScopes</code> par programme pour vous assurer que les modules complémentaires sont installés automatiquement :</p> + +<ol> + <li>Editez le fichier de <a href="/fr/Firefox/Enterprise_deployment#Configuration">configuration administratif</a>.</li> + <li>Vérifiez la présence de lignes définissant les préférences <code>extensions.autoDisableScopes</code> et/ou <code>extensions.enabledScopes</code> et remplacez-les / ajoutez-les si nécessaire.</li> + <li>Ces lignes de préférence doivent être utilisées comme ci-dessous, avec les valeurs de votre choix comme expliqué dans le haut de cette section : + <pre class="brush: js">defaultPref("extensions.autoDisableScopes", 0); +defaultPref("extensions.enabledScopes", 15); +// Or use binary value like this +defaultPref("extensions.enabledScopes", 0b1111);</pre> + </li> +</ol> + +<div class="note"> +<p>Selon <a href="http://www.favbrowser.com/how-to-create-a-new-default-firefox-experience-in-your-enterprise/">cette page</a> : <small>(en date du 28 septembre 2012)</small><br> + “Vous ne pouvez pas définir cette préférence à distance en utilisant les fichiers autoconfig.”<br> + Ce qui vous recommande de définir uniquement ces préférences dans un fichier autoconfig local.<br> + Si cette information est erronée, ajustez ou supprimez cette note.</p> +</div> + +<h2 id="Regroupement_de_modules_complémentaires_avec_un_Firefox_personnalisé">Regroupement de modules complémentaires avec un Firefox personnalisé</h2> + +<p>Vous pouvez regrouper des modules complémentaires dans un Firefox personnalisé, et ils seront installés automatiquement lorsque l'utilisateur démarre l'application pour la première fois. Voir<a href="/fr/docs/Mozilla/Developer_guide/Customizing_Firefox"> Personnalisation de Firefox</a> pour plus de détails.</p> diff --git a/files/fr/orphaned/mozilla/add-ons/webextensions/distribution_options/index.html b/files/fr/orphaned/mozilla/add-ons/webextensions/distribution_options/index.html new file mode 100644 index 0000000000..1b45607060 --- /dev/null +++ b/files/fr/orphaned/mozilla/add-ons/webextensions/distribution_options/index.html @@ -0,0 +1,68 @@ +--- +title: Options de distribution +slug: Mozilla/Add-ons/WebExtensions/Alternative_distribution_options +tags: + - Add-ons + - Installation + - Landing + - WebExtensions +translation_of: Mozilla/Add-ons/WebExtensions/Distribution_options +--- +<div>{{AddonSidebar()}}</div> + +<p>Le processus standard de distribution et d'installation des extensions de navigateur se fait via Firefox en utilisant un fichier XPI signé obtenu à partir de <a href="http://addons.mozilla.org" rel="noreferrer">addons.mozilla.org</a> (AMO) (pour les add-ons listés) ou un téléchargement configuré par un développeur (pour les add-ons non listés).</p> + +<p>Nous examinons ici les exigences en matière de signature et les commentaires connexes, avant de discuter de la façon de choisir entre la distribution sur AMO ou la distribution d'une extension de navigateur vous-même. Nous examinons également les canaux disponibles sur AMO et répondons aux questions sur la propriété du code et les litiges.</p> + +<h2 id="Signature_de_votre_extension">Signature de votre extension</h2> + +<p>Les extensions de navigateur doivent être signées par Mozilla avant de pouvoir être installées dans les versions release et beta de Firefox. Les thèmes, et d'autres types d'ajouts tels que les dictionnaires d'orthographe, n'ont pas besoin d'être signés.</p> + +<p>Ce processus de signature se fait via addons.mozilla.org (AMO), que vous choisissiez de distribuer votre add-on via AMO ou de le faire vous-même.</p> + +<p>Les extensions non signées peuvent être installées dans les versions <a href="/fr/docs/Mozilla/Firefox/Developer_Edition">Developer Edition</a>, Nightly, et <a href="https://developer.mozilla.org/en-US/Firefox/Enterprise_deployment">ESR</a> de Firefox, après avoir activé la préférence <em>xpinstall.signatures.required</em> dans <code>about:config</code>.</p> + +<p>Mozilla signe les extensions de navigateur via le site Web de <a class="external external-icon" href="https://addons.mozilla.org/developers/addon/submit" rel="noopener">AMO</a>. Il y a trois façons de soumettre votre extension pour signature :</p> + +<ol> + <li>téléchargez votre add-on via le <a href="https://developer.mozilla.org/en-US/Add-ons/Distribution/Submitting_an_add-on">Developer Hub sur AMO</a>.</li> + <li>utilisez l' <a class="external external-icon" href="http://addons-server.readthedocs.io/en/latest/topics/api/signing.html" rel="noopener">API de signature addons.mozilla.org</a>.</li> + <li>utilisez le <a href="https://developer.mozilla.org/en-US/Add-ons/WebExtensions/web-ext_command_reference#web-ext_sign">signé web-ext.</a></li> +</ol> + +<p>Toutes les options de signature sont soumises à l'<a href="https://developer.mozilla.org/en-US/Add-ons/AMO/Policy/Agreement">accord de distribution du module complémentaire Firefox</a>.</p> + +<p>Si vous téléchargez votre extension via le centre de développement AMO, vous avez le choix entre l'inscription sur AMO ou l'auto-distribution. Si vous choisissez l'auto-distribution, à la fin du processus, vous téléchargez des copies signées de votre add-on.</p> + +<p>L'utilisation de l'API de signature ou du web-ext renvoie vos add-ons signés, sans qu'aucune liste de distribution ne soit créée sur AMO.</p> + +<p>Quelle que soit la méthode utilisée, tous les add-ons doivent passer une validation automatisée avant d'être signés. Ils peuvent également faire l'objet d'un examen manuel du code. Les critères d'examen appliqués aux prorogations se trouvent dans la <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/AMO/Policy/Reviews">polique complémentaire</a>.</p> + +<h2 id="Distribuer_votre_extension">Distribuer votre extension</h2> + +<p>Vous n'êtes pas tenu d'inscrire ou de distribuer votre poste par l'entremise de l'AMO. Vous devrez décider si vous voulez distribuer et inscrire votre extension par l'entremise de l'AMO ou si vous voulez la distribuer vous-même. Voici quelques points à prendre en considération :</p> + +<ul> + <li>AMO est une plateforme de distribution très populaire, avec des millions de visiteurs et d'installations mensuels.</li> + <li>AMO est intégré dans le gestionnaire de modules complémentaires Firefox, ce qui facilite l'installation des extensions publiées sur AMO.</li> + <li>Lorsqu'une extension est listée dans AMO, les mises à jour des copies installées sont gérées automatiquement par Firefox chaque fois qu'une nouvelle version est listée dans AMO.</li> + <li>L'URL où Firefox peut trouver les mises à jour doit être incluse dans la clé <a href="https://developer.mozilla.org/en-US/Add-ons/Updates">update_link</a> du manifest d'extension pour que Firefox puisse effectuer des mises à jour automatiques. Les extensions auto-distribuées qui n'ont pas d'URL de mise à jour vérifient AMO pour les mises à jour et sont mises à jour vers une version listée, si elle est disponible.</li> +</ul> + +<p>Pour plus d'informations sur la façon de soumettre un add-on pour distribution sur AMO ou auto-distribution, voir <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/Distribution/Submitting_an_add-on">Soumettre une extension.</a></p> + +<h2 id="Autres_options_de_distribution">Autres options de distribution</h2> + +<p>Ces méthodes peuvent ne pas convenir à tout le monde, par exemple, lorsqu'une extension de navigateur est fournie avec une application native ou lorsqu'une entreprise souhaite installer une extension pour toutes ses instances de Firefox. Cette section décrit les solutions de rechange.</p> + +<ul> + <li> + <p><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/Alternative_distribution_options/Sideloading_add-ons">Sideloading add-ons</a> — permet à un utilisateur d'installer une extension en utilisant un fichier XPI enregistré sur son ordinateur.</p> + </li> + <li> + <p><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/Alternative_distribution_options/Add-ons_for_desktop_apps">Add-ons for use with a desktop app</a> — cette section décrit les meilleures pratiques pour fournir une extension à utiliser avec une application de bureau.</p> + </li> + <li> + <p><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/Alternative_distribution_options/Add-ons_in_the_enterprise">Add-ons in an enterprise environment</a> — cette page traite de l'utilisation des extensions signées par rapport aux extensions non signées, des options d'installation, des paramètres Firefox affectant l'installation, et de l'inclusion des add-ons avec un paquet d'installation Firefox personnalisé.</p> + </li> +</ul> diff --git a/files/fr/orphaned/mozilla/add-ons/webextensions/distribution_options/sideloading_add-ons/index.html b/files/fr/orphaned/mozilla/add-ons/webextensions/distribution_options/sideloading_add-ons/index.html new file mode 100644 index 0000000000..2271640415 --- /dev/null +++ b/files/fr/orphaned/mozilla/add-ons/webextensions/distribution_options/sideloading_add-ons/index.html @@ -0,0 +1,134 @@ +--- +title: Sideloading add-ons +slug: >- + Mozilla/Add-ons/WebExtensions/Alternative_distribution_options/Sideloading_add-ons +tags: + - Guide + - Installation + - Sideloading + - WebExtensions +translation_of: Mozilla/Add-ons/WebExtensions/Distribution_options/Sideloading_add-ons +--- +<div>{{AddonSidebar()}}</div> + +<p>Vous souhaiterez peut-être envoyer un fichier XPI à votre utilisateur par un moyen autre qu'un téléchargement sur le Web, par exemple une distribution par e-mail d'une version bêta pour les tests utilisateur. Dans ce cas, il existe deux options pratiques pour installer le module complémentaire :</p> + +<ul> + <li>À l'aide de l'option <strong>Installer le module à partir d'un fichier</strong> dans le gestionnaire de modules complémentaires.</li> + <li>Ajout du fichier à l'un des dossiers d'extension standard.</li> +</ul> + +<div class="note">Aucune mise à jour automatique ne sera effectuée pour les modules complémentaires installés à l'aide de ces méthodes. Vous devrez fournir un nouveau fichier XPI à votre utilisateur pour chaque mise à jour. Cependant, des vérifications de compatibilité automatiques sont toujours effectuées.</div> + +<h2 id="Preparation_de_votre_extension">Preparation de votre extension</h2> + +<p>Indépendamment de la méthode de chargement latéral utilisée, vous devez préparer l'extension comme suit :</p> + +<ol> + <li>Assurez-vous que le module complémentaire inclut un ID, en ajoutant ce qui suit à son fichier manifest.json, en remplaçant <em>votre your-add-on-name@your-domain.com</em> par un ID approprié dans vote mode complémentaire : + + <pre class="brush: json">"applications": { + "gecko": { + "id": "your-add-on-name@your-domain.com" + } +} +</pre> + Un identifiant de style d'adresse e-mail est recommandé.</li> + <li>Signez le module complémentaire dans <a href="http://addons.mozilla.org" rel="noreferrer">addons.mozilla.org</a> (AMO). Selon la manière dont vous souhaitez rendre votre module complémentaire disponible, vous pouvez utiliser les options non répertoriées (si vous distribuez le module complémentaire uniquement) ou répertoriées. Pour plus de détails, voir <a href="/fr/Add-ons/Distribution">Signature et distribution de votre module complémentaire</a>.</li> +</ol> + +<h2 id="Utilisation_de_l'option_Installer_le_module_à_partir_d'un_fichier">Utilisation de l'option Installer le module à partir d'un fichier</h2> + +<p>Pour utiliser <strong>Installer le module complémentaire à partir d'un fichier</strong> dans le gestionnaire de modules complémentaire, send the user the signed add-on with the following instructions:</p> + +<ol> + <li>Enregistrez le fichier complémentaire à un emplacement approprié sur votre ordinateur.</li> + <li>Dans Firefox, ouvrir le menu Firefox <img alt="Firefox browser menu button" src="https://mdn.mozillademos.org/files/15199/Firefox_menu.png" style="height: 24px; width: 32px;"> et cliquez sur <strong>Add-ons</strong>.</li> + <li>Dans les paramètres de cog, ouvrez <strong>Installer le module complémentaire à partir du fichier </strong>:<br> + <img alt="Add-on Manager utilities cog" src="https://mdn.mozillademos.org/files/15201/add-on_manager_cog.png" style="height: 188px; width: 347px;"></li> + <li>Recherchez et ouvrez le fichier à partir de l'emplacement où il a été enregistré.</li> + <li>Lorsque vous y êtes invité, cliquez sur <strong>Ajouter :</strong><br> + <img alt="Message asking user to confirm the installation of the add-on" src="https://mdn.mozillademos.org/files/15203/add_add_on_confirmation.png" style="height: 198px; width: 403px;"></li> + <li>Le module complémentaire apparaîtra désormais dans la liste des modules complémentaires installés du gestionnaire de modules complémentaires et sera prêt à être utilisé :<br> + <img alt="After installation the add-on is listed in the add-on manager" src="https://mdn.mozillademos.org/files/15205/add_on_added.png" style="height: 55px; width: 649px;"></li> +</ol> + +<h2 id="Installation_à_l'aide_des_dossiers_d'extension_standard">Installation à l'aide des dossiers d'extension standard</h2> + +<p>Cette méthode d'installation complémentaire consiste à copier le module complémentaire dans l'un des dossiers d'extension standard sur l'ordinateur de l'utilisateur. Une fois copié, la prochaine fois que Firefox sera lancé le module complémentaire sera installé. Par défaut, l'utilisateur sera invité à approuver l'installation et, si l'utilisateur l'approuve, le module complémentaire sera installé et chargé automatiquement pour les lancements ultérieurs. Si l'utilisateur possède plusieurs profils Firefox, l'approbation et l'installation auront lieu au prochain lancement de chaque profil. Pour plus d'informations sur le contrôle de l'utilisateur à approuver l'installation, voir <a href="/fr/Add-ons/WebExtensions/Alternative_methods_of_installing_add-ons/Installing_add-ons_in_an_enterprise_environment#Controlling_automatic_installation">Contrôle de l'installation automatique</a>.</p> + +<h3 id="Renommez_votre_fichier_XPI">Renommez votre fichier XPI</h3> + +<p>Pour utiliser cette méthode, votre fichier XPI doit être nommé à l'aide de l'ID d'extension ou d'application, comme indiqué dans la section <a href="/fr/Add-ons/WebExtensions/Alternative_methods_of_installing_add-ons/Sideloading_add-ons#Preparing_your_add-on">Préparation de votre module complémentaire</a>. Le fichier complémentaire signé que vous avez téléchargé à partir d'AMO s'appellera quelque chose comme borderify-1.0-an+fx.xpi (voir <a href="/fr/Add-ons/Distribution">Signature et distribution de votre module complémetaire</a> pour plus de détails), modifiez-le par exemple borderify@example.com.xpi.</p> + +<div class="note"> +<p>Si vous développez un module complémentaire pour Firefox vous pouvez utiliser un <a href="/fr/Add-ons/Setting_up_extension_development_environment#Firefox_extension_proxy_file">fichier proxy d'extensions</a> pour installer un module complémentaire sans copier les fichiers dans les dossiers d'extension standard.</p> +</div> + +<h3 id="Ajoutez_le_fichier_d'extension_XPI_dans_un_dossier_d'extensions_commun.">Ajoutez le fichier d'extension XPI dans un dossier d'extensions commun.</h3> + +<p>Dans ce qui suit {ec8030f7-c20a-464f-9b0e-13a3a9e97384} est l'identifiant de l'application de Firefox. </p> + +<p>L'installation standard de Firefox désactive l'installation automatique de modules complémentaires à partir de ces emplacements (voir <a href="/fr/Add-ons/WebExtensions/Alternative_methods_of_installing_add-ons/Installing_add-ons_in_an_enterprise_environment#Controlling_automatic_installation">Contrôle de l'installation automatique</a>). Par conséquent, le processus pour chacune des méthodes décrites ci-dessous est le suivant :</p> + +<ul> + <li>Copiez le fichier XPI renommé dans le dossier des extensions pour <a href="#Windows">Windows</a>, <a href="#OSX">OSX</a>, ou <a href="#Linux">Linux</a> selon le cas. Notez que, selon le système d'exploitation de bureau et ses paramètres, l'utilisateur peut avoir besoin d'une autorisation d'administrateur pour effectuer cette action.</li> + <li>Fermez et redémarrez Firefox.</li> + <li>Selon le système d'exploitation et la version de Firefox, l'un des événements suivants se produira: + <ul> + <li>L'installation se fera en mode silencieux et l'utilisateur devra ouvrir le gestionnaire de modules complémentaires et activer le module complémentaire :<br> + <img alt="An add-on is installed but disabled " src="https://mdn.mozillademos.org/files/15207/add_on_disabled.png" style="height: 61px; width: 707px;"><br> + Pour activer le module complémentaire, l'utilisateur devra cliquer sur <strong>Enable</strong>.</li> + <li>Un message interstitiel sera affiché :<br> + <img alt="An interstitial warning about the installation of the add-on" src="https://mdn.mozillademos.org/files/15209/interstitial_windows.png" style="height: 441px; width: 630px;"><br> + Pour installer le module complémentaire, l'utilisateur devra cocher <strong>Autoriser cette installation </strong>et cliquer sur <strong>Continue</strong>r.</li> + </ul> + </li> + <li>L'add-on est maintenant installé.</li> +</ul> + +<p>Pour plus de détails sur les installations interstitielles et silencieuses, voir <a href="/fr/Add-ons/WebExtensions/Alternative_methods_of_installing_add-ons/Installing_add-ons_in_an_enterprise_environment#Controlling_automatic_installation">Contrôle de l'installation automatique</a>.</p> + +<div class="note"> +<p>Pour désinstaller le module complémentaire, fermez Firefox et supprimez le module complémentaire de l'emplacement où il a été ajouté.</p> +</div> + +<h4 id="Windows">Windows</h4> + +<p>Pour installer le module complémentaire pour un utilisateur de l'ordinateur, copiez le fichier XPI dans <span lang="fr"><span>:</span></span></p> + +<pre>C:\Users\<user name>\AppData\Roaming\mozilla\Extensions\\{ec8030f7-c20a-464f-9b0e-13a3a9e97384}\</pre> + +<p>Si ce dossier n'existe pas, créez-le. Vous pouvez également identifier le chemin de l'utilisateur actuel avec la variable %appdata% du système.</p> + +<div class="note"> +<p>Remarque : Pour installer un module complémentaire pour tous les utilisateurs d'un ordinateur Windows, voir <a href="/fr/Add-ons/WebExtensions/Alternative_methods_of_installing_add-ons/Installing_add-ons_in_an_enterprise_environment#Installation_using_the_Windows_registry">Installation à l'aide du registre Windows</a>.</p> +</div> + +<h4 id="OSX">OSX</h4> + +<p>Pour installer un module complémentaire à utiliser par tous les profils Firefox et tous les utilisateurs, copiez le fichier XPI dans le dossier d'extension globale situé dans la bibliothèque. Si ce dossier n'existe pas, vous devrez le créer.</p> + +<pre>/Library/Application Support/mozilla/Extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}/</pre> + +<p>Pour installer un module complémentaire pour un utilisateur spécifique, copiez le fichier XPI dans la bibliothèque locale de l'utilisateur :</p> + +<pre>~/Library/Application Support/mozilla/Extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}/</pre> + +<h4 id="Linux">Linux</h4> + +<p>Pour installer un module complémentaire utilisé par tous les utilisateurs, copiez le fichier XPI dans :</p> + +<pre>/usr/lib/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}/</pre> + +<p>Ou...</p> + +<pre>/usr/lib64/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}/</pre> + +<p dir="ltr">Ou...</p> + +<pre>/usr/share/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}/</pre> + +<p>Pour installer un module complémentaire pour un utilisateur spécifique, copiez le fichier XPI dans :</p> + +<pre>~/.mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}/</pre> diff --git a/files/fr/orphaned/mozilla/add-ons/webextensions/package_your_extension_/index.html b/files/fr/orphaned/mozilla/add-ons/webextensions/package_your_extension_/index.html new file mode 100644 index 0000000000..8f50b00eaf --- /dev/null +++ b/files/fr/orphaned/mozilla/add-ons/webextensions/package_your_extension_/index.html @@ -0,0 +1,58 @@ +--- +title: Publier votre extension +slug: Mozilla/Add-ons/WebExtensions/Publishing_your_WebExtension +tags: + - WebExtensions +translation_of: Mozilla/Add-ons/WebExtensions/Package_your_extension_ +--- +<div>{{AddonSidebar}}</div> + +<div class="pull-aside"> +<div class="moreinfo"> +<p>Les extensions packagées dans Firefox sont appelées "fichiers XPI", qui sont des fichiers ZIP avec une extension différente.</p> + +<p>Vous n'avez pas besoin d'utiliser l'extension XPI lors du téléchargement vers AMO.</p> +</div> +</div> + +<p><span class="seoSummary">Pendant le développement, votre extension sera constituée d'un répertoire contenant un fichier manifest.json et les autres fichiers dont elle a besoin : scripts, icônes, documents HTML, etc. Vous devez les zipper dans un seul fichier pour les télécharger vers AMO.</span></p> + +<p>La façon la plus pratique de compiler votre extension est d'utiliser la <a href="/fr/Add-ons/WebExtensions/web-ext_command_reference#web-ext_build">build web-ext</a>. Cet outil exclut automatiquement les fichiers qui sont généralement indésirables dans les paquets, comme les fichiers <code>.git</code> . Sinon, suivez les instructions ci-dessous pour le système d'exploitation.</p> + +<div class="note"> +<p><strong>Astuce</strong>. Le fichier ZIP doit être un fichier ZIP des fichiers de l'extension elle-même, et non du répertoire qui les contient.</p> +</div> + +<h3 id="Windows">Windows</h3> + +<ol> + <li>Ouvrez le répertoire contenant les fichiers de votre extension.</li> + <li>Sélectionnez tous les fichiers et répertoires nécessaires pour implémenter votre extension, excluez les fichiers qui ne sont pas nécessaires pour exécuter l'extension, tels que <code>.git</code>, les sources graphiques et les fichiers similaires.</li> + <li>Ouvrez le menu contextuel et cliquez sur <strong>Envoyer</strong> dans le <strong>dossier compressé (zipped)</strong>.</li> +</ol> + +<p><img alt="Illustration of how to use the send to compress folder feature in File Explorer to create a web extension package." src="https://mdn.mozillademos.org/files/16565/creating_package_windows.png"></p> + +<h3 id="macOS">macOS</h3> + +<ol> + <li>Ouvrez le répertoire contenant les fichiers de votre extension.</li> + <li>Sélectionnez tous les fichiers et répertoires nécessaires pour implémenter votre extension, excluez les fichiers qui ne sont pas nécessaires pour exécuter l'extension, tels que <code>.git</code>, les sources graphiques et les fichiers similaires.</li> + <li>Ouvrez le menu contextuel et cliquez <strong>Compress <em>n</em> éléments</strong>.</li> +</ol> + +<p><img alt="Illustration of how to use the compress feature in Finder to create a web extinction package." src="https://mdn.mozillademos.org/files/16564/creating_package_mac.png" style="height: 437px; width: 768px;"></p> + +<div class="pull-aside"> +<div class="moreinfo">Voir <a href="http://www.info-zip.org/mans/zip.html">http://www.info-zip.org/mans/zip.html</a>.</div> +</div> + +<h3 id="Linux_macOS_Terminal">Linux / macOS Terminal</h3> + +<ol> + <li>Ouvrir un Terminal.</li> + <li>Ouvrez le répertoire contenant les fichiers de votre extension, en utilisant la commande<br> + <code>cd path/to/<em>my-extension</em>/</code></li> + <li>ZIPez le contenu du répertoire en vous souvenant d'exclure les fichiers qui ne sont pas nécessaires à l'exécution de l'extension, tels que <code>.git</code>, les sources graphiques, et les fichiers similaires - en utilisant la commande<br> + <code>zip -r -FS ../<em>my-extension</em>.zip * --exclude *.git*</code></li> +</ol> diff --git a/files/fr/orphaned/mozilla/add-ons/webextensions/porting_a_legacy_firefox_add-on/index.html b/files/fr/orphaned/mozilla/add-ons/webextensions/porting_a_legacy_firefox_add-on/index.html new file mode 100644 index 0000000000..5227fba14b --- /dev/null +++ b/files/fr/orphaned/mozilla/add-ons/webextensions/porting_a_legacy_firefox_add-on/index.html @@ -0,0 +1,85 @@ +--- +title: Portage d'une extension Firefox héritée +slug: Mozilla/Add-ons/WebExtensions/Portage_d_une_extension_Firefox_heritee +tags: + - WebExtensions +translation_of: Mozilla/Add-ons/WebExtensions/Porting_a_legacy_Firefox_add-on +--- +<div>{{AddonSidebar}}</div> + +<p>Si vous avez développé une extension Firefox en utilisant une technologie héritée en utilisant XUL/XPCOM ou le kit d'extensions, cette page vous aidera à migrer votre extension pour utiliser les API WebExtensions. La norme pour créer des extensions pour Firefox consiste à utiliser les API <a class="external text" href="/fr/Add-ons/WebExtensions" rel="nofollow">WebExtensions</a>. Ce sera le seul type d'extension pris en charge par Firefox d'ici la fin du mois de novembre 2017 avec la sortie de <a class="external text" href="https://wiki.mozilla.org/RapidRelease/Calendar" rel="nofollow">Firefox 57</a>.</p> + +<div class="blockIndicator warning"> +<p>La prise en charge des extensions utilisant XUL/XPCOM ou le SDK Add-on a été supprimée dans Firefox 57, publié en novembre 2017. Comme il n'y a pas de version supportée de Firefox permettant ces technologies, cette page sera supprimée d'ici décembre 2020.</p> +</div> + +<h2 id="Démarrage_rapide">Démarrage rapide</h2> + +<ol> + <li>Obtenez une idée des principales choses que vous devrez modifier dans votre extension : + <ul> + <li>Familiarisez-vous avec le <a href="/fr/Add-ons/WebExtensions/Anatomy_of_a_WebExtension">format et la structure WebExtension</a>, et <a href="/fr/Add-ons/WebExtensions/Your_first_WebExtension">créez un exemple basique</a>.</li> + <li>Si votre extension est basé sur XUL et XPCOM, qu'il s'agisse d'une <a href="https://developer.mozilla.org/fr/Add-ons/Overlay_Extensions">extension de superposition</a> ou d'une <a href="https://developer.mozilla.org/fr/Add-ons/Bootstrapped_extensions">extension bootstrap</a>, consultez la <a href="/fr/Add-ons/WebExtensions/Comparison_with_XUL_XPCOM_extensions">comparaison avec les extensions XUL/XPCOM</a> pour savoir comment les WebExtensions peuvent correspondre aux API existantes que vous utilisez.</li> + <li> + <p>Si votre extension est basée sur le SDK d'extensions, consultez la <a href="/fr/Add-ons/WebExtensions/Comparison_with_the_Add-on_SDK">comparaison avec le SDK d'extensions</a> pour savoir comment les WebExtensions peuvent correspondre aux SDK API existantes que vous utilisez.</p> + </li> + </ul> + </li> + <li>Réécrivez le code de votre extension. Voir ci-dessous les chemins de migration pour différents types d'extensions. A partir de Firefox 51, vous pouvez intégrer une extension construite à l'aide d'API WebExtension dans une extension bootstrap ou une extension SDK, et peut donc porter une extension héritée une pièce à la fois et avoir une extension fonctionnelle à chaque étape. Consultez <a href="/fr/Add-ons/WebExtensions/Embedded_WebExtensions">Embedded WebExtensions</a>.</li> + <li>Lorsque vous êtes prêt à soumettre la version WebExtension de votre extension à AMO... attendez une minute... êtes-vous vraiment prêt ? En raison du modèle de permissions d'extensions, vous ne pouvez pas revenir de WebExtensions à l'utilisation d'un format d'extension hérité. Donc tester <em>bien</em>, car il s'agit d'un aller simple permanent. Consultez également l'exemple hybride ci-dessous. Si vous n'êtes pas prêt, vous pouvez intégrer votre WebExtension dans un conteneur d'extension existant, ce qui vous permet de tester votre migration d'extension mais encore de revenir si nécessaire en cas d'urgence.</li> + <li>Lorsque vous êtes vraiment prêt à soumettre la version WebExtension de votre extension à AMO, connectez d'abord votre ancienne ID d'extension au nouveau fichier manifest.json de WebExtension. Votre extension doit avoir le même ID que les versions précédentes. Copiez la valeur dans le champ "id" de votre fichier package.json dans le champ id dans la section des <a href="/fr/Add-ons/WebExtensions/manifest.json/applications">applications</a> du fichier manifest.json WebExtension. Ensuite, vous pouvez soumettre votre mise à jour de l'extension à AMO comme vous le feriez normalement.</li> +</ol> + +<div class="note"> +<p>Notez qu'il s'agit d'une conversion unidirectionnelle: vous <strong>ne pouvez pas</strong> mettre à jour une WebExtension pour utiliser une technologie héritée. Cela signifie que vous devez être sûr que vous êtes prêt à vous engager aux WebExtensions avant de soumettre la mise à jour de l'extension à AMO.</p> +</div> + +<h2 id="Chemin_de_migration">Chemin de migration</h2> + +<h3 id="SDK_Extensions"><br> + SDK Extensions</h3> + +<p>Voici le tableau de comparaison montrant les <a href="/fr/Add-ons/WebExtensions/Comparison_with_the_Add-on_SDK">APIs SDK et leurs homologues de format WebExtensions</a>. Si vous ne voyez pas les API dont vous avez besoin pour utiliser les APIs WebExtensions, consultez ci-dessous pour savoir comment demander des API et aussi comment les implémenter.</p> + +<h3 id="XULXPCOM_Extensions">XUL/XPCOM Extensions</h3> + +<p>Voici le tableau de comparaison montrant les <a href="/fr/Add-ons/WebExtensions/Comparison_with_XUL_XPCOM_extensions">APIs XUL/XPCOM et leurs homologues de format WebExtensions</a>. Si vous ne voyez pas les API dont vous avez besoin pour utiliser les APIs WebExtension, consultez ci-dessous pour savoir comment demander des API et aussi comment les implémenter.</p> + +<h2 id="Vous_ne_trouvez_pas_les_APIs_WebExtensions_dont_vous_avez_besoin">Vous ne trouvez pas les APIs WebExtensions dont vous avez besoin ?</h2> + +<p><strong>Développez les APIs WebExtension pour Firefox</strong> - Si vous êtes expérimenté avec l'infrastructure Mozilla et souhaitez développer des API WebExtensions directement pour Firefox, voici une liste d' <a href="https://mzl.la/2dVs5Ys">APIs approuvées</a> que vous pouvez commencer à contribuer.</p> + +<p><strong>Expérimentez avec les nouvelles APIs WebExtension</strong> - Si vous souhaitez créer un prototype et un bricolage avec les API WebExtensions sans avoir à créer Firefox, les <a href="http://webextensions-experiments.readthedocs.io/en/latest/index.html">Expériences WebExtensions</a> sont pour vous !</p> + +<p><strong>Demandez une nouvelle API WebExtensions </strong>- Si vous souhaitez demander une nouvelle API WebExtensions, lisez <a class="external text" href="https://wiki.mozilla.org/WebExtensions/NewAPIs" rel="nofollow">cette page.</a></p> + +<h2 id="Outils">Outils</h2> + +<ul> + <li><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/Getting_started_with_web-ext">web-ext</a> st un outil de ligne de commande conçu pour accélérer diverses parties du processus de développement d'extension, rendant le développement plus rapide et plus facile.</li> + <li><a href="https://compatibility-lookup.services.mozilla.com/">Lookup tool</a> pour vérifier votre type d'extension et obtenir des recommandations sur les ressources de portage</li> + <li><a href="https://github.com/mi-g/weh">WebExtensions Helper</a> accélère le développement de l'extension du navigateur en fournissant des utilitaires pour les extensions basées sur WebExtensions (Firefox, Chrome, Opera and Edge)</li> + <li><a href="https://github.com/yeoman/generator-chrome-extension">Chrome Extension generator </a>crée tout ce dont vous avez besoin pour commencer avec le développement de l'extension. Vous pouvez choisir l'interface utilisateur du navigateur (Browser,Page Action, Omnibox) et sélectionner les permissions dont vous avez besoin.</li> + <li><a href="http://extensionizr.com/">Extensionizr</a> est un assistant qui vous aide à créer une extension simple</li> + <li><a href="https://github.com/mahemoff/chrome-boilerplate">Chrome Boilerplate</a> est un code de référence pour Chrome WebExtension<span class="col-11 mr-2 text-gray-dark">.</span></li> + <li><a href="https://github.com/sitepoint/ChromeSkel_a">Skeleton Chrome Extension</a> est une extension bootstrap et un modèle</li> +</ul> + +<h2 id="Documentation">Documentation</h2> + +<ul> + <li><a href="https://wiki.mozilla.org/Add-ons/developer/communication">Page du projet WebExtensions</a> sur le wiki de Mozilla</li> + <li><a href="/fr/Add-ons/WebExtensions">Guide pratique</a> couvrant les cas communs de développement d'extension, comme <a href="/fr/Add-ons/WebExtensions/Intercept_HTTP_requests">intercepter des requêtes web</a> et <a href="/fr/Add-ons/WebExtensions/Add_a_button_to_the_toolbar">ajouter un bouton à la barre d'outils</a></li> + <li><a href="/fr/Add-ons/WebExtensions/Comparison_with_the_Add-on_SDK">Comparaison avec the Add-on SDK</a></li> + <li><a href="/fr/Add-ons/WebExtensions/Comparison_with_XUL_XPCOM_extensions">Comparaison avec XUL/XPCOM extensions</a></li> + <li><a href="/fr/Add-ons/WebExtensions/Browser_support_for_JavaScript_APIs">Tableau de compatibilité du navigateur</a> pour toutes les APIs WebExtensions</li> + <li><a href="/fr/Add-ons/WebExtensions/Examples">Examples d'extensions</a></li> +</ul> + +<h2 id="Contact">Contact</h2> + +<ul> + <li> + <p>Vous pouvez utiliser les liens <a href="/fr/Add-ons#Contact_us">ici</a> pour obtenir de l'aide, vous tenir à jour avec les nouvelles des add-ons, et nous donner des commentaires.</p> + </li> +</ul> diff --git a/files/fr/orphaned/mozilla/add-ons/webextensions/request_the_right_permissions/index.html b/files/fr/orphaned/mozilla/add-ons/webextensions/request_the_right_permissions/index.html new file mode 100644 index 0000000000..e0c9a4ef04 --- /dev/null +++ b/files/fr/orphaned/mozilla/add-ons/webextensions/request_the_right_permissions/index.html @@ -0,0 +1,367 @@ +--- +title: Demander les bonnes permissions +slug: Mozilla/Add-ons/WebExtensions/demander_les_bonnes_permissions +tags: + - Add-ons + - Comment + - Débutant + - Extensions + - Hox-to + - Intermédiaire + - Permissions + - WebExtensions +translation_of: Mozilla/Add-ons/WebExtensions/Request_the_right_permissions +--- +<p>{{AddonSidebar}}</p> + +<p>Ou comment éviter les permissions décourageant les utilisateurs d'installer vos extensions.</p> + +<h2 id="Introduction">Introduction</h2> + +<p>Avec l'introduction de Firefox Quantum (57), la gestion des permissions lors de l'installation d'une extension a changé. Auparavant, les permissions étaient accordées silencieusement aux extensions. Cependant, les utilisateurs sont maintenant informés des permissions demandées par une extension lors de son installation, avec un message comme celui-ci:</p> + +<p><img alt="Example of the permissions messages from the Gesturefy extension" src="https://mdn.mozillademos.org/files/15736/General_permissions_message_example.png" style="height: 287px; width: 411px;"></p> + +<p>En outre, si une mise à jour d'extension nécessite des permissions supplémentaires, l'utilisateur est invité à approuver les permissions avant l'installation de la version mise à jour :</p> + +<p><img alt="Example of the message displayed when an extension update requests additional permissions" src="https://mdn.mozillademos.org/files/15737/Permissions_update.png" style="height: 336px; width: 357px;"></p> + +<p>Si l'utilisateur choisit de ne pas approuver les permissions et annule la mise à jour, la version précédente reste installée et disponible.</p> + +<p>L'affichage des messages de permission améliore le modèle de sécurité de l'extension en sensibilisant les utilisateurs à l'impact potentiel de l'installation d'une extension. Il met également Firefox en ligne avec les autres principaux navigateurs, où les utilisateurs ont été informés des demandes de permission des extensions pour un certain temps.</p> + +<p>Étant donné que les utilisateurs de Firefox n'ont pas vu les demandes de permissions au cours de l'installation auparavant, cette modification pourrait décourager certains d'entre eux d'installer votre extension, car les messages pourraient suggérer qu'elle fait quelque chose d'effrayant. Nous fournissons aux utilisateurs avec une <a href="https://support.mozilla.org/kb/permission-request-messages-explained">explication de ces messages de permissions</a> et des conseils sur <a href="https://support.mozilla.org/kb/tips-assessing-safety-extension">comment juger s'ils sont appropriés</a>. Cependant, il y a plusieurs choses que vous pouvez faire pour réduire la probabilité que les utilisateurs abandonnent l'installation de votre extension à cause de ces messages :</p> + +<ul> + <li>Assurez-vous que vous ne demandez pas de permissions inutiles.</li> + <li>Demander des permissions à l'exécution, ce qui vous permet de demander les permissionss en contexte et de proposer une option de repli si l'utilisateur ne les accorde pas.</li> + <li>Décrivez pourquoi votre extension demande ses permissions dans sa description AMO.</li> +</ul> + +<p>Conseil: Les avertissements d'autorisation ne sont pas émis <a href="/fr/Add-ons/WebExtensions/Temporary_Installation_in_Firefox">lorsque vous chargez une extension décompressée</a>. Pour plus d'informations sur l'affichage du flux d'autorisations d'exécution standard, voir <a href="/fr/Add-ons/WebExtensions/Test_permission_requests">Test de demandes de permission</a>.</p> + +<h2 id="Permissions_conseillées">Permissions conseillées</h2> + +<p>Toutes les <a href="/fr/Add-ons/WebExtensions/manifest.json/permissions">permissions</a> ne donnent pas de conseils à l'utilisateur. Les permissions qui déclenchent l'affichage d'un message et les messages qu'ils déclenchent sont :</p> + +<table class="standard-table"> + <tbody> + <tr> + <td><strong>Permission</strong></td> + <td><strong>Permissions messages</strong></td> + </tr> + <tr> + <td> + <p>Host permissions</p> + </td> + <td> + <p style="margin-bottom: 0px;">Accédez à vos données pour tous les sites Web<br> + Accédez à vos données pour les sites du domaine[named].<br> + Accédez à vos données dans # d'autres domaines<br> + Accédez à vos données pour[site nommé].<br> + Accédez à vos données sur # autres sites".</p> + </td> + </tr> + <tr> + <td>API permissions:</td> + <td></td> + </tr> + <tr> + <td style="padding: 0px, 0px;"> + <ul style="margin-bottom: 0px;"> + <li><code>bookmarks</code></li> + </ul> + </td> + <td style="padding: 0px, 0px;">Lire et modifier les marques pages</td> + </tr> + <tr> + <td style="padding: 0px, 0px;"> + <ul style="margin-bottom: 0px;"> + <li style="margin-bottom: 0px;"><code>browserSettings</code></li> + </ul> + </td> + <td style="margin-bottom: 0px; padding: 0px, 0px;">Lire et modifier les paramètres du navigateur</td> + </tr> + <tr> + <td style="padding: 0px, 0px;"> + <ul style="margin-bottom: 0px;"> + <li style="margin-bottom: 0px;"><code>browsingData</code></li> + </ul> + </td> + <td style="margin-bottom: 0px; padding: 0px, 0px;">Effacer l'historique de navigation récent, les cookies et les données associées.</td> + </tr> + <tr> + <td style="padding: 0px, 0px;"> + <ul style="margin-bottom: 0px;"> + <li><code>downloads</code></li> + </ul> + </td> + <td>Télécharger des fichiers et lire et modifier l'historique des téléchargements du navigateur.</td> + </tr> + <tr> + <td style="padding: 0px, 0px;"> + <ul style="margin-bottom: 0px;"> + <li><code>downloads.open</code></li> + </ul> + </td> + <td style="padding: 0px, 0px;">Ouvrir les fichiers téléchargés sur votre ordinateur</td> + </tr> + <tr> + <td style="padding: 0px, 0px;"> + <ul style="margin-bottom: 0px;"> + <li><code>find</code></li> + </ul> + </td> + <td style="padding: 0px, 0px;">Lire le texte de tous les onglets ouverts</td> + </tr> + <tr> + <td style="padding: 0px, 0px;"> + <ul style="margin-bottom: 0px;"> + <li><code>geolocation</code></li> + </ul> + </td> + <td style="padding: 0px, 0px;">Accédez à votre localisation</td> + </tr> + <tr> + <td> + <ul style="margin-bottom: 0px;"> + <li><code>history</code></li> + </ul> + </td> + <td style="padding: 0px, 0px;">Historique de navigation</td> + </tr> + <tr> + <td style="padding: 0px, 0px;"> + <ul style="margin-bottom: 0px;"> + <li><code>management</code></li> + </ul> + </td> + <td>Surveiller l'utilisation des extensions et gérer les thèmes</td> + </tr> + <tr> + <td style="padding: 0px, 0px;"> + <ul style="margin-bottom: 0px;"> + <li><code>nativeMessaging</code></li> + </ul> + </td> + <td>Échanger des messages avec des programmes autres que Firefox</td> + </tr> + <tr> + <td style="padding: 0px, 0px;"> + <ul style="margin-bottom: 0px;"> + <li><code>notifications</code></li> + </ul> + </td> + <td style="padding: 0px, 0px;">Afficher les notifications qui vous sont destinées</td> + </tr> + <tr> + <td> + <ul style="margin-bottom: 0px;"> + <li><code>pkcs11</code></li> + </ul> + </td> + <td>Fournir des services d'authentification cryptographique</td> + </tr> + <tr> + <td style="padding: 0px, 0px;"> + <ul style="margin-bottom: 0px;"> + <li><code>privacy</code></li> + </ul> + </td> + <td style="padding: 0px, 0px;">Lire et modifier les paramètres de confidentialité</td> + </tr> + <tr> + <td style="padding: 0px, 0px;"> + <ul style="margin-bottom: 0px;"> + <li><code>proxy</code></li> + </ul> + </td> + <td style="padding: 0px, 0px;">Contrôler les paramètres de proxy du navigateur</td> + </tr> + <tr> + <td style="padding: 0px, 0px;"> + <ul style="margin-bottom: 0px;"> + <li><code>sessions</code></li> + </ul> + </td> + <td style="padding: 0px, 0px;">Accéder aux onglets récemment fermés</td> + </tr> + <tr> + <td style="padding: 0px, 0px;"> + <ul style="margin-bottom: 0px;"> + <li><code>tabs</code></li> + </ul> + </td> + <td style="padding: 0px, 0px;">Onglets du navigateur d'accès</td> + </tr> + <tr> + <td style="padding: 0px, 0px;"> + <ul style="margin-bottom: 0px;"> + <li><code>topSites</code></li> + </ul> + </td> + <td style="padding: 0px, 0px;">Historique de navigation</td> + </tr> + <tr> + <td style="padding: 0px, 0px;"> + <ul style="margin-bottom: 0px;"> + <li><code>webNavigation</code></li> + </ul> + </td> + <td style="padding: 0px, 0px;">Accéder à l'activité du navigateur pendant la navigation</td> + </tr> + <tr> + <td>Clipboard access</td> + <td></td> + </tr> + <tr> + <td style="padding: 0px, 0px;"> + <ul style="margin-bottom: 0px;"> + <li><code>clipboardWrite</code></li> + </ul> + </td> + <td style="padding: 0px, 0px;">Saisie des données dans le presse-papiers</td> + </tr> + <tr> + <td style="padding: 0px, 0px;"> + <ul style="margin-bottom: 0px;"> + <li><code>clipboardRead</code></li> + </ul> + </td> + <td>Obtenir les données du presse-papiers</td> + </tr> + <tr> + <td><code>unlimitedStorage</code></td> + <td>Stocker un nombre illimité de données côté client</td> + </tr> + <tr> + <td>The manifest key <a href="/fr/Add-ons/WebExtensions/manifest.json/devtools_page">"devtools_page"</a></td> + <td>Étendre les outils de développement pour accéder à vos données dans des onglets ouverts.</td> + </tr> + </tbody> +</table> + +<div class="blockIndicator note"> + + +<p>Les permissions qui affichent les messages et les messages qu'ils affichent peuvent être différentes dans d'autres navigateurs. Pour plus d'informations sur l'affichage du message d'autorisation dans Chrome, voir <a href="https://developer.chrome.com/apps/permission_warnings#view_warnings" rel="noreferrer nofollow">Affichage des avertissements.</a></p> + + +</div> + +<p>Les permissions suivantes ne sont pas alertées aux utilisateurs :</p> + +<ul> + <li>API permissions + <ul> + <li><code>alarms</code></li> + <li><code>contextMenus</code></li> + <li><code>contextualIdentities</code></li> + <li><code>cookies</code></li> + <li><code>identity</code></li> + <li><code>idle</code></li> + <li><code>menus</code></li> + <li><code>storage</code></li> + <li><code>theme</code></li> + <li><code>webRequest</code></li> + <li><code>webRequestBlocking</code></li> + </ul> + </li> + <li><code>activeTab</code></li> +</ul> + +<h2 id="Évitez_les_permissions_inutiles">Évitez les permissions inutiles</h2> + +<p>Cette section examine les situations dans lesquelles vous pourriez demander plus de permissions que vos besoins d'extension et ce que vous devez faire à leur sujet.</p> + +<h3 id="Ne_demandez_que_les_permissions_que_votre_extension_utilise">Ne demandez que les permissions que votre extension utilise</h3> + +<p>Cela peut sembler évident, mais si vous créez une extension en utilisant un exemple précédent en tant que modèle ou si vous supprimez une fonctionnalité au cours du développement ou du test, vous demandez peut-être des permissions dont votre extension n'a pas besoin. En adressant ceci est un cas de faire une vérification manuelle de votre code contre les permissions (<code>"permissions"</code> et <a href="/fr/Add-ons/WebExtensions/manifest.json/optional_permissions">"optional_permissions"</a>) que vous demandez dans le manifest.json de l'extension.</p> + +<h3 id="Utilisez_activeTab_plutôt_que_tabs_et_permissions_d'hôte">Utilisez "activeTab" plutôt que "tabs" et permissions d'hôte</h3> + +<p>Prenez une extension que vous développez pour aider les utilisateurs mal-voyants. À la demande de l'utilisateur, vous allez rechercher et mettre à jour CSS dans une page Web pour remplacer les couleurs que l'utilisateur peut avoir du mal à distinguer avec des couleurs sûres. Vous avez évidemment besoin d'accéder et de mettre à jour CSS sur chaque page que votre utilisateur visite. Vous pouvez le faire en demandant la permission <code>"tabs"</code> et la permission d'hôte <code>"<all_urls>"</code>.</p> + +<pre class="brush: json">"permissions": [ + "<all_urls>", + "tabs" +]</pre> + +<p>Demander ces permissions, permet à l'utilisateur d'obtenir ce conseil :</p> + +<p><img alt='Example of the "Access your data for all websites" permission message' src="https://mdn.mozillademos.org/files/15738/All_Websites_permissions.png" style="height: 142px; width: 357px;"></p> + +<p>L'alternative est de demander <code>"activeTab"</code>. Cette permission fournit à votre extension les mêmes fonctionnalités mais uniquement pour l'onglet actif et uniquement lorsqu'elle est exécutée à partir de l'interface utilisateur de l'extension (depuis un bouton de barre d'outils, un bouton de barre de navigation, un menu contextuel ou une touche de raccourci).</p> + +<p>Fait important, <code>"activeTab"</code> n'entraîne pas l'affichage d'un message de permission lors de l'installation de l'extension.</p> + +<h3 id="Evitez_la_permission_d'hôte_<all_urls>_si_vous_pouvez">Evitez la permission d'hôte "<all_urls>" si vous pouvez</h3> + +<p>Comme indiqué dans l'exemple précédent, demander la permission d'hôte <code>"<all_urls>"</code> entraîne le message de demande d'accès Access à vos données pour tous les sites Webs. Si votre extension est conçue pour fonctionner avec un ou plusieurs sites Web ou domaines, affinez la requête. Lors de l'installation, les utilisateurs recevront des informations sur les quatre premiers sites Web ou les domaines auxquels vous demandez l'accès.</p> + +<p><img alt="Example of the permissions message when host permission for four websites as requested" src="https://mdn.mozillademos.org/files/15739/Permissions_host_four.png"></p> + +<p>Si vous demandez l'accès à plus de quatre sites Web ou domaines, le message liste les trois premiers et indique le nombre d'autres demandes.</p> + +<p><img alt="Example of the permissions message when hosts permission for 5 or more website is requested" src="https://mdn.mozillademos.org/files/15740/Permissions_host_four_plus.png" style="height: 194px; width: 357px;"></p> + +<h3 id="Evitez_la_permission_unlimitedStorage">Evitez la permission "unlimitedStorage"</h3> + +<p>Ne demandez la permission <code>"unlimitedStorage"</code> que si vous estimez que le stockage de données local de votre extension dépasse 5MB s'il ne dépasse pas ce montant, ne le demandez pas.</p> + +<p><img alt="Example of the permission message when requesting access to unlimited client-side data storage" src="https://mdn.mozillademos.org/files/15741/Permissions_unlimiteddata.png" style="height: 143px; width: 357px;"></p> + +<p>Remarque: Firefox ne limite pas actuellement la taille du stockage local, bien qu'il demande aux utilisateurs d'approuver cette demande de permission si vous le faites. Firefox peut ajouter une restriction à l'avenir. Si cela se produit, il est peu probable que la limite soit inférieure à la restriction actuelle de 5 Mo de Chrome.</p> + +<h2 id="Demander_les_permissions_à_éxécuter">Demander les permissions à éxécuter</h2> + +<p>Les utilisateurs peuvent ne pas comprendre le contexte des permissions demandées lors de l'installation. L'approche alternative consiste à demander les permissions au besoin, à l'aide de l'<a href="/fr/Add-ons/WebExtensions/API/permissions">API permissions</a>, et à fournir ainsi un contexte à l'utilisateur.</p> + +<p>Un scénario typique pour utiliser cette approche est la permission <code>"geoLocation"</code>. Supposons que vous avez écrit une extension de prise de notes qui inclut la possibilité d'ajouter une mini-carte de l'emplacement des preneurs de notes. Demander l'accès à l'emplacement pendant l'installation peut laisser l'utilisateur incertain de la raison pour laquelle l'extension doit accéder à l'emplacement, de sorte qu'ils ne l'installeront peut-être pas. Toutefois, si la permission d'utiliser l'emplacement est demandée lorsque l'utilisateur tente d'abord d'ajouter une minicarte, il comprend mieux pourquoi la permission est nécessaire et a plus de chances de l'accorder. Et s'ils choisissent de ne pas accorder la permission, l'extension peut offrir un retour en arrière gracieux — dans cet exemple, sans ajouter la minicarte — mais le résultat important de cette approche est que l'utilisateur a installé et utilisé votre extension.</p> + +<p><img alt="Example of an additional or runtime permission request message" src="https://mdn.mozillademos.org/files/15742/Permissions_optional_request.png" style="height: 155px; width: 357px;"></p> + +<p>Faire une demande de permission d'exécution est simple. Incluez les permissions que vous souhaitez demander sous la clé manifest.json <code>"<a href="/fr/Add-ons/WebExtensions/manifest.json/optional_permissions">optional_permissions</a>"</code>. Passez ensuite les autorisations que vous souhaitez accorder à {{WebExtAPIRef("permissions.request")}}, qui invite l'utilisateur à accorder les permissions. true est renvoyé si l'utilisateur accorde la requête, false si ce n'est pas le cas.</p> + +<p>Vous ne pouvez pas demander toutes les permissions disponibles aux <code>"permissions"</code> en utilisant des permissions facultatives. Vous ne pouvez pas demander les permissions d'API suivantes:</p> + +<ul> + <li><code>alarms</code></li> + <li><code>background</code></li> + <li><code>browsingData</code></li> + <li><code>contentSettings</code></li> + <li><code>contextualIdentities</code></li> + <li><code>debugger</code></li> + <li><code>downloads</code></li> + <li><code>downloads.open</code></li> + <li><code>find</code></li> + <li><code>identity</code></li> + <li><code>menus</code></li> + <li><code>nativeMessaging</code></li> + <li><code>pageCapture </code></li> + <li><code>pkcs11</code></li> + <li><code>privacy</code></li> + <li><code>proxy</code></li> + <li><code>sessions</code></li> + <li><code>storage</code></li> + <li><code>theme</code></li> +</ul> + +<p>Il y a un certain nombre de choses à noter :</p> + +<ul> + <li>Vous pouvez uniquement demander des permissions dans le gestionnaire pour une action utilisateur, par exemple à partir d'un bouton de barre d'outils (action du navigateur), d'un élément de menu contextuel ou similaire.</li> + <li>Si vous demandez plusieurs permissions à la fois, elles sont toutes accordées ou toutes refusées, l'utilisateur ne peut pas choisir d'en accorder certaines et pas d'autres</li> +</ul> + +<p>Pour plus d'informations sur les permissions facultatives, consultez <a href="/fr/Add-ons/WebExtensions/manifest.json/optional_permissions">optional_permissions</a> et l'exemple <a href="https://github.com/mdn/webextensions-examples/tree/master/permissions">permissions</a>.</p> + +<h2 id="Ajouter_des_informations_sur_les_permissions_à_vos_extensions_page_AMO">Ajouter des informations sur les permissions à vos extensions page AMO</h2> + +<p>Les messages de permissions sont plus susceptibles d'empêcher un utilisateur d'installer votre extension, car ils ne comprennent pas pourquoi les permissions sont demandées. Bien que l'utilisateur puisse obtenir des conseils généraux sur l'impact d'une permission, il peut ne pas être suffisant pour lui de comprendre pourquoi une permission est demandée dans votre extension.</p> + +<p>Pour résoudre ce problème, fournissez des informations dans la description AMO de votre extension qui explique les permissions demandées par votre extension et pourquoi.</p> + +<p>Un bon exemple de cette approche est <a href="https://addons.mozilla.org/en-US/firefox/addon/gesturefy/">Gesturefy</a>, qui offre aux utilisateurs les conseils suivants :</p> + +<p><img alt="Extract from Gesturefy's AMO description providing information on thepermissions requested by this extension" src="https://mdn.mozillademos.org/files/15743/gesturefy_permissions_explanation.png" style="height: 520px; width: 866px;"></p> diff --git a/files/fr/orphaned/mozilla/add-ons/webextensions/security_best_practices/index.html b/files/fr/orphaned/mozilla/add-ons/webextensions/security_best_practices/index.html new file mode 100644 index 0000000000..05a6a7a699 --- /dev/null +++ b/files/fr/orphaned/mozilla/add-ons/webextensions/security_best_practices/index.html @@ -0,0 +1,63 @@ +--- +title: Bonnes pratiques de sécurité +slug: Mozilla/Add-ons/WebExtensions/securite_bonne_pratique +tags: + - Débutant + - Extensions + - Intermédiaire + - Sécurité + - WebExtensions + - revue +translation_of: Mozilla/Add-ons/WebExtensions/Security_best_practices +--- +<div>{{AddonSidebar}}</div> + +<p>Voici une liste des meilleures pratiques à suivre pour protéger les utilisateurs de votre extension. Si vous ne suivez pas ces bonnes pratiques, votre extension risque d'échouer les avis sur <a href="https://addons.mozilla.org">addons.mozilla.org</a>, Si vous ne suivez pas ces bonnes pratiques, votre extension risque d'échouer les avis survous empêchant ainsi de distribuer votre module ou de le bloquer à l'installation dans Firefox.</p> + +<ul> + <li><strong>Ne pas injecter ou incorporer des scripts distants</strong><br> + Si vous identifiez un service que vous souhaitez utiliser dans votre extension, n'injectez pas le script du service à partir d'une source distante. Une telle approche est risquée, car le code pourrait être modifié sans que vous le sachiez — et, surtout, sans la connaissance et le consentement de l'utilisateur des extensions — compromettant la sécurité de votre extension. Vous devriez donc ajouter une copie du script dans le code de votre extension.</li> + <li><strong>Assurez-vous d'insérer le contenu distant en toute sécurité</strong><br> + Assurez-vous de suivre les bonnes pratiques lorsque votre extension utilise du contenu distant : + <ul> + <li>insérez des chaînes à l'aide de méthodes de manipulation DOM natives sécurisées : <a href="/fr/docs/Web/API/Document/createElement">document.createElement</a>, <a href="/fr/docs/Web/API/Element/setAttribute">Element.setAtttribute</a>, et <a href="/fr/docs/Web/API/Node/textContent">Node.textContent</a>.</li> + <li>utilisez les fonctions <code>attr()</code> et <code>text()</code> pour insérer des chaînes.</li> + <li>assainir le contenu HTML avec <a href="https://github.com/cure53/DOMPurify">DOMPurify</a>.</li> + <li>utiliser des commandes de moteur de modèle qui échappent à tout code HTML avant de l'insérer.</li> + </ul> + + <p>Pour plus d'informations, voir <a href="/fr/Add-ons/WebExtensions/Safely_inserting_external_content_into_a_page">Insérer du contenu externe en toute sécurité dans une page</a>.</p> + </li> + <li><strong>Utiliser XHR pour Google Analytics</strong><br> + Si vous souhaitez ajouter Google Analytics à votre extension, n'insérez pas le code JavaScript Google Analytics. Il est plutôt recommandé d'utiliser l'API REST Google Analytics dans un appel XHR, par exemple: + <pre class="brush: js">let request = new XMLHttpRequest(); +let message = + "v=1&tid=" + GA_TRACKING_ID + "&cid= " + GA_CLIENT_ID + "&aip=1" + + "&ds=add-on&t=event&ec=AAA&ea=" + aType; + +request.open("POST", "https://www.google-analytics.com/collect", true); +request.send(message);</pre> + Vous pouvez trouver plus d'informations dans l'article de blog <a href="https://blog.mozilla.org/addons/2016/05/31/using-google-analytics-in-extensions/">Utilisation de Google Analytics dans les Extensions</a>.</li> + <li><strong>Utiliser la stratégie de sécurité du contenu de l'extension standard (CSP)</strong><br> + La stratégie standard limite les sources à partir desquelles votre extension peut charger les ressources <a href="/fr/docs/Web/HTML/Element/script"><code><script></code></a> et <a href="/fr/docs/Web/HTML/Element/object"><code><object></code></a>, et interdit les pratiques potentiellement dangereuses, telles que l'utilisation de <a href="/fr/docs/Web/JavaScript/Reference/Global_Objects/eval">eval()</a>. Bien que la clé manifest.json <a href="/fr/Add-ons/WebExtensions/manifest.json/content_security_policy">content_security_policy</a> vous permette de modifier la stratégie de sécurité du contenu de votre extension, cette opération n'est pas recommandée car elle empêche les extensions d'exécuter involontairement du contenu malveillant. Si votre CSP modifié autorise l'injection de script à distance, votre extension sera rejetée par AMO pendant la révision.<br> + Pour plus d'informations, voir <a href="/fr/Add-ons/WebExtensions/Content_Security_Policy#Default_content_security_policy">Stratégie de sécurité du contenu par défaut</a>.</li> + <li><strong>Partagez des objets avec JavaScript sur la page avec soin</strong><br> + Firefox fournit <code>wrappedJSObject</code> afin qu'un script de contenu puisse accéder aux objets JavaScript créés par les scripts de page. Le danger ici est qu'une page Web malveillante puisse, par exemple, modifier les fonctions des objets JavaScript pour exécuter son propre code.<br> + Pour plus d'informations, voir <a href="/fr/Add-ons/WebExtensions/Sharing_objects_with_page_scripts">Accès aux objets de script de page à partir de scripts de contenu</a>.</li> + <li><strong>Utilisez <code>window.eval()</code> dans les scripts de contenu avec prudence</strong><br> + Vous devez être très prudent lorsque vous exécutez du code dans le contexte d'une page. Une page Web malveillante pourrait tenter d'exécuter du code en exploitant l'utilisation de <code>window.eval()</code>. Il peut le faire, par exemple, en redéfinissant les objets que votre code pourrait vouloir évaluer.<br> + Pour plus d'informations, voir <a href="/fr/docs/Web/JavaScript/Reference/Global_Objects/eval#Don't_use_eval_needlessly!">Ne pas utiliser eval inutilement !</a></li> + <li><strong>Créez votre interface utilisateur avec des composants d'extension</strong><br> + Créez l'interface utilisateur de votre extension à l'aide des <a href="/fr/Add-ons/WebExtensions/user_interface">fonctions intégrées de l'interface utilisateur d'extension</a>, telles que les pages groupées, pageAction et les fenêtres contextuelles sur pageAction et browserAction. N'ajoutez pas d'éléments d'interface utilisateur, tels que des boutons ou des barres d'outils, directement aux pages Web. Si vous le faites, les scripts sur la page Web pourraient compromettre votre extension. Voir <a href="https://www.grepular.com/Keybase_Browser_Extension_Insecure">extension du navigateur Keybase Insecure</a> pour un exemple des problèmes potentiels.<br> + Si les composants de l'interface utilisateur standard ne suffisent pas, utilisez des iframes avec des <a href="/fr/docs/Web/HTTP/Basics_of_HTTP/Data_URIs">URL de données</a> pour éviter les empreintes digitales ou ajoutez des iframes au code d'extension afin qu'une page ne puisse pas interagir avec le contenu de votre interface utilisateur, comme les boutons.</li> + <li><strong>Ajouter eslint-plugin-no-unsanitized à ESLint</strong><br> + Si vous utilisez ESLint pour vérifier votre code d'extension, pensez à ajouter eslint-plugin-no-unsanitized. Ce plug-in de règles ESLint signale les instances où du code non-initié provenant d'API ou d'entrées utilisateur peut provoquer des problèmes.</li> + <li><strong>Ne pas injecter les chemins moz-extension directement</strong><br> + Lorsque les liens, les inclusions ou les images injectés incluent des chemins vers <code>moz-extension://{hash}</code> le script de suivi d'une page peut utiliser cette information pour <a href="https://en.wikipedia.org/wiki/Device_fingerprint">identifier</a> l'utilisateur, car le hachage (UUID) est unique à l'installation de l'extension et, par conséquent, l'utilisateur.<br> + La meilleure façon d'éviter ce problème est de suivre les conseils généraux concernant l'injection de contenu. Cependant, si vous pensez que l'injection de contenu est votre seule approche pratique, assurez-vous que les chemins moz-extension sont incorporés dans un iframe en utilisant une <a href="/fr/docs/Web/HTTP/Basics_of_HTTP/Data_URIs">URL de données</a> ou l'attribut <a href="/fr/docs/Web/HTML/Element/iframe#attr-srcdoc">srcdoc</a>.</li> + <li><strong>S'assurer que les bibliothèques tierces sont à jour</strong><br> + tierces réputées seront mises à jour lorsque des problèmes seront détectés. L'utilisation de bibliothèques tierces périmées (et potentiellement non sécurisées) est fortement déconseillée et, lorsqu'un risque important est identifié, l'AMO peut agir pour bloquer les extensions en utilisant le code obsolète.<br> + Par conséquent, utilisez toujours la dernière version des bibliothèques tierces lorsque vous créez votre extension. Ensuite, prenez connaissance des mises à jour de ces bibliothèques et soyez prêt à mettre à jour votre extension pour vous assurer qu'elle utilise une version à jour de la bibliothèque.</li> + <li><strong>Ne pas modifier les bibliothèques tierces</strong><br> + Les modifications apportées à une bibliothèque tierce sont un indicateur significatif qu'un développeur essaie de cacher du code malveillant dans un code généralement connu et approuvé. AMO va donc essayer de détecter les modifications apportées aux bibliothèques tierces et peut désactiver les extensions lorsqu'il trouve des modifications.</li> +</ul> diff --git a/files/fr/orphaned/mozilla/add-ons/webextensions/temporary_installation_in_firefox/index.html b/files/fr/orphaned/mozilla/add-ons/webextensions/temporary_installation_in_firefox/index.html new file mode 100644 index 0000000000..26f97b3cac --- /dev/null +++ b/files/fr/orphaned/mozilla/add-ons/webextensions/temporary_installation_in_firefox/index.html @@ -0,0 +1,56 @@ +--- +title: Installation temporaire dans Firefox +slug: Mozilla/Add-ons/WebExtensions/installation_temporaire_dans_Firefox +tags: + - WebExtensions +translation_of: Mozilla/Add-ons/WebExtensions/Temporary_Installation_in_Firefox +--- +<div>{{AddonSidebar}}</div> + +<p>Cet article décrit comment une extension<em> </em>développée peut être temporairement installée dans Firefox pour la tester et la déboguer. L'extension restera installée jusqu'à ce que vous redémarriez Firefox. Vous pouvez utiliser cette méthode avec tout type d'extension ne nécessitant pas de redémarrage, y compris les <a href="/fr/docs/Mozilla/Add-ons/Bootstrapped_extensions">extensions bootstrap</a> et les <a href="/fr/docs/Mozilla/Add-ons/SDK">extensions utilisant le SDK des Add-ons</a>.</p> + +<p>Notez que les utilisateurs <em>ne devraient pas</em> utiliser cette méthode pour installer des extensions dans Firefox. Les utilisateurs installeront des extensions en téléchargeant et en ouvrant des extensions packagées qui ont été signées par Mozilla. Pour savoir comment un développeur d'extension peut faire packager et signer son extension, consultez <a href="/fr/docs/Mozilla/Add-ons/WebExtensions/Publishing_your_WebExtension">Publier votre extension</a>.</p> + +<p>Pour installer une extension temporairement :</p> + +<ul> + <li>Ouvrez Firefox</li> + <li>Entrez "about:debugging" dans la barre de l'URL</li> + <li>Cliquez sur "Charger un module temporaire"</li> + <li>Ouvrez le répertoire de l'extension et sélectionnez n'importe quel fichier à l'intérieur de l'extension.</li> +</ul> + +<p>L'extension sera installée et restera installée jusqu'à ce que vous redémarriez Firefox.</p> + +<p>{{EmbedYouTube("cer9EUKegG4")}}</p> + +<h2 id="Recharger_une_extension_temporaire">Recharger une extension temporaire</h2> + +<p>À partir de Firefox 48, il y a un nouveau bouton appelé "Recharger" à côté du nom de l'extension dans about:debugging :</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/13462/reload.png" style="display: block; height: 544px; margin-left: auto; margin-right: auto; width: 848px;">Il fait ce qu'il dit :</p> + +<ul> + <li>Recharger les scripts persistants, tels que les <a href="/fr/Add-ons/WebExtensions/Anatomy_of_a_WebExtension#Background_scripts">scripts de fond d'écran</a></li> + <li>Analyser le fichier <code>manifest.json</code> de nouveau, pour prendre en compte les changements de <code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/manifest.json/permissions">permissions</a></code>, <code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/manifest.json/content_scripts">content_scripts</a></code>, <code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/manifest.json/browser_action">browser_action</a></code> ou d'autres clefs.</li> +</ul> + +<p>{{EmbedYouTube("NuajE60jfGY")}}</p> + +<div class="note"> +<p>Notez que dans Firefox 48 uniquement, "Recharger" ne met pas à jour le nom et la description de l'extension qui sont affichés dans about:debugging et about:addons. Ceci a été corrigé dans Firefox 49.</p> +</div> + +<h2 id="Utilisation_de_la_ligne_de_commande">Utilisation de la ligne de commande</h2> + +<p>Si vous utilisez déjà la ligne de commande pour le développement, consultez l'outil <a href="/fr/Add-ons/WebExtensions/Getting_started_with_web-ext">web-ext</a>. Il automatise temporairement l'installation et recharge automatiquement votre extension quand le code source a changé.</p> + +<h2 id="Détection_d'installation_temporaire">Détection d'installation temporaire</h2> + +<p>Votre extension peut détecter si elle a été installée depuis about:debugging au lieu d'avoir été téléchargée comme une extension packagée et signée depuis <a href="https://addons.mozilla.org">addons.mozilla.org</a>. Écoutez l'événement {{WebExtAPIRef("runtime.onInstalled")}} et vérifiez la valeur de <code>details.temporary</code>.</p> + +<h2 id="Limitations">Limitations</h2> + +<p>L'installation temporaire d'une extension n'imite pas complètement le comportement d'une extension signée. Par exemple, si l'extension fait des demandes d'autorisation de temps d'installation, celles-ci ne sont pas affichées dans le cadre du processus d'installation temporaire. De plus, des fonctions, comme le stockage local, persistent même si l'extension est supprimée et que le navigateur redémarre.</p> + +<p>Pour plus d'informations sur la façon de traiter ces situations, voir les <a href="/fr/Add-ons/WebExtensions/Test_permission_requests">demandes de permissions</a> et <a href="/fr/Add-ons/WebExtensions/Testing_persistent_and_restart_features">Test des fonctionnalités persistantes et de redémarrage</a>.</p> diff --git a/files/fr/orphaned/mozilla/add-ons/webextensions/test_permission_requests/index.html b/files/fr/orphaned/mozilla/add-ons/webextensions/test_permission_requests/index.html new file mode 100644 index 0000000000..815653592d --- /dev/null +++ b/files/fr/orphaned/mozilla/add-ons/webextensions/test_permission_requests/index.html @@ -0,0 +1,134 @@ +--- +title: Demandes de permission +slug: Mozilla/Add-ons/WebExtensions/demandes_de_permission +tags: + - Add-ons + - Extensions + - Guide + - Permissions + - Testing + - WebExtensions +translation_of: Mozilla/Add-ons/WebExtensions/Test_permission_requests +--- +<p>{{AddonSidebar}}</p> + +<p>Votre extension peut contenir deux types de demandes de permission : les demandes de temps d'installation et les demandes de permission d'exécution. Cette page explique comment vous pouvez tester la façon dont vos utilisateurs verront les demandes de ces permissions.</p> + +<h2 id="Comportement_de_l'octroi_de_la_permission_pendant_le_test"><strong>Comportement de l'octroi de la permission pendant le test</strong></h2> + +<p>Lorsque vous testez avec une extension non compressée utilisant <a href="/fr/docs/Tools/about:debugging"><kbd>about:debugging</kbd></a> ou <a href="/fr/Add-ons/WebExtensions/web-ext_command_reference">web-ext</a> et les permissions d'installation et d'exécution sont traitées comme suit :</p> + +<ul> + <li>Les demandes de permission de temps d'installation sont accordées en silence. Vous ne voyez pas les avertissements de permission que les utilisateurs verraient.</li> + <li><span class="tlid-translation translation"><span title="">L</span></span>es demandes d'autorisation d'exécution affichent la demande d'accrochecomme d'habitude. Ces permissions restent en place jusqu'à ce qu'elles soient révoquées programmatiquement par l'extension, l'extension est supprimée en utilisant <kbd>about:debugging</kbd> ou redémarrer Firefox.</li> +</ul> + +<h2 id="Observeer_ou_vérifier_des_demandes_de_permissions_lors_de_l'installation"><strong>Observeer ou vérifier des demandes de permissions lors de l'installation</strong></h2> + +<p>Vous suivez différents processus selon que vous souhaitez observer les demandes de permissions associées à une installation ou à une mise à niveau.</p> + +<h3 id="Demandes_de_permission_pour_l'installation_d'extensions"><strong>Demandes de permission pour l'installation d'extensions</strong></h3> + +<p>Pour afficher les avertissements de permission de temps d'installation que les utilisateurs voient lors de l'installation de votre extension et retester les demandes d'autorisation d'exécution, installez l'extension depuis son fichier *.xpi ou *.zip.</p> + +<p>Pour ce faire, vous devez utiliser un fichier *.xpi ou *.zip non signé :</p> + +<ul> + <li>donnez un identifiant à votre extension à l'aide de la clé d'<a href="/fr/docs/applications">applications</a> application.</li> + <li>exécuter les versions <a href="https://nightly.mozilla.org/"> Nightly</a> ou<a href="https://www.mozilla.org/firefox/developer/"> Developer Edition</a> de Firefox.</li> + <li>Définissez la préférence <kbd>about:config</kbd> <code>xpinstall</code><code>.signatures.required</code> à <code>false</code>.</li> +</ul> + +<p>Installez ensuite l'extension à l'aide de l'option <strong>Installer Add-on à partir du fichier</strong> dans le gestionnaire de modules complémentaires (<kbd>about:addons</kbd>). Au fur et à mesure que l'extension s'installe, la demande d'octroi des permissions s'affiche lors de l'installation, comme ceci :</p> + +<p><img alt="Example of the doorhanger displayed when installing an extension through about:addons" src="https://mdn.mozillademos.org/files/16538/installing_unpackaged_extension.png" style="height: 256px; width: 378px;"></p> + +<p>Notez que le message d'avertissement concerne une extension non signée ; ce message ne s'affiche pas pendant l'installation depuis <a href="http://addons.mozilla.org">addons.mozilla.org</a>.</p> + +<h3 id="Demande_de_permission_pour_la_mise_à_niveau_de_l'extension"><strong>Demande de permission pour la mise à niveau de l'extension</strong></h3> + +<div class="blockIndicator note"> +<p>Pour plus de détails sur la façon de fournir des mises à jour d'extension Web lorsque vous hébergez vous-même votre extension, voir <a href="/fr/Add-ons/Updates">Mises à jour</a>.</p> +</div> + +<p>Pour afficher les avertissements d'autorisation de temps d'installation que les utilisateurs voient lorsque votre extension est mise à niveau par Firefox et retester les demandes d'autorisation d'exécution, vous installez l'extension depuis son fichier.xpi posté sur un serveur HTTP ou HTTPS.</p> + +<p>Vous pouvez utiliser un serveur HTTP (tel qu'un simple <a href="/fr/docs/Apprendre/Common_questions/configurer_un_serveur_de_test_local">serveur localhost python</a>) ou un serveur HTTPS. Cependant, votre serveur HTTPS doit avoir un certificat vérifiable, que Firefox peut accepter automatiquement ; vous ne pouvez pas utiliser un certificat auto-signé. Si vous voulez tester à partir d'un serveur HTTPS mais n'en avez pas, les pages GitHub sont une option que vous pouvez utiliser.</p> + +<p>Pour effectuer le test, vous devrez :</p> + +<ul> + <li>déterminer l'adresse du serveur HTTP ou HTTPS où vous pouvez héberger les fichiers.</li> + <li>utilisez la clé des <a href="/fr/docs/applications">applications</a> manifest.json pour : + <ul> + <li>donnez un identifiant à votre poste, si vous ne l'avez pas déjà fait.</li> + <li>définir l'URL de mise à jour où vous hébergerez votre <a href="/fr/Add-ons/Updates">manifest de mise à jour</a>. Par exemple : + <pre class="brush: json">… +"applications": { + "gecko": { + "strict_min_version": "54.0a1", + "update_url": "<a href="https://your-account.github.io/webextensions/upgrade.json">https://your-account.github.io/webextensions/upgrade.json</a>", + "id": "<a href="mailto:test@your-address.com">test@your-address.com</a>" + } +}, +…</pre> + </li> + </ul> + </li> + <li>si nécessaire, <a href="/fr/Add-ons/WebExtensions/Package_your_extension_">créez un paquet</a> contenant votre extension originale.</li> + <li>mettre à jour votre extension et ajouter les détails des nouvelles permissions requises au fichier manifest.json, sans oublier de mettre à jour le numéro de version. Créez un paquet contenant votre extension mise à jour. + <div class="blockIndicator warning">Si les paquets ont été générés avec des extensions.zip, changez-les en.xpi, sinon votre navigateur pourrait essayer de télécharger plutôt que d'installer l'extension.</div> + </li> +</ul> + +<ul> + <li>Créer la <a href="/fr/Add-ons/Updates">mise à jour du manifest</a> avec les détails des deux versions d'extension, qui devrait être similaire à celui-ci : + + <pre class="brush: json">{ + "addons": { + "test@your-address.com": { + "updates": [ + { "version": "n.0", "update_link": "https://your-account.github.io/webextensions/your-extension-1.0.xpi" }, + { "version": "n+1.0", "update_link": "https://your-account.github.io/webextensions/your-extension-2.0.xpi" } + ] + } + } +}</pre> + </li> + <li>télécharger les deux paquets d'extension et les mises à jour manifestes sur votre serveur HTTP ou HTTPS.</li> + <li>exécuter les versions <a href="https://nightly.mozilla.org/">Nightly</a> ou<a href="https://www.mozilla.org/firefox/developer/"> Developer Edition</a> de Firefox.</li> + <li>dans <kbd>about:config</kbd> : + <ul> + <li>Définissez la préférence <code>xpinstall.signatures.required</code> à <code>false</code>.</li> + <li>Si vous utilisez <a href="https://nightly.mozilla.org/">Nightly</a> et hébergez votre mise à jour sur un serveur HTTP, créez et définissez les préférences <code>extensions.checkUpdateSecurity</code> et <code>extensions.install.requireSecureOrigin</code> à <code>false</code>. Pour faire ceci : + <ul> + <li>entrez le nom de la préférence dans la zone de recherche.</li> + <li>cliquez sur<strong> Ajouter</strong>.<br> + <img alt="Create a new about:config item in Nightly" src="https://mdn.mozillademos.org/files/16541/preference_create_2.png"></li> + <li>basculez la préférence pour la mettre à false.<br> + <img alt="Toggle the boolean value of a about:config item in Nightly" src="https://mdn.mozillademos.org/files/16542/preference_toggle_2.png" style="height: 147px; width: 987px;"></li> + </ul> + </li> + </ul> + </li> + <li>ouvrez le lien vers le premier fichier XPI pour l'installer.</li> + <li>Ouvrez <kbd>about:addons</kbd>, cliquez sur l'icône cranter et cliquez sur <strong>Check for Updates</strong>.</li> + <li>vous obtiendrez un message d'avertissement de permission, similaire à celui ci-dessous, détaillant les permissions supplémentaires demandées :<br> + <img alt="Example of the doorhanger displayed when testing permission requests for an extension upgrade" src="https://mdn.mozillademos.org/files/16545/upgrade_install_2.png" style="height: 215px; width: 376px;"></li> +</ul> + +<div class="blockIndicator note"> +<p>Si la mise à niveau n'a pas lieu, recherchez dans les logs <code>addons.update-checker</code> de la <a href="/en-US/docs/Tools/Browser_Console">console du navigateur</a>. Toute erreur rencontrée au cours du processus de mise à niveau sera signalée dans le journal de logs.</p> +</div> + +<h2 id="Re-tester_les_permissions_d'éxécution_octroyées"><strong>Re-tester les permissions d'éxécution octroyées</strong></h2> + +<p>Pour tester à nouveau les permissions d'exécution de votre extension et son comportement post-installation, vous avez deux choix :</p> + +<ul> + <li>supprimez l'extension en utilisant <kbd>about:debugging</kbd> et réinstallez-la, ou redémarrez Firefox.<br> + <img alt="Highlights the location of the remove option for a web extension in about:debugging" src="https://mdn.mozillademos.org/files/16563/reload_to_retest.png" style="height: 403px; width: 1229px;"></li> + <li>si vous utilisez <a href="https://nightly.mozilla.org/">Nightly</a> ou<a href="https://www.mozilla.org/firefox/developer/"> Developer Edition</a>, utilisez l'extension web des <a href="https://github.com/rpl/dev-webext-permissions-manager">extensions permission Manager</a> pour supprimer les permissions.</li> +</ul> + +<p>Vous pouvez ensuite réexécuter l'extension et toutes les demandes de permissions d'exécution seront affichées comme si l'extension était exécutée pour la première fois.</p> diff --git a/files/fr/orphaned/mozilla/add-ons/webextensions/testing_persistent_and_restart_features/index.html b/files/fr/orphaned/mozilla/add-ons/webextensions/testing_persistent_and_restart_features/index.html new file mode 100644 index 0000000000..92e16e408d --- /dev/null +++ b/files/fr/orphaned/mozilla/add-ons/webextensions/testing_persistent_and_restart_features/index.html @@ -0,0 +1,124 @@ +--- +title: Test des fonctionnalités persistantes et de redémarrage +slug: >- + Mozilla/Add-ons/WebExtensions/test_des_fonctionnalites_persistantes_et_de_redemarrage +tags: + - Comment + - Débutant + - Développement + - Intermédiaire + - WebExtensions + - add-on + - test + - web-ext +translation_of: Mozilla/Add-ons/WebExtensions/Testing_persistent_and_restart_features +--- +<p>{{AddonSidebar}}</p> + +<p>Lors du test de votre extension, vous pouvez remarquer que certaines fonctionnalités se réinitialisent ou cessent de fonctionner lorsque vous chargez une version mise à jour ou après le redémarrage de Firefox. Par exemple, vous pouvez utiliser le stockage local et remarquer que les données précédemment sauvegardées disparaissent lorsque vous rechargez votre extension. Alternativement, vous pouvez tester votre extension à travers un redémarrage de Firefox, mais notez que votre extension ne reste pas chargée.</p> + +<p>Cet article explique pourquoi vous voyez ces comportements. Il vous montre ensuite ce qu'il faut faire pour vous assurer que les fonctions persistent lorsque vous rechargez votre extension et comment configurer pour tester le comportement de redémarrage.</p> + +<p>Avant de regarder comment Firefox traite l'extension que vous testez; Il y a quelques fonctionnalités de Firefox et des extensions dont vous devez être conscient : l'ID du module complémentaire et les profils Firefox.</p> + +<h2 id="Qu'est-ce_qu'un_ID_complémentaire">Qu'est-ce qu'un ID complémentaire ?</h2> + +<p>L'ID de module complémentaire est utilisé pour identifier de manière unique chaque extension et à son tour, cet ID est utilisé pour lier une extension à certaines fonctionnalités des API WebExtension. Ces fonctionnalités sont:</p> + +<ul> + <li>{{WebExtAPIRef("storage.managed")}} — identifie les données comme appartenant à l'extension par son ID add-on.</li> + <li>{{WebExtAPIRef("storage.sync")}} — identifie les données comme appartenant à l'extension par son ID complémentaire.</li> + <li>{{WebExtAPIRef("identity.getRedirectURL")}} — l'URL de redirection inclut l'ID complémentaire de l'extension.</li> + <li><a href="/fr/Add-ons/WebExtensions/Native_messaging">Native messaging </a>— l'application native identifie les extensions qui peuvent communiquer avec elles par leur ID complémentaire.</li> + <li>{{WebExtAPIRef("pkcs11")}} — le module PKCS #11 identifie les extensions qui peuvent communiquer avec lui par leur ID complémentaire.</li> + <li>{{WebExtAPIRef("runtime.onMessageExternal")}} — une extension envoie des messages à un autre poste en utilisant son ID complémentaire comme adresse.</li> + <li>{{WebExtAPIRef("runtime.onConnectExternal")}} — une extension demande une connexion avec une extension par l'ID d'extension de l'autre extension.</li> + <li>{{WebExtAPIRef("browserAction")}} — la position sauvegardée du bouton est identifiée comme appartenant à l'extension en fonction de son ID add-on.</li> +</ul> + +<p>Une extension peut se voir attribuer un ID complémentaire en utilisant la clé <code>"applications"</code> du fichier manifest.json.</p> + +<pre class="brush: json">"applications": { + "gecko": { + "id": "addon@example.com", + } + }</pre> + +<p>Si l'extension n'a pas d'ID de module défini avec la clé <code>"applications"</code> , il reçoit un ID de module complémentaire via l'un des éléments suivants:</p> + +<ul> + <li>Si l'extension est soumise à l'AMO et signée, elle reçoit un identifiant lorsqu'elle est signée.</li> + <li>Si l'extension est chargée à l'aide de Load Temporary Add-on dans about:debugging un ID complémentaire temporaire lui est affecté.<br> + <img alt="Example of a temporarily loaded extension showing its various IDs" src="https://mdn.mozillademos.org/files/15774/Temporary_extensions.png" style="height: 289px; width: 837px;"></li> +</ul> + +<p>Vous remarquerez un ID supplémentaire dans l'image ci-dessus, l'UUID interne. C'est un identifiant unique donné à l'extension lors de l'installation. Il est utilisé pour définir l'emplacement de stockage des ressources incluses dans l'extension et identifier les données d'un poste dans <a href="/fr/docs/Web/API/Window/localStorage">window.localStorage</a> ou <a href="/fr/docs/Web/API/IndexedDB_API">indexedDB</a>. Cependant, vous n'avez pas besoin de connaître sa valeur. Son utilisation dans <code>window.localStorage</code> ou <code>indexedDB</code> est transparente et pour accéder aux ressources incluses dans l'extension, vous utilisez {{WebExtAPIRef("runtime.getURL")}}, qui renvoie le chemin d'accès aux ressources. De plus, étant donné qu'il est unique à chaque installation, il ne fournit pas d'ID pouvant être utilisé à d'autres fins.</p> + +<h2 id="Qu'est-ce_qu'un_profil_Firefox">Qu'est-ce qu'un profil Firefox?</h2> + +<p>Les données qui définissent la manière dont l'utilisateur a configuré Firefox, ainsi que les informations générées lors de la navigation sur le Web, telles que l'historique et les cookies, sont stockées dans un dossier spécial, appelé <a href="https://support.mozilla.org/fr/kb/profils-ou-firefox-conserve-donnees-utilisateur">profile</a>. En plus des cookies, le profil contient du stockage local et d'autres contenus liés au profil.</p> + +<h2 id="Comportement_d'extension_dans_Firefox">Comportement d'extension dans Firefox</h2> + +<p>Lorsque vous développez une extension, en supposant que vous n'avez pas défini d'ID complémentaire à l'aide de la clé <code>"applications"</code>, le comportement par défaut dans Firefox est le suivant :</p> + +<ul> + <li>lorsque vous utilisez la fonction Load Temporary Add-on dans environ: le débogage de votre extension se voit attribuer un nouvel ID de module complémentaire chaque fois que vous le chargez.</li> + <li>Lorsque vous utilisez Web-ext, en plus d'obtenir un nouvel ID complémentaire chaque fois que vous lancez une extension, il est également lancé dans un nouveau profil.</li> + <li>lorsqu'une extension temporairement chargée est déchargée, le stockage local, tel que celui utilisé par <code>storage.local</code>, <code>window.localStorage</code>, et <code>indexedDB</code>, est supprimé.</li> + <li>Lorsque vous arrêtez Firefox, les extensions temporairement chargées sont déchargées et ne sont donc pas disponibles lorsque Firefox redémarre. Cela inclut les extensions chargées avec Load Temporary Add-on dans about:debugging et web-ext.</li> +</ul> + +<p>Les conséquences de ce comportement, lors du rechargement d'une extension, sont les suivantes :</p> + +<ul> + <li>toutes les données dans le stockage local ou de synchronisation sont perdues.</li> + <li>toute URL de redirection devient invalide.</li> + <li>l'extension ne pourra plus communiquer avec des applications natives ou un module PKCS #11.</li> + <li>il ne sera plus possible d'envoyer des messages ou de créer des connexions entre les extensions.</li> + <li>vous ne pouvez pas tester le comportement de l'extension si Firefox est arrêté et redémarré.</li> + <li>Les positions de <code>browserAction</code> ne sont pas reportées</li> +</ul> + +<h2 id="Que_dois-je_faire_pour_m'assurer_de_pouvoir_tester_mon_extension">Que dois-je faire pour m'assurer de pouvoir tester mon extension ?</h2> + +<p>Pour que votre extension se comporte comme une extension signée pendant les tests de développement, utilisez les techniques suivantes :</p> + +<ul> + <li>pour vous assurer qu'une extension peut utiliser des fonctionnalités dépendantes de l'ID complémentaire entre les rechargements, telles que le stockage local ou la communication d'application native : + <ul> + <li>définir un ID de module complémentaire à l'aide de la clé <code>"applications"</code> dans le fichier manifest.json de l'extension.</li> + <li>lorsque vous utilisez web-ext, assurez-vous d'utiliser le même profil.</li> + </ul> + </li> + <li>pour vous assurer d'utiliser le même profil pour plusieurs tests d'une extension lors de l'utilisation de web-ext : + <ul> + <li>en option, utilisez <a href="https://support.mozilla.org/fr/kb/utiliser-gestionnaire-profils-creer-supprimer-profils">Profile Manager</a> pour créer un nouveau profil Firefox.</li> + <li>rouvez le chemin vers votre nouveau profil ou le profil Firefox par défaut en suivant les instructions dans <a href="https://support.mozilla.org/fr/kb/profils-ou-firefox-conserve-donnees-utilisateur#w_trouver-votre-profil-sans-ouvrir-firefox">Comment trouver mon profil ?</a></li> + <li>ajoutez le chemin du profil Firefox à la commande <code>web-ext run</code> comme ceci :<br> + <code>web-ext run --firefox-profile [A PATH TO A FIREFOX PROFILE] --keep-profile-changes</code></li> + </ul> + </li> + <li>pour préserver les données <code>storage.local</code>, l'accès à <code>window.localStorage</code> ou les données <code>indexedDB</code> lors de la suppression d'un add-on temporaire (par exemple entre deux redémarrages du navigateur) : + <ul> + <li>allez à about:config et réglez <code>extensions.webextensions.keepStorageOnUninstall</code> et <code>extensions.webextensions.keepUuidOnUninstall</code> à <code>true</code>.</li> + </ul> + </li> + <li>pour tester le comportement de redémarrage : + <ul> + <li>définir un ID de module complémentaire à l'aide de la clé <code>"applications"</code> dans le fichier manifest.json de l'extension.</li> + <li>installez les éditions <a href="https://www.mozilla.org/firefox/nightly/all/">Nightly</a> ou <a href="https://www.mozilla.org/firefox/developer/">Developer</a> de Firefox. Remarque : Vous pouvez également utiliser les versions <a href="https://wiki.mozilla.org/Add-ons/Extension_Signing#Unbranded_Builds">unbranded Beta et Release builds</a>.</li> + <li>allez à about:config et définissez <code>xpinstall.signatures.required</code> à <code>false</code>.</li> + <li>Compressez votre extension dans un fichier ZIP <a href="/fr/Add-ons/WebExtensions/web-ext_command_reference#web-ext_build">using web-ext</a> ou en <a href="/fr/Add-ons/WebExtensions/Publishing_your_WebExtension#1._Zip_up_your_extension's_files">compressant manuellement</a>.</li> + <li>installez votre extension en utilisant Install Add-on From File dans le gestionnaire de modules complémentaires (about:addons).<br> + Remarque: N'oubliez pas que vous devrez recharger votre extension chaque fois que vous la modifiez.<br> + Remarque: Si vous ne définissez pas l'ID du module complémentaire, lorsque vous chargez l'extension, vous obtenez une erreur comme celle-ci : + <p><img alt="Example of the message displayed when an add-on ID cannot be found for an extension" src="https://mdn.mozillademos.org/files/15775/ID_failure.png" style="height: 163px; width: 429px;"></p> + + <p>avec une erreur correspondante dans la console du navigateur .</p> + + <p><img alt="Example of the message displayed in the browser console when an add-on ID cannot be found for an extension" src="https://mdn.mozillademos.org/files/15776/ID_failure_console.png" style="height: 116px; width: 1167px;"></p> + </li> + </ul> + </li> +</ul> diff --git a/files/fr/orphaned/mozilla/add-ons/webextensions/user_experience_best_practices/index.html b/files/fr/orphaned/mozilla/add-ons/webextensions/user_experience_best_practices/index.html new file mode 100644 index 0000000000..bab0b4a22a --- /dev/null +++ b/files/fr/orphaned/mozilla/add-ons/webextensions/user_experience_best_practices/index.html @@ -0,0 +1,190 @@ +--- +title: Expérience utilisateur bonnes pratiques +slug: Mozilla/Add-ons/WebExtensions/Experience_utilisateur_bonnes_pratiques +tags: + - Add-ons + - Extensions + - Guide + - UI + - UX +translation_of: Mozilla/Add-ons/WebExtensions/User_experience_best_practices +--- +<div>{{AddonSidebar()}}</div> + +<p>Vous voudrez vous assurer que vos utilisateurs ont une excellente expérience en utilisant votre extension—quand vous le ferez, les bonnes critiques et évaluations suivront sur <a href="https://addons.mozilla.org">addons.mozilla.org</a> (AMO).</p> + +<p dir="ltr">Si vous êtes nouveau sur le sujet de rendre un logiciel utilisable. un bon point de départ pour démarrer est l'<a href="https://en.wikipedia.org/wiki/Heuristic_evaluation#Nielsen">Heuristique d'usabilité</a> de Jakob Nielsen. Nous vous recommandons, que vous soyez nouveau pour le développement d'extension ou pour un professionnel expérimenté, en utilisant les Heuristiques de Nielsen comme une liste de contrôle du <a href="#Test_test_and_then_test_again">test de votre expérience utilisateur (UX)</a>.</p> + +<p>Nous présentons ici les six étapes à suivre pour créer des fonctionnalités Firefox et UX spécifiques afin que vous puissiez créer une extension qui séduise, informe, enchante et fidélise vos utilisateurs.</p> + +<p>En plus des étapes décrites ici, votre extension doit suivre les règles d'<a href="https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/AMO/Policy/Reviews">Add-on Policies</a>, qui incluent la transparence avec les utilisateurs sur la sécurité, la confidentialité et le contrôle de l'utilisateur.</p> + +<h2 id="1._Gardez_le_cap">1. Gardez le cap</h2> + +<p dir="ltr">Les meilleures extensions Firefox offrent aux utilisateurs une nouvelle fonctionnalité ou capacité qui répond à un besoin, qu'il soit plus intelligent, plus efficace ou plus agréable de navigation. Idéalement, votre extension permet à l'utilisateur d'économiser du temps, de l'argent ou de la frustration.</p> + +<p>Une extension est meilleure lorsqu'elle est centrée autour d'un cas d'utilisation principal et qu'elle s'adresse à ce cas d'utilisation aussi bien que possible pour le public cible :</p> + +<ul> + <li>Il doit ajouter une fonction ou un ensemble de fonctions étroitement liées au navigateur, modifier une fonction du navigateur ou modifier des pages Web.</li> + <li>Déterminez si vous y êtes parvenu en demandant si vous pouvez facilement communiquer les caractéristiques et le but de la prolongation en trois phrases (courtes) ou moins.</li> +</ul> + +<h2 id="2._Donner_aux_utilisateurs_ce_dont_ils_ont_besoin_là_où_ils_en_ont_besoin">2. Donner aux utilisateurs ce dont ils ont besoin, là où ils en ont besoin</h2> + +<p dir="ltr">Choisir la bonne façon, ou la combinaison de plusieurs façons, de rendre la fonctionnalité de votre extension disponible pour l'utilisateur peut avoir un effet significatif sur la convivialité. Poser quelques questions simples sur les fonctionnalités de votre poste peut vous guider rapidement vers les bons choix :</p> + +<h3 dir="ltr" id="Est-ce_que_mon_extension_fonctionne_sur_la_plupart_des_sites_et_pages_web">Est-ce que mon extension fonctionne sur la plupart des sites et pages web ?</h3> + +<p dir="ltr">Si votre extension fournit à l'utilisateur des fonctionnalités qu'il peut utiliser sur presque tous les sites Web ou pages, donnez-lui accès à partir d'un <strong><a href="https://developer.mozilla.org/en-US/Add-ons/WebExtensions/user_interface/Browser_action">bouton de la barre d'outils</a> </strong><strong>en utilisant <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/browserAction">l'action du navigateur.</a></strong></p> + +<ul dir="ltr"> + <li>Cela peut inclure l'accès à votre éditeur d'images ou l'ouverture d'une page de votre site Web.</li> +</ul> + +<p dir="ltr"><img alt="" src="https://mdn.mozillademos.org/files/12966/browser-action.png" style="display: block; height: 387px; margin-left: auto; margin-right: auto; width: 782px;"></p> + +<p dir="ltr">Lorsque vous voulez donner l'accès à l'utilisateur à plusieurs fonctions, vous pouvez ajouter <a href="/en-US/Add-ons/WebExtensions/Popups">popup</a> au bouton (un popup apparaît comme un crochet de porte qui s'ouvre lorsque l'utilisateur sélectionne le bouton d'action du navigateur).</p> + +<h3 dir="ltr" id="Est-ce_que_mon_extension_ne_fonctionne_que_pour_certains_sites_et_pages_web">Est-ce que mon extension ne fonctionne que pour certains sites et pages web ?</h3> + +<p dir="ltr"> </p> + +<p dir="ltr">Si votre extension fournit à l'utilisateur des fonctionnalités qu'il peut utiliser sur presque tous les sites Web ou pages, donnez-lui accès à partir d'un <strong><a href="https://developer.mozilla.org/en-US/Add-ons/WebExtensions/user_interface/Browser_action">bouton de la barre d'outils</a> </strong><strong>en utilisant <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/browserAction">l'action du navigateur.</a></strong></p> + +<ul dir="ltr"> + <li>Cela peut inclure l'accès à votre éditeur d'images ou l'ouverture d'une page de votre site Web.</li> +</ul> + +<p dir="ltr"> </p> + +<p dir="ltr"><img alt="" src="https://mdn.mozillademos.org/files/12960/page-action.png" style="display: block; height: 262px; margin-left: auto; margin-right: auto; width: 850px;"></p> + +<p dir="ltr">Lorsque vous souhaitez donner accès à plusieurs fonctions à l'utilisateur, vous pouvez ajouter une fenêtre contextuelle au bouton.</p> + +<h3 dir="ltr" id="Mon_extension_doit-elle_afficher_des_informations_ou_proposer_des_actions_en_parallèle_avec_des_pages_web">Mon extension doit-elle afficher des informations ou proposer des actions en parallèle avec des pages web ?</h3> + +<p dir="ltr">Si votre extension contient des informations ou des actions auxquelles un utilisateur souhaite accéder immédiatement lorsqu'il consulte une page Web, <strong>utilisez une <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface/Sidebars">barre latérale</a></strong>.</p> + +<ul dir="ltr"> + <li>Il peut s'agir de notes que l'utilisateur peut faire sur le contenu d'une page ou d'une fonction offrant diverses substitutions de polices pour améliorer la lisibilité.</li> +</ul> + +<p dir="ltr"><img alt="" src="https://mdn.mozillademos.org/files/14825/bookmarks-sidebar.png" style="display: block; height: 761px; margin-left: auto; margin-right: auto; width: 728px;"></p> + +<h3 dir="ltr" id="Mon_extension_offre-t-elle_des_fonctionnalités_spécifiques_au_contenu_de_la_page_ou_à_d'autres_fonctions_du_navigateur">Mon extension offre-t-elle des fonctionnalités spécifiques au contenu de la page ou à d'autres fonctions du navigateur ?</h3> + +<p dir="ltr">Si votre extension offre des fonctionnalités auxquelles l'utilisateur peut vouloir accéder en contexte, <strong>ajoutez-les à un <a href="/en-US/Add-ons/WebExtensions/user_interface/Context_menu_items">menu contextuel</a></strong> approprié.</p> + +<ul dir="ltr"> + <li>Cela peut inclure l'accès à un éditeur d'image dans le menu contextuel de l'image ou des fonctions de copie étendues dans le menu contextuel pour le contenu de la page sélectionnée.</li> +</ul> + +<p dir="ltr"><img alt="Example of content menu items added by a WebExtension, from the context-menu-demo example" src="https://mdn.mozillademos.org/files/15051/context_menu_example.png" style="display: block; height: 587px; margin-left: auto; margin-right: auto; width: 573px;"></p> + +<h3 dir="ltr" id="Est-ce_que_mon_poste_possède_des_paramètres_que_l'utilisateur_peut_régler">Est-ce que mon poste possède des paramètres que l'utilisateur peut régler ?</h3> + +<p dir="ltr">Si votre extension permet à l'utilisateur de modifier et d'enregistrer les paramètres qui affectent le comportement de l'extension, utilisez une <strong><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface/Options_pages">page d'options</a> pour fournir un lien Préférences standard vers les paramètres </strong>du gestionnaire des extensions</p> + +<p dir="ltr"><img alt="Typical preferences button, to access an extension's settings, from the Add-on Manager" src="https://mdn.mozillademos.org/files/15271/add-on-manager-preferences-button.png" style="display: block; height: 80px; margin-left: auto; margin-right: auto; width: 732px;"></p> + +<div class="note"> +<p dir="ltr">Dans le système d'exploitation Windows, le bouton "Préférences" est appelé "Options".</p> +</div> + +<h3 dir="ltr" id="Est-ce_que_mon_extension_a_besoin_de_collecter_beaucoup_d'informations_ou_d'afficher_du_contenu_en_plus_des_onglets_actuels">Est-ce que mon extension a besoin de collecter beaucoup d'informations ou d'afficher du contenu en plus des onglets actuels ?</h3> + +<p dir="ltr">Lorsque votre extension a besoin de rassembler ou d'afficher des quantités importantes d'informations (plus qu'il n'est nécessaire pour une <a href="/en-US/docs/Web/API/Window/alert">alerte</a> ou qu'un formatage supplémentaire serait avantageux) <strong>utilisez <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface/Bundled_web_pages">pages webs groupées</a> pour fournir des formulaires et un contenu similaire.</strong></p> + +<p dir="ltr"><img alt="Example of a simple bundled page displayed as a detached panel." src="https://mdn.mozillademos.org/files/15073/bundled_page_as_panel.png" style="display: block; height: 445px; margin-left: auto; margin-right: auto; width: 680px;"></p> + +<h3 dir="ltr" id="Est-ce_que_mon_extension_essaie_d'aider_l'utilisateur_à_trouver_des_pages_web_ou_du_contenu">Est-ce que mon extension essaie d'aider l'utilisateur à trouver des pages web ou du contenu ?</h3> + +<p dir="ltr">Si votre extension inclut une fonctionnalité permettant de localiser des pages Web ou du contenu, par exemple en proposant une recherche spécifique à un site, utilisez les <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface/Omnibox">suggessions de la barre d'adresse</a> pour fournir ces recommandations.</p> + +<p dir="ltr"><img alt="Example showing the result of the firefox_code_search WebExtension's customization of the address bar suggestions." src="https://mdn.mozillademos.org/files/15075/omnibox_example_full.png" style="display: block; height: 325px; margin-left: auto; margin-right: auto; width: 679px;"></p> + +<h3 dir="ltr" id="Mon_extension_offre-t-elle_des_outils_pour_les_développeurs">Mon extension offre-t-elle des outils pour les développeurs ?</h3> + +<p dir="ltr">Si vous fournissez des outils pour les développeurs, ajoutez-les aux outils de développement Firefox en utilisant les <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface/devtools_panels">panneaux des outils de développement</a>.</p> + +<h2 dir="ltr" id="3._Tenir_l'utilisateur_informé">3. Tenir l'utilisateur informé</h2> + +<p dir="ltr">S'assurer que l'utilisateur sait ce qui va se passer, ce qui se passe et ce qui s'est passé dans votre extension est un élément essentiel pour établir la confiance et assurer un utilisateur heureux.</p> + +<h3 dir="ltr" id="Dites_à_l'utilisateur_ce_qui_va_se_passer_avant_qu'il_ne_se_produise.">Dites à l'utilisateur ce qui va se passer, avant qu'il ne se produise.</h3> + +<p dir="ltr">Les utilisateurs doivent comprendre ce qui se passe lorsqu'ils cliquent sur un bouton :</p> + +<ul dir="ltr"> + <li>Fournissez une étiquette de bouton significative et descriptive.</li> + <li>Fournissez des infobulles qui décrivent l'action que le bouton va effectuer..</li> + <li>Ne mettez <strong>pas</strong> le nom de l'extension seul dans l'infobulle, à moins qu'il ne soit descriptif de l'action que le bouton va effectuer..</li> + <li><strong>N'</strong>utilisez <strong>pas</strong> l'infobulle pour d'autres types d'informations telles que des statistiques détaillées sur votre extension. Gardez le contenu de l'infobulle simple et concentrez-vous sur ce qui se passera lorsque l'utilisateur clique sur le bouton.</li> +</ul> + +<h3 dir="ltr" id="Si_quelque_chose_est_vraiment_important_et_que_l'utilisateur_n'en_est_pas_conscient_informez-le.">Si quelque chose est <em>vraiment</em> important et que l'utilisateur n'en est pas conscient, informez-le.</h3> + +<p>Si votre extension a terminé une tâche d'arrière-plan critique et de longue durée, utilisez les <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface/Notifications">notifications</a> natives du système d'exploitation pour mettre à jour l'utilisateur lorsque la tâche est terminée. Ceci peut être utile lorsque l'utilisateur ne se concentre pas sur l'extension ou le navigateur, une fois la tâche terminée.</p> + +<p>Toutefois, utilisez les avis avec parcimonie. S'il suffit que l'utilisateur découvre qu'un processus est terminé lorsqu'il revient au navigateur ou à l'extension, <strong>n'</strong>utilisez pas de notifications.</p> + +<p dir="ltr"><img alt="" src="https://mdn.mozillademos.org/files/14043/notify-shadowed.png" style="display: block; height: 334px; margin-left: auto; margin-right: auto; width: 700px;"></p> + +<h3 dir="ltr" id="Utiliser_les_badges_browserAction_avec_parcimonie">Utiliser les badges browserAction avec parcimonie</h3> + +<p>Pour informer les utilisateurs des événements importants, vous pouvez <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/browserAction/setBadgeText">ajouter un badge</a> au dessus de l'icône de la barre <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/browserAction">browserAction</a>. Faites-le avec parcimonie - n'utilisez pas de badges pour fournir des mises à jour régulières ou persistantes de l'état.</p> + +<p>Lorsqu'il s'agit de <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/browserAction/setBadgeBackgroundColor">coloriser un badge</a>, il est recommandé d'utiliser l'une des quatre couleurs pour les notifications de gravité différente :</p> + +<ul> + <li>Décontracté : bleu</li> + <li>Succès : vert</li> + <li>Attention : jaune</li> + <li>Erreur : rouge</li> +</ul> + +<div class="note"> +<p dir="ltr">L'utilisation des couleurs Firefox est suggérée, pour plus de détails voir <a href="http://design.firefox.com/photon/visuals/color.html">Firefox Colors</a>. Cependant, pour des raisons de compatibilité avec <a href="https://developer.chrome.com/extensions/browserAction#icon">Chrome</a> et Opera, nous prenons en charge toutes les couleurs que vous souhaitez utiliser.</p> +</div> + +<h2 dir="ltr" id="4._Soyez_Firefoxy_dans_l'apparence_et_la_convivialité">4. Soyez Firefoxy dans l'apparence et la convivialité</h2> + +<p>Vos utilisateurs ont choisi Firefox pour une raison, peut-être pour plusieurs raisons, alors faites correspondre l'apparence de votre extension à celle de Firefox en utilisant le <a href="http://design.firefox.com/photon">Firefox Photon Design System</a>.</p> + +<p>En suivant Photon, vous vous assurerez que votre extension s'intègre à l'expérience Firefox et la rendra plus facile à utiliser pour les utilisateurs.</p> + +<h2 dir="ltr" id="5._Grande_expérience_d'intégration">5. Grande expérience d'intégration</h2> + +<p dir="ltr">Les premières minutes après l'installation de votre extension peuvent être cruciales pour son succès. Votre nouvel utilisateur doit savoir par où commencer et comment utiliser les fonctions de l'extension de votre navigateur.</p> + +<p dir="ltr">Fournir une page d'accueil qui donne aux utilisateurs les informations essentielles dont ils ont besoin pour commencer. Rédigez des informations brèves et précises et proposez des options de configuration simples, le cas échéant. Pour plus d'informations sur la création d'une page d'embarquement, voir <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/onboarding_upboarding_offboarding_best_practices">Bonnes pratiques pour les utilisateurs d'embarquement, d'embarquement, et de débarquement</a>.</p> + +<p dir="ltr">Si l'utilisateur saute la page d'embarquement, assurez-vous que votre poste est prêt à être utilisé immédiatement après l'installation. Il devrait être optimisé pour son cas d'utilisation principal et fonctionner comme prévu pour la plupart des utilisateurs sans avoir besoin de personnalisation.</p> + +<h2 dir="ltr" id="6._Testez_testez_puis_testez_à_nouveau">6. Testez, testez, puis testez à nouveau</h2> + +<p>Le test est une partie essentielle de la création d'un UX exceptionnel pour votre extension. Il y a deux aspects clés du test de votre UX:</p> + +<ol> + <li>Effectuez des tests sur plusieurs appareils et plates-formes pour vous assurer que votre extension fonctionne et qu'elle fonctionne correctement dans le plus grand nombre d'endroits possible. Cela inclut la prise en compte de facteurs tels que la taille de l'écran et la résolution de l'utilisateur —simplement parce que votre extension est bonne et facile à utiliser sur votre écran de bureau ne signifie pas qu'elle fonctionne aussi bien sur un écran d'ordinateur portable, ou, effectivement, vice et versa.</li> + <li>Testez avec autant d'utilisateurs que possible. Ne supposez pas que vous connaissez votre auditoire, car les antécédents et l'expérience des gens peuvent faire une énorme différence dans la façon dont ils interagissent avec votre extension. Ainsi, permettre les tests utilisateur dans le cadre du développement de votre extension.</li> +</ol> + +<p dir="ltr">Conseils de test :</p> + +<ul> + <li>Dans AMO, vous avez la possibilité d'<a href="/fr/Add-ons/Distribution/Submitting_an_add-on#Listing_on_AMO">identifier votre extension comme expérimentale</a> ou publier une <a href="/fr/Add-ons/Distribution#Beta_versions">version beta ou une autre version non finale</a>. + + <ul> + <li>Si vous marquez votre extension comme expérimentale, elle est listée dans AMO, mais avec un profil plus bas. Lorsque l'extension est prête pour un public plus large, vous pouvez désactiver le drapeau expérimental dans AMO.</li> + <li>Si vous avez une extension publiée, vous pouvez utiliser le canal Développement pour proposer une version alpha ou bêta à tester. Vous devrez diriger vos testeurs vers le canal de développement de la liste de votre extension ou indiquer à vos testeurs le lien à utiliser pour installer votre extension.<br> + <img alt="The development channel section of an extension's listing page, offering access to alpha and beta versions for testing." src="https://mdn.mozillademos.org/files/15273/extensions-development-channel.png" style="display: block; height: 262px; margin-left: auto; margin-right: auto; width: 751px;"><br> + Lorsque vous êtes satisfait de votre mise à jour, vous pouvez la publier comme la nouvelle version de votre extension.</li> + </ul> + </li> + <li>Si vous souhaitez distribuer votre extension à des utilisateurs extérieurs à AMO, vous trouverez les instructions pour le faire, ainsi que les instructions d'installation que vous devez fournir aux utilisateurs, dans l'article sur les <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Alternative_distribution_options/Sideloading_add-ons">extensions de chargement latéral.</a> N'oubliez pas que, contrairement à la distribution par l'entremise d'AMO, vous devrez envoyer aux utilisateurs toute version mise à jour de votre extension à mesure que vous apporterez des améliorations.</li> + <li>Utilisez le <a href="https://developer.mozilla.org/en-US/docs/Tools/Responsive_Design_Mode">mode design réactif</a> pour tester le comportement de votre extension sur d'autres tailles d'écran et types d'appareils.</li> +</ul> + +<p><strong>Créer une grande extension est un processus itératif. Bien que nous ayons décrit les six étapes ici, vous y reviendrez probablement au fur et à mesure que vous apprendrez ce qui fonctionne et ce qui ne fonctionne pas grâce aux commentaires des utilisateurs, aux tests et au temps. </strong></p> diff --git a/files/fr/orphaned/mozilla/add-ons/webextensions/user_interface/accessibility_guidelines/index.html b/files/fr/orphaned/mozilla/add-ons/webextensions/user_interface/accessibility_guidelines/index.html new file mode 100644 index 0000000000..e974f0871b --- /dev/null +++ b/files/fr/orphaned/mozilla/add-ons/webextensions/user_interface/accessibility_guidelines/index.html @@ -0,0 +1,153 @@ +--- +title: Lignes directrices en matière d'accessibilité +slug: >- + Mozilla/Add-ons/WebExtensions/user_interface/lignes_directrices_en_matiere_accessibilite +tags: + - Développement + - Extensions + - UI + - UX + - WebExtensions + - interface utilisateur +translation_of: Mozilla/Add-ons/WebExtensions/user_interface/Accessibility_guidelines +--- +<p>{{AddonSidebar()}}</p> + +<p>En ce qui concerne l'accessibilité, les extensions devraient suivre les mêmes lignes directrices que les sites Web. Cependant, les extensions ont des caractéristiques uniques qui méritent d'être prises en considération lors de la conception pour l'accessibilité. Voici une ventilation des fonctions d'extension et comment elles devraient être utilisées pour rendre une extension accessible.</p> + +<p>Vous trouverez plus d'information sur la conception et l'accessibilité dans la section <a href="https://design.firefox.com/photon/">Photon Design System</a> et <a href="/en-US/docs/Mozilla/Accessibility">Accessibilité et Mozilla</a> section de MDN.</p> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Fonction d'interface utilisateur</th> + <th scope="col"> Lignes directrices</th> + </tr> + </thead> + <tbody> + <tr> + <td> + <p><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/manifest.json/commands">Raccourcis clavier (commands)</a></p> + </td> + <td> + <p>Les raccourcis clavier permettent d'activer facilement les fonctions d'extension.</p> + + <p>Pour améliorer l'accessibilité, ajoutez des raccourcis clavier pour :</p> + + <ul> + <li>éléments de l'interface utilisateur de l'extension, tels que les boutons de la barre d'outils et de la barre d'adresse.</li> + <li>toutes les fonctionnalités d'une extension, cependant, lorsque cela n'est pas pratique, fournissent des raccourcis pour les fonctionnalités d'extension couramment utilisées. </li> + </ul> + + <div class="blockIndicator note"> + <p>Les utilisateurs peuvent modifier les raccourcis clavier d'une extension en fonction de leurs besoins. Cependant, les utilisateurs ne peuvent pas ajouter de raccourcis, c'est pourquoi il est préférable d'en ajouter autant que possible.</p> + </div> + </td> + </tr> + <tr> + <td> + <p><a href="/Add-ons/WebExtensions/user_interface/Browser_action">Bouton de la barre d'outils (action du navigateur)</a></p> + </td> + <td> + <p>Pour tenir compte du thème actif, fournissez des <a href="/fr/docs/Mozilla/Add-ons/WebExtensions/manifest.json/browser_action#theme_icons">icônes de boutons de la barre d'outils pour les thèmes avec du texte clair et foncé</a>.</p> + + <p>Suivez les directives du Photon Design System sur l'<a href="https://design.firefox.com/photon/visuals/iconography.html">Iconographie</a>. Utilisez différentes images pour transmettre l'état, par exemple basculé ou actif. N'utilisez pas d'icônes colorées ou de changements de couleur pour indiquer les changements d'état, car ils peuvent ne pas être visibles pour tous les utilisateurs.</p> + + <p>Incluez toujours un titre de texte pour que les détails des boutons puissent être lus par un lecteur d'écran. Le titre du bouton doit être mis à jour pour refléter :</p> + + <ul> + <li>l'état de l'extension.</li> + <li>le contenu des badges texte affichés sur le bouton.</li> + </ul> + + <p>Ajoutez un raccourci à l'action du bouton, en utilisant l'option spéciale de raccourci spécial <code>_execute_browser_action</code>.</p> + </td> + </tr> + <tr> + <td> + <p><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/user_interface/Popups">Bouton de la barre d'outils avec une fenêtre contextuelle</a></p> + </td> + <td> + <p>Le balisage dans la fenêtre contextuelle doit suivre les <a href="/fr/docs/Accessibilité">lignes directrices standard d'accessibilité au web</a>.</p> + </td> + </tr> + <tr> + <td> + <p><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/user_interface/Page_actions">Bouton de la barre d'adresse (action page)</a></p> + </td> + <td> + <p>Les mêmes directives que les boutons de la barre d'outils doivent être suivies.</p> + + <p>Ajoutez un raccourci à l'action du bouton, en utilisant l'option de raccourci <code>_execute_page_action</code>.</p> + </td> + </tr> + <tr> + <td> + <p><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/user_interface/Popups">Bouton de la bare d'adresse avec un popup</a></p> + </td> + <td> + <p>Le balisage dans la fenêtre contextuelle devrait suivre les <a href="/fr/docs/Accessibilité">lignes directrices standard d'accessibilité du web</a>.</p> + </td> + </tr> + <tr> + <td> + <p><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/user_interface/elements_menu_contextuel">Elément du menu contextuel</a></p> + </td> + <td> + <p>Les éléments de menu contextuel offrent aux utilisateurs un moyen accessible de découvrir les fonctions d'extension associées aux éléments d'une page Web. Par conséquent, dans la mesure du possible, ajoutez des fonctions d'extension à leurs menus contextuels pertinents.</p> + </td> + </tr> + <tr> + <td> + <p><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/user_interface/barres_laterales">Barre latérale</a></p> + </td> + <td> + <p>Le balisage dans la barre latérale doit être conforme aux <a href="/fr/docs/Accessibilité">lignes directrices standard d'accessibilité du web</a>.</p> + + <p>Ajoutez un raccourci clavier pour ouvrir une barre latérale, en utilisant l'option de raccourci spécial <code>_execute_sidebar_action</code>.</p> + </td> + </tr> + <tr> + <td> + <p><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/user_interface/Options_pages">Options page</a></p> + </td> + <td> + <p>Le balisage de la page des options doit suivre les <a href="/fr/docs/Accessibilité">lignes directrices standard d'accessibilité du Web</a>.</p> + </td> + </tr> + <tr> + <td> + <p><a href="/Add-ons/WebExtensions/user_interface/Extension_pages">Extension page</a></p> + </td> + <td> + <p>Le balisage de la page d'extension doit suivre les <a href="/fr/docs/Accessibilité">lignes directrices standard d'accessibilité du Web</a>.</p> + </td> + </tr> + <tr> + <td> + <p><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/user_interface/Notifications">Notification</a></p> + </td> + <td> + <p>Fournir des notifications pour les événements qui se produisent en arrière-plan ou qui ne sont pas autrement notifiés dans l'interface utilisateur. Soyez économe en notifications, mais veillez à ne pas les minimiser au détriment de l'accessibilité.</p> + </td> + </tr> + <tr> + <td> + <p><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/user_interface/Omnibox">Suggestion de la barre d'adresse</a></p> + </td> + <td> + <p>Ajoutez des suggestions selon le guide, il n'y a pas d'autres considérations d'accessibilité pour les extensions.</p> + </td> + </tr> + <tr> + <td> + <p><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/user_interface/panneaux_devtools">Panneau d'outils de développement</a></p> + </td> + <td> + <p>Le balisage dans la barre latérale doit être conforme aux <a href="/fr/docs/Accessibilité">conforme aux directives d'accessibilité du Web standard</a>.</p> + + <p>Il est recommandé d'offrir un raccourci clavier pour ouvrir un panneau devtools.</p> + </td> + </tr> + </tbody> +</table> diff --git a/files/fr/orphaned/mozilla/add-ons/webextensions/what_does_review_rejection_mean_to_users/index.html b/files/fr/orphaned/mozilla/add-ons/webextensions/what_does_review_rejection_mean_to_users/index.html new file mode 100644 index 0000000000..df7532390b --- /dev/null +++ b/files/fr/orphaned/mozilla/add-ons/webextensions/what_does_review_rejection_mean_to_users/index.html @@ -0,0 +1,44 @@ +--- +title: Que signifie le rejet d'une révision pour les utilisateurs ? +slug: >- + Mozilla/Add-ons/WebExtensions/que_signifie_le_rejet_d_une_revision_pour_les_utilisateurs +tags: + - Add-ons + - Extensions + - Guide + - Review + - WebExtensions + - publication +translation_of: Mozilla/Add-ons/WebExtensions/What_does_review_rejection_mean_to_users +--- +<p>{{AddonSidebar}}</p> + +<p><span class="seoSummary">Cet article explique comment les utilisateurs et les personnes à la recherche de votre extension sont affectés si vous obtenez un rejet du processus de révision Mozilla.</span></p> + +<h2 id="Aperçu_de_lexamen">Aperçu de l'examen</h2> + +<p>Toute extension que vous soumettez à <a href="http://addons.mozilla.org">addons.mozilla.org</a> (AMO) fait l'objet de deux évaluations. Il y a une validation machine de votre extension dans le cadre du flux de soumission, et un examen humain qui a lieu après la publication de votre extension.</p> + +<p>La validation de la machine vous indique immédiatement si quelque chose doit être corrigé pour permettre la publication de votre extension. L'examen humain a lieu après la publication et peut avoir lieu à tout moment. Au début de cet examen, l'examinateur peut demander des éclaircissements au sujet de votre prolongation. Le résultat de l'examen pourrait être le rejet de la dernière version de votre extension, et le rejet des versions antérieures non révisées si elles contiennent également des problèmes.</p> + +<p>Pour plus d'informations sur ces processus, voir <a href="/en-US/docs/Mozilla/Add-ons/Distribution/Submitting_an_add-on">Soumission d'un add-on</a> et de la <a href="/fr/docs/Mozilla/Add-ons/AMO/Règles/Reviews">politiques Add-on</a>.</p> + +<h2 id="Incidence_du_rejet_de_lexamen">Incidence du rejet de l'examen</h2> + +<p>Si votre prolongation est rejetée par l'examen humain :</p> + +<ul> + <li>Vous recevez un courriel expliquant la raison du rejet et les mesures que vous devez prendre pour corriger les problèmes identifiés.</li> + <li>Si une version antérieure de votre extension est publique, celle-ci devient celle vue par les visiteurs d'AMO.</li> + <li>S'il n'y a pas de version publique de votre poste à afficher, l'inscription de votre poste sur AMO est suspendue. Cela signifie que votre extension n'apparaît plus dans aucune liste sur AMO et ne sera plus retournée dans les résultats des recherches effectuées par les visiteurs AMO. Si quelqu'un suit un lien externe vers votre liste d'extensions, il arrivera à une page 404.</li> +</ul> + +<p>Les personnes qui ont installé votre extension ne remarqueront aucun changement suite au rejet de la révision ; elles pourront continuer à utiliser votre extension comme d'habitude.</p> + +<h2 id="Liste_de_blocage">Liste de blocage</h2> + +<p>La liste de blocage est un mécanisme qui permet à Mozilla d'empêcher l'utilisation d'une extension dans Firefox (un bloc dur) ou de demander aux utilisateurs de confirmer qu'ils souhaitent exécuter l'extension (un bloc mou).</p> + +<p>Si vous ne répondez pas à la rétroaction d'examen et ne corrigez pas rapidement les problèmes, votre prolongation pourrait être considérée pour l'inscription sur la liste de blocage, particulièrement si les problèmes identifiés ont trait à des vulnérabilités critiques en matière de sécurité, de stabilité ou de rendement. Cependant, si votre extension est délibérément malveillante ou abusive, elle peut être bloquée sans notification.</p> + +<p>Pour plus d'informations sur la liste de blocage, voir <a href="https://wiki.mozilla.org/Blocklisting">Liste de blocage</a> dans le wiki Mozilla.</p> diff --git a/files/fr/orphaned/mozilla/add-ons_bonnes_pratiques_performances_extensions/index.html b/files/fr/orphaned/mozilla/add-ons_bonnes_pratiques_performances_extensions/index.html new file mode 100644 index 0000000000..e1d91724fb --- /dev/null +++ b/files/fr/orphaned/mozilla/add-ons_bonnes_pratiques_performances_extensions/index.html @@ -0,0 +1,94 @@ +--- +title: Add-ons bonnes pratiques performances extensions +slug: Mozilla/Add-ons_bonnes_pratiques_performances_extensions +--- +<p>Un des grands avantages de Firefox est son extrême extensibilité. Les extensions peuvent presque tout faire. Cela présente un inconvénient: les extensions mal écrites ont un impact majeur sur l'expérience de navigation, incluant les performances de Firefox lui-même. Cet article vous offre quelques bonnes pratiques et suggestions qui pourront non seulement augmenter les performances et la vitesse de votre extension, mais aussi celles de Firefox.</p> + +<h2 id="Améliorer_les_performances_au_chargement"><strong>Améliorer les performances au chargement</strong></h2> + +<p>Les extensions sont chargées et démarrés à chaque fois qu'une nouvelle fenêtre du navigateur est ouverte. Cela signifie qu'à chaque fois qu'une fenêtre s'ouvre, votre extension peut avoir un impact sur le temps que mettra l'utilisateur à voir le contenu qu'il essaye de visualiser. Il y a plusieurs choses que vous pouvez faire pour réduire la durée que votre extension ajoutera à l'apparition du contenu désiré par l'utilisateur.</p> + +<h3 id="Chargez_uniquement_ce_dont_vous_avez_besoin_quand_vous_en_avez_besoin"><strong>Chargez uniquement ce dont vous avez besoin, quand vous en avez besoin</strong></h3> + +<p>Ne chargez pas des choses au démarrage qui ne seront nécessaire que si l'utilisateur clique sur un bouton, ou si une préférence donnée est activé quand elle ne l'est pas. Si votre extension présente des fonctionnalités accessibles uniquement si l'utilisateur est identifié auprès d'un service, ne chargez pas de ressources pour ces fonctionnalités tant que l'utilisateur n'est pas identifié.</p> + +<h3 id="Utilisez_les_modules_de_code_JavaScript">Utilisez les modules de code JavaScript</h3> + +<p>Vous pouvez créer vos propres <a href="/en-US/docs/Mozilla/JavaScript_code_modules/Using" title="/en-US/docs/Mozilla/JavaScript_code_modules/Using">JavaScript code modules</a> incorporants les fonctionnalités qui ne sont requises que dans des circonstances particulières. Cela permet de charger à la volé des morceaux de votre extension, au lieu de tout charger d'un coup.</p> + +<p>While JavaScript modules can be extremely useful, and provide significant performance benefits, they should be used wisely. Loading modules incurs a small cost, so breaking code up to an unnecessary degree can be counter-productive. Code should be modularized to the extend that doing so increases clarity, and loading of large or expensive chunks of code fragments can be significantly deferred.</p> + +<h3 id="Defer_everything_that_you_can">Defer everything that you can</h3> + +<p>Most extensions have a load event listener in the main overlay that runs their startup functions. Do as little as possible here. The browser window is blocked while your add-on's load handler runs, so the more it does, the slower Firefox will appear to the user.</p> + +<p>If there is <em>anything</em> that can be done even a fraction of a second later, you can use an {{ interface("nsITimer") }} or the {{ domxref("window.setTimeout()") }} method to schedule that work for later. Even a short delay can have a big impact.</p> + +<h2 id="Astuces_de_performances_générales">Astuces de performances générales</h2> + +<h3 id="Evitez_de_créer_des_fuites_de_mémoires">Evitez de créer des fuites de mémoires</h3> + +<p>Memory leaks require the garbage collector and the cycle collector to work harder, which can significantly degrade performance.</p> + +<p>Zombie compartments are a particular kind of memory leak that you can detect with minimal effort. See the<a href="/en/Zombie_compartments" title="en/Zombie_compartments"> </a><a href="/en/Zombie_compartments" title="en/Zombie_compartments">Zombie compartments page</a>, especially the <a href="/en/Zombie_compartments#Proactive_checking_of_add-ons" title="en/Zombie_compartments#Proactive_checking_of_add-ons">Proactive checking of add-ons</a> section.</p> + +<p>See <a href="/en/Extensions/Common_causes_of_memory_leaks_in_extensions" title="en/Extensions/Common_causes_of_zombie_compartments_in_extensions">Common causes of memory leaks in extensions</a> for ways to avoid zombie compartments and other kinds of leaks.</p> + +<p>As well as looking for these specific kinds of leaks, it's worth exercising your extension's functionality and checking the contents of about:memory for any excessive memory usage. For example, <a class="link-https" href="https://bugzilla.mozilla.org/show_bug.cgi?id=719601" title="https://bugzilla.mozilla.org/show_bug.cgi?id=719601">bug 719601</a> featured a "System Principal" JavaScript compartment containing 100s of MBs of memory, which is <em>much</em> larger than usual.</p> + +<h3 id="Evitez_d'écrire_des_CSS_lents">Evitez d'écrire des CSS lents</h3> + +<ul> + <li>Lire le guide <a href="/en/CSS/Writing_Efficient_CSS" title="en/CSS/Writing_Efficient_CSS">"writing efficient CSS"</a>.</li> + <li>Remember that any selector in your rule which might match many different nodes is a source of inefficiency during either selector matching or dynamic update processing. This is especially bad for the latter if the selector can dynamically start or stop matching. Avoid unqualified ":hover" like the plague.</li> +</ul> + +<h3 id="Avoid_DOM_mutation_event_listeners">Avoid DOM mutation event listeners</h3> + +<p>DOM mutation event listeners are extremely expensive and, once added to a document even briefly, significantly harm its performance. As mutation events are officially deprecated, and <a href="/en-US/Add-ons/Overlay_Extensions/XUL_School/Appendix_F:_Monitoring_DOM_changes">there are many alternatives</a>, they should be avoided at all costs.</p> + +<h3 id="Lazily_load_services">Lazily load services</h3> + +<p>The <a href="/en/JavaScript_code_modules/XPCOMUtils.jsm#Methods" title="en/JavaScript_code_modules/XPCOMUtils.jsm#Methods">XPCOMUtils JavaScript module</a> provides two methods for lazily loading things:</p> + +<ul> + <li><code>defineLazyGetter()</code> défini une fonction sur un objet spécifié qui agit comme un getter la première fois qu'il sera utilisé. <a class="external" href="http://mxr.mozilla.org/mozilla-central/search?string=defineLazyGetter">See examples</a>.</li> + <li><code>defineLazyServiceGetter()</code> défini une fonction sur un objet spécifié qui agit comme un getter pour un service. The service isn't obtained until the first time it's used. {{ LXRSearch("ident", "string", "defineLazyServiceGetter", "Look through the source") }} for examples.</li> +</ul> + +<p>Beaucoup de services commun sont dàja en cache dans <a href="/en-US/JavaScript_code_modules/Services.jsm">Services.jsm</a>.</p> + +<h3 id="Utilisez_les_ES_asynchrones">Utilisez les E/S asynchrones</h3> + +<p>Ne jamais faire E/S synchrone dans le thread principal.</p> + +<p>N'importe quelle sorte d'E/S dans le thread principal, qu'elle soit sur un disque ou sur le réseau, peuvent provoquez de sérieux problème de ralentissement de l'interface utilisateur.</p> + +<ul> + <li>Ne jamais utiliser de XMLHttpRequests synchrone.</li> + <li><a href="/en-US/JavaScript_code_modules/NetUtil.jsm">NetUtils.jsm</a> fournis des helpers pour la lecture et la copies de fichier asynchrone.</li> + <li>Ne jamais accèder à une base de donnée SQLite de manière synchrone. Utilisez l'<a href="/en-US/Storage#Asynchronously">asynchronous API</a> à la place.</li> + <li>Effectuer des opérations séquentielles, asynchrone peuvent être grandement simplifier en utilisant<a href="/en-US/Add-ons/Techniques/Promises"> Promises</a>.</li> +</ul> + +<h3 id="Evitez_les_évenements_de_mouvement_de_la_souris">Evitez les évenements de mouvement de la souris</h3> + +<p>Evitez d'utiliser les évenements de mouvement de la souris, tel que mouseover, mouseout, mouseenter, mouseexit, et plus spécialement mousemove. Ces évenements se déclenchent à haute fréquence, par conséquent leurs écouteurs d'évenements peuvent facilement provoquer une surcharge CPU.</p> + +<p>Quand ces évenements ne peuvent être évités, computation during the listeners should be kept to a minimum and real work throttled. Ces évenements doivent être ajoutés sur des éléments les plus spécifiques possible, et supprimé immédiatement lorsqu'il ne sont plus nécessaires.</p> + +<h3 id="Evitez_les_images_animées">Evitez les images animées</h3> + +<p>Animated images are much more expensive than generally expected, especially when used in XUL {{ XULElem("tree") }} elements..</p> + +<h3 id="Considérez_l'utilisation_des_Chrome_Workers">Considérez l'utilisation des Chrome Workers</h3> + +<p>Vous pouvez utiliser {{ domxref("ChromeWorker") }} pour executer de longues tâches ou du traitement de données.</p> + +<h2 id="Voir_aussi">Voir aussi</h2> + +<ul> + <li><a href="/en/Performance/Measuring_add-on_startup_performance" title="en/Measuring Add-on Startup Performance">Measuring Add-on Startup Performance</a></li> + <li><a class="external" href="http://blog.mozilla.com/addons/2010/06/14/improve-extension-startup-performance/" title="http://blog.mozilla.com/addons/2010/06/14/improve-extension-startup-performance/">How to Improve Extension Startup Performance</a></li> + <li><a href="/en-US/docs/Performance">General information about measuring and improving performance in Mozilla code</a></li> +</ul> diff --git a/files/fr/orphaned/tools/add-ons/dom_inspector/dom_inspector_faq/index.html b/files/fr/orphaned/tools/add-ons/dom_inspector/dom_inspector_faq/index.html new file mode 100644 index 0000000000..1ba15a6767 --- /dev/null +++ b/files/fr/orphaned/tools/add-ons/dom_inspector/dom_inspector_faq/index.html @@ -0,0 +1,59 @@ +--- +title: FAQ de l'Inspecteur DOM +slug: Inspecteur_DOM/DOM_Inspector_FAQ +tags: + - DOM_Inspector +translation_of: Tools/Add-ons/DOM_Inspector/DOM_Inspector_FAQ +--- +<div>{{ToolsSidebar}}</div><div class="note"> +<p>Cet outil est un module complémentaire pour les applications basées sur XUL comme Firefox ou Thunderbird. Si vous cherchez l'Inspecteur DOM intégré à Firefox, regardez plutôt la documentation pour <a href="/fr/docs/Tools/Page_Inspector">L'Inspecteur</a>.</p> +</div> + +<h2 id="Comment_faire_pour_inspecter_une_pagefenêtre_web">Comment faire pour inspecter une page/fenêtre web ?</h2> + +<p>Le menu "File" permet différentes manières d'inspecter un document :</p> + +<dl> + <dt>Inspect Content Document</dt> + <dd>Inspecte un contenu non privilégié présent dans l'onglet choisi.</dd> + <dt>Inspect Chrome Document</dt> + <dd>Inspecte une application chrome. Cela inclut les fenêtres XUL ouvertes.</dd> + <dt>Inspect a URL</dt> + <dd>Cela sélectionne simplement la barre d'adresse de l'Inspecteur DOM. Cette barre d'adresse permet d'inspecter les documents qui peuvent être accédés via une URL. Inspecter une URL a pour effet de charger le document de correspondant à cette URL dans le panneau "Browser". Cela peut inclure des documents chrome. Il n'est cependant pas recommandé d'inspecter des documents XUL directement via URL, car certains comportements du document peuvent dépendre du fait que le document doit être contenu dans un autre document XUL. À la place, il est recommandé de charger le document XUL normalement (en utilisant des commandes ou en ouvrant des fenêtres dans l'application utilisée), puis de trouver et de l'inspecter grâce au menu "<strong>Inspect Chrome Document"</strong>.</dd> +</dl> + +<h2 id="Pourquoi_certains_nœuds_dans_le_panneau_DOM_nodes_apparaissent_en_rouge">Pourquoi certains nœuds dans le panneau "DOM nodes" apparaissent en rouge ?</h2> + +<p>Ces nœuds sont des <a href="/fr/XBL/XBL_1.0_Reference#Anonymous_Content" title="en/XBL/XBL_1.0_Reference#Anonymous_Content">nœuds à contenu anonyme</a>. Cela veut dire qu'ils ne sont pas dans le DOM généré par le document d’origine.</p> + +<h2 id="Comment_faire_pour_cacher_ces_nœuds_anonymes">Comment faire pour cacher ces nœuds anonymes ?</h2> + +<p>Il est possible de cacher les nœuds anonymes dans l'inspecteur en décochant l'option <strong>"Show Anonymous Content"</strong> dans le menu menu <strong>"View"</strong>.</p> + +<h2 id="Il_y_beaucoup_de_nœuds_text_vides_que_je_ne_vois_pas_dans_le_document_d'origine._Que_sont-ils_pourquoi_sont_ils_là_et_comment_s'en_débarrasser">Il y beaucoup de nœuds #text vides que je ne vois pas dans le document d'origine. Que sont-ils, pourquoi sont ils là et comment s'en débarrasser ?</h2> + +<p>Ces nœuds sont actuellement les sauts de ligne et l'espacement entre les éléments. Une longue discussion sur pourquoi ces nœuds sont présent est disponible dans le {{ Bug(26179) }}.</p> + +<p>En revanche, il est possible de cacher ces <a href="/fr/Whitespace_in_the_DOM" title="en/Whitespace_in_the_DOM">nœuds d'espaces</a> dans l'inspecteur en décochant l'option<strong> "Show Whitespace Nodes</strong>" dans le menu <strong>"View"</strong>. Il est à noter que certains nœuds de texte vide ne seront pas cachés. Ces nœuds ont en effet une propriété CSS <code><a class="external" href="http://www.w3.org/TR/CSS21/text.html#propdef-white-space">white-space</a></code> qui empêche l'agent utilisateur de réduire les séquences d'espaces, et ne sont donc pas cachés.</p> + +<h2 id="Il_est_parfois_difficile_de_trouver_un_nœud_en_particulier_dans_l'arbre_DOM._Existe-t-il_une_manière_plus_rapide_pour_le_trouver_et_naviguer_dans_l'arbre">Il est parfois difficile de trouver un nœud en particulier dans l'arbre DOM. Existe-t-il une manière plus rapide pour le trouver et naviguer dans l'arbre ?</h2> + +<p>Bien sûr. Il est possible d'effectuer une recherche basée sur le nom du nœud, sur son id, ou même sur un attribut/paire de valeur. Pour effectuer une recherche il faut cliquer sur<strong> "Find Nodes..." </strong>dans le menu <strong>"Edit"</strong> (ou utiliser le raccourci Ctrl+f). Une fenêtre dans laquelle il est possible de rentrer les critères de la recherche apparaitra alors. La recherche de l'Inspecteur DOM utilise les<a href="/fr/JavaScript/Reference/Global_Objects/RegExp" title="en/Core_JavaScript_1.5 Reference/Global_Objects/RegExp"> RegExps JavaScript</a> pour trouver les nœuds et fera de la correspondance partielle automatiquement. Ainsi, faire une recherche avec l'expression "tab" retournera des résultats pour <a href="/fr/XUL/tabpanel" title="en/XUL/tabpanel">tabpanel</a> et <a href="/fr/XUL/tabbox" title="en/XUL/tabbox">tabbox</a> en plus de <a href="/fr/XUL/tab" title="en/XUL/tab">tab</a>. pour limiter la recherche, il est possible d'utiliser les marqueurs de début (^) et de fin ($) de chaîne de caractère. Ainsi, rechercher "^tab$" retournera uniquement les nœuds dont les noms sont <em>exactement</em> "tab".</p> + +<p>Il est également possible dans le cas d'un manque total d'information sur le noeud, d'essayer de le sélectionner en cliquant dessus. Pour cela, il faut trouver le nœud dans la page puis le sélectionner grâce au bouton "inspect by clickling" de la barre d'outils. Le menu <strong>"Edit"</strong> inclut également une option <strong>"Select Element by Click"</strong>.</p> + +<h2 id="Comment_inspecter_les_pseudo-classes_et_les_pseudo-éléments_dans_la_vue_des_règles_CSS">Comment inspecter les pseudo-classes et les pseudo-éléments dans la vue des règles CSS ?</h2> + +<p>L'Inspecteur DOM permet de forcer les pseudo-classes <a href="/fr/CSS/:hover" title="CSS/:hover">:hover</a>, <a href="/fr/CSS/:active" title="en/CSS/:active">:active</a>, et <a href="/fr/CSS/:focus" title="en/CSS/:focus">:focus</a> à s'appliquer sur un nœud donné. Pour ce faire, il faut depuis le panneau des nœuds DOM, sélectionner le nœud et faire apparaître le menu contextuel (clic droit sur le nœud). Dans ce menu, il faut cliquer sur l'option <strong>Set Pseudo-classes</strong> qui permet d'appliquer les pseudo-classes mentionnées ci-dessus.</p> + +<p>Il n'y a actuellement aucun moyen d'inspecter les règles appliquées dynamiquement pour d'autres pseudo-classes ou pseudo-éléments en utilisant l'interface de l'Inspecteur DOM. Il est en revanche possible de trouver n'importe quelle règle (afin de la modifier) dans sa feuille de style parente en utilisant le <strong>"Style Sheets viewer"</strong> dans le panneau document, puis de la localiser dans le <strong>"CSS Rules viewer"</strong> du panneau <strong>"object".</strong></p> + +<div class="originaldocinfo"> +<h2 id="Informations_sur_le_document_d'origine">Informations sur le document d'origine</h2> + +<ul> + <li>Autheur(s) : Christopher Aillon</li> + <li>Dernière mise à jour: November 11, 2003</li> + <li>Informations de copyright : Des portions de contenu sont © 1998–2007 par des contributeurs mozilla.org individuels. Le contenu est disponible sous licence Creative Commons | <a class="external" href="http://www.mozilla.org/foundation/licensing/website-content.html">Détails</a>.</li> +</ul> +</div> diff --git a/files/fr/orphaned/tools/add-ons/dom_inspector/index.html b/files/fr/orphaned/tools/add-ons/dom_inspector/index.html new file mode 100644 index 0000000000..bb280fc286 --- /dev/null +++ b/files/fr/orphaned/tools/add-ons/dom_inspector/index.html @@ -0,0 +1,70 @@ +--- +title: Inspecteur DOM +slug: Inspecteur_DOM +tags: + - DOM + - 'DOM:Tools' + - DOM_Inspector + - Extensions + - 'Extensions:Tools' + - Themes + - 'Themes:Tools' + - Tools + - Web Development + - 'Web Development:Tools' + - XUL + - 'XUL:Tools' +translation_of: Tools/Add-ons/DOM_Inspector +--- +<div>{{ToolsSidebar}}</div><div class="note"> +<p>Cet outil est un module complémentaire pour les applications bassées sur XUL tels que Firefox ou Thunderbird. Si vous cherchez l'Inspecteur DOM intégré à Firefox, regardez plutôt la documention pour <a href="/fr/docs/Tools/Page_Inspector">L'Inspecteur</a>.</p> +</div> + +<p><strong>L'inspecteur DOM</strong> (également connu sous l'appellation <strong>DOMi</strong>) est un outil de Mozilla servant à inspecter, parcourir et modifier le <a href="/fr/docs/Web/API/Document_Object_Model">modèle objet de document</a> des documents - habituellement des pages Web ou des fenêtres <a href="/fr/docs/Mozilla/Tech/XUL">XUL</a>.<br> + Il est possible de naviguer dans la hiérarchie DOM en utilisant une fenêtre à deux panneau qui permet une visibilitée du document et de tout les noeuds qu'il contient.</p> + +<h2 id="Documentation">Documentation</h2> + +<dl> + <dt><a href="/fr/DOM_Inspector/Introduction_to_DOM_Inspector" title="Introduction à l'Inspecteur DOM">Introduction à l'Inspecteur DOM</a></dt> + <dd>Un tutoriel guidé qui aide à démarrer avec l'Inspecteur DOM.</dd> +</dl> + +<dl> + <dt><a href="/fr/DOM_Inspector/DOM_Inspector_FAQ" title="FAQ de l'Inspecteur DOM">FAQ de l'Inspecteur DOM</a></dt> + <dd>Questions courantes sur l'Inspecteur DOM.</dd> +</dl> + +<dl> + <dt><a class="external" href="http://kb.mozillazine.org/DOM_Inspector">Page sur de MozillaZine sur l'Inspecteur DOM</a></dt> + <dd>Des informations complémentaires sur l'Inspecteur DOM.</dd> + <dt><a href="http://asurkov.blogspot.com/2013/02/build-dom-inspector.html">Comment compiler l'Inspecteur DOM.</a></dt> + <dd>Article de blog sur comment compiler l'Inspecteur DOM.</dd> +</dl> + +<h2 id="Obtenir_l'Inspecteur_DOM.">Obtenir l'Inspecteur DOM.</h2> + +<dl> + <dt>Firefox et Thunderbird</dt> + <dd>Il faut télécharger et installer <a class="link-https" href="https://addons.mozilla.org/fr/firefox/addon/6622" title="L'Inspector DOM">L'Inspector DOM</a> depuis le site web AMO. Les utilisateurs de Thunderbird naviguant dans AMO dans Firefox doivent sauvegarder le lien de l'installation, ou visiter la page <a class="link-https" href="https://addons.mozilla.org/fr/thunderbird/addon/6622" title="Inspecteur DOM pour Thunderbird">Inspecteur DOM pour Thunderbird</a>.</dd> +</dl> + +<dl> + <dt>Thunderbird 2</dt> + <dd><a class="link-https" href="https://addons.mozilla.org/fr/thunderbird/addon/1806">L'Inspecteur DOM pour Thunderbird 2</a> est disponible dans les <a class="link-https" href="https://addons.mozilla.org/fr/thunderbird/">modules complémentaires de Thunderbird</a>. Il est également possible de compiler Thunderbird vous-même avec les options suivantes :</dd> +</dl> + +<pre>ac_add_options --enable-extensions="default inspector" +ac_add_options --enable-inspector-apis +</pre> + +<dl> + <dt>Mozilla Suite et SeaMonkey</dt> + <dd>Selectioner Outils > Development Web > Inspecteut DOM. Vous pouvez installer le panneau latéral via Éditer > Préferences > Avancé > Inspecteur DOM, puis en ouvrant le panneau de l'inspecteur et en visitant un site web.</dd> +</dl> + +<h2 id="Reporter_un_bug_dans_l'Inspecteur_DOM">Reporter un bug dans l'Inspecteur DOM</h2> + +<p>Utilisez le "component" <a href="https://bugzilla.mozilla.org/enter_bug.cgi?format=__default__&product=Other%20Applications&component=DOM%20Inspector">"DOM Inspector" dans Bugzilla</a>.</p> + +<p>Pour trouver qui a des connaissances sur <a href="https://hg.mozilla.org/dom-inspector" title="le code de l'Inspecteur DOM">le code de l'Inspecteur DOM</a> ainsi que le pays dans lequel il se trouve, regardez <a class="link-https" href="https://wiki.mozilla.org/Modules/All#DOM_Inspector" title="liste des modules">dans la liste des modules</a>.</p> diff --git a/files/fr/orphaned/tools/add-ons/dom_inspector/internals/index.html b/files/fr/orphaned/tools/add-ons/dom_inspector/internals/index.html new file mode 100644 index 0000000000..d817bd62cf --- /dev/null +++ b/files/fr/orphaned/tools/add-ons/dom_inspector/internals/index.html @@ -0,0 +1,242 @@ +--- +title: Interieur de l'Inspecteur DOM +slug: Inspecteur_DOM/Internals +translation_of: Tools/Add-ons/DOM_Inspector/Internals +--- +<div>{{ToolsSidebar}}</div><div class="note"> +<p>L'Inspecteur DOM est un module complémentaire pour les applications basées sur XUL comme Firefox ou Thunderbird. Si vous cherchez l'Inspecteur DOM intégré à Firefox, regardez plutôt la documentation pour <a href="/fr/docs/Tools/Page_Inspector">L'Inspecteur</a>.</p> +</div> + +<p>Il ya trois parties principales dans l'Inspecteur DOM. La plus utilisée est l'interface utilisateur principale basée sur <code>inspector.xul</code>. il s'agit de l'Inspecteur à deux panneaux qui apparait au lancement de l'outil.</p> + +<p><img alt="DOM Inspector primary UI inspecting browser.xul" class="default internal" src="/@api/deki/files/4686/=domi-edit-search-onclick.png"></p> + +<p>En dehors de l'interface principale de l'Inspecteur DOM, il y a quelques autres inspecteurs haut-niveau qui diffèrent légèrement (l'inspecteur d'objets et le panneau latéral de l'Inspecteur DOM utilisé dans SeaMonkey). Nous allons d'abord nous concentrer sur <code>inspector.xul</code> et son point d'entrée, puis nous allons ensuite expliquer comment ces autres inspecteurs diffèrent.</p> + +<h2 id="L'Inspecteur_DOM_d'un_point_de_vue_haut_niveau">L'Inspecteur DOM d'un point de vue haut niveau</h2> + +<p>L'interface utilisateur principale de l'Inspecteur DOM est composée de barres d'outils et d'un "<strong>panelset</strong>." Le panelset contient deux panneaux. Un qui réagit aux changements occurrents dans le document inspecté. Et un qui réagit aux changements dans la sélection du premier panneau. Il s'agit respectivement du panneau document et du panneau objet.</p> + +<p>Le but d'un panneau est de gérer les <strong>"viewers</strong>" disponibles. En haut de chaque panneau, se trouve une barre d'outils qui contient :un bouton menu permettant de choisir quel viewer afficher parmi la <strong>viewer list</strong>, une étiquette affichant le nom du viewer actuel, et un autre bouton permettant d'effectuer des actions spécifiques au viewer.</p> + +<p>Les viewers sont chargés dynamiquement. Lorsqu'un panneau reçoit l'ordre de changer de viewer, l'ancien viewer est détruit et le nouveau est chargé à la place. Ainsi le panelset et les panneaux fonctionnent comme des frameset et frames. Cette comparaison s'avère très proche de la réalité, car chaque panneau contient en réalité un <code><a href="/fr/XUL/browser" title="en/XUL/browser">browser</a></code> anonyme, et, car chaque viewer existe dans un document séparé chargé dans le navigateur. Cette séparation permet aux viewers d'être indépendants, aec un XUL de viewer défini dans son propre document et chargé dans sa propre portée, cela sans crainte de collisions entre le XUL, le CSS ou le JS. Une autre conséquence est qu’en utilisant un <a href="/fr/Setting_up_an_extension_development_environment" title="en/Setting up an extension development environment">profil de développement</a> correctement configuré, alors la plupart des changements développés sont visibles uniquement en changeant de viewer puis en revenant sur le viewer précédant.</p> + +<p>Sachant comment les viewers sont écrits, il est maintenant possible de jeter un oeil à l'organisation du code source de l'Inspecteur DOM.d</p> + +<h2 id="Organisation_du_code_source">Organisation du code source</h2> + +<p>Le contenu du dossier racine de l'Inspecteur DOM devrait ressembler à ceci :</p> + +<ul> + <li>base/ + <ul> + <li>js/ + <ul> + <li>inspector-cmdline.js</li> + <li>Makefile.in</li> + </ul> + </li> + </ul> + </li> + <li>build/ + <ul> + <li>install.js</li> + <li>Makefile.in</li> + </ul> + </li> + <li>resources/ + <ul> + <li>content/ + <ul> + <li><var>…</var></li> + </ul> + </li> + <li>locale/ + <ul> + <li><var>…</var></li> + </ul> + </li> + <li>skin/ + <ul> + <li><var>…</var></li> + </ul> + </li> + <li>Makefile.in</li> + </ul> + </li> + <li>install.rdf</li> + <li>jar.mn</li> + <li>Makefile.in</li> + <li>makefiles.sh</li> +</ul> + +<p>Pratiquement toute la partie intéressante se trouve dans le dossier resources/content/. Son contenu devrait ressembler à ceci :</p> + +<ul> + <li>extensions/ + <ul> + <li>…</li> + </ul> + </li> + <li>jsutil/ + <ul> + <li>…</li> + </ul> + </li> + <li>prefs/ + <ul> + <li>…</li> + </ul> + </li> + <li>res/ + <ul> + <li>…</li> + </ul> + </li> + <li>tests/ + <ul> + <li>…</li> + </ul> + </li> + <li>viewers/ + <ul> + <li>…</li> + </ul> + </li> + <li>browserOverlay.xul</li> + <li>commandOverlay.xul</li> + <li>editingOverlay.xul</li> + <li>Flasher.js</li> + <li>hooks.js</li> + <li>inspector.css</li> + <li>inspector.js</li> + <li>inspectorOverlay.xul</li> + <li>inspector.xml</li> + <li>inspector.xul</li> + <li>keysetOverlay.xul</li> + <li>object.js</li> + <li>object.xul</li> + <li>popupOverlay.xul</li> + <li>sidebar.js</li> + <li>sidebar.xul</li> + <li>statusbarOverlay.xul</li> + <li>tasksOverlay-cz.xul</li> + <li>tasksOverlay-ff.xul</li> + <li>tasksOverlay-mobile.xul</li> + <li>tasksOverlay-sb.xul</li> + <li>tasksOverlay-tb.xul</li> + <li>tasksOverlay.xul</li> + <li>toolboxOverlay.xul</li> + <li>utils.js</li> + <li>venkmanOverlay.xul</li> + <li>ViewerRegistry.js</li> +</ul> + +<h3 id="Superpositions_(Overlays)">Superpositions (Overlays)</h3> + +<p>Il y a de nombreux overlays. Certains overlays peuvent être décrits comme des overlays d'intégration hôte, et d'autres comme des overlays à structure partagée.</p> + +<h4 id="Overlays_d'intégration_hôte">Overlays d'intégration hôte</h4> + +<p>L'Inspecteur DOM est une extension à utilité générique, adaptée à une utilisation avec n'importe quel toolkit d'application hôte de Mozilla. Afin que l'Inspecteur DOM soit utile avec son application hôte, il doit obligatoirement y avoir un moyen de lancer l'Inspecteur DOM depuis l'intérieur de l'application. Soit l'application fournit ces moyens eux-mêmes (généralement en intégrant l'Inspecteur DOM dans l'application), soit l'Inspecteur DOM doit explicitement supporter l'application en ayant ses propres options de menus et/ou raccourcis clavier avec des overlays d'intégration hôte.</p> + +<p>L'Inspecteur DOM supporte explicitement plusieurs applications Mozilla en fournissant des overlays d'intégration hôte. Ces overlays sont :</p> + +<ul> + <li>browserOverlay.xul</li> + <li>tasksOverlay-cz.xul</li> + <li>tasksOverlay-ff.xul</li> + <li>tasksOverlay-mobile.xul</li> + <li>tasksOverlay-sb.xul</li> + <li>tasksOverlay-tb.xul</li> + <li>tasksOverlay.xul</li> + <li>venkmanOverlay.xul</li> + <li>prefs/prefsOverlay.xul</li> +</ul> + +<p>Un examen plus approfondi du <a href="/fr/chrome.manifest" title="en/chrome.manifest">manifeste chrome</a> révèlera que l'Inspecteur DOM utilise également des overlays conditionnels dans sa fenêtre principale :</p> + +<pre><code>overlay chrome://inspector/content/inspector.xul chrome://communicator/content/utilityOverlay.xul application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} +overlay chrome://inspector/content/inspector.xul chrome://communicator/content/tasksOverlay.xul application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a}</code> +</pre> + +<pre><code>overlay chrome://inspector/content/inspector.xul chrome://browser/content/baseMenuOverlay.xul application={ec8030f7-c20a-464f-9b0e-13a3a9e97384}</code> +</pre> + +<p>Ces overlays fournis par l'hôte permettent à l'Inspecteur DOM d'adopter une apparence et des sensations similaires à l'application hôte. (Au-dessus, respectivement SeaMonkey et Firefox).</p> + +<p>Il y a plusieurs overlays dans le dossier "resources/contents/" qui ne font pas partie de cette catégorie d'overlays d'intégration hôte. En effet, l'Inspecteur DOM utilise également des overlays partagés pour construire sa propre interface utilisateur.</p> + +<h4 id="Overlays_à_structure_partagée">Overlays à structure partagée</h4> + +<p>Jetter un oeil au contenu du fichier inspector.xul de l'interface utilisateur principale de l'Inspecteur DOM révélera qu'il ne contient quasiment aucun élément visible. Au moment présent, il a une <code><a href="/fr/XUL/toolbox" title="en/XUL/toolbox">boite à outils</a></code> contenant un <code><a href="/fr/XUL/menubar" title="en/XUL/menubar">menubar</a></code> vide et une <code><a href="/fr/XUL/toolbar" title="en/XUL/toolbar">barre d'outils</a></code> vide, ainsi qu'une <code><a href="/fr/XUL/vbox" title="en/XUL/vbox">vbox</a></code> vide :</p> + +<pre><code> <toolbox id="tbxInsToolbox"> + <menubar id="mbrInspectorMain"/> + <toolbar id="tbInspectorPrimary"/> + </toolbox> + + <vbox id="bxInspectorMain" flex="1"/></code> +</pre> + +<p>Il n'y a aucun menu, barres d'outils, etc. définies ici. Même la plupart des éléments qui ne sont pas visibles tels que <code><a href="/fr/XUL/keyset" title="en/XUL/keyset">key</a></code>- et <code><a href="/fr/XUL/commandset" title="en/XUL/commandset">commandset</a></code>, ne sont pas définis dans inspector.xul. Ils sont tirés d'une série d'overlays, afin que le XUL définissant l'interface de l’Inspecteur DOM puisse être organisé en unités discrètes. inspector.xul en lui-même n'est qu'un squelette définissant la structure et la disposition basique de la fenêtre principale de l'Inspecteur DOM, laissant ainsi la plupart de son contenu être ajouté par les overlays.</p> + +<p>En utilisant des overlays modulaires permet également au XUL commun d'être partagé à travers les différents documents qui composent l'interface de l'Inspectreur DOM, même si toutes les overlays ne sont pas partagées par plusieurs utilisateurs. Il existe des overlays sur mesure uniquement pour des organisations.</p> + +<p>Dans certains cas, les overlays sont surchargées par d'autres overlays. Si nous imaginons une structure d'arbre obtenue en connectant les overlays en tant qu'enfants des fichiers qu'elles "overlayent" tout en ignorant les overlays utilisées pour l'intégration hôte, nous pouvons alors visualiser l'arbre d'overlays pour un fichier donné. Voici l'arbre d'overlay étendu ne prenant pas en compte les overlays d'hôte pour inspector.xul :</p> + +<ul> + <li><a class="external" rel="freelink">chrome://inspector/content/inspector.xul</a> + + <ul> + <li><a class="external" rel="freelink">chrome://inspector/content/inspectorOverlay.xul</a></li> + <li><a class="external" rel="freelink">chrome://inspector/content/toolboxOverlay.xul</a></li> + <li><a class="external" rel="freelink">chrome://inspector/content/popupOverlay.xul</a> + <ul> + <li><a class="external" rel="freelink">chrome://inspector/content/editingOverlay.xul</a></li> + <li><a class="external" rel="freelink">chrome://inspector/content/viewers/d...pupOverlay.xul</a></li> + <li><a class="external" rel="freelink">chrome://inspector/content/viewers/s...pupOverlay.xul</a></li> + </ul> + </li> + <li><a class="external" rel="freelink">chrome://inspector/content/commandOverlay.xul</a> + <ul> + <li><a class="external" rel="freelink">chrome://inspector/content/viewers/d...andOverlay.xul</a></li> + </ul> + </li> + <li><a class="external" rel="freelink">chrome://inspector/content/keysetOverlay.xul</a> + <ul> + <li><a class="external" rel="freelink">chrome://inspector/content/viewers/d...setOverlay.xul</a></li> + </ul> + </li> + <li><a class="external" rel="freelink">chrome://inspector/content/statusbarOverlay.xul</a></li> + <li><a class="external" rel="freelink">chrome://global/content/globalOverlay.xul</a></li> + </ul> + </li> +</ul> + +<p>(Il est à noter que les overlays des sous dossiers du viewer —viewers/dom et viewers/styleRules— sont chargés à la suite des <a href="/fr/Chrome_Registration#overlay" title="/en/chrome.manifest#overlay"><code>directives d'overlay</code></a> dans le manifeste chrome de l'Inspecteur DOM, au lieu d'être simplement importé explicitement en utilisant une instruction de processus <code>xul-overlay</code> dans l'overlay surchargée)</p> + +<dl> + <dt>inspectorOverlay.xul</dt> + <dd> + <p>Ce fichier importe les scripts supérieurs, dont l'Inspecteur à besoin (cela inclut les dépendances). De plus, il définit le contenu du corps principal de la fenêtre de l'Inspecteur DOM c'est à dire : le panelset, les viewers documents et objets et le document du panneau du navigateur. (Le panneau du navigateur n'est pas un panneau viewer dans le sens ou les viewer document et objets eux le sont. C'est-à-dire les sortes de panneaux définis précédemment en relation avec le panelset. "panneau" est ici utilisé en fonction du panneau du navigateur dans un sens large pour décrire la mixture d'interface générique)</p> + </dd> + <dt>toolboxOverlay.xul</dt> + <dd> + <p>Cette overlay, remplit la boite à outils de l'Inspecteur, incluant les boutons de la barre d'outils et la "location bar" avec son bouton "inspect". toolboxOverlay.xul définit également la structure de menubar, sans pour autant définir le contenu des menus eux-mêmes.</p> + </dd> + <dt>popupOverlay.xul</dt> + <dd> + <p>Cette iverlay définit la plupart de la structure statique des menus dans le menubar, avec quelques exceptions. Pour des raisons évidentes, le contenu des menus dynamiques n’est pas défini ici. Les menus dynamiques comprennent les pop-up du menu Inspecter ("Inspect Content Document" et "Inspect Chrome Document") du menu fichier, et les menus "Document Viewer" et "Object Viewer" du menu View. La préférence menuitems dans le menu View qui affecte uniquement le viewer de noeuds DOM ("Blink Selected Element", etc..) sont ajouté par l'overlay de pop-up de ce viewer (resources/content/viewers/dom/popupOverlay.xul). C'est également vrai pour les menuitems Find et le menuitem "Select Element By Click" dans le menu Edit, car aucun viewer à part le viewer de noeuds DOM ne supporte ces features.</p> + + <p>Les autres objets du menu Edit sont également utilisés dans plusieurs menus contextuels de viewers. Pour cette raison, seuls les id des menuitems sont référencés ici, et les difinitions complètes sont importées depuis editingOverlay.xul. Les viewers qui incluent un ou plus de ces menuitems dans leu contexte suivent la même pratique.</p> + + <p>Le tooltip utilisé pour les menus Inspect—Celui utilisé pour afficher le titre d'un document et son URI pour un menuitme donné--est également défini ici.</p> + </dd> + <dt>commandOverlay.xul</dt> + <dd>Les menuitems fournis par popupOverlay.xul qui délèguent à des éléments de <code><a href="/fr/XUL/command" title="en/XUL/command">command</a></code> externe ont leurs commandes définies ici.</dd> + <dt>keysetOverlay.xul</dt> + <dd>Certains menutimes fournis par popupOverlay.xul ont leurs <code><a href="/fr/XUL/key" title="en/XUL/key">keys</a></code> définis ici. Au moment présent, toutes les clés qui correspondent aux objets du menu Edit sont dans editingOverlay sans aucune bonne raison.</dd> + <dt>statusbarOverlay.xul</dt> + <dd>Ce fichier définit le contenu de la barre de statuts de l'Inspecteur DOM. L'Inspecteur DOM n'ayant pas de barre de statut, ce fichier est complètement inutile.</dd> +</dl> diff --git a/files/fr/orphaned/tools/add-ons/dom_inspector/introduction_to_dom_inspector/index.html b/files/fr/orphaned/tools/add-ons/dom_inspector/introduction_to_dom_inspector/index.html new file mode 100644 index 0000000000..6e31978549 --- /dev/null +++ b/files/fr/orphaned/tools/add-ons/dom_inspector/introduction_to_dom_inspector/index.html @@ -0,0 +1,96 @@ +--- +title: Introduction à l'Inspecteur DOM +slug: Inspecteur_DOM/Introduction_to_DOM_Inspector +tags: + - DOM_Inspector +translation_of: Tools/Add-ons/DOM_Inspector/Introduction_to_DOM_Inspector +--- +<div>{{ToolsSidebar}}</div> + +<p>L'Inspecteur DOM est une extension Mozilla qui est accéssible depuis le menu <strong>Tools > Web Development</strong> dans SeaMonkey, ou en sélectionant "DOM Inspector" depuis le menu Developpement web de Firefox ou Thunderbird. L'Inspecteur DOM est un programe standalone qui supporte toutes les applications toolkit, et il est également possible de l'inclure dans votre propre application XUL. L'Inspecteur DOM peut servir à vérifier la qualitée et l'état du <a href="/en/DOM" title="en/DOM">DOM</a>, ou peut être utilisé pour manipuler le DOM à la main si besoin est.</p> + +<div class="note"><strong>Note:</strong> Depuis Firefox 3, l'Inspecteur DOM n'est pas inclut par défaut dans Firefox. Il est alors nécessaire de le <a class="link-https" href="https://addons.mozilla.org/en-US/firefox/addon/6622" title="https://addons.mozilla.org/en-US/firefox/addon/6622"> télécharger et de l’installer</a> depuis le site des modules complémentaires de Mozilla. (Note lien mort)</div> + +<p>Au lancement de l'Inspecteur DOM, une application à deux panneaux apparait. L'Inspecteur DOM possède une barre d'adresse, et quelques menus comme ceux de Firefox. Dans SeaMonkey, des menus globaux sont présents en plus.</p> + +<p><img alt="domi.png" class="default internal" src="/@api/deki/files/4684/=domi.png"></p> + +<h2 id="Inspecter_un_Document">Inspecter un Document</h2> + +<p>Lors de l'ouverture de l'Inspecteur DOM, il est possible qu'un document associé ait été chargé. Cela dépend de l'application hôte. Si l'Inspecteur n'a pas automatiquement chargé un document ou a chargé un document différent de celui voulu, il existe plusieurs manières de sélectionner le document voulu.</p> + +<h3 id="File_.3E_Inspect_a_Window_.3E" name="File_.3E_Inspect_a_Window_.3E">Inspecter les Content Documents</h3> + +<p>L'option "Inspect Content Document" est accessible depuis le menu "File" et liste tous les content documents actuellement chargés. Dans les navigateurs Firefox et SeaMonkey, il s'agit des pages webs ouverts dans les onglets. Dans Thunderbird et SeaMonkey Mail and News, il s'agit des messages actuellement vus.<img alt="domi-inspect-content-popup.png" class="default internal" src="/@api/deki/files/4690/=domi-inspect-content-popup.png"></p> + +<h3 id="File_.3E_Inspect_a_Window_.3E" name="File_.3E_Inspect_a_Window_.3E">Inspecter les Chrome Documents</h3> + +<p>L'option "Inspect Content Document" est accessible depuis le menu "File" , et liste toutes les fenêtres et sous documents chrome. Une fenêtre du navigateur et l'Inspecteur DOM ont de grandes chances d'être déjà affichés dans cette liste. L'inspecteur DOM garde la trace de toutes les fenêtres ouvertes. Ainsi pour inspecter le DOM d'une fenêtre en particulier, il suffit simplement accéder normalement à cette fenêtre puis de sélectionner son titre dans la liste mise à jour dynamiquement.</p> + +<p><img alt="domi-inspect-chrome-popup.png" class="default internal" src="/@api/deki/files/4689/=domi-inspect-chrome-popup.png"></p> + +<h3 id="File_.3E_Inspect_a_URL..." name="File_.3E_Inspect_a_URL...">Inspecter arbitrairement des URLS</h3> + +<p>Il est également possible d'inspecter arbitrairement le DOM d'URLS en utilisant l'option "Inspect and URL", ou simplement en utilisant la barre d'adresse de L'inspecteur DOM. Par exemple, il est possible de rentrer dans cette barre l'url <a class="external" href="http://www.mozilla.org" rel="freelink">http://www.mozilla.org</a>, d'appuyer sur entrée puis de voir la structure DOM de la page d'accueil de mozilla.org.</p> + +<p>Il est extrêmement déconseillé d'utiliser cette approche pour inspecter des chrome documents. À la place, il faut s'assurer que le document se charge bien par les moyens normaux puis utiliser la méthode "Inspect Chrome Document".</p> + +<p><img alt="domi-inspect-chrome-popup.png" class="default internal" src="/@api/deki/files/4693/=domi-inspecting-mozilla.org.png"></p> + +<p>Lors d'une inspection de page web via URL, un panneau navigateur affichant la page apparaitra en bas de l'Inspecteur DOM. Cela permet d'utiliser l'Inspecteur DOM sans avoir à utiliser un navigateur séparé et sans avoir à intégrer un navigateur dans votre application. Si le panneau navigateur prend trop place pour votre confort, il est possible de le fermer, mais alors, il sera impossible voir les conséquences de vos changements.</p> + +<h2 id="Using_the_DOM_Inspector" name="Using_the_DOM_Inspector">Utiliser l'Inspecteur DOM</h2> + +<p>Une fois que le document voulu est ouvert, il est possible de voir que l'Inspecteur DOM charge le viewer "Document - DOM nodes" panneau document et le viewer "Object - DOM Nodes" dans le panneau objet. Le panneau document affiche alors une vue structurée et hiérarchisée du DOM. En cliquant, dans le panneau document, le panneau Objet est automatiquement mis à jour pour afficher les informations du noeud actuellement sélectionné. Ces viewers sont dits viewers liés et sont un aspect important à avoir en tête lors de l'apprentissage de l'utilisation de l'Inspecteur DOM.</p> + +<h3 id="DOM_Inspector_Information_Types" name="DOM_Inspector_Information_Types">Les viewers de l'Inspecteur DOM</h3> + +<p>Il est à noter que les deux viewer précédemment mentionnés ne sont que deux viewers fournis par défaut. Il est possible d'utiliser d'autres viewers, mais pour l'instant, il convient de continuer à les décrire.</p> + +<p>Le viewer de noeuds DOM dans le panneau document permet de chercher et de trouver et d'inspecter des noeuds DOM. Un des plus grands avantages que cela apporte au développement web, est qu'il est possible de trouver le markup et les noeuds dans lesquels la partie intéressante se trouve. Une utilisation ordinaire de l'Inspecteur DOM est de trouver le nom et la position d'une icône en particulier utilisée dans l'interface utilisateur. Dans le cas de l'inspection d'un chrome document, la sélection d'un noeud DOM dans le viewer, la version rendue de ce noeud est mise en surbrillance dans l'interface utilisateur elle-même. (Il est à noter qu'il existe des bugs qui empêche de le flasher de l'API de l'Inspecteur DOM de fonctionner correctement sur certaines plateformes) .</p> + +<p>Par exemple lors de l'inspection de la fenêtre principale du navigateur et de la sélection d'un noeud dans le viewer (noeud possédant une UI visible), de nombreuses parties de l'interface du navigateur seront mises en surbrillance par une bordure rouge clignotante. Il est possible de rentrer dans cette structure pour trouver des noeuds plus spécifiques tels que l'icône du bouton de la barre recherche.</p> + +<p><img alt="domi-edit-search-onclick.png" class="default internal" src="/@api/deki/files/4686/=domi-edit-search-onclick.png"></p> + +<p>Une fois, un noeud sélectionné, il est possible de choisir n'importe lequel des viewers disponibles pour afficher les informations du noeud dans le panneau objet. Ces viewers sont tous disponibles dans la liste déroulante accessible depuis le bouton en haut à gauche du panneau objet :</p> + +<p><img alt="domi-object-viewers.png" class="default internal" src="/@api/deki/files/4692/=domi-object-viewers.png"></p> + +<p>Dans le cas de la sélection d'une icône, pour trouver le nom du fichier utilisé, il est nécessaire de sélectionner le viewer "CSS Rules" et de chercher parmi les règles CSS, la règle qui définit l'image.</p> + +<p>La liste des viewers disponible donne une idée des possibilités d'extensibilité de l'Inspecteur DOM. Les descriptions suivantes fournissent une vue d'ensemble des viewers disponibles :</p> + +<p>Le viewer DOM Node affiche les informations du noeud sélectionné. Il permet également de modifier les attributs ou le contenu textuel du noeud.</p> + +<p>Le viewer Box Model affiche des informations variées sur les éléments XUL et HTML, incluant le placement et la taille de ces éléments.</p> + +<p>Le viewer XBL Bindings liste tous les bindings XBL attachés aux éléments.</p> + +<p>Le viewer CSS Rules affiche les règles CSS appliquées au noeud sélectionné. Lors d'une utilisation conjointe avec le viewer Style Sheets, ce viewer liste toutes les règles reconnues de la style sheet sélectionné dans l'ordre. Les propriétés CSS peuvent être modifiées. Les règles s'appliquant aux pseudo-éléments n'apparaissent pas.</p> + +<p>Le viewer JavaScript Object affiche un arbre hiérarchisé du sujet du panneau objet. Ce viewer permet également d'évaluer du JavaScript en sélectionnant l'option appropriée dans le menu contextuel.</p> + +<h3 id="Actions_de_base_du_viewer_DOM_Nodes">Actions de base du viewer DOM Nodes</h3> + +<h4 id="Sélectioner_des_éléments_au_clic">Sélectioner des éléments au clic</h4> + +<p>Une autre fonctionnalité interactive de l'Inspecteur DOm est que lorsque l'Inspecteur DOM est ouvert et que cette fonctionnalité a été activée en choisissant <strong style="font-weight: bold;">Edit</strong><strong> > Select Element by Click</strong> ou en cliquant sur l'icône en forme de loupe dans le coin en haut à gauche de l'Inspecteur DOM, il est alors possible de cliquer n'importe ou dans la page et l'élément cliqué aura son noeud DOM correspondant dans L'Inspecteur sélectionné.</p> + +<h4 id="Chercher_des_noeuds_dans_le_DOM">Chercher des noeuds dans le DOM</h4> + +<p>Une autre façon d'inspecter le DOM est de chercher un élément particulier via son ID, sa class ou un de ses attributs. Cliquer sur <strong>Edit > Find Nodes...</strong> ou utiliser le raccourci <code>Ctrl + F</code>, affichera une pop-up qui permet de rechercher de différentes manières.</p> + +<p><img alt="domi-find-appcontent.png" class="default internal" src="/@api/deki/files/4687/=domi-find-appcontent.png"></p> + +<h4 id="Mettre_à_jour_le_DOM_dynamiquement">Mettre à jour le DOM dynamiquement</h4> + +<p>Chaque noeud peut être édité, et le DOM sera mis à jour automatiquement. Les viewers dans le panneau objet permettent également de modifier le DOM. La plupart des modifications se font via les options du menu contextuel.</p> + +<p><img alt="domi-edit-search-onclick.png" class="default internal" src="/@api/deki/files/4686/=domi-edit-search-onclick.png"></p> + +<p>Cette interactivité permet par exemple de grossir/réduire la taille des éléments, changer des icônes, et plein d'autres choses. Tout cela sans avoir besoin de modifier les fichiers sources.</p> + +<p>Aimer l'Inspecteur</p> + +<p>L'Inspecteur DOM peut prendre du temps à prend en main, mais une fois maitrisé, vous viendrez peut être à penser que les fonctionnalités de l'Inspecteur sont exactement ce qui manquait au développement d'applications web. L'Inspecteur DOM ne fait pas que présenter des informations sur les pages de manière claire et structurée, il donner également la possibilité de chercher dans cette structure et de la mettre à jour dynamiquement. Utiliser l'Inspecteur DOM avec d'autres outils Mozilla comme<a class="external" href="http://www.mozilla.org/projects/venkman"> Venkman</a>, le JavaScript debugger et le DOM Inspector peut véritablement vous donner une vue <em>complète</em> de n'importe quelle page web ou application basée sur une interface DOM</p> diff --git a/files/fr/orphaned/tools/add-ons/index.html b/files/fr/orphaned/tools/add-ons/index.html new file mode 100644 index 0000000000..77d2801897 --- /dev/null +++ b/files/fr/orphaned/tools/add-ons/index.html @@ -0,0 +1,13 @@ +--- +title: Modules complémentaires +slug: Outils/Add-ons +translation_of: Tools/Add-ons +--- +<div>{{ToolsSidebar}}</div> + +<p>Il s'agit des outils de développement qui ne sont pas directement intégrés à Firefox, mais disponibles en tant que module complémentaire.</p> + +<dl> + <dt><a href="https://addons.mozilla.org/fr/firefox/addon/websocket-monitor/">WebSocket Monitor </a> {{obsolete_inline}}</dt> + <dd>Permet d'examiner les données échangées via une connexion WebSocket. Ce module complémentaire n'est plus disponible car il nécessite des versions de Firefox trop anciennes. <a href="https://addons.mozilla.org/en-US/firefox/addon/websocketsniff">WebSocket Sniffer</a> est une alternative, il n'est pas aussi détaillé mais peut aider.</dd> +</dl> diff --git a/files/fr/orphaned/tools/css_coverage/index.html b/files/fr/orphaned/tools/css_coverage/index.html new file mode 100644 index 0000000000..c02460ede0 --- /dev/null +++ b/files/fr/orphaned/tools/css_coverage/index.html @@ -0,0 +1,147 @@ +--- +title: CSS Coverage +slug: Outils/CSS_Coverage +translation_of: Tools/CSS_Coverage +--- +<div>{{ToolsSidebar}}</div> + +<div class="note"> +<p>Cette fonctionnalité est expérimentale et n'est pas encore disponible dans Firefox.</p> +</div> + +<p>Le CSS Coverage est un ensemble de commandes pour les outils de développement de Firefox qui aide à améliorer du CSS désordonné en mettant en évidence le CSS qui n'est pas "utilisé" et en indiquant les parties du fichier CSS nécessaires au rendu initial.</p> + +<p>Cet outil est quelque peu expérimental, car la définition "d'utilisation" du CSS est compliquée. Ce guide a pour ambition d'expliquer comment cet outil fonctionne.</p> + +<p>Cet outil est généralement utilisé de la façon suivante :</p> + +<ul> + <li>Lancer le tracker de coverage ("<code>csscoverage start</code>")</li> + <li>Visiter un ensemble de pages représentatives du site web à analyser.</li> + <li>Arrêter le tracker ("<code>csscoverage stop</code>") et voir les règles non utilisées dans <a href="/fr/docs/Outils/Éditeur_de_style">l'Éditeur de style</a>.</li> + <li>Voir le rapport ("<code>csscoverage report</code>") contenant les règles qui pourraient être mis en ligne (in-lined) dans chaque page.</li> +</ul> + +<p>Une autre commande ("<code>csscoverage oneshot</code>") permet de lancer ("<code>csscoverage start; csscoverage stop</code>").</p> + +<h2 id="Que_veut_dire_utiliser">Que veut dire "utiliser" ?</h2> + +<h3 id="TLDR">TL;DR :</h3> + +<p>Le CSS coverage vérifie que le sélecteur <span style="color: #008000;"><code>tag#id.class</code></span> dans l'exemple ci-dessous, existe dans un ensemble de pages web :</p> + +<pre class="brush: css">@media thing { + tag#id.class:hover { + foo: bar; + } +}</pre> + +<h3 id="Pourquoi">Pourquoi ?</h3> + +<p>Supposons que le CSS possède ce genre de propriété :</p> + +<pre class="brush: html"><style> + span:hover { + color: purple; + } +</style> + +<span>Test</span> +</pre> + +<p>Si durant ce test, la souris n'est pas entrée dans le <span>, est-ce que la règle a été utilisée ?</p> + +<p>Techniquement parlant, la règle <code>span:hover</code> n'a pas été utilisée dans le sens ou le mot "Test" n'a jamais été coloré en violet. Cependant, Le CSS coverage se concentre principalement à voir quelles règles sont pertinentes ou non pour la page. Dans ce cas, <code>span:hover</code> est visiblement pertinent pour la page.</p> + +<p>Supposons également que le CSS possède ce genre de propriété :</p> + +<pre class="brush: html"><style> + @media tv { + span { + color: purple; + } + } +</style> + +<span>Test</span> +</pre> + +<p>Devrait-il être obligatoire de se connecter depuis une télévision pour mesurer la pertinence de cette règle ?</p> + +<p>Mais "l'utilisation" n'est pas seulement une affaire de pertinence...<br> + Est-ce que la règle suivante est pertinente ?</p> + +<pre class="brush: html"><style> + span { } +</style> + +<span>Test</span> +</pre> + +<p>Il est possible d'affirmer que cette règle n'est pas pertinente, car elle n'a pas d'effet sur la page et peut donc être retirée sans danger.</p> + +<p>Cependant qu'en est-il du code suivant :</p> + +<pre class="brush: html"><style> + span { + -o-text-curl: minor; + } +</style> + +<span>Test</span> +</pre> + +<p>Savoir si cette règle est utilisée ou non requiert l'utilisation d'un moteur de recherche et des compétences analytiques, et peut être même des connaissances sur les versions des navigateurs supportés par le site. Ceci est donc considéré hors de portée de cet outil, du moins jusqu'à la <a href="https://fr.wikipedia.org/wiki/Singularit%C3%A9_technologique">singularité</a>.</p> + +<p>Cela explique également pourquoi la règle appliquée aux div dans l'exemple suivant est considéré comme "utilisée"</p> + +<pre class="brush: html"><style> + div { color: red; } + span { color: blue; } +</style> + +<div><span>Test</span></div> +</pre> + +<p>Il est possible d'affirmer que la règle div n'est pas utilisée puisqu'elle n'affecte pas le rendu final de la page. Cependant si l'on considère la définition alternative suivante :</p> + +<pre class="brush: html"><style> + div { color: red; border: none; } + span { color: blue; } +</style> +</pre> + +<p>Il est alors difficile de savoir si la règle de bordure est utilisée, et il existe beaucoup d'autres variations. L'opacité, la visibilité et les conversions de couleurs par exemple compliquent encore la définition "d'utilisation". Pour garder une définition simple, "utilisée" signifie que le sélecteur correspond ç au moins un élément.</p> + +<p>Si une feuille de style incluse dans un test contient une règle qui ne s'applique que pour une page particulière qui n'a pas été visitée lors du Test, alors bien évidemment cette règle sera marquée comme "non-utilisée" malgré le fait qu'il existe des moments ou cette règle est utilisée. Il est donc recommandé de doubler les vérifications avant d'enlever des règles des fichiers CSS.</p> + +<h2 id="Avertissements">Avertissements</h2> + +<p>Il est à noter que :</p> + +<ul> + <li>L'outil présume qu'une URL retourne le même ensemble d'octets chaque fois qu'elle référencée lors de la période de test.</li> + <li>Les <a href="https://developer.mozilla.org/en-US/docs/Web/CSS/Alternative_style_sheets">feuilles de style alternatives</a> ne sont pas traquées.</li> +</ul> + +<h2 id="Bugs">Bugs</h2> + +<p>La résolution de certains bugs importants est actuellement en travail :</p> + +<ul> + <li>Les changements du CSSOM via JavaScript ne sont actuellement pas traqués. Cela inclu l'ajout de feuilles de styles. Voir le <a href="https://bugzil.la/1007533">bug 1007533</a>.</li> + <li>Le markup dans l'Éditeur de style est fait ligne par ligne et, les sources-maps ne sont pas encore supportées. En conséquence, l'analyse devient confuse si le test est réalisé sur du CSS compressé. Voir le <a href="https://bugzil.la/1007073">bug 1007073</a>.</li> + <li>Les informations @keyframe ne sont pas incluses dans le résumé de préchargement. Voir le <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1034062">bug 1034062</a>.</li> +</ul> + +<p> </p> + +<h2 id="Alternatives">Alternatives</h2> + +<p>Il y plusieurs autres outils qui peuvent vous aider à trouver du CSS inutilisé, sans avoir besoin d'utiliser Firefox.</p> + +<ul> + <li><a href="https://www.jitbit.com/unusedcss/">Unused CSS</a> parcourt <em>récursivement</em> votre site pour détecter les sélecteurs inutilisés. Il s'agit d'un outil en ligne, gratuite et sans publicité.</li> + <li><a href="https://github.com/purifycss/purifycss">PurifyCSS </a>est un paquet NPM qui est utilisable comme un outil de console après son installation.</li> + <li><a href="https://unused-css.com/">unused-css.com</a>, un autre outil en ligne. Celui-ci n'est pas gratuit.</li> +</ul> diff --git a/files/fr/orphaned/tools/debugger/limitations_of_the_new_debugger/index.html b/files/fr/orphaned/tools/debugger/limitations_of_the_new_debugger/index.html new file mode 100644 index 0000000000..939e3c2343 --- /dev/null +++ b/files/fr/orphaned/tools/debugger/limitations_of_the_new_debugger/index.html @@ -0,0 +1,19 @@ +--- +title: Limitations of the new debugger +slug: Outils/Débogueur/Limitations_of_the_new_debugger +translation_of: Tools/Debugger/Limitations_of_the_new_debugger +--- +<div>{{ToolsSidebar}}</div><p>À partir de la version 52, Firefox inclut un nouveau Débogueur. Celui-ci n'est actuellement activé par défaut que dans Firefox Nightly et Firefox Developer Edition. Le nouveau Débogueur est plus rapide et plus fiable que l'ancien. Il fournit également une base plus saine pour les futurs développements de l'outil.</p> + +<p>Cependant, il ne possède pas encore toutes les fonctionnalités de l'ancien Débogueur. Cette page liste les fonctionnalités de l'ancienne version qui ne sont pas encore supportées.</p> + +<p>Il est à noter que le support de la plupart de ces fonctionnalités sont prévues pour les prochaines versions. Cette page sera mise à jour en fonction de cela.</p> + +<p>Si vous avez besoin d'utiliser l'ancien Débogueur, il faut changer la préférence "devtools.debugger.new-debugger-frontend" à <code>false</code> dans about:config (page du navigateur).</p> + +<p>Les fonctionalitées suivantes ne sont pas supportées par le nouveau Débogueur :</p> + +<ul> + <li><a href="/fr/docs/Tools/Debugger_(Before_Firefox_52)/How_to/Break_on_a_DOM_event">S'arreter sur les évènements DOM</a></li> + <li><a href="/fr/docs/Tools/Debugger_(Before_Firefox_52)/How_to/Highlight_and_inspect_DOM_nodes">Afficher en surbrillance et inspecter les nœuds DOM</a></li> +</ul> diff --git a/files/fr/orphaned/tools/debugger_(before_firefox_52)/disable_breakpoints/index.html b/files/fr/orphaned/tools/debugger_(before_firefox_52)/disable_breakpoints/index.html new file mode 100644 index 0000000000..89a692e2ad --- /dev/null +++ b/files/fr/orphaned/tools/debugger_(before_firefox_52)/disable_breakpoints/index.html @@ -0,0 +1,24 @@ +--- +title: Désactiver des point d'arrêts +slug: Outils/Debugger_(before_Firefox_52)/Disable_breakpoints +translation_of: Tools/Debugger_(before_Firefox_52)/Disable_breakpoints +--- +<div>{{ToolsSidebar}}</div><div class="note"> +<p>Cette page concerne le Débogueur JavaScript dans les versions antérieures à Firefox 52.</p> + +<p><a href="/fr/docs/Tools/Debugger">Voir la documentation pour les versions depuis Firefox 52.</a></p> +</div> + +<p>Si vous utilisez Firefox 52 ou plus récent, et que vous avez besoin d'utiliser l'ancien Débogueur, il faut changer la préférence "devtools.debugger.new-debugger-frontend" à <code>false</code> dans about:config (page du navigateur).</p> + +<p>Pour désactiver un point d'arrêt, il suffit de décocher la case à cocher à coté du point d'arrêt dans le <a href="/fr/docs/Tools/Debugger_(Before_Firefox_52)/UI_Tour#Source_list_pane" title="#source-list-pane">panneau de la liste des sources </a> :</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/13204/debugger-disable.png" style="display: block; height: 335px; margin-left: auto; margin-right: auto; width: 904px;"></p> + +<p>Une autre solution est d'activer le menu contextuel en effectuant un clic droit sur le point d'arrêt puis de cliquer sur "Désactiver le point d'arrêt".</p> + +<p>Il est également possible de supprimer un point d’arrêt en cliquant simplement sur le cercle bleu représentant le point d'arrêt.</p> + +<p>Pour activer/désactiver tout les points d'arrêt, il faut utiliser le bouton "Activer/Désactiver tout les points d'arrêt" dans le <a href="/fr/docs/Tools/Debugger_(Before_Firefox_52)/UI_Tour#Source_list_pane" title="#source-list-pane">panneau de la liste des sources </a>:</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/13206/debugger-toggle-all.png" style="display: block; height: 415px; margin-left: auto; margin-right: auto; width: 904px;"></p> diff --git a/files/fr/orphaned/tools/debugger_(before_firefox_52)/how_to/access_debugging_in_add-ons/index.html b/files/fr/orphaned/tools/debugger_(before_firefox_52)/how_to/access_debugging_in_add-ons/index.html new file mode 100644 index 0000000000..4708b18950 --- /dev/null +++ b/files/fr/orphaned/tools/debugger_(before_firefox_52)/how_to/access_debugging_in_add-ons/index.html @@ -0,0 +1,32 @@ +--- +title: Access debugging in add-ons +slug: Outils/Debugger_(before_Firefox_52)/How_to/Access_debugging_in_add-ons +translation_of: Tools/Debugger_(before_Firefox_52)/How_to/Access_debugging_in_add-ons +--- +<div>{{ToolsSidebar}}</div><div class="note"> +<p>Cette page concerne le Débogueur JavaScript dans les versions antérieures à Firefox 52.</p> + +<p><a href="/fr/docs/Tools/Debugger">Voir la documentation pour les versions depuis Firefox 52.</a></p> +</div> + +<div class="warning"> +<p>Il est prévu de déprécier l'utilisation des techniques décrites dans ce document. Merci de ne pas développer de nouveaux modules complémentaires en utilisant ces techniques.</p> +</div> + +<p>Les objets suivant sont accessibles dans le contexte de chrome://browser/content/debugger.xul (ou, en version beta 23,, chrome://browser/content/devtools/debugger.xul) :</p> + +<ul> + <li>window.addEventListener("Debugger:EditorLoaded") - Appelé quand le panneau des scripts accessible en lecture seule est chargé</li> + <li>window.addEventListener("Debugger:EditorUnloaded")</li> +</ul> + +<p>Fichiers en relation :</p> + +<ul> + <li>chrome://browser/content/devtools/debugger-controller.js</li> + <li>chrome://browser/content/devtools/debugger-toolbar.js</li> + <li>chrome://browser/content/devtools/debugger-view.js</li> + <li>chrome://browser/content/devtools/debugger-panes.js</li> +</ul> + +<p>Malheureusement, il n'y a pas encore d'API pour évaluer les expressions dans la portée du débogueur, ou pour mettre en surbrillance les éléments de la page qui sont référencés comme variables dans la portée déboguée. C'est actuellement un travail en cours, voir le bug <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=653545" title="bug #653545">653545</a>.</p> diff --git a/files/fr/orphaned/tools/debugger_(before_firefox_52)/how_to/black_box_a_source/index.html b/files/fr/orphaned/tools/debugger_(before_firefox_52)/how_to/black_box_a_source/index.html new file mode 100644 index 0000000000..7fa3206c04 --- /dev/null +++ b/files/fr/orphaned/tools/debugger_(before_firefox_52)/how_to/black_box_a_source/index.html @@ -0,0 +1,28 @@ +--- +title: Mettre une source dans une boîte noire +slug: Outils/Debugger_(before_Firefox_52)/How_to/Black_box_a_source +translation_of: Tools/Debugger_(before_Firefox_52)/How_to/Black_box_a_source +--- +<div>{{ToolsSidebar}}</div><div class="note"> +<p>Cette page concerne le Débogueur JavaScript dans les versions antérieures à Firefox 52.</p> + +<p><a href="/fr/docs/Tools/Debugger">Voir la documentation pour les versions depuis Firefox 52.</a></p> +</div> + +<p>Dans le développement web moderne, il est courant de s'appuyer sur des bibliothèques tels que <a href="http://jquery.com/">jQuery</a>, <a href="http://emberjs.com/">Ember</a>, ou <a href="http://angularjs.org/">Angular</a>, et 99% du temps on peut supposer qu'elles fonctionnent parfaitement. On ne se soucie alors pas de l'implémentation interne de ces librairies : on les considère comme des <a href="http://fr.wikipedia.org/wiki/Bo%C3%AEte_noire_%28syst%C3%A8me%29">boites noires</a>. Cependant l'abstraction des bibliothèques « cède » lors des sessions de débogage lorsqu'on est forcé de passer par des piles d'appels utilisant la bibliothèque pour accéder à son propre code. Avec le système de boite noire, il est possible d'indiquer au débogueur d'ignorer les détails des sources sélectionnées.</p> + +<p>Il est possible de mettre/enlever une source dans une boîte noire en sélectionnant la source dans le <a href="/fr/docs/Tools/Debugger_(Before_Firefox_52)/UI_Tour#Source_list_pane">panneau de la liste des sources </a>puis en cliquant sur l'icône en forme d'œil en bas à gauche :</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/13218/debugger-black-box.png" style="display: block; height: 401px; margin-left: auto; margin-right: auto; width: 922px;"></p> + +<p>Il est possible de placer plusieurs fichiers sources dans des boîtes noires en ouvrant la <a href="/fr/docs/Tools/GCLI">Barre de développement</a> et utilisant la commande <code>dbg blackbox</code> :</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/5997/command.png" style="display: block; height: 48px; margin-left: auto; margin-right: auto; width: 537px;"></p> + +<p>Quand une source est mise dans une boîte noire :</p> + +<ul> + <li>Tous les points d'arrêt concernant ce(s) fichier(s) sont désactivés.</li> + <li>Lorsque l'option « <strong>Pause sur les exceptions</strong> » dans les <a href="/fr/docs/Tools/Debugger_(Before_Firefox_52)/Settings">options du Débogueur</a> est activée, le débogueur ne s'arrêtera pas lorsqu'une exception est levée par une source dans une boite noire. Dans ce cas, le débogueur attendra que la pile arrive à une frame dans une source qui n'est pas dans une boîte noire.</li> + <li>Lors d'un débogage pas à pas, le débogueur passera sans s'arrêter dans une source mis en boîte noire.</li> +</ul> diff --git a/files/fr/orphaned/tools/debugger_(before_firefox_52)/how_to/break_on_a_dom_event/index.html b/files/fr/orphaned/tools/debugger_(before_firefox_52)/how_to/break_on_a_dom_event/index.html new file mode 100644 index 0000000000..515a2df202 --- /dev/null +++ b/files/fr/orphaned/tools/debugger_(before_firefox_52)/how_to/break_on_a_dom_event/index.html @@ -0,0 +1,22 @@ +--- +title: S’arrêter sur un évènement DOM +slug: Outils/Debugger_(before_Firefox_52)/How_to/Break_on_a_DOM_event +translation_of: Tools/Debugger_(before_Firefox_52)/How_to/Break_on_a_DOM_event +--- +<div>{{ToolsSidebar}}</div><div class="note"> +<p>Cette page concerne le Débogueur JavaScript dans les versions antérieures à Firefox 52.</p> + +<p><a href="/fr/docs/Tools/Debugger">Voir la documentation pour les versions depuis Firefox 52.</a></p> +</div> + +<p>Si vous écoutez un évènement DOM, Il est possible d'indiquer au débogueur de s'arrêter lorsque l'événement est lancé, sans avoir besoin de chercher l'écouteur et de mettre un point d'arrêt manuellement.</p> + +<p>Il faut d’abord cliquer sur le bouton "Développer les panneaux" de la <a href="/fr/docs/Tools/Debugger_(Before_Firefox_52)/UI_Tour#toolbar">barre d'outils</a> (juste à gauche des options). Cela ouvre le panneau partagé par les variables et les événements. Il faut ensuite cliquer sur l'onglet « Événements » cela affiche le <a href="/fr/docs/Tools/Debugger_(Before_Firefox_52)/UI_Tour#Events_pane">panneau des événements</a>. Ce panneau liste tout les évènements auxquels vous avez assigné un écouteur :</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/13210/debugger-events-pane-annotated.png" style="display: block; height: 334px; margin-left: auto; margin-right: auto; width: 904px;"></p> + +<p>Il n'y a plus qu'a cocher à la case à coté de l'évènement ou vous désirez que votre code s’arrête.</p> + +<p>Quand l'évènement est lancé, le code s’arrêtera au début de l'écouteur.</p> + +<p>{{EmbedYouTube("f-tbR8kj0K0")}}</p> diff --git a/files/fr/orphaned/tools/debugger_(before_firefox_52)/how_to/debug_eval_sources/index.html b/files/fr/orphaned/tools/debugger_(before_firefox_52)/how_to/debug_eval_sources/index.html new file mode 100644 index 0000000000..421de55174 --- /dev/null +++ b/files/fr/orphaned/tools/debugger_(before_firefox_52)/how_to/debug_eval_sources/index.html @@ -0,0 +1,36 @@ +--- +title: Debug eval sources +slug: Outils/Debugger_(before_Firefox_52)/How_to/Debug_eval_sources +translation_of: Tools/Debugger_(before_Firefox_52)/How_to/Debug_eval_sources +--- +<div>{{ToolsSidebar}}</div><div class="note"> +<p>Cette page concerne le Débogueur JavaScript dans les versions antérieures à Firefox 52.</p> + +<p><a href="/fr/docs/Tools/Debugger">Voir la documentation pour les versions depuis Firefox 52.</a></p> +</div> + +<p>Il est possible de déboguer du code JavaScript qui à été évalué dynamiquement, soit en étant passé sous forme de chaine de caractères à la fonction <a href="/fr/docs/Web/JavaScript/Reference/Global_Objects/eval"><code>eval()</code></a>, soit en étant passé sous forme de chaine caractère au constructeur d'une <a href="/fr/docs/Web/JavaScript/Reference/Global_Objects/Function"><code>fonction</code></a>.</p> + +<p>Pour faire cela, il est nécessaire d'utiliser l'instruction <code>//# sourceURL</code> pour nommer la source :</p> + +<pre class="brush: js">var button = document.getElementById("clickme"); +button.addEventListener("click", evalFoo, false); + +var script = "function foo() {" + + " console.log('foo a été appelée');" + + "}" + + "foo();//# sourceURL=mon-foo.js"; + +function evalFoo() { + eval(script); +}</pre> + +<p>Cela nome le script "mon-foo.js".</p> + +<p>Une fois que la chaine a été évaluée, le script apparaitra dans le Débogueur comme une source séparée et sera entièrement débogable comme toutes les autres sources. Il sera également possible de <a href="/fr/docs/Tools/Debugger_(Before_Firefox_52)/How_to/Pretty-print_a_minified_file">l'afficher joliment</a> :</p> + +<p>{{EmbedYouTube("nFm8F8Anmic")}}</p> + +<p>Le nom du script apparaitra également dans la pile d'exécution dans la <a href="/fr/docs/Tools/Web_Console#Error_messages">Console Web</a>.</p> + +<p>Le Débogueur s’arrêtera également aux expressions <code><a href="/fr/docs/Web/JavaScript/Reference/Statements/debugger">debugger;</a></code> dans les sources évaluées anonymes</p> diff --git a/files/fr/orphaned/tools/debugger_(before_firefox_52)/how_to/disable_breakpoints/index.html b/files/fr/orphaned/tools/debugger_(before_firefox_52)/how_to/disable_breakpoints/index.html new file mode 100644 index 0000000000..25f362b7a9 --- /dev/null +++ b/files/fr/orphaned/tools/debugger_(before_firefox_52)/how_to/disable_breakpoints/index.html @@ -0,0 +1,24 @@ +--- +title: Désactiver des point d'arrêts +slug: Outils/Debugger_(before_Firefox_52)/How_to/Disable_breakpoints +translation_of: Tools/Debugger_(before_Firefox_52)/How_to/Disable_breakpoints +--- +<div>{{ToolsSidebar}}</div><div class="note"> +<p>Cette page concerne le Débogueur JavaScript dans les versions antérieures à Firefox 52.</p> + +<p><a href="/fr/docs/Tools/Debugger">Voir la documentation pour les versions depuis Firefox 52.</a></p> +</div> + +<p>Si vous utilisez Firefox 52 ou plus récent, et que vous avez besoin d'utiliser l'ancien Débogueur, il faut changer la préférence "devtools.debugger.new-debugger-frontend" à <code>false</code> dans about:config (page du navigateur).</p> + +<p>Pour désactiver un point d'arrêt, il suffit de décocher la case à cocher à coté du point d'arrêt dans le <a href="/fr/docs/Tools/Debugger_(Before_Firefox_52)/UI_Tour#Source_list_pane" title="#source-list-pane">panneau de la liste des sources </a> :</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/13204/debugger-disable.png" style="display: block; height: 335px; margin-left: auto; margin-right: auto; width: 904px;"></p> + +<p>Une autre solution est d'activer le menu contextuel en effectuant un clic droit sur le point d'arrêt puis de cliquer sur "Désactiver le point d'arrêt".</p> + +<p>Il est également possible de supprimer un point d’arrêt en cliquant simplement sur le cercle bleu représentant le point d'arrêt.</p> + +<p>Pour activer/désactiver tout les points d'arrêt, il faut utiliser le bouton "Activer/Désactiver tout les points d'arrêt" dans le <a href="/fr/docs/Tools/Debugger_(Before_Firefox_52)/UI_Tour#Source_list_pane" title="#source-list-pane">panneau de la liste des sources </a>:</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/13206/debugger-toggle-all.png" style="display: block; height: 415px; margin-left: auto; margin-right: auto; width: 904px;"></p> diff --git a/files/fr/orphaned/tools/debugger_(before_firefox_52)/how_to/examine,_modify,_and_watch_variables/index.html b/files/fr/orphaned/tools/debugger_(before_firefox_52)/how_to/examine,_modify,_and_watch_variables/index.html new file mode 100644 index 0000000000..d3ded1c55f --- /dev/null +++ b/files/fr/orphaned/tools/debugger_(before_firefox_52)/how_to/examine,_modify,_and_watch_variables/index.html @@ -0,0 +1,49 @@ +--- +title: 'Examiner, modifier, et espionner des variables' +slug: >- + Outils/Debugger_(before_Firefox_52)/How_to/Examine,_modify,_and_watch_variables +translation_of: 'Tools/Debugger_(before_Firefox_52)/How_to/Examine,_modify,_and_watch_variables' +--- +<div>{{ToolsSidebar}}</div><div class="note"> +<p>Cette page concerne le Débogueur JavaScript dans les versions antérieures à Firefox 52.</p> + +<p><a href="/fr/docs/Tools/Debugger">Voir la documentation pour les versions depuis Firefox 52.</a></p> +</div> + +<h2 id="Examiner_des_variables">Examiner des variables</h2> + +<p>Quand le code s'est arrêté sur un point d'arrêt, il est possible d'examiner ses variables grâce au <a href="/fr/docs/Tools/Debugger_(Before_Firefox_52)/UI_Tour#Variables_pane" title="#variables-pane">panneau des variables</a> du débogueur :</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/13216/debugger-variables-pane.png" style="display: block; height: 335px; margin-left: auto; margin-right: auto; width: 903px;"></p> + +<p>Les variables sont listées et triées selon leur portée : Dans la fonction ci-dessus, les variables intégrées <code>arguments</code> et <code>this</code> ainsi que les variables locales comme <code>user</code> et <code>greeting</code> seront visibles. Dans la portée globale, les variables globales qui ont été définies (<code>greetme</code>) et les variables globales intégrées (<code>localStorage</code>, <code>console</code>…) seront visibles.</p> + +<p>Chaque objet peut être étendu pour voir son contenu en utilisant l'icône en forme de triangle.</p> + +<p>Survoler le nom d'une variable affiche une infobulle qui fournit des informations complémentaires sur la variable. Se référer à <a href="/fr/docs/JavaScript/Reference/Global_Objects/Object/defineProperty" title="/en-US/docs/JavaScript/Reference/Global_Objects/Object/defineProperty"><code>Object.defineProperty()</code></a> pour des détails sur la signification de ces termes.</p> + +<p>Pour voir les propriétés des objets, il est possible d'utiliser le <a href="/fr/docs/Tools/Debugger_(Before_Firefox_52)/How_to/Search_and_filter" title="#script filter">filtre de script</a> avec le préfixe spécial "*" ou en utilisant la boite de filtrage des variables si vous l'avez activée dans les <a href="/fr/docs/Tools/Debugger_(Before_Firefox_52)/Settings" title="#debugger-settings">options du débogueur</a>.</p> + +<p>{{EmbedYouTube("dxCvnixpM_Q")}}</p> + +<p>Si une variable existe dans la source, mais a été enlevé par le moteur JavaScript à la suite d'une optimisation. Alors cette variable est présente dans le panneau, mais sa valeur est égale à <code>(optimized away)</code>, et n'est pas modifiable. Dans la capture d’écran ci-dessous, la variable <code>upvar</code> a été optimisée :</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/10169/optimized-out.png" style="display: block; height: 235px; margin-left: auto; margin-right: auto; width: 332px;"></p> + +<h2 id="Modifier_des_variables">Modifier des variables</h2> + +<p>Quand le code s'est arrêté à un point d'arrêt, il est possible de modifier les variables dans le <a href="/fr/docs/Tools/Debugger_(Before_Firefox_52)/UI_Tour#Variables_pane" title="#variables-pane">panneau des variables </a> du débogueur. Il suffit de cliquer sur la valeur actuelle d'une variable pour pouvoir la réécrire :</p> + +<p>{{EmbedYouTube("FKG-jkvSpq8")}}</p> + +<h2 id="Espionner_une_expression">Espionner une expression</h2> + +<p>Les expressions espionnes sont des expressions qui sont évaluées à chaque fois que l'exécution s'arrête. Il est alors possible d'examiner le résultat de ces expressions. C'est utile dans la mesure où cela permet d'inspecter des éléments invariants dans votre code que vous savez être présents, mais qui ne sont pas nécessairement prêts pour une inspection.</p> + +<p>Pour ajouter une expression espionne, il faut cliquer sur la boite "ajouter une expression espionne" puis entrer l'expression JavaScript que vous souhaitez surveiller en parcourant votre code.</p> + +<p>Il ne reste plus qu'à faire tourner votre code. L'expression espionne ne fait rien tant que le code n'est pas arrêté à un point d'arrêt. Quand le code est arrêté, les expressions espionnes sont activées et leur valeur apparaitra alors :</p> + +<p>{{EmbedYouTube("CwGU-5wKRw0")}}</p> + +<p>À chaque changement de la valeur de l'expression espionne, sa boite sera brièvement affichée en surbrillance jaune. Il est possible de supprimer une expression espionne en cliquant sur l'icône en forme de croix à côté. Bien sûr, il est également possible d'avoir plus d'une seule expression espionne à la fois.</p> diff --git a/files/fr/orphaned/tools/debugger_(before_firefox_52)/how_to/highlight_and_inspect_dom_nodes/index.html b/files/fr/orphaned/tools/debugger_(before_firefox_52)/how_to/highlight_and_inspect_dom_nodes/index.html new file mode 100644 index 0000000000..edcdc56c82 --- /dev/null +++ b/files/fr/orphaned/tools/debugger_(before_firefox_52)/how_to/highlight_and_inspect_dom_nodes/index.html @@ -0,0 +1,16 @@ +--- +title: Afficher en surbrillance et inspecter les nœuds DOM +slug: Outils/Debugger_(before_Firefox_52)/How_to/Highlight_and_inspect_DOM_nodes +translation_of: Tools/Debugger_(before_Firefox_52)/How_to/Highlight_and_inspect_DOM_nodes +--- +<div>{{ToolsSidebar}}</div><div class="note"> +<p>Cette page concerne le Débogueur JavaScript dans les versions antérieures à Firefox 52.</p> + +<p><a href="/fr/docs/Tools/Debugger">Voir la documentation pour les versions depuis Firefox 52.</a></p> +</div> + +<p>Si vous survolez un nœud DOM dans le <a href="/fr/docs/Tools/Debugger_(Before_Firefox_52)/UI_Tour#Variables_pane">panneau des variables</a>, il sera affiché en surbrillance dans la page :</p> + +<p>De plus, une icône en forme de cible apparaitra à côté de la variable. Cliquer sur cette icône, ouvrira <a href="/fr/docs/Tools/Page_Inspector">l'Inspecteur</a> avec l'élément DOM sélectionné.</p> + +<p>{{EmbedYouTube("0JWxXp2Qql8")}}</p> diff --git a/files/fr/orphaned/tools/debugger_(before_firefox_52)/how_to/index.html b/files/fr/orphaned/tools/debugger_(before_firefox_52)/how_to/index.html new file mode 100644 index 0000000000..7fa79d80a3 --- /dev/null +++ b/files/fr/orphaned/tools/debugger_(before_firefox_52)/how_to/index.html @@ -0,0 +1,8 @@ +--- +title: Comment ? +slug: Outils/Debugger_(before_Firefox_52)/How_to +translation_of: Tools/Debugger_(before_Firefox_52)/How_to +--- +<div>{{ToolsSidebar}}</div><p><span class="seoSummary">Ces articles décrivent comment se servir du Débogueur.</span></p> + +<p>{{ ListSubpages () }}</p> diff --git a/files/fr/orphaned/tools/debugger_(before_firefox_52)/how_to/open_the_debugger/index.html b/files/fr/orphaned/tools/debugger_(before_firefox_52)/how_to/open_the_debugger/index.html new file mode 100644 index 0000000000..dc052eb319 --- /dev/null +++ b/files/fr/orphaned/tools/debugger_(before_firefox_52)/how_to/open_the_debugger/index.html @@ -0,0 +1,21 @@ +--- +title: Ouvrir le Débogueur +slug: Outils/Debugger_(before_Firefox_52)/How_to/Open_the_debugger +translation_of: Tools/Debugger_(before_Firefox_52)/How_to/Open_the_debugger +--- +<div>{{ToolsSidebar}}</div><div class="note"> +<p>Cette page concerne le Débogueur JavaScript dans les versions antérieures à Firefox 52.</p> + +<p><a href="/fr/docs/Tools/Debugger">Voir la documentation pour les versions depuis Firefox 52.</a></p> +</div> + +<p>Pour ouvrir le Débogueur, il faut utiliser le bouton du menu Firefox (<img alt="new fx menu" class="frameless wiki-image" src="https://support.cdn.mozilla.net/media/uploads/gallery/images/2014-01-10-13-08-08-f52b8c.png" title="">). Puis sélectionner "Développement web", et enfin sélectionner "Débogueur". Il est également possible d'utiliser le raccourci clavier :</p> + +<ul> + <li><kbd>Controle</kbd>+<kbd>Maj</kbd>+<kbd>S</kbd> sur Windows et Linux</li> + <li><kbd>Command</kbd>+<kbd>Option</kbd>+<kbd>S</kbd> sur Mac</li> +</ul> + +<p>La <a href="/fr/docs/Tools/Tools_Toolbox">Boite à outils </a>apparaitra alors en bas du navigateur, avec le Débogueur activé. Voici une capture d'écran qui montre à quoi ressemble le débogueur lors de son ouverture :</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/13200/debugger-open.png" style="display: block; height: 774px; margin-left: auto; margin-right: auto; width: 1006px;"></p> diff --git a/files/fr/orphaned/tools/debugger_(before_firefox_52)/how_to/pretty-print_a_minified_file/index.html b/files/fr/orphaned/tools/debugger_(before_firefox_52)/how_to/pretty-print_a_minified_file/index.html new file mode 100644 index 0000000000..a5ba32edb2 --- /dev/null +++ b/files/fr/orphaned/tools/debugger_(before_firefox_52)/how_to/pretty-print_a_minified_file/index.html @@ -0,0 +1,16 @@ +--- +title: Formater et indenter un fichier minifié +slug: Outils/Debugger_(before_Firefox_52)/How_to/Pretty-print_a_minified_file +translation_of: Tools/Debugger_(before_Firefox_52)/How_to/Pretty-print_a_minified_file +--- +<div>{{ToolsSidebar}}</div><div class="note"> +<p>Cette page concerne le Débogueur JavaScript dans les versions antérieures à Firefox 52.</p> + +<p><a href="/fr/docs/Tools/Debugger">Voir la documentation pour les versions depuis Firefox 52.</a></p> +</div> + +<p>Pour formater et indenter un fichier qui a été minifié, il faut ouvrir le fichier minifié et cliquer sur l'icône en forme de paire d'accolades :</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/13212/debugger-pretty-print.png" style="display: block; height: 407px; margin-left: auto; margin-right: auto; width: 904px;">Le fichier apparaitra alors dans un format plus lisible :</p> + +<p>Il est possible de demander au débogueur de détecter et de formater et indenter automatiquement les sources minifiés. Pour cela, il faut activer l'option "Formater et Indenter automatiquement les sources compactées" dans les <a href="/fr/docs/Tools/Debugger_(Before_Firefox_52)/Settings">options du débogueur</a>.</p> diff --git a/files/fr/orphaned/tools/debugger_(before_firefox_52)/how_to/search_and_filter/index.html b/files/fr/orphaned/tools/debugger_(before_firefox_52)/how_to/search_and_filter/index.html new file mode 100644 index 0000000000..5e35c61cd9 --- /dev/null +++ b/files/fr/orphaned/tools/debugger_(before_firefox_52)/how_to/search_and_filter/index.html @@ -0,0 +1,74 @@ +--- +title: Rechercher et filtrer +slug: Outils/Debugger_(before_Firefox_52)/How_to/Search_and_filter +translation_of: Tools/Debugger_(before_Firefox_52)/How_to/Search_and_filter +--- +<div>{{ToolsSidebar}}</div><div class="note"> +<p>Cette page concerne le Débogueur JavaScript dans les versions antérieures à Firefox 52.</p> + +<p><a href="/fr/docs/Tools/Debugger">Voir la documentation pour les versions depuis Firefox 52.</a></p> +</div> + +<p>Pour effectuer une recherche à l'intérieur du débogueur, il est possible d'utiliser le filtre de script de la <a href="/fr/docs/Tools/Debugger_(Before_Firefox_52)/UI_Tour#toolbar">barre d'outils </a>:</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/13214/debugger-filter.png" style="display: block; height: 351px; margin-left: auto; margin-right: auto; width: 904px;"></p> + +<p>Ne pas utiliser de préfixe dans le filtre aura pour conséquence de ne rechercher que dans la liste des sources du <a href="/fr/docs/Tools/Debugger_(Before_Firefox_52)/UI_Tour#Source_list_pane">Panneau de la liste des sources</a>. Pour voir la source correspondante au nom de fichier recherché, il faut utiliser la touche entrée ou les flèches directionnelles.</p> + +<p>Utiliser un préfixe correspondant à l'un des divers caractères spéciaux aura différents effets sur la recherche :</p> + +<table class="fullwidth-table standard-table"> + <thead> + <tr> + <th scope="col">Préfixe</th> + <th scope="col">Fonction</th> + </tr> + </thead> + <tbody> + <tr> + <td>Aucun</td> + <td>Filtre les scripts affichés dans le <a href="/fr/docs/Tools/Debugger/UI_Tour#Source_list_pane" title="#source-list-pane">panneau de la liste des sources</a>.</td> + </tr> + <tr> + <td>!</td> + <td>Recherche la chaine de caractère dans tous les fichiers.</td> + </tr> + <tr> + <td>@</td> + <td>Recherche une définition de fonction dans tous les fichiers</td> + </tr> + <tr> + <td>#</td> + <td> + <p>Recherche l'expression dans le fichier actuellement ouvert dans le <a href="/fr/docs/Tools/Debugger/UI_Tour#Source_pane" title="#source-pane">panneau de la liste des sources</a>.</p> + + <p>Appuyer sur entrée itérera parmi les occurrences.</p> + </td> + </tr> + <tr> + <td>:</td> + <td>Va à la ligne donnée dans le fichier actuellement ouvert dans le <a href="/fr/docs/Tools/Debugger/UI_Tour#Source_pane" title="#source-pane">panneau de la liste des sources</a>.</td> + </tr> + <tr> + <td>*</td> + <td>Filtrer les variables affichées dans le <a href="/fr/docs/Tools/Debugger/UI_Tour#Variables_pane" title="#variables-pane">panneau des variables</a>.</td> + </tr> + </tbody> +</table> + +<p>Ces options sont affichées dans une pop-up lors d'un clic sur le filtre. Elles sont également accessibles depuis le menu contextuel dans le <a href="/fr/docs/Tools/Debugger/UI_Tour#Source_pane" title="#source-pane">panneau des sources</a>.</p> + +<p>Les préfixes peuvent être combinés pour obtenir des expressions puissants. Par exemple :</p> + +<table class="fullwidth-table standard-table"> + <tbody> + <tr> + <td>toto.js:12</td> + <td>Ouvre le fichier "toto.js" et se rend à la ligne 12</td> + </tr> + <tr> + <td>mod#onLoad</td> + <td>Recherche la chaine de caractères "onLoad" dans tous les fichiers contenant "mod" dans leur noms.</td> + </tr> + </tbody> +</table> diff --git a/files/fr/orphaned/tools/debugger_(before_firefox_52)/how_to/set_a_breakpoint/index.html b/files/fr/orphaned/tools/debugger_(before_firefox_52)/how_to/set_a_breakpoint/index.html new file mode 100644 index 0000000000..62a8ce9317 --- /dev/null +++ b/files/fr/orphaned/tools/debugger_(before_firefox_52)/how_to/set_a_breakpoint/index.html @@ -0,0 +1,29 @@ +--- +title: Ajouter un point d'arrêt +slug: Outils/Debugger_(before_Firefox_52)/How_to/Set_a_breakpoint +translation_of: Tools/Debugger_(before_Firefox_52)/How_to/Set_a_breakpoint +--- +<div>{{ToolsSidebar}}</div><div class="note"> +<p>Cette page concerne le Débogueur JavaScript dans les versions antérieures à Firefox 52.</p> + +<p><a href="/fr/docs/Tools/Debugger">Voir la documentation pour les versions depuis Firefox 52.</a></p> +</div> + +<p class="seoSummary">Il existe différentes façons de placer un point d'arrêt dans du code JavaScript dans le Débogueur :</p> + +<ul> + <li>Dans <a href="/fr/docs/Tools/Debugger_(Before_Firefox_52)/UI_Tour#Source_pane">le panneau des sources</a>, cliquez sur le numéro de ligne où vous voulez arrêter le code</li> + <li>Dans <a href="/fr/docs/Tools/Debugger_(Before_Firefox_52)/UI_Tour#Source_pane">le panneau des sources</a>, faites un clic droit sur la ligne où vous voulez arrêter le code pour ouvrir le menu contextuel puis cliquez sur "Ajouter un point d'arrêt"</li> + <li>Dans <a href="/fr/docs/Tools/Debugger_(Before_Firefox_52)/UI_Tour#Source_pane">le panneau des sources</a>, mettez la ligne ciblée en surbrillance et appuyez sur Ctrl+B (Windows/Linux) ou Command+B (Mac OS X)</li> +</ul> + +<p>Chaque point d'arrêt est affiché à deux endroits dans le débogueur :</p> + +<ul> + <li>Listé dans le <a href="/fr/docs/Tools/Debugger_(Before_Firefox_52)/UI_Tour#Source_list_pane">panneau de la liste des sources</a> en dessous du nom du fichier dans lequel il se trouve</li> + <li>Sous forme de flèche bleue (organe si conditionnel) sur la ligne affectée dans le <a href="#">panneau des sources</a></li> +</ul> + +<p>La capture d'écran ci-dessous montre les points d'arrêt aux lignes 20 et 28 du fichier.</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/13202/debugger-details.png" style="display: block; height: 325px; margin-left: auto; margin-right: auto; width: 900px;"></p> diff --git a/files/fr/orphaned/tools/debugger_(before_firefox_52)/how_to/set_a_conditional_breakpoint/index.html b/files/fr/orphaned/tools/debugger_(before_firefox_52)/how_to/set_a_conditional_breakpoint/index.html new file mode 100644 index 0000000000..5025b633bb --- /dev/null +++ b/files/fr/orphaned/tools/debugger_(before_firefox_52)/how_to/set_a_conditional_breakpoint/index.html @@ -0,0 +1,22 @@ +--- +title: Ajouter un point d’arrêt conditionnel +slug: Outils/Debugger_(before_Firefox_52)/How_to/Set_a_conditional_breakpoint +translation_of: Tools/Debugger_(before_Firefox_52)/How_to/Set_a_conditional_breakpoint +--- +<div>{{ToolsSidebar}}</div><div class="note"> +<p>Cette page concerne le Débogueur JavaScript dans les versions antérieures à Firefox 52.</p> + +<p><a href="/fr/docs/Tools/Debugger">Voir la documentation pour les versions depuis Firefox 52.</a></p> +</div> + +<p>Pour ajouter un point d'arrêt conditionnel, il faut activer le menu contextuel (clic droit) en étant sur la ligne voulue dans le <a href="/fr/docs/Tools/Debugger_(Before_Firefox_52)/UI_Tour#Source_pane">panneau des sources</a> et sélectionner « Ajouter un point d'arrêt conditionnel ». Il faut alors entrer la condition dans la pop-up qui apparait :</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/12900/debugger-conditional-breakpoint.png" style="display: block; height: 273px; margin-left: auto; margin-right: auto; width: 823px;"></p> + +<p>Les points d'arrêt conditionnels sont représentés par une flèche orange :</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/12904/debugger-conditional-orange.png" style="display: block; height: 274px; margin-left: auto; margin-right: auto; width: 823px;"></p> + +<p>Pour éditer la condition ou pour ajouter une condition à un point d'arrêt normal, il faut activer le menu contextuel (clic droit) et sélectionner « Configurer le point d'arrêt » :</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/12902/debugger-make-conditional.png" style="display: block; height: 427px; margin-left: auto; margin-right: auto; width: 823px;"></p> diff --git a/files/fr/orphaned/tools/debugger_(before_firefox_52)/how_to/step_through_code/index.html b/files/fr/orphaned/tools/debugger_(before_firefox_52)/how_to/step_through_code/index.html new file mode 100644 index 0000000000..64743f97f8 --- /dev/null +++ b/files/fr/orphaned/tools/debugger_(before_firefox_52)/how_to/step_through_code/index.html @@ -0,0 +1,23 @@ +--- +title: Parcourir le code +slug: Outils/Debugger_(before_Firefox_52)/How_to/Step_through_code +translation_of: Tools/Debugger_(before_Firefox_52)/How_to/Step_through_code +--- +<div>{{ToolsSidebar}}</div><div class="note"> +<p>Cette page concerne le Débogueur JavaScript dans les versions antérieures à Firefox 52.</p> + +<p><a href="/fr/docs/Tools/Debugger">Voir la documentation pour les versions depuis Firefox 52.</a></p> +</div> + +<p>Quand le code s'arrête sur un point d'arrêt, il est possible de le parcourir pas à pas en utilisant les quatre boutons à gauche dans la <a href="/fr/docs/Tools/Debugger_(Before_Firefox_52)/UI_Tour#toolbar">barre d'outils </a>:</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/13208/debugger-step.png" style="display: block; height: 414px; margin-left: auto; margin-right: auto; width: 903px;"></p> + +<p>De gauche à droite :</p> + +<ul> + <li>Reprendre : exécute le code jusqu'au prochain point d'arrêt</li> + <li>Passer la fonction : avance jusqu'à ligne suivante dans la même fonction</li> + <li>Entrer dans la fonction : avance jusqu'à la ligne suivante, sauf s'il y a un appel de fonction dans ce cas, le débogueur entre dans la fonction appelée</li> + <li>Sortir de la fonction : avance jusqu’à la fin de la fonction actuelle</li> +</ul> diff --git a/files/fr/orphaned/tools/debugger_(before_firefox_52)/how_to/use_a_source_map/index.html b/files/fr/orphaned/tools/debugger_(before_firefox_52)/how_to/use_a_source_map/index.html new file mode 100644 index 0000000000..0593d49d3a --- /dev/null +++ b/files/fr/orphaned/tools/debugger_(before_firefox_52)/how_to/use_a_source_map/index.html @@ -0,0 +1,20 @@ +--- +title: Utiliser une source map +slug: Outils/Debugger_(before_Firefox_52)/How_to/Use_a_source_map +translation_of: Tools/Debugger_(before_Firefox_52)/How_to/Use_a_source_map +--- +<div>{{ToolsSidebar}}</div><div class="note"> +<p>Cette page concerne le Débogueur JavaScript dans les versions antérieures à Firefox 52.</p> + +<p><a href="/fr/docs/Tools/Debugger">Voir la documentation pour les versions depuis Firefox 52.</a></p> +</div> + +<p>Les sources JavaScript sont souvent combinées et minifiées afin d'optimiser le temps que met le serveur à les fournir. Il est également de plus en plus courant que les sources soient générées automatiquement en utilisant un langage comme CoffeeScript. En utilisant des <a href="http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/" title="http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/">source maps</a>, le débogueur peut faire le lien entre le code étant exécuté et les fichiers sources originaux, rendant ainsi le débogage incroyablement plus facile.</p> + +<p>Par défaut, le Débogueur utilisera les sources map si elles sont disponibles. Pour vérifier si l'utilisation des sources maps est activé (ou pour la désactiver), il faut cliquer sur les <a href="/fr/docs/Tools/Debugger_(Before_Firefox_52)/Settings" title="#debugger-settings">options du débogueur</a> et dans la liste qui s'affiche sélectionner "Afficher les sources originales" :</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/12922/debugger-sourcemaps.png" style="display: block; height: 506px; margin-left: auto; margin-right: auto; width: 915px;"></p> + +<p>Bien sûr, pour que cela fonctionne il faut avoir fourni une source map pour le JavaScript tournant dans la page. Pour cela il faut ajouter une instruction en commentaire dans votre fichier source :</p> + +<p><code>//# sourceMappingURL=http://example.com/chemin/vers/votre/sourcemap.map</code></p> diff --git a/files/fr/orphaned/tools/debugger_(before_firefox_52)/index.html b/files/fr/orphaned/tools/debugger_(before_firefox_52)/index.html new file mode 100644 index 0000000000..13f53b09e4 --- /dev/null +++ b/files/fr/orphaned/tools/debugger_(before_firefox_52)/index.html @@ -0,0 +1,55 @@ +--- +title: Débogueur (avant Firefox 52) +slug: Outils/Debugger_(before_Firefox_52) +translation_of: Tools/Debugger_(before_Firefox_52) +--- +<div>{{ToolsSidebar}}</div><div class="note"> +<p>Cette page concerne le Débogueur JavaScript dans les versions antérieures à Firefox 52.</p> + +<p><a href="/fr/docs/Tools/Debugger">Voir la documentation pour les versions depuis Firefox 52.</a></p> +</div> + +<p>Le débogueur JavaScript permet d'avancer pas à pas dans du code JavaScript et de l’examiner ou de le modifier, afin de retrouver et de corriger les bugs.</p> + +<p>Le débogueur peut fonctionner directement dans Firefox ou être utilisé à distance, par exemple sur un appareil Firefox OS ou Firefox sur Android. Voir le <a href="/fr/docs/Tools/Remote_Debugging">guide du débogage à distance</a> pour apprendre à connecter le débogueur à une cible distante</p> + +<p>{{EmbedYouTube("sK8KU8oiF8s")}}</p> + +<hr> +<h2 id="Visite_guidée_de_l'interface_utilisateur">Visite guidée de l'interface utilisateur</h2> + +<p>Pour vous repérer dans le débogueur, voici une courte <a href="/fr/docs/Tools/Debugger_(Before_Firefox_52)/UI_Tour">visite guidée de l'interface utilisateur.</a></p> + +<hr> +<h2 id="Comment">Comment ?</h2> + +<p>Pour savoir ce qu'il est possible de faire avec le débogueur, regardez les guides pratiques suivants :</p> + +<div class="twocolumns"> +<ul> + <li><a href="/fr/docs/Tools/Debugger_(Before_Firefox_52)/How_to/Open_the_debugger">Ouvrir le débogueur</a></li> + <li><a href="/fr/docs/Tools/Debugger_(Before_Firefox_52)/How_to/Set_a_breakpoint">Ajouter un point d’arrêt</a></li> + <li><a href="/fr/docs/Tools/Debugger_(Before_Firefox_52)/How_to/Disable_breakpoints">Désactiver des points d’arrêt</a></li> + <li><a href="/fr/docs/Tools/Debugger_(Before_Firefox_52)/How_to/Step_through_code">Parcourir le code pas à pas</a></li> + <li><a href="/fr/docs/Tools/Debugger_(Before_Firefox_52)/How_to/Break_on_a_DOM_event">S’arrêter sur un évènement DOM</a></li> + <li><a href="/fr/docs/Tools/Debugger_(Before_Firefox_52)/How_to/Highlight_and_inspect_DOM_nodes">Afficher en surbrillance et inspecter des nœuds DOM</a></li> + <li><a href="/fr/docs/Tools/Debugger_(Before_Firefox_52)/How_to/Pretty-print_a_minified_file">Afficher joliment un fichier minifié</a></li> + <li><a href="/fr/docs/Tools/Debugger_(Before_Firefox_52)/How_to/Search_and_filter">Rechercher et filtrer</a></li> + <li><a href="/fr/docs/Tools/Debugger_(Before_Firefox_52)/How_to/Set_a_conditional_breakpoint">Ajouter un point d’arrêt conditionnel</a></li> + <li><a href="/fr/docs/Tools/Debugger_(Before_Firefox_52)/How_to/Examine,_modify,_and_watch_variables">Examiner, modifier, et espionner des variables</a></li> + <li><a href="/fr/docs/Tools/Debugger_(Before_Firefox_52)/How_to/Use_a_source_map">Utiliser une source map (correspondance de source)</a></li> + <li><a href="/fr/docs/Tools/Debugger_(Before_Firefox_52)/How_to/Black_box_a_source">Mettre une source dans une boite noire</a></li> + <li><a href="/fr/docs/Tools/Debugger_(Before_Firefox_52)/How_to/Debug_eval_sources">Déboguer des sources évaluées</a></li> + <li><a href="/fr/docs/Tools/Debugger_(Before_Firefox_52)/How_to/Access_debugging_in_add-ons">Accéder au débogage depuis un module complémentaire</a></li> +</ul> +</div> + +<hr> +<h2 id="Référence">Référence</h2> + +<div class="twocolumns"> +<ul> + <li><a href="/fr/docs/Tools/Debugger/Keyboard_shortcuts">Raccourcis clavier</a></li> + <li><a href="/fr/docs/Tools/Debugger/Settings">Paramètres</a></li> +</ul> +</div> diff --git a/files/fr/orphaned/tools/debugger_(before_firefox_52)/keyboard_shortcuts/index.html b/files/fr/orphaned/tools/debugger_(before_firefox_52)/keyboard_shortcuts/index.html new file mode 100644 index 0000000000..9de13b55a9 --- /dev/null +++ b/files/fr/orphaned/tools/debugger_(before_firefox_52)/keyboard_shortcuts/index.html @@ -0,0 +1,16 @@ +--- +title: Raccourcis clavier +slug: Outils/Debugger_(before_Firefox_52)/Keyboard_shortcuts +translation_of: Tools/Debugger_(before_Firefox_52)/Keyboard_shortcuts +--- +<div>{{ToolsSidebar}}</div><div class="note"> +<p>Cette page concerne le Débogueur JavaScript dans les versions antérieures à Firefox 52.</p> + +<p><a href="/fr/docs/Tools/Debugger">Voir la documentation pour les versions depuis Firefox 52.</a></p> +</div> + +<p>{{ Page ("fr/docs/tools/Keyboard_shortcuts", "old-debugger") }}</p> + +<h2 id="Raccourcis_généraux">Raccourcis généraux</h2> + +<p>{{ Page ("fr/docs/tools/Keyboard_shortcuts", "all-toolbox-tools") }}</p> diff --git a/files/fr/orphaned/tools/debugger_(before_firefox_52)/settings/index.html b/files/fr/orphaned/tools/debugger_(before_firefox_52)/settings/index.html new file mode 100644 index 0000000000..9037a57151 --- /dev/null +++ b/files/fr/orphaned/tools/debugger_(before_firefox_52)/settings/index.html @@ -0,0 +1,63 @@ +--- +title: Paramètres +slug: Outils/Debugger_(before_Firefox_52)/Settings +translation_of: Tools/Debugger_(before_Firefox_52)/Settings +--- +<div>{{ToolsSidebar}}</div><div class="note"> +<p>Cette page concerne le Débogueur JavaScript dans les versions antérieures à Firefox 52.</p> + +<p><a href="/fr/docs/Tools/Debugger">Voir la documentation pour les versions depuis Firefox 52.</a></p> +</div> + +<p>Le Débogueur a son propre menu de paramètres. Il est accessible depuis l’icône en forme d'engrenage dans la <a href="/fr/docs/Tools/Debugger/UI_Tour#toolbar">barre d'outils </a>:</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/12930/debugger-options.png" style="display: block; height: 413px; margin-left: auto; margin-right: auto; width: 845px;"></p> + +<p>Chaque paramètre est une simple case à cocher :</p> + +<table class="standard-table"> + <tbody> + <tr> + <td style="width: 40%;"><strong>Formater et indenter automatiquement les sources compactées</strong></td> + <td>Lorsque cette option est activée, le Débogueur <a href="/fr/docs/Tools/Debugger/How_to/Pretty-print_a_minified_file">affichera joliment</a> les fichiers JavaScript minifiés.</td> + </tr> + <tr> + <td><strong>Pause sur les exceptions</strong></td> + <td>Lorsque cette option est activée, l’exécution du script s’arrêtera automatiquement lorsqu'une exception JavaScript est levée.</td> + </tr> + <tr> + <td><strong>Ignorer les exceptions interceptées</strong></td> + <td> + <p>Lorsque cette option est activée, l’exécution ne s’arrêtera pas lorsqu'une exception levée est interceptée</p> + + <p>Si cette option est activée (elle l'est par défaut), et que "Pause sur les exceptions" est activé, alors l'exécution s’arrêtera uniquement si l'exception levée n'est pas attrapée. Ce qui est généralement le comportement désiré : les expressions interceptées indiquent généralement que votre programme les gère correctement.</p> + </td> + </tr> + <tr> + <td><strong>Panneaux développés au démarrage</strong></td> + <td>Lorsque cette option est activée, le <a href="/fr/docs/Tools/Debugger/UI_Tour#Variables_pane" title="#variables-pane">panneau des variables</a> du Débogueur est visible dès l'ouverture de celui-ci.</td> + </tr> + <tr> + <td><strong>Afficher uniquement les propriétés énumérables</strong></td> + <td>Les propriétés JavaScript non-énumérables ne sont pas affichées</td> + </tr> + <tr> + <td><strong>Afficher la boîte de filtrage des variables</strong></td> + <td>Lorsque cette option est activée, une boîte de recherche est ajoutée au <a href="/fr/docs/Tools/Debugger/UI_Tour#Variables_pane" title="#variables-pane">panneau des variables</a>, elle permet de filtrer la liste des variables affichée</td> + </tr> + <tr> + <td><strong>Afficher les sources originales</strong></td> + <td>Lorsque cette option est activée, le Débogueur utilisera des <a class="external external-icon" href="http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/" title="http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/">source maps</a>, s'il y en a, afin d'afficher le code source original qui a été minifié, combiné ou même compilé depuis un langage comme CoffeeScript. Cette option est activée par défaut</td> + </tr> + <tr> + <td><strong>Mettre automatiquement dans une boîte noire les sources compactées</strong></td> + <td> + <div class="geckoVersionNote"> + <p>Nouveauté de Firefox 33</p> + </div> + + <p><span id="summary_alias_container"><span id="short_desc_nonedit_display">Met automatiquement les sources dont l'URL finit par ".min.js" dans une <a href="/fr/docs/Tools/Debugger/How_to/Black_box_a_source">boîte noire</a></span></span></p> + </td> + </tr> + </tbody> +</table> diff --git a/files/fr/orphaned/tools/debugger_(before_firefox_52)/ui_tour/index.html b/files/fr/orphaned/tools/debugger_(before_firefox_52)/ui_tour/index.html new file mode 100644 index 0000000000..0a8213687b --- /dev/null +++ b/files/fr/orphaned/tools/debugger_(before_firefox_52)/ui_tour/index.html @@ -0,0 +1,134 @@ +--- +title: Visite guidée de l'interface utilisateur +slug: Outils/Debugger_(before_Firefox_52)/UI_Tour +translation_of: Tools/Debugger_(before_Firefox_52)/UI_Tour +--- +<div>{{ToolsSidebar}}</div><div class="note"> +<p>Cette page concerne le Débogueur JavaScript dans les versions antérieures à Firefox 52.</p> + +<p><a href="/fr/docs/Tools/Debugger">Voir la documentation pour les versions depuis Firefox 52.</a></p> +</div> + +<p>Cet article est une visité guidée des principales sections de l'interface utilisateur du Débogueur JavaScript de Firefox. Cette interface est séparée en six sections principales :</p> + +<ul> + <li><a href="#toolbar">Barre d'outils</a></li> + <li><a href="/fr/docs/Tools/Debugger_(Before_Firefox_52)/UI_Tour#Source_list_pane">Panneau de la liste des sources</a></li> + <li><a href="/fr/docs/Tools/Debugger_(Before_Firefox_52)/UI_Tour#Call_stack_pane">Panneau de la pile d’exécution</a></li> + <li><a href="/fr/docs/Tools/Debugger_(Before_Firefox_52)/UI_Tour#Source_pane">Panneau des sources</a></li> + <li><a href="/fr/docs/Tools/Debugger_(Before_Firefox_52)/UI_Tour#Variables_pane">Panneau des variables</a></li> + <li><a href="/fr/docs/Tools/Debugger_(Before_Firefox_52)/UI_Tour#Events_pane">Panneau des événements</a></li> +</ul> + +<p><img alt="" src="https://mdn.mozillademos.org/files/13182/debugger-overview-annotated.png" style="display: block; height: 1640px; margin-left: auto; margin-right: auto; width: 1019px;"></p> + +<h2 id="Barre_d'outils"><a name="toolbar">Barre d'outils</a></h2> + +<p>La barre d'outils est composé de quatre sections :</p> + +<ul> + <li>Une ligne de boutons servant a <a href="/fr/docs/Tools/Debugger_(Before_Firefox_52)/How_to/Step_through_code">contrôler le parcours à travers un script</a></li> + <li>Une visualisation de la pile d’exécution</li> + <li>Le <a href="https://developer.mozilla.org/fr/docs/Tools/Debugger_(Before_Firefox_52)/How_to/Search_and_filter">filtre de script</a></li> + <li>Deux boutons pour : + <ul> + <li>développer/réduire les panneaux des <a href="/fr/docs/Tools/Debugger/UI_Tour#Variables_pane">variables</a> et des <a href="/fr/docs/Tools/Debugger/UI_Tour#Events_pane">événements</a></li> + <li>contrôler les <a href="/fr/docs/Tools/Debugger/Settings">paramètres</a> du Débogueur</li> + </ul> + </li> +</ul> + +<p><img alt="" src="https://mdn.mozillademos.org/files/13194/debugger-toolbar-annotated.png" style="display: block; height: 504px; margin-left: auto; margin-right: auto; width: 942px;"></p> + +<p>Les quatre boutons de gauche ont (dans l'ordre) les fonctions suivantes :</p> + +<ul> + <li><strong>Pause/Reprendre</strong>(F8) : met pause ou reprend l’exécution du script en débogage. Lorsque ce bouton devient bleu, cela veut dire que le script est en pause, soit parce que vous avez appuyé sur le bouton soit parce que le code est arrivé sur un point d'arrêt.</li> + <li><strong>Passer la fonction</strong> (F10) : Passe à la ligne de JavaScript suivante.</li> + <li><strong>Entrer dans la fonction</strong> (F11) : Entre dans la fonction appelée par la ligne de JavaScript actuelle si appel il y a. Sinon, passe à la ligne suivante.</li> + <li><strong>Sortir de la fonction</strong> (Shift-F11): Fait tourner le code jusqu’à sortir de la fonction actuelle.</li> +</ul> + +<p>La visualisation de la pile d’exécution montre la pile d’exécution au moment ou l’exécution est arrêté.</p> + +<h2 id="Panneau_de_la_liste_des_sources">Panneau de la liste des sources</h2> + +<p>Le panneau de la liste des sources liste tous les fichiers sources JavaScript qui sont chargés dans la page, et permet d'en sélectionner un pour le déboguer. Ce panneau partage sa portion d'écran avec le <a href="/fr/docs/Tools/Debugger/UI_Tour#Call_stack_pane">panneau de la pile d’exécution</a>. Les onglets en haut des panneaux permetent de passer d'un panneau à l'autre.</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/13186/debugger-source-list-pane.png" style="display: block; height: 335px; margin-left: auto; margin-right: auto; width: 903px;"></p> + +<p>Les fichiers sources sont regroupés sous différentes catégories basées sur l'origine de ces fichiers. Il est possible de sélectionner n'importe lequel de ces fichiers et il sera alors chargé dans le <a href="/fr/docs/Tools/Debugger/UI_Tour#Source_pane" title="#source-pane">panneau des sources</a>.</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/13188/debugger-source-list-pane-annotated.png" style="display: block; height: 535px; margin-left: auto; margin-right: auto; width: 922px;">Chaque point d'arrêt mis dans un fichier source est listé dans le panneau de la liste des sources juste en dessous du nom de ce fichier. La case à cocher à côté de chaque point d'arrêt permet de l'activer ou de le désactiver. Effectuer un clic droit sur un point d'arrêt dans la liste affiche un menu contextuel permettant de :</p> + +<ul> + <li>Désactiver, activer ou supprimer ce point d'arrêt, tous les points d'arrêt ou tous les points d'arrêt sauf celui-ci.</li> + <li>Rendre ce point d'arrêt conditionnel (ou éditer sa condition si il l'est déjà).</li> +</ul> + +<p>Les trois icônes en bas du panneau permettent de :</p> + +<ul> + <li><a href="/fr/docs/Tools/Debugger/How_to/Black_box_a_source">Mettre une source dans une boîte noire</a>.</li> + <li><a href="/fr/docs/Tools/Debugger/How_to/Pretty-print_a_minified_file">Afficher joliment des fichiers JavaScript minifiés</a></li> + <li><a href="/fr/docs/Tools/Debugger/How_to/Disable_breakpoints">Activer/désactiver tous les points d'arrêts</a>.</li> +</ul> + +<p>Il existe un menu contextuel (clic droit) pour les éléments de la liste des sources celui-ci permet de copier l'URL d'où viennent les fichiers, ou bien de les ouvrir dans un nouvel onglet :</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/13184/debugger-source-list-menu-annotated.png" style="display: block; height: 334px; margin-left: auto; margin-right: auto; width: 904px;"></p> + +<h2 id="Panneau_de_la_pile_d’exécution">Panneau de la pile d’exécution</h2> + +<p>Le deuxième onglet de la partie gauche du Débogueur affiche une pile d’exécution verticale :</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/13178/debugger-call-stack-pane-annotated.png" style="display: block; height: 332px; margin-left: auto; margin-right: auto; width: 903px;"></p> + +<p>Chaque ligne représente un niveau de la pile, avec la couche actuelle au-dessus. Chaque ligne contient le nom de la fonction ou elle est exécutée ainsi qu'un lien vers le fichier source au bon numéro de ligne.</p> + +<h2 id="Panneau_des_sources">Panneau des sources</h2> + +<p><img alt="" src="https://mdn.mozillademos.org/files/13190/debugger-source-pane.png" style="display: block; height: 335px; margin-left: auto; margin-right: auto; width: 903px;"></p> + +<p>Ce panneau affiche le fichier source JavaScript actuellement chargé. Les lignes ayant un point d'arrêt ont un cercle bleu à côté du numéro de ligne. Lorsqu'un point d'arrêt est atteint, une flèche verte apparaît sur le cercle :</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/13192/debugger-source-pane-breakpoints-annotated.png" style="display: block; height: 436px; margin-left: auto; margin-right: auto; width: 903px;"></p> + +<p>Dans le panneau des sources, le menu contextuel (clic droit) permet :</p> + +<ul> + <li>D'ajouter un point d'arrêt.</li> + <li>D'ajouter un point d'arrêt conditionnel</li> + <li>D'ajouter une expression-espionne de la sélection</li> + <li>De rechercher ou filtrer en utilisant le <a href="https://developer.mozilla.org/fr/docs/Tools/Debugger_(Before_Firefox_52)/How_to/Search_and_filter" title="#script filter">filtre de scripts</a></li> +</ul> + +<h3 id="Popup_de_variable">Popup de variable</h3> + +<p>Survoler une variable dans le panneau des sources fait apparaître une popup affichant la valeur actuelle de la variable :</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/13198/debugger-variables-popup-annotated.png" style="display: block; height: 334px; margin-left: auto; margin-right: auto; width: 903px;"></p> + +<p>Cela permet de savoir rapidement la valeur d'une variable sans avoir à ouvrir le<a href="/fr/docs/Tools/Debugger_(Before_Firefox_52)/UI_Tour#Variables_pane"> panneau des variables</a>.</p> + +<h2 id="Panneau_des_variables">Panneau des variables</h2> + +<p>Le panneau des variables permet d’examiner et de modifier les variables du script lors de son exécution :</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/13196/debugger-variables-pane.png" style="display: block; height: 670px; margin-left: auto; margin-right: auto; width: 903px;"></p> + +<p>Ce panneau partage sa portion d'écran avec le <a href="https://developer.mozilla.org/fr/docs/Tools/Debugger_(Before_Firefox_52)/UI_Tour#Events_pane">panneau des événements</a>. Pour passer de l'un à l'autre, il faut utiliser les onglets situés en haut du panneau.</p> + +<h2 id="Panneau_des_événements">Panneau des événements</h2> + +<p>Ce panneau liste tous les événements DOM qui sont écoutés dans le code.</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/13180/debugger-events-pane-annotated.png" style="display: block; height: 334px; margin-left: auto; margin-right: auto; width: 903px;"></p> + +<p>Ce panneau partage sa portion d'écran avec le <a href="/fr/docs/Tools/Debugger_(Before_Firefox_52)/UI_Tour#Variables_pane">panneau des variables</a> Pour passer de l'un à l'autre, il faut utiliser les onglets situés en haut du panneau.</p> + +<p>Ce panneau regroupe les événements par type, la capture d'écran ci-dessus montre quatre types : Interaction, clavier, souris, et navigation. Les événements qui ont un écouteur sont listés sous leur type avec la syntaxe suivante :</p> + +<pre>[nom de l’événement] sur [cible de l’événement] dans [fichier source]</pre> + +<p>Cliquer sur la case à cocher à côté de l’événement aura pour conséquence de faire s’arrêter l’exécution à la première ligne de l'écouteur de l’événement. Cliquer sur la case à cocher à côté d'un type d’événement aura pour conséquence de faire s’arrêter l’exécution dans tous les écouteurs des événements listés sous ce type.</p> diff --git a/files/fr/orphaned/web/api/entity/index.html b/files/fr/orphaned/web/api/entity/index.html new file mode 100644 index 0000000000..2c160ead13 --- /dev/null +++ b/files/fr/orphaned/web/api/entity/index.html @@ -0,0 +1,114 @@ +--- +title: Entity +slug: Web/API/Entity +tags: + - API + - DOM + - Entités + - Interface + - Noeuds +translation_of: Web/API/Entity +--- +<p>{{APIRef("DOM")}}{{obsolete_header}}</p> + +<p>Référence en lecture seule à une entité DTD (<em>définition de type de document</em>). Hérite également des méthodes et propriétés de {{domxref("Node")}}.</p> + +<h2 id="Propriétés">Propriétés</h2> + +<dl> + <dt>{{domxref("Entity.publicId")}} {{ReadOnlyInline}}</dt> + <dd>est une {{domxref("DOMString")}} (<em>chaîne de caractères</em>).</dd> + <dt>{{domxref("Entity.systemId")}} {{ReadOnlyInline}}</dt> + <dd>est une {{domxref("DOMString")}} (<em>chaîne de caractères</em>).</dd> + <dt>{{domxref("Entity.notationName")}}{{ReadOnlyInline}}</dt> + <dd>est une {{domxref("DOMString")}} (<em>chaîne de caractères</em>).</dd> + <dt>{{domxref("Entity.inputEncoding")}}{{ReadOnlyInline}}</dt> + <dd>est une {{domxref("DOMString")}} (<em>chaîne de caractères</em>).</dd> + <dt>{{domxref("Entity.xmlEncoding")}}{{ReadOnlyInline}}</dt> + <dd>est une {{domxref("DOMString")}} (<em>chaîne de caractères</em>).</dd> + <dt>{{domxref("Entity.xmlVersion")}}{{ReadOnlyInline}}</dt> + <dd>est une {{domxref("DOMString")}} (<em>chaîne de caractères</em>).</dd> +</dl> + +<h2 id="Spécifications">Spécifications</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th>Spécification</th> + <th>Statut</th> + <th>Commentaire</th> + </tr> + <tr> + <td>{{SpecName("DOM3 Core", "core.html#ID-527DCFF2", "Entity")}}</td> + <td>{{Spec2("DOM3 Core")}}</td> + <td>Ajout de <code>inputEncoding</code>, <code>xmlEncoding</code> et <code>xmlVersion</code>.</td> + </tr> + <tr> + <td>{{SpecName("DOM2 Core", "core.html#ID-527DCFF2", "Entity")}}</td> + <td>{{Spec2("DOM2 Core")}}</td> + <td>Pas de changement.</td> + </tr> + <tr> + <td>{{SpecName('DOM1', 'level-one-core.html#ID-527DCFF2', 'Entity')}}</td> + <td>{{Spec2('DOM1')}}</td> + <td>Définition initiale.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilité_des_navigateurs">Compatibilité des navigateurs</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Fonctionnalité</th> + <th>Chrome</th> + <th>Edge</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Basic support</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Fonctionnalité</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Edge</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Basic support</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> diff --git a/files/fr/orphaned/web/api/entityreference/index.html b/files/fr/orphaned/web/api/entityreference/index.html new file mode 100644 index 0000000000..ee21b2b83f --- /dev/null +++ b/files/fr/orphaned/web/api/entityreference/index.html @@ -0,0 +1,93 @@ +--- +title: EntityReference +slug: Web/API/EntityReference +tags: + - API + - Arborescence + - DOM + - Entité + - Interface + - Noeuds + - Reference +translation_of: Web/API/EntityReference +--- +<p>{{APIRef("DOM")}}{{Obsolete_header}}</p> + +<div class="warning"> +<p>NOTE : Ceci n'est pas implémenté dans Mozilla</p> +</div> + +<p>Référence en lecture seule à une référence d'entité dans l'arborescence DOM. N'a pas de propriétés ou méthodes propres mais hérite de {{domxref("Node")}}.</p> + +<h2 id="Spécifications">Spécifications</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th>Spécification</th> + <th>Statut</th> + <th>Commentaire</th> + </tr> + <tr> + <td>{{SpecName("DOM3 Core", "core.html#ID-11C98490", "EntityReference")}}</td> + <td>{{Spec2("DOM3 Core")}}</td> + <td>Définition initiale</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilité_des_navigateurs">Compatibilité des navigateurs</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Fonctionnalité</th> + <th>Chrome</th> + <th>Edge</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Basic support</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Fonctionnalité</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Edge</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Basic support</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> diff --git a/files/fr/orphaned/web/api/namelist/index.html b/files/fr/orphaned/web/api/namelist/index.html new file mode 100644 index 0000000000..9003767ee3 --- /dev/null +++ b/files/fr/orphaned/web/api/namelist/index.html @@ -0,0 +1,52 @@ +--- +title: NameList +slug: Web/API/NameList +tags: + - API + - DOM + - Obsolete +translation_of: Web/API/NameList +--- +<div>{{APIRef("DOM")}} {{ obsolete_header("10.0") }}</div> + +<div class="note"> +<p><strong>Note:</strong> Bien que cette interface ait été précédemment implémentée dans Gecko, il n'y avait aucun moyen d'en créer une. <code>NameList</code> a été supprimé, en vigueur avec {{ Gecko("10.0") }}</p> +</div> + +<p>L'interface <code><strong>NameList</strong></code> fournit une abstraction pour une collection ordonnée de paires de valeurs de nom et d'espace de noms. Les éléments sont accessibles par un index basé sur 0. La spécification DOM ne spécifie pas comment la collection doit être implémentée.</p> + +<h2 id="Propriétés">Propriétés</h2> + +<dl> + <dt>{{domxref("NameList.length")}} {{readonlyInline}}</dt> +</dl> + +<h2 id="Méthodes">Méthodes</h2> + +<dl> + <dt>{{domxref("NameList.contains()")}}</dt> + <dd>Renvoie un {{jsxref("Boolean")}}.</dd> + <dt>{{domxref("NameList.containsNS()")}}</dt> + <dd>Renvoie un {{jsxref("Boolean")}}.</dd> + <dt>{{domxref("NameList.getName()")}}</dt> + <dd>Renvoie un {{domxref("DOMString")}}.</dd> + <dt>{{domxref("NameList.getNamespaceURI()")}}</dt> + <dd>Renvoie un {{domxref("DOMString")}}.</dd> +</dl> + +<h2 id="Spécifications">Spécifications</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th>Spécification</th> + <th>Statut</th> + <th>Commentaire</th> + </tr> + <tr> + <td>{{SpecName("DOM3 Core", "core.html#NameList", "NameList")}}</td> + <td>{{Spec2("DOM3 Core")}}</td> + <td>Définition initiale.</td> + </tr> + </tbody> +</table> diff --git a/files/fr/orphaned/web/css/@media/index/index.html b/files/fr/orphaned/web/css/@media/index/index.html new file mode 100644 index 0000000000..e227a1aecb --- /dev/null +++ b/files/fr/orphaned/web/css/@media/index/index.html @@ -0,0 +1,12 @@ +--- +title: Index +slug: Web/CSS/@media/Index +tags: + - '@media' + - CSS + - Index +translation_of: Web/CSS/@media/Index +--- +<p>{{CSSRef}}</p> + +<p>{{Index("/fr/docs/Web/CSS/@media")}}</p> diff --git a/files/fr/orphaned/web/css/index/index.html b/files/fr/orphaned/web/css/index/index.html new file mode 100644 index 0000000000..aa0bcd3253 --- /dev/null +++ b/files/fr/orphaned/web/css/index/index.html @@ -0,0 +1,10 @@ +--- +title: Index de la documentation CSS +slug: Web/CSS/Index +tags: + - CSS + - Index + - MDN Meta +translation_of: Web/CSS/Index +--- +<p>{{Index("/fr/docs/Web/CSS")}}</p> diff --git a/files/fr/orphaned/web/html/element/command/index.html b/files/fr/orphaned/web/html/element/command/index.html new file mode 100644 index 0000000000..d5bdf50924 --- /dev/null +++ b/files/fr/orphaned/web/html/element/command/index.html @@ -0,0 +1,117 @@ +--- +title: '<command> : l''élément de commande' +slug: Web/HTML/Element/command +tags: + - Element + - HTML + - Obsolete + - Reference +translation_of: Web/HTML/Element/command +--- +<div>{{obsolete_header}}{{HTMLRef}}</div> + +<p>L'élément HTML <strong><code><command></code></strong> représente une commande qui peut être lancée par l'utilisateur. Ces commandes font généralement partie d'un menu contextuel ou d'une barre d'outils mais on peut les exécuter n'importe où sur la page.</p> + +<div class="note"> +<p><strong>Note :</strong> L'élément <code><command></code> est inclus dans la spécification du W3C mais pas dans celle du WHATWG. Par ailleurs, à l'heure actuelle, aucun navigateur ne prend en charge cet élément.</p> +</div> + +<h2 id="Attributes">Attributes</h2> + +<p>Comme pour tous les éléments, on peut utiliser <a href="/fr/docs/Web/HTML/Attributs_universels">les attributs universels</a> sur cet élément.</p> + +<dl> + <dt>{{htmlattrdef("checked")}}</dt> + <dd>Cet attribut indique que la commande est sélectionnée. Il ne doit pas être utilisé si l'attribut <code>type</code> ne vaut pas <code>checkbox</code> ou <code>radio</code>.</dd> + <dt>{{htmlattrdef("disabled")}}</dt> + <dd>Cet attribut indique que la commande n'est pas disponible.</dd> + <dt>{{htmlattrdef("icon")}}</dt> + <dd>Cet attribut fournit une image qui représente la commande.</dd> + <dt>{{htmlattrdef("label")}}</dt> + <dd>Cet attribut indique le nom de la commande telle qu'elle est affichée à l'utilisateur.</dd> + <dt>{{htmlattrdef("radiogroup")}}</dt> + <dd>Cet attribut indique le nom du groupe de commandes auquel appartient la commande lorsque l'attribut <code>type</code> vaut <code>radio</code> le groupe sera activé lorsque la commande sera activée. Cet attribut ne doit pas être utilisé lorsque l'attribut <code>type</code> ne vaut pas <code>radio</code>.</dd> + <dt>{{htmlattrdef("type")}}</dt> + <dd>Cet attribut à valeur contrainte indique le type de commande. On peut utiliser une des trois valeurs . + <ul> + <li> + <p><code>command</code> (le type par défaut) indique une commande normale.</p> + </li> + <li> + <p><code>checkbox</code> indique que la commande peut être activée grâce à une case à cocher.</p> + </li> + <li> + <p><code>radio</code> indique que la commande peut être activée grâce à un bouton radio.</p> + </li> + </ul> + </dd> +</dl> + +<h2 id="Examples">Examples</h2> + +<h3 id="HTML">HTML</h3> + +<pre class="brush: html"><command type="command" label="Save" + icon="icons/save.png" onclick="save()"> +</pre> + +<h3 id="Résultat">Résultat</h3> + +<p>{{EmbedLiveSample("Exemples","200","100")}}</p> + +<h2 id="Résumé_technique">Résumé technique</h2> + +<table class="properties"> + <tbody> + <tr> + <th scope="row"><a href="/fr/docs/Web/HTML/Catégorie_de_contenu">Catégories de contenu</a></th> + <td><a href="/fr/docs/Web/HTML/Cat%C3%A9gorie_de_contenu#Contenu_de_flux">Contenu de flux</a>, <a href="/fr/docs/Web/HTML/Cat%C3%A9gorie_de_contenu#Contenu_phras%C3%A9">contenu phrasé</a>, <a href="/fr/docs/Web/HTML/Cat%C3%A9gorie_de_contenu#Contenu_de_m%C3%A9ta-donn%C3%A9es">contenu de méta-données</a>.</td> + </tr> + <tr> + <th scope="row">Contenu autorisé</th> + <td>Aucun, cet élément est un élément vide.</td> + </tr> + <tr> + <th scope="row">Omission de balises</th> + <td>La balise de début est obligatoire et la balise de fin est interdite car c'est un élément vide.</td> + </tr> + <tr> + <th scope="row">Éléments parents autorisés</th> + <td>{{HTMLElement("colgroup")}} uniquement bien que celui-ci puisse être défini implicitement car sa balise de début n'est pas obligatoire. L'élément {{HTMLElement("colgroup")}} ne doit pas avoir d'élément fils {{HTMLElement("span")}}.</td> + </tr> + <tr> + <th scope="row">Interface DOM</th> + <td>{{domxref("HTMLCommandElement")}}</td> + </tr> + </tbody> +</table> + +<h2 id="Spécifications">Spécifications</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Spécification</th> + <th scope="col">État</th> + <th scope="col">Commentaires</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', '#commands')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', 'semantics.html#the-command-element', '<command>')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilité_des_navigateurs">Compatibilité des navigateurs</h2> + +<div class="hidden">Ce tableau de compatibilité a été généré à partir de données structurées. Si vous souhaitez contribuer à ces données, n'hésitez pas à envoyer une <em>pull request</em> sur <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a>.</div> + +<p>{{Compat("html.elements.command")}}</p> diff --git a/files/fr/orphaned/web/html/element/element/index.html b/files/fr/orphaned/web/html/element/element/index.html new file mode 100644 index 0000000000..7b2a731677 --- /dev/null +++ b/files/fr/orphaned/web/html/element/element/index.html @@ -0,0 +1,73 @@ +--- +title: '<element> : l''élément pour les éléments personnalisés (obsolète)' +slug: Web/HTML/Element/element +tags: + - Element + - HTML + - Obsolete + - Reference + - Web +translation_of: Web/HTML/Element/element +--- +<div>{{HTMLRef}}{{obsolete_header}}</div> + +<p>L'élément HTML <strong><code><element></code></strong> était conçu pour être utilisé afin de définir des éléments DOM personnalisés, il a été retiré de la spécification. Il a été retiré en faveur d'outils JavaScript qui permettront de créer de nouveaux éléments personnalisés, par exemple avec les Web Components.</p> + +<div class="warning"> +<p><strong>Attention !</strong> Cet élément a été retiré de la spécification. Pour plus d'informations, se référer à cette <a href="https://lists.w3.org/Archives/Public/public-webapps/2013JulSep/0287.html">note</a>.</p> +</div> + +<h2 id="Attributs">Attributs</h2> + +<p>On peut employer <a href="/fr/docs/Web/HTML/Attributs_universels">les attributs universels</a> sur cet élément.</p> + +<h2 id="Résumé_technique">Résumé technique</h2> + +<table class="properties"> + <tbody> + <tr> + <th scope="row"><a href="/fr/docs/Web/HTML/Cat%C3%A9gorie_de_contenu" title="HTML/Content_categories">Catégories de contenu</a></th> + <td><a href="/fr/docs/Web/HTML/Catégorie_de_contenu#Modèle_de_contenu_transparent">Contenu transparent</a>.</td> + </tr> + <tr> + <th scope="row">Contenu autorisé</th> + <td>Indéfini.</td> + </tr> + <tr> + <th scope="row">Omission de balises</th> + <td>{{no_tag_omission}}</td> + </tr> + <tr> + <th scope="row">Éléments parents autorisés</th> + <td>Indéfini.</td> + </tr> + <tr> + <th scope="row">Interface DOM</th> + <td>{{domxref("HTMLElement")}}</td> + </tr> + </tbody> +</table> + +<h2 id="Spécifications">Spécifications</h2> + +<p>Cet élément faisait actuellement partie d'un brouillon de spécification, <em><a href="https://w3c.github.io/webcomponents/spec/custom/">Custom Elements</a></em> mais a été retiré.</p> + +<h2 id="Compatibilité_des_navigateurs">Compatibilité des navigateurs</h2> + +<div class="hidden">Ce tableau de compatibilité a été généré à partir de données structurées. Si vous souhaitez contribuer à ces données, n'hésitez pas à envoyer une <em>pull request</em> sur <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a>.</div> + +<p>{{Compat("html.elements.element")}}</p> + +<h2 id="Voir_aussi">Voir aussi</h2> + +<ul> + <li>Les éléments HTML liés aux composants web (<em>web components</em>) : + + <ul> + <li>{{HTMLElement("content")}}</li> + <li>{{HTMLElement("decorator")}}</li> + <li>{{HTMLElement("shadow")}}</li> + <li>{{HTMLElement("template")}}</li> + </ul> + </li> +</ul> diff --git a/files/fr/orphaned/web/html/global_attributes/dropzone/index.html b/files/fr/orphaned/web/html/global_attributes/dropzone/index.html new file mode 100644 index 0000000000..e645e30973 --- /dev/null +++ b/files/fr/orphaned/web/html/global_attributes/dropzone/index.html @@ -0,0 +1,48 @@ +--- +title: dropzone +slug: Web/HTML/Attributs_universels/dropzone +tags: + - Attribut universel + - HTML + - Obsolete + - Reference +translation_of: Web/HTML/Global_attributes/dropzone +--- +<div>{{HTMLSidebar("Global_attributes")}} {{deprecated_header}}</div> + +<p>L'<a href="/fr/docs/Web/HTML/Attributs_universels">attribut universel</a> <code><strong>dropzone</strong></code> est un attribut à valeur contrainte qui indique le type de contenu qui peut être déposé sur un élément, il est utilisé avec l'<a href="/fr/docs/Web/API/API_HTML_Drag_and_Drop">API <em>Drag & Drop</em></a>. Les valeurs autorisées pour cet attribut sont :</p> + +<ul> + <li><code>copy</code> qui indique que déposer un élément glissé créera une copie de celui-ci</li> + <li><code>move</code> qui indique qu'un élément qui a été glissé sera déplacé vers son nouvel emplacement</li> + <li><code>link</code> qui crée un lien vers les données déplacées</li> +</ul> + +<h2 id="Spécifications">Spécifications</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Spécification</th> + <th scope="col">État</th> + <th scope="col">Commentaires</th> + </tr> + <tr> + <td>{{SpecName('HTML5.1', "editing.html#the-dropzone-attribute", "dropzone")}}</td> + <td>{{Spec2('HTML5.1')}}</td> + <td>Dérivée de {{SpecName('HTML WHATWG')}}, définition initiale</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilité_des_navigateurs">Compatibilité des navigateurs</h2> + +<div class="hidden">Le tableau de compatibilité de cette page a été généré à partir de données structurées. Si vous souhaitez contribuer à ces données, n'hésitez pas à consulter <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> et à nous envoyer une <em>pull request</em>.</div> + +<p>{{Compat("html.global_attributes.dropzone")}}</p> + +<h2 id="Voir_aussi">Voir aussi</h2> + +<ul> + <li><a href="/fr/docs/Web/HTML/Attributs_universels">Les différents attributs universels</a></li> +</ul> diff --git a/files/fr/orphaned/web/javascript/reference/global_objects/array/prototype/index.html b/files/fr/orphaned/web/javascript/reference/global_objects/array/prototype/index.html new file mode 100644 index 0000000000..cb423c22f3 --- /dev/null +++ b/files/fr/orphaned/web/javascript/reference/global_objects/array/prototype/index.html @@ -0,0 +1,181 @@ +--- +title: Array.prototype +slug: Web/JavaScript/Reference/Objets_globaux/Array/prototype +tags: + - Array + - JavaScript + - Propriété + - Prototype + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Array/prototype +--- +<div>{{JSRef}}</div> + +<p>La propriété <strong><code>Array.prototype</code></strong> représente le prototype du constructeur {{jsxref("Array")}} et permet d'ajouter de nouvelles propriétés à l'ensemble des objets <code>Array</code>.</p> + +<h2 id="Description">Description</h2> + +<p>Les instances d'<code>Array</code> héritent de <code>Array.prototype</code>. Comme pour tous les constructeurs, vous pouvez changer l'objet prototype du constructeur afin de modifier toutes les instances d'<code>Array</code>. On peut utiliser cette méthode afin de réaliser des prothèses/<em>polyfills</em>.</p> + +<p>Toutefois, si on utilise le prototype pour ajouter des méthodes ou propriétés non-standards à <code>Array</code>, cela peut entraîner certains problèmes au sein de votre code ou lors de l'<a href="https://developers.google.com/web/updates/2018/03/smooshgate">ajout de fonctionnalités à JavaScript</a>.</p> + +<p>Fait peu connu : <code>Array.prototype</code> est lui-même un objet {{jsxref("Array")}} :</p> + +<pre class="brush: js">Array.isArray(Array.prototype); // true</pre> + +<p>{{js_property_attributes(0,0,0)}}</p> + +<h2 id="Propriétés">Propriétés</h2> + +<dl> + <dt>Array.prototype.constructor</dt> + <dd>Cette propriété définit la fonction qui crée le prototype d'un objet.</dd> + <dt>{{jsxref("Array.prototype.length")}}</dt> + <dd>Cette propriété renvoie le nombre d'éléments d'un tableau.</dd> + <dt>{{jsxref("Array.@@unscopables", "Array.prototype[@@unscopables]")}}</dt> + <dd>Un symbole contenant les noms des propriétés à exclure lors d'une liaison effectuée avec <code><a href="/fr/docs/Web/JavaScript/Reference/Instructions/with">with</a></code>.</dd> +</dl> + +<h2 id="Méthodes">Méthodes</h2> + +<h3 id="Mutateurs">Mutateurs</h3> + +<p>Ces méthodes modifient le tableau :</p> + +<dl> + <dt>{{jsxref("Array.prototype.copyWithin()")}}</dt> + <dd>Cette méthode copie une série d'éléments de tableau dans le tableau.</dd> + <dt>{{jsxref("Array.prototype.fill()")}}</dt> + <dd>Cette méthode remplie tous les éléments d'un tableau avec une même valeur, éventuellement entre un indice de début et un indice de fin.</dd> +</dl> + +<dl> + <dt>{{jsxref("Array.prototype.pop()")}}</dt> + <dd>Cette méthode supprime le dernier élément d'un tableau et retourne cet élément.</dd> + <dt>{{jsxref("Array.prototype.push()")}}</dt> + <dd>Cette méthode ajoute un ou plusieurs éléments à la fin d'un tableau et retourne la nouvelle longueur du tableau.</dd> + <dt>{{jsxref("Array.prototype.reverse()")}}</dt> + <dd>Cette méthode renverse l'ordre des éléments d'un tableau - le premier élément devient le dernier, et le dernier devient le premier. Le tableau est modifié par cette méthode.</dd> + <dt>{{jsxref("Array.prototype.shift()")}}</dt> + <dd>Cette méthode supprime le premier élément d'un tableau et retourne cet élément.</dd> + <dt>{{jsxref("Array.prototype.sort()")}}</dt> + <dd>Cette méthode trie en place les éléments d'un tableau et retourne le tableau.</dd> + <dt>{{jsxref("Array.prototype.splice()")}}</dt> + <dd>Cette méthode permet d'ajouter ou de retirer des éléments d'un tableau.</dd> + <dt>{{jsxref("Array.prototype.unshift()")}}</dt> + <dd>Cette méthode permet d'ajouter un ou plusieurs éléments au début d'un tableau et renvoie la nouvelle longueur du tableau.</dd> +</dl> + +<h3 id="Accesseurs">Accesseurs</h3> + +<p>Ces méthodes ne modifient pas l'état du tableau et en retournent une représentation.</p> + +<dl> + <dt>{{jsxref("Array.prototype.concat()")}}</dt> + <dd>Cette méthode renvoie un nouveau tableau constitué de ce tableau concaténé avec un ou plusieurs autre(s) tableau(x) et/ou valeur(s).</dd> + <dt>{{jsxref("Array.prototype.includes()")}}</dt> + <dd>Cette méthode détermine si le tableau contient ou non un certain élément. Elle renvoie <code>true</code> ou <code>false</code> selon le cas de figure.</dd> + <dt>{{jsxref("Array.prototype.indexOf()")}}</dt> + <dd>Cette méthode retourne le premier (plus petit) index d'un élément égal à la valeur passée en paramètre à l'intérieur du tableau, ou -1 si aucun n'a été trouvé.</dd> + <dt>{{jsxref("Array.prototype.join()")}}</dt> + <dd>Cette méthode concatène tous les éléments d'un tableau en une chaîne de caractères.</dd> + <dt>{{jsxref("Array.prototype.lastIndexOf()")}}</dt> + <dd>Cette méthode retourne le dernier (plus grand) index d'un élément égal à la valeur passée en paramètre à l'intérieur du tableau, ou -1 si aucun n'a été trouvé.</dd> + <dt>{{jsxref("Array.prototype.slice()")}}</dt> + <dd>Cette méthode extrait une portion d'un tableau pour retourner un nouveau tableau constitué de ces éléments.</dd> + <dt>{{jsxref("Array.prototype.toSource()")}} {{Non-standard_inline()}}</dt> + <dd>Cette méthode renvoie la représentation littérale du tableau spécifié ; vous pouvez utiliser cette valeur pour créer un nouveau tableau. Elle redéfinit la méthode {{jsxref("Object.prototype.toSource()")}}.</dd> + <dt>{{jsxref("Array.prototype.toString()")}}</dt> + <dd>Cette méthode renvoie une chaîne de caractères représentant le tableau et ses éléments. Elle redéfinit la méthode {{jsxref("Object.prototype.toString()")}}.</dd> + <dt>{{jsxref("Array.prototype.toLocaleString()")}}</dt> + <dd>Cette méthode retourne une chaîne de caractères représentant le tableau et ses éléments en tenant compte de la locale. Elle redéfinit la méthode {{jsxref("Object.prototype.toLocaleString()")}}.</dd> +</dl> + +<h3 id="Méthodes_itératives">Méthodes itératives</h3> + +<p>Plusieurs méthodes utilisent des fonctions comme argument. Ces fonctions sont utilisées afin de traiter, d'une façon ou d'une autre, chaque élément du tableau. Lorsque ces méthodes sont invoquées, on évalue la longueur du tableau et on traite chacun des éléments dont l'indice est inférieur à la longueur (les éléments ajoutés en cours de route ne seront pas traités). Les autres modifications apportées au tableau (affecter une valeur ou supprimer un élément) peuvent avoir un impact sur les traitements des éléments suivants. Bien que ce comportement soit bien défini pour les différentes méthodes, afin de ne pas complexifier le code outre-mesure, lorsqu'on modifiera un tableau, on en créera une copie avant d'invoquer une telle méthode.</p> + +<dl> + <dt>{{jsxref("Array.prototype.entries()")}}</dt> + <dd>Cette méthode renvoie un nouvel objet <code>Array Iterator</code> qui contient les paires clef/valeur pour chaque index du tableau.</dd> + <dt>{{jsxref("Array.prototype.every()")}}</dt> + <dd>Cette méthode renvoie <code>true</code> si chaque élément du tableau satisfait la fonction de test passée en paramètre.</dd> + <dt>{{jsxref("Array.prototype.filter()")}}</dt> + <dd>Cette méthode crée un nouveau tableau contenant tous les éléments du tableau pour lesquels la fonction de filtrage passée en argument retourne <code>true</code>.</dd> + <dt>{{jsxref("Array.prototype.find()")}}</dt> + <dd>Cette méthode renvoie la valeur d'un élément trouvé dans le tableau et qui satisfait la fonction de test passée en paramètre, <code>undefined</code> sinon.</dd> + <dt>{{jsxref("Array.prototype.findIndex()")}}</dt> + <dd>Cette méthode renvoie l'index d'un élément trouvé dans le tableau qui satisfait la fonction de test passée en paramètre ou -1 si aucun ne la satisfait.</dd> + <dt>{{jsxref("Array.prototype.forEach()")}}</dt> + <dd>Cette méthode appelle une fonction sur chacun des éléments du tableau.</dd> + <dt>{{jsxref("Array.prototype.keys()")}}</dt> + <dd>Cette méthode retourne un nouvel <code>Array Iterator</code> qui contient les indices pour chaque élément dans le tableau.</dd> + <dt>{{jsxref("Array.prototype.map()")}}</dt> + <dd>Cette méthode crée un nouveau tableau contenant les images de chaque élément du tableau de départ par la fonction passée en paramètre.</dd> + <dt>{{jsxref("Array.prototype.reduce()")}}</dt> + <dd>Cette méthode applique une fonction sur un accumulateur et sur chaque valeur du tableau (de gauche à droite) de façon à obtenir une unique valeur à la fin.</dd> + <dt>{{jsxref("Array.prototype.reduceRight()")}}</dt> + <dd>Cette méthode applique une fonction sur un accumulateur et sur chaque valeur du tableau (de droite à gauche) de façon à obtenir une unique valeur à la fin.</dd> + <dt>{{jsxref("Array.prototype.some()")}}</dt> + <dd>Cette méthode renvoie <code>true</code> si au moins un élément du le tableau satisfait la fonction de test passée en paramètre.</dd> + <dt>{{jsxref("Array.prototype.values()")}}</dt> + <dd>Cette méthode renvoie un nouvel objet <code>Array Iterator</code> qui contient les valeurs de chaque indice du tableau.</dd> + <dt>{{jsxref("Array.prototype.@@iterator()", "Array.prototype[@@iterator]()")}} {{experimental_inline}}</dt> + <dd>Cette méthode renvoie un nouvel objet <code>Array Iterator</code> qui contient les valeurs de chaque indice du tableau.</dd> +</dl> + +<h3 id="Méthodes_génériques_(non-standard)">Méthodes génériques (non-standard)</h3> + +<p>De nombreuses méthodes des objets JavaScript de type <code>Array</code> sont conçues pour être appliquées de façon générale à tous les objets qui « ressemblent » à des tableaux. C'est à dire qu'elles peuvent être appliquées à n'importe quel objet qui possède une propriété <code>length</code>, et qui contint des propriétés indexées numériquement (comme lorsque l'on écrit <code>array[5]</code>). Certaines méthodes, comme {{jsxref("Array.join", "join")}}, se contentent de lire la propriété <code>length</code> et d'accéder à ces propriétés numériques de l'objet sur lesquelles on les appelle. D'autres, comme {{jsxref("Array.reverse", "reverse")}}, ont besoin de modifier les propriétés numériques et la longueur d'un objet ; ces méthodes ne peuvent dès lors pas être appelées sur des objets tels que des {{jsxref("String", "String")}}, qui ne permettent pas la modification de leur propriété <code>length</code> ni de leurs propriétés numériques.</p> + +<h2 id="Spécifications">Spécifications</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Spécification</th> + <th scope="col">État</th> + <th scope="col">Commentaires</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('ES1')}}</td> + <td>{{Spec2('ES1')}}</td> + <td>Définition initiale.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.4.3.1', 'Array.prototype')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-array.prototype', 'Array.prototype')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Ajout des méthodes <code>copyWithin()</code>, <code>fill()</code>, <code>entries()</code>, <code>keys()</code>, <code>values()</code>, <code>find()</code>, <code>findIndex()</code>.</td> + </tr> + <tr> + <td>{{SpecName('ES7', '#sec-array.prototype', 'Array.prototype')}}</td> + <td>{{Spec2('ES7')}}</td> + <td>Ajout de la méthode <code>includes()</code>.</td> + </tr> + <tr> + <td>{{SpecName('ESDraft', '#sec-array.prototype', 'Array.prototype')}}</td> + <td>{{Spec2('ESDraft')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilité_des_navigateurs">Compatibilité des navigateurs</h2> + +<div class="hidden">Le tableau de compatibilité de cette page a été généré à partir de données structurées. Si vous souhaitez contribuer à ces données, n'hésitez pas à consulter <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> et à nous envoyer une<em>pull request</em>.</div> + +<p>{{Compat("javascript.builtins.Array.prototype")}}</p> + +<h2 id="Voir_aussi">Voir aussi</h2> + +<ul> + <li>{{jsxref("Array", "Array")}}</li> + <li>{{jsxref("Function.prototype")}}</li> +</ul> diff --git a/files/fr/orphaned/web/javascript/reference/global_objects/asyncfunction/prototype/index.html b/files/fr/orphaned/web/javascript/reference/global_objects/asyncfunction/prototype/index.html new file mode 100644 index 0000000000..7343f73357 --- /dev/null +++ b/files/fr/orphaned/web/javascript/reference/global_objects/asyncfunction/prototype/index.html @@ -0,0 +1,61 @@ +--- +title: AsyncFunction.prototype +slug: Web/JavaScript/Reference/Objets_globaux/AsyncFunction/prototype +tags: + - Experimental + - JavaScript + - Propriété + - Prototype + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/AsyncFunction/prototype +--- +<div>{{JSRef}}</div> + +<p>La propriété <code><strong>AsyncFunction.prototype</strong></code> représente le prototype de l'objet {{jsxref("AsyncFunction")}}.</p> + +<h2 id="Description">Description</h2> + +<p>Les objets {{jsxref("AsyncFunction")}} héritent de <code>AsyncFunction.prototype</code>. <code>AsyncFunction.prototype</code> ne peut pas être modifiée.</p> + +<h2 id="Propriétés">Propriétés</h2> + +<dl> + <dt><code><strong>AsyncFunction.constructor</strong></code></dt> + <dd>La valeur initiale est {{jsxref("AsyncFunction")}}.</dd> + <dt><code><strong>AsyncFunction.prototype[@@toStringTag]</strong></code></dt> + <dd>Renvoie <code>"AsyncFunction"</code>.</dd> +</dl> + +<h2 id="Spécifications">Spécifications</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Spécification</th> + <th scope="col">État</th> + <th scope="col">Commentaires</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('ESDraft', '#sec-async-function-constructor-prototype', 'AsyncFunction.prototype')}}</td> + <td>{{Spec2('ESDraft')}}</td> + <td>Définition initiale dans ES2017.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilité_des_navigateurs">Compatibilité des navigateurs</h2> + +<div> +<div class="hidden">Ce tableau de compatibilité a été généré à partir de données structurées. Si vous souhaitez contribuer à ces données, n'hésitez pas à envoyer une <em>pull request</em> sur <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a>.</div> + +<p>{{Compat("javascript.builtins.AsyncFunction.prototype")}}</p> +</div> + +<h2 id="Voir_aussi">Voir aussi</h2> + +<ul> + <li>{{jsxref("AsyncFunction")}}</li> + <li>{{jsxref("Function")}}</li> +</ul> diff --git a/files/fr/orphaned/web/javascript/reference/global_objects/bigint/prototype/index.html b/files/fr/orphaned/web/javascript/reference/global_objects/bigint/prototype/index.html new file mode 100644 index 0000000000..e746754e5e --- /dev/null +++ b/files/fr/orphaned/web/javascript/reference/global_objects/bigint/prototype/index.html @@ -0,0 +1,63 @@ +--- +title: BigInt.prototype +slug: Web/JavaScript/Reference/Objets_globaux/BigInt/prototype +tags: + - BigInt + - JavaScript + - Propriété + - Prototype + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/BigInt/prototype +--- +<div>{{JSRef}}</div> + +<p>La propriété <strong><code>BigInt.prototype</code></strong> représente le prototype du constructeur {{jsxref("BigInt")}}.</p> + +<p>{{js_property_attributes(0, 0, 0)}}</p> + +<h2 id="Description">Description</h2> + +<p>L'ensemble des instances de {{jsxref("BigInt")}} héritent de <code>BigInt.prototype</code>. Le prototype du constructeur {{jsxref("BigInt")}} peut être modifié afin de modifier l'ensemble des instances de {{jsxref( "BigInt")}}.</p> + +<h2 id="Propriétés">Propriétés</h2> + +<dl> + <dt><code>BigInt.prototype.constructor</code></dt> + <dd>Cette propriété renvoie la fonction qui a crée cette instance. Par défaut, c'est l'objet {{jsxref("BigInt")}}.</dd> +</dl> + +<h2 id="Méthodes">Méthodes</h2> + +<dl> + <dt>{{jsxref("BigInt.prototype.toLocaleString()")}}</dt> + <dd>Cette méthode renvoie une chaîne de caractères représentant le nombre et adaptée à la locale choisie. Cette méthode surcharge la méthode {{jsxref("Object.prototype.toLocaleString()")}}.</dd> + <dt>{{jsxref("BigInt.prototype.toString()")}}</dt> + <dd>Cette méthode renvoie une chaîne de caractères représentant l'objet selon la base indiquée. Cette méthode surcharge la méthode {{jsxref("Object.prototype.toString()")}}.</dd> + <dt>{{jsxref("BigInt.prototype.valueOf()")}}</dt> + <dd>Cette méthode renvoie la valeur primitive de l'objet indiqué. Cette méthode surcharge la méthode {{jsxref("Object.prototype.valueOf()")}}.</dd> +</dl> + +<h2 id="Spécifications">Spécifications</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Spécification</th> + <th scope="col">Etat</th> + <th scope="col">Commentaires</th> + </tr> + </thead> + <tbody> + <tr> + <td><a href="https://tc39.github.io/proposal-bigint/#sec-bigint.prototype">BigInt.prototype</a></td> + <td>Brouillon de niveau 3</td> + <td></td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilité_des_navigateurs">Compatibilité des navigateurs</h2> + +<div class="hidden">Le tableau de compatibilité de cette page a été généré à partir de données structurées. Si vous souhaitez contribuer à ces données, n'hésitez pas à consulter <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> et à nous envoyer une <em>pull request</em>.</div> + +<p>{{Compat("javascript.builtins.BigInt.prototype")}}</p> diff --git a/files/fr/orphaned/web/security/information_security_basics/index.html b/files/fr/orphaned/web/security/information_security_basics/index.html new file mode 100644 index 0000000000..b12ebc595d --- /dev/null +++ b/files/fr/orphaned/web/security/information_security_basics/index.html @@ -0,0 +1,60 @@ +--- +title: Les bases de la sécurité informatique +slug: Apprendre/Tutoriels/Les_bases_de_la_sécurité_informatique +tags: + - Beginner + - Landing + - Learn + - Security +translation_of: Web/Security/Information_Security_Basics +--- +<p>{{draft}}</p> + +<p>Comprendre les bases de la sécurité informatique vous permettra de réaliser l'importance et le rôle de la sécurité au cours du développement d'un projet. Cela vous aidera à éviter d'utiliser des logiciels superflus qui seraient dangereux et qui permettraient à des attaquants d'exploiter des faiblesses à des fins malhonnêtes. Protégez-vous et vos utilisateurs en mettant en pratique les concepts de bases liés à la sécurité.</p> + +<h2 id="Les_concepts_de_base">Les concepts de base</h2> + +<p>Ces articles sont en cours de rédactions. Ils sont destinés à tous les lecteurs, quel que soit leur niveau de compétence sur le sujet. Ces articles ont un ordre logique et les concepts vus dépendent les uns des autres.</p> + +<dl> + <dt><a href="/fr/Apprendre/Confidentialité_intégrité_et_disponibilité">1. Confidentialité, integrité et disponibilité</a></dt> + <dd>Cet article décrit les objectifs principaux, fondamentaux, en termes de sécurité.</dd> + <dt><a href="/fr/Apprendre/Les_vulnérabilités">2. Les vulnérabilités</a></dt> + <dd>Cet article définit les grandes catégories de vulnérabilités et évoque la présence de vulnérabilités dans tous les logiciels.</dd> + <dt><a href="/fr/Apprendre/Threats">3. Les menaces</a></dt> + <dd>Cet article est une introduction aux principaux concepts de menaces.</dd> + <dt><a href="/fr/Apprendre/Security_Controls">4. Les contrôles de sécurité</a></dt> + <dd>Cet article définit les grandes catégories de contrôles et aborde leurs avantages et inconvénients respectifs.</dd> + <dt><a href="/fr/Apprendre/Risk">5. Les risques</a></dt> + <dd>Cet articles est une introduction aux concepts de base sur les risques informatiques.</dd> + <dt><a href="/en-US/docs/Encryption_and_Decryption">6. Chiffrement et déchiffrement</a></dt> + <dd>Cet article couvre les aspects fondamentaux sur le chiffrement et le déchiffrement.</dd> + <dt><a href="/en-US/docs/Digital_Signatures">7. Les signatures numériques</a></dt> + <dd>Cet article est une introduction aux différentes méthodes de signature numérique.</dd> + <dt><a href="/fr/Apprendre/TCP_IP_Security">8. Sécurité TCP/IP</a></dt> + <dd>Cet article est un aperçu du modèle TCP/IP et des aspects de sécurités liés à SSL/TLS.</dd> +</dl> + +<h2 id="Appliquer_les_concepts_de_base">Appliquer les concepts de base</h2> + +<p>Avant de lire les articles de cette section, mieux vaut avoir lu les articles sur les concepts de base ou avoir un niveau de connaissance équivalent.</p> + +<dl> + <dt><a href="/en-US/docs/Introduction_to_SSL">Introduction à SSL</a></dt> + <dd>Cet article est en cours de ré-écriture.</dd> + <dt><a href="/fr/Apprendre/SSL_et_TLS">SSL et TLS</a></dt> + <dd>Cet article fournit une courte introduction à SSL et TLS ainsi qu'aux algorithmes utilisés pour échanger des clés de session. Il aborde également RSA et ECC.</dd> + <dt><a href="/en-US/docs/Introduction_to_Public-Key_Cryptography">Introduction à la cryptographie asymétrique</a></dt> + <dd>Cet article est en cours de refonte.</dd> +</dl> + +<h2 id="Plus_d'informations">Plus d'informations</h2> + +<p>D'autres articles de MDN, plus avancés, concernent la sécurité informatique :</p> + +<ul> + <li><a href="/fr/docs/Mozilla/Security">La sécurité des navigateurs</a></li> + <li><a href="/fr/docs/Web/Security">La sécurité sur le Web</a></li> + <li><a href="/fr/docs/Web/Security/Securing_your_site">Sécuriser son site</a></li> + <li><a href="/fr/docs/Security/Firefox_Security_Basics_For_Developers">Les bases de la sécurité de Firefox, pour les développeurs</a></li> +</ul> diff --git a/files/fr/orphaned/xpcom/liaisons_de_langage/objet_components/index.html b/files/fr/orphaned/xpcom/liaisons_de_langage/objet_components/index.html new file mode 100644 index 0000000000..6389b3393d --- /dev/null +++ b/files/fr/orphaned/xpcom/liaisons_de_langage/objet_components/index.html @@ -0,0 +1,181 @@ +--- +title: Objet Components +slug: XPCOM/Liaisons_de_langage/Objet_Components +--- +<p>L'objet <code>Components</code> est l'objet au travers duquel les fonctionnalités <a href="/fr/XPConnect" title="fr/XPConnect">XPConnect</a> sont reflétées en <a href="/fr/JavaScript" title="fr/JavaScript">JavaScript</a>. Il s'agit en réalité d'une instance native de l'interface <a href="https://dxr.mozilla.org/mozilla-central/source/js/src/xpconnect/idl/xpccomponents.idl" rel="custom">nsIXPCComponents</a> qui est reflétée en JavaScript comme un objet de niveau global à l'aide d'XPConnect.</p> + +<p>Certaines propriétés de <code>Components</code> ont besoin de privilèges élevés et peuvent ne pas fonctionner dans des pages Web.</p> + +<p>L'objet <code>Components</code> dispose des membres suivants :</p> + +<table class="fullwidth-table"> + <tbody> + <tr> + <th>Membre</th> + <th>Description</th> + </tr> + <tr> + <td><code><a href="/fr/Components.classes" title="fr/Components.classes">classes</a></code></td> + <td>tableau de classes par ContractID</td> + </tr> + <tr> + <td><code><a href="/fr/Components.classesByID" title="fr/Components.classesByID">classesByID</a></code></td> + <td>tableau de classes par CID</td> + </tr> + <tr> + <td><code><a href="/fr/Components.Constructor" title="fr/Components.Constructor">Constructor</a></code></td> + <td>constructeur de constructeur de composants</td> + </tr> + <tr> + <td><code><a href="/fr/Components.Exception" title="fr/Components.Exception">Exception</a></code></td> + <td>constructeur d'exception XPConnect</td> + </tr> + <tr> + <td><code><a href="/fr/Components.ID" title="fr/Components.ID">ID</a></code></td> + <td>constructeur de nsID XPCOM</td> + </tr> + <tr> + <td><code><a href="/fr/Components.interfaces" title="fr/Components.interfaces">interfaces</a></code></td> + <td>tableau d'interfaces par nom d'interface</td> + </tr> + <tr> + <td><code><a href="/fr/Components.interfacesByID" title="fr/Components.interfacesByID">interfacesByID</a></code></td> + <td>tableau d'interfaces par IID</td> + </tr> + <tr> + <td><code><a href="/fr/Components.isSuccessCode" title="fr/Components.isSuccessCode">isSuccessCode</a></code></td> + <td>fonction pour déterminer si un résultat donné est un code de réussite</td> + </tr> + <tr> + <td><code><a href="/fr/Components.lastResult" title="fr/Components.lastResult">lastResult</a></code></td> + <td>code de résultat de l'appel XPConnect le plus récent</td> + </tr> + <tr> + <td><code><a href="/fr/Components.manager" title="fr/Components.manager">manager</a></code></td> + <td>le gestionnaire global de composants XPCOM</td> + </tr> + <tr> + <td><code><a href="/fr/Components.results" title="fr/Components.results">results</a></code></td> + <td>tableau des codes de résultats connus par nom</td> + </tr> + <tr> + <td><code><a href="/fr/Components.returnCode" title="fr/Components.returnCode">returnCode</a></code></td> + <td>résultat en attente pour l'appel courant</td> + </tr> + <tr> + <td><code><a href="/fr/Components.stack" title="fr/Components.stack">stack</a></code></td> + <td>pile d'appels JavaScript courante</td> + </tr> + <tr> + <td><code><a href="/fr/Components.utils" title="fr/Components.utils">utils</a></code></td> + <td>donne accès à différentes fonctionnalités utiles</td> + </tr> + <tr> + <td><code><a href="/Fr/Components.utils.evalInSandbox" title="Fr/Components.utils.evalInSandbox">utils.evalInSandbox</a></code></td> + <td>Lance du code JavaScript dans une sandbox, généralement pour lancer du code à privilèges restreints.</td> + </tr> + <tr> + <td><code><a href="/fr/Components.utils.forceGC" title="fr/Components.utils.forceGC">utils.forceGC</a></code></td> + <td> Force un cycle de garbage collection.</td> + </tr> + <tr> + <td><code><a href="/fr/Components.utils.getWeakReference" title="fr/Components.utils.getWeakReference">utils.getWeakReference</a></code></td> + <td> Obtient une référence faible à l'objet passé.</td> + </tr> + <tr> + <td><code><a href="/fr/Components.utils.import" title="fr/Components.utils.import">utils.import</a></code></td> + <td> Charge un module JS dans le script courant, sans partager de visibilité.</td> + </tr> + <tr> + <td><code><a href="/fr/Components.utils.lookupMethod" title="fr/Components.utils.lookupMethod">utils.lookupMethod</a></code></td> + <td>Examine une méthode ou propriété native (c'est-à-dire déclaré dans l'interface) d'un objet XPCOM. Sert à la même chose que <a href="/fr/XPCNativeWrapper" title="fr/XPCNativeWrapper">XPCNativeWrapper</a>.</td> + </tr> + <tr> + <td><code><a href="/fr/Components.utils.reportError" title="fr/Components.utils.reportError">utils.reportError</a></code></td> + <td>Rapporte un objet d'erreur JavaScript dans la <a href="/fr/Console_d'erreurs" title="fr/Console_d'erreurs">Console d'erreurs</a>.</td> + </tr> + <tr> + <td><code><a href="/fr/Components.utils.Sandbox" title="fr/Components.utils.Sandbox">utils.Sandbox</a></code></td> + <td> + <p>Crée des objets de sandbox pout utiliser avec <code>evalInSandbox</code>.</p> + </td> + </tr> + </tbody> +</table> + +<p> </p> + +<dl> + <dd> </dd> + <dt><code><a href="/en/Components.utils" title="en/Components.utils">utils</a></code></dt> + <dd>provides access to several useful features</dd> + <dd> + <dl> + <dt><code>utils.atline</code> </dt> + <dd>Provides access to the value of the <code>atline</code> property in the JavaScript environment.</dd> + <dt><a href="/en/Components.utils.createObjectIn" title="en/Components.utils.createObjectIn"><code>utils.createObjectIn</code></a> </dt> + <dd>Creates a new object in the scope of the specified object's compartment. May only be called from JavaScript code.</dd> + <dt><code><a href="/en/Components.utils.evalInSandbox" title="en/Components.utils.evalInSandbox">utils.evalInSandbox</a></code></dt> + <dd>Runs JavaScript code in a sandbox, usually used to run code with restricted privileges.</dd> + <dt><code><a href="/en/Components.utils.forceGC" title="en/Components.utils.forceGC">utils.forceGC</a></code> </dt> + <dd>Forces a garbage collection cycle.</dd> + <dt><code><a href="/en/Components.utils.getGlobalForObject" title="en/Components.utils.getGlobalForObject">utils.getGlobalForObject</a></code> </dt> + <dd>Returns the global object with which a given object is associated (through its prototype chain at birth, for example).</dd> + <dt><code><a href="/en/Components.utils.getWeakReference" title="en/Components.utils.getWeakReference">utils.getWeakReference</a></code> </dt> + <dd>Gets a weak reference for the object passed in.</dd> + <dt><code><a href="/en/Components.utils.import" title="en/Components.utils.import">utils.import</a></code> </dt> + <dd>Loads a JavaScript module into the current script, without sharing a scope.</dd> + <dt><code><a href="/en/Components.utils.lookupMethod" title="en/Components.utils.lookupMethod">utils.lookupMethod</a></code></dt> + <dd>Looks up a native (i.e. declared in the interface) method or property of an XPCOM object. Serves the same purpose as <a href="/en/XPCNativeWrapper" title="en/XPCNativeWrapper">XPCNativeWrapper</a>.</dd> + <dt><a href="/en/Components.utils.makeObjectPropsNormal" title="en/Components.utils.makeObjectPropsNormal">utils.makeObjectPropsNormal</a> </dt> + <dd>Ensures that all functions come from the specified object's scope, and aren't cross-compartment wrappers. May only be called from JavaScript code.</dd> + </dl> + + <dl> + <dt><code>utils.methodjit</code> <span class="inlineIndicator obsolete obsoleteInline" title="(Firefox 24.0 / Thunderbird 24.0 / SeaMonkey 2.21)">Obsolète depuis Gecko 24.0</span></dt> + <dd>Provides access to the value of the <code>methodjit</code> property in the JavaScript environment.</dd> + </dl> + + <dl> + <dt><code>utils.methodjit_always</code> <span class="inlineIndicator obsolete obsoleteInline" title="(Firefox 24.0 / Thunderbird 24.0 / SeaMonkey 2.21)">Obsolète depuis Gecko 24.0</span></dt> + <dd>Provides access to the value of the <code>methodjit_always</code> property in the JavaScript environment.</dd> + </dl> + + <dl> + <dt><code>utils.relimit</code> </dt> + <dd>Provides access to the value of the <code>relimit</code> property in the JavaScript environment.</dd> + </dl> + + <dl> + <dt><code><a href="/en/Components.utils.reportError" title="en/Components.utils.reportError">utils.reportError</a></code></dt> + <dd>Reports a JavaScript Error object to the <a href="/en/Error_Console" title="en/Error_Console">Error Console</a>.</dd> + <dt><a href="/en/Components.utils.schedulePreciseGC" title="en/Components.utils.schedulePreciseGC"><code>utils.schedulePreciseGC</code></a> </dt> + <dd>Requests that garbage collection occur sometime in the future when no JavaScript code is running; accepts a callback function to receive notification once collection is complete.</dd> + <dt><code><a href="/en/Components.utils.setGCZeal" title="Components.utils.setGCZeal">utils.setGCZeal()</a></code> </dt> + <dd>Sets the GC zeal level for the context.</dd> + </dl> + + <dl> + <dt><code>utils.strict</code> </dt> + <dd>Provides access to the value of the <code>strict</code> property in the JavaScript environment.</dd> + </dl> + + <dl> + <dt><code>utils.werror</code> </dt> + <dd>Provides access to the value of the <code>werror</code> property in the JavaScript environment.</dd> + </dl> + + <dl> + <dt><code><a href="/en/Components.utils.Sandbox" title="en/Components.utils.Sandbox">utils.Sandbox</a></code></dt> + <dd>Creates sandbox objects for use with <code>evalInSandbox</code>.</dd> + <dt><code>utils.xml</code> </dt> + <dd>Provides access to the value of the <code>xml</code> property in the JavaScript environment.</dd> + </dl> + </dd> +</dl> + +<p> </p> + +<p> </p> + +<p><a href="https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XPCOM/Language_Bindings/Components_object">Components object (en)</a></p> diff --git a/files/fr/orphaned/xpcom/reference/standard_xpcom_components/index.html b/files/fr/orphaned/xpcom/reference/standard_xpcom_components/index.html new file mode 100644 index 0000000000..530482fc72 --- /dev/null +++ b/files/fr/orphaned/xpcom/reference/standard_xpcom_components/index.html @@ -0,0 +1,7 @@ +--- +title: Standard XPCOM components +slug: XPCOM/Reference/Standard_XPCOM_components +--- +<p>Il ya un certain nombre de composants fournis dans la mise en œuvre de la norme XPCOM; ceux-ci sont comme suit.</p> + +<p></p><p><strong>There are no subpages at this time.</strong></p><p></p> |