aboutsummaryrefslogtreecommitdiff
path: root/files/fr/mozilla
diff options
context:
space:
mode:
authorPeter Bengtsson <mail@peterbe.com>2020-12-08 21:46:22 -0500
committerPeter Bengtsson <mail@peterbe.com>2020-12-08 21:46:22 -0500
commita065e04d529da1d847b5062a12c46d916408bf32 (patch)
treefe0f8bcec1ff39a3c499a2708222dcf15224ff70 /files/fr/mozilla
parent218934fa2ed1c702a6d3923d2aa2cc6b43c48684 (diff)
downloadtranslated-content-a065e04d529da1d847b5062a12c46d916408bf32.tar.gz
translated-content-a065e04d529da1d847b5062a12c46d916408bf32.tar.bz2
translated-content-a065e04d529da1d847b5062a12c46d916408bf32.zip
update based on https://github.com/mdn/yari/issues/2028
Diffstat (limited to 'files/fr/mozilla')
-rw-r--r--files/fr/mozilla/about_omni.ja_(formerly_omni.jar)/index.html61
-rw-r--r--files/fr/mozilla/add-ons/add-on_debugger/index.html94
-rw-r--r--files/fr/mozilla/add-ons/amo/règles/featured/index.html85
-rw-r--r--files/fr/mozilla/add-ons/amo/règles/index.html21
-rw-r--r--files/fr/mozilla/add-ons/amo/règles/reviews/index.html157
-rw-r--r--files/fr/mozilla/add-ons/bootstrapped_extensions/index.html348
-rw-r--r--files/fr/mozilla/add-ons/distribution/gagner_de_l_argent_avec_les_extensions_de_navigateur/index.html213
-rw-r--r--files/fr/mozilla/add-ons/distribution/retrait_de_votre_extension/index.html68
-rw-r--r--files/fr/mozilla/add-ons/install_manifests/index.html566
-rw-r--r--files/fr/mozilla/add-ons/nous_contacter/index.html45
-rw-r--r--files/fr/mozilla/add-ons/performance_best_practices_in_extensions/index.html103
-rw-r--r--files/fr/mozilla/add-ons/plugins/index.html110
-rw-r--r--files/fr/mozilla/add-ons/sdk/high-level_apis/base64/index.html111
-rw-r--r--files/fr/mozilla/add-ons/sdk/high-level_apis/context-menu/index.html833
-rw-r--r--files/fr/mozilla/add-ons/sdk/high-level_apis/index.html13
-rw-r--r--files/fr/mozilla/add-ons/sdk/high-level_apis/indexed-db/index.html166
-rw-r--r--files/fr/mozilla/add-ons/sdk/high-level_apis/simple-storage/index.html170
-rw-r--r--files/fr/mozilla/add-ons/sdk/high-level_apis/tabs/index.html669
-rw-r--r--files/fr/mozilla/add-ons/sdk/index.html337
-rw-r--r--files/fr/mozilla/add-ons/sdk/low-level_apis/index.html24
-rw-r--r--files/fr/mozilla/add-ons/sdk/low-level_apis/io_byte-streams/index.html109
-rw-r--r--files/fr/mozilla/add-ons/sdk/low-level_apis/io_file/index.html196
-rw-r--r--files/fr/mozilla/add-ons/sdk/low-level_apis/system_child_process/index.html50
-rw-r--r--files/fr/mozilla/add-ons/sdk/low-level_apis/ui_button_action/index.html659
-rw-r--r--files/fr/mozilla/add-ons/sdk/tools/cfx_to_jpm/index.html192
-rw-r--r--files/fr/mozilla/add-ons/sdk/tools/index.html13
-rw-r--r--files/fr/mozilla/add-ons/sdk/tools/jpm/index.html600
-rw-r--r--files/fr/mozilla/add-ons/sdk/tutorials/add_a_context_menu_item/index.html115
-rw-r--r--files/fr/mozilla/add-ons/sdk/tutorials/getting_started_(jpm)/index.html165
-rw-r--r--files/fr/mozilla/add-ons/sdk/tutorials/index.html143
-rw-r--r--files/fr/mozilla/add-ons/sdk/tutorials/l10n/index.html383
-rw-r--r--files/fr/mozilla/add-ons/thunderbird/index.html135
-rw-r--r--files/fr/mozilla/add-ons/thèmes/fond/index.html79
-rw-r--r--files/fr/mozilla/add-ons/thèmes/index.html45
-rw-r--r--files/fr/mozilla/add-ons/thèmes/theme_concepts/index.html231
-rw-r--r--files/fr/mozilla/add-ons/webextensions/embedded_webextensions/index.html219
-rw-r--r--files/fr/mozilla/bugzilla/index.html59
-rw-r--r--files/fr/mozilla/command_line_options/index.html472
-rw-r--r--files/fr/mozilla/css/index.html10
-rw-r--r--files/fr/mozilla/developer_guide/utilisation_de_la_machine_virtuelle_vm/index.html103
-rw-r--r--files/fr/mozilla/enregistrement_chrome/index.html168
-rw-r--r--files/fr/mozilla/firefox/compiler_firefox_avec_rust/index.html38
-rw-r--r--files/fr/mozilla/firefox/deploiement_entreprise/index.html145
-rw-r--r--files/fr/mozilla/firefox/developer_edition/index.html57
-rw-r--r--files/fr/mozilla/firefox/developer_edition/reverting/index.html23
-rw-r--r--files/fr/mozilla/firefox/firefox_esr/index.html15
-rw-r--r--files/fr/mozilla/firefox/headless_mode/index.html124
-rw-r--r--files/fr/mozilla/firefox/le_protocole_about/index.html174
-rw-r--r--files/fr/mozilla/firefox/multiprocessus_firefox/index.html77
-rw-r--r--files/fr/mozilla/firefox/multiprocessus_firefox/motivation/index.html44
-rw-r--r--files/fr/mozilla/firefox/multiprocessus_firefox/technical_overview/index.html164
-rw-r--r--files/fr/mozilla/firefox/privacy/index.html15
-rw-r--r--files/fr/mozilla/firefox/privacy/protection_contre_le_pistage/index.html79
-rw-r--r--files/fr/mozilla/firefox/privacy/protection_du_pistage_par_rebond/index.html101
-rw-r--r--files/fr/mozilla/firefox/versions/14/index.html90
-rw-r--r--files/fr/mozilla/firefox_pour_android/index.html65
-rw-r--r--files/fr/mozilla/firefox_pour_android/test_compatibilite/index.html105
-rw-r--r--files/fr/mozilla/gecko/chrome/css/-moz-window-dragging/index.html107
-rw-r--r--files/fr/mozilla/gecko/chrome/css/_doublecolon_-moz-tree-cell-text(hover)/index.html19
-rw-r--r--files/fr/mozilla/gecko/chrome/css/_doublecolon_-moz-tree-cell-text/index.html32
-rw-r--r--files/fr/mozilla/gecko/chrome/css/_doublecolon_-moz-tree-cell/index.html40
-rw-r--r--files/fr/mozilla/gecko/chrome/css/_doublecolon_-moz-tree-column/index.html31
-rw-r--r--files/fr/mozilla/gecko/chrome/css/_doublecolon_-moz-tree-drop-feedback/index.html30
-rw-r--r--files/fr/mozilla/gecko/chrome/css/_doublecolon_-moz-tree-image/index.html36
-rw-r--r--files/fr/mozilla/gecko/chrome/css/_doublecolon_-moz-tree-indentation/index.html29
-rw-r--r--files/fr/mozilla/gecko/chrome/css/_doublecolon_-moz-tree-line/index.html30
-rw-r--r--files/fr/mozilla/gecko/chrome/css/_doublecolon_-moz-tree-progressmeter/index.html30
-rw-r--r--files/fr/mozilla/gecko/chrome/css/_doublecolon_-moz-tree-row(hover)/index.html19
-rw-r--r--files/fr/mozilla/gecko/chrome/css/_doublecolon_-moz-tree-row/index.html55
-rw-r--r--files/fr/mozilla/gecko/chrome/css/_doublecolon_-moz-tree-separator/index.html31
-rw-r--r--files/fr/mozilla/gecko/chrome/css/_doublecolon_-moz-tree-twisty/index.html35
-rw-r--r--files/fr/mozilla/gecko/chrome/css/index.html25
-rw-r--r--files/fr/mozilla/gecko/chrome/index.html15
-rw-r--r--files/fr/mozilla/gecko/faq/index.html201
-rw-r--r--files/fr/mozilla/gecko/gecko_embedding_basics/index.html403
-rw-r--r--files/fr/mozilla/gecko/index.html118
-rw-r--r--files/fr/mozilla/gecko/mozilla_embarqué/api_overview/index.html422
-rw-r--r--files/fr/mozilla/gecko/mozilla_embarqué/faq_de_mozilla_embarqué/embarquer_gecko/index.html133
-rw-r--r--files/fr/mozilla/gecko/mozilla_embarqué/faq_de_mozilla_embarqué/introduction_à_gecko_et_à_l'embarqué/index.html53
-rw-r--r--files/fr/mozilla/gecko/mozilla_embarqué/index.html59
-rw-r--r--files/fr/mozilla/gecko/mozilla_embarqué/intégration_éditeur/index.html133
-rw-r--r--files/fr/mozilla/gecko/sdk_gecko/index.html61
-rw-r--r--files/fr/mozilla/implementer_pontoon_sur_un_projet_mozilla/index.html76
-rw-r--r--files/fr/mozilla/instantbird/index.html58
-rw-r--r--files/fr/mozilla/internal_css_attributes/index.html20
-rw-r--r--files/fr/mozilla/javascript_astuces/index.html115
-rw-r--r--files/fr/mozilla/javascript_code_modules/index.html93
-rw-r--r--files/fr/mozilla/javascript_code_modules/osfile.jsm/index.html70
-rw-r--r--files/fr/mozilla/javascript_code_modules/osfile.jsm/os.file_for_the_main_thread/index.html1159
-rw-r--r--files/fr/mozilla/javascript_code_modules/services.jsm/index.html283
-rw-r--r--files/fr/mozilla/javascript_code_modules/sqlite.jsm/index.html360
-rw-r--r--files/fr/mozilla/localization/index.html25
-rw-r--r--files/fr/mozilla/localization/index/index.html8
-rw-r--r--files/fr/mozilla/localization/l10n_style_guide/index.html357
-rw-r--r--files/fr/mozilla/localization/localiser_avec_pontoon/index.html135
-rw-r--r--files/fr/mozilla/localization/localization_notes/index.html25
-rw-r--r--files/fr/mozilla/localization/localizing_with_verbatim/index.html169
-rw-r--r--files/fr/mozilla/marketplace/index.html127
-rw-r--r--files/fr/mozilla/marketplace/index/index.html8
-rw-r--r--files/fr/mozilla/marketplace/monetisation/index.html73
-rw-r--r--files/fr/mozilla/marketplace/options/creating_a_store/index.html66
-rw-r--r--files/fr/mozilla/marketplace/options/index.html21
-rw-r--r--files/fr/mozilla/marketplace/options/introduction/index.html25
-rw-r--r--files/fr/mozilla/marketplace/options/open_web_apps_for_android/index.html216
-rw-r--r--files/fr/mozilla/marketplace/options/packaged_apps/index.html92
-rw-r--r--files/fr/mozilla/marketplace/options/self_publishing/index.html144
-rw-r--r--files/fr/mozilla/marketplace/publication/index.html9
-rw-r--r--files/fr/mozilla/marketplace/publication/marketplace_critere_revue/index.html110
-rw-r--r--files/fr/mozilla/marketplace/publication/updating_apps/index.html68
-rw-r--r--files/fr/mozilla/marketplace/publish/index.html25
-rw-r--r--files/fr/mozilla/marketplace/publishing/submit/index.html10
-rw-r--r--files/fr/mozilla/mathml_project/index.html99
-rw-r--r--files/fr/mozilla/mathml_project/mathml_torture_test/index.html1445
-rw-r--r--files/fr/mozilla/mobile/balise_meta_viewport/index.html80
-rw-r--r--files/fr/mozilla/mobile/index.html22
-rw-r--r--files/fr/mozilla/mode_presque_standard_de_gecko/index.html75
-rw-r--r--files/fr/mozilla/participer_au_projet_mozilla/index.html9
-rw-r--r--files/fr/mozilla/preferences/index.html53
-rw-r--r--files/fr/mozilla/projects/emscripten/index.html37
-rw-r--r--files/fr/mozilla/projects/index.html15
-rw-r--r--files/fr/mozilla/projects/rhino/examples/index.html32
-rw-r--r--files/fr/mozilla/projects/rhino/index.html25
-rw-r--r--files/fr/mozilla/projects/talos/index.html8
-rw-r--r--files/fr/mozilla/projects/thunderbird/thunderbird_localisation/index.html95
-rw-r--r--files/fr/mozilla/rejoindre/index.html94
-rw-r--r--files/fr/mozilla/rust/index.html47
-rw-r--r--files/fr/mozilla/security/index.html30
-rw-r--r--files/fr/mozilla/tech/index.html13
-rw-r--r--files/fr/mozilla/tech/visualisation_et_recherche_du_code_source_mozilla_en_ligne/index.html37
-rw-r--r--files/fr/mozilla/tech/xpcom/guide/creating_components/an_overview_of_xpcom/index.html504
-rw-r--r--files/fr/mozilla/tech/xpcom/guide/creating_components/index.html281
-rw-r--r--files/fr/mozilla/tech/xpcom/guide/creating_components/preface/index.html77
-rw-r--r--files/fr/mozilla/tech/xpcom/guide/creating_components/using_xpcom_components/index.html303
-rw-r--r--files/fr/mozilla/tech/xpcom/guide/index.html16
-rw-r--r--files/fr/mozilla/tech/xpidl/index.html22
-rw-r--r--files/fr/mozilla/testing/asan_nightly_project/index.html126
-rw-r--r--files/fr/mozilla/testing/firefox_and_address_sanitizer/index.html11
-rw-r--r--files/fr/mozilla/testing/index.html12
-rw-r--r--files/fr/mozilla/thunderbird/account_examples/index.html71
-rw-r--r--files/fr/mozilla/thunderbird/autoconfiguration/index.html173
-rw-r--r--files/fr/mozilla/thunderbird/index.html72
-rw-r--r--files/fr/mozilla/thunderbird/index/index.html8
-rw-r--r--files/fr/mozilla/trouver_trace_appels_pour_rapport_bug/index.html97
-rw-r--r--files/fr/mozilla/working_with_windows_in_chrome_code/index.html250
144 files changed, 0 insertions, 19989 deletions
diff --git a/files/fr/mozilla/about_omni.ja_(formerly_omni.jar)/index.html b/files/fr/mozilla/about_omni.ja_(formerly_omni.jar)/index.html
deleted file mode 100644
index 9f040164df..0000000000
--- a/files/fr/mozilla/about_omni.ja_(formerly_omni.jar)/index.html
+++ /dev/null
@@ -1,61 +0,0 @@
----
-title: omni.ja (formerly omni.jar)
-slug: Mozilla/About_omni.ja_(formerly_omni.jar)
-translation_of: Mozilla/About_omni.ja_(formerly_omni.jar)
----
-<p>{{ gecko_minversion_header("2.0") }}</p>
-
-<p><span class="seoSummary">Firefox et Thunderbird réalisent des améliorations de performances en déplaçant plusieurs de leurs fichiers autonomes dans un seul fichier JAR appelé <code>omni.ja</code>; ce qui réduit le nombre d'E/S nécessaire pour charger l'application. Cet article couvre le contenu de l'archive et des techniques d'inspection de ces contenus.</span></p>
-
-<div class="note">
-<p><strong>Remarque: </strong>Depuis Firefox 10 et Thunderbird 10, l'extension de fichier <code>.ja</code> est utilisée parce que Windows System Restore ne sauvegarde pas les fichiers <code>.jar</code>.</p>
-</div>
-
-<h2 id="Inspecter_omni.ja">Inspecter omni.ja</h2>
-
-<div class="note"><strong>Remarque: </strong> Lors de l'extraction <code>omni.ja</code>, vous pouvez obtenir de manière incorrecte de faux avertissements de certains logiciels de protection contre les virus.</div>
-
-<p>Plusieurs outils d'archivage et de zip/unzip (y compris toutes les versions de 7-Zip) ne peuvent pas lire <code>omni.ja</code>, en raison de l'optimisation qui est appliquée au fichier. Il est suggéré que les utilisateurs de Windows 7 décompressent le fichier en le renommant <code>omni.zip</code> et en utilisant l'Explorateur Windows pour extraire tous les fichiers. Les utilisateurs de versions plus anciennes de Windows peuvent utiliser <a href="ftp://ftp.info-zip.org/pub/infozip/win32/unz552dn.zip" title="ftp://ftp.info-zip.org/pub/infozip/win32/unz552dn.zip">l'outil</a> InfoZip pour extraire les fichiers - faire une copie de <code>omni.ja</code>, et glisser-déposer sur <code>unzip.exe</code>. Les utilisateurs de Linux peuvent utiliser simplement <strong> unzip </strong> pour decompresser les fichiers de omni.ja.</p>
-
-<p><code>omni.ja </code> est également incompatible avec les fichiers Zip dans l'autre sens; l'édition de fichiers extraits n'affecteront pas Firefox et le zip des fichiers modifiés peuvent empecher Firefox de fonctionner si vous n'utilisez pas les bonnes options. La commande correcte pour zipper <code>omni.ja</code> est:</p>
-
-<pre>zip -qr9XD omni.ja *</pre>
-
-<div class="note"><strong>Remarque: </strong> Avant Firefox 10 et Thunderbird 10, <code>omni.ja</code> était appelé <code>omni.jar</code> .</div>
-
-<h2 id="contenu_de_omni.ja">contenu de omni.ja</h2>
-
-<p>Le fichier <code>omni.ja</code> contient des ressources d'application variés:</p>
-
-<dl>
- <dt><code>chrome.manifest</code></dt>
- <dd>Le fichier <a href="/fr/Chrome_Registration" title="/fr/Chrome_Registration"> chrome manifest</a>.</dd>
- <dt><code>/chrome/</code></dt>
- <dd>fichiers d'interface utilisateur pour l'application</dd>
- <dt><code>/chrome/localized.manifest</code></dt>
- <dd>Manifeste du contenu francisé; référencé par le fichier chrome manifeste principal.</dd>
- <dt><code>/chrome/nonlocalized.manifest</code></dt>
- <dd>Manifest de contenu non-francisé; référencé par le fichier chrome manifeste principal.</dd>
- <dt><code>/components/</code></dt>
- <dd>Composants de l'application reposant sur XPCOM.</dd>
- <dt><code>/defaults/</code></dt>
- <dd>Fichiers de préférences par défaut.</dd>
- <dt><code>/modules</code></dt>
- <dd><a href="/fr/docs/Mozilla/JavaScript_code_modules" title="en/JavaScript code modules">modules de code JavaScript</a>.</dd>
- <dt><code>/res/</code></dt>
- <dd>Divers fichiers de ressources.</dd>
-</dl>
-
-<h2 id="Voir_aussi">Voir aussi</h2>
-
-<ul>
- <li><a href="/fr/Firefox/Versions/4" title="fr/Firefox 4 for developers">Firefox 4 for developers</a></li>
- <li><a href="/fr/docs/Mozilla/Thunderbird/Releases/5" title="fr/Thunderbird 3.3 for developers">Thunderbird 3.3 for developers</a></li>
- <li><a href="https://developer.mozilla.org/en-US/Add-ons/Themes/Obsolete/Theme_changes_in_Firefox_4" title="fr/Theme changes in Firefox 4">Theme changes in Firefox 4</a></li>
- <li><a class="external" href="http://blog.mozilla.com/tglek/2010/09/14/firefox-4-jar-jar-jar/" title="http://blog.mozilla.com/tglek/2010/09/14/firefox-4-jar-jar-jar/">Firefox 4: jar jar jar</a> (blog post)</li>
- <li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=701875">Bug 701875 - Rename omni.jar to omni.ja</a></li>
-</ul>
-
-<div class="noinclude">
-<p>{{ languages( { "ja": "ja/About_omni.jar" } ) }}</p>
-</div>
diff --git a/files/fr/mozilla/add-ons/add-on_debugger/index.html b/files/fr/mozilla/add-ons/add-on_debugger/index.html
deleted file mode 100644
index 0cb1094c3f..0000000000
--- a/files/fr/mozilla/add-ons/add-on_debugger/index.html
+++ /dev/null
@@ -1,94 +0,0 @@
----
-title: Débogueur de module complémentaire
-slug: Mozilla/Add-ons/Add-on_Debugger
-tags:
- - Développement
- - Extensions
- - Firefox
- - Guide
- - JavaScript
- - Modules complémentaires
- - debogueur
-translation_of: 'https://extensionworkshop.com/documentation/develop/debugging/'
----
-<div>{{AddonSidebar}}</div>
-
-<p>Le débogueur de module complémentaire <em>(Add-on)</em> <span id="result_box" lang="fr"><span>vous permet d'exécuter un ensemble d'outils de développement de Firefox dans le contexte de votre module</span></span> :</p>
-
-<ul>
- <li><a href="https://developer.mozilla.org/fr/docs/Outils/D%C3%A9bogueur">Débogueur</a>, <span id="result_box" lang="fr"><span>pour définir des points d'arrêt et examiner l'état interne de votre code</span></span>.</li>
- <li><a href="https://developer.mozilla.org/fr/docs/Outils/Console_Web">Console web</a>, <span id="result_box" lang="fr"><span>pour voir les messages enregistrés et évaluer le JavaScript dans le contexte du module complémentaire</span></span>.</li>
- <li><a href="https://developer.mozilla.org/fr/docs/Outils/Ardoise">Ardoise JavaScript</a>, <span id="result_box" lang="fr"><span>pour évaluer commodément le JavaScript multiligne du module complémentaire et l'enregistrer dans un fichier.</span></span></li>
-</ul>
-
-<p><span id="result_box" lang="fr"><span>Le débogueur de module complémentaire n'est pas disponible pour les modules de superposition XUL requis pour le redémarrage.</span> <span>Pour déboguer des modules comme ceux-ci, utilisez la</span></span> <a href="https://developer.mozilla.org/fr/docs/Outils/Bo%C3%AEte_%C3%A0_outils_du_navigateur">boîte à outils du navigateur</a>.</p>
-
-<p>Pour une rapide introduction sur le débogueur, regardez la rapide démonstration ici (en) :</p>
-
-<p>{{EmbedYouTube("KU3Xsck7qy0")}}</p>
-
-<h2 id="Ouverture_du_débogueur_de_module_complémentaire">Ouverture du débogueur de module complémentaire</h2>
-
-<div class="note">
-<p><span id="result_box" lang="fr"><span>Ceci décrit comment ouvrir le débogueur à partir de Firefox 45.</span> <span>Pour les versions antérieures de Firefox, vous devez :</span></span></p>
-
-<ul>
- <li>
- <p><span id="result_box" lang="fr"><span>activer le débogage d'extension en cochant les <a href="https://developer.mozilla.org/fr/docs/Outils/Settings">options</a> «Activer les scripts chrome et boîte à outils de débogage des extensions» <em>(</em></span></span><em>Enable browser chrome and add-on debugging toolboxes)</em> <span lang="fr"><span>et «Activer le débogage distant» <em>(</em></span></span><em>Enable remote debugging)</em> <span lang="fr"><span>dans les outils de développement</span></span></p>
- </li>
- <li>
- <p><span id="result_box" lang="fr"><span>trouver l'extension dans about:addons (pas </span></span> about:debugging<span lang="fr"><span>), et cliquer sur le bouton "Debogage" sur cette page.</span></span></p>
- </li>
-</ul>
-
-<ul>
-</ul>
-</div>
-
-<p><span id="result_box" lang="fr"><span>Pour connecter le débogueur d'extensions à un module complémentaire, ouvrez la page <a href="https://developer.mozilla.org/fr/docs/Outils/about:debugging">modules</a> dans Firefox, assurez-vous que la case "</span></span>Activer le débogage des modules<span lang="fr"><span>" est cochée et cliquez sur le bouton "Déboguer" à proximité de votre add-on</span> <span>dans la page.</span></span></p>
-
-<p><span id="result_box" lang="fr"><span>Ensuite, vous verrez une boîte de dialogue vous demandant d'accepter une connexion entrante.</span> <span>Cliquez sur "OK", et le débogueur va commencer dans une fenêtre séparée.</span> <span>Notez que parfois la fenêtre du débogueur est masquée par la fenêtre principale de Firefox.</span></span></p>
-
-<p>{{EmbedYouTube("tGGcA3bT3VA")}}</p>
-
-<h2 id="Utilisation_du_débogueur_de_module_complémentaire">Utilisation du débogueur de module complémentaire</h2>
-
-<p><span id="result_box" lang="fr"><span>Le débogueur de module complémentaire a une apparence et un comportement proches de ceux de la <a href="https://developer.mozilla.org/fr/docs/Outils/Bo%C3%AEte_%C3%A0_outils_du_navigateur">Boîte à outils du navigateur</a>, à ceci près que, que la portée de la boîte à outils est l'intégralité du navigateur, alors que celle du débogueur de module est sur le seul module pour lequel il a été lancé.</span> <span>À l'instar de la boîte à outils du navigateur, une barre d'outils en haut vous permet de basculer entre plusieurs outils différents.</span> <span>Dans Firefox 31, il n'y a qu'un seul outil, le débogueur JavaScript, mais à partir de Firefox 32, vous obtenez également la console et l'ardoise.</span></span></p>
-
-<h3 id="Le_débogueur_JavaScript">Le débogueur JavaScript</h3>
-
-<p><span id="result_box" lang="fr"><span>Il se comporte comme le <a href="https://developer.mozilla.org/fr/docs/Outils/D%C3%A9bogueur">débogueur JavaScript</a> normal, à l'exception de sa portée qui est le module complémentaire et non une page Web.</span> <span>Sur la gauche, il répertorie les sources JavaScript:</span></span></p>
-
-<ul>
- <li><span id="result_box" lang="fr"><span>en haut <code>bootstrap.js</code> : celui que vous avez écrit si votre extension est un <a href="https://developer.mozilla.org/fr/Add-ons/Bootstrapped_extensions">module complémentaire "bootstrapé"</a> <em>(avec des commandes de démarrage écrites manuellement)</em> , ou celui inclus dans le SDK si votre extension est un module complémentaire SDK.</span></span></li>
- <li><span id="result_box" lang="fr"><span>ensuite, si votre extension est un module complémentaire SDK, vous trouverez le fichier <code>main.js</code> de votre module, tous les <a href="https://developer.mozilla.org/fr/Add-ons/SDK/Guides/Module_structure_of_the_SDK#Modules_locaux">modules locaux</a> livrés avec et les scripts de contenu actuellement chargés</span></span></li>
- <li>puis, <span id="result_box" lang="fr"><span>tous les modules SDK utilisés directement ou indirectement par votre extension.</span></span></li>
-</ul>
-
-<h4 id="Scripts_de_contenu">Scripts de contenu</h4>
-
-<p><span id="result_box" lang="fr"><span>Les scripts de contenu ne sont listés que s'ils sont chargés.</span> <span>Par conséquent, si votre module complémentaire <a href="/fr/docs/">charge un script de contenu</a> avec <code>contentScriptFile</code>, le fichier n'apparaîtra pas dans les sources du débogueur tant que vous n'allez pas sur une page qui le charge.</span></span></p>
-
-<p><span id="result_box" lang="fr"><span>Si vous définissez un point d'arrêt dans un script de contenu, il ne sera pas actif pour les instances du script de contenu chargées après la définition du point d'arrêt.</span></span></p>
-
-<p><span id="result_box" lang="fr"><span>Par exemple, supposons que vous ayez un module complémentaire qui attache un script de contenu à chaque onglet chargé par l'utilisateur.</span> <span>Le script de contenu ajoute un gestionnaire de clics à la page.</span> <span>Dès que vous ouvrez un onglet, ce script de contenu sera répertorié dans le débogueur.</span> <span>Si vous définissez ensuite un point d'arrêt dans le gestionnaire de clics du script de contenu, l'exécution s'arrêtera lorsque vous cliquerez sur la page.</span> <span>Mais si vous ouvrez un nouvel onglet, il y a maintenant deux instances du script de contenu, et le point d'arrêt ne sera pas activé pour la deuxième instance. Vous devez définir un nouveau point d'arrêt si vous voulez qu'il fonctionne pour la seconde.</span></span></p>
-
-<p><span class="short_text" id="result_box" lang="fr"><span>Nous étudions des améliorations à ce</span></span> <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1016046">bug 1016046</a>.</p>
-
-<h3 id="La_console">La console</h3>
-
-<p>La console se comporte comme la <a href="https://developer.mozilla.org/fr/docs/Outils/Console_Web">console web</a>, mais sa portée est le module complémentaire et non une page web.</p>
-
-<p><span id="result_box" lang="fr"><span>Notez toutefois qu'elle s'exécute réellement dans le contexte du <code>bootstrap.js</code> du module complémentaire, ce qui n'est peut-être pas ce à quoi vous vous attendez si votre module utilise le SDK : vous ne verrez aucun objet défini dans le <code>main.js</code></span><span>de votre extension, et vous ne verrez pas <code>require()</code> non plus.</span> <span>Ce problème fait l'objet d'un suivi</span></span>  <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1005193">bug 1005193</a>.</p>
-
-<p>Vous pouvez exécuter des instructions de la console dans le contexte de <code>main.js</code> <span id="result_box" lang="fr"><span>tandis que l'exécution est interrompue dans</span></span> <code>main.js</code>.</p>
-
-<h3 id="L'ardoise_JavaScript">L'ardoise JavaScript</h3>
-
-<p>L'ardoise se comporte comme l'<a href="https://developer.mozilla.org/fr/docs/Outils/Ardoise">ardoise JavaScript</a> normale, <span id="result_box" lang="fr"><span>mais sa portée est l'extension et non la page web.</span></span></p>
-
-<p><span id="result_box" lang="fr"><span>Comme pour la console, le module complémentaire s'exécute dans le contexte du <code>bootstrap.js</code> du module complémentaire, même s'il utilise le SDK et, comme avec la console, vous pouvez exécuter le code de l'ardoise dans le contexte de <code>main.js</code> pendant que l'exécution</span> <span>est suspendue dans main.js.</span></span></p>
-
-<h2 id="Débogage_des_pages_chrome_et_about">Débogage des pages chrome: et about:</h2>
-
-<p><span id="result_box" lang="fr"><span>À partir de Firefox 37, vous pouvez déboguer les pages chrome: et about: en utilisant le débogueur normal, comme s'il s'agissait de pages de contenu ordinaires.</span></span></p>
diff --git a/files/fr/mozilla/add-ons/amo/règles/featured/index.html b/files/fr/mozilla/add-ons/amo/règles/featured/index.html
deleted file mode 100644
index 6955588244..0000000000
--- a/files/fr/mozilla/add-ons/amo/règles/featured/index.html
+++ /dev/null
@@ -1,85 +0,0 @@
----
-title: AMO Featured Extensions Policies
-slug: Mozilla/Add-ons/AMO/Règles/Featured
-translation_of: Mozilla/Add-ons/AMO/Policy/Featured
----
-<p>{{AddonSidebar}}</p>
-
-<p>Featured add-ons are top-quality extensions and themes highlighted on <a href="https://addons.mozilla.org/en-US/firefox/extensions/?sort=featured">AMO</a>, Firefox's Add-ons Manager, and across other Mozilla websites. These add-ons showcase the power of Firefox customization and are useful to a wide audience.</p>
-
-<p>Featured extensions are chosen by the Featured Extensions Advisory Board, a small group of extension developers and fans from the Mozilla community who have volunteered to review and vote on nominations.</p>
-
-<p>New <a href="https://addons.mozilla.org/en-US/firefox/search/?featured=true&amp;type=extension">featured extensions</a> are chosen every month.</p>
-
-<h3 id="Criteria_for_Featured_Extensions">Criteria for Featured Extensions</h3>
-
-<p>Before nominating an extension to be featured, please ensure it meets the following criteria:</p>
-
-<ol>
- <li>The extension must have a complete and informative listing on AMO. This means:
- <ul>
- <li>a 64-pixel custom icon</li>
- <li>a clear and concise name (no lengthy keywords)</li>
- <li>a clear and concise summary of the extension's functionality</li>
- <li>detailed description and privacy policy, if applicable</li>
- <li>updated screenshots of the extension's functionality</li>
- </ul>
- </li>
- <li>The extension must have excellent user reviews and any problems or support requests must be promptly addressed by the developer.</li>
- <li>The extension must have a minimum of 500 users.</li>
- <li>The extension must be built with <a href="https://developer.mozilla.org/Add-ons/WebExtensions">WebExtensions</a> API.</li>
- <li>The extension must be compatible with the latest release of Firefox.</li>
- <li><strong>Most importantly</strong>, the extension must have wide consumer appeal to Firefox's users and be outstanding in nearly every way: user experience, performance, security, and usefulness or entertainment value.</li>
-</ol>
-
-<h3 id="Discovery_Pane">Discovery Pane</h3>
-
-<p>The Get Add-ons section (also referred to as the Discovery Pane) in about:addons serves a distinct editorial function: it is a tightly curated list of extensions and themes selected by Mozilla staff to address an array of the most common user needs (e.g. ad blockers, screenshot tools, etc.). The Discovery Pane is primarily intended to introduce extensions to Firefox users who have limited experience with browser customization. As such, we only select extensions that meet the highest standards of functionality, user experience, and Firefox compatibility.</p>
-
-<p>Only content that is part of AMO’s <a class="external text" href="https://addons.mozilla.org/en-US/firefox/search/?featured=true&amp;type=extension" rel="nofollow">Featured Extensions collection</a> will be considered for the Discovery Pane; please note that featured content must meet certain <a href="https://wiki.mozilla.org/AMO/Featured_Board_Process#Add-on_Requirements" title="AMO/Featured Board Process">criteria</a>.</p>
-
-<p>Discovery Pane content is updated monthly, though some highly popular extensions may remain on the page for an indefinite period of time.</p>
-
-<p>If you’d like to nominate a great extensions for consideration in the Discovery Pane, please send us a link to the add-on on AMO to <strong>amo-featured@mozilla.org</strong> and we’ll add your nomination to the editorial review queue. There’s no need to mention you’re nominating add-ons specifically for the Discovery Pane, but feel free to note that if you like.</p>
-
-<h3 id="Nominating_an_Add-on">Nominating an Add-on</h3>
-
-<p>If you wish to nominate an extension to be featured and it meets the criteria above, send an email to <a href="mailto:amo-featured@mozilla.org">amo-featured@mozilla.org</a> with:</p>
-
-<ul>
- <li>the extension name, URL, and whether you are its developer</li>
- <li>a short explanation of why the extension has wide appeal and should be featured</li>
- <li>optionally, links to any external reviews or articles mentioning the extension</li>
-</ul>
-
-<p>Extension nominations are reviewed by the Advisory Board once a month. Common reasons for rejection include lacking wide appeal to consumers, a suboptimal user experience, quality or security issues, incompatibility, and similarity to another featured extension. Rejected extension cannot be re-nominated within 3 months.</p>
-
-<h3 id="Rotating_Featured_Extensions">Rotating Featured Extensions</h3>
-
-<p>Mozilla and the Featured Extensions Advisory Board regularly evaluate and rotate out featured extensions. Some of the most common reasons for extensions being removed from the featured list are:</p>
-
-<ul>
- <li>Lack of growth — Extensions that are featured typically experience a substantial gain in both downloads and active users. If an extension is not demonstrating growth in any substantial way, that's a good indicator the extension may not be very useful to our users.</li>
- <li>Negative reviews — Featured extensions should have a great experience and very few bugs, so extensions with many negative reviews may be reconsidered.</li>
- <li>Incompatibility with upcoming Firefox versions — Featured extensions are expected to be compatible with stable and beta versions of Firefox. Extensions not yet compatible with a Beta version of Firefox four weeks before its expected release will lose their featured status.</li>
-</ul>
-
-<h3 id="Joining_the_Featured_Extensions_Advisory_Board">Joining the Featured Extensions Advisory Board</h3>
-
-<p>Every six months a new Advisory Board is chosen based on applications from the add-ons community. Members must:</p>
-
-<ul>
- <li>be active members of the add-ons community, whether as a developer, evangelist, or fan</li>
- <li>commit to trying all the nominations submitted, giving their feedback, and casting their votes every month</li>
- <li>abstain from voting on extensions that they have any business or personal affiliations with, as well as direct competitors of any such extensions</li>
-</ul>
-
-<p>Members of the Mozilla Add-ons team may veto any extension's selection because of security, privacy, compatibility, or any other reason, but in general it is up to the Board to select extensions to feature.</p>
-
-<p>This featured policy only applies to the addons.mozilla.org global list of featured extensions. Extensions featured in other locations are often pulled from this list, but Mozilla may feature any extension in other locations without the Board's consent. Additionally, locale-specific features override the global defaults, so if a locale has opted to select its own features, some or all of the global features may not appear in that locale.</p>
-
-<p>Follow the <a href="http://blog.mozilla.com/addons">Add-ons Blog</a> or <a href="http://www.twitter.com/mozamo">@mozamo</a> on Twitter to learn when the next application period opens.</p>
-
-<p><em>Last updated: April 12, 2018</em></p>
-
-<p><span class="comment seoSummary">How up-and-coming add-ons become featured and what's involved in the process. </span></p>
diff --git a/files/fr/mozilla/add-ons/amo/règles/index.html b/files/fr/mozilla/add-ons/amo/règles/index.html
deleted file mode 100644
index c99c0d1094..0000000000
--- a/files/fr/mozilla/add-ons/amo/règles/index.html
+++ /dev/null
@@ -1,21 +0,0 @@
----
-title: Règles des modules
-slug: Mozilla/Add-ons/AMO/Règles
-translation_of: Mozilla/Add-ons/AMO/Policy
----
-<p>{{AddonSidebar}}</p>
-
-<p><span id="result_box" lang="fr"><span>Mozilla s'engage à assurer une excellente expérience pour nos utilisateurs et développeurs d'extensions.</span> <span>Veuillez consulter les règles ci-dessous avant de soumettre votre module.</span></span></p>
-
-<dl>
- <dd></dd><dt><a href="/Mozilla/Add-ons/AMO/Policy/Agreement">Agrément du développeur</a></dt>
-<dd>Effective January 5, 2016</dd><br>
- <dt><a href="/Mozilla/Add-ons/AMO/Policy/Reviews">Processus de revue</a></dt>
-<dd>Add-ons extend the core capabilities of Firefox, allowing users to modify and personalize their Web experience. A healthy add-on ecosystem, built on trust, is vital for developers to be successful and users to feel safe making Firefox their own. For these reasons, Mozilla requires all add-ons to comply with the following set of policies on acceptable practices. The below is not intended to serve as legal advice, nor is it intended to serve as a comprehensive list of terms to include in your add-on’s privacy policy.</dd><br>
- <dt><a href="/Mozilla/Add-ons/AMO/Policy/Featured">Présentation des extensions</a></dt>
-<dd>How up-and-coming add-ons become featured and what's involved in the process. </dd><br>
- <strong><a href="/en-US/Add-ons#Contact_us">Nous contacter</a></strong>
-
- <p> Comment nous contacter à propos de ces règles ou de votre module.</p>
-
-</dl>
diff --git a/files/fr/mozilla/add-ons/amo/règles/reviews/index.html b/files/fr/mozilla/add-ons/amo/règles/reviews/index.html
deleted file mode 100644
index fab668a282..0000000000
--- a/files/fr/mozilla/add-ons/amo/règles/reviews/index.html
+++ /dev/null
@@ -1,157 +0,0 @@
----
-title: Add-on Policies
-slug: Mozilla/Add-ons/AMO/Règles/Reviews
-translation_of: Mozilla/Add-ons/AMO/Policy/Reviews
----
-<p>{{AddonSidebar}}</p>
-
-<p>Add-ons extend the core capabilities of Firefox, allowing users to modify and personalize their Web experience. A healthy add-on ecosystem, built on trust, is vital for developers to be successful and users to feel safe making Firefox their own. For these reasons, Mozilla requires all add-ons to comply with the following set of policies on acceptable practices. The below is not intended to serve as legal advice, nor is it intended to serve as a comprehensive list of terms to include in your add-on’s privacy policy.</p>
-
-<p>All add-ons are subject to these policies, regardless of how they are distributed. Add-ons that do not comply with these policies may be subject to rejection or disabling by Mozilla.</p>
-
-<h2 id="No_Surprises">No Surprises</h2>
-
-<p>Surprises can be appropriate in many situations, but they are not welcome when user security, privacy and control are at stake. It is extremely important to be as transparent as possible when submitting an add-on. Users should be able to easily discern what the functionality of your add-on is and not be presented with unexpected user experiences after installing it.</p>
-
-<h3 id="Unexpected_Features">Unexpected Features</h3>
-
-<p>“Unexpected” features are those that are unrelated to the add-on’s primary function, and are not likely from the add-on name or description to be expected by a user installing that add-on.</p>
-
-<p>Should an add-on include any unexpected feature that falls into one of the following categories:</p>
-
-<ul>
- <li>Potentially compromises user privacy or security (like sending data to third parties)</li>
- <li>Changes default settings like the new tab page, homepage or search engine</li>
- <li>Makes unexpected changes to the browser or web content</li>
- <li>Includes features or functionality not related to the add-on’s core function(s)</li>
-</ul>
-
-<p>Then the “unexpected” feature(s) must adhere to all of the following requirements:</p>
-
-<ul>
- <li>The add-on description must clearly state what changes the add-on makes.</li>
- <li>All changes must be “opt-in”, meaning the user has to take non-default action to enact the change. Changes that prompt users via the permissions system don’t require an additional opt-in.</li>
- <li>The opt-in interface must clearly state the name of the add-on requesting the change.</li>
-</ul>
-
-<h2 id="Content">Content</h2>
-
-<p>Add-ons that make use of Mozilla trademarks must comply with the <a href="https://www.mozilla.org/en-US/foundation/trademarks/policy/">Mozilla Trademark Policy</a>. If the add-on uses “Firefox” in its name, the naming standard the add-on is expected to follow is “&lt;Add-on name&gt; for Firefox”.</p>
-
-<p>In addition, add-ons listed on addons.mozilla.org (AMO) must adhere to the following policies:</p>
-
-<ul>
- <li>All add-ons submitted for listing on AMO are subject to Mozilla’s <a href="https://www.mozilla.org/en-US/about/legal/acceptable-use/">Conditions of Use</a>.</li>
- <li>Add-ons must disclose when payment is required to enable any functionality.</li>
- <li>Any add-ons, or add-on content, hosted on Mozilla site(s) must conform to the laws of the United States.</li>
- <li>The add-on listing should have an easy-to-read description about everything it does, and any information it collects. Please consult our best practices guide for <a href="https://developer.mozilla.org/en-US/Add-ons/Listing">creating an appealing listing</a>.</li>
- <li>Add-ons that are intended for internal or private use, or for distribution testing may not be listed on AMO. Such add-ons may be <a href="https://developer.mozilla.org/en-US/Add-ons/Distribution#Self-distributed_(unlisted)_versions">uploaded for self-distribution</a> instead.</li>
- <li>If the add-on is a fork of another add-on, the name must clearly distinguish it from the original and provide a significant difference in functionality and/or code.</li>
-</ul>
-
-<h2 id="Submission_Guidelines">Submission Guidelines</h2>
-
-<p>Add-ons must function only as described, and should provide an appealing user experience. Based on the description of the add-on, a user must be able to understand and use the add-on’s features without requiring expert knowledge. Tips on how to create a good user experience for your add-on can be found <a href="https://developer.mozilla.org/en-US/Add-ons/WebExtensions/User_experience_best_practices">here</a>.</p>
-
-<p>During review, the add-on undergoes basic testing in addition to code review. To facilitate the functional testing, the add-on author must provide testing information and, if applicable, testing credentials required to use the add-on if an account is needed for any part of the add-on’s functionality.</p>
-
-<p>Issues brought up during review must be addressed using best efforts. If corrections have been requested, the new version should not contain unrelated changes, as this complicates the review process and can lead to further rejections.</p>
-
-<h3 id="Source_Code_Submission">Source Code Submission</h3>
-
-<p>Add-ons may contain transpiled, obfuscated, minified or otherwise machine-generated code, but Mozilla needs to review a copy of the human-readable source code. The author must provide this information to Mozilla during submission as well as instructions on how to reproduce the build.</p>
-
-<p>The provided source code will be reviewed by an administrator and will not be redistributed in any way. The code will only be used for the purpose of reviewing the add-on. Failure to provide this information will result in rejection.</p>
-
-<p>Please read our <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/Source_Code_Submission">Source Code Submission guidelines</a> to avoid unexpected rejections.</p>
-
-<h2 id="Development_Practices">Development Practices</h2>
-
-<p>In general, developers are free to maintain their add-ons in the manner they choose. However, in order to maintain appropriate data security and effectively review code, we do have certain technical requirements that all add-ons must meet. In particular, potentially dangerous APIs may only be used in ways that are demonstrably safe, and code within add-ons that cannot be verified as behaving safely and correctly may need to be refactored.</p>
-
-<p>While any code, method or practice in a submitted add-on is subject to review and rejection, the following requirements are of particular importance:</p>
-
-<ul>
- <li>Add-ons must only request those permissions that are necessary for function</li>
- <li>Add-ons must be self-contained and not load remote code for execution</li>
- <li>Add-ons must use encrypted channels for sending sensitive user data</li>
- <li>Add-ons should avoid including duplicate or unnecessary files</li>
- <li>Add-on code must be written in a way that is reviewable and understandable. Reviewers may ask you to refactor parts of the code if it is not reviewable.</li>
- <li>Add-ons must not negatively impact the performance or stability of Firefox.</li>
- <li>Only release versions of third-party libraries and/or frameworks may be included with an add-on. Modifications to these libraries/frameworks are not permitted.</li>
-</ul>
-
-<h2 id="Data_Disclosure_Collection_and_Management">Data Disclosure, Collection and Management</h2>
-
-<p>You must disclose how the add-on collects, uses, stores and shares user data in the privacy policy field on AMO. Mozilla expects that the add-on limits data collection whenever possible, in keeping with Mozilla’s <a href="https://www.mozilla.org/en-US/about/policy/lean-data/">Lean Data Practices</a> and Mozilla’s <a href="https://www.mozilla.org/en-US/privacy/principles/">Data Privacy Principles</a>, and uses the data only for the purpose for which it was originally collected.</p>
-
-<p>User data includes all information the add-on collects, regardless of the manner. It can be personal data actively provided by the user (such as a name or email address), technical data (such as operating system, build ID, version numbers, crash reports, activation, updates), and interaction or activity data (add-on activity data, visited URLs, console logs), including interactions with Firefox.</p>
-
-<p>The add-on’s privacy policy must be the full policy text; it cannot be a link to an externally hosted privacy policy. In addition, the privacy policy must:</p>
-
-<ul>
- <li>be specific and exclusive to the add-on,</li>
- <li>clearly describe the purpose of the data collection,</li>
- <li>set forth the exact data to be collected,</li>
- <li>address the add-on’s particular privacy properties.</li>
-</ul>
-
-<p>A summary of this information must be included in the add-on’s listing description. Finally, you and your add-on must also comply with all applicable data privacy laws as well as any other laws that may apply to your specific add-on.</p>
-
-<h3 id="User_Interactions_Technical_Data">User Interactions &amp; Technical Data</h3>
-
-<ul>
- <li>Users must be provided a clear way to control this data collection. The control mechanism must be shown during the installation process of the add-on.</li>
- <li>Add-ons must only collect information about add-on performance and/or use.</li>
- <li>Collecting ancillary information (e.g. any data not explicitly required for the add-on’s basic functionality) is prohibited.</li>
-</ul>
-
-<h3 id="Cookies">Cookies</h3>
-
-<ul>
- <li>If your add-on installs cookies, this must also be disclosed in the add-on’s privacy policy.</li>
- <li>The add-on privacy policy must clearly express the placing and purposes of the cookie(s). It is highly recommended that you disclose the types of cookies being used.</li>
- <li>Users must be provided an opportunity to refuse the storage of or access to cookies, and must be informed of the consequences of doing so (e.g., without a functional cookie, the add-on may not work).</li>
- <li>Installing cookies that are not explicitly required for the add-on’s functionality is prohibited.</li>
-</ul>
-
-<h3 id="Personal_Data">Personal Data</h3>
-
-<ul>
- <li>If you are collecting any personal information, the users must provide affirmative consent (i.e., explicit opt-in from the user). It must be clear to the user that they give consent to the collection of personal data.</li>
- <li>Collecting ancillary personal information (e.g., any data not explicitly required for the add-on’s basic functionality) is prohibited.</li>
- <li>Any transmission of this type of data must use secure, encrypted connections.</li>
-</ul>
-
-<h3 id="Additional_Privacy_Protocols">Additional Privacy Protocols</h3>
-
-<ul>
- <li>Leaking local or user-sensitive information to websites or other processes (e.g., using native messaging) is prohibited.</li>
- <li>If the add-on uses native messaging, the privacy policy must clearly disclose which information is being exchanged with the native application. Data exchanged with the native application must be in accordance with our No Surprises policy.</li>
- <li>HTTPS must be used for security and privacy-sensitive operations such as transmitting passwords or tokens.</li>
- <li>Browsing data from private browsing sessions must not be stored.</li>
- <li>Identity information must not be leaked to web content in private browsing sessions.</li>
-</ul>
-
-<h2 id="Security_Vulnerabilities">Security Vulnerabilities</h2>
-
-<p>Because add-ons run in an environment with elevated privileges relative to ordinary web pages, they present a very serious set of security considerations. They have the potential to open security holes not only in the add-ons themselves, but also in the browser, in web pages, and, in particularly distressing cases, the entire system the browser is running on.</p>
-
-<p>As a result, we take our security policies very seriously and apply them to all add-ons, whether hosted on AMO or not. We expect all add-ons to be secure and well-maintained in handling both their own data and their user’s data. They must also securely manage all of their interactions with the web, the browser and the operating system.</p>
-
-<h2 id="Monetization">Monetization</h2>
-
-<ul>
- <li>Monetization mechanisms must comply with the policies in the <em>Data Disclosure, Collection and Management</em> section. In particular, an add-on must be accompanied with a clear user control mechanism (and opt-in for personal data) presented during the installation or update process of the add-on. Collecting ancillary information for monetization is prohibited.</li>
- <li>An add-on injecting advertising into web page content must clearly identify the injected content as originating from the add-on.</li>
- <li>The inclusion of any cryptocurrency miners or similar functionality in an add-on is prohibited.</li>
- <li>Modifying web content or facilitating redirects to include affiliate promotion tags is not permitted. Conversely, the use of affiliate promotion in user interface elements clearly identified as belonging to the add-on are acceptable.</li>
-</ul>
-
-<h2 id="Compliance_Blocklisting">Compliance &amp; Blocklisting</h2>
-
-<p>For add-ons that don’t meet these policies, Mozilla may reject or blocklist affected versions or entire add-ons, depending on the extent of their non-compliance.</p>
-
-<p>Generally, Mozilla will attempt to contact the add-on’s developer(s) and provide a reasonable time frame for the problems to be corrected before a block is deployed. If an add-on is considered malicious or its developers have proven unreachable or unresponsive, or in case of repeat violations, blocklisting may be immediate.</p>
-
-<p>Mozilla reserves the right to block or delete the developer’s account on addons.mozilla.org, thereby preventing further use of the service.</p>
diff --git a/files/fr/mozilla/add-ons/bootstrapped_extensions/index.html b/files/fr/mozilla/add-ons/bootstrapped_extensions/index.html
deleted file mode 100644
index 4cc231fe1d..0000000000
--- a/files/fr/mozilla/add-ons/bootstrapped_extensions/index.html
+++ /dev/null
@@ -1,348 +0,0 @@
----
-title: Modules complémentaires bootstrapés
-slug: Mozilla/Add-ons/Bootstrapped_extensions
-tags:
- - Extensions
- - Guide
- - Modules complémentaires
-translation_of: Archive/Add-ons/Bootstrapped_extensions
----
-<p>{{LegacyAddonsNotice}}{{AddonSidebar}}</p>
-
-<p>{{ gecko_minversion_header("2.0") }}</p>
-
-<p><span id="result_box" lang="fr"><span>Les extensions traditionnelles incluent des <strong>superpositions</strong>, dans lesquelles l'application peut charger XUL depuis le paquet de l'extension et l'appliquer automatiquement sur sa propre interface utilisateur.</span> <span>Bien que la création d'extensions, qui ajoutent à l'interface utilisateur de l'application, soit relativement simple, cela signifie que la mise à jour, l'installation ou la désactivation d'une extension nécessite un redémarrage de l'application.</span></span></p>
-
-<p><span id="result_box" lang="fr"><span>Gecko 2.0 {{geckoRelease ("2.0")}} introduit des <strong>extensions "bootstrapées"</strong>.</span> <span>Ce sont des extensions spéciales qui, au lieu d'utiliser une superposition pour appliquer leur interface utilisateur à l'application, s'insèrent par programmation dans l'application.</span> <span>Ceci est fait en utilisant un fichier de script spécial inclus dans l'extension qui contient les fonctions que le navigateur appelle pour commander à l'extension d'installer, désinstaller, démarrer et arrêter.</span></span></p>
-
-<p><span id="result_box" lang="fr"><span>Toute l'application fait appel à ce fichier de script;</span> <span>l'extension est responsable de l'ajout et de la suppression de son interface utilisateur et de la gestion des autres tâches d'installation et d'arrêt nécessaires.</span></span></p>
-
-<p><span id="result_box" lang="fr"><span>Cet article explique comment fonctionnent les extensions "bootstrap".</span> <span>Consultez ce didacticiel sur la <a href="https://developer.mozilla.org/fr/Add-ons/How_to_convert_an_overlay_extension_to_restartless">conversion d'une extension superposée en une opération sans redémarrage</a> pour obtenir un guide pratique étape par étape de la migration.</span></span></p>
-
-<h2 id="Le_processus_de_démarrage_et_d'arrêt"><span class="short_text" id="result_box" lang="fr"><span>Le processus de démarrage et d'arrêt</span></span></h2>
-
-<p><span id="result_box" lang="fr"><span>Une fonctionnalité clé des extensions "bootstrapées" est qu'elles doivent pouvoir démarrer et arrêter à la demande de l'application.</span> <span>Lorsque la fonction de </span></span> <code>startup()</code> <em>(</em><span lang="fr"><span><em>démarrage)</em> de l'extension est appelée, elle doit injecter manuellement son interface utilisateur et tout autre comportement dans l'application.</span> <span>De même, lorsque sa fonction <code>shutdown()</code> <em>(arrêt)</em> est appelée, elle doit supprimer tout ce qu'elle a ajouté à l'application, ainsi que toutes les références à l'un de ses objets.</span></span></p>
-
-<p><span id="result_box" lang="fr"><span>Il existe plusieurs scénarios dans lesquels la fonction <code>startup()</code> peut être appelée,</span> <span>par exemple :</span></span></p>
-
-<ul>
- <li><span id="result_box" lang="fr"><span>lorsque l'extension est installée pour la première fois, en supposant qu'elle soit compatible avec l'application et activée.</span></span></li>
- <li><span id="result_box" lang="fr"><span>lorsque l'extension est activée à l'aide de la fenêtre du gestionnaire de modules complémentaires.</span></span></li>
- <li><span id="result_box" lang="fr"><span>lorsque l'application est démarrée, si l'extension est activée et compatible avec l'application.</span></span></li>
-</ul>
-
-<p>Quelques exemples  <span id="result_box" lang="fr"><span>de situations où la fonction <code>shutdown()</code> peut être appelée :</span></span></p>
-
-<ul>
- <li><span id="result_box" lang="fr"><span>lorsque l'extension est désinstallée, si elle est actuellement activée.</span></span></li>
- <li><span class="short_text" id="result_box" lang="fr"><span>lorsque l'extension est désactivée.</span></span></li>
- <li><span id="result_box" lang="fr"><span>lorsque l'utilisateur quitte l'application, si l'extension est activée.</span></span></li>
-</ul>
-
-<h2 id="Notes_sur_la_modification_de_l'interface_utilisateur_de_l'application"><span id="result_box" lang="fr"><span>Notes sur la modification de l'interface utilisateur de l'application</span></span></h2>
-
-<h3 id="chrome.manifest_dans_les_extensions_bootstrapées">chrome.manifest dans les extensions "bootstrapées"</h3>
-
-<p>Vous pouvez utiliser un fichier <a href="https://developer.mozilla.org/fr/docs/Enregistrement_chrome#Exemple_de_fichier_manifest_chrome"><code>chrome.manifest</code></a> dans l'extension "bootstrapée" pour :</p>
-
-<ul>
- <li><span id="result_box" lang="fr"><span>Rendre le contenu de votre module complémentaire disponible via une URL <code>chrome://</code> (en utilisant les instructions </span></span> <code>content</code> <em>(</em><span lang="fr"><span><em>contenu)</em>, </span></span> <code>locale</code> <em>(</em><span lang="fr"><span><em>langue)</em> et </span></span> <code>skin</code> <em>(</em><span lang="fr"><span><em>habillage)</em> dans le manifeste).</span></span></li>
- <li>Remplacer les URI du <code>chrome://</code> existant avec votre contenu (en utilisant l'instruction <code>override</code> <em>(passer outre)</em>).</li>
-</ul>
-
-<p>Toutes les instructions <code>chrome.manifest</code> ne sont pas supportées dans les extensions bootstrapées, <span id="result_box" lang="fr"><span>par exemple, vous ne pouvez toujours pas enregistrer d'</span></span> <a href="https://developer.mozilla.org/fr/docs/Overlays_XUL">Overlays XUL</a> à partir d'une extension "bootstrapée". Voir la documentation <a href="https://developer.mozilla.org/fr/docs/Enregistrement_chrome"><code>Enregistrement chrome</code></a> pour les détails.</p>
-
-<p><span id="result_box" lang="fr"><span>Dans Firefox 10 et versions ultérieures, le fichier <code>chrome.manifest</code> situé dans la racine du XPI du module complémentaire (c'est-à-dire un frère du fichier <code>install.rdf</code>) est chargé automatiquement.</span> <span>Dans Firefox 8 et 9, vous devez charger / décharger manuellement le manifeste en utilisant {{ifmethod ("nsIComponentManager", "addBootstrappedManifestLocation")}} et {{ifmethod ("nsIComponentManager", "removeBootstrappedManifestLocation")}}.</span> <span>Cette fonctionnalité n'était pas disponible dans les versions de Firefox avant 8.</span></span></p>
-
-<h3 id="Ajout_manuel_d'une_interface_utilisateur">Ajout manuel d'une interface utilisateur</h3>
-
-<p><span id="result_box" lang="fr"><span>Si vous décidez de développer une extension "bootstrapée", qui modifie l'interface utilisateur de l'application, voici quelques suggestions pour vous aider à démarrer.</span></span></p>
-
-<p><span id="result_box" lang="fr"><span>Vous devez rechercher les éléments d'interface utilisateur de l'application appropriés par leur ID en appelant {{domxref ("document.getElementById ()")}}, puis les manipuler pour injecter votre interface utilisateur.</span> <span>Par exemple, vous pouvez accéder à la barre de menus de Firefox avec <code>document.getElementById ("main-menubar")</code>.</span></span></p>
-
-<p><span id="result_box" lang="fr"><span>Assurez-vous qu'au moment de l'arrêt, vous supprimez toute interface utilisateur que vous avez ajoutée.</span></span></p>
-
-<h2 id="Création_d'une_extension_bootstrapée">Création d'une extension "bootstrapée"</h2>
-
-<p><span id="result_box" lang="fr"><span>Pour marquer une extension comme "bootstrappable", vous devez ajouter l'élément suivant à son</span></span> <a href="https://developer.mozilla.org/fr/Add-ons/Install_Manifests">manifeste d'installation</a> :</p>
-
-<pre><code>&lt;em:bootstrap&gt;true&lt;/em:bootstrap&gt;</code></pre>
-
-<p>Alors, vous devez ajouter un fichier <a href="https://developer.mozilla.org/fr/docs/Extensions/bootstrap.js"><code><strong>bootstrap.js</strong></code></a> qui contient les fonctions requises ; <span class="short_text" id="result_box" lang="fr"><span>elles devraient être à côté du fichier</span></span> <a href="https://developer.mozilla.org/fr/Add-ons/Install_Manifests"><code>install.rdf</code></a> dans le paquet de l'extension.</p>
-
-<h3 id="Rétrocompatibilité"><span class="short_text" id="result_box" lang="fr"><span>Rétrocompatibilité</span></span></h3>
-
-<p><span id="result_box" lang="fr"><span>Parce que les anciennes versions de Firefox ne connaissent pas la propriété <code>bootstrap</code> ou le fichier <code>bootstrap.js</code>, il n'est pas trop difficile de créer un XPI qui fonctionnera à la fois comme une extension "bootstrapable" et comme une extension traditionnelle.</span> <span>Créez votre extension en tant qu'extension "bootstrapable", puis ajoutez les "overlays" <em>(superpositions)</em> traditionnels.</span> <span>Les versions plus récentes de Firefox utiliseront le script <code>bootstrap.js</code>, en ignorant les composants et les superpositions, alors que les versions plus anciennes utiliseront les superpositions.</span></span></p>
-
-<h2 id="Points_d'entrée_Bootstrap"><span class="short_text" id="result_box" lang="fr"><span>Points d'entrée Bootstrap</span></span></h2>
-
-<p><span id="result_box" lang="fr"><span>Le script <code>bootstrap.js</code> doit contenir plusieurs fonctions spécifiques, appelées par le navigateur pour gérer l'extension.</span> <span>Le script est exécuté dans un bac à sable privilégié, qui est mis en cache jusqu'à ce que l'extension soit arrêtée.</span></span></p>
-
-<h3 id="startup_(démarrage)">startup <em>(démarrage)</em></h3>
-
-<p><span id="result_box" lang="fr"><span>Appelé lorsque l'extension doit se démarrer elle-même.</span> <span>Il se produit au moment du lancement de l'application, lorsque l'extension est activée après avoir été désactivée ou après son arrêt afin d'installer une mise à jour.</span> <span>Il peut être appelé plusieurs fois pendant la durée de vie de l'application.</span></span></p>
-
-<p><span id="result_box" lang="fr"><span>C'est à ce moment que votre extension doit injecter son interface utilisateur, démarrer toutes les tâches qu'elle peut avoir besoin d'exécuter et ainsi de suite.</span></span></p>
-
-<pre>void startup(
-  data,
-  reason
-);
-</pre>
-
-<h6 id="Paramètres">Paramètres</h6>
-
-<dl>
- <dt><code>data </code><em>(donnée)</em></dt>
- <dd>Une <a href="#Données bootstrap">donnée bootstrap</a>.</dd>
- <dt><code>reason <em>(motif)</em></code></dt>
- <dd>Une des <a href="#Constantes causales">constantes causales</a>, <span id="result_box" lang="fr"><span>indiquant pourquoi l'extension est en cours de démarrage.</span></span> Ce peut être l'une d'entre elles : <code>APP_STARTUP</code>, <code>ADDON_ENABLE</code>, <code>ADDON_INSTALL</code>, <code>ADDON_UPGRADE ou</code> <code>ADDON_DOWNGRADE</code>.</dd>
-</dl>
-
-<h3 id="shutdown_(arrêt)">shutdown <em>(arrêt)</em></h3>
-
-<p><span id="result_box" lang="fr"><span>Appelé lorsque l'extension doit se fermer, par exemple lorsque l'application est en cours de fermeture, ou lorsqu'elle est sur le point d'être mise à niveau ou désactivée.</span> <span>Toute interface utilisateur qui a été injectée doit être supprimée, les tâches doivent être arrêtées et les objets éliminés.</span></span></p>
-
-<pre>void shutdown(
-  data,
-  reason
-);
-</pre>
-
-<h6 id="Paramètres_2">Paramètres</h6>
-
-<dl>
- <dt><code>data <em>(donnée)</em></code></dt>
- <dd>Une <a href="#Données bootstrap">donnée bootstrap</a>.</dd>
- <dt><code>reason <em>(motif)</em></code></dt>
- <dd>Une des <a href="#Constantes causales">constantes causales</a>, indiquant pourquoi l'extension est en train de se fermet. Ce peut être l'une d'entre elles : <code>APP_SHUTDOWN</code>, <code>ADDON_DISABLE</code>, <code>ADDON_UNINSTALL</code>, <code>ADDON_UPGRADE</code> ou <code>ADDON_DOWNGRADE</code>.</dd>
-</dl>
-
-<h3 id="install_(installation)">install <em>(installation)</em></h3>
-
-<p><span id="result_box" lang="fr"><span>Votre script "bootstrap" doit inclure une fonction <code>install()</code> que l'application appelle avant le premier appel </span></span> <code>startup()</code> <span lang="fr"><span> après l'installation, la mise à niveau ou le déclassement de l'extension.</span></span></p>
-
-<pre>void install(
-  data,
-  reason
-);
-</pre>
-
-<h6 id="Paramètres_3">Paramètres</h6>
-
-<dl>
- <dt><code>data <em>(donnée)</em></code></dt>
- <dd>Une <a href="#Données bootstrap">donnée bootstrap</a>.</dd>
- <dt><code>reason <em>(motif)</em></code></dt>
- <dd>Une des <a href="#Constantes causales">constantes causales</a>, indiquant pourquoi l'extension est en train d'être installée. Ce peut être l'une d'entre elles : <code>ADDON_INSTALL</code>, <code>ADDON_UPGRADE</code>, ou <code>ADDON_DOWNGRADE</code>.</dd>
-</dl>
-
-<h3 id="uninstall_(désinstallation)">uninstall <em>(désinstallation)</em></h3>
-
-<p>Cette fonction est appelée après le dernier appel à <code>shutdown()</code>  <span id="result_box" lang="fr"><span>avant qu'une version particulière de l'extension soit désinstallée.</span></span> Il n'est pas appelé si <code>install()</code>  <span class="short_text" id="result_box" lang="fr"><span>n'a jamais été appelé</span></span> .</p>
-
-<div class="note"><strong>Note :</strong> <span id="result_box" lang="fr"><span>Si vous ouvrez le gestionnaire de modules complémentaires, puis cliquez sur «Supprimer» sur un module complémentaire, il n'appellera pas la fonction de désinstallation immédiatement.</span> <span>Il s'agit d'une désinstallation en raison de l'option "Annuler" disponible.</span> <span>Si le gestionnaire de modules complémentaires est fermé ou qu'un autre événement se déroule de telle sorte que l'option "Annuler" devient indisponible, la désinstallation en dur a lieu et la fonction de désinstallation est appelée.</span></span></div>
-
-<div class="note"><strong>Note :</strong> <span id="result_box" lang="fr"><span>La fonction de désinstallation s'exécute sur déclassement et mise à niveau, ainsi vous devriez vous assurer qu'il s'agit d'une désinstallation en faisant ceci :</span></span><br>
-<code>function uninstall(aData, aReason) {</code><br>
-<code>     if (aReason == ADDON_UNINSTALL) {</code><br>
-<code>          console.log('really uninstalling');</code><br>
-<code>     } else {</code><br>
-<code>          console.log('not a permanent uninstall, likely an upgrade or downgrade');</code><br>
-<code>     }</code><br>
-<code>}</code></div>
-
-<pre>void uninstall(
-  data,
-  reason
-);
-</pre>
-
-<h6 id="Paramètres_4">Paramètres</h6>
-
-<dl>
- <dt><code>data <em>(donnée)</em></code></dt>
- <dd>Une <a href="#Données bootstrap">donnée bootstrap</a>.</dd>
- <dt><code>reason</code></dt>
- <dd>Une des <a href="#Constantes causales">constantes causales,</a> indiquant pourquoi l'extension est en train d'être désinstallée. Ce peut être l'une d'entre elles : <code>ADDON_UNINSTALL</code>, <code>ADDON_UPGRADE</code> ou <code>ADDON_DOWNGRADE</code>.</dd>
-</dl>
-
-<h2 id="Constantes_causales"><a id="Constantes causales" name="Constantes causales">Constantes causales</a></h2>
-
-<p>La fonction bootstrap accepte un paramètre <code>reason</code> (motif), qui explique pourquoi l'extension est appelée. Les constantes causales sont :</p>
-
-<table class="standard-table">
- <tbody>
- <tr>
- <td class="header">Constante</td>
- <td class="header">Valeur</td>
- <td class="header">Description</td>
- </tr>
- <tr>
- <td><code>APP_STARTUP</code></td>
- <td>1</td>
- <td>L'application est démarrée.</td>
- </tr>
- <tr>
- <td><code>APP_SHUTDOWN</code></td>
- <td>2</td>
- <td>L'application est fermée.</td>
- </tr>
- <tr>
- <td><code>ADDON_ENABLE</code></td>
- <td>3</td>
- <td><span class="short_text" id="result_box" lang="fr"><span>Le module complémentaire est activé.</span></span></td>
- </tr>
- <tr>
- <td><code>ADDON_DISABLE</code></td>
- <td>4</td>
- <td>Le module complémentaire est désactivé. (également <a class="link-https" href="https://bugzilla.mozilla.org/show_bug.cgi?id=620541">envoyé pendant la désinstallation</a>)</td>
- </tr>
- <tr>
- <td><code>ADDON_INSTALL</code></td>
- <td>5</td>
- <td>Le module complémentaire est installé.</td>
- </tr>
- <tr>
- <td><code>ADDON_UNINSTALL</code></td>
- <td>6</td>
- <td>Le module complémentaire est désinstallé.</td>
- </tr>
- <tr>
- <td><code>ADDON_UPGRADE</code></td>
- <td>7</td>
- <td>Le module complémentaire est mis à jour.</td>
- </tr>
- <tr>
- <td><code>ADDON_DOWNGRADE</code></td>
- <td>8</td>
- <td>Le module complémentaire est déclassé.</td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Données_bootstrap"><a id="Données bootstrap" name="Données bootstrap">Données bootstrap</a></h2>
-
-<p><span id="result_box" lang="fr"><span>Chacun des points d'entrée est transmis à une structure de données simple contenant des informations utiles sur le module complémentaire "bootstrapé".</span> <span>Plus d'informations sur l'extension peuvent être obtenues en appelant</span></span> <code><a href="/en-US/docs/Addons/Add-on_Manager/AddonManager#getAddonByID()">AddonManager.getAddonByID()</a></code>. <span id="result_box" lang="fr"><span>Les données sont un objet JavaScript simple avec les propriétés suivantes :</span></span></p>
-
-<table class="standard-table">
- <tbody>
- <tr>
- <td class="header">Propriété</td>
- <td class="header">Type</td>
- <td class="header">Description</td>
- </tr>
- <tr>
- <td><code>id</code></td>
- <td><code>chaîne de caractères</code></td>
- <td>L'ID du module complémentaire est "bootstrapé".</td>
- </tr>
- <tr>
- <td><code>version</code></td>
- <td><code>chaîne de caractères</code></td>
- <td>La version du module complémentaire est "bootstrapée".</td>
- </tr>
- <tr>
- <td><code>installPath <em>(chemin d'installation)</em></code></td>
- <td><code>nsIFile</code></td>
- <td><span id="result_box" lang="fr"><span>L'emplacement d'installation du module complémentaire est "bootstrapé".</span> <span>Il peut s'agir d'un répertoire ou d'un fichier XPI selon que le module complémentaire est installé décompressé ou non.</span></span></td>
- </tr>
- <tr>
- <td><code>resourceURI </code><em>(URI ressource)</em></td>
- <td><code>nsIURI</code></td>
- <td><span id="result_box" lang="fr"><span>L'URI pointe sur la racine des fichiers complémentaires, il peut s'agir d'un URI <code>jar:</code> ou <code>file:</code> , selon que le module complémentaire est installé ou non.</span></span> {{ gecko_minversion_inline("7.0") }}</td>
- </tr>
- <tr>
- <td><code>oldVersion </code><em>(ancienne version)</em></td>
- <td><code>chaîne de caractères</code></td>
- <td>La précédente version installée, si le motif est <code>ADDON_UPGRADE</code> ou <code>ADDON_DOWNGRADE</code>, et si la méthode est <code>install</code> ou<code>startup</code>. {{ gecko_minversion_inline("22.0") }}</td>
- </tr>
- <tr>
- <td><code>newVersion </code><em>(nouvelle version)</em></td>
- <td><code>chaîne de caractères</code></td>
- <td>La version à installer, si le motif est <code>ADDON_UPGRADE</code> ou <code>ADDON_DOWNGRADE</code>, et si la méthode est <code>shutdown</code> ou <code>uninstall</code>. {{ gecko_minversion_inline("22.0") }}</td>
- </tr>
- </tbody>
-</table>
-
-<div class="note">
-<p><strong>Note :</strong> <span id="result_box" lang="fr"><span>Un module complémentaire peut être mis à niveau / déclassé au démarrage de l'application, dans ce cas, le motif de la méthode </span></span> <code>startup</code> <span lang="fr"><span> est <code>APP_STARTUP</code> et la propriété <code>oldVersion</code> n'est pas définie.</span> <span>Sachez également que, dans certaines circonstances, une mise à niveau ou un déclassement additif peut se produire sans que la méthode de désinstallation soit appelée.</span></span></p>
-</div>
-
-<h2 id="Débogueur_de_module_complémentaire">Débogueur de module complémentaire</h2>
-
-<p><span id="result_box" lang="fr"><span>A partir de Firefox 31, vous pouvez utiliser le <a href="https://developer.mozilla.org/fr/Add-ons/Add-on_Debugger">débogueur de module complémentaire</a> pour déboguer les modules complémentaires "bootstrapés".</span></span></p>
-
-<h2 id="Localisation_(L10n)">Localisation (L10n)</h2>
-
-<p><span id="result_box" lang="fr"><span>La localisation des modules complémentaires "bootstrapés" est très similaire à celle de Firefox 7, car c'est à ce moment-là que la compatibilité de chrome.manifest a démarré.</span></span></p>
-
-<h3 id="Fichiers_JS_et_JSM_-_Utilisation_des_fichiers_de_propriétés">Fichiers JS et JSM - Utilisation des fichiers de propriétés</h3>
-
-<p>Pour localiser vos fichiers .js et .jsm , vous avez à utiliser <a href="https://developer.mozilla.org/fr/docs/Mozilla/Tech/XUL/Tutoriel_XUL/Les_fichiers_de_propri%C3%A9t%C3%A9s">les fichiers de propriétés</a>.</p>
-
-<p>Le minimum absolument nécessaire est :</p>
-
-<ol>
- <li>Fichier : install.rdf</li>
- <li>Fichier : chrome.manifest</li>
- <li>Fichier : bootstrap.js</li>
- <li>Dossier : locale <em>(langue)</em>
- <ol>
- <li>Dossier : VALID_LOCALE_HERE <em>(localisation valide ici)</em>
- <ol>
- <li>Fichier : ANYTHING.properties <em>(toutes les propriétés)</em></li>
- </ol>
- </li>
- </ol>
- </li>
-</ol>
-
-<p><span id="result_box" lang="fr"><span>Dans le dossier "locale", vous devez disposer de dossiers pour chacune des langues que vous souhaitez fournir;</span> <span>chaque dossier doit être nommé avec un nom "locale" valide (exemple : fr).</span> <span>Dans ce dossier, doit exister un fichier de propriétés.</span> <span>Dans le fichier chrome.manifest, ces paramètres régionaux doivent être définis.</span> <span>Par exemple, si vous disposez d'un sous-dossier fr dans le dossier "locale", votre fichier chrome.manifest devra contenir : locale NAME_OF_YOUR_ADDON fr locale/fr/</span></span></p>
-
-<p>Ici un exemple : <a href="https://github.com/Noitidart/l10n/tree/properties">GitHub :: l10n-properties</a> - <span id="result_box" lang="fr"><span>au démarrage de ce module, il affichera une invite indiquant USA ou Grande-Bretagne, avec laquelle choisir la langue la plus proche de la vôtre.</span> <span>Vous pouvez tester différents "locale" en allant sur </span></span> about:config <span lang="fr"><span> et en changeant les préférences de general.useragent.locale, et en désactivant puis en réactivant le module complémentaire.</span></span></p>
-
-<h3 id="Fichiers_XUL_et_HTML_-_Utilisation_d'entités_à_partir_de_fichiers_DTD">Fichiers XUL et HTML - Utilisation d'entités à partir de fichiers DTD</h3>
-
-<p><span id="result_box" lang="fr"><span>Plusieurs pages HTML sont utilisées, mais elles ne peuvent pas être localisées avec des fichiers DTD.</span> <span>Il y a trois changements que vous devez faire :</span></span></p>
-
-<ol>
- <li><span id="result_box" lang="fr"><span>Vous devez changer l'extension du fichier HTML en</span></span> <code>.xhtml</code></li>
- <li>Le doctype <span id="result_box" lang="fr"><span>doit être défini pointant sur un fichier DTD dans votre dossier "locale", ainsi par exemple</span></span> : <code>&lt;!DOCTYPE html SYSTEM <span class="pl-s1">"chrome://l10n/locale/mozilla.dtd"</span>&gt;</code></li>
- <li>Vous devez ajouter l'attribut xmlns à la balise html, par exemple : <code>&lt;<span class="pl-ent">html</span> <span class="pl-e">xmlns</span>=<span class="pl-s1"><span class="pl-pds">"</span>http://www.w3.org/1999/xhtml<span class="pl-pds">"</span></span>&gt;</code></li>
- <li>Si vous avez plusieurs fichiers DTD lisez ceci : <a href="https://developer.mozilla.org/fr/docs/Utilisation_de_plusieurs_DTD">Utilisation de plusieurs DTD</a></li>
-</ol>
-
-<p><span class="short_text" id="result_box" lang="fr"><span>Le minimum nécessaire est</span></span> :</p>
-
-<ol>
- <li>Fichier : install.rdf</li>
- <li>Fichier : chrome.manifest</li>
- <li>Fichier : bootstrap.js</li>
- <li>Dossier : locale
- <ol>
- <li>Dossier : VALID_LOCALE_HERE
- <ol>
- <li>Fichier : ANYTHING.dtd</li>
- </ol>
- </li>
- </ol>
- </li>
-</ol>
-
-<p><span id="result_box" lang="fr"><span>Le fichier chrome.manifest doit inclure une définition pour le contenu, par exemple:</span></span> <code>content NAME_OF_YOUR_ADDON ./</code></p>
-
-<p>Le fichier chrome.manifest doit aussi inclure une ligne pointant sur le dossier "locale", <span class="short_text" id="result_box" lang="fr"><span>comme dans la section de propriété ci-dessus</span></span>, si vous avez un dossier nommé en-US dans le dossier "locale", le fichier chrome.manifest doit contenir : <code>locale NAME_OF_YOUR_ADDON en-US locale/en-US/</code></p>
-
-<p>ici un exemple de module complémentaire qui ouvre une page HTML et une page  XUL sur install : <a href="https://github.com/Noitidart/l10n/tree/c456cc82a8a66b6d552cd8c2299cd2babc383af0">GitHub :: l10n-xhtml-xul</a>. <span id="result_box" lang="fr"><span>Voici un exemple montrant comment utiliser une page HTML localisée en tant que page d'options</span></span> : <a href="https://github.com/Noitidart/l10n/tree/html-options">GitHub :: l10n-html-options</a>. Vous pouvez aller sur about:config et changer la valeur de la préférence <code>general.useragent.locale </code><code>en-US</code> par <code>en-GB</code> et recharger la page ouverte pour voir les changements sur les paramètres régionaux.</p>
-
-<h2 id="Plus_de_lecture">Plus de lecture</h2>
-
-<ul>
- <li><a href="https://developer.mozilla.org/fr/Add-ons/How_to_convert_an_overlay_extension_to_restartless">Comment convertir une extension superposée en redémarrage</a> un guide étape par étape. Quelques exemples de code sont fournis. La page est basée et étendue à partir du guide étape par étape de Dave Garrett <a class="external" href="https://flagfox.wordpress.com/2014/01/19/writing-restartless-addons/">convert an old overlay based extension into a restartless addon</a> <em>(<span id="result_box" lang="fr"><span>convertir une ancienne extension basée sur une superposition en un module complémentaire sans redémarrage).</span></span></em></li>
- <li>Dave Townsend fournit un code basique <a class="external" href="http://www.oxymoronical.com/blog/2011/01/Playing-with-windows-in-restartless-bootstrapped-extensions">charger l'interface utilisateur pour chaque fenêtre ouverte</a> (en) dans un module complémentaire "bootstrapé".</li>
- <li>Mark Finkle fournit quelques exemples simples de code pour <a class="external" href="http://starkravingfinkle.org/blog/2011/01/bootstrap-jones-adventures-in-restartless-add-ons/">modules complémentaires sans redémarrage dans Firefox mobile</a>, <a class="external" href="http://starkravingfinkle.org/blog/2011/01/restartless-add-ons-more-resources/">ajouter des ressources (comme la fenêtre d'options)</a> (en) pour les extensions "bootstrapées" et <a class="external" href="http://starkravingfinkle.org/blog/2011/01/restartless-add-ons-%e2%80%93-default-preferences/">utilisation des préférences par defaut</a> (en) sans fichier <code>default/preferences/prefs.js</code> .</li>
- <li>Kris Maglione écrit au sujet de <a class="external" href="http://maglione-k.users.sourceforge.net/bootstrapped.xhtml">les exigences pour les procédures de nettoyage</a> (en) dans les modules complémentaires "bootstrapés".</li>
- <li>Edward Lee montre quelques <a class="external" href="http://ed.agadak.net/2011/01/restartless-add-on-example-code">modèles de codage utiles et exemples</a> que vous pouvez utiliser dans votre module complémentaire "bootstrapé".</li>
- <li>Documentation pour <a href="https://developer.mozilla.org/fr/Add-ons/Inline_Options">Options en ligne</a> dans Firefox 7 et suivants.</li>
-</ul>
diff --git a/files/fr/mozilla/add-ons/distribution/gagner_de_l_argent_avec_les_extensions_de_navigateur/index.html b/files/fr/mozilla/add-ons/distribution/gagner_de_l_argent_avec_les_extensions_de_navigateur/index.html
deleted file mode 100644
index 3a2515f3ce..0000000000
--- a/files/fr/mozilla/add-ons/distribution/gagner_de_l_argent_avec_les_extensions_de_navigateur/index.html
+++ /dev/null
@@ -1,213 +0,0 @@
----
-title: Gagner de l'argent avec les extensions de navigateur
-slug: >-
- Mozilla/Add-ons/Distribution/gagner_de_l_argent_avec_les_extensions_de_navigateur
-tags:
- - Guide
- - Monétisation
- - WebExtensions
- - distribution
-translation_of: Mozilla/Add-ons/Distribution/Make_money_from_browser_extensions
----
-<p>{{AddonSidebar}}</p>
-
-<p>Alors que les utilisateurs peuvent télécharger des extensions de navigateur pour Firefox gratuitement depuis addons.mozilla.org (AMO), cela ne signifie pas que vous ne pouvez pas faire de l'argent avec des extensions de navigateur, et dans une mesure plus limitée thèmes.</p>
-
-<p>Cet article passe en revue vos options pour générer des revenus à partir des extensions de navigateur en ajoutant des fonctions payantes, en faisant de la publicité ou en demandant des dons. L'article conclut ensuite en suggérant certaines choses que vous pouvez faire pour maximiser la production de revenus. Mais, tout d'abord, l'article se penche sur l'AMO et les limites des mécanismes de revenu dans les extensions de navigateur..</p>
-
-<h2 id="Est-ce_que_je_pourrai_un_jour_vendre_par_l'entremise_d'AMO">Est-ce que je pourrai un jour vendre par l'entremise d'AMO ?</h2>
-
-<p>Mozilla a l'intention de maintenir AMO en tant que source gratuite à télécharger d'extensions de navigateur et de thèmes. Mozilla n'a pas non plus l'intention de fournir des mécanismes pour les achats d'applications dans les extensions.</p>
-
-<h2 id="Qu'est-ce_que_tu_ne_peux_pas_faire">Qu'est-ce que tu ne peux pas faire ?</h2>
-
-<p>Mozilla place peu de restrictions sur la façon dont vous pouvez monétiser votre extension de navigateur. Les restrictions en place visent généralement à assurer un bon comportement lors de l'interaction avec vos utilisateurs tout en générant des revenus. Donc, avant d'envisager de faire de l'argent, sachez que vous devez le faire :</p>
-
-<ul>
- <li>Divulguez quand le paiement est requis pour activer n'importe quelle fonctionnalité dans votre poste.</li>
- <li>Fournissez une description facile à lire de toute information recueillie par votre extension.</li>
- <li>S'assurer que tous les mécanismes de monétisation sont conformes aux politiques de divulgation, de collecte et de gestion des données.</li>
- <li>Fournir un mécanisme clair de contrôle de l'utilisateur (et opt-in pour les données personnelles) pour toutes les fonctions de monétisation lors de l'installation ou de la mise à jour de l'extension.</li>
- <li>Collecte uniquement les données essentielles nécessaires au fonctionnement du mécanisme de monétisation.</li>
- <li>Identifiez toute publicité injectée dans une page Web comme provenant de l'extension.</li>
- <li>Ne pas inclure les mineurs de cryptocurrency ou des fonctionnalités similaires.</li>
- <li>Identifier les promotions d'affiliation comme faisant partie de l'extension. Toutefois, il est interdit de modifier le contenu du site Web ou de faciliter les redirections afin d'inclure des balises promotionnelles d'affiliation.</li>
-</ul>
-
-<p>Pour plus de détails, consultez les sections <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/AMO/Policy/Reviews#Content">contenu</a> et <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/AMO/Policy/Reviews#Monetization">monétisation</a> des politiques complémentaires.</p>
-
-<h2 id="Que_pouvez-vous_faire">Que pouvez-vous faire ?</h2>
-
-<p>Il y a trois approches que vous pouvez adopter pour monétiser l'extension de votre navigateur :</p>
-
-<ul>
- <li>Facturation des fonctions</li>
- <li>Affichage d'annonces</li>
- <li>Demander des dons</li>
-</ul>
-
-<h3 id="Facturation_des_fonctions">Facturation des fonctions</h3>
-
-<p>Il existe de nombreuses approches que vous pouvez prendre pour facturer les fonctionnalités de votre extension de navigateur, vous pouvez par exemple :</p>
-
-<ul>
- <li>Placez toutes vos fonctions derrière un mur payant.</li>
- <li>Offrez des fonctions de base gratuitement et placez des fonctions améliorées derrière un mur payant.</li>
- <li>Offrir un certain nombre d'utilisations gratuites d'une fonction ou l'utilisation gratuite de cette fonction pendant un certain temps avant de la placer derrière un mur payant.</li>
-</ul>
-
-<p>À moins que vous ne fournissiez une fonctionnalité ayant une valeur intrinsèque très élevée, l'approche la plus efficace consistera probablement à fournir aux utilisateurs certaines fonctionnalités gratuites moyennant des frais supplémentaires. Si vous êtes réticent à offrir des fonctionnalités gratuites, considérez que les développeurs qui ont essayé de commercialiser des extensions sans fonctionnalités gratuites rapportent qu'il est difficile d'attirer un public vers un produit entièrement commercial. Un avantage supplémentaire de fournir une partie ou la totalité de vos fonctionnalités sous une forme ou une autre gratuitement est que les utilisateurs peuvent confirmer que votre extension répond à leurs attentes. Si vous demandez aux utilisateurs de payer d'avance, certains demanderont un remboursement parce que l'extension n'avait pas les fonctionnalités qu'ils attendaient.</p>
-
-<h4 id="Choisir_un_fournisseur_de_paiement">Choisir un fournisseur de paiement</h4>
-
-<p>La clé pour implémenter des fonctions payantes dans votre navigateur est de choisir un fournisseur de traitement des paiements. Il existe de nombreux fournisseurs auxquels vous pouvez faire appel, mais celui qui répond le mieux à vos besoins et celui de vos utilisateurs n'est pas nécessairement le plus connu. Lorsque vous choisissez votre fournisseur de paiement, voici quelques points à prendre en considération :</p>
-
-<ul>
- <li>Offrent-ils à la fois des paiements uniques et des abonnements ?</li>
- <li>Offrent-ils des mécanismes pour générer des clés de licence ou émettre des clés de licence à partir d'une liste ?</li>
- <li>Est-ce qu'ils traitent dans les devises les plus populaires parmi mes utilisateurs ?</li>
- <li>Quels sont les types de paiement pris en charge ? (N'oubliez pas que les cartes de crédit ne sont pas nécessairement courantes dans tous les marchés du monde.)</li>
- <li>Est-ce qu'ils s'occupent de toutes les questions relatives à la taxe d'achat pour moi ?</li>
-</ul>
-
-<h4 id="Choix_de_la_fréquence_de_paiement">Choix de la fréquence de paiement</h4>
-
-<p>De nombreux fournisseurs de paiement vous permettront de proposer des achats ponctuels ou par abonnement. Les achats uniques offrent l'approche la plus simple, car vous n'avez pas à vous soucier de surveiller les paiements d'abonnement et d'annuler la licence si elle expire. D'autre part, avec l'abonnement, vous pouvez offrir des fonctions à un prix de transaction plus bas, réduisant ainsi l'obstacle au paiement. Les abonnements peuvent également créer une source de revenus fiable et récurrente.</p>
-
-<h4 id="Mise_en_œuvre_d'un_mécanisme_de_paiement_et_d'octroi_de_licences">Mise en œuvre d'un mécanisme de paiement et d'octroi de licences</h4>
-
-<p>Si vous rendez l'extension de votre navigateur disponible sur Chrome, vous pouvez profiter de l'API de paiement Google in-app pour gérer les transactions.</p>
-
-<p>Pour Firefox, et la plupart des autres navigateurs majeurs, vous aurez besoin d'installer un système de paiement. Une approche simple et raisonnablement robuste consiste à faire ce qui suit :</p>
-
-<ul>
- <li>Vendre aux utilisateurs une licence à vie avec une clé de licence privée.</li>
- <li>Sur un serveur approprié, stockez les détails de la clé de licence et une adresse e-mail associée.</li>
- <li>Dans le navigateur, stockez la clé de licence avec un code de hachage de la clé et certaines données privées de l'utilisateur, telles qu'un code PIN.</li>
- <li>Lorsque la fonction payante est utilisée, vérifiez si le code de hachage est valide. Si le code de hachage n'est pas valide, demandez au serveur d'envoyer un e-mail à l'adresse enregistrée avec la clé de licence afin de revalider (c'est-à-dire recalculer et enregistrer) le code de hachage. Cela empêche que la clé de licence soit largement partagée.</li>
-</ul>
-
-<p>En plus d'avoir un moyen pour l'utilisateur d'entrer la clé de licence manuellement, il est important de gérer les interactions avec la page d'achat afin que la licence soit installée automatiquement. Cela permet d'économiser beaucoup de travail d'assistance en expliquant comment installer la licence.</p>
-
-<p>Conseil du développeur : Ne passez pas trop de temps à protéger votre système de licence contre les pirates informatiques, car les utilisateurs qui sont enclins à utiliser une licence piratée sont peu susceptibles d'en payer le prix. Votre temps est mieux employé à développer de nouvelles fonctions d'extension qui attirent plus d'utilisateurs payants.</p>
-
-<h4 id="Conversion_de_la_gratuité_en_paiement">Conversion de la gratuité en paiement</h4>
-
-<p>Si vous avez initialement lancé votre extension de navigateur en tant que produit gratuit, votre meilleure approche pour générer des revenus est d'ajouter de nouvelles fonctionnalités commerciales. La conversion d'un produit gratuit en un produit payant n'est pas susceptible de plaire à vos utilisateurs. Même l'ajout de caractéristiques commerciales doit être fait avec soin. Vous devriez vous préparer à une réaction négative, du genre "il était gratuit", même si vous ne modifiez pas ou ne limitez pas l'accès aux fonctions gratuites.</p>
-
-<h3 id="Affichage_d'annonces">Affichage d'annonces</h3>
-
-<p>Si vous pensez que la base d'utilisateurs de votre navigateur est peu susceptible d'être réceptive aux fonctions payantes, les publicités peuvent être une option viable pour générer des revenus. Cependant, sachez que les publicités ne sont susceptibles de générer des revenus importants que si votre extension dispose d'une large base d'utilisateurs.</p>
-
-<p>Il y a trois façons d'afficher techniquement des publicités, mais toutes ne sont pas acceptables pour les canaux publicitaires et les utilisateurs. Les options sont :</p>
-
-<ul>
- <li>Injection d'annonces dans des pages Web. Dans ce cas d'utilisation, vous modifiez une page Web consultée pour injecter des annonces ou modifier des cibles publicitaires existantes. Il peut s'agir à la fois de pages générées par l'extension de votre navigateur et de pages provenant de sites Web tiers dont l'extension de navigateur est installée. La pratique consistant à modifier les pages Web de tiers est autorisée par la plupart des magasins d'extension de navigateur, y compris AMO et le Chrome Web Store. Cependant, la résistance de l'utilisateur aux extensions de navigateur qui modifient les pages de tiers peut être élevée et peut entraîner des critiques négatives et des désinstallations.</li>
- <li>La plupart des programmes publicitaires n'autorisent pas cette méthode (ils vérifient le référent au niveau de la cible du lien) en raison du risque de fraude, à travers l'extension générant des clics publicitaires. Lorsqu'un fournisseur de publicité autorise ce mécanisme, il est probable qu'il vous demandera d'examiner votre extension. Si vous pouvez trouver un fournisseur, l'avantage de ce mécanisme, en particulier lorsque vous indiquez clairement que vous financez le développement de votre extension de navigateur, est qu'il est relativement bien toléré par les utilisateurs.</li>
- <li>Afficher des annonces dans les pages Web à partir du site d'extension. Dans ce cas, vous incluriez de la publicité dans le site Web de votre extension et afficheriez ensuite ces pages déclenchées par des événements appropriés dans l'extension du navigateur. Des exemples de déclencheurs appropriés incluent l'installation, la mise à jour ou la désinstallation de l'extension du navigateur, ainsi que l'aide, les meilleures pratiques, des trucs et astuces ou des pages similaires ouvertes depuis l'extension du navigateur. Vous devriez pouvoir utiliser n'importe quel programme publicitaire avec cette méthode.</li>
-</ul>
-
-<h4 id="Choisir_un_programme_publicitaire">Choisir un programme publicitaire</h4>
-
-<p>Il existe de nombreux fournisseurs d'ajouts allant des grands fournisseurs mondiaux bien connus, comme Google AdSense, jusqu'aux petits services régionaux. Trouver le bon fournisseur dépendra beaucoup de l'extension de votre navigateur, mais voici quelques points à considérer :</p>
-
-<ul>
- <li>Le service dispose-t-il d'un bon inventaire publicitaire pour les pays où vivent mes utilisateurs ?</li>
- <li>Le service jouit-il d'une bonne réputation en matière de paiement rapide et régulier ?</li>
- <li>Est-ce que le service me permet d'inclure des annonces dans l'interface d'extension de mon navigateur ?</li>
- <li>Quelles options le service offre-t-il pour générer des revenus, par exemple des impressions publicitaires, des clics ou autres ?</li>
- <li>Le service me permet-il de filtrer les annonces pour qu'elles soient pertinentes pour mes utilisateurs ?</li>
- <li>Quelles sont les tailles et les modes d'affichage des publicités proposées par le service ?</li>
-</ul>
-
-<p>Vous pouvez toujours chercher à vendre de l'espace publicitaire vous-même. Toutefois, cela ne sera probablement viable que si vous disposez de ressources importantes que vous pouvez mobiliser pour vendre de l'espace publicitaire et que vous avez le trafic nécessaire pour soutenir cette approche. Cependant, vous pourriez être en mesure d'identifier un fournisseur d'un produit ou d'un service complémentaire qui serait intéressé par votre base d'utilisateurs et être en mesure de faire une vente en gros de votre espace publicitaire.</p>
-
-<h4 id="Meilleures_pratiques_pour_l'affichage_des_annonces">Meilleures pratiques pour l'affichage des annonces</h4>
-
-<p>Les publicités représentent un défi intéressant, la nécessité de trouver un compromis entre elles étant suffisamment visible pour générer des revenus, mais pas assez visible pour décourager les utilisateurs. Il n'y a pas de règles strictes et rapides pour une bonne conception de l'incorporation de publicités, mais ce sont certaines des choses que vous devriez considérer.</p>
-
-<ul>
- <li>Précisez clairement que l'extension de votre navigateur est financée par la publicité, par exemple dans sa description AMO. Les utilisateurs sont plus enclins à tolérer les publicités s'ils savent qu'ils s'y attendent.</li>
- <li>Utilisez les annonces interstitielles (publicités qui s'emparent d'une page entière et interrompent le flux de l'extension) avec précaution. Recherchez les événements où le flux est naturellement interrompu, comme les transitions entre les niveaux dans les jeux ou au début du téléchargement d'un fichier. Pensez également à rejeter automatiquement ces annonces.</li>
- <li>Là où votre réseau publicitaire le permet, ciblez l'audience de votre extension.</li>
- <li>Ne rendez pas les publicités trop intrusives.</li>
-</ul>
-
-<h3 id="Demander_des_dons">Demander des dons</h3>
-
-<p>Si la mise en place d'un accès payant aux fonctionnalités de l'extension de votre navigateur ou la navigation dans les méandres de la mise en œuvre d'annonces publicitaires semble inappropriée pour votre extension, demander des dons peut être la voie à suivre.</p>
-
-<p>Cependant, sachez que la plupart des développeurs rapportent que les dons ne génèrent des revenus importants que lorsque l'extension du navigateur a une large base d'utilisateurs.</p>
-
-<p>Les dons peuvent également être une bonne option par rapport au passage à un modèle payant où vous pourriez rencontrer des résistances de la part des utilisateurs, où l'extension de votre navigateur est déjà disponible gratuitement et avec toutes ses fonctionnalités.</p>
-
-<p>Il existe un certain nombre de plates-formes que vous pouvez utiliser pour fournir des services de paiement pour les dons, y compris :</p>
-
-<ul>
- <li><a href="http://liberapay.com">liberapay.com</a>—une plateforme open source, financée par des dons, conçue pour gérer les contributions récurrentes aux créateurs de Commons.</li>
- <li><a href="http://micropayment.de">micropayment.de</a>—un fournisseur de paiement commercial offrant des fonctionnalités pour les dons uniques et récurrents.</li>
- <li><a href="http://opencollective.com">opencollective.com</a>—une plateforme open source, financée par les sponsors, conçue pour gérer le remboursement des dépenses au sein des collectifs.</li>
- <li><a href="http://patreon.com">patreon.com</a>—une plateforme commerciale axée sur la génération de revenus pour les créateurs à partir d'abonnements réguliers.</li>
- <li><a href="http://paypal.com">paypal.com</a>—une plateforme commerciale supportant les dons uniques et récurrents.</li>
- <li><a href="http://paypal.me">paypal.me</a>—un add-on à PayPal qui fournit un lien simple vers une page de paiement où les utilisateurs peuvent faire des dons uniques.</li>
-</ul>
-
-<p>Lorsque vous choisissez un fournisseur de plateforme de dons, tenez compte de ce qui suit  :</p>
-
-<ul>
- <li>Prévoit-il des paiements dans les devises les plus susceptibles d'être utilisées par vos utilisateurs ?</li>
- <li>Quel pourcentage de vos dons le site retient-il comme frais de gestion ?</li>
- <li>Est-ce que le fournisseur me protège contre la fraude au paiement ?</li>
- <li>Est-ce que le suivi de l'activité du fournisseur a entraîné l'annulation des abonnements ?</li>
-</ul>
-
-<p>Avec les extensions de navigateur pour Firefox, vous avez deux façons de demander des dons : par AMO et par votre extension.</p>
-
-<h4 id="Demande_de_dons_par_l'entremise_de_l'AMO">Demande de dons par l'entremise de l'AMO</h4>
-
-<p>Vous pouvez ajouter un bouton "contributions" à la page AMO de votre extension qui renvoie à votre page de paiement à partir d'un des fournisseurs supportés. Pour ajouter le bouton :</p>
-
-<ul>
- <li>Créez un compte auprès d'un des fournisseurs pris en charge : <a href="http://liberapay.com">liberapay.com</a>,<a href="http://micropayment.de"> micropayment.de</a>,<a href="http://opencollective.com"> opencollective.com</a>,<a href="http://patreon.com"> patreon.com</a>,<a href="http://paypal.com"> paypal.com</a>,<a href="http://paypal.me"> or paypal.me</a>.</li>
- <li>Obtenez le lien vers votre page de dons.</li>
- <li>Dans le hub du développeur AMO, pour l'extension web ou le thème auquel vous voulez ajouter un bouton de contributions, cliquez sur Modifier les détails.</li>
- <li>Dans la section Informations de base, ajoutez le lien de votre page de dons à l'URL Contributions.<br>
- <img alt="The field in an extension's or theme's Basic information section where the URL of a donations page is entered." src="https://mdn.mozillademos.org/files/16252/Contributions_URL.png" style="height: 340px; width: 2174px;"></li>
-</ul>
-
-<p>Une section de contribution est alors ajoutée à la page AMO de votre poste.</p>
-
-<p><img alt="Example extension page on AMO highlighting the contribution next section" src="https://mdn.mozillademos.org/files/16251/Contribute_now.png" style="height: 643px; width: 723px;"></p>
-
-<h4 id="Demander_des_dons_à_partir_de_l'extension_de_votre_navigateur">Demander des dons à partir de l'extension de votre navigateur</h4>
-
-<p>Pour ce faire, vous ajoutez un bouton de don ou un lien vers un endroit approprié dans votre extension.</p>
-
-<h4 id="Bonnes_pratiques">Bonnes pratiques</h4>
-
-<p>Vous n'obtiendrez pas de don si vous ne le demandez pas, mais les demandes excessives de dons peuvent être déconcertantes pour vos utilisateurs et peuvent les encourager à supprimer votre extension de navigateur.  Cependant, trouver la bonne méthode et la bonne fréquence pour les demandes de dons sera une question d'essais et d'erreurs. Lorsque vous ajoutez des demandes de dons, tenez compte de ce qui suit :</p>
-
-<ul>
- <li>Lier les demandes de dons aux caractéristiques que l'utilisateur est susceptible d'utiliser régulièrement ou leur donner une "valeur" significative.</li>
- <li>Donner à l'utilisateur une option claire pour fermer une demande de don.</li>
- <li>Si possible, désactivez les demandes de dons une fois que l'utilisateur a donné.</li>
- <li>Si vous demandez des dons uniques, ne redémarrez les demandes de dons qu'après une mise à niveau majeure, et identifiez les caractéristiques nouvelles ou améliorées dans la demande.</li>
-</ul>
-
-<p>N'oubliez pas non plus que si vous demandez des dons réguliers, vous devrez également fournir régulièrement du nouveau contenu ou de nouvelles fonctionnalités.</p>
-
-<h2 id="Offres_non_sollicitées">Offres non sollicitées</h2>
-
-<p>Au fur et à mesure que votre extension gagnera en popularité, il est fort probable que vous serez contacté par des agences qui vous proposeront de vous transformer en millionnaire en un rien de temps, sans grand effort de votre part ; quelque chose du genre : "Insérez juste une ligne dans le code de votre add-on et devenez riche en ne faisant rien !"</p>
-
-<p>Traitez ces offres avec la plus grande prudence. Il est probable que le système cherchera à capturer les données privées de vos utilisateurs pour les vendre. Et, si vous obtenez de l'argent, il est probable qu'il soit beaucoup moins élevé que ce qui vous avait été promis à l'origine. Mais pire encore, vous pourriez vous retrouver avec votre extension bloquée et votre réputation ternie.</p>
-
-<h2 id="Comment_puis-je_maximiser_mon_revenu">Comment puis-je maximiser mon revenu ?</h2>
-
-<p>La création d'une base d'utilisateurs large et fidèle est essentielle pour maximiser les revenus que vous générez, quel que soit le mécanisme que vous choisissez. Pour construire votre base d'utilisateurs :</p>
-
-<ul>
- <li>implémenter l'extension de votre navigateur sur autant de plateformes que possible, au minimum Firefox et Chrome.</li>
- <li>se concentrer sur les fonctionnalités et la qualité de l'extension de votre navigateur, les extensions de mauvaise qualité retiennent rarement un nombre significatif d'utilisateurs.</li>
- <li>engagez autant que possible le dialogue avec vos utilisateurs par le biais des médias sociaux, des forums et en répondant aux demandes d'assistance et aux retours d'information.</li>
-</ul>
diff --git a/files/fr/mozilla/add-ons/distribution/retrait_de_votre_extension/index.html b/files/fr/mozilla/add-ons/distribution/retrait_de_votre_extension/index.html
deleted file mode 100644
index f2a3c408f0..0000000000
--- a/files/fr/mozilla/add-ons/distribution/retrait_de_votre_extension/index.html
+++ /dev/null
@@ -1,68 +0,0 @@
----
-title: Retrait de votre extension
-slug: Mozilla/Add-ons/Distribution/retrait_de_votre_extension
-tags:
- - Extensions
- - WebExtension
- - end of life
- - publication
-translation_of: Mozilla/Add-ons/Distribution/Retiring_your_extension
----
-<p>{{AddonSidebar}}</p>
-
-<p>Il peut arriver que vous souhaitiez retirer une de vos extensions. Cet article suggère les étapes à suivre, ainsi que des pointeurs vers un calendrier approprié.</p>
-
-<h2 id="Raisons_du_retrait_d'une_extension">Raisons du retrait d'une extension</h2>
-
-<p>Il y a deux raisons principales pour lesquelles vous pourriez vouloir mettre fin à votre extension :</p>
-
-<ul>
- <li>vous envisagez de supprimer le support pour un produit ou un service. Dans ce cas, vous devez supprimer l'extension des navigateurs lorsque la prise en charge cesse.</li>
- <li>vous remplacez l'extension par une nouvelle, qui n'est pas une mise à niveau directe. Dans ce cas, vous devez encourager les utilisateurs existants à installer la nouvelle extension avant de supprimer l'ancienne extension des navigateurs.</li>
-</ul>
-
-<h2 id="Étapes_à_suivre_pour_retirer_une_extension">Étapes à suivre pour retirer une extension</h2>
-
-<p>Lorsque vous souhaitez retirer une extension, envisagez de prendre les mesures suivantes :</p>
-
-<ol>
- <li>Concevoir un calendrier pour la fin de vie de votre extension<br>
- Envisagez d'inclure les étapes suivantes dans un calendrier de retrait de votre extension :
- <ol>
- <li>publier le calendrier de fin de vie de votre poste, y compris une explication des raisons pour lesquelles vous retirez votre poste.</li>
- <li>publier une mise à jour qui supprime les copies installées de votre extension.</li>
- <li>rendre l'extension indisponible pour les nouvelles installations, en rendant sa liste AMO invisible.</li>
- </ol>
- </li>
- <li>Publier des conseils que vous prévoyez de mettre fin à votre extension<br>
- Considérez les options suivantes pour informer les gens de votre intention de prendre votre extension :
- <ol>
- <li>mettez à jour la page AMO de votre extension avec son calendrier de fin de vie.</li>
- <li>Si votre extension est remplacée par une autre, fournissez un lien vers la nouvelle extension. Vous pouvez utiliser {{WebExtAPIRef("management.onInstalled")}} pour écouter l'installation de la nouvelle extension afin de déclencher la suppression de l'extension d'origine en utilisant  {{WebExtAPIRef("management.uninstallSelf")}}.</li>
- <li>communiquez le calendrier par le biais des médias sociaux, des forums ou, si possible, par courrier électronique.</li>
- </ol>
- </li>
- <li>Publier une version finale, auto-supprimée de votre extension<br>
- Utilisez {{WebExtAPIRef("management.uninstallSelf")}} pour que votre extension se désinstalle automatiquement. Avant cela, fournissez un avis rappelant à l'utilisateur la suppression de l'extension. Si votre extension est remplacée par une autre, n'oubliez pas de fournir un rappel concernant le lien vers la nouvelle extension. Vous pouvez offrir à l'utilisateur la possibilité de supprimer l'extension maintenant ou dans quelques jours.</li>
- <li>Rendez votre liste AMO invisible pour éviter de nouvelles installations<br>
- Pour masquer la liste des AMO de votre extension
- <ol>
- <li>Ouvrez la liste de votre extension dans AMO.</li>
- <li>Dans le menu de la barre latérale, ouvrez <strong>Gérer le statut &amp; les  versions</strong>.</li>
- <li>Dans la section Visibilité de la liste, cliquez sur <strong>Invisible</strong>.</li>
- </ol>
- </li>
-</ol>
-
-<p>Votre extension cachée ne sera pas disponible pour une recherche d'AMO ou pour tenter d'y accéder directement en utilisant l'URL AMO de la page.</p>
-
-<h2 id="Calendrier_de_départ_suggéré">Calendrier de départ suggéré</h2>
-
-<p>Il n'y a pas de période idéale entre la publication de votre calendrier de fin de vie et la suppression de votre extension des navigateurs des utilisateurs. En établissant le calendrier, vous pourriez envisager :</p>
-
-<ul>
- <li>Si vous ne fournissez pas une extension de remplacement, vous pourriez envisager une période de préavis relativement courte, peut-être quelques semaines.</li>
- <li>Si vous remplacez l'extension par une autre version, vous souhaiterez peut-être prévoir une période de préavis plus longue, avec des rappels réguliers sur la nouvelle extension. Dans ce cas, vous pouvez laisser des semaines ou des mois entre le conseil de fin de vie initial et la suppression finale des copies installées.</li>
-</ul>
-
-<p>Lorsque vous avez commencé à retirer l'extension, utilisez les statistiques d'utilisateur actives sur AMO pour affiner votre timing. Par exemple, si le nombre d'utilisateurs actifs ne diminue pas de manière significative, vous pouvez retarder le déploiement de la version finale de votre extension et envoyer un rappel concernant vos projets. Pour accéder aux statistiques de l'utilisateur actif, ouvrez votre extension dans AMO Developer Hub et cliquez sur <strong>Afficher le tableau de bord des statistiques</strong> dans le menu contextuel.</p>
diff --git a/files/fr/mozilla/add-ons/install_manifests/index.html b/files/fr/mozilla/add-ons/install_manifests/index.html
deleted file mode 100644
index 841725f370..0000000000
--- a/files/fr/mozilla/add-ons/install_manifests/index.html
+++ /dev/null
@@ -1,566 +0,0 @@
----
-title: Install Manifests
-slug: Mozilla/Add-ons/Install_Manifests
-translation_of: Archive/Add-ons/Install_Manifests
----
-<h2 id="Présentation">Présentation</h2>
-
-<p>Un manifeste d'installation est un fichier d'application XUL add-on Manager-enabled (par exemple de Firefox ou de Thunderbird) utilisé pour déterminer les informations sur une add-on quant il est en cours d'installation. Il contient des métadonnées identifiant l'add-on, fournit des informations sur son créateur, des informations sur les versions, ses compatibilités, sa mis à jour, etc...</p>
-
-<p>Le format du manifest d'installation est RDF/XML.</p>
-
-<p>Le fichier doit être appelé <code>install.rdf</code> et se trouver au niveau le plus haut du fichier <a href="https://developer.mozilla.org/fr/docs/XPI">XPI</a> de l'add-on.</p>
-
-<h2 id="Disposition">Disposition</h2>
-
-<p>La disposition de base d'un Manifest d'installation est comme cela:</p>
-
-<div style="overflow: hidden;">
-<pre class="brush:xml;auto-links:false">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
-
-&lt;RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:em="http://www.mozilla.org/2004/em-rdf#"&gt;
- &lt;Description about="urn:mozilla:install-manifest"&gt;
- &lt;!-- properties --&gt;
- &lt;/Description&gt;
-&lt;/RDF&gt;
-</pre>
-</div>
-
-<p>Certaines des propriétés sont essentielles, d'autres sont optionnelles. Certaines ont de simples chaînes comme valeur, d'autres sont de complexes ressources.</p>
-
-<h2 id="Référence_de_Propriété_Requise">Référence de Propriété Requise</h2>
-
-<p>Votre Manifest d'installation doit spécifier ces propriétés autrement votre add-on ne s'installera pas.</p>
-
-<h3 id="id">id</h3>
-
-<p>L'ID de l'extension, qui doit être l'une des suivantes:</p>
-
-<ul>
- <li><a href="/en-US/docs/Generating_GUIDs" title="Generating_GUIDs">GUID</a> (Firefox 1.0)</li>
- <li>{{ Fx_minversion_inline(1.5) }} Une chaîne formatée ainsi: <code class="plain">extensionname@example.org</code></li>
-</ul>
-
-<p><span class="tlid-translation translation" lang="fr"><span title="">Ce dernier format est considérablement plus facile à générer et à manipuler.</span> <span title="">Firefox 1.5 vérifie que votre <code>id</code> correspond à un format ou à l'autre et refusera d'installer des addons contenant des <code>id</code> mal formés.</span> <span title="">Cependant, vous ne devriez pas utiliser une adresse email réelle pour votre <code>id</code>, car cela pourrait attirer des spams.</span></span></p>
-
-<p><strong>Exemples</strong></p>
-
-<pre class="brush:xml;auto-links:false">&lt;em:id&gt;extensionname@example.org&lt;/em:id&gt;
-
-&lt;em:id&gt;{daf44bf7-a45e-4450-979c-91cf07434c3d}&lt;/em:id&gt;</pre>
-
-<h3 id="version">version</h3>
-
-<p>A version string identifying the version of the add-on being supplied.</p>
-
-<p>For Firefox/Thunderbird 1.0, the format must conform to the rules specified in <a href="/en-US/docs/Extension_Versioning,_Update_and_Compatibility" title="Extension_Versioning,_Update_and_Compatibility">Extension Versioning, Update and Compatibility</a>. For Firefox/Thunderbird 1.5, see <a href="/en-US/docs/Toolkit_version_format" title="Toolkit_version_format">Toolkit version format</a>.</p>
-
-<p><strong>Examples</strong></p>
-
-<pre class="brush:xml">&lt;em:version&gt;2.0&lt;/em:version&gt;
-
-&lt;em:version&gt;1.0.2&lt;/em:version&gt;
-
-&lt;em:version&gt;0.4.1.2005090112&lt;/em:version&gt;</pre>
-
-<p><strong>Firefox 1.5 / XULRunner 1.8</strong> - add-ons that do not use a valid version format will not be installed. The version format is different from, although backwards-compatible with, 1.0's.</p>
-
-<p><strong>For addons hosted on addons.mozilla.org</strong> - Mozilla's update website may repackage your add-on and correct or reject malformed version strings.</p>
-
-<h3 id="type">type</h3>
-
-<p>An integer value representing the type of add-on.</p>
-
-<table>
- <tbody>
- <tr>
- <td>2</td>
- <td>Extensions</td>
- </tr>
- <tr>
- <td>4</td>
- <td>Themes</td>
- </tr>
- <tr>
- <td>8</td>
- <td>Locale</td>
- </tr>
- <tr>
- <td>32</td>
- <td><a href="/en-US/docs/Multiple_Item_Packaging" title="Multiple_Item_Packaging">Multiple Item Package</a></td>
- </tr>
- <tr>
- <td>64</td>
- <td>Spell check dictionary</td>
- </tr>
- <tr>
- <td>128</td>
- <td><a href="https://wiki.mozilla.org/Telemetry/Experiments" title="Telemetry Experiments">Telemetry Experiment</a></td>
- </tr>
- </tbody>
-</table>
-
-<p><strong>Examples</strong></p>
-
-<pre class="brush:xml">&lt;em:type&gt;2&lt;/em:type&gt;</pre>
-
-<p>{{ Fx_minversion_inline(1.5) }} This property was added for Firefox 1.5, and is only required for add-on types other than Extensions and Themes.</p>
-
-<p>{{ Fx_minversion_inline(3) }} Firefox 2 and previous supported a value of 16 to represent plug-ins. In Firefox 3 this has been removed.</p>
-
-<h3 id="targetApplication">targetApplication</h3>
-
-<p>An object specifying an application targeted by this add-on. This means that the add-on will work with the application identified by the id property (<code>&lt;em:id&gt;</code>) specified (for a comprehensive list of application IDs and valid min/maxVersions for them see <a class="link-https" href="https://addons.mozilla.org/en-US/firefox/pages/appversions">Valid application versions for add-on developers</a>), from the minimum version (<code>&lt;em:minVersion&gt;</code>) up to and including the maximum version (<code>&lt;em:maxVersion&gt;</code>). These version strings are formatted in the same fashion as the <a href="#version"><code>version</code> property</a> and will be compared to the application version; this allows the extension author to specify which versions of Firefox an extension has been tested with.</p>
-
-<p><code>id</code>, <code>minVersion</code>, and <code>maxVersion</code> are all required.</p>
-
-<div class="note"><strong>Note:</strong> Extensions compatible with Firefox 3.5 should specify a <code>maxVersion</code> of<code> 3.5.*</code>, so that they are automatically compatible with security and stability updates. For Firefox 3.0, a <code>maxVersion</code> of<code> 3.0.*</code> should be used. Extensions compatible only with Firefox or Thunderbird 2 should specify a <code>maxVersion</code> of <code>2.0.0.*</code>.</div>
-
-<p>The Install Manifest must specify at least one of these objects, and may specify more if the add-on targets multiple applications that support the Add-on Manager (e.g. Firefox and Thunderbird).</p>
-
-<p><strong>Examples</strong></p>
-
-<pre class="brush:xml">&lt;em:targetApplication&gt;
- &lt;Description&gt;
- &lt;em:id&gt;{ec8030f7-c20a-464f-9b0e-13a3a9e97384}&lt;/em:id&gt; &lt;!--Firefox--&gt;
- &lt;em:minVersion&gt;1.5&lt;/em:minVersion&gt;
- &lt;em:maxVersion&gt;3.0.*&lt;/em:maxVersion&gt;
- &lt;/Description&gt;
-&lt;/em:targetApplication&gt;</pre>
-
-<p>{{ Fx_minversion_inline(3) }} Gecko 1.9 based applications allow you to use the special <code>targetApplication </code>id <code class="plain">toolkit@mozilla.org</code> to say that the add-on is compatible with any toolkit app with a toolkit version matching the <code>minVersion</code> and <code>maxVersion</code>.</p>
-
-<h3 id="name">name</h3>
-
-<p>The name of the add-on; intended for display in the UI.</p>
-
-<p><strong>Examples </strong></p>
-
-<pre class="brush:xml">&lt;em:name&gt;My Extension&lt;/em:name&gt;</pre>
-
-<h2 id="Optional_Property_Reference">Optional Property Reference</h2>
-
-<p>You may need to supply these properties, depending on the capabilities of your add-on.</p>
-
-<h3 id="bootstrap">bootstrap</h3>
-
-<p>{{ Fx_minversion_inline(4) }} A Boolean value that tells the application whether the extension is boot-strappable. At the moment this only works for add-ons with em:type="2". The default value is <code>false</code>. For more information, see <a href="/en-US/docs/Extensions/Bootstrapped_extensions" title="Extensions/Bootstrapped extensions">Bootstrapped extensions</a>.</p>
-
-<h3 id="unpack">unpack</h3>
-
-<p>{{ Fx_minversion_inline(4) }} A true or false value that tells the application whether the extension requires its files be unpacked into a directory in order to work or whether the extension can be loaded direct from the XPI. In versions before Gecko 2.0 all extensions were unpacked, in Gecko 2.0 and later the default is to not unpack. If an extension includes the following then it must request unpacking:</p>
-
-<ul>
- <li>Binary <a href="/en-US/docs/XPCOM" title="XPCOM">XPCOM</a> components</li>
- <li><a href="/en-US/docs/Shipping_a_plugin_as_a_Toolkit_bundle" title="Shipping a plugin as a Toolkit bundle">Plugins</a></li>
- <li><a href="/en-US/docs/Creating_MozSearch_plugins" title="Creating MozSearch plugins">Search plugins</a></li>
- <li>DLLs loaded with <a href="/en-US/docs/Mozilla/js-ctypes" title="js-ctypes">ctypes</a></li>
- <li>Dictionaries</li>
- <li>Window icons</li>
-</ul>
-
-<p><strong>Examples</strong></p>
-
-<pre class="brush:xml">&lt;Description about="urn:mozilla:install-manifest"&gt;
- &lt;em:id&gt;extension@mysite.com&lt;/em:id&gt;
- &lt;em:unpack&gt;true&lt;/em:unpack&gt;
- ...
-&lt;/Description&gt;</pre>
-
-<h3 id="skinnable">skinnable</h3>
-
-<p>{{ Fx_minversion_inline(4) }} A true or false value property fo that tells the application whether the (complete) theme can be skinned by lightweight themes/personas:</p>
-
-<p><strong>Examples</strong></p>
-
-<pre class="brush:xml">&lt;em:skinnable&gt;true&lt;/em:skinnable&gt;
-</pre>
-
-<h3 id="localized">localized</h3>
-
-<p>{{ Fx_minversion_inline(3) }} Allows you to localize the add-on's name, description, contributors and other metadata. The localized description must specify at least one <code>em:locale</code> which indicates which locales to use this information for.</p>
-
-<p><strong>Examples</strong></p>
-
-<p>This declares a set of add-on metadata to be displayed when the application is running in the de-DE locale.</p>
-
-<pre class="brush:xml">&lt;em:localized&gt;
- &lt;Description&gt;
- &lt;em:locale&gt;de-DE&lt;/em:locale&gt;
- &lt;em:name&gt;Tab Sidebar&lt;/em:name&gt;
- &lt;em:description&gt;Zeigt in einer Sidebar Vorschaubilder der Inhalte aller offenen Tabs an.&lt;/em:description&gt;
- &lt;/Description&gt;
-&lt;/em:localized&gt;</pre>
-
-<p>The following properties which are described elsewhere in this page can be included in the localized property:</p>
-
-<ul>
- <li>name</li>
- <li>description</li>
- <li>creator</li>
- <li>homepageURL</li>
- <li>developer</li>
- <li>translator</li>
- <li>contributor</li>
-</ul>
-
-<p>More documentation can be found at <a href="/en-US/docs/Localizing_extension_descriptions" title="Localizing_extension_descriptions">Localizing extension descriptions</a>.</p>
-
-<h3 id="description">description</h3>
-
-<p>A short description of the add-on - intended for display in the user interface. This description should fit on one short line of text.</p>
-
-<p><strong>Examples</strong></p>
-
-<pre class="brush:xml">&lt;em:description&gt;Advanced foo tools.&lt;/em:description&gt;</pre>
-
-<h3 id="creator">creator</h3>
-
-<p>The name of the creator/principal developer - intended for display in the user interface.</p>
-
-<p><strong>Examples</strong></p>
-
-<pre class="brush:xml">&lt;em:creator&gt;John Doe&lt;/em:creator&gt;</pre>
-
-<p>or</p>
-
-<pre class="brush:xml">&lt;em:creator&gt;CoolExtension Team&lt;/em:creator&gt;</pre>
-
-<h3 id="developer">developer</h3>
-
-<p>{{ Fx_minversion_inline(2) }} The name(s) of co-developers. You may specify more than one of this value to specify multiple developers.</p>
-
-<p><strong>Examples</strong></p>
-
-<pre class="brush:xml">&lt;em:developer&gt;Jane Doe&lt;/em:developer&gt;
-&lt;em:developer&gt;Koos van der Merwe&lt;/em:developer&gt;
-</pre>
-
-<h3 id="translator">translator</h3>
-
-<p>{{ Fx_minversion_inline(2) }} The name(s) of translators. You may specify more than one of this value to specify multiple translators.</p>
-
-<p><strong>Examples</strong></p>
-
-<pre class="brush:xml">&lt;em:translator&gt;Janez Novak&lt;/em:translator&gt;
-&lt;em:translator&gt;Kari Nordmann&lt;/em:translator&gt;
-</pre>
-
-<h3 id="contributor">contributor</h3>
-
-<p>The name(s) of additional contributors. You may specify more than one of this value to specify multiple contributors.</p>
-
-<p><strong>Examples</strong></p>
-
-<pre class="brush:xml">&lt;em:contributor&gt;John Doe&lt;/em:contributor&gt;
-
-&lt;em:contributor&gt;John Doe&lt;/em:contributor&gt;
-&lt;em:contributor&gt;Jane Doe&lt;/em:contributor&gt;
-&lt;em:contributor&gt;Elvis Presley&lt;/em:contributor&gt;
-</pre>
-
-<h3 id="homepageURL">homepageURL</h3>
-
-<p>A link to the add-on's home page - intended for display in the user interface.</p>
-
-<p><strong>Examples</strong></p>
-
-<pre class="brush:xml;auto-links:false">&lt;em:homepageURL&gt;http://www.foo.com/&lt;/em:homepageURL&gt;
-</pre>
-
-<h3 id="updateURL">updateURL</h3>
-
-<p>A link to a custom Update Manifest file that specifies available updates to the add-on. The format is described below. If enabled, the add-on manager periodically checks with this Manifest file to determine if newer versions are available. When not included, the add-on manager will still check for updates on AMO, using the ID of the extension.</p>
-
-<div class="note"><strong>Note:</strong> It is strongly recommended that the <code>updateURL</code> be an HTTPS (secure) link. Non-secure update URLs can be hijacked by a malicious <code>update.rdf</code> file, enabling malware to infiltrate the user's computer. <strong>Alternatively, you could host your extension on </strong><a class="external" href="http://addons.mozilla.org"><strong>AMO</strong></a><strong> and leave out the <code>updateURL</code> completely.</strong> This provides secure updates automatically.</div>
-
-<p>{{ Fx_minversion_inline(3) }} For security reasons, Gecko 1.9 applications <strong>require</strong> that if you specify an <code>updateURL</code>, it must be an https URL, or you must include an <code><a href="#updateKey">updateKey</a></code>.</p>
-
-<p>Your server must send this file as <code>text/rdf</code>, <code>text/xml</code> or <code>application/rdf+xml</code> or the update checker may not work.</p>
-
-<p>The addon manager will substitute the following values into this URL in case you wish to generate the response RDF dynamically, such as using PHP or CGI:</p>
-
-<table>
- <tbody>
- <tr>
- <td><code>%REQ_VERSION%</code></td>
- <td>The version of the request. Currently 1</td>
- </tr>
- <tr>
- <td><code>%ITEM_ID%</code></td>
- <td>The <code>id</code> of the addon being updated</td>
- </tr>
- <tr>
- <td><code>%ITEM_VERSION%</code></td>
- <td>The <code>version</code> of the addon being updated</td>
- </tr>
- <tr>
- <td><code>%ITEM_MAXAPPVERSION%</code></td>
- <td>The <code>maxVersion</code> of the <code>targetApplication</code> object corresponding to the current application for the addon being updated.</td>
- </tr>
- <tr>
- <td><code>%ITEM_STATUS%</code></td>
- <td>{{ Fx_minversion_inline(2) }} Comma separated list of the add-ons operating status in the application. Contains at the least either <code>userEnabled</code> or <code>userDisabled</code> plus any number of <code>incompatible</code>, <code>blockslisted</code> or <code>needsDependencies</code>.</td>
- </tr>
- <tr>
- <td><code>%APP_ID%</code></td>
- <td>The <code>id</code> of the current application</td>
- </tr>
- <tr>
- <td><code>%APP_VERSION%</code></td>
- <td>The <code>version</code> of the application to check for updates for</td>
- </tr>
- <tr>
- <td><code>%CURRENT_APP_VERSION%</code></td>
- <td>{{ Fx_minversion_inline(3.5) }} The <code>version</code> of the current application</td>
- </tr>
- <tr>
- <td><code>%APP_OS%</code></td>
- <td>{{ Fx_minversion_inline(1.5) }} The value of <code><a href="/en-US/docs/OS_TARGET" title="OS_TARGET">OS_TARGET</a></code> from the Firefox build system, identifying the operating system being used.</td>
- </tr>
- <tr>
- <td><code>%APP_ABI%</code></td>
- <td>{{ Fx_minversion_inline(1.5) }} The value of the <code><a href="/en-US/docs/XPCOM_ABI" title="XPCOM_ABI">TARGET_XPCOM_ABI</a></code> value from the Firefox build system, identifying the compiler/architecture combination used to compile the current application.</td>
- </tr>
- <tr>
- <td><code>%APP_LOCALE%</code></td>
- <td>{{ Fx_minversion_inline(3) }} The current application's locale.</td>
- </tr>
- <tr>
- <td><code>%UPDATE_TYPE%</code></td>
- <td>{{ Fx_minversion_inline(4) }} <code>UPDATE_TYPE_COMPATIBILITY(32)</code>, <code>UPDATE_TYPE_NEWVERSION(64)</code></td>
- </tr>
- <tr>
- <td><code>%COMPATIBILITY_MODE%</code></td>
- <td>{{ Fx_minversion_inline(10) }} related to <a href="/en-US/docs/Firefox/Updating_add-ons_for_Firefox_10#Compatible_by_default" title="https://developer.mozilla.org/en-US/docs/Firefox/Updating_add-ons_for_Firefox_10#Compatible_by_default">default to compatible</a>, values could be <code>normal</code>, <code>ignore</code> or <code>strict</code>.</td>
- </tr>
- </tbody>
-</table>
-
-<p><strong>Examples</strong></p>
-
-<pre class="brush:xml;auto-links:false">&lt;em:updateURL&gt;http://www.foo.com/update.cgi?id=%ITEM_ID%&amp;amp;version=%ITEM_VERSION%&lt;/em:updateURL&gt;
-&lt;em:updateURL&gt;http://www.foo.com/extension/windows.rdf&lt;/em:updateURL&gt;
-</pre>
-
-<p><strong>For add-ons hosted on addons.mozilla.org:</strong> You may not specify an <code>updateURL</code> property. By default, Mozilla applications using the Add-on Manager (such as Firefox and Thunderbird) will send update requests to <code>addons.mozilla.org</code> using the default web service. Every time you upload a new version of your add-on or change its compatibility parameters through the author interface, your update manifest will be generated automatically.</p>
-
-<p><strong>Format of the Update Manifest:</strong> The Update Manifest is a RDF/XML datasource. For an example of an update manifest, see <a href="/en-US/docs/Extension_Versioning,_Update_and_Compatibility#Update_RDF_Format" title="Extension_Versioning,_Update_and_Compatibility#Update_RDF_Format">Extension Versioning, Update and Compatibility</a>.</p>
-
-<h3 id="updateKey">updateKey</h3>
-
-<div>{{ Gecko_minversion_header(1.9) }} {{ Fx_minversion_header(3) }}</div>
-
-<p>To ensure the security of update rdf data that is retrieved over plain http you must use a digital signature to verify the contents of the data. In order to do so you must include the public part of the cryptographic key in an updateKey entry in the install.rdf of the add-on. This can be generated using the <a href="/en-US/docs/McCoy" title="McCoy">McCoy</a> tool. Any line breaks and whitespace as part of this entry are ignored.</p>
-
-<pre class="brush:xml">&lt;em:updateKey&gt;MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDK426erD/H3XtsjvaB5+PJqbhj
- Zc9EDI5OCJS8R3FIObJ9ZHJK1TXeaE7JWqt9WUmBWTEFvwS+FI9vWu8058N9CHhD
- NyeP6i4LuUYjTURnn7Yw/IgzyIJ2oKsYa32RuxAyteqAWqPT/J63wBixIeCxmysf
- awB/zH4KaPiY3vnrzQIDAQAB&lt;/em:updateKey&gt;
-</pre>
-
-<h3 id="optionsURL">optionsURL</h3>
-
-<p>The <code>chrome://</code> URL of the extension's options dialog box. This is only useful to extensions. If this property is specified, when the extension is selected in the Extensions list, the Options button is enabled and will show this.</p>
-
-<pre class="brush:xml">&lt;em:optionsURL&gt;chrome://myext/content/options.xul&lt;/em:optionsURL&gt;</pre>
-
-<p>{{ gecko_minversion_note("7", "In Firefox 7 you can also simply include your options XUL as a file named <code>options.xul</code>, in the base directory of the add-on.") }}</p>
-
-<p>{{ h3_gecko_minversion("optionsType", 7) }}</p>
-
-<p>The type of user-interface used for displaying the options. Accepted values are:</p>
-
-<table>
- <tbody>
- <tr>
- <td>1</td>
- <td>Opens optionsURL in a dialog box</td>
- </tr>
- <tr>
- <td>2</td>
- <td><a href="/en-US/docs/Extensions/Inline_Options" title="Extensions/Inline Options">Options are displayed inside the Add-on Manager</a></td>
- </tr>
- <tr>
- <td>3</td>
- <td>Opens optionsURL in a new tab (if the application supports that), or a dialog box</td>
- </tr>
- </tbody>
-</table>
-
-<p>optionsType defaults to 1 if there is an optionsURL included in install.rdf or 2 if there is no optionsURL and the file <code>options.xul</code> exists in the root of the add-on.</p>
-
-<pre class="brush:xml">&lt;em:optionsType&gt;2&lt;/em:optionsType&gt;
-</pre>
-
-<h4 id="Open_Options_in_New_Tab_Gecko_minversion_header(7)">Open Options in New Tab {{ Gecko_minversion_header(7) }}</h4>
-
-<p>Options can be opened in a new tab since Firefox 7.0a1. To do so, set optionsType to 3 and set optionsURL to a the path of a page to open.</p>
-
-<pre class="brush:xml">&lt;em:optionsType&gt;3&lt;/em:optionsType&gt;
-&lt;em:optionsURL&gt;chrome://myaddon/content/options.html&lt;/em:optionsURL&gt;</pre>
-
-<p>This section here contains an example of localized HTML page as an option panel in a new tab: <a href="/en-US/Add-ons/Bootstrapped_extensions#Localization_%28L10n%29">Bootstrapped Extensions :: Localization (L10n)</a> (example linked to is: <a href="https://github.com/Noitidart/l10n/tree/html-options">GitHub :: l10n-html-options</a>)</p>
-
-<h4 id="Make_Options_Button_Execute_Arbitrary_Javascript">Make Options Button Execute Arbitrary Javascript</h4>
-
-<div class="note">
-<p>This method is not recomended by AMO Editors, however it is noted here in case none of the default methods suit the developers needs. For example: Overlay a panel over Add-on Manager on click of options button</p>
-</div>
-
-<p>If the default methods offered by <code>optionsType</code> does not fit your needs (see the table above), there is a last resort option. The method here is to use inline JavaScript and the observer service. The observer service is used to send a notification on click of the options button and then from your add-on, when you receive that notification, you can do whatever you want. For example, in the <code>install.rdf</code> we would have:</p>
-
-<pre class="brush:xml">&lt;em:optionsType&gt;2&lt;/em:optionsType&gt;
-&lt;em:optionsURL&gt;javascript:Components.utils.import('resource://gre/modules/Services.jsm');Services.obs.notifyObservers(window, 'hellothisisyourcaptainspeaking', 'options'); window.close();&lt;/em:optionsURL&gt;</pre>
-
-<p>This sends a notification <code>hellothisisyourcaptainspeaking</code> and passes <code>window </code>to the listener. Notice the <code>window.close()</code> at the end of this inline script. This is important, because an invisible modal dialog is opened and this script runs in that context. So if you do not close the window, you will be stuck modal mode (clicks and key presses will not take). That's why we have to re-import the <code>Services.jsm</code>. Now in your add-on have a listener that does this:</p>
-
-<pre class="brush: js">var observer = {
- observe: function(aSubject, aTopic, aData) {
- //do something here, such as insert panel element into addon manager and load your page in an iframe in this panel
- }
-};
-
-Services.obs.addObserver(observer, "hellothisisyourcaptainspeaking", false);
-// Don't forget to remove your observer when your add-on is shut down.</pre>
-
-<h3 id="aboutURL">aboutURL</h3>
-
-<p>The<code> chrome://</code> URL of the extension's about dialog box. This is only useful to extensions. If this property is specified,  in the <code>about:addons</code> extensions list, the <code>About..</code>. link in the extension's context menu will show this dialog, rather than the default.</p>
-
-<div class="note">
-<p><strong>Note:</strong> As of {{Gecko("2.0")}}, the dialog receives the <code>Addon</code> object representing your add-on as a parameter.</p>
-</div>
-
-<p><strong>Examples</strong></p>
-
-<pre class="brush:xml">&lt;em:aboutURL&gt;<a class="external" rel="freelink">chrome://myext/content/about.xul</a>&lt;/em:aboutURL&gt;
-</pre>
-
-<h3 id="iconURL">iconURL</h3>
-
-<p>A <code>chrome://</code> URL to an icon to display in the add-ons list. The icon will be displayed at 32x32 in Firefox 3.6 and lower. In Firefox 4.0 and later the icon can be up to 48x48 pixels in size. If this property is not specified, a default icon is used.</p>
-
-<pre class="brush:xml">&lt;em:iconURL&gt;<a class="external" rel="freelink">chrome://myext/skin/icon.png</a>&lt;/em:iconURL&gt;
-</pre>
-
-<div class="note"><strong>Note:</strong> For the above example to work you will also have to add a <code>skin package</code> line to your <code>chrome.manifest</code> file. See <a href="/en-US/docs/Chrome_Registration#skin" title="Chrome_Registration#skin">Chrome Registration#skin</a>. Alternatively you can place your icon in the directory specified in your <code>content package</code> line.</div>
-
-<p>{{ gecko_minversion_note("1.9.2", "Starting in Gecko 1.9.2 (Firefox 3.6), you can also simply include your icon, named <code>icon.png</code>, in the base directory of the add-on. This allows your add-on's icon to be displayed even when the add-on is disabled, or if the manifest is missing an <code>iconURL</code> entry.") }}</p>
-
-<p>{{ h3_gecko_minversion("icon64URL", "2.0") }}</p>
-
-<p>A <code>chrome://</code> URL to a 64x64 pixel icon to display in the add-on's details view . If this property is not specified, the smaller icon above will be used.</p>
-
-<pre class="brush:xml">&lt;em:icon64URL&gt;<a class="external" rel="freelink">chrome://myext/skin/icon64.png</a>&lt;/em:icon64URL&gt;
-</pre>
-
-<div class="note"><strong>Note:</strong> For the above example to work you will also have to add a <code>skin package</code> line to your <code>chrome.manifest</code> file. See <a href="/en-US/docs/Chrome_Registration#skin" title="Chrome_Registration#skin">Chrome Registration#skin</a>. Alternatively you can place your icon in the directory specified in your <code>content package</code> line.</div>
-
-<p>{{ gecko_minversion_note("2.0", "Starting in Gecko 2.0 (Firefox 4.0), you can also simply include your icon, named <code>icon64.png</code>, in the base directory of the add-on. This allows your add-on's icon to be displayed even when the add-on is disabled, or if the manifest is missing an <code>icon64URL</code> entry.") }}</p>
-
-<p>{{ h3_gecko_minversion("targetPlatform", "1.8") }}</p>
-
-<p>A string specifying a platform that the add-on supports. It contains either the value of <code><a href="/en-US/docs/OS_TARGET" title="OS_TARGET">OS_TARGET</a></code> alone or combined with <code><a href="/en-US/docs/XPCOM_ABI" title="XPCOM_ABI">TARGET_XPCOM_ABI</a></code>, separated by an underscore (_).</p>
-
-<p>You can specify multiple <code>targetPlatform</code> properties per manifest. If any value matches the application's build parameters, it will be installed; if not, the user will get an appropriate error message.</p>
-
-<p><strong>Examples</strong></p>
-
-<pre class="brush:xml">&lt;em:targetPlatform&gt;WINNT_x86-msvc&lt;/em:targetPlatform&gt;
-
-&lt;em:targetPlatform&gt;Linux&lt;/em:targetPlatform&gt;
-
-&lt;em:targetPlatform&gt;Darwin_ppc-gcc3&lt;/em:targetPlatform&gt;
-
-&lt;em:targetPlatform&gt;SunOS_sparc-sunc&lt;/em:targetPlatform&gt;</pre>
-
-<p>Usually, you would use only the OS part for themes or for extensions that are not fully cross-platform. For extensions including binary (compiled) components, you should never use the OS alone, but include the <a href="/en-US/docs/XPCOM_ABI" title="XPCOM_ABI">ABI (s)</a> that you compiled the components with. If you want to include multiple versions of the components, you should also use <a href="/en-US/docs/Bundles#Platform-specific_Subdirectories" title="Bundles#Platform-specific_Subdirectories">Platform-specific Subdirectories</a>.</p>
-
-<p><strong>Notes</strong></p>
-
-<ul>
- <li>In the same manifest file, you could even mix values with and without ABI. If a value for the application's OS is encountered that requires any specific ABI, the ABI is considered important for that OS and the application will refuse to install the add-on if it does not find a matching OS/ABI combination. This means that if all of the above examples would occur in one manifest, the add-on will install on any Linux build of the application, regardless of its ABI, but not on a Windows Cygwin build.</li>
- <li>There may be builds of Firefox and Thunderbird which do not "know" their ABI (most likely ports to rare platforms, or non-official builds). These builds will refuse to install any addon that requires a specific ABI for their platform.</li>
-</ul>
-
-<p>This property was added for Firefox/Thunderbird 1.5. Previous versions of these applications will ignore the restrictions and install the add-on regardless of the platform.</p>
-
-<p>{{ h3_gecko_minversion("strictCompatibility", "10.0") }}</p>
-
-<p>A Boolean value indicating if the add-on should be enabled when the version of the application is greater than its max version. By default, the value of this property is <code>false</code> meaning that the compatibility checking will not be performed against the max version.</p>
-
-<pre class="brush:xml">&lt;em:strictCompatibility&gt;true&lt;/em:strictCompatibility&gt;</pre>
-
-<p>Usually, there is no need to restrict the compatibility: not all new releases will break your extension and, if it is hosted on AMO, you'll get notice several weeks in advance if a potential risk has been detected. Moreover, an extension being disabled, even for a short period, leads to a bad experience for the user. About the only time you should need to set this if your add-on does things that are likely to be broken by Firefox updates. You <strong>do not</strong> need to set this flag if your add-on has a binary component, since add-ons with binary components are always subject to strict compatibility checking (because binary components need to be rebuilt for every major application release anyway).</p>
-
-<div class="note"><strong>Note:</strong> If you want to restore the old behavior of strict compatibility checking of all add-ons, regardless of the value of this setting in their manifests, you can set the <code>extensions.strictCompatibility</code> preference to <code>true</code>.</div>
-
-<div class="note">
-<p><strong>Note:</strong> Starting in {{Gecko("11.0")}}, applications such as Firefox will assume add-ons that have not been updated in a very long time are no longer compatible by default.</p>
-</div>
-
-<p>{{ h3_gecko_minversion("multiprocessCompatible", "33.0") }}</p>
-
-<p>A Boolean value declaring whether this add-on is, or is not, compatible with <a href="/en-US/Add-ons/Working_with_multiprocess_Firefox">multiprocess Firefox</a>. If present and set to <code>true</code>, this flag instructs Firefox not to load various <a href="/en-US/Firefox/Multiprocess_Firefox/Limitations_of_chrome_scripts#Compatibility_shims">compatibility shims</a> that enable many add-ons to work even when the add-on is not compatible with multiprocess Firefox:</p>
-
-<pre class="brush: xml">&lt;em:multiprocessCompatible&gt;true&lt;/em:multiprocessCompatible&gt;</pre>
-
-<p>The setting defaults to <code>false</code>, meaning that if you omit the property, the shims are loaded for your add-on.</p>
-
-<p>You can set this property to test whether your add-on is multiprocess compatible, or after you have ensured that it is multiprocess compatible. In some future release we will change the default to <code>true</code>,  and after that point incompatible add-ons will have to explicitly declare that they are not compatible.</p>
-
-<h2 id="Obsolete_Property_Reference">Obsolete Property Reference</h2>
-
-<p>These properties were required in older versions of the Add-on Manager, but have been replaced with newer and better mechanisms.</p>
-
-<h3 id="file">file</h3>
-
-<p><strong>Firefox 1.0</strong> This property pointed to a chrome <code>.jar</code> file that contains chrome packages that require registration with the Chrome Registry.</p>
-
-<p>The <code>&lt;em:file&gt;</code> property has a complex object value. The uri of the value is <code>urn:mozilla:extension:file:jarFile.jar</code> where <code>jarFile.jar</code> is the name of the jar file that contains the chrome package's files. This could also be the name of a directory that contains the chrome package's files, un-jarred (e.g. <code>urn:mozilla:extension:file:directory</code>). In either case, the referenced chrome package file(s) must be placed in the <code>chrome</code> subdirectory of the XPI's top level.</p>
-
-<p>This object has a <code>package</code> property (with a path within the jar file or directory that leads to the location where the <code>contents.rdf</code> file responsible for registering that package is located), a <code>locale</code> property (ditto, but to register the locale) and a <code>skin</code> property (ditto, but to register the theme material).</p>
-
-<p>In extensions for Firefox 1.5, this property is no longer necessary: the <code><a href="/en-US/docs/Chrome_Registration" title="Chrome_Registration">chrome.manifest</a></code> at the top level of the XPI is used to locate chrome to register. If there is no chrome.manifest, this property is still read by the Add-on Manager and a chrome.manifest is generated from old-style contents.rdf.</p>
-
-<p><strong>Examples</strong></p>
-
-<pre class="brush:xml">&lt;em:file&gt;
- &lt;Description about="urn:mozilla:extension:file:myext.jar"&gt;
- &lt;em:package&gt;content/myext/&lt;/em:package&gt;
- &lt;em:locale&gt;locale/en-US/myext/&lt;/em:locale&gt;
- &lt;em:skin&gt;skin/classic/myext/&lt;em:skin&gt;
- &lt;/Description&gt;
-&lt;/em:file&gt;
-</pre>
-
-<p>An Install Manifest may specify multiple <code>file</code> properties, one for each jar file or subdirectory that contains chrome to register.</p>
-
-<h3 id="hidden">hidden</h3>
-
-<p><strong>Firefox 1.0</strong><strong> - 3.5</strong> A boolean value that when <code>true</code> makes the add-on not show up in the add-ons list, provided the add-on is installed in a {{ Anch("restricted access area") }} (so it does not work for add-ons installed in the profile). This is for bundling integration hooks to larger applications where having an entry in the Extensions list does not make sense.</p>
-
-<div class="note"><strong>Note:</strong> This property is no longer supported under Gecko 1.9.2 (Firefox 3.6) or later, to prevent extensions from being installed in such a way that the user might not be able to tell they're installed.</div>
-
-<p><strong>Examples</strong></p>
-
-<pre class="brush:xml">&lt;em:hidden&gt;true&lt;/em:hidden&gt;
-</pre>
-
-<h3 id="requires">requires</h3>
-
-<p><strong>Firefox 2.0 - 3.6.x</strong>. Other versions will ignore the restrictions and install the add-on regardless of the requirements.</p>
-
-<p>See <a class="link-https" href="https://groups.google.com/forum/#!topic/mozilla.dev.platform/u9QT2ZucV-c" title="https://groups.google.com/forum/#!topic/mozilla.dev.platform/u9QT2ZucV-c">Replacement for install.rdf property "requires"</a> discussion for rationale behind removing this feature and the suggested workaround.</p>
-
-<p><code>&lt;em:requires</code>&gt; has a similar syntax to the <code>&lt;em:targetApplication&gt;</code> tag (i.e. you must specify <code>&lt;em:id&gt;</code>, <code>&lt;em:minVersion&gt;</code>, <code>&lt;em:maxVersion&gt;</code> when using it). If the add-on specified by the <code>&lt;em:id&gt;</code> tag is not installed or has an incompatible version, the extension manager will disable your extension and show the message "Requires additional items". You can add as many <code>&lt;em:requires&gt;</code> tags as you like. Your extension will be disabled if any of the specified requirements fail. It is not possible to add dependencies that are specific to a <code>&lt;em:targetApplication&gt;</code>. See <a href="https://wiki.mozilla.org/Extension_Dependencies" title="https://wiki.mozilla.org/Extension_Dependencies">Extension Dependencie</a>s for more details.</p>
-
-<h2 id="Glossary">Glossary</h2>
-
-<h2 id="restricted_access_area">restricted access area</h2>
-
-<p>A <em>restricted access area</em> is an install location that could be restricted on a restricted-access account, regardless of whether or not the location is restricted with the current user privileges (see {{ Source("toolkit/mozapps/extensions/public/nsIExtensionManager.idl#80", "nsIInstallLocation::restricted") }}). Currently, the <code>($APPDIR)/extensions</code> folder and the registry install location under <code>HKEY_LOCAL_MACHINE</code> (see <a href="/en-US/docs/Adding_Extensions_using_the_Windows_Registry" title="Adding_Extensions_using_the_Windows_Registry">Adding Extensions using the Windows Registry</a> for details) are restricted.</p>
-
-<p>The <code>($PROFILE)/extensions</code> and <code>HKEY_CURRENT_USER</code> install locations, on the other hand, are not restricted.</p>
diff --git a/files/fr/mozilla/add-ons/nous_contacter/index.html b/files/fr/mozilla/add-ons/nous_contacter/index.html
deleted file mode 100644
index b15844c18c..0000000000
--- a/files/fr/mozilla/add-ons/nous_contacter/index.html
+++ /dev/null
@@ -1,45 +0,0 @@
----
-title: Nous contacter
-slug: Mozilla/Add-ons/nous_contacter
-tags:
- - Add-ons
- - Extension
- - Extensions
- - Mozilla
-translation_of: Mozilla/Add-ons/Contact_us
----
-<p>{{AddonSidebar}}</p>
-
-<p>Utilisez les liens ci-dessous pour obtenir de l'aide, pour vous tenir au courant des actualités des add-ons et pour nous faire part de vos commentaires.</p>
-
-<h3 id="Forum_des_add-ons">Forum des add-ons</h3>
-
-<p>Utilisez le <a href="https://discourse.mozilla.org/c/add-ons">forum Discourse Add-ons</a> pour discuter de tous les aspects du développement d'add-on et demander de l'aide.</p>
-
-<h3 id="Mailing_listes">Mailing listes</h3>
-
-<p>Utilisez la liste <strong>dev-addons</strong> pour discuter du développement de l'écosystème des add-ons, y compris le système WebExtensions et addons.mozilla.org:</p>
-
-<ul>
- <li><a href="https://mail.mozilla.org/listinfo/dev-addons">informations sur la liste dev-addons</a></li>
- <li><a href="https://mail.mozilla.org/pipermail/dev-addons/">archives dev-addons</a></li>
-</ul>
-
-<h3 id="Chat">Chat</h3>
-
-<p><a class="external text" href="https://matrix.org/" rel="nofollow">Matrix</a> est un protocole ouvert et léger pour les communications décentralisées en temps réel. Pour plus d'informations sur la manière de rejoindtre l'instance Matrix de Mozilla, reportez-vous à la page <a href="https://wiki.mozilla.org/Matrix">Matrix sur MozillaWiki</a>.</p>
-
-<ul>
- <li><a href="https://chat.mozilla.org/#/room/#addons:mozilla.org">Add-ons</a> (prise en charge des extensions, des thèmes et de l'API WebExtensions)</li>
- <li><a href="https://chat.mozilla.org/#/room/#amo:mozilla.org">AMO</a> (discussion autour de addons.mozilla.org)</li>
-</ul>
-
-<h3 id="Signaler_des_problèmes">Signaler des problèmes</h3>
-
-<h4 id="Vulnérabilités_de_sécurité">Vulnérabilités de sécurité</h4>
-
-<p>Si vous découvrez une vulnérabilité de sécurité d'un add-on, même si l'add-on n'est pas hébergé sur un site Mozilla, veuillez nous en informer. Nous travaillerons avec le développeur pour corriger le problème. Veuillez signaler les failles de sécurité de manière <a href="http://www.mozilla.org/projects/security/security-bugs-policy.html">confidentielle</a> dans <a href="https://bugzilla.mozilla.org/enter_bug.cgi?product=addons.mozilla.org&amp;component=Add-on%20Security&amp;maketemplate=Add-on%20Security%20Bug&amp;bit-23=1&amp;rep_platform=All&amp;op_sys=All">Bugzilla </a>ou par e-mail à <a href="mailto:amo-admins@mozilla.com">amo-admins@mozilla.com</a>.</p>
-
-<h4 id="Bugs_sur_addons.mozilla.org_AMO">Bugs sur addons.mozilla.org (AMO)</h4>
-
-<p>Si vous rencontrez un problème avec le site, nous serions ravis de le résoudre. Veuillez déposer un <a href="https://github.com/mozilla/addons/issues/new">rapport de bug </a>et inclure autant de détails que possible.</p>
diff --git a/files/fr/mozilla/add-ons/performance_best_practices_in_extensions/index.html b/files/fr/mozilla/add-ons/performance_best_practices_in_extensions/index.html
deleted file mode 100644
index f7043ecc70..0000000000
--- a/files/fr/mozilla/add-ons/performance_best_practices_in_extensions/index.html
+++ /dev/null
@@ -1,103 +0,0 @@
----
-title: Bonnes pratiques pour la performance des extensions
-slug: Mozilla/Add-ons/Performance_best_practices_in_extensions
-tags:
- - Bonnes pratiques
- - Exemple nécessaire
- - Extensions
- - Guide
- - Performance
-translation_of: Archive/Add-ons/Performance_best_practices_in_extensions
----
-<p>Un des grands avantages de Firefox est son extrême extensibilité. Les extensions peuvent faire presque tout. Toutefois, il y a un revers à cela : des extensions mal écrites peuvent avoir des conséquences graves sur l'usage de la navigation, y compris sur la performance globale de Firefox. Cet article propose quelques bonnes pratiques et recommandations qui peuvent non seulement améliorer la performance et la vitesse de votre extension, mais aussi de Firefox lui-même.</p>
-
-<h2 id="Améliorer_les_performances_du_démarrage">Améliorer les performances du démarrage</h2>
-
-<p>Les extensions sont chargées et exécutées dès que s'ouvre une nouvelle fenêtre du navigateur. Cela signifie qu'à chaque fois qu'une fenêtre s'ouvre, votre extension peut avoir une incidence sur la durée de visualisation du contenu. Plusieurs procédés sont possibles  pour réduire le délai d'attente d'affichage des contenus provoqué par votre extension.</p>
-
-<h3 id="Chargez_seulement_ce_dont_vous_avez_besoin_quand_vous_en_avez_besoin">Chargez seulement ce dont vous avez besoin quand vous en avez besoin</h3>
-
-<p>Ne chargez pas lors du démarrage les ressources qui ne seront nécessaires que lorsque l'utilisateur cliquera sur un bouton, ou qu'une préférence donnée sera activée alors qu'elle ne l'est pas encore. De la même façon, si votre extension dispose de caractéristiques qui s'exécutent uniquement quand l'utilisateur est identifié à un service, n'en chargez pas les ressources avant qu'il ne soit réellement connecté.</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="https://developer.mozilla.org/en-US/docs/Mozilla/JavaScript_code_modules/Using" title="/en-US/docs/Mozilla/JavaScript_code_modules/Using">modules de code JavaScript</a> regroupant les fonctionnalités nécessaires dans des circonstances précises. Cela permet de charger votre extension par grand bloc à la volée au cas par cas, au lieu de tout charger à la fois.</p>
-
-<p>Bien que les modules JavaScript puissent être extrêmement utiles et offrir des avantages de performance significatifs, ils doivent être utilisés à bon escient. Le chargement des modules engage peu de coût, donc segmenter le code jusqu'à un degré inutile peut être contre-productif. Le code devrait être modulaire, à souhait, ce qui augmente la clarté et le chargement des morceaux importants ou coûteux de fragments de code, s'ils peuvent être différés d'une façon significative.</p>
-
-<h3 id="Différez_tout_ce_que_vous_pouvez">Différez tout ce que vous pouvez</h3>
-
-<p>La plupart des extensions ont un auditeur d'événements de chargement dans leur séquence principale qui exécute les fonctions de démarrage. Faites-en le moins possible à cet endroit. La fenêtre du navigateur est bloquée pendant que le gestionnaire de chargement de votre extension fonctionne, ainsi plus il tarde dans cette opération, plus Firefox semblera lent à l'utilisateur.</p>
-
-<p>S'il y a quelque chose qui peut être fait, même en une fraction de seconde plus tard, vous pouvez utiliser les méthodes {{ interface("nsITimer") }} ou {{ domxref("window.setTimeout()") }} pour planifier une exécution différée. Même un court report peut avoir un grand impact.</p>
-
-<h2 id="Conseils_sur_les_performances_générales">Conseils sur les performances générales</h2>
-
-<h3 id="Évitez_de_créer_des_fuites_de_mémoire">Évitez de créer des fuites de mémoire</h3>
-
-<p>Les fuites de mémoire exigent du ramasse-miette et du collecteur de cycle un travail plus intense qui peut de manière significative dégrader les performances.</p>
-
-<p>Les compartiments zombie sont un type particulier de fuite mémoire que vous pouvez détecter avec un minimum d'effort. Consultez la page <a href="https://developer.mozilla.org/en/Zombie_compartments" title="en/Zombie_compartments">Compartiments zombie</a>, particulièrement la section <a href="https://developer.mozilla.org/en/Zombie_compartments#Proactive_checking_of_add-ons" title="en/Zombie_compartments#Proactive_checking_of_add-ons">Vérification proactive des extensions</a>.</p>
-
-<p>Consultez les <a href="https://developer.mozilla.org/en/Extensions/Common_causes_of_memory_leaks_in_extensions" title="en/Extensions/Common_causes_of_zombie_compartments_in_extensions">Causes classiques de fuites de mémoire dans les extensions </a>afin d'éviter les compartiments zombie et d'autres genres de fuites.</p>
-
-<p>Aussi bien que la recherche de ces types spécifiques de fuite, il vaut la peine de s'exercer sur les fonctionnalités de votre extension et d'examiner le contenu de la mémoire pour s'assurer de toute utilisation excessive. Par exemple, le <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> de Firefox a indiqué un compartiment JavaScript « Système principal » contenant des centaines de Mo de mémoire, ce qui est beaucoup plus important qu'habituellement.</p>
-
-<h3 id="Évitez_l'écriture_de_CSS_lent">Évitez l'écriture de CSS lent</h3>
-
-<ul>
- <li>Lisez le guide <a href="/en/CSS/Writing_Efficient_CSS" title="en/CSS/Writing_Efficient_CSS">Écriture de CSS efficace</a>.</li>
- <li>Rappelez-vous que n'importe quel sélecteur dans votre règle qui pourrait s'appairer avec beaucoup de nœuds différents est une source d'inefficacité, soit durant l'apparemment du sélecteur ou soit durant le traitement dynamique de mise à jour. C'est particulièrement déconseillé pour ce dernier si le sélecteur peut dynamiquement démarrer ou cesser l'appairement. Évitez les « :hover » excessifs comme la peste.</li>
-</ul>
-
-<h3 id="Évitez_les_auditeurs_d'événements_de_mutation_dans_un_DOM">Évitez les auditeurs d'événements de mutation dans un DOM</h3>
-
-<p>Les auditeurs d'événements de mutation sont extrêmement consommateurs de temps, une fois ajoutés même brièvement à un document, ils nuisent de manière significative à sa performance.</p>
-
-<p>Les événements de mutation sont officiellement obsolètes, et il existe de<a href="/en-US/Add-ons/Overlay_Extensions/XUL_School/Appendix_F:_Monitoring_DOM_changes">nombreuses alternatives</a> ; ils devraient donc être évités à tout prix.</p>
-
-<h3 id="Chargez_les_services_en_mode_paresseux">Chargez les services en mode paresseux</h3>
-
-<p>Le <a href="/en/JavaScript_code_modules/XPCOMUtils.jsm#Methods" title="en/JavaScript_code_modules/XPCOMUtils.jsm#Methods">module XPCOMUtils JavaScript</a> fournit deux méthodes pour le chargement lent de ressources :</p>
-
-<ul>
- <li><code>defineLazyGetter()</code> définit une fonction sur un objet spécifié qui agit comme un getter et qui sera créée dès la première fois qu'elle est utilisée. <a class="external" href="http://mxr.mozilla.org/mozilla-central/search?string=defineLazyGetter">Voir exemples</a>.</li>
- <li><code>defineLazyServiceGetter()</code> définit une fonction sur un objet spécifié qui agit comme un getter pour un service. Le service s'active dès la première fois que l'on utilise. {{ LXRSearch("ident", "string", "defineLazyServiceGetter", "Look through the source") }} par exemples.</li>
-</ul>
-
-<p>Beaucoup de services communs sont déjà mis en cache pour vous dans <a href="/en-US/JavaScript_code_modules/Services.jsm">Services.jsm</a>.</p>
-
-<h3 id="Utilisez_les_entrées-sorties_en_asynchrone">Utilisez les entrées-sorties en asynchrone</h3>
-
-<p>Cela ne peut pas être suffisamment souligné : ne jamais faire d'entrées-sorties dans une tâche principale.</p>
-
-<p>N'importe quel genre d'entrée-sortie dans un traitement principal, que ce soit l'entrée-sortie de disque ou de réseau, peut causer les questions sérieuses de réactivité de l'unité centrale.</p>
-
-<ul>
- <li>Ne jamais utiliser XMLHttpRequests en synchrone.</li>
- <li><a href="/en-US/JavaScript_code_modules/NetUtil.jsm">NetUtils.jsm</a> fournit des aides pour la lecture et la copie asynchrones des dossiers.</li>
- <li>Ne jamais accéder en synchrone à une base de données SQLite. Utiliser l'API asynchrone à la place.</li>
- <li>Effectuer des opérations séquentielles et asynchrones peuvent souvent être considérablement simplifiées <a href="/en-US/Add-ons/Techniques/Promises">en utilisant Promises</a>.</li>
-</ul>
-
-<h3 id="Évitez_les_événements_de_mouvement_de_souris">Évitez les événements de mouvement de souris</h3>
-
-<p>Évitez d'utiliser les auditeurs d'événement de souris, y compris le mouseover, le mouseout, le mouseenter, le mouseexit, et particulièrement le mousemove. Ces événements se produisent avec la haute fréquence, ainsi leurs auditeurs peuvent trivialement créer des surcharges très élevées de l'unité centrale .</p>
-
-<p>Quand ces événements ne peuvent pas être évités, pendant le calcul, les auditeurs devraient être maintenus à un minimum et à un travail réel restreint. Les auditeurs devraient être ajoutés à l'élément le plus spécifique possible, et être enlevés lorsqu'ils ne sont pas immédiatement nécessaires.</p>
-
-<h3 id="Évitez_les_images_animées">Évitez les images animées</h3>
-
-<p>Généralement les images animées sont beaucoup plus consommatrices de temps que prévu, particulièrement lorsqu'elles sont utilisées dans l'élément XUL {{ XULElem("tree") }}.</p>
-
-<h3 id="Envisagez_d'utiliser_les_exécuteurs_du_Chrome">Envisagez d'utiliser les exécuteurs du Chrome</h3>
-
-<p>Vous pouvez utiliser l'élément {{ domxref("ChromeWorker") }} pour exécuter des tâches de longue durée ou faire du traitement de données.</p>
-
-<h2 id="Consulter_aussi">Consulter aussi</h2>
-
-<ul>
- <li><a href="/en/Performance/Measuring_add-on_startup_performance" title="en/Measuring Add-on Startup Performance">Mesure de performence au démarrage d'une extensions</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/">Comment améliorer la performance de démarrage d'une extension</a></li>
- <li><a href="/en-US/docs/Performance">Information générale relative à la mesure et à l'amélioration de la perfomance dans le code Mozilla</a></li>
-</ul>
diff --git a/files/fr/mozilla/add-ons/plugins/index.html b/files/fr/mozilla/add-ons/plugins/index.html
deleted file mode 100644
index c978874fe1..0000000000
--- a/files/fr/mozilla/add-ons/plugins/index.html
+++ /dev/null
@@ -1,110 +0,0 @@
----
-title: Plugins
-slug: Mozilla/Add-ons/Plugins
-translation_of: Archive/Plugins
----
-<div class="blockIndicator warning">
-<p><strong>Important</strong>: Since <a href="/en-US/docs/Mozilla/Firefox/Releases/52">Firefox 52</a>, all plugin support except Flash has been dropped (see <span><a href="https://www.fxsitecompat.com/en-CA/docs/2016/plug-in-support-has-been-dropped-other-than-flash/">Plug-in support has been dropped other than Flash</a> for more details</span>). Flash usage is also set to be phased out in the future.</p>
-</div>
-
-<div class="blockIndicator note">
-<p><strong>Note</strong>: Plugins are now a legacy technology. They are not available on most mobile devices. Mozilla encourages website developers to avoid using plugins wherever possible and use standard Web APIs instead. If there are plugin features which are not available in the web platform, we encourage developers to post their use cases to mozilla.dev.platform project list, so that Mozilla can prioritize web platform work to make those use cases possible.</p>
-</div>
-
-<p>For more information about plugin roadmap, see <a href="/en-US/docs/Plugins">non-archived plugin information</a>.</p>
-
-<p>Plugins are shared libraries that users can install to display content that the browser can't display natively. For example, the Adobe Reader plugin lets the user open PDF files directly inside the browser, and the QuickTime and RealPlayer plugins are used to play special format videos in a web page.</p>
-
-<p>Plugins are written using <strong>NPAPI</strong>, the cross-browser API for plugins. The main source of documentation for NPAPI is the <a href="/en/Gecko_Plugin_API_Reference" title="en/Gecko_Plugin_API_Reference">Gecko Plugin API Reference</a>. To make your plugin scriptable from web pages, use <a href="/en/Gecko_Plugin_API_Reference/Scripting_plugins" title="en/Gecko_Plugin_API_Reference/Scripting_plugins">npruntime</a>.</p>
-
-<p>Plugins can be written completely from scratch using C APIs (usually in C or C++) or they may be built on a plugin framework such as <a class="external" href="http://www.firebreath.org" title="http://www.firebreath.org/">Firebreath</a>, <a class="external" href="http://www.juce.com/" title="http://www.rawmaterialsoftware.com/juce.php">JUCE</a>, or <a class="external" href="http://doc.qt.nokia.com/solutions/4/qtbrowserplugin/developingplugins.html" title="http://doc.qt.nokia.com/solutions/4/qtbrowserplugin/developingplugins.html">QtBrowserPlugin</a>. There are also some code generation tools that may be helpful. More information about these tools can be found on the <a href="/en/Plugins/External_resources_for_plugin_creation" title="en/Plugins/External resources for plugin creation">External Resources</a> page.</p>
-
-<p>Plugins are different from <a href="/en/Extensions" title="en/Extensions">extensions</a>, which modify or enhance the functionality of the browser itself. Plugins are also different from <a href="/en/Creating_OpenSearch_plugins_for_Firefox" title="en/Creating_OpenSearch_plugins_for_Firefox">search plugins</a>, which plug additional search engines in the search bar.</p>
-
-<hr>
-<div class="topicpage-table">
-<div class="section">
-<dl>
- <dt><a href="/en/Gecko_Plugin_API_Reference" title="en/Gecko_Plugin_API_Reference">Gecko Plugin API Reference</a> (NPAPI)</dt>
- <dd>This reference describes the application programming interfaces for NPAPI plugins and provides information about how to use these interfaces.</dd>
- <dt><a href="/en-US/docs/Site_Author_Guide_for_Click-To-Activate_Plugins">Site Author Guide For Click-To-Activate Plugins</a></dt>
- <dd>These guidelines will help website authors use plugins when they are blocked by default with the Firefox click-to-activate feature.</dd>
-</dl>
-
-<dl>
- <dt><a href="/en/Gecko_Plugin_API_Reference/Scripting_plugins" title="en/Gecko_Plugin_API_Reference/Scripting_plugins">Scripting plugins</a> (npruntime)</dt>
- <dd>This reference describes the new cross-browser NPAPI extensions that let plugins be scriptable and also let them access the script objects in the browser.</dd>
-</dl>
-
-<dl>
- <dt><a href="/en/Shipping_a_plugin_as_a_Toolkit_bundle" title="en/Shipping_a_plugin_as_a_Toolkit_bundle">Shipping a plugin as a Toolkit bundle</a></dt>
- <dd>Plugins can be shipped as a Toolkit <a href="/en/Bundles" title="Bundles">bundle</a>, allowing a user to easily install, uninstall and manage their personal plugins.</dd>
-</dl>
-
-<dl>
- <dt><a class="internal" href="/En/Supporting_private_browsing_in_plugins" title="en/Supporting private browsing in plugins">Supporting private browsing in plugins</a></dt>
- <dd>Firefox 3.5 introduced support for private browsing; learn how to make your plugin respect the user's privacy wishes.</dd>
- <dt><a href="/en/Plugins/Multi-Process_Plugin_Architecture" title="en/Plugins/Multi-Process Plugin Architecture">Multi-Process Plugin Architecture</a></dt>
- <dd>How Firefox loads plugins into a separate process. Firefox 3.6.4 introduced out-of-process plugins which execute in a separate process so that a crashing plugin does not crash the browser.</dd>
- <dt><a href="/en/Plugins/Logging" title="en/Plugins/Logging">Logging and Debugging for Multi-Process Plugins</a></dt>
- <dd>How to create a plugin log to aid in debugging problems with multi-process plugins.</dd>
-</dl>
-</div>
-
-<div class="section">
-<dl>
- <dt><a class="internal" href="/En/Writing_a_plugin_for_Mac_OS_X" title="en/Writing a plugin for Mac OS X">Writing a plugin for Mac OS X</a></dt>
- <dd>Learn how to write a plugin for Mac OS X; a template Xcode project is provided.</dd>
-</dl>
-
-<dl>
- <dt><a href="/en/Monitoring_plugins" title="en/Monitoring_plugins">Monitoring Plugins</a></dt>
- <dd>Use an observer service notification to monitor the amount of time spent executing calls in plugins. This can be useful when trying to determine if a plug-in is consuming too many resources.</dd>
-</dl>
-
-<dl>
- <dt><a href="/en/Scripting_Plugins/Adobe_Flash" title="en/Scripting_Plugins/Macromedia_Flash">Scripting Plugins: Macromedia Flash</a></dt>
- <dd>This article explains how JavaScript can be used to access methods from within the Flash plugin, as well as how a feature called FSCommands can be used to access JavaScript functions from within the Flash animation.</dd>
-</dl>
-
-<dl>
- <dt><a href="/en/Gecko_Plugin_API_Reference/Plug-in_Development_Overview" title="en/Plugins/The_First_Install_Problem">Plugins: The First Install Problem</a></dt>
- <dd>The First Install Problem is the name given to the conditions arising when a plugin or embeddable software installs itself on a system first, before any other Gecko-based browser.</dd>
-</dl>
-
-<dl>
- <dt><a href="/en/Plugins/Samples_and_Test_Cases" title="en/Plugins/Samples_and_Test_Cases">Plugins: Samples and Test Cases</a></dt>
- <dd>NPAPI plugin samples and test cases.</dd>
- <dt><a href="/en/Plugins/External_resources_for_plugin_creation" title="https://developer.mozilla.org/en/Plugins/External_resources_for_plugin_creation">External Resources for Plugin Creation</a></dt>
- <dd>External projects, frameworks, and blog posts that may be useful.</dd>
-</dl>
-
-<dl>
- <dt><a href="/en/XEmbed_Extension_for_Mozilla_Plugins" title="en/XEmbed_Extension_for_Mozilla_Plugins">XEmbed Extension for Mozilla Plugins</a></dt>
- <dd>Recent versions of Mozilla on *nix-based systems include an extension for writing plugins that use XEmbed instead of using the old Xt-based main loop that most plugins have been using since the Netscape 3.x days.</dd>
-</dl>
-</div>
-</div>
-
-<hr>
-<p><span class="comment">Categories</span></p>
-
-<p><span class="comment">Interwiki Language Links</span></p>
-
-<div class="blockIndicator communitybox" dir="ltr">
-<div class="column-container">
-<h2 id="Join_the_plugin_development_community">Join the plugin development community</h2>
-
-<div class="column-half">
-<div class="communitysubhead">Choose your preferred method for joining the discussion:</div>
-
-<ul class="communitymailinglist">
- <li><a href="https://lists.mozilla.org/listinfo/dev-tech-plugins">Mailing list</a></li>
- <li><a href="http://groups.google.com/group/mozilla.dev.tech.plugins">Newsgroup</a></li>
- <li><a href="http://groups.google.com/group/mozilla.dev.tech.plugins/feeds">RSS feed</a></li>
-</ul>
-</div>
-
-<div class="column-half"> </div>
-</div>
-</div>
diff --git a/files/fr/mozilla/add-ons/sdk/high-level_apis/base64/index.html b/files/fr/mozilla/add-ons/sdk/high-level_apis/base64/index.html
deleted file mode 100644
index f4d71166d9..0000000000
--- a/files/fr/mozilla/add-ons/sdk/high-level_apis/base64/index.html
+++ /dev/null
@@ -1,111 +0,0 @@
----
-title: base64
-slug: Mozilla/Add-ons/SDK/High-Level_APIs/base64
-translation_of: Archive/Add-ons/Add-on_SDK/High-Level_APIs/base64
----
-<p> <span id="result_box" lang="fr"><span class="hps">Le codage des données</span> <span class="hps">et le décodage</span> <span class="hps">en utilisant des algorithmes</span> <span class="hps">Base64</span><span>.</span><br>
- <br>
- <span class="hps">var</span> <span class="hps">base64</span> <span class="hps">=</span> <span class="atn hps">require (</span><span class="atn hps">"</span><span>sdk</span> <span class="hps">/</span> <span class="hps">base64</span><span>"</span><span>)</span><span>;</span><br>
-  <br>
- <span class="hps">var</span> <span class="hps">encodedData</span> <span class="hps">=</span> <span class="hps">base64.encode</span> <span class="atn hps">(</span><span class="atn hps">"</span><span>Bonjour,</span> <span class="hps">monde»</span><span>)</span><span>;</span><br>
- <span class="hps">var</span> <span class="hps">decodedData</span> <span class="hps">=</span> <span class="hps">base64.decode</span> <span class="atn hps">(</span><span>encodedData</span><span>)</span><span>;</span></span></p>
-
-<div class="almost_half_cell" id="gt-res-content">
-<div dir="ltr" style="zoom: 1;"><span id="result_box" lang="fr"><span class="hps">Les fonctions</span><br>
-<span class="atn hps">encode (</span><span>données</span><span>,</span> <span class="hps">charset)</span><br>
-<br>
-<span class="hps">Crée une</span> <span class="hps">chaîne de caractères ASCII</span> <span class="hps">de base</span> <span class="hps">64</span> <span class="hps">codé</span> <span class="hps">à partir d'une</span> <span class="hps">chaîne de données</span> <span class="hps">binaires</span><span>.</span><br>
-<span class="hps">Paramètres</span><br>
-<br>
-<span class="hps">données</span><span>: string</span><br>
-<span class="hps">Les données</span> <span class="hps">pour coder</span><br>
-<br>
-<span class="hps">charset</span><span>: string</span><br>
-<span class="hps">Le</span> <span class="hps">charset</span> <span class="hps">de la chaîne à</span> <span class="hps">coder</span> <span class="hps">(en option</span><span>)</span><span>.</span> <span class="hps">La seule valeur</span> <span class="hps">acceptée est</span> <span class="atn hps">"</span><span>utf-8"</span><span>.</span> <span class="hps">Pour</span> <span class="hps">coder et décoder</span> <span class="hps">les chaînes Unicode</span><span>,</span> <span class="hps">le paramètre charset</span> <span class="hps">doit être réglé</span><span>:</span><br>
-<br>
-<span class="hps">var</span> <span class="hps">base64</span> <span class="hps">=</span> <span class="atn hps">require (</span><span class="atn hps">"</span><span>sdk</span> <span class="hps">/</span> <span class="hps">base64</span><span>"</span><span>)</span><span>;</span><br>
-<br>
-<span class="hps">var</span> <span class="hps">encodedData</span> <span class="hps">=</span> <span class="hps">base64.encode</span> <span class="atn hps">(</span><span>UnicodeString</span><span>,</span> <span class="atn hps">"</span><span>utf-8"</span><span>)</span><span>;</span><br>
-<br>
-<span class="hps">résultats</span><br>
-<br>
-<span class="hps">string:</span> <span class="hps">La chaîne</span> <span class="hps">codée</span><br>
-<span class="atn hps">decode (</span><span>données</span><span>,</span> <span class="hps">charset)</span><br>
-<br>
-<span class="hps">Décode</span> <span class="hps">une chaîne de données</span> <span class="hps">qui a été codé</span> <span class="hps">en utilisant la base</span> <span class="hps">64</span> <span class="hps">codage.</span><br>
-<span class="hps">Paramètres</span><br>
-<br>
-<span class="hps">données</span><span>: string</span><br>
-<span class="hps">Les données codées</span><br>
-<br>
-<span class="hps">charset</span><span>: string</span><br>
-<span class="hps">Le</span> <span class="hps">charset</span> <span class="hps">de la chaîne à</span> <span class="hps">coder</span> <span class="hps">(en option</span><span>)</span><span>.</span> <span class="hps">La seule valeur</span> <span class="hps">acceptée est</span> <span class="atn hps">"</span><span>utf-8"</span><span>.</span> <span class="hps">Pour</span> <span class="hps">coder et décoder</span> <span class="hps">les chaînes Unicode</span><span>,</span> <span class="hps">le paramètre charset</span> <span class="hps">doit être réglé</span><span>:</span><br>
-<br>
-<span class="hps">var</span> <span class="hps">base64</span> <span class="hps">=</span> <span class="atn hps">require (</span><span class="atn hps">"</span><span>sdk</span> <span class="hps">/</span> <span class="hps">base64</span><span>"</span><span>)</span><span>;</span><br>
-<br>
-<span class="hps">var</span> <span class="hps">decodedData</span> <span class="hps">=</span> <span class="hps">base64.decode</span> <span class="atn hps">(</span><span>encodedData</span><span>,</span> <span class="atn hps">"</span><span>utf-8"</span><span>)</span><span>;</span><br>
-<br>
-<span class="hps">résultats</span><br>
-<br>
-<span class="hps">string:</span> <span class="hps">La chaîne</span> <span class="hps">décodée</span> <span class="atn hps">(</span><span>encodedData</span><span>)</span><span>;</span></span></div>
-</div>
-
-<div class="note">
-<p>{{AddonSidebar}}</p>
-</div>
-
-<div class="note">
-<p>Unstable</p>
-</div>
-
-<p>Data encoding and decoding using Base64 algorithms.</p>
-
-<pre class="brush: js">var base64 = require("sdk/base64");
-
-var encodedData = base64.encode("Hello, World");
-var decodedData = base64.decode(encodedData);</pre>
-
-<h2 id="Globals">Globals</h2>
-
-<h3 id="Functions">Functions</h3>
-
-<h4 class="addon-sdk-api-name" id="encode(data_charset)"><code>encode(data, charset)</code></h4>
-
-<p>Creates a base-64 encoded ASCII string from a string of binary data.</p>
-
-<h5 id="Parameters">Parameters</h5>
-
-<p><strong>data : string</strong><br>
- The data to encode</p>
-
-<p><strong>charset : string</strong><br>
- The charset of the string to encode (optional). The only accepted value is <code>"utf-8"</code>. In order to encode and decode Unicode strings, the charset parameter needs to be set:</p>
-
-<pre class="brush: js">var base64 = require("sdk/base64");
-
-var encodedData = base64.encode(unicodeString, "utf-8");
-</pre>
-
-<h5 id="Returns">Returns</h5>
-
-<p><strong>string</strong> : The encoded string</p>
-
-<h4 class="addon-sdk-api-name" id="decode(data_charset)"><code>decode(data, charset)</code></h4>
-
-<p>Decodes a string of data which has been encoded using base-64 encoding.</p>
-
-<h5 id="Parameters_2">Parameters</h5>
-
-<p><strong>data : string</strong><br>
- The encoded data</p>
-
-<p><strong>charset : string</strong><br>
- The charset of the string to encode (optional). The only accepted value is <code>"utf-8"</code>. In order to encode and decode Unicode strings, the charset parameter needs to be set:</p>
-
-<pre class="brush: js">var base64 = require("sdk/base64");
-
-var decodedData = base64.decode(encodedData, "utf-8");</pre>
-
-<h5 id="Returns_2">Returns</h5>
-
-<p><strong>string</strong> : The decoded string</p>
diff --git a/files/fr/mozilla/add-ons/sdk/high-level_apis/context-menu/index.html b/files/fr/mozilla/add-ons/sdk/high-level_apis/context-menu/index.html
deleted file mode 100644
index 9af486cc64..0000000000
--- a/files/fr/mozilla/add-ons/sdk/high-level_apis/context-menu/index.html
+++ /dev/null
@@ -1,833 +0,0 @@
----
-title: context-menu
-slug: Mozilla/Add-ons/SDK/High-Level_APIs/context-menu
-translation_of: Archive/Add-ons/Add-on_SDK/High-Level_APIs/context-menu
----
-<p>{{AddonSidebar}}</p>
-
-<div class="note">
-<p>Stable</p>
-</div>
-
-<p><span class="seoSummary">Ajouez des éléments, sous-menus et des séparateurs au menu contextuel.</span></p>
-
-<h2 id="Usage">Usage</h2>
-
-<p>Instead of manually adding items when particular contexts occur and then removing them when those contexts go away, you <em>bind</em> items to contexts, and the adding and removing is automatically handled for you. Items are bound to contexts in much the same way that event listeners are bound to events. When the user invokes the context menu, all of the items bound to the current context are automatically added to the menu. If no items are bound, none are added. Likewise, any items that were previously in the menu but are not bound to the current context are automatically removed from the menu. You never need to manually remove your items from the menu unless you want them to never appear again.</p>
-
-<p>For example, if your add-on needs to add a context menu item whenever the user visits a certain page, don't create the item when that page loads, and don't remove it when the page unloads. Rather, create your item only once and supply a context that matches the target URL.</p>
-
-<p>Context menu items are displayed in the order created or in the case of sub menus the order added to the sub menu. Menu items for each add-on will be grouped together automatically. If the total number of menu items in the main context menu from all add-ons exceeds a certain number (normally 10 but configurable with the <code>extensions.addon-sdk.context-menu.overflowThreshold</code> preference) all of the menu items will instead appear in an overflow menu to avoid making the context menu too large.</p>
-
-<h3 id="Specifying_contexts">Specifying contexts</h3>
-
-<p>As its name implies, the context menu should be reserved for the occurrence of specific contexts. Contexts can be related to page content or the page itself, but they should never be external to the page.</p>
-
-<p>For example, a good use of the menu would be to show an "Edit Image" item when the user right-clicks an image in the page. A bad use would be to show a submenu that listed all the user's tabs, since tabs aren't related to the page or the node the user clicked to open the menu.</p>
-
-<h4 id="The_page_context">The page context</h4>
-
-<p>First of all, you may not need to specify a context at all. When a top-level item does not specify a context, the page context applies. An item that is in a submenu is visible unless you specify a context.</p>
-
-<p>The <em>page context</em> occurs when the user invokes the context menu on a non-interactive portion of the page. Try right-clicking a blank spot in this page, or on text. Make sure that no text is selected. The menu that appears should contain the items "Back", "Forward", "Reload", "Stop", and so on. This is the page context.</p>
-
-<p>The page context is appropriate when your item acts on the page as a whole. It does not occur when the user invokes the context menu on a link, image, or other non-text node, or while a selection exists.</p>
-
-<h4 id="Declarative_contexts">Declarative contexts</h4>
-
-<p>You can specify some simple, declarative contexts when you create a menu item by setting the <code>context</code> property of the options object passed to its constructor, like this:</p>
-
-<pre class="brush: js">var cm = require("sdk/context-menu");
-cm.Item({
- label: "My Menu Item",
- context: cm.URLContext("*.mozilla.org")
-});</pre>
-
-<table class="standard-table">
- <tbody>
- <tr>
- <th>Constructor</th>
- <th>Description</th>
- </tr>
- <tr>
- <td><code>PageContext() </code></td>
- <td>The page context.</td>
- </tr>
- <tr>
- <td><code>SelectionContext() </code></td>
- <td>This context occurs when the menu is invoked on a page in which the user has made a selection.</td>
- </tr>
- <tr>
- <td><code>SelectorContext(selector) </code></td>
- <td>This context occurs when the menu is invoked on a node that either matches <code>selector</code>, a CSS selector, or has an ancestor that matches. <code>selector</code> may include multiple selectors separated by commas, e.g., <code>"a[href], img"</code>.</td>
- </tr>
- <tr>
- <td><code>URLContext(matchPattern) </code></td>
- <td>This context occurs when the menu is invoked on pages with particular URLs. <code>matchPattern</code> is a match pattern string or an array of match pattern strings. When <code>matchPattern</code> is an array, the context occurs when the menu is invoked on a page whose URL matches any of the patterns. These are the same match pattern strings that you use with the <a href="/en-US/Add-ons/SDK/High-Level_APIs/page-mod"><code>page-mod</code></a> <code>include</code> property. <a href="/en-US/Add-ons/SDK/Low-Level_APIs/util_match-pattern">Read more about patterns</a>.</td>
- </tr>
- <tr>
- <td><code>PredicateContext(predicateFunction)</code></td>
- <td><code>predicateFunction</code> is called when the menu is invoked, and the context occurs when the function returns a true value. The function is passed an object with properties describing the menu invocaton context.</td>
- </tr>
- <tr>
- <td>array</td>
- <td>An array of any of the other types. This context occurs when all contexts in the array occur.</td>
- </tr>
- </tbody>
-</table>
-
-<p>Menu items also have a <code>context</code> property that can be used to add and remove declarative contexts after construction. For example:</p>
-
-<pre class="brush: js">var context = require("sdk/context-menu").SelectorContext("img");
-myMenuItem.context.add(context);
-myMenuItem.context.remove(context);</pre>
-
-<p>When a menu item is bound to more than one context, it appears in the menu when all of those contexts occur.</p>
-
-<h3 id="In_content_scripts">In content scripts</h3>
-
-<p>The declarative contexts are handy but not very powerful. For instance, you might want your menu item to appear for any page that has at least one image, but declarative contexts won't help you there.</p>
-
-<p>When you need more control over the context in which your menu items are shown, you can use content scripts. Like other APIs in the SDK, the <code>context-menu</code> API uses <a href="/en-US/Add-ons/SDK/Guides/Content_Scripts">content scripts</a> to let your add-on interact with pages in the browser. Each menu item you create in the top-level context menu can have a content script.</p>
-
-<p>A special event named <code>"context"</code> is emitted in your content scripts whenever the context menu is about to be shown. If you register a listener function for this event and it returns true, the menu item associated with the listener's content script is shown in the menu.</p>
-
-<p>For example, this item appears whenever the context menu is invoked on a page that contains at least one image:</p>
-
-<pre class="brush: js">require("sdk/context-menu").Item({
- label: "This Page Has Images",
- contentScript: 'self.on("context", function (node) {' +
- ' return !!document.querySelector("img");' +
- '});'
-});</pre>
-
-<p>Note that the listener function has a parameter called <code>node</code>. This is the node in the page that the user context-clicked to invoke the menu. You can use it to determine whether your item should be shown.</p>
-
-<p>You can both specify declarative contexts and listen for contexts in a content script. Your context listener is called even if any declarative contexts are not current (since Firefox 36).</p>
-
-<p>If you combine <code>SelectorContext</code> and the <code>"context"</code> event, be aware that the <code>node</code> argument passed to the <code>"context"</code> event will not always match the type specified in <code>SelectorContext</code>.</p>
-
-<p><code>SelectorContext</code> will match if the menu is invoked on the node specified <em>or any descendant of that node</em>, but the <code>"context"</code> event handler is passed <em>the actual node</em> on which the menu was invoked. The example above works because <code>&lt;IMG&gt;</code> elements can't contain other elements, but in the example below, <code>node.nodeName</code> is not guaranteed to be "P" - for example, it won't be "P" if the user context-clicked a link inside a paragraph:</p>
-
-<pre class="brush: js">var cm = require("sdk/context-menu");
-cm.Item({
- label: "A Paragraph",
- context: cm.SelectorContext("p"),
- contentScript: 'self.on("context", function (node) {' +
- ' console.log(node.nodeName);' +
- ' return true;' +
- '});'
-});</pre>
-
-<p>The content script is executed for every page that a context menu is shown for. It will be executed the first time it is needed (i.e. when the context menu is first shown and all of the declarative contexts for your item are current) and then remains active until you destroy your context menu item or the page is unloaded.</p>
-
-<h3 id="Handling_menu_item_clicks">Handling menu item clicks</h3>
-
-<p>In addition to using content scripts to listen for the <code>"context"</code> event as described above, you can use content scripts to handle item clicks. When the user clicks your menu item, an event named <code>"click"</code> is emitted in the item's content script.</p>
-
-<p>Therefore, to handle an item click, listen for the <code>"click"</code> event in that item's content script like so:</p>
-
-<pre class="brush: js">require("sdk/context-menu").Item({
- label: "My Item",
- contentScript: 'self.on("click", function (node, data) {' +
- ' console.log("Item clicked!");' +
- '});'
-});</pre>
-
-<p>Note that the listener function has parameters called <code>node</code> and <code>data</code>.</p>
-
-<h4 id="The_node_argument">The "node" argument</h4>
-
-<p><code>node</code> is the node that the user context-clicked to invoke the menu.</p>
-
-<ul>
- <li>If you did not use <code>SelectorContext</code> to decide whether to show the menu item, then this is the actual node clicked.</li>
- <li>If you did use <code>SelectorContext</code>, then this is the node that matched your selector.</li>
-</ul>
-
-<p>For example, suppose your add-on looks like this:</p>
-
-<pre class="brush: js">var script = "self.on('click', function (node, data) {" +
- " console.log('clicked: ' + node.nodeName);" +
- "});";
-
-var cm = require("sdk/context-menu");
-
-cm.Item({
- label: "body context",
- context: cm.SelectorContext("body"),
- contentScript: script
-});</pre>
-
-<p>This add-on creates a context-menu item that uses <code>SelectorContext</code> to display the item whenever the context menu is activated on any descendant of the <code>&lt;BODY&gt;</code> element. When clicked, the item just logs the <a href="https://developer.mozilla.org/en-US/docs/DOM/Node.nodeName"><code>nodeName</code></a> property for the node passed to the click handler.</p>
-
-<p>If you run this add-on you'll see that it always logs "BODY", even if you click on a paragraph element inside the page:</p>
-
-<pre>info: contextmenu-example: clicked: BODY</pre>
-
-<p>By contrast, this add-on uses the <code>PageContext</code>:</p>
-
-<pre class="brush: js">var script = "self.on('click', function (node, data) {" +
- " console.log('clicked: ' + node.nodeName);" +
- "});";
-
-var cm = require("sdk/context-menu");
-
-cm.Item({
- label: "body context",
- context: cm.PageContext(),
- contentScript: script
-});</pre>
-
-<p>It will log the name of the actual node clicked:</p>
-
-<pre>info: contextmenu-example: clicked: P</pre>
-
-<h4 id="The_data_Argument">The "data" Argument</h4>
-
-<p><code>data</code> is the <code>data</code> property of the menu item that was clicked. Note that when you have a hierarchy of menu items the click event will be sent to the content script of the item clicked and all ancestors so be sure to verify that the <code>data</code> value passed matches the item you expect. You can use this to simplify click handling by providing just a single click listener on a <code>Menu</code> that reacts to clicks for any child items.:</p>
-
-<pre class="brush: js">var cm = require("sdk/context-menu");
-cm.Menu({
- label: "My Menu",
- contentScript: 'self.on("click", function (node, data) {' +
- ' console.log("You clicked " + data);' +
- '});',
- items: [
- cm.Item({ label: "Item 1", data: "item1" }),
- cm.Item({ label: "Item 2", data: "item2" }),
- cm.Item({ label: "Item 3", data: "item3" })
- ]
-});
-</pre>
-
-<h4 id="Communicating_With_the_Add-on">Communicating With the Add-on</h4>
-
-<p>Often you will need to collect some kind of information in the click listener and perform an action unrelated to content. To communicate to the menu item associated with the content script, the content script can call the <code>postMessage</code> function attached to the global <code>self</code> object, passing it some JSON-able data. The menu item's <code>"message"</code> event listener will be called with that data.</p>
-
-<pre class="brush: js">var cm = require("sdk/context-menu");
-cm.Item({
- label: "Edit Image",
- context: cm.SelectorContext("img"),
- contentScript: 'self.on("click", function (node, data) {' +
- ' self.postMessage(node.src);' +
- '});',
- onMessage: function (imgSrc) {
- openImageEditor(imgSrc);
- }
-});</pre>
-
-<h3 id="Updating_a_menu_item's_label">Updating a menu item's label</h3>
-
-<p>Each menu item must be created with a label, but you can change its label later using a couple of methods.</p>
-
-<p>The simplest method is to set the menu item's <code>label</code> property. This example updates the item's label based on the number of times it's been clicked:</p>
-
-<pre class="brush: js">var numClicks = 0;
-var myItem = require("sdk/context-menu").Item({
- label: "Click Me: " + numClicks,
- contentScript: 'self.on("click", self.postMessage);',
- onMessage: function () {
- numClicks++;
- this.label = "Click Me: " + numClicks;
- // Setting myItem.label is equivalent.
- }
-});</pre>
-
-<p>Sometimes you might want to update the label based on the context. For instance, if your item performs a search with the user's selected text, it would be nice to display the text in the item to provide feedback to the user. In these cases you can use the second method. Recall that your content scripts can listen for the <code>"context"</code> event and if your listeners return true, the items associated with the content scripts are shown in the menu. In addition to returning true, your <code>"context"</code> listeners can also return strings. When a <code>"context"</code> listener returns a string, it becomes the item's new label.</p>
-
-<p>This item implements the aforementioned search example:</p>
-
-<pre class="brush: js">var cm = require("sdk/context-menu");
-cm.Item({
- label: "Search Google",
- context: cm.SelectionContext(),
- contentScript: 'self.on("context", function () {' +
- ' var text = window.getSelection().toString();' +
- ' if (text.length &gt; 20)' +
- ' text = text.substr(0, 20) + "...";' +
- ' return "Search Google for " + text;' +
- '});'
-});</pre>
-
-<p>The <code>"context"</code> listener gets the window's current selection, truncating it if it's too long, and includes it in the returned string. When the item is shown, its label will be "Search Google for <code>text</code>", where <code>text</code> is the truncated selection.</p>
-
-<p>You can also get the selected text using the High Level <code><a href="/en-US/Add-ons/SDK/High-Level_APIs/selection">selection</a></code> API.</p>
-
-<pre class="brush: js">var selection = require("sdk/selection");</pre>
-
-<p>and within the contentScript, reference the selected text as <code>selection.text</code></p>
-
-<h3 id="Private_windows">Private windows</h3>
-
-<p>If your add-on has not opted into private browsing, then any menus or menu items that you add will not appear in context menus belonging to private browser windows.</p>
-
-<p>To learn more about private windows, how to opt into private browsing, and how to support private browsing, refer to the <a href="/en-US/Add-ons/SDK/High-Level_APIs/private-browsing">documentation for the <code>private-browsing</code> module</a>.</p>
-
-<h3 id="More_examples">More examples</h3>
-
-<p>For conciseness, these examples create their content scripts as strings and use the <code>contentScript</code> property. In your own add-on, you will probably want to create your content scripts in separate files and pass their URLs using the <code>contentScriptFile</code> property. See <a href="/en-US/Add-ons/SDK/Guides/Content_Scripts">Working with Content Scripts</a> for more information.</p>
-
-<div class="warning">
-<p><strong>Warning:</strong> Unless your content script is extremely simple and consists only of a static string, don't use <code>contentScript</code>: if you do, you may have problems getting your add-on approved on AMO.</p>
-
-<p>Instead, keep the script in a separate file and load it using <code>contentScriptFile</code>. This makes your code easier to maintain, secure, debug and review.</p>
-</div>
-
-<p>Show an "Edit Page Source" item when the user right-clicks a non-interactive part of the page:</p>
-
-<pre class="brush: js">require("sdk/context-menu").Item({
- label: "Edit Page Source",
- contentScript: 'self.on("click", function (node, data) {' +
- ' self.postMessage(document.URL);' +
- '});',
- onMessage: function (pageURL) {
- editSource(pageURL);
- }
-});</pre>
-
-<p>Show an "Edit Image" item when the menu is invoked on an image:</p>
-
-<pre class="brush: js">var cm = require("sdk/context-menu");
-cm.Item({
- label: "Edit Image",
- context: cm.SelectorContext("img"),
- contentScript: 'self.on("click", function (node, data) {' +
- ' self.postMessage(node.src);' +
- '});',
- onMessage: function (imgSrc) {
- openImageEditor(imgSrc);
- }
-});</pre>
-
-<p>Show an "Edit Mozilla Image" item when the menu is invoked on an image in a mozilla.org or mozilla.com page:</p>
-
-<pre class="brush: js">var cm = require("sdk/context-menu");
-cm.Item({
- label: "Edit Mozilla Image",
- context: [
- cm.URLContext(["*.mozilla.org", "*.mozilla.com"]),
- cm.SelectorContext("img")
- ],
- contentScript: 'self.on("click", function (node, data) {' +
- ' self.postMessage(node.src);' +
- '});',
- onMessage: function (imgSrc) {
- openImageEditor(imgSrc);
- }
-});</pre>
-
-<p>Show an "Edit Page Images" item when the page contains at least one image:</p>
-
-<pre class="brush: js">var cm = require("sdk/context-menu");
-cm.Item({
- label: "Edit Page Images",
- // This ensures the item only appears during the page context.
- context: cm.PageContext(),
- contentScript: 'self.on("context", function (node) {' +
- ' var pageHasImgs = !!document.querySelector("img");' +
- ' return pageHasImgs;' +
- '});' +
- 'self.on("click", function (node, data) {' +
- ' var imgs = document.querySelectorAll("img");' +
- ' var imgSrcs = [];' +
- ' for (var i = 0 ; i &lt; imgs.length; i++)' +
- ' imgSrcs.push(imgs[i].src);' +
- ' self.postMessage(imgSrcs);' +
- '});',
- onMessage: function (imgSrcs) {
- openImageEditor(imgSrcs);
- }
-});</pre>
-
-<p>Show a "Search With" menu when the user right-clicks an anchor that searches Google or Wikipedia with the text contained in the anchor:</p>
-
-<pre class="brush: js">var cm = require("sdk/context-menu");
-var googleItem = cm.Item({
- label: "Google",
- data: "http://www.google.com/search?q="
-});
-var wikipediaItem = cm.Item({
- label: "Wikipedia",
- data: "http://en.wikipedia.org/wiki/Special:Search?search="
-});
-var searchMenu = cm.Menu({
- label: "Search With",
- context: cm.SelectorContext("a[href]"),
- contentScript: 'self.on("click", function (node, data) {' +
- ' var searchURL = data + node.textContent;' +
- ' window.location.href = searchURL;' +
- '});',
- items: [googleItem, wikipediaItem]
-});</pre>
-
-<p>To create sub-menus, one of the items in your main menu must be defined as a menu.</p>
-
-<pre class="brush: js">var cm = require("sdk/context-menu");
-var googleItem = cm.Item({
- label: "Google",
- data: "http://www.google.com/search?q="
-});
-var wikipediaItem = cm.Item({
- label: "Wikipedia",
- data: "http://en.wikipedia.org/wiki/Special:Search?search="
-});
-var bingItem = cm.Item({
- label: "Bing",
- data: "http://www.bing.com/search?q="
-});
-var yahooItem = cm.Item({
- label: "Yahoo",
- data: "https://search.yahoo.com/search?p="
-});
-var moreMenu = cm.Menu({
- label: "More Search",
- items: [bingItem, yahooItem]
-});
-var searchMenu = cm.Menu({
- label: "Search With",
- context: cm.SelectorContext("a[href]"),
- contentScript: 'self.on("click", function (node, data) {' +
- ' var searchURL = data + node.textContent;' +
- ' window.location.href = searchURL;' +
- '});',
- items: [googleItem, wikipediaItem, moreMenu]
-});</pre>
-
-<p>If you need a <strong>tooltip</strong>:</p>
-
-<p><img alt="tooltip" src="https://github.com/vitaly-zdanevich/extension-firefox-yandex-translate/raw/master/screenshot-hover.png" style="height: 500px; width: 800px;"></p>
-
-<p>First you need a dummy menu item that will serve as a trigger and subsequently will add the tooltips to the actual menu items.</p>
-
-<p>It is easy to find out which menu items are constructed by the addon-sdk module because they have the class <code>addon-context-menu-item</code>. The difficult part it to identify those that belong to your extension.</p>
-
-<p>One way to achieve this it to utilize the <code>data</code> attribute of <code>Item</code> class constructor, which conveniently maps to the <code>value</code> attribute of the underlying xul element.</p>
-
-<p>So if <code>data</code> consists of unique prefix and the desired tooltip text, it is just a matter of kicking in the right moment.</p>
-
-<pre><code>const { getMostRecentBrowserWindow } = require("sdk/window/utils");
-
-var cm = require("sdk/context-menu");
-var uuid = require('sdk/util/uuid').uuid();
-var uuidstr = uuid.number.substring(1,37);
-
-cm.Item({
-  data: uuidstr+"This is a tooltip",
- label: "Just a tigger, will never show up",
- contentScript: 'self.on("context", function(){self.postMessage(); return false;})',
- onMessage: function(){
- var cmitems = getMostRecentBrowserWindow().document.querySelectorAll(".addon-context-menu-item[value^='"+ uuidstr +"']");
- for(var i=0; i &lt; cmitems.length; i++)
- cmitems[i].tooltipText = cmitems[i].value.substring(36);
- }
-});</code></pre>
-
-<p> </p>
-
-<h2 id="Globals">Globals</h2>
-
-<h3 id="Constructors">Constructors</h3>
-
-<h4 class="addon-sdk-api-name" id="Item(options)"><code>Item(options)</code></h4>
-
-<p>Creates a labeled menu item that can perform an action when clicked.</p>
-
-<h5 id="Parameters">Parameters</h5>
-
-<p><strong>options : object</strong><br>
- Required options:</p>
-
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">Name</th>
- <th scope="col">Type</th>
- <th scope="col"> </th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>label</td>
- <td>string</td>
- <td>
- <p>The item's label. It must either be a string or an object that implements <code>toString()</code>.</p>
- </td>
- </tr>
- </tbody>
-</table>
-
-<p>Optional options:</p>
-
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">Name</th>
- <th scope="col">Type</th>
- <th scope="col"> </th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>image</td>
- <td>string</td>
- <td>
- <p>The item's icon, a string URL. The URL can be remote, a reference to an image in the add-on's <code>data</code> directory, or a data URI.</p>
- </td>
- </tr>
- <tr>
- <td>data</td>
- <td>string</td>
- <td>
- <p>An optional arbitrary value to associate with the item. It must be either a string or an object that implements <code>toString()</code>. It will be passed to click listeners.</p>
- </td>
- </tr>
- <tr>
- <td>accesskey</td>
- <td>single-character string</td>
- <td>
- <div class="geckoVersionNote">
- <p>New in Firefox 35.</p>
- </div>
-
- <p>Access key for the item. Pressing this key selects the item when the context menu is open.</p>
- </td>
- </tr>
- <tr>
- <td>context</td>
- <td>value</td>
- <td>
- <p>If the item is contained in the top-level context menu, this declaratively specifies the context under which the item will appear; see Specifying Contexts above.</p>
- </td>
- </tr>
- <tr>
- <td>contentScript</td>
- <td>string,array</td>
- <td>
- <p>If the item is contained in the top-level context menu, this is the content script or an array of content scripts that the item can use to interact with the page.</p>
- </td>
- </tr>
- <tr>
- <td>contentScriptFile</td>
- <td>string,array</td>
- <td>
- <p>If the item is contained in the top-level context menu, this is the local file URL of the content script or an array of such URLs that the item can use to interact with the page.</p>
- </td>
- </tr>
- <tr>
- <td>onMessage</td>
- <td>function</td>
- <td>
- <p>If the item is contained in the top-level context menu, this function will be called when the content script calls <code>self.postMessage</code>. It will be passed the data that was passed to <code>postMessage</code>.</p>
- </td>
- </tr>
- </tbody>
-</table>
-
-<h4 class="addon-sdk-api-name" id="Menu(options)"><code>Menu(options)</code></h4>
-
-<p>Creates a labeled menu item that expands into a submenu.</p>
-
-<h5 id="Parameters_2">Parameters</h5>
-
-<p><strong>options : object</strong><br>
- Required options:</p>
-
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">Name</th>
- <th scope="col">Type</th>
- <th scope="col"> </th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>label</td>
- <td>string</td>
- <td>
- <p>The item's label. It must either be a string or an object that implements <code>toString()</code>.</p>
- </td>
- </tr>
- <tr>
- <td>items</td>
- <td>array</td>
- <td>
- <p>An array of menu items that the menu will contain. Each must be an <code>Item</code>, <code>Menu</code>, or <code>Separator</code>.</p>
- </td>
- </tr>
- </tbody>
-</table>
-
-<p>Optional options:</p>
-
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">Name</th>
- <th scope="col">Type</th>
- <th scope="col"> </th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>image</td>
- <td>string</td>
- <td>
- <p>The menu's icon, a string URL. The URL can be remote, a reference to an image in the add-on's <code>data</code> directory, or a data URI.</p>
- </td>
- </tr>
- <tr>
- <td>context</td>
- <td>value</td>
- <td>
- <p>If the menu is contained in the top-level context menu, this declaratively specifies the context under which the menu will appear; see Specifying Contexts above.</p>
- </td>
- </tr>
- <tr>
- <td>contentScript</td>
- <td>string,array</td>
- <td>
- <p>If the menu is contained in the top-level context menu, this is the content script or an array of content scripts that the menu can use to interact with the page.</p>
- </td>
- </tr>
- <tr>
- <td>contentScriptFile</td>
- <td>string,array</td>
- <td>
- <p>If the menu is contained in the top-level context menu, this is the local file URL of the content script or an array of such URLs that the menu can use to interact with the page.</p>
- </td>
- </tr>
- <tr>
- <td>onMessage</td>
- <td>function</td>
- <td>
- <p>If the menu is contained in the top-level context menu, this function will be called when the content script calls <code>self.postMessage</code>. It will be passed the data that was passed to <code>postMessage</code>.</p>
- </td>
- </tr>
- </tbody>
-</table>
-
-<h4 class="addon-sdk-api-name" id="Separator()"><code>Separator()</code></h4>
-
-<p>Creates a menu separator.</p>
-
-<h4 class="addon-sdk-api-name" id="PageContext()"><code>PageContext()</code></h4>
-
-<p>Creates a page context. See Specifying Contexts above.</p>
-
-<h4 class="addon-sdk-api-name" id="SelectionContext()"><code>SelectionContext()</code></h4>
-
-<p>Creates a context that occurs when a page contains a selection. See Specifying Contexts above.</p>
-
-<h4 class="addon-sdk-api-name" id="SelectorContext(selector)"><code>SelectorContext(selector)</code></h4>
-
-<p>Creates a context that matches a given CSS selector. See Specifying Contexts above.</p>
-
-<h5 id="Parameters_3">Parameters</h5>
-
-<p><strong>selector : string</strong><br>
- A CSS selector.</p>
-
-<h4 class="addon-sdk-api-name" id="URLContext(matchPattern)"><code>URLContext(matchPattern)</code></h4>
-
-<p>Creates a context that matches pages with particular URLs. See Specifying Contexts above.</p>
-
-<h5 id="Parameters_4">Parameters</h5>
-
-<p><strong>matchPattern : string,array</strong><br>
- A <a href="/en-US/Add-ons/SDK/Low-Level_APIs/util_match-pattern">match pattern</a> string, regexp or an array of match pattern strings or regexps.</p>
-
-<h4 class="addon-sdk-api-name" id="PredicateContext(predicateFunction)"><code>PredicateContext(predicateFunction)</code></h4>
-
-<div class="geckoVersionNote">
-<p>New in Firefox 29</p>
-</div>
-
-<p>Creates a context that occurs when predicateFunction returns a true value. See Specifying Contexts above.</p>
-
-<h5 id="Parameters_5">Parameters</h5>
-
-<p><strong>predicateFunction : function(context)</strong><br>
- A function which will be called with an object argument that provide information about the invocation context. <code>context</code> object properties:</p>
-
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">Property</th>
- <th scope="col">Description</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td><code>documentType</code></td>
- <td>The MIME type of the document the menu was invoked in. E.g. <code>text/html</code> for HTML pages, <code>application/xhtml+xml</code> for XHTML, or <code>image/jpeg</code> if viewing an image directly.</td>
- </tr>
- <tr>
- <td><code>documentURL</code></td>
- <td>The URL of the document the menu was invoked in.</td>
- </tr>
- <tr>
- <td><code>targetName</code></td>
- <td>The name of the DOM element that the menu was invoked on, in lower-case.</td>
- </tr>
- <tr>
- <td><code>targetID</code></td>
- <td>The <code>id</code> attribute of the element that the menu was invoked on, or <code>null</code> if not set.</td>
- </tr>
- <tr>
- <td><code>isEditable</code></td>
- <td><code>true</code> if the menu was invoked in an editable element, and that element isn't disabled or read-only.  This includes non-input elements with the <code>contenteditable</code> attribute set to <code>true</code>.</td>
- </tr>
- <tr>
- <td><code>selectionText</code></td>
- <td>The current selection as a text string, or <code>null</code>. If the menu was invoked in an input text box or area, this is the selection of that element, otherwise the selection in the contents of the window.</td>
- </tr>
- <tr>
- <td><code>srcURL</code></td>
- <td>The <code>src</code> URL of the element that the menu was invoked on, or <code>null</code> if it doesn't have one.</td>
- </tr>
- <tr>
- <td><code>linkURL</code></td>
- <td>The <code>href</code> URL of the element that the menu was invoked on, or <code>null</code> if it doesn't have one.</td>
- </tr>
- <tr>
- <td><code>value</code></td>
- <td>The current contents of a input text box or area if the menu was invoked in one, <code>null</code> otherwise.</td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Item">Item</h2>
-
-<p>A labeled menu item that can perform an action when clicked.</p>
-
-<h3 id="Methods">Methods</h3>
-
-<h4 class="addon-sdk-api-name" id="destroy()"><code>destroy()</code></h4>
-
-<p>Permanently removes the item from its parent menu and frees its resources. The item must not be used afterward. If you need to remove the item from its parent menu but use it afterward, call <code>removeItem()</code> on the parent menu instead.</p>
-
-<h3 id="Properties">Properties</h3>
-
-<h4 class="addon-sdk-api-name" id="label"><code>label</code></h4>
-
-<p>The menu item's label. You can set this after creating the item to update its label later.</p>
-
-<h4 class="addon-sdk-api-name" id="image"><code>image</code></h4>
-
-<p>The item's icon, a string URL. The URL can be remote, a reference to an image in the add-on's <code>data</code> directory, or a data URI. You can set this after creating the item to update its image later. To remove the item's image, set it to <code>null</code>.</p>
-
-<h4 class="addon-sdk-api-name" id="data"><code>data</code></h4>
-
-<p>An optional arbitrary value to associate with the item. It must be either a string or an object that implements <code>toString()</code>. It will be passed to click listeners. You can set this after creating the item to update its data later.</p>
-
-<h4 class="addon-sdk-api-name" id="context"><code>context</code></h4>
-
-<p>A list of declarative contexts for which the menu item will appear in the context menu. Contexts can be added by calling <code>context.add()</code> and removed by called <code>context.remove()</code>.</p>
-
-<h4 class="addon-sdk-api-name" id="parentMenu"><code>parentMenu</code></h4>
-
-<p>The item's parent <code>Menu</code>, or <code>null</code> if the item is contained in the top-level context menu. This property is read-only. To add the item to a new menu, call that menu's <code>addItem()</code> method.</p>
-
-<h4 class="addon-sdk-api-name" id="contentScript"><code>contentScript</code></h4>
-
-<p>The content script or the array of content scripts associated with the menu item during creation.</p>
-
-<h4 class="addon-sdk-api-name" id="contentScriptFile"><code>contentScriptFile</code></h4>
-
-<p>The URL of a content script or the array of such URLs associated with the menu item during creation.</p>
-
-<h3 id="Events">Events</h3>
-
-<h4 class="addon-sdk-api-name" id="message"><code>message</code></h4>
-
-<p>If you listen to this event you can receive message events from content scripts associated with this menu item. When a content script posts a message using <code>self.postMessage()</code>, the message is delivered to the add-on code in the menu item's <code>message</code> event.</p>
-
-<h5 id="Arguments">Arguments</h5>
-
-<p><strong>value</strong> : Listeners are passed a single argument which is the message posted from the content script. The message can be any <a href="/en-US/Add-ons/SDK/Guides/Content_Scripts/using_port#JSON-Serializable_Values">JSON-serializable value</a>.</p>
-
-<h2 id="Menu">Menu</h2>
-
-<p>A labeled menu item that expands into a submenu.</p>
-
-<h3 id="Methods_2">Methods</h3>
-
-<h4 class="addon-sdk-api-name" id="addItem(item)"><code>addItem(item)</code></h4>
-
-<p>Appends a menu item to the end of the menu. If the item is already contained in another menu or in the top-level context menu, it's automatically removed first. If the item is already contained in this menu it will just be moved to the end of the menu.</p>
-
-<h5 id="Parameters_6">Parameters</h5>
-
-<p><strong>item : Item,Menu,Separator</strong><br>
- The <code>Item</code>, <code>Menu</code>, or <code>Separator</code> to add to the menu.</p>
-
-<h4 class="addon-sdk-api-name" id="removeItem(item)"><code>removeItem(item)</code></h4>
-
-<p>Removes the given menu item from the menu. If the menu does not contain the item, this method does nothing.</p>
-
-<h5 id="Parameters_7">Parameters</h5>
-
-<p><strong>item : Item,Menu,Separator</strong><br>
- The menu item to remove from the menu.</p>
-
-<h4 class="addon-sdk-api-name" id="destroy()_2"><code>destroy()</code></h4>
-
-<p>Permanently removes the menu from its parent menu and frees its resources. The menu must not be used afterward. If you need to remove the menu from its parent menu but use it afterward, call <code>removeItem()</code> on the parent menu instead.</p>
-
-<h3 id="Properties_2">Properties</h3>
-
-<h4 class="addon-sdk-api-name" id="label_2"><code>label</code></h4>
-
-<p>The menu's label. You can set this after creating the menu to update its label later.</p>
-
-<h4 class="addon-sdk-api-name" id="items"><code>items</code></h4>
-
-<p>An array containing the items in the menu. The array is read-only, meaning that modifications to it will not affect the menu. However, setting this property to a new array will replace all the items currently in the menu with the items in the new array.</p>
-
-<h4 class="addon-sdk-api-name" id="image_2"><code>image</code></h4>
-
-<p>The menu's icon, a string URL. The URL can be remote, a reference to an image in the add-on's <code>data</code> directory, or a data URI. You can set this after creating the menu to update its image later. To remove the menu's image, set it to <code>null</code>.</p>
-
-<h4 class="addon-sdk-api-name" id="context_2"><code>context</code></h4>
-
-<p>A list of declarative contexts for which the menu will appear in the context menu. Contexts can be added by calling <code>context.add()</code> and removed by called <code>context.remove()</code>.</p>
-
-<h4 class="addon-sdk-api-name" id="parentMenu_2"><code>parentMenu</code></h4>
-
-<p>The menu's parent <code>Menu</code>, or <code>null</code> if the menu is contained in the top-level context menu. This property is read-only. To add the menu to a new menu, call that menu's <code>addItem()</code> method.</p>
-
-<h4 class="addon-sdk-api-name" id="contentScript_2"><code>contentScript</code></h4>
-
-<p>The content script or the array of content scripts associated with the menu during creation.</p>
-
-<h4 class="addon-sdk-api-name" id="contentScriptFile_2"><code>contentScriptFile</code></h4>
-
-<p>The URL of a content script or the array of such URLs associated with the menu during creation.</p>
-
-<h3 id="Events_2">Events</h3>
-
-<h4 class="addon-sdk-api-name" id="message_2"><code>message</code></h4>
-
-<p>If you listen to this event you can receive message events from content scripts associated with this menu item. When a content script posts a message using <code>self.postMessage()</code>, the message is delivered to the add-on code in the menu item's <code>message</code> event.</p>
-
-<h5 id="Arguments_2">Arguments</h5>
-
-<p><strong>value</strong> : Listeners are passed a single argument which is the message posted from the content script. The message can be any <a href="/en-US/Add-ons/SDK/Guides/Content_Scripts/using_port#JSON-Serializable_Values">JSON-serializable value</a>.</p>
-
-<h2 id="Separator">Separator</h2>
-
-<p>A menu separator. Separators can be contained only in <code>Menu</code>s, not in the top-level context menu.</p>
-
-<h3 id="Methods_3">Methods</h3>
-
-<h4 class="addon-sdk-api-name" id="destroy()_3"><code>destroy()</code></h4>
-
-<p>Permanently removes the separator from its parent menu and frees its resources. The separator must not be used afterward. If you need to remove the separator from its parent menu but use it afterward, call <code>removeItem()</code> on the parent menu instead.</p>
-
-<h3 id="Properties_3">Properties</h3>
-
-<h4 class="addon-sdk-api-name" id="parentMenu_3"><code>parentMenu</code></h4>
-
-<p>The separator's parent <code>Menu</code>. This property is read-only. To add the separator to a new menu, call that menu's <code>addItem()</code> method.</p>
diff --git a/files/fr/mozilla/add-ons/sdk/high-level_apis/index.html b/files/fr/mozilla/add-ons/sdk/high-level_apis/index.html
deleted file mode 100644
index e78b5f5cb5..0000000000
--- a/files/fr/mozilla/add-ons/sdk/high-level_apis/index.html
+++ /dev/null
@@ -1,13 +0,0 @@
----
-title: High-Level APIs
-slug: Mozilla/Add-ons/SDK/High-Level_APIs
-tags:
- - Add-on SDK
- - TopicStub
-translation_of: Archive/Add-ons/Add-on_SDK/High-Level_APIs
----
-<p>{{AddonSidebar}}</p>
-
-<p>Les modules répertoriés sur cette page implémentent des API de haut niveau pour la création de modules complémentaires: création d'interfaces utilisateur, interaction avec le Web et interaction avec le navigateur.</p>
-
-<p>Sauf indication contraire explicite de la documentation, tous ces modules sont "Stables": nous éviterons d'y apporter des modifications incompatibles. {{ LandingPageListSubpages ("/en-US/Add-ons/SDK/High-Level_APIs", 5) }}</p>
diff --git a/files/fr/mozilla/add-ons/sdk/high-level_apis/indexed-db/index.html b/files/fr/mozilla/add-ons/sdk/high-level_apis/indexed-db/index.html
deleted file mode 100644
index 4a73e29e98..0000000000
--- a/files/fr/mozilla/add-ons/sdk/high-level_apis/indexed-db/index.html
+++ /dev/null
@@ -1,166 +0,0 @@
----
-title: indexed-db
-slug: Mozilla/Add-ons/SDK/High-Level_APIs/indexed-db
-translation_of: Archive/Add-ons/Add-on_SDK/High-Level_APIs/indexed-db
----
-<p>{{AddonSidebar}}</p>
-
-<div class="note">
-<p>Expérimental</p>
-</div>
-
-<p><span class="seoSummary">Expose l'<a href="https://developer.mozilla.org/fr/docs/IndexedDB" title="https://developer.mozilla.org/fr/docs/IndexedDB">API IndexedDB</a> pour les add-ons.</span></p>
-
-<h2 id="Utilisation">Utilisation</h2>
-
-<p>Les scripts en cours d'exécution dans les pages Web peuvent accéder à IndexedDB via <code>window</code>. Par exemple:</p>
-
-<pre class="brush: js">window.indexedDB = window.indexedDB || window.webkitIndexedDB || window.mozIndexedDB || window.msIndexedDB;
-
-var request = window.indexedDB.open("MyDatabase");
-request.onerror = function(event) {
- console.log("failure");
-};
-request.onsuccess = function(event) {
- console.log("success");
-};</pre>
-
-<p>Parce que votre code add-on principale ne peut pas accéder au DOM, vous ne pouvez pas faire cela. Mais vous pouvez utiliser le module <code>indexed-db</code> pour y accéder:</p>
-
-<pre class="brush: js">var { indexedDB } = require('sdk/indexed-db');
-
-var request = indexedDB.open('MyDatabase');
-request.onerror = function(event) {
- console.log("failure");
-};
-request.onsuccess = function(event) {
- console.log("success");
-};</pre>
-
-<p>La plupart des objets qui mettent en œuvre l'API IndexedDB, tels que <a href="https://developer.mozilla.org/fr/docs/IndexedDB/IDBTransaction" title="https://developer.mozilla.org/fr/docs/IndexedDB/IDBTransaction"> IDBTransaction </a>, <a href="https://developer.mozilla.org/fr/docs/IndexedDB/IDBOpenDBRequest" title="https://developer.mozilla.org/fr/docs/IndexedDB/IDBOpenDBRequest"> IDBOpenDBRequest </a>, et <a href="https://developer.mozilla.org/fr/docs/IndexedDB/IDBObjectStore" title="https://developer.mozilla.org/fr/docs/IndexedDB/IDBObjectStore"> IDBObjectStore </a>, sont accessibles à travers l'objet IndexedDB lui-même. &lt; br&gt;</p>
-
-<p>L'API exposée par <code>indexed-db</code> est presque identique à l'API DOM IndexedDB, donc on n'a pas répété sa documentation ici, référer vous à la <a href="https://developer.mozilla.org/fr/docs/IndexedDB" title="https://developer.mozilla.org/fr/docs/IndexedDB">documentation de l'API IndexedDB</a> pour tous les détails.</p>
-
-<p>La base de données créé sera unique et privée pour l'add-on, et n'est pas liés à une base de données de site. Le module ne peut pas être utilisé pour interagir avec une base de données du site donné. Voir <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=779197" title="https://bugzilla.mozilla.org/show_bug.cgi?id=779197"> bug 778197 </a> et <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=786688" title="https://bugzilla.mozilla.org/show_bug.cgi?id=786688"> bug 786688 </a>.</p>
-
-<h3 id="Exemple">Exemple</h3>
-
-<div class="note">
-<p>Cet exemple utilise l'<a href="https://developer.mozilla.org/fr/Add-ons/SDK/Low-Level_APIs/ui_button_action" title="https://developer.mozilla.org/fr/Add-ons/SDK/Low-Level_APIs/ui_button_action">API bouton d'action </a>, qui est uniquement disponible à partir de Firefox 29 partir.</p>
-</div>
-
-<p>Voici un add-on complet qui ajoute deux boutons pour le navigateur: le bouton "Ajouter" ajoute le titre de l'onglet en cours à une base de données, tandis que le bouton intitulé «Liste» répertorie tous les titres dans la base de données .</p>
-
-<p>L'add-on implémente les fonctions <code>open()</code>, <code>addItem()</code> et <code>getItems()</code> pour ouvrir la base de données, ajouter un nouvel élément à la base de données, et d'obtenir tous les éléments de la base de données.</p>
-
-<pre class="brush: js">var { indexedDB, IDBKeyRange } = require('sdk/indexed-db');
-
-var database = {};
-
-database.onerror = function(e) {
-  console.error(e.value)
-}
-
-function open(version) {
-  var request = indexedDB.open("stuff", version);
-
-  request.onupgradeneeded = function(e) {
-    var db = e.target.result;
-    e.target.transaction.onerror = database.onerror;
-
-    if(db.objectStoreNames.contains("items")) {
-      db.deleteObjectStore("items");
-    }
-
-    var store = db.createObjectStore("items",
-      {keyPath: "time"});
-  };
-
-  request.onsuccess = function(e) {
-    database.db = e.target.result;
-  };
-
-  request.onerror = database.onerror;
-};
-
-function addItem(name) {
-  var db = database.db;
-  var trans = db.transaction(["items"], "readwrite");
-  var store = trans.objectStore("items");
-  var time = new Date().getTime();
-  var request = store.put({
-    "name": name,
-    "time": time
-  });
-
-  request.onerror = database.onerror;
-};
-
-function getItems(callback) {
-  var cb = callback;
-  var db = database.db;
-  var trans = db.transaction(["items"], "readwrite");
-  var store = trans.objectStore("items");
-  var items = new Array();
-
-  trans.oncomplete = function() {
-    cb(items);
-  }
-
-  var keyRange = IDBKeyRange.lowerBound(0);
-  var cursorRequest = store.openCursor(keyRange);
-
-  cursorRequest.onsuccess = function(e) {
-    var result = e.target.result;
-    if(!!result == false)
-      return;
-
-    items.push(result.value.name);
-    result.continue();
-  };
-
-  cursorRequest.onerror = database.onerror;
-};
-
-function listItems(itemList) {
-  console.log(itemList);
-}
-
-open("1");
-
-var add = require("sdk/ui/button/action").ActionButton({
-  id: "add",
-  label: "Add",
-  icon: "./add.png",
-  onClick: function() {
-    addItem(require("sdk/tabs").activeTab.title);
-  }
-});
-
-var list = require("sdk/ui/button/action").ActionButton({
-  id: "list",
-  label: "List",
-  icon: "./list.png",
-  onClick: function() {
-    getItems(listItems);
-  }
-});
-</pre>
-
-<p>Notez que pour exécuter cet add-on, vous aurez besoin de fournir des icônes nommées "add.png" et "list.png" dans le répertoire "data" de l'add-ons .</p>
-
-<h2 id="Globals">Globals</h2>
-
-<h3 id="Propriétés">Propriétés</h3>
-
-<h4 class="addon-sdk-api-name" id="indexedDB"><code>indexedDB</code></h4>
-
-<p>Permet de créer, ouvrir et supprimer des bases de données. Voir la <a href="https://developer.mozilla.org/fr/docs/IndexedDB/IDBFactory" title="https://developer.mozilla.org/fr/docs/IndexedDB/IDBFactory"> documentation IDBFactory</a>.</p>
-
-<h4 class="addon-sdk-api-name" id="IDBKeyRange"><code>IDBKeyRange</code></h4>
-
-<p>Définit une plage de clés. Voir la <a href="https://developer.mozilla.org/fr/docs/IndexedDB/IDBKeyRange" title="https://developer.mozilla.org/fr/docs/IndexedDB/IDBKeyRange"> documentation IDBKeyRange</a>.</p>
-
-<h4 class="addon-sdk-api-name" id="DOMException"><code>DOMException</code></h4>
-
-<p>Fournit des informations plus détaillées sur une exception. Voir la <a href="https://developer.mozilla.org/fr/docs/DOM/DOMException" title="https://developer.mozilla.org/fr/docs/DOM/DOMException"> documentation DOMException</a>.</p>
diff --git a/files/fr/mozilla/add-ons/sdk/high-level_apis/simple-storage/index.html b/files/fr/mozilla/add-ons/sdk/high-level_apis/simple-storage/index.html
deleted file mode 100644
index 2b35fc120b..0000000000
--- a/files/fr/mozilla/add-ons/sdk/high-level_apis/simple-storage/index.html
+++ /dev/null
@@ -1,170 +0,0 @@
----
-title: simple-storage
-slug: Mozilla/Add-ons/SDK/High-Level_APIs/simple-storage
-translation_of: Archive/Add-ons/Add-on_SDK/High-Level_APIs/simple-storage
----
-<p>{{AddonSidebar}}</p>
-
-<div class="note">
-<p>Stable</p>
-</div>
-
-<p><span class="seoSummary">Permet au add-on le stockage des données afin qu'il soit conservé entre les redémarrages de Firefox. </span> Ce module fonctionne de façon similaire au <a href="https://developer.mozilla.org/en/DOM/Storage" title="https://developer.mozilla.org/en/DOM/Storage"> DOM Storage</a> du Web, mais il est uniquement disponible pour des add-ons.</p>
-
-<h2 id="Utilisation">Utilisation</h2>
-
-<p>Le module de stockage simple exporte un objet appelé <code>storage</code> qui est persistant et à porté de votre add-on. C'est un objet JavaScript normal, et vous pouvez le traiter comme vous le feriez pour tout autre.</p>
-
-<p>Pour stocker une valeur, il faut juste l'affecter avec la propriété <code>storage</code>:</p>
-
-<pre class="brush: js">var ss = require("sdk/simple-storage");
-ss.storage.myArray = [1, 1, 2, 3, 5, 8, 13];
-ss.storage.myBoolean = true;
-ss.storage.myNull = null;
-ss.storage.myNumber = 3.1337;
-ss.storage.myObject = { a: "foo", b: { c: true }, d: null };
-ss.storage.myString = "O frabjous day!";</pre>
-
-<p>Vous pouvez stocker des valeurs tableau, booléennes, nombre, objet, null et des textes. Si vous souhaitez stocker d'autres types de valeurs, vous devrez d'abord les convertir en chaînes ou un autre de ces types.</p>
-
-<p>Veillez à définir les propriétés avec <code>storage</code> et non avec le module lui-même:</p>
-
-<pre class="brush: js">// This is not good!
-var ss = require("sdk/simple-storage");
-ss.foo = "I will not be saved! :(";</pre>
-
-<h3 id="stockage_simple_et_jpm_run">stockage simple et "jpm run"</h3>
-
-<p>Le module de stockage simple stocke ses données dans votre profil. Parce que <code>jpm run</code> utilise par défaut un profil frais chaque fois qu'il est exécuté, le stockage simple ne fonctionnera pas avec des add-ons exécutées en utilisant <code>jpm run</code> - les données stockées ne persisteront pas d'une exécution à l'autre.</p>
-
-<p>La solution la plus simple à ce problème est d'utiliser l'option <a href="https://developer.mozilla.org/fr/Add-ons/SDK/Tools/jpm#Using_profiles_2">--profile de jpm</a> avec un chemin d'accès à un profil - pas seulement un nom de profil. Vous pouvez aussi avoir besoin d'inclure l'option<a href="https://developer.mozilla.org/fr/Add-ons/SDK/Tools/jpm#Using_profiles_2"> --no-copie</a> pour empêcher Firefox de copier le profil dans un répertoire de temporaire chaque fois qu'il démarre.</p>
-
-<pre class="brush: bash">jpm run --no-copy --profile path/to/profile/dir</pre>
-
-<p>Si vous spécifiez un profil non-existant, il sera créé.</p>
-
-<blockquote>
-<p>Important: Si vous utilisez cette méthode, vous devez mettre fin à votre session de débogage en quittant Firefox normalement, en annulant la commande shell. Si vous ne fermez pas Firefox normalement, puis un simple stockage ne sera pas informé que la session est terminée, et ne sera pas écrire vos données à la mémoire de sauvegarde.</p>
-</blockquote>
-
-<h3 id="Accès_au_stockage_à_partir_de_la_console">Accès au stockage à partir de la console</h3>
-
-<p>Dans l'<a href="/fr/Add-ons/Add-on_Debugger" title="/fr/Add-ons/Add-on_Debugger"> Add-on Debugger </a>, vous pouvez accéder à vos addons simple stockage par programmation à partir de la console en utilisant ce qui suit:</p>
-
-<pre class="brush: js">loader.modules['resource://gre/modules/commonjs/sdk/simple-storage.js'].exports.storage</pre>
-
-<h3 id="Constructeur_de_tableaux">Constructeur de tableaux</h3>
-
-<p>Pour ne pas remettre à zéro un tableau, attention au constructeur. Par exemple, cet add-on essaie de stocker les URL des pages visitées:</p>
-
-<pre class="brush: js">var ss = require("sdk/simple-storage");
-ss.storage.pages = [];
-
-require("sdk/tabs").on("ready", function(tab) {
-  ss.storage.pages.push(tab.url);
-});
-
-require("sdk/ui/button/action").ActionButton({
-  id: "read",
-  label: "Read",
-  icon: "./read.png",
-  onClick: function() {
-    console.log(ss.storage.pages);
-  }
-});</pre>
-
-<p>Mais cela ne fonctonne pas, car il vide le tableau chaque fois que l'add-on est apellée (par exemple, chaque fois que Firefox est lancé). La ligne 2 a besoin d'être subordonné, de sorte que le tableau est uniquement construite si il n'existe pas déjà:</p>
-
-<pre class="brush: js">if (!ss.storage.pages)
- ss.storage.pages = [];</pre>
-
-<h3 id="Suppression_de_données">Suppression de données</h3>
-
-<p>Vous pouvez supprimer des propriétés en utilisant l'opérateur <code>delete</code>. Voici une add-on qui ajoute trois boutons pour écrire, lire et supprimer une valeur:</p>
-
-<pre class="brush: js">var ss = require("sdk/simple-storage");
-
-require("sdk/ui/button/action").ActionButton({
-  id: "write",
-  label: "Write",
-  icon: "./write.png",
-  onClick: function() {
-    ss.storage.value = 1;
-    console.log("Setting value");
-  }
-});
-
-require("sdk/ui/button/action").ActionButton({
-  id: "read",
-  label: "Read",
-  icon: "./read.png",
-  onClick: function() {
-    console.log(ss.storage.value);
-  }
-});
-
-require("sdk/ui/button/action").ActionButton({
-  id: "delete",
-  label: "Delete",
-  icon: "./delete.png",
-  onClick: function() {
-    delete ss.storage.value;
-    console.log("Deleting value");
-  }
-});</pre>
-
-<p>Si vous l'exécutez, vous verrez que si vous cliquez sur "Lire" après avoir cliqué sur "Supprimer" vous aurez le résultat escompté:</p>
-
-<pre>info: undefined
-</pre>
-
-<p>Notez que pour exécuter cet add-on, vous aurez à enregistrer des fichiers icône nommées "write.png", "read.png", et "delete.png" dans le répertoire "data".</p>
-
-<h3 id="Quotas">Quotas</h3>
-
-<p>Le stockage simple à la disposition de votre add-on est limité. Actuellement, cette limite est environ cinq mégaoctets (5,242,880 octets). Vous pouvez choisir d'être averti lorsque vous dépassez le quota, et vous devez répondre en réduisant la quantité de données dans le stockage. Si vous quittez l'application pendant que vous êtes hors quota, toutes les données stockées depuis la dernière fois que vous étiez sous le quota ne sont pas conservées. Vous ne devriez pas laisser cela se produire.</p>
-
-<p>Pour écouter les notifications du quota, utiliser l'evenement <code>"OverQuota"</code>. il sera appelée quand votre stockage dépasse le quota.</p>
-
-<pre class="brush: js">function myOnOverQuotaListener() {
- console.log("Uh oh.");
-}
-ss.on("OverQuota", myOnOverQuotaListener);</pre>
-
-<p>Les auditeurs peuvent également être retirés:</p>
-
-<pre><code><code class="brush: js">ss.removeListener("OverQuota", myOnOverQuotaListener);</code></code></pre>
-
-<p>Pour connaitre le % de saturation du quota utiliser la proprieté <code>quotaUsage</code>. Si vous êtes dans votre quota, c'est un nombre entre 0 et 1. Si votre add-on utilise plus que son quota, cette valeur est supérieure à 1,0.</p>
-
-<p>Par conséquent, lorsque vous êtes averti que vous êtes hors quota, vous devez répondre en supprimant les données de l'espace de stockage jusqu'à ce que votre <code>quotaUsage</code> soit inférieur ou égal à 1.</p>
-
-<pre class="brush: js">ss.storage.myList = [ /* some long array */ ];
-ss.on("OverQuota", function () {
- while (ss.quotaUsage &gt; 1)
- ss.storage.myList.pop();
-});</pre>
-
-<h3 id="Navigation_privée">Navigation privée</h3>
-
-<p>Si votre mémoire est liée à l'histoire de vos utilisateurs Web, des renseignements personnels, ou d'autres données sensibles, votre add-on devrait respecter la <a href="http://support.mozilla.com/fr/kb/Private+Browsing" title="http://support.mozilla.com/fr/kb/Private+Browsing"> navigation privé </a>.</p>
-
-<p>Pour en savoir plus sur la façon de choisir en mode de navigation privée et comment utiliser le SDK pour éviter de stocker des données d'utilisateur associées aux fenêtres privées, reportez-vous à la documentation du <a href="/fr/Add-ons/SDK/High-Level_APIs/private-browsing" title="/fr/Add-ons/SDK/High-Level_APIs/private-browsing"> <code>private-browsing</code> Module </a> .</p>
-
-<h2 id="Globals">Globals</h2>
-
-<h3 id="Propriétés">Propriétés</h3>
-
-<h4 class="addon-sdk-api-name" id="storage"><code>storage</code></h4>
-
-<p>Un objet persistant privé de votre add-on.</p>
-
-<h4 class="addon-sdk-api-name" id="quotaUsage"><code>quotaUsage</code></h4>
-
-<p>Un certain nombre dans l'intervalle [0, Infinity) qui indique le pourcentage de quota occupé par le stockage. Une valeur dans l'intervalle [0, 1] indique que le stockage est dans le quota. Une valeur supérieure à 1 indique que le stockage dépasse le quota.</p>
-
-<h3 id="Événements">Événements</h3>
-
-<h4 class="addon-sdk-api-name" id="OverQuota"><code>OverQuota</code></h4>
-
-<p>Le module émet cet événement lorsque votre stockage add-ons dépasse son quota.</p>
diff --git a/files/fr/mozilla/add-ons/sdk/high-level_apis/tabs/index.html b/files/fr/mozilla/add-ons/sdk/high-level_apis/tabs/index.html
deleted file mode 100644
index 5ffa11d9a4..0000000000
--- a/files/fr/mozilla/add-ons/sdk/high-level_apis/tabs/index.html
+++ /dev/null
@@ -1,669 +0,0 @@
----
-title: tabs
-slug: Mozilla/Add-ons/SDK/High-Level_APIs/tabs
-translation_of: Archive/Add-ons/Add-on_SDK/High-Level_APIs/tabs
----
-<p>{{AddonSidebar}}</p>
-
-<div class="note">
-<p>Stable</p>
-</div>
-
-<p><span class="seoSummary">Ouvre, manipule, accède et recevoir les événements des onglets.</span></p>
-
-<h2 id="Utilisation">Utilisation</h2>
-
-<h3 id="Ouvrez_un_onglet">Ouvrez un onglet</h3>
-
-<p>Vous pouvez ouvrir un nouvel onglet, en spécifiant diverses propriétés, y compris l'emplacement:</p>
-
-<pre class="brush: js">var tabs = require("sdk/tabs");
-tabs.open("http://www.example.com");</pre>
-
-<h3 id="Track_tabs">Track tabs</h3>
-
-<p>You can register event listeners to be notified when tabs open, close, finish loading DOM content, or are made active or inactive:</p>
-
-<pre class="brush: js">var tabs = require("sdk/tabs");
-
-// Listen for tab openings.
-tabs.on('open', function onOpen(tab) {
- myOpenTabs.push(tab);
-});
-
-// Listen for tab content loads.
-tabs.on('ready', function(tab) {
- console.log('tab is loaded', tab.title, tab.url);
-});</pre>
-
-<h3 id="Access_tabs">Access tabs</h3>
-
-<p>The module itself can be used as a list of all opened tabs across all windows. In particular, you can enumerate it:</p>
-
-<pre class="brush: js">var tabs = require('sdk/tabs');
-for (let tab of tabs)
- console.log(tab.title);</pre>
-
-<p>You can also access individual tabs by index:</p>
-
-<pre class="brush: js">var tabs = require('sdk/tabs');
-
-tabs.on('ready', function () {
- console.log('first: ' + tabs[0].title);
- console.log('last: ' + tabs[tabs.length-1].title);
-});</pre>
-
-<p>You can access the currently active tab:</p>
-
-<pre class="brush: js">var tabs = require('sdk/tabs');
-
-tabs.on('activate', function () {
- console.log('active: ' + tabs.activeTab.url);
-});</pre>
-
-<h3 id="Track_a_single_tab">Track a single tab</h3>
-
-<p>Given a tab, you can register event listeners to be notified when the tab is closed, activated or deactivated, or when the page hosted by the tab is loaded or retrieved from the <a href="https://developer.mozilla.org/en-US/docs/Working_with_BFCache">"back-forward cache"</a>:</p>
-
-<pre class="brush: js">var tabs = require("sdk/tabs");
-
-function onOpen(tab) {
- console.log(tab.url + " is open");
- tab.on("pageshow", logShow);
- tab.on("activate", logActivate);
- tab.on("deactivate", logDeactivate);
- tab.on("close", logClose);
-}
-
-function logShow(tab) {
- console.log(tab.url + " is loaded");
-}
-
-function logActivate(tab) {
- console.log(tab.url + " is activated");
-}
-
-function logDeactivate(tab) {
- console.log(tab.url + " is deactivated");
-}
-
-function logClose(tab) {
- console.log(tab.url + " is closed");
-}
-
-tabs.on('open', onOpen);</pre>
-
-<h3 id="Manipulate_a_tab">Manipulate a tab</h3>
-
-<p>You can get and set various properties of tabs (but note that properties relating to the tab's content, such as the URL, will not contain valid values until after the tab's <code>ready</code> event fires). By setting the <code>url</code> property you can load a new page in the tab:</p>
-
-<pre class="brush: js">var tabs = require("sdk/tabs");
-tabs.on('activate', function(tab) {
- tab.url = "http://www.example.com";
-});</pre>
-
-<h3 id="Run_scripts_in_a_tab">Run scripts in a tab</h3>
-
-<p>You can attach a <a href="/en-US/Add-ons/SDK/Guides/Content_Scripts">content script</a> to the page hosted in a tab, and use that to access and manipulate the page's content (see the <a href="/en-US/Add-ons/SDK/Tutorials/Modifying_the_Page_Hosted_by_a_Tab">Modifying the Page Hosted by a Tab</a> tutorial):</p>
-
-<pre class="brush: js">var tabs = require("sdk/tabs");
-
-tabs.on('activate', function(tab) {
- var worker = tab.attach({
- contentScript: 'self.port.emit("html", document.body.innerHTML);'
- });
- worker.port.on("html", function(message) {
- console.log(message)
- })
-});</pre>
-
-<p>Note that <code>tab.attach</code> is tab-centric: if the user navigates to a new page in the same tab, then the worker and content scripts will be reattached to the new page.</p>
-
-<h3 id="Attaching_stylesheets">Attaching stylesheets</h3>
-
-<div class="geckoVersionNote">
-<p>New in Firefox 34.</p>
-</div>
-
-<p>You can't attach style sheets to a tab using <code>tab.attach()</code>, but from Firefox 34 onwards you can attach and detach them using the low-level <a href="/en-US/Add-ons/SDK/Low-Level_APIs/stylesheet_style">stylesheet/style</a> and <a href="/en-US/Add-ons/SDK/Low-Level_APIs/content_mod">content/mod</a> APIs. Here's an add-on that uses a toggle button to attach a stylesheet to the active tab, and detach it again. The stylesheet is called "style.css" and is located in the add-on's "data" directory:</p>
-
-<pre class="brush: js">var tabs = require("sdk/tabs");
-var { attach, detach } = require('sdk/content/mod');
-var { Style } = require('sdk/stylesheet/style');
-var { ToggleButton } = require("sdk/ui/button/toggle");
-
-var style = Style({
- uri: './style.css'
-});
-
-var button = ToggleButton({
- id: "stylist",
- label: "stylist",
- icon: "./icon-16.png",
- onChange: function(state) {
- if (state.checked) {
- attach(style, tabs.activeTab);
- }
- else {
- detach(style, tabs.activeTab);
- }
- }
-});</pre>
-
-<h3 id="Private_windows">Private windows</h3>
-
-<p>If your add-on has not opted into private browsing, then you won't see any tabs that are hosted by private browser windows.</p>
-
-<p>Tabs hosted by private browser windows won't be seen if you enumerate the <code>tabs</code> module itself, and you won't receive any events for them.</p>
-
-<p>To learn more about private windows, how to opt into private browsing, and how to support private browsing, refer to the <a href="/en-US/Add-ons/SDK/High-Level_APIs/private-browsing">documentation for the <code>private-browsing</code> module</a>.</p>
-
-<h3 id="Converting_to_XUL_tabs">Converting to XUL tabs</h3>
-
-<p>To convert from the high-level <a href="/en-US/Add-ons/SDK/High-Level_APIs/tabs#Tab"><code>Tab</code></a> objects used in this API to the low-level <a href="/en-US/docs/Mozilla/Tech/XUL/tab">XUL <code>tab</code></a> objects used in the <a href="/en-US/Add-ons/SDK/Low-Level_APIs/tabs_utils"><code>tabs/utils</code></a> API and by traditional add-ons, use the <code>viewFor()</code> function exported by the <code>viewFor</code> module.</p>
-
-<p>To convert back the other way, from a XUL <code>tab</code> to a high-level <code>Tab</code> object, use the <code>modelFor()</code> function, exported by the <code>modelFor</code> module.</p>
-
-<p>Here's an example converting from a high-level <code>Tab</code> to a XUL <code>tab</code> and then back the other way:</p>
-
-<pre class="brush: js">var { modelFor } = require("sdk/model/core");
-var { viewFor } = require("sdk/view/core");
-
-var tabs = require("sdk/tabs");
-var tab_utils = require("sdk/tabs/utils");
-
-function mapHighLevelToLowLevel(tab) {
-  // get the XUL tab that corresponds to this high-level tab
-  var lowLevelTab = viewFor(tab);
-  // now we can, for example, access the tab's content directly
-  var browser = tab_utils.getBrowserForTab(lowLevelTab);
-  console.log(browser.contentDocument.body.innerHTML);
-  // get the high-level tab back from the XUL tab
-  var highLevelTab = modelFor(lowLevelTab);
-  console.log(highLevelTab.url);
-}
-
-tabs.on("ready", mapHighLevelToLowLevel);
-</pre>
-
-<p>Note that directly accessing XUL objects and web content like this means you're no longer protected by the compatibility guarantees made by the SDK's high-level APIs. In particular, your code might not work with <a href="http://billmccloskey.wordpress.com/2013/12/05/multiprocess-firefox/">multiprocess Firefox</a>.</p>
-
-<h2 id="Globals">Globals</h2>
-
-<h3 id="Functions">Functions</h3>
-
-<h4 class="addon-sdk-api-name" id="open(options)"><code>open(options)</code></h4>
-
-<p>Opens a new tab. The new tab will open in the active window or in a new window, depending on the <code>inNewWindow</code> option.</p>
-
-<p><strong>Example</strong></p>
-
-<pre class="brush: js">var tabs = require("sdk/tabs");
-
-// Open a new tab on active window and make tab active.
-tabs.open("http://www.mysite.com");
-
-// Open a new tab in a new window and make it active.
-tabs.open({
- url: "http://www.mysite.com",
- inNewWindow: true
-});
-
-// Open a new tab on active window in the background.
-tabs.open({
- url: "http://www.mysite.com",
- inBackground: true
-});
-
-// Open a new tab as an app tab and do something once it's open.
-tabs.open({
- url: "http://www.mysite.com",
- isPinned: true,
- onOpen: function onOpen(tab) {
- // do stuff like listen for content
- // loading.
- }
-});</pre>
-
-<h5 id="Parameters">Parameters</h5>
-
-<p><strong>options : object</strong><br>
- Required options:</p>
-
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">Name</th>
- <th scope="col">Type</th>
- <th scope="col"> </th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>url</td>
- <td>string</td>
- <td>
- <p>String URL to be opened in the new tab. This is a required property.</p>
- </td>
- </tr>
- </tbody>
-</table>
-
-<p>Optional options:</p>
-
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">Name</th>
- <th scope="col">Type</th>
- <th scope="col"> </th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>isPrivate</td>
- <td>boolean</td>
- <td>
- <p>Boolean which will determine whether the new tab should be private or not. If your add-on does not support private browsing this will have no effect. See the <a href="/en-US/Add-ons/SDK/High-Level_APIs/private-browsing">private-browsing</a> documentation for more information. Defaults to <code>false</code>.</p>
- </td>
- </tr>
- <tr>
- <td>inNewWindow</td>
- <td>boolean</td>
- <td>
- <p>If present and true, a new browser window will be opened and the URL will be opened in the first tab in that window. This is an optional property.</p>
- </td>
- </tr>
- <tr>
- <td>inBackground</td>
- <td>boolean</td>
- <td>
- <p>If present and true, the new tab will be opened to the right of the active tab and will not be active. This is an optional property.</p>
- </td>
- </tr>
- <tr>
- <td>isPinned</td>
- <td>boolean</td>
- <td>
- <p>If present and true, then the new tab will be pinned as an <a href="http://support.mozilla.com/en-US/kb/what-are-app-tabs">app tab</a>.</p>
- </td>
- </tr>
- <tr>
- <td>onOpen</td>
- <td>function</td>
- <td>
- <p>A callback function that will be registered for the 'open' event. This is an optional property.</p>
- </td>
- </tr>
- <tr>
- <td>onClose</td>
- <td>function</td>
- <td>
- <p>A callback function that will be registered for the 'close' event. This is an optional property.</p>
- </td>
- </tr>
- <tr>
- <td>onReady</td>
- <td>function</td>
- <td>
- <p>A callback function that will be registered for the 'ready' event. This is an optional property.</p>
- </td>
- </tr>
- <tr>
- <td>onLoad</td>
- <td>function</td>
- <td>
- <p>A callback function that will be registered for the 'load' event. This is an optional property.</p>
- </td>
- </tr>
- <tr>
- <td>onPageShow</td>
- <td>function</td>
- <td>
- <p>A callback function that will be registered for the 'pageshow' event. This is an optional property.</p>
- </td>
- </tr>
- <tr>
- <td>onActivate</td>
- <td>function</td>
- <td>
- <p>A callback function that will be registered for the 'activate' event. This is an optional property.</p>
- </td>
- </tr>
- <tr>
- <td>onDeactivate</td>
- <td>function</td>
- <td>
- <p>A callback function that will be registered for the 'deactivate' event. This is an optional property.</p>
- </td>
- </tr>
- </tbody>
-</table>
-
-<h3 id="Properties">Properties</h3>
-
-<h4 class="addon-sdk-api-name" id="activeTab"><code>activeTab</code></h4>
-
-<p>The currently active tab in the active window. This property is read-only. To activate a <code>Tab</code> object, call its <code>activate</code> method.</p>
-
-<p><strong>Example</strong></p>
-
-<pre class="brush: js">// Get the active tab's title.
-var tabs = require("sdk/tabs");
-console.log("title of active tab is " + tabs.activeTab.title);</pre>
-
-<h4 class="addon-sdk-api-name" id="length"><code>length</code></h4>
-
-<p>The number of open tabs across all windows.</p>
-
-<h3 id="Events">Events</h3>
-
-<h4 class="addon-sdk-api-name" id="open"><code>open</code></h4>
-
-<p>This event is emitted when a new tab is opened. This does not mean that the content has loaded, only that the browser tab itself is fully visible to the user.</p>
-
-<p>Properties relating to the tab's content (for example: <code>title</code>, <code>favicon</code>, and <code>url</code>) will not be correct at this point. If you need to access these properties, listen for the <code>ready</code> event:</p>
-
-<pre class="brush: js">var tabs = require("sdk/tabs");
-tabs.on('open', function(tab){
- tab.on('ready', function(tab){
- console.log(tab.url);
- });
-});</pre>
-
-<h5 id="Arguments">Arguments</h5>
-
-<p><strong>Tab</strong> : Listeners are passed the tab object that just opened.</p>
-
-<h4 class="addon-sdk-api-name" id="close"><code>close</code></h4>
-
-<p>This event is emitted when a tab is closed. When a window is closed this event will be emitted for each of the open tabs in that window.</p>
-
-<h5 id="Arguments_2">Arguments</h5>
-
-<p><strong>Tab</strong> : Listeners are passed the tab object that has closed.</p>
-
-<h4 class="addon-sdk-api-name" id="ready"><code>ready</code></h4>
-
-<p>This event is emitted when the DOM for a tab's content is ready. It is equivalent to the <code>DOMContentLoaded</code> event for the given content page.</p>
-
-<p>A single tab will emit this event every time the DOM is loaded: so it will be emitted again if the tab's location changes or the content is reloaded.</p>
-
-<p>After this event has been emitted, all properties relating to the tab's content can be used.</p>
-
-<h5 id="Arguments_3">Arguments</h5>
-
-<p><strong>Tab</strong> : Listeners are passed the tab object that has loaded.</p>
-
-<h4 class="addon-sdk-api-name" id="activate"><code>activate</code></h4>
-
-<p>This event is emitted when an inactive tab is made active.</p>
-
-<h5 id="Arguments_4">Arguments</h5>
-
-<p><strong>Tab</strong> : Listeners are passed the tab object that has become active.</p>
-
-<h4 class="addon-sdk-api-name" id="deactivate"><code>deactivate</code></h4>
-
-<p>This event is emitted when the active tab is made inactive.</p>
-
-<h5 id="Arguments_5">Arguments</h5>
-
-<p><strong>Tab</strong> : Listeners are passed the tab object that has become inactive.</p>
-
-<h2 id="Tab">Tab</h2>
-
-<p>A <code>Tab</code> instance represents a single open tab. It contains various tab properties, several methods for manipulation, as well as per-tab event registration.</p>
-
-<p>Tabs emit all the events described in the Events section. Listeners are passed the <code>Tab</code> object that triggered the event.</p>
-
-<h3 id="Methods">Methods</h3>
-
-<h4 class="addon-sdk-api-name" id="pin()"><code>pin()</code></h4>
-
-<p>Pins this tab as an <a href="http://support.mozilla.com/en-US/kb/what-are-app-tabs">app tab</a>.</p>
-
-<h4 class="addon-sdk-api-name" id="unpin()"><code>unpin()</code></h4>
-
-<p>Unpins this tab.</p>
-
-<h4 class="addon-sdk-api-name" id="close(callback)"><code>close(callback)</code></h4>
-
-<p>Closes this tab.</p>
-
-<h5 id="Parameters_2">Parameters</h5>
-
-<p><strong>callback : function</strong><br>
- A function to be called when the tab finishes its closing process. This is an optional argument.</p>
-
-<h4 class="addon-sdk-api-name" id="reload()"><code>reload()</code></h4>
-
-<p>Reloads this tab.</p>
-
-<h4 class="addon-sdk-api-name" id="activate()"><code>activate()</code></h4>
-
-<p>Makes this tab active, which will bring this tab to the foreground.</p>
-
-<h4 class="addon-sdk-api-name" id="getThumbnail()"><code>getThumbnail()</code></h4>
-
-<p>Returns thumbnail data URI of the page currently loaded in this tab.</p>
-
-<h4 class="addon-sdk-api-name" id="attach(options)"><code>attach(options)</code></h4>
-
-<p>Attach one or more scripts to the document loaded in the tab. Note that by attaching inside <em>ready</em> event, this becomes tab-centric: if the user navigates to a new page in the same tab, then the content scripts will be reattached to the new page.</p>
-
-<p><strong>Example</strong></p>
-
-<pre class="brush: js">var tabs = require("sdk/tabs");
-
-tabs.on('ready', function(tab) {
- var worker = tab.attach({
- contentScript:
- 'document.body.style.border = "5px solid red";'
- });
-});</pre>
-
-<h5 id="Parameters_3">Parameters</h5>
-
-<p><strong>options : object</strong><br>
- Optional options:</p>
-
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">Name</th>
- <th scope="col">Type</th>
- <th scope="col"> </th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>contentScriptFile</td>
- <td>string,array</td>
- <td>
- <p>The local file URLs of content scripts to load. Content scripts specified by this option are loaded <em>before</em> those specified by the <code>contentScript</code> option. Optional.</p>
- </td>
- </tr>
- <tr>
- <td>contentScript</td>
- <td>string,array</td>
- <td>
- <p>A string or an array of strings of code to be evaluated in the context. Content scripts specified by this option are loaded <em>after</em> those specified by the <code>contentScriptFile</code> option. Optional.</p>
- </td>
- </tr>
- <tr>
- <td>contentScriptOptions</td>
- <td>object</td>
- <td>
- <p>You can use this option to define read-only values for your content scripts.</p>
-
- <p>The option consists of an object literal listing <code>name:value</code> pairs for the values you want to provide to the content script. For example:</p>
-
- <pre class="brush: js">
-// main.js
-
-const tabs = require("sdk/tabs");
-
-tabs.open({
- url: "./page.html",
- onReady: function(tab) {
- tab.attach({
- contentScriptFile: "./content-script.js",
- contentScriptOptions: {
- a: "blah"
- }
- });
- }
-});</pre>
-
- <p>The values are accessible to content scripts via the <code>self.options</code> property:</p>
-
- <pre class="brush: js">
-// content-script.js
-
-alert(self.options.a);</pre>
- </td>
- </tr>
- <tr>
- <td>onMessage</td>
- <td>function</td>
- <td>
- <p>A function called when the content worker receives a message from content scripts. Listeners are passed a single argument, the message posted from the content script. Optional.</p>
- </td>
- </tr>
- <tr>
- <td>onError</td>
- <td>function</td>
- <td>A function called when the content worker receives an error from content scripts. Listeners are passed a single argument, <code>error</code>, which is the error posted from the content script and an object of type <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error">Error</a>. Optional</td>
- </tr>
- </tbody>
-</table>
-
-<h5 id="Returns">Returns</h5>
-
-<p><strong>Worker</strong> : The <a href="/en-US/Add-ons/SDK/Low-Level_APIs/content_worker">Worker</a> object can be used to communicate with the content script. See <a href="/en-US/Add-ons/SDK/Guides/Content_Scripts">Content Scripts guide</a> to learn the details.</p>
-
-<h3 id="Properties_2">Properties</h3>
-
-<h4 class="addon-sdk-api-name" id="id"><code>id</code></h4>
-
-<p>The unique id for the tab. This property is read-only.</p>
-
-<h4 class="addon-sdk-api-name" id="title"><code>title</code></h4>
-
-<p>The title of the tab (usually the title of the page currently loaded in the tab) This property can be set to change the tab title.</p>
-
-<h4 class="addon-sdk-api-name" id="url"><code>url</code></h4>
-
-<p>The URL of the page currently loaded in the tab. This property can be set to load a different URL in the tab.</p>
-
-<h4 class="addon-sdk-api-name" id="favicon"><code>favicon</code></h4>
-
-<p>The URL of the favicon for the page currently loaded in the tab. This property is read-only.</p>
-
-<div class="warning">This property is deprecated. From version 1.15, use the <a href="/en-US/Add-ons/SDK/Low-Level_APIs/places_favicon">favicon module's <code>getFavicon()</code></a> function instead.</div>
-
-<h4 class="addon-sdk-api-name" id="contentType"><code>contentType</code></h4>
-
-<div class="note">
-<p><strong>This is currently an experimental API, so we might change it in future releases.</strong></p>
-
-<p>Returns the MIME type that the document currently loaded in the tab is being rendered as. This may come from HTTP headers or other sources of MIME information, and might be affected by automatic type conversions performed by either the browser or extensions. This property is read-only.</p>
-</div>
-
-<h4 class="addon-sdk-api-name" id="index"><code>index</code></h4>
-
-<p>The index of the tab relative to other tabs in the application window. This property can be set to change its relative position.</p>
-
-<h4 class="addon-sdk-api-name" id="isPinned"><code>isPinned</code></h4>
-
-<p>Whether or not this tab is pinned as an <a href="http://support.mozilla.com/en-US/kb/what-are-app-tabs">app tab</a>. This property is read-only.</p>
-
-<h4 class="addon-sdk-api-name" id="window"><code>window</code></h4>
-
-<p>The <a href="/en-US/Add-ons/SDK/High-Level_APIs/windows#BrowserWindow"><code>window</code></a> object for this tab.</p>
-
-<h4 class="addon-sdk-api-name" id="readyState"><code>readyState</code></h4>
-
-<div class="geckoVersionNote">
-<p>New in Firefox 33.</p>
-</div>
-
-<p>A string telling you the load state of the document hosted by this tab. This corresponds directly to <a href="/en-US/docs/Web/API/document.readyState"><code>Document.readyState</code></a>. It has one of four possible values:</p>
-
-<ul>
- <li>"uninitialized": the tab's document is not yet loading</li>
- <li>"loading": the tab's document is still in the process of loading</li>
- <li>"interactive": the tab's document has loaded and is parsed, but resources such as images and stylesheets may still be loading</li>
- <li>"complete": the tab's document and all resources are fully loaded</li>
-</ul>
-
-<p>Once a tab's <code>readyState</code> has entered "interactive", you can retrieve properties such as the document's URL.</p>
-
-<h3 id="Events_2">Events</h3>
-
-<h4 class="addon-sdk-api-name" id="close_2"><code>close</code></h4>
-
-<p>This event is emitted when the tab is closed. It's also emitted when the tab's window is closed.</p>
-
-<h5 id="Arguments_6">Arguments</h5>
-
-<p><strong>Tab</strong> : Listeners are passed the tab object.</p>
-
-<h4 class="addon-sdk-api-name" id="ready_2"><code>ready</code></h4>
-
-<p>This event is emitted when the DOM for the tab's content is ready. It is equivalent to the <a href="https://developer.mozilla.org/en-US/docs/Web/Reference/Events/DOMContentLoaded"><code>DOMContentLoaded</code></a> event for the given content page. At this point the document itself is fully loaded and parsed, but resources such as stylesheets and images may still be loading.</p>
-
-<p>A single tab will emit this event every time the DOM is loaded: so it will be emitted again if the tab's location changes or the content is reloaded. After this event has been emitted, all properties relating to the tab's content can be used.</p>
-
-<h5 id="Arguments_7">Arguments</h5>
-
-<p><strong>Tab</strong> : Listeners are passed the tab object.</p>
-
-<h4 class="addon-sdk-api-name" id="load"><code>load</code></h4>
-
-<p>This event is emitted when the page for the tab's content is loaded. It is equivalent to the <a href="https://developer.mozilla.org/en-US/docs/Web/Reference/Events/load"><code>load</code></a> event for the given content page. At this point the document and its resources, such as images and stylesheets, have finished loading.</p>
-
-<p>This event can be used for pages that do not have a <code>DOMContentLoaded</code> event, like images. For pages that have a <code>DOMContentLoaded</code> event, <code>load</code> is fired after <code>ready</code>.</p>
-
-<p>A single tab will emit this event every time the page is loaded: so it will be emitted again if the tab's location changes or the content is reloaded. After this event has been emitted, all properties relating to the tab's content can be used.</p>
-
-<h5 id="Arguments_8">Arguments</h5>
-
-<p><strong>Tab</strong> : Listeners are passed the tab object.</p>
-
-<h4 class="addon-sdk-api-name" id="pageshow"><code>pageshow</code></h4>
-
-<p>The <code>pageshow</code> event is emitted when the page for a tab's content is loaded. It is equivalent to the <a href="https://developer.mozilla.org/en-US/docs/DOM/Mozilla_event_reference/pageshow"><code>pageshow</code></a> event for the given content page.</p>
-
-<p>This event is similar to the <a href="/en-US/Add-ons/SDK/High-Level_APIs/tabs#load"><code>load</code></a> and <a href="/en-US/Add-ons/SDK/High-Level_APIs/tabs#ready"><code>ready</code></a> events, except unlike <code>load</code> and <code>ready</code>, <code>pageshow</code> is triggered if the page was retrieved from the <a href="https://developer.mozilla.org/en-US/docs/Working_with_BFCache">bfcache</a>. This means that if the user loads a page, loads a new page, then moves back to the previous page using the "Back" button, the <code>pageshow</code> event is emitted when the user moves back to the previous page, while the <code>load</code> and <code>ready</code> events are not.</p>
-
-<p>This event is <em>not</em> emitted when the tab is made the active tab: to get notified about that, you need to listen to the <a href="/en-US/Add-ons/SDK/High-Level_APIs/tabs#activate"><code>activate</code></a> event.</p>
-
-<p>After this event has been emitted, all properties relating to the tab's content can be used. It is emitted after <code>load</code> and <code>ready</code>.</p>
-
-<h5 id="Arguments_9">Arguments</h5>
-
-<p><strong>Tab</strong> : Listeners are passed the tab object.</p>
-
-<p><strong>persisted</strong> : Listeners are passed a boolean value indicating whether or not the page was loaded from the <a href="https://developer.mozilla.org/en-US/docs/Working_with_BFCache">bfcache</a>.</p>
-
-<h4 class="addon-sdk-api-name" id="activate_2"><code>activate</code></h4>
-
-<p>This event is emitted when the tab is made active.</p>
-
-<p>Note that you cannot guarantee that a tab's content, or even its <code>url</code>, are initialized at the time <code>activate</code> is emitted. This is because when a new tab is opened, its <code>activate</code> event may be emitted before the content is loaded.</p>
-
-<p>You can use the tab's <a href="/en-US/Add-ons/SDK/High-Level_APIs/tabs#readyState"><code>readyState</code></a> property to determine whether the tab's content and <code>url</code> will be available: if <code>readyState</code> is <code>uninitialized</code> or <code>loading</code>, then you can't access the tab's properties and must wait for the tab's <a href="/en-US/Add-ons/SDK/High-Level_APIs/tabs#ready_2"><code>ready</code></a> event.</p>
-
-<h5 id="Arguments_10">Arguments</h5>
-
-<p><strong>Tab</strong> : Listeners are passed the tab object.</p>
-
-<h4 class="addon-sdk-api-name" id="deactivate_2"><code>deactivate</code></h4>
-
-<p>This event is emitted when the tab is made inactive.</p>
-
-<h5 id="Arguments_11">Arguments</h5>
-
-<p><strong>Tab</strong> : Listeners are passed the tab object.</p>
diff --git a/files/fr/mozilla/add-ons/sdk/index.html b/files/fr/mozilla/add-ons/sdk/index.html
deleted file mode 100644
index 4de1603cd2..0000000000
--- a/files/fr/mozilla/add-ons/sdk/index.html
+++ /dev/null
@@ -1,337 +0,0 @@
----
-title: Add-on SDK
-slug: Mozilla/Add-ons/SDK
-tags:
- - Add-on SDK
- - Jetpack
-translation_of: Archive/Add-ons/Add-on_SDK
----
-<p> </p>
-
-<div class="warning">
-<p>Support for extensions using XUL/XPCOM or the Add-on SDK was removed in Firefox 57, released November 2017. As there is no supported version of Firefox enabling these technologies, this page will be removed by December 2020.</p>
-
-<p>Add-ons using the techniques described in this document are considered a legacy technology in Firefox. Don't use these techniques to develop new add-ons. Use <a href="/en-US/Add-ons/WebExtensions">WebExtensions</a> instead. If you maintain an add-on which uses the techniques described here, consider migrating it to use WebExtensions.</p>
-
-<p><strong>Starting from <a href="https://wiki.mozilla.org/RapidRelease/Calendar">Firefox 53</a>, no new legacy add-ons will be accepted on addons.mozilla.org (AMO) for desktop Firefox and Firefox for Android.</strong></p>
-
-<p><strong>Starting from <a href="https://wiki.mozilla.org/RapidRelease/Calendar">Firefox 57</a>, only extensions developed using WebExtensions APIs will be supported on Desktop Firefox and Firefox for Android. </strong></p>
-
-<p>Even before Firefox 57, changes coming up in the Firefox platform will break many legacy extensions. These changes include multiprocess Firefox (e10s), sandboxing, and multiple content processes. Legacy extensions that are affected by these changes should migrate to use WebExtensions APIs if they can. See the <a href="https://blog.mozilla.org/addons/2017/02/16/the-road-to-firefox-57-compatibility-milestones/">"Compatibility Milestones" document</a> for more information.</p>
-
-<p>A wiki page containing <a href="https://wiki.mozilla.org/Add-ons/developer/communication">resources, migration paths, office hours, and more</a>, is available to help developers transition to the new technologies.</p>
-</div>
-
-<section class="Quick_links" id="Quick_Links">
-<ol>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions"><strong>Browser extensions</strong></a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions#Getting_started">Getting started</a>
- <ol>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/What_are_WebExtensions">What are extensions?</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Your_first_WebExtension">Your first extension</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Your_second_WebExtension">Your second extension</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Anatomy_of_a_WebExtension">Anatomy of an extension</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Examples">Example extensions</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/What_next_">What next?</a></li>
- </ol>
- </li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions#Concepts">Concepts</a>
- <ol>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Using_the_JavaScript_APIs">Using the JavaScript APIs</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Content_scripts">Content scripts</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Match_patterns">Match patterns</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Working_with_files">Working with files</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Internationalization">Internationalization</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Security_best_practices">Security best practices</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Content_Security_Policy">Content Security Policy</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Native_messaging">Native messaging</a></li>
- </ol>
- </li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions#User_Interface">User interface</a>
- <ol>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface">User Interface</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface/Browser_action">Toolbar button</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface/Page_actions">Address bar button</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface/Sidebars">Sidebars</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface/Context_menu_items">Context menu items</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface/Options_pages">Options page</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface/Extension_pages">Extension pages</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface/Notifications">Notifications</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface/Omnibox">Address bar suggestions</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface/devtools_panels">Developer tools panels</a></li>
- </ol>
- </li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions#How_to">How to</a>
- <ol>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Intercept_HTTP_requests">Intercept HTTP requests</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Modify_a_web_page">Modify a web page</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Safely_inserting_external_content_into_a_page">Insert external content</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Add_a_button_to_the_toolbar">Add a button to the toolbar</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Implement_a_settings_page">Implement a settings page</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Working_with_the_Tabs_API">Work with the Tabs API</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Work_with_the_Bookmarks_API">Work with the Bookmarks API</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Work_with_the_Cookies_API">Work with the Cookies API</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Work_with_contextual_identities">Work with contextual identities</a></li>
- </ol>
- </li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions#Porting">Porting</a>
- <ol>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Porting_a_Google_Chrome_extension">Porting a Google Chrome extension</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Porting_a_legacy_Firefox_add-on">Porting a legacy Firefox extension</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Embedded_WebExtensions">Embedded WebExtensions</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Comparison_with_the_Add-on_SDK">Comparison with the Add-on SDK</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Comparison_with_XUL_XPCOM_extensions">Comparison with XUL/XPCOM extensions</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Chrome_incompatibilities">Chrome incompatibilities</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Differences_between_desktop_and_Android">Differences between desktop and Android</a></li>
- </ol>
- </li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions#Firefox_workflow">Firefox workflow</a>
- <ol>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/User_experience_best_practices">User Experience</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Temporary_Installation_in_Firefox">Temporary Installation in Firefox</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Debugging">Debugging</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Testing_persistent_and_restart_features">Testing persistent and restart features</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Developing_WebExtensions_for_Firefox_for_Android">Developing for Firefox for Android</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Getting_started_with_web-ext">Getting started with web-ext</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/web-ext_command_reference">web-ext command reference</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/WebExtensions_and_the_Add-on_ID">Extensions and the Add-on ID</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Request_the_right_permissions">Request the right permissions</a></li>
- </ol>
- </li>
- <li data-default-state="closed"><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API">JavaScript APIs</a>
- <ol>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Browser_support_for_JavaScript_APIs">Browser support for JavaScript APIs</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/alarms">alarms</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/bookmarks">bookmarks</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/browserAction">browserAction</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/browserSettings">browserSettings</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/browsingData">browsingData</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/clipboard">clipboard</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/commands">commands</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/contentScripts">contentScripts</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/contextualIdentities">contextualIdentities</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/cookies">cookies</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/devtools.inspectedWindow">devtools.inspectedWindow</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/devtools.network">devtools.network</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/devtools.panels">devtools.panels</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/dns">dns</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/downloads">downloads</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/events">events</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/extension">extension</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/extensionTypes">extensionTypes</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/find">find</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/history">history</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/i18n">i18n</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/identity">identity</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/idle">idle</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/management">management</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/menus">menus</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/notifications">notifications</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/omnibox">omnibox</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/pageAction">pageAction</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/permissions">permissions</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/pkcs11">pkcs11</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/privacy">privacy</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/proxy">proxy</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/runtime">runtime</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/search">search</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/sessions">sessions</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/sidebarAction">sidebarAction</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/storage">storage</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/tabs">tabs</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/theme">theme</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/topSites">topSites</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/types">types</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/webNavigation">webNavigation</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/webRequest">webRequest</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/windows">windows</a></li>
- </ol>
- </li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json">Manifest keys</a>
- <ol>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/applications">applications</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/author">author</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/background">background</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/browser_action">browser_action</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/chrome_settings_overrides">chrome_settings_overrides</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/chrome_url_overrides">chrome_url_overrides</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/commands">commands</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/content_scripts">content_scripts</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/content_security_policy">content_security_policy</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/default_locale">default_locale</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/description">description</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/developer">developer</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/devtools_page">devtools_page</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/homepage_url">homepage_url</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/icons">icons</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/incognito">incognito</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/manifest_version">manifest_version</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/name">name</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/omnibox">omnibox</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/optional_permissions">optional_permissions</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/options_ui">options_ui</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/page_action">page_action</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/permissions">permissions</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/protocol_handlers">protocol_handlers</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/short_name">short_name</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/sidebar_action">sidebar_action</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/theme">theme</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/version">version</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/version_name">version_name</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/web_accessible_resources">web_accessible_resources</a></li>
- </ol>
- </li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/Themes"><strong>Themes</strong></a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/Themes/Theme_concepts">Browser themes</a>
- <ol>
- <li><a href="/en-US/docs/Mozilla/Add-ons/Themes/Theme_concepts">Browser theme concepts</a></li>
- </ol>
- </li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/Themes/Lightweight_themes">Lightweight themes</a>
- <ol>
- <li><a href="/en-US/docs/Mozilla/Add-ons/Themes/Lightweight_themes">Lightweight themes</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/Themes/Lightweight_Themes/FAQ">Lightweight themes FAQ</a></li>
- </ol>
- </li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/Distribution"><strong>Publishing and Distribution</strong></a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/Distribution">Publishing add-ons</a>
- <ol>
- <li><a href="/en-US/docs/Mozilla/Add-ons/Distribution">Signing and distribution overview</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Package_your_extension_">Package your extension</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/Distribution/Submitting_an_add-on">Submit an add-on</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/Source_Code_Submission">Source code submission</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/Distribution/Resources_for_publishers">Resources for publishers</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/Listing">Creating an appealing listing</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/AMO/Policy/Reviews">Review policies</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/AMO/Policy/Agreement">Developer agreement</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/AMO/Policy/Featured">Featured add-ons</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/Distribution/Retiring_your_extension">Retiring your extension</a></li>
- </ol>
- </li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Alternative_distribution_options">Distributing add-ons</a>
- <ol>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Alternative_distribution_options/Sideloading_add-ons">For sideloading</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Alternative_distribution_options/Add-ons_for_desktop_apps">For desktop apps</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Alternative_distribution_options/Add-ons_in_the_enterprise">For an enterprise</a></li>
- </ol>
- </li>
- <li><a href="https://discourse.mozilla.org/c/add-ons"><strong>Community and Support</strong></a></li>
- <li><a href="#">Channels</a>
- <ol>
- <li><a href="https://blog.mozilla.org/addons">Add-ons blog</a></li>
- <li><a href="https://discourse.mozilla.org/c/add-ons">Add-on forums</a></li>
- <li><a href="http://stackoverflow.com/questions/tagged/firefox-addon">Stack Overflow</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/#Contact_us">Contact us</a></li>
- </ol>
- </li>
-</ol>
-</section>
-
-<p> </p>
-
-<p>Using the Add-on SDK, you can create Firefox add-ons. You can use various standard Web technologies: JavaScript, HTML, and CSS, to create the add-ons. The SDK includes JavaScript APIs, which you can use to create add-ons and tools for creating, running, testing, and packaging add-ons.</p>
-
-<hr>
-<h3 id="Tutorials"><a href="/en-US/Add-ons/SDK/Tutorials">Tutorials</a></h3>
-
-<div class="column-container">
-<div class="column-half">
-<dl>
- <dt><a href="/en-US/Add-ons/SDK/Tutorials#getting-started">Getting started</a></dt>
- <dd>How to <a href="/en-US/Add-ons/SDK/Tutorials/Installation">install the SDK</a> and <a href="/en-US/Add-ons/SDK/Tutorials/Getting_Started_(jpm)">use the jpm tool</a> to develop, test, and package add-ons.</dd>
- <dt><a href="/en-US/Add-ons/SDK/Tutorials#interact-with-the-browser">Interact with the browser</a></dt>
- <dd><a href="/en-US/Add-ons/SDK/Tutorials/Open_a_Web_Page">Open web pages</a>, <a href="/en-US/Add-ons/SDK/Tutorials/Listen_For_Page_Load">listen for pages loading</a> and <a href="/en-US/Add-ons/SDK/Tutorials/List_Open_Tabs">list open pages</a>.</dd>
- <dt><a href="/en-US/Add-ons/SDK/Tutorials#development-techniques">Development techniques</a></dt>
- <dd>Learn about common development techniques, such as <a href="/en-US/Add-ons/SDK/Tutorials/Unit_testing">unit testing</a>, <a href="/en-US/Add-ons/SDK/Tutorials/Logging">logging</a>, <a href="/en-US/Add-ons/SDK/Tutorials/Creating_Reusable_Modules">creating reusable modules</a>, <a href="/en-US/Add-ons/SDK/Tutorials/l10n">localization</a>, and <a href="/en-US/Add-ons/SDK/Tutorials/Mobile_development">mobile development</a>.</dd>
-</dl>
-</div>
-
-<div class="column-half">
-<dl>
- <dt><a href="/en-US/Add-ons/SDK/Tutorials#create-user-interfaces">Create user interface components</a></dt>
- <dd>Create user interface components such as <a href="/en-US/Add-ons/SDK/Tutorials/Adding_a_Button_to_the_Toolbar">toolbar buttons</a>, <a href="/en-US/Add-ons/SDK/Tutorials/Add_a_Context_Menu_Item">context menus</a>, <a href="/en-US/Add-ons/SDK/Tutorials/Add_a_Menu_Item_to_Firefox">menu items</a>, and <a href="/en-US/Add-ons/SDK/Tutorials/Display_a_Popup">dialogs</a>.</dd>
- <dt><a href="/en-US/Add-ons/SDK/Tutorials#modify-web-pages">Modify web pages</a></dt>
- <dd>Modify pages <a href="/en-US/Add-ons/SDK/Tutorials/Modifying_Web_Pages_Based_on_URL">matching a URL pattern</a> or dynamically <a href="/en-US/Add-ons/SDK/Tutorials/Modifying_the_Page_Hosted_by_a_Tab">modify a particular tab</a>.</dd>
- <dt><a href="/en-US/Add-ons/SDK/Tutorials/Annotator">Putting it together</a></dt>
- <dd>Walkthrough of the Annotator example add-on.</dd>
-</dl>
-</div>
-</div>
-
-<hr>
-<h3 id="Guides">Guides</h3>
-
-<div class="column-container">
-<div class="column-half">
-<dl>
- <dt><a href="/en-US/Add-ons/SDK/Guides#contributors-guide">Contributor's guide</a></dt>
- <dd>Learn <a href="/en-US/Add-ons/SDK/Guides/Getting_Started">how to start contributing</a> to the SDK and about the most important idioms used in the SDK code such as <a href="/en-US/Add-ons/SDK/Guides/Modules">modules</a>, <a href="/en-US/Add-ons/SDK/Guides/Classes_and_Inheritance">classes and inheritance</a>, <a href="/en-US/Add-ons/SDK/Guides/Private_Properties">private properties</a>, and <a href="/en-US/Add-ons/SDK/Guides/Content_Processes">content processes</a>.</dd>
- <dt><a href="/en-US/Add-ons/SDK/Guides#sdk-infrastructure">SDK infrastructure</a></dt>
- <dd>Aspects of the SDK's underlying technology: <a href="/en-US/Add-ons/SDK/Guides/Module_structure_of_the_SDK">modules</a>, the <a href="/en-US/Add-ons/SDK/Guides/Program_ID">Program ID</a> and the rules defining <a href="/en-US/Add-ons/SDK/Guides/Firefox_Compatibility">Firefox compatibility</a>.</dd>
- <dt><a href="/en-US/Add-ons/SDK/Guides/Content_Scripts">Content scripts</a></dt>
- <dd>A detailed guide to working with content scripts.</dd>
-</dl>
-</div>
-
-<div class="column-half">
-<dl>
- <dt><a href="/en-US/Add-ons/SDK/Guides#sdk-idioms">SDK idioms</a></dt>
- <dd>The SDK's <a href="/en-US/Add-ons/SDK/Guides/Working_with_Events">event framework</a> and the <a href="/en-US/Add-ons/SDK/Guides/Two_Types_of_Scripts">distinction between add-on scripts and content scripts</a>.</dd>
- <dt><a href="/en-US/Add-ons/SDK/Guides/XUL_Migration_Guide">XUL migration</a></dt>
- <dd>A guide to <a href="/en-US/Add-ons/SDK/Guides/XUL_Migration_Guide">porting XUL add-ons to the SDK</a>. This guide includes a <a href="/en-US/Add-ons/SDK/Guides/XUL_vs_SDK">comparison of the two toolsets</a> and a <a href="/en-US/Add-ons/SDK/Guides/Porting_the_Library_Detector">working example</a> of porting a XUL add-on.</dd>
- <dt><a href="/en-US/Add-ons/SDK/Guides/Multiprocess_Firefox_and_the_SDK">Multiprocess Firefox and the SDK</a></dt>
- <dd>How to check whether your add-on is compatible with multiprocess Firefox or not and fix it accordingly.</dd>
-</dl>
-</div>
-</div>
-
-<hr>
-<h3 id="Reference">Reference</h3>
-
-<div class="column-container">
-<div class="column-half">
-<dl>
- <dt><a href="/en-US/Add-ons/SDK/High-Level_APIs">High-Level APIs</a></dt>
- <dd>Reference documentation for the high-level SDK APIs.</dd>
- <dt><a href="/en-US/Add-ons/SDK/Tools">Tools reference</a></dt>
- <dd>Reference documentation for the <a href="/en-US/Add-ons/SDK/Tools/jpm">jpm tool</a> used to develop, test and package add-ons, the <a href="/en-US/Add-ons/SDK/Tools/console">console</a> global used for logging, and the <a href="/en-US/Add-ons/SDK/Tools/package_json">package.json</a> file.</dd>
-</dl>
-</div>
-
-<div class="column-half">
-<dl>
- <dt><a href="/en-US/Add-ons/SDK/Low-Level_APIs">Low-Level APIs</a></dt>
- <dd>Reference documentation for the low-level SDK APIs.</dd>
-</dl>
-</div>
-</div>
-
-<p> </p>
-
-<hr>
-<div>
-<div class="overheadIndicator communitybox" dir="ltr">
-<div class="column-container">
-<h2 id="Join_the_Add-on_SDK_community">Join the Add-on SDK community</h2>
-
-<div class="column-half">
-<div class="communitysubhead">Choose your preferred method for joining the discussion:</div>
-
-<ul class="communitymailinglist">
- <li><a href="https://mail.mozilla.org/listinfo/dev-addons">Mailing list</a></li>
- <li><a href="https://twitter.com/mozillajetpack">Twitter</a></li>
- <li><a href="http://stackoverflow.com/questions/tagged/firefox-addon-sdk">Stack Overflow</a></li>
- <li><a href="http://groups.google.com/group/https://groups.google.com/forum/?fromgroups#!forum/mozilla-labs-jetpack">Newsgroup</a></li>
- <li><a href="http://groups.google.com/group/https://groups.google.com/forum/?fromgroups#!forum/mozilla-labs-jetpack/feeds">RSS feed</a></li>
-</ul>
-</div>
-
-<div class="column-half">
-<ul class="communitycontact">
- <li><strong>IRC: </strong><a href="irc://irc.mozilla.org/jetpack">#jetpack</a> <span class="smaller">(<a href="https://wiki.mozilla.org/IRC">learn more</a>)</span></li>
- <li><strong>Team info: </strong><a href="https://wiki.mozilla.org/Jetpack" title="Designs and plans for the SDK tools">Jetpack Wiki</a></li>
-</ul>
-</div>
-</div>
-</div>
-</div>
diff --git a/files/fr/mozilla/add-ons/sdk/low-level_apis/index.html b/files/fr/mozilla/add-ons/sdk/low-level_apis/index.html
deleted file mode 100644
index 0460b4ce3d..0000000000
--- a/files/fr/mozilla/add-ons/sdk/low-level_apis/index.html
+++ /dev/null
@@ -1,24 +0,0 @@
----
-title: Low-Level APIs
-slug: Mozilla/Add-ons/SDK/Low-Level_APIs
-tags:
- - TopicStub
-translation_of: Archive/Add-ons/Add-on_SDK/Low-Level_APIs
----
-<p>Les modules de cette section implémentent des API de bas niveau. Ces modules se divisent à peu près en trois catégories:</p>
-
-<ul>
- <li>
- <p>utilitaires fondamentaux tels que la <a href="/en-US/Add-ons/SDK/Low-Level_APIs/util_collection">collection</a>. De nombreux modules complémentaires voudront probablement utiliser des modules de cette catégorie.</p>
- </li>
- <li>
- <p>blocs de construction pour les modules de niveau supérieur, tels que les <a href="/en-US/Add-ons/SDK/Low-Level_APIs/event_core">events</a> et les <a href="/en-US/Add-ons/SDK/Low-Level_APIs/content_worker">worker</a>. Vous êtes plus susceptible de les utiliser si vous créez vos propres modules qui implémentent de nouvelles API, étendant ainsi le SDK lui-même.</p>
- </li>
- <li>
- <p>des modules privilégiés qui exposent de puissantes capacités de bas niveau telles que <a href="/en-US/Add-ons/SDK/Low-Level_APIs/window_utils">window/utils</a> et <a href="/en-US/Add-ons/SDK/Low-Level_APIs/net_xhr">net/xhr</a>. Vous pouvez utiliser ces modules dans votre module complémentaire si vous en avez besoin, mais sachez que le coût d'un accès privilégié est la nécessité de prendre des précautions de sécurité plus élaborées. Dans de nombreux cas, ces modules ont des analogues plus simples et plus restreints parmi les "API de haut niveau" (par exemple, <a href="/en-US/Add-ons/SDK/High-Level_APIs/windows">windows</a> ou <a href="/en-US/Add-ons/SDK/High-Level_APIs/request">request</a>).</p>
- </li>
-</ul>
-
-<p>Ces modules sont toujours en développement actif et nous prévoyons d'y apporter des modifications incompatibles dans les prochaines versions.</p>
-
-<p>{{ LandingPageListSubpages ("/en-US/Add-ons/SDK/Low-Level_APIs", 5) }}</p>
diff --git a/files/fr/mozilla/add-ons/sdk/low-level_apis/io_byte-streams/index.html b/files/fr/mozilla/add-ons/sdk/low-level_apis/io_byte-streams/index.html
deleted file mode 100644
index c37870a8cb..0000000000
--- a/files/fr/mozilla/add-ons/sdk/low-level_apis/io_byte-streams/index.html
+++ /dev/null
@@ -1,109 +0,0 @@
----
-title: io/byte-streams
-slug: Mozilla/Add-ons/SDK/Low-Level_APIs/io_byte-streams
-translation_of: Archive/Add-ons/Add-on_SDK/Low-Level_APIs/io_byte-streams
----
-<p>{{AddonSidebar}}</p>
-
-<div class="note">
-<p>Expérimental</p>
-</div>
-
-<p><span class="seoSummary">Fournit des flux d'octets en lecture/écriture.</span></p>
-
-<pre class="brush: js">function readBinaryDataFromFile (filename) {
- var fileIO = require("sdk/io/file");
- var data = null;
- if (fileIO.exists(filename)) {
- var ByteReader = fileIO.open(filename, "rb");
- if (!ByteReader.closed) {
- data = ByteReader.read();
- ByteReader.close();
- }
- }
- return data;
-}
-</pre>
-
-<pre class="brush: js">function writeBinaryDataToFile(data, filename) {
- var fileIO = require("sdk/io/file");
- var ByteWriter = fileIO.open(filename, "wb");
- if (!ByteWriter.closed) {
- ByteWriter.write(data);
- ByteWriter.close();
- }
-}</pre>
-
-<h2 id="Globals">Globals</h2>
-
-<h3 id="Constructeurs">Constructeurs</h3>
-
-<h4 class="addon-sdk-api-name" id="ByteReader(inputStream)"><code>ByteReader(inputStream)</code></h4>
-
-<p>Crée un flux d'entrée binaire qui lit les octets d'un flux de support.</p>
-
-<p>Vous pouvez également créer un objets <code>ByteReader</code> en utilisant la fonction io/file <a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/io_file#open(path.2C_mode)" title="/fr/Add-ons/SDK/Low-Level_APIs/io_file#open(path.2C_mode)"><code>open()</code></a>.</p>
-
-<h5 id="Paramètres">Paramètres</h5>
-
-<p><strong>inputStream: </strong><strong>flux</strong><br>
- Le flux de support, un <a href="/fr/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIInputStream" title="http://mxr.mozilla.org/mozilla-central/source/xpcom/io/nsIInputStream.idl"><code>nsIInputStream</code> </a></p>
-
-<h4 class="addon-sdk-api-name" id="ByteWriter(outputStream)"><code>ByteWriter(outputStream)</code></h4>
-
-<p>Crée un flux de sortie binaire qui écrit les octets dans un flux de support.</p>
-
-<p>Vous pouvez également créer un objets <code>ByteWriter</code> en utilisant la fonction io/file <a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/io_file#open(path.2C_mode)"><code>open()</code></a>.</p>
-
-<h5 id="Parameters">Parameters</h5>
-
-<p><strong>outputStream : flux</strong><br>
- Le flux de support, un <a href="/fr/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIOutputStream"><code>nsIOutputStream</code></a>.</p>
-
-<h2 id="ByteReader">ByteReader</h2>
-
-<h3 id="Méthodes">Méthodes</h3>
-
-<h4 class="addon-sdk-api-name" id="close()"><code>close()</code></h4>
-
-<p>Ferme à la fois le flux et son flux de support. Si le flux est déjà fermé, une exception est levée.</p>
-
-<h4 class="addon-sdk-api-name" id="read(numBytes)"><code>read(numBytes)</code></h4>
-
-<p>Lit une chaîne à partir du flux. Si le flux est fermé, une exception est levée.</p>
-
-<h5 id="Parameters_2">Parameters</h5>
-
-<p><strong>numBytes: nombre </strong> &lt;être&gt; Le nombre d'octets à lire. Sinon donné, la totalité du flux est lu.</p>
-
-<h5 id="Retours">Retours</h5>
-
-<p><strong>string </strong>: Une chaîne contenant les octets lus. Si le flux est finit, retourne une chaîne vide.</p>
-
-<h3 id="Propriétés">Propriétés</h3>
-
-<h4 class="addon-sdk-api-name" id="closed"><code>closed</code></h4>
-
-<p>Vrai si le flux est fermé.</p>
-
-<h2 id="ByteWriter">ByteWriter</h2>
-
-<h3 id="Méthodes_2">Méthodes</h3>
-
-<h4 class="addon-sdk-api-name" id="close()_2"><code>close()</code></h4>
-
-<p>Ferme à la fois le flux et son flux de support. Si le flux est déjà fermé, une exception est levée.</p>
-
-<h4 class="addon-sdk-api-name" id="write(str)"><code>write(str)</code></h4>
-
-<p>Ecrit une chaîne dans le flux. Si le flux est fermé, une exception est levée.</p>
-
-<h5 id="Paramètres_2">Paramètres</h5>
-
-<p>str: string La chaîne à écrire .</p>
-
-<h3 id="Propriétés_2">Propriétés</h3>
-
-<h4 class="addon-sdk-api-name" id="closed_2"><code>closed</code></h4>
-
-<p>Vrai si le flux est fermé.</p>
diff --git a/files/fr/mozilla/add-ons/sdk/low-level_apis/io_file/index.html b/files/fr/mozilla/add-ons/sdk/low-level_apis/io_file/index.html
deleted file mode 100644
index 51900f5799..0000000000
--- a/files/fr/mozilla/add-ons/sdk/low-level_apis/io_file/index.html
+++ /dev/null
@@ -1,196 +0,0 @@
----
-title: io/file
-slug: Mozilla/Add-ons/SDK/Low-Level_APIs/io_file
-translation_of: Archive/Add-ons/Add-on_SDK/Low-Level_APIs/io_file
----
-<p>{{AddonSidebar}}</p>
-
-<div class="note">
-<p>Expérimental</p>
-</div>
-
-<p><span class="seoSummary">Permet d'accéder au système de fichiers local.</span></p>
-
-<h2 id="Utilisation">Utilisation</h2>
-
-<h3 id="Paths">Paths</h3>
-
-<p>Les specifications Path de cette API sont spécifiques à l'OS. Cela signifie que les chemins Windows sont spécifiés en utilisant le séparateur antislash (<code>\</code>), et sur les systèmes de type Unix comme Linux et OS X les slash sont utilisés (<code>/</code>).</p>
-
-<p>To ensure your add-on works for everyone, generate paths using the <a href="/en-US/Add-ons/SDK/Low-Level_APIs/io_file#join(...)"><code>join</code></a> function. Unfortunately this API does not currently provide a way to obtain an absolute base path which you could then use with <code>join</code>. For now, you need to <a href="/en-US/Add-ons/SDK/Tutorials/Chrome_Authority"><code>require("chrome")</code></a> and use the XPCOM directory service as described in <a href="/en-US/Add-ons/Code_snippets/File_I_O">this article about File I/O</a>.</p>
-
-<p>Note that if you do decide to hardcode Windows-style paths, be sure to escape backslashes in strings. For example, to specify the file at <code>C:\Users\Myk</code>, you need to use the string <code>"C:\\Users\\Myk"</code>, not <code>"C:\Users\Myk"</code>.  Read more about <a href="/en-US/docs/Web/JavaScript/Guide/Values,_variables,_and_literals#Escaping_characters">escaping characters in strings</a>.</p>
-
-<h2 id="Globals">Globals</h2>
-
-<h3 id="Functions">Functions</h3>
-
-<h4 class="addon-sdk-api-name" id="basename(path)"><code>basename(path)</code></h4>
-
-<div class="note">
-<p>The <code>path</code> parameter must be an absolute path, relative paths will cause an error.</p>
-
-<p>Use the <a href="/en-US/Add-ons/SDK/Low-Level_APIs/fs_path">fs/path</a> module for relative path support.</p>
-</div>
-
-<p>Returns the last component of the given path. For example, <code>basename("/foo/bar/baz")</code> returns <code>"baz"</code>. If the path has no components, the empty string is returned.</p>
-
-<h5 id="Parameters">Parameters</h5>
-
-<p><strong>path : string</strong><br>
- The path of a file.</p>
-
-<h5 id="Returns">Returns</h5>
-
-<p><strong>string</strong> : The last component of the given path.</p>
-
-<h4 class="addon-sdk-api-name" id="dirname(path)"><code>dirname(path)</code></h4>
-
-<p>Returns the path of the directory containing the given file. If the file is at the top of the volume, the empty string is returned.</p>
-
-<h5 id="Parameters_2">Parameters</h5>
-
-<p><strong>path : string</strong><br>
- The path of a file.</p>
-
-<h5 id="Returns_2">Returns</h5>
-
-<p><strong>string</strong> : The path of the directory containing the file.</p>
-
-<h4 class="addon-sdk-api-name" id="exists(path)"><code>exists(path)</code></h4>
-
-<p>Returns true if a file exists at the given path and false otherwise.</p>
-
-<h5 id="Parameters_3">Parameters</h5>
-
-<p><strong>path : string</strong><br>
- The path of a file.</p>
-
-<h5 id="Returns_3">Returns</h5>
-
-<p><strong>boolean</strong> : True if the file exists and false otherwise.</p>
-
-<h4 class="addon-sdk-api-name" id="join(...)"><code>join(...)</code></h4>
-
-<p>Takes a variable number of strings, joins them on the file system's path separator, and returns the result.</p>
-
-<h5 id="Parameters_4">Parameters</h5>
-
-<p><strong>... : strings</strong><br>
- A variable number of strings to join. The first string must be an absolute path.</p>
-
-<h5 id="Returns_4">Returns</h5>
-
-<p><strong>string</strong> : A single string formed by joining the strings on the file system's path separator.</p>
-
-<h4 class="addon-sdk-api-name" id="list(path)"><code>list(path)</code></h4>
-
-<p>Returns an array of file names in the given directory.</p>
-
-<h5 id="Parameters_5">Parameters</h5>
-
-<p><strong>path : string</strong><br>
- The path of the directory.</p>
-
-<h5 id="Returns_5">Returns</h5>
-
-<p><strong>array</strong> : An array of file names. Each is a basename, not a full path.</p>
-
-<h4 class="addon-sdk-api-name" id="mkpath(path)"><code>mkpath(path)</code></h4>
-
-<p>Makes a new directory named by the given path. Any subdirectories that do not exist are also created. <code>mkpath</code> can be called multiple times on the same path.</p>
-
-<h5 id="Parameters_6">Parameters</h5>
-
-<p><strong>path : string</strong><br>
- The path to create.</p>
-
-<h4 class="addon-sdk-api-name" id="open(path_mode)"><code>open(path, mode)</code></h4>
-
-<p>Returns a stream providing access to the contents of a file.</p>
-
-<h5 id="Parameters_7">Parameters</h5>
-
-<p><strong>path : string</strong><br>
- The path of the file to open.</p>
-
-<p><strong>mode : string</strong><br>
- An optional string, each character of which describes a characteristic of the returned stream.</p>
-
-<ul>
- <li>If the string contains <code>"r"</code>, the file is opened in read-only mode.</li>
- <li><code>"w"</code> opens the file in write-only mode.</li>
- <li><code>"b"</code> opens the file in binary mode. If <code>"b"</code> is not present, the file is opened in text mode, and its contents are assumed to be UTF-8.</li>
-</ul>
-
-<p>If <em><code>mode</code></em> is not given, <code>"r"</code> is assumed, and the file is opened in read-only text mode.</p>
-
-<p>Apart from these options, this API always passes the following options:  <code>CREATE_FILE</code>, <code>TRUNCATE</code> (see <a href="https://dxr.mozilla.org/mozilla-central/source/nsprpub/pr/include/prio.h#550">https://dxr.mozilla.org/mozilla-central/source/nsprpub/pr/include/prio.h#550</a>). This means that:</p>
-
-<ul>
- <li>if the file does not exist it is created</li>
- <li>if the file exists, its length is truncated to zero</li>
- <li>it is not possible to open the file in append mode.</li>
-</ul>
-
-<h5 id="Returns_6">Returns</h5>
-
-<p><strong>stream</strong> : If the file is opened in text read-only <code>mode</code>, a <code>TextReader</code> is returned, and if text write-only mode, a <code>TextWriter</code> is returned. See <a href="/en-US/Add-ons/SDK/Low-Level_APIs/io_text-streams"><code>text-streams</code></a> for information on these text stream objects. If the file is opened in binary read-only <code>mode</code>, a <code>ByteReader</code> is returned, and if binary write-only mode, a <code>ByteWriter</code> is returned. See <a href="/en-US/Add-ons/SDK/Low-Level_APIs/io_byte-streams"><code>byte-streams</code></a> for more information on these byte stream objects. Opened files should always be closed after use by calling <code>close</code> on the returned stream.</p>
-
-<h4 class="addon-sdk-api-name" id="read(path_mode)"><code>read(path, mode)</code></h4>
-
-<p>Opens a file and returns a string containing its entire contents.</p>
-
-<h5 id="Parameters_8">Parameters</h5>
-
-<p><strong>path : string</strong><br>
- The path of the file to read.</p>
-
-<p><strong>mode : string</strong><br>
- An optional string, each character of which describes a characteristic of the returned stream. If the string contains <code>"b"</code>, the contents will be returned in binary mode. If <code>"b"</code> is not present or <code>mode</code> is not given, the file contents will be returned in text mode.</p>
-
-<h5 id="Returns_7">Returns</h5>
-
-<p><strong>string</strong> : A string containing the file's entire contents.</p>
-
-<h4 class="addon-sdk-api-name" id="remove(path)"><code>remove(path)</code></h4>
-
-<p>Removes a file from the file system. To remove directories, use <code>rmdir</code>.</p>
-
-<h5 id="Parameters_9">Parameters</h5>
-
-<p><strong>path : string</strong><br>
- The path of the file to remove.</p>
-
-<h4 class="addon-sdk-api-name" id="rmdir(path)"><code>rmdir(path)</code></h4>
-
-<p>Removes a directory from the file system. If the directory is not empty, an exception is thrown.</p>
-
-<h5 id="Parameters_10">Parameters</h5>
-
-<p><strong>path : string</strong><br>
- The path of the directory to remove.</p>
-
-<h4 class="addon-sdk-api-name" id="isFile(path)"><code>isFile(path)</code></h4>
-
-<p>Returns true only if this path specifies a file.</p>
-
-<pre class="brush: js">const fileIO = require("sdk/io/file");
-
-let path = "/Users/Work/";
-let list = fileIO.list(path);
-
-for (i = 0; i &lt; list.length; i++) {
-  let item = fileIO.join(path, list[i]);
-  if (fileIO.isFile(item)) {
-    console.log(item + " is a file");
-  }
-  else {
-    console.log(item + " is a directory");
-  }
-}</pre>
-
-<h5 id="Parameters_11">Parameters</h5>
-
-<p><strong>path : string</strong><br>
- The path of the object.</p>
diff --git a/files/fr/mozilla/add-ons/sdk/low-level_apis/system_child_process/index.html b/files/fr/mozilla/add-ons/sdk/low-level_apis/system_child_process/index.html
deleted file mode 100644
index 9c315edd9f..0000000000
--- a/files/fr/mozilla/add-ons/sdk/low-level_apis/system_child_process/index.html
+++ /dev/null
@@ -1,50 +0,0 @@
----
-title: system/child_process
-slug: Mozilla/Add-ons/SDK/Low-Level_APIs/system_child_process
-translation_of: Archive/Add-ons/Add-on_SDK/Low-Level_APIs/system_child_process
----
-<div class="note">
-<p>Expérimentale</p>
-</div>
-
-<p><span class="seoSummary">Une mise en œuvre de l'API <a href="http://nodejs.org/api/child_process.html" title="http://nodejs.org/api/child_process.html"> node.js <code>child_process</code></a>.</span></p>
-
-<p>Ce module vous permet d'exécuter un programme sous-jacent dans un nouveau processus. Il émule l'API node.js <code>child_process</code>, qui n'est pas documentées séparément. Cependant, il ya quelques différences :</p>
-
-<ul>
- <li>utiliser le module <code>require("sdk/system/child_process")</code></li>
- <li><code>fork()</code> n'est pas supporté</li>
- <li><code>gid</code> et <code>uid</code> ne sont pas supportés</li>
- <li>dans node.js, <code>spawn()</code> et <code>exec()</code> hériter des variables d'environnement du processus parent, par défaut. Les versions du SDK ne le font pas: alors quand vous spécifiez une commande, vous devez passer le chemin d'accès complet de la commande ou utilisez l'option <code>env</code> pour configurer l'environnement de processus enfant .</li>
-</ul>
-
-<p>Voici un exemple qui adapte l'exemple de la documentation de node.js pour <a href="http://nodejs.org/api/child_process.html#child_process_child_process_spawn_command_args_options" title="http://nodejs.org/api/child_process.html#child_process_child_process_spawn_command_args_options"> <code>spawn()</code> </a>:</p>
-
-<pre class="brush: js">var child_process = require("sdk/system/child_process");
-
-var ls = child_process.spawn('/bin/ls', ['-lh', '/usr']);
-
-ls.stdout.on('data', function (data) {
- console.log('stdout: ' + data);
-});
-
-ls.stderr.on('data', function (data) {
- console.log('stderr: ' + data);
-});
-
-ls.on('close', function (code) {
- console.log('child process exited with code ' + code);
-});</pre>
-
-<h3 id="Utilisation_child_process_dans_les_extensions_non-jpm">Utilisation child_process dans les extensions non-jpm</h3>
-
-<p> </p>
-
-<pre>// Import SDK Stuff
-const COMMONJS_URI = 'resource://gre/modules/commonjs';
-const { require } = Cu.import(COMMONJS_URI + '/toolkit/require.js', {});
-var child_process = require('sdk/system/child_process');
-
-// Use it in the same way as in the example above</pre>
-
-<p> </p>
diff --git a/files/fr/mozilla/add-ons/sdk/low-level_apis/ui_button_action/index.html b/files/fr/mozilla/add-ons/sdk/low-level_apis/ui_button_action/index.html
deleted file mode 100644
index f018689432..0000000000
--- a/files/fr/mozilla/add-ons/sdk/low-level_apis/ui_button_action/index.html
+++ /dev/null
@@ -1,659 +0,0 @@
----
-title: ui/button/action
-slug: Mozilla/Add-ons/SDK/Low-Level_APIs/ui_button_action
-translation_of: Archive/Add-ons/Add-on_SDK/Low-Level_APIs/ui_button_action
----
-<p>{{AddonSidebar}}</p>
-
-<div class="note">Experimental</div>
-
-<p><span class="seoSummary">Ajouter un boutton dans l'interface utilisateur de Firefox. Avec ce module vous pourrez créer des bouttons contenant des icônes et répondant aux clic de la sourie.</span></p>
-
-<h2 id="Usage">Usage</h2>
-
-<h3 id="Créer_des_bouttons"><br>
- Créer des  bouttons</h3>
-
-<p>Pour créer un boutton, vous devez lui donné un identifiant (id), une icône et un libellé:</p>
-
-<pre class="brush: js">var { ActionButton } = require("sdk/ui/button/action");
-
-var button = ActionButton({
-    id: "my-button",
-    label: "my button",
-    icon: {
-      "16": "./firefox-16.png",
-      "32": "./firefox-32.png"
-    },
-    onClick: function(state) {
-        console.log("button '" + state.label + "' was clicked");
-    }
-  });</pre>
-
-<p>By default, the button appears in the Firefox toolbar:</p>
-
-<p><img alt="" src="https://mdn.mozillademos.org/files/6803/action-button-toolbar.png" style="display: block; height: 201px; margin-left: auto; margin-right: auto; width: 381px;">However, users can move it to the Firefox menu panel using the <a href="https://support.mozilla.org/en-US/kb/customize-firefox-controls-buttons-and-toolbars">toolbar customization feature</a>:</p>
-
-<p><img alt="" src="https://mdn.mozillademos.org/files/6809/action-button-menu.png" style="display: block; height: 573px; margin-left: auto; margin-right: auto; width: 381px;"></p>
-
-<h3 id="Badged_buttons">Badged buttons</h3>
-
-<div class="geckoVersionNote">
-<p>New in Firefox 36.</p>
-</div>
-
-<p>You can add a "badge" to a button using its <code>badge</code> property. This can be a number or a string, and you can update it at any time. By default the badge's color is red, but you can set your own color using the <code>badgeColor</code> property, specified as a CSS <a href="/en-US/docs/Web/CSS/color_value"><code>&lt;color&gt;</code></a> value:</p>
-
-<pre class="brush: js">var { ToggleButton } = require("sdk/ui/button/toggle");
-
-var button = ToggleButton({
-    id: "my-button1",
-    label: "my button1",
-    icon: "./icon-16.png",
-    onChange: changed,
-    badge: 0,
-    badgeColor: "#00AAAA"
-  });
-
-function changed(state) {
-  button.badge = state.badge + 1;
-  if (state.checked) {
-    button.badgeColor = "#AA00AA";
-  }
-  else {
-    button.badgeColor = "#00AAAA";
-  }
-}</pre>
-
-<p><img alt="" src="https://mdn.mozillademos.org/files/9803/badge.png" style="display: block; height: 168px; margin-left: auto; margin-right: auto; width: 384px;"></p>
-
-<h3 id="Specifying_multiple_icons">Specifying multiple icons</h3>
-
-<p>You can specify just one icon, or multiple icons in different sizes.</p>
-
-<p>If you specify multiple icons, Firefox will select the best-fitting icon based on the device screen resolution and the place the icon appears. For example, in the screenshots above, Firefox uses the small icon when the button is in the toolbar and the large icon when the button is in the menu panel. Read more about specifying icons in the reference documentation for the <a href="/en-US/Add-ons/SDK/Low-Level_APIs/ui_button_action#ActionButton(options)"><code>ActionButton</code> constructor</a>.</p>
-
-<h3 id="Responding_to_click_events">Responding to click events</h3>
-
-<p>You can respond to click events by assigning a listener to the button's <a href="/en-US/Add-ons/SDK/Low-Level_APIs/ui_button_action#click"><code>click</code></a> event. You can do this in the button's constructor, by assigning the listener to the <code>onClick</code> option. You can also add, or change, the listener afterwards:</p>
-
-<pre class="brush: js">var { ActionButton } = require("sdk/ui/button/action");
-
-var button = ActionButton({
- id: "my-button",
- label: "my button",
- icon: {
- "16": "./firefox-16.png",
- "32": "./firefox-32.png"
- },
- onClick: firstClick
- });
-
-function firstClick(state) {
- console.log("You clicked '" + state.label + "'");
- button.removeListener("click", firstClick);
- button.on("click", subsequentClicks);
-}
-
-function subsequentClicks(state) {
- console.log("You clicked '" + state.label + "' again");
-}</pre>
-
-<p>The listener is passed a <code>state</code> object that contains all the button's <a href="/en-US/Add-ons/SDK/Low-Level_APIs/ui_button_action#Properties">properties</a>.</p>
-
-<p>You can generate click events programmatically with the button's <a href="/en-US/Add-ons/SDK/Low-Level_APIs/ui_button_action#click()"><code>click()</code></a> method.</p>
-
-<h3 id="Disabling_buttons">Disabling buttons</h3>
-
-<p>You can disable a button by setting its <a href="/en-US/Add-ons/SDK/Low-Level_APIs/ui_button_action#disabled"><code>disabled</code></a> property to <code>true</code>. A disabled button will not generate click events and its icon will appear disabled:</p>
-
-<p><img alt="" src="https://mdn.mozillademos.org/files/6805/action-button-toolbar-disabled.png" style="display: block; height: 201px; margin-left: auto; margin-right: auto; width: 381px;"></p>
-
-<h3 id="Updating_state">Updating state</h3>
-
-<p>You can update all the button's <a href="/en-US/Add-ons/SDK/Low-Level_APIs/ui_button_action#Properties">properties</a> except for its <code>id</code>.</p>
-
-<p>By default, the button has global state: that is, its properties are the same across all open windows and tabs, and updating them updates the button's state across all open windows and tabs.</p>
-
-<p>You can set state to be specific to a window or tab using the button's <a href="/en-US/Add-ons/SDK/Low-Level_APIs/ui_button_action#state()"><code>state()</code></a> method. To set state like this, call <code>state()</code> with 2 parameters:</p>
-
-<ul>
- <li>the first parameter is a <a href="/en-US/Add-ons/SDK/High-Level_APIs/windows"><code>window</code></a> or <a href="/en-US/Add-ons/SDK/High-Level_APIs/tabs#Tab"><code>tab</code></a> object or as a shorthand, the string "window" for the currently active window, or the string "tab" for the currently active tab</li>
- <li>the second parameter is an object containing the state properties you wish to update.</li>
-</ul>
-
-<p>Here's an add-on with a button that disables itself when you click it, but only for the currently active window:</p>
-
-<pre class="brush: js">var { ActionButton } = require("sdk/ui/button/action");
-
-var button = ActionButton({
- id: "my-button",
- label: "my button",
- icon: {
- "16": "./firefox-16.png",
- "32": "./firefox-32.png"
- },
- onClick: disableForThisWindow
- });
-
-function disableForThisWindow(state) {
- button.state("window", {
- disabled: true
- });
-}</pre>
-
-<p>To fetch the state for a specific window or tab, call <code>state()</code>, passing in the window or tab you are interested in, and it will return the state:</p>
-
-<pre class="brush: js">var labelForActiveTab = button.state("tab").label;</pre>
-
-<p>To learn more about this, see the API documentation for <a href="/en-US/Add-ons/SDK/Low-Level_APIs/ui_button_action#state()"><code>state()</code></a>.</p>
-
-<h3 id="Destroying_buttons">Destroying buttons</h3>
-
-<p>When you've finished with a button, destroy it by calling its <a href="/en-US/Add-ons/SDK/Low-Level_APIs/ui_button_action#destroy()"><code>destroy()</code></a> method. After that, any attempts to access any of its properties or to call any of its methods will throw exceptions.</p>
-
-<h2 id="Globals">Globals</h2>
-
-<h3 id="Constructors">Constructors</h3>
-
-<h4 class="addon-sdk-api-name" id="ActionButton(options)"><code>ActionButton(options)</code></h4>
-
-<p>Creates an action button.</p>
-
-<h5 id="Parameters">Parameters</h5>
-
-<p><strong>options : object</strong><br>
- Required options:</p>
-
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">Name</th>
- <th scope="col">Type</th>
- <th scope="col"> </th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>id</td>
- <td>string</td>
- <td>
- <p>The button's ID. This is used internally to keep track of this button. The ID must be unique within your add-on.</p>
- </td>
- </tr>
- <tr>
- <td>label</td>
- <td>string</td>
- <td>
- <p>The button's human-readable label. When the button is in the toolbar, this appears in a tooltip, and when the button is in the menu, it appears underneath the button as a legend.</p>
- </td>
- </tr>
- <tr>
- <td>icon</td>
- <td>url, string, object</td>
- <td>
- <p>One or more icons for the button. You can specify this in one of three ways: </p>
-
- <ul>
- <li><strong>as a resource:// URL</strong> pointing at an icon file in your add-on's "data" directory, typically constructed using <em><code>self.data.url(iconfile)</code></em></li>
- <li><strong>as a relative path</strong>: a string in the form "./iconfile", where "iconfile" is a relative path to the icon file beginning in your add-on's "data" directory</li>
- <li><strong>as an object, or dictionary of key-value pairs</strong>. Here you can specify a range of sizes for your button's icon. Each key-value pair specifies an icon:
- <ul>
- <li>each value specifies an image file as a resource:// URL or relative path.</li>
- <li>each key must be a numeric string such as "16", or "32", which represents the size in pixels of the corresponding image.</li>
- </ul>
- </li>
- </ul>
-
- <pre class="brush: js">
-var { ActionButton } = require('sdk/ui/button/action');
-var self = require("sdk/self");
-
-var button1 = ActionButton({
-    id: "my-button1",
-    label: "my button1",
-    icon: self.data.url("firefox-16.png")
-  });
-
-var button2 = ActionButton({
-    id: "my-button2",
-    label: "my button2",
-    icon: "./firefox-16.png"
-  });
-
-var button3 = ActionButton({
-    id: "my-button3",
-    label: "my button3",
-    icon: {
-      "16" : "./firefox-16.png",
-      "32" : "./firefox-32.png",
-      "64" : "./firefox-64.png"
-    }
-  });</pre>
-
- <p>If you use the final form, Firefox will automatically choose the best-fit icon for your button, depending on the device screen resolution and where the button is in the UI. On a device with a "normal" screen resolution, the toolbar has space for 18 x 18 pixels and the menu panel has space for 32 x 32 pixels. On a high resolution screen (such as a <a href="https://en.wikipedia.org/wiki/Retina_Display">HiDPI</a> display), these are doubled to 36 x 36 and 64 x 64 pixels, respectively. So you can supply three icon files:</p>
-
- <pre class="brush: js">
-icon: {
- "16": "./addon16.png",
- "32": "./addon32.png",
- "64": "./addon64.png"
-}</pre>
-
- <p>This will look fine in both toolbar and menu panel, and for both screen resolutions. However, the icons in the toolbar will not quite fill the space available, so you can instead supply four icons:</p>
-
- <pre class="brush: js">
-icon: {
- "18": "./addon18.png", // toolbar icon non HiDPI
- "32": "./addon32.png", // menu panel icon non HiDPI
- "36": "./addon36.png", // toolbar icon HiDPI
- "64": "./addon64.png" // menu panel icon HiDPI
-}
-</pre>
- </td>
- </tr>
- </tbody>
-</table>
-
-<p>Optional options:</p>
-
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">Name</th>
- <th scope="col">Type</th>
- <th scope="col"> </th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>disabled</td>
- <td>boolean</td>
- <td>
- <p>Determines whether the button is disabled. Disabled buttons appear disabled in the UI, and do not respond to clicks. Defaults to false.</p>
- </td>
- </tr>
- <tr>
- <td>onClick</td>
- <td>function</td>
- <td>
- <p>Click handler for the button.</p>
- </td>
- </tr>
- <tr>
- <td>badge</td>
- <td>Number or String</td>
- <td>
- <div class="geckoVersionNote">
- <p>New in Firefox 36.</p>
- </div>
-
- <p><a href="/en-US/Add-ons/SDK/Low-Level_APIs/ui_button_action#Badged_buttons">Badge</a> to attach to the button.</p>
-
- <p>The badge can contain as many characters (or digits) as you like, but only the first four will be displayed.</p>
- </td>
- </tr>
- <tr>
- <td>badgeColor</td>
- <td>CSS <a href="/en-US/docs/Web/CSS/color_value">&lt;color&gt;</a> value</td>
- <td>
- <div class="geckoVersionNote">
- <p>New in Firefox 36.</p>
- </div>
-
- <p>Color for the <a href="/en-US/Add-ons/SDK/Low-Level_APIs/ui_button_action#Badged_buttons">badge</a>. If <code>badgeColor</code> is omitted and <code>badge</code> is specified, then the badge is red.</p>
- </td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="ActionButton">ActionButton</h2>
-
-<h3 id="Methods">Methods</h3>
-
-<h4 class="addon-sdk-api-name" id="click()"><code>click()</code></h4>
-
-<p>Click the button. This will cause the button to generate the <code>click</code> event:</p>
-
-<pre class="brush: js">var { ActionButton } = require('sdk/ui/button/action');
-
-var button = ActionButton({
- id: "my-button",
- label: "my button",
- icon: {
- "16": "./firefox-16.png",
- "32": "./firefox-32.png"
- },
- onClick: function(state) {
- console.log("You clicked '" + state.label + "'");
- }
-});
-
-button.click();
-</pre>
-
-<h4 class="addon-sdk-api-name" id="state()"><code>state()</code></h4>
-
-<p>Get or set the button's state for a specific window or tab.</p>
-
-<p>By default, a button's properties are global, meaning that they are the same across all open windows and tabs, and that if you update these properties, then they are updated across all windows and tabs. But sometimes you want a button attached to one window (or tab) to have a different state to a button attached to a different window (or tab). That's what <code>state()</code> is for.</p>
-
-<p>To set a button's properties for a specific window or tab, call <code>state()</code>, passing it the <a href="/en-US/Add-ons/SDK/High-Level_APIs/windows"><code>window</code></a> or <a href="/en-US/Add-ons/SDK/High-Level_APIs/tabs"><code>tab</code></a> you want the property to apply to, and the property value to set. A special shortcut allows you to pass the string "window" or "tab" to select the currently active window or tab.</p>
-
-<p>For example, if you have a button like this:</p>
-
-<pre class="brush: js">var { ActionButton } = require('sdk/ui/button/action');
-
-var button = ActionButton({
- id: "my-button",
- label: "default",
- icon: "./firefox-16.png"
-});</pre>
-
-<p>You can change its label for only the currently active window like this:</p>
-
-<pre class="brush: js">button.state("window", {
- "label" : "window-specific label"
-});</pre>
-
-<p>You can change its label for only the currently active tab like this:</p>
-
-<pre class="brush: js">button.state("tab", {
- "label" : "tab-specific label"
-});
-</pre>
-
-<p>To fetch the button state for a specific window or tab, call <code>state()</code>, passing it the window or tab you're interested in, and it will return a state object containing all the <a href="/en-US/Add-ons/SDK/Low-Level_APIs/ui_button_action#Properties">properties</a> for the button associated with that window or tab. Again. you can use the strings "window" or "tab" as shortcuts. For example, this add-on:</p>
-
-<ul>
- <li>creates a button with a default label</li>
- <li>opens a new tab</li>
- <li>sets a new label only for the new tab</li>
- <li>logs the result of accessing the global label, the window-specific label, and each of the 2 tab-specific labels</li>
-</ul>
-
-<pre class="brush: js">var { ActionButton } = require('sdk/ui/button/action');
-var tabs = require("sdk/tabs");
-
-var button = ActionButton({
-  id: "my-button",
-  label: "default label",
-  icon: "./firefox-16.png"
-});
-
-tabs.open({
-  url: "https://mozilla.org/",
-  onOpen: onNewTab
-});
-
-function onNewTab(tab) {
-  // Modify the label only for the new tab
-  button.state(tab, {
-    "label" : "tab-specific label"
-  });
-
-  // access the global label -&gt; "default label"
-  console.log(button.label);
-
-  // access the window's label -&gt; "default label"
-  console.log(button.state("window").label);
-
-  // access the first tab's label -&gt; "default label"
-  console.log(button.state(tabs[0]).label);
-
-  // access the second tab's label -&gt; "tab-specific label"
-  console.log(button.state(tabs[1]).label);
-}</pre>
-
-<p>Setting a property won't affect a more-specific property setting. For example, if you have a window with two tabs, and you set a tab-specific label, then set the window-specific label, this will not overwrite the tab-specific label:</p>
-
-<pre class="brush: js">var { ActionButton } = require('sdk/ui/button/action');
-var tabs = require("sdk/tabs");
-
-var button = ActionButton({
-  id: "my-button",
-  label: "default label",
-  icon: "./firefox-16.png"
-});
-
-tabs.open({
-  url: "https://mozilla.org/",
-  onOpen: onNewTab
-});
-
-function onNewTab(tab) {
-  // Modify the label only for the new tab
-  button.state(tab, {
-    "label" : "tab-specific label"
-  });
-
-  // Modify the label for the window
-  button.state("window", {
-    "label" : "window-specific label"
-  });
-
-  // access the global label -&gt; "default label"
-  console.log(button.label);
-
-  // access the window's label -&gt; "window-specific label"
-  console.log(button.state("window").label);
-
-  // access the first tab's label -&gt; "window-specific label"
-  console.log(button.state(tabs[0]).label);
-
-  // access the second tab's label -&gt; "tab-specific label"
-  console.log(button.state(tabs[1]).label);
-}</pre>
-
-<p>The best way to think of this is as a tree: the global state is the root, followed by the state for each window, followed by the state for each tab in a window. If a property value for a node in the tree has not been set explicitly using <code>state()</code>, then it inherits its value from the next level up. So if you have one window containing two tabs, and have set the button's <code>label</code> only for tab A, then tab B will inherit <code>label</code>'s value from the window, and changing the value for the window will implicitly change the value for tab B.</p>
-
-<p>To delete a tab- or window-specific state, assign <code>null</code> to the property. After that, the property will inherit its value from the less-specific state as before:</p>
-
-<pre class="brush: js">var { ActionButton } = require('sdk/ui/button/action');
-var tabs = require("sdk/tabs");
-
-var button = ActionButton({
- id: "my-button",
- label: "default label",
- icon: "./firefox-16.png"
-});
-
-tabs.open({
- url: "https://mozilla.org/",
- onOpen: onNewTab
-});
-
-function onNewTab(tab) {
- // Modify the label only for the new tab
- button.state(tab, {
- "label" : "tab-specific label"
- });
-
- // Modify the label for the window
- button.state("window", {
- "label" : "window-specific label"
- });
-
- // access the global label -&gt; "default label"
- console.log(button.label);
-
- // access the window's label -&gt; "window-specific label"
- console.log(button.state("window").label);
-
- // access the first tab's label -&gt; "window-specific label"
- console.log(button.state(tabs[0]).label);
-
- // access the second tab's label -&gt; "tab-specific label"
- console.log(button.state(tabs[1]).label);
-
- // Reset the tab-specific state
- button.state(tab, null);
-
- // access the second tab's label -&gt; "window-specific label"
- console.log(button.state(tabs[1]).label);
-}</pre>
-
-<p>Finally, you can pass the button itself into <code>state()</code>. This is an alternative way to set or get the global state. The reason for using this, rather than setting properties individually, is that you can define an object with the properties to set in one place, then apply it to the global state with a single line:</p>
-
-<pre class="brush: js">const defaultState = {
-  "label": "default label",
-  "icon": "./default.png",
-}
-
-const differentState = {
-  "label": "different label",
-  "icon": "./different.png",
-}
-
-var { ActionButton } = require("sdk/ui/button/action");
-
-var button = ActionButton({
-    id: "default-label",
-    label: "default label",
-    icon: "./default.png",
-    onClick: function(state) {
-      if (button.label == "default label") {
-        button.state(button, differentState);
-      }
-      else {
-        button.state(button, defaultState);
-      }
-      console.log(button.state(button).label);
-      console.log(button.state(button).icon);
-    }
-  });
-</pre>
-
-<h5 id="Parameters_2">Parameters</h5>
-
-<p><strong>target : button, tab, window, string</strong></p>
-
-<ul>
- <li>To set or get the global state, this needs to be the <code>button</code> instance.</li>
- <li>To get or set window-specific state, this needs to be the <a href="/en-US/Add-ons/SDK/High-Level_APIs/windows"><code>window</code></a> object for which you wish to set a specific state, or the string "window" to select the currently active window.</li>
- <li>To get or set tab-specific state this needs to be the <a href="/en-US/Add-ons/SDK/High-Level_APIs/tabs"><code>tab</code></a> object for which you wish to set a specific state, or the string "tab" to select the currently active tab.</li>
-</ul>
-
-<p><strong>state : object, null</strong><br>
- Include this parameter only if you are setting state. It is an object containing all the properties you wish to set. For example:</p>
-
-<pre class="brush: js">button.state("tab", {
- "label" : "tab-specific label",
- "icon": "./tab-specific-icon.ico"
-});</pre>
-
-<p>To reset state, pass null:</p>
-
-<pre class="brush: js">button.state("tab", null);</pre>
-
-<h5 id="Returns">Returns</h5>
-
-<p><strong>state</strong> : if you have passed the second <code>state</code> argument to make this function a setter, it returns <code>undefined</code>. Otherwise, it functions as a getter and returns the button's state for the specified object. This logs the state for the button associated with the currently active tab:</p>
-
-<pre class="brush: js">console.log(button.state("tab"));</pre>
-
-<p>This object represents a snapshot of the state at the time <code>state()</code> is called. It is not kept up to date with changes made to the button:</p>
-
-<pre class="brush: js">button.label = "foo";
-var state = button.state(button);
-button.label = "bar";
-console.log(state.label) // foo</pre>
-
-<h4 class="addon-sdk-api-name" id="on()"><code>on()</code></h4>
-
-<p>Add a listener to an event emitted by the button. The button only emits one type of event, <code><a href="/en-US/Add-ons/SDK/Low-Level_APIs/ui_button_action#click">click</a></code>:</p>
-
-<pre class="brush: js">button.on("click", handleClick)
-
-function handleClick(state) {
- console.log("button '" + state.label + "' was clicked");
-}</pre>
-
-<h5 id="Parameters_3">Parameters</h5>
-
-<p><strong>event : string</strong><br>
- The event to listen for. Action buttons only emit one type of event, "<a href="/en-US/Add-ons/SDK/Low-Level_APIs/ui_button_action#click"><code>click</code></a>".</p>
-
-<p><strong>listener : function</strong><br>
- Function that will be called on click.</p>
-
-<h4 class="addon-sdk-api-name" id="once()"><code>once()</code></h4>
-
-<p>Assign a listener to the first occurrence only of an event emitted by the button. The button only emits one type of event, <code><a href="/en-US/Add-ons/SDK/Low-Level_APIs/ui_button_action#click">click</a></code>. The listener is automatically removed after the first time the event is emitted.</p>
-
-<h5 id="Parameters_4">Parameters</h5>
-
-<p><strong>event : string</strong><br>
- The event to listen for. Action buttons only emit one type of event, "<a href="/en-US/Add-ons/SDK/Low-Level_APIs/ui_button_action#click"><code>click</code></a>".</p>
-
-<p><strong>listener : function</strong><br>
- Function that will be called on click.</p>
-
-<h4 class="addon-sdk-api-name" id="removeListener()"><code>removeListener()</code></h4>
-
-<p>Removes an event listener. For example, this code is equivalent to <a href="/en-US/Add-ons/SDK/Low-Level_APIs/ui_button_action#once()"><code>once()</code></a>:</p>
-
-<pre class="brush: js">button.on("click", handleClick)
-
-function handleClick(state) {
- console.log("button '" + state.label + "' was clicked");
- button.removeListener("click", handleClick);
-} </pre>
-
-<h5 id="Parameters_5">Parameters</h5>
-
-<p><strong>event : string</strong><br>
- The event to listener is listening for. Action buttons only emit one type of event, "<a href="/en-US/Add-ons/SDK/Low-Level_APIs/ui_button_action#click"><code>click</code></a>".</p>
-
-<p><strong>listener : function</strong><br>
- The listener to remove.</p>
-
-<h4 class="addon-sdk-api-name" id="destroy()"><code>destroy()</code></h4>
-
-<p>Destroy the button. After calling this function, the button will no longer appear in the UI, and accessing any of its properties or methods will throw an error.</p>
-
-<h3 id="Properties">Properties</h3>
-
-<h4 class="addon-sdk-api-name" id="id"><code>id</code></h4>
-
-<p>The button's unique ID. This is read-only.</p>
-
-<h4 class="addon-sdk-api-name" id="label"><code>label</code></h4>
-
-<p>The button's label.</p>
-
-<h4 class="addon-sdk-api-name" id="icon"><code>icon</code></h4>
-
-<p>The button's icon or icons, as a URL, relative path, or object containing a set of key-value pairs.</p>
-
-<h4 class="addon-sdk-api-name" id="disabled"><code>disabled</code></h4>
-
-<p>Boolean property indicating whether or not the button is disabled.</p>
-
-<h4 class="addon-sdk-api-name" id="badge"><code>badge</code></h4>
-
-<div class="geckoVersionNote">
-<p>New in Firefox 36.</p>
-</div>
-
-<p>Value to attach to the button as a <a href="/en-US/Add-ons/SDK/Low-Level_APIs/ui_button_action#Badged_buttons">badge</a>. May be a number or a string.</p>
-
-<p>The badge can contain as many characters (or digits) as you like, but only the first four will be displayed.</p>
-
-<h4 class="addon-sdk-api-name" id="badgeColor"><code>badgeColor</code></h4>
-
-<div class="geckoVersionNote">
-<p>New in Firefox 36.</p>
-</div>
-
-<p>Color for the <a href="/en-US/Add-ons/SDK/Low-Level_APIs/ui_button_action#Badged_buttons">badge</a>, specified as a CSS <a href="/en-US/docs/Web/CSS/color_value">&lt;color&gt;</a> value.</p>
-
-<h3 id="Events">Events</h3>
-
-<h4 class="addon-sdk-api-name" id="click"><code>click</code></h4>
-
-<p>This event is emitted when a user clicks the button or your add-on calls the button's <code>click()</code> method.</p>
-
-<h5 id="Arguments">Arguments</h5>
-
-<p><strong>state</strong> : The button's state. This contains all the button's <a href="/en-US/Add-ons/SDK/Low-Level_APIs/ui_button_action#Properties">properties</a>.</p>
diff --git a/files/fr/mozilla/add-ons/sdk/tools/cfx_to_jpm/index.html b/files/fr/mozilla/add-ons/sdk/tools/cfx_to_jpm/index.html
deleted file mode 100644
index e8b50f5006..0000000000
--- a/files/fr/mozilla/add-ons/sdk/tools/cfx_to_jpm/index.html
+++ /dev/null
@@ -1,192 +0,0 @@
----
-title: De cfx à jpm
-slug: Mozilla/Add-ons/SDK/Tools/cfx_to_jpm
-translation_of: Archive/Add-ons/Add-on_SDK/Tools/cfx_to_jpm
----
-<div class="note">
-<p>L'Add-on SDK inclut un outil de ligne de commande que vous utilisez pour initialiser, exécuter, tester, et empaqueter des add-ons. L'outil actuel est appelé jpm, il est basé sur <a href="http://nodejs.org/" title="http://nodejs.org/"> Node.js </a>. Il remplace l'outil cfx.</p>
-
-<p>Vous pouvez utiliser jpm à partir de Firefox 38.</p>
-
-<p>Cet article met en évidence les principales différences entre cfx et jpm.</p>
-</div>
-
-<p><span class="seoSummary">Un guide pour travailler avec jpm si vous êtes déjà familier avec cfx.</span></p>
-
-<h2 id="Installation">Installation</h2>
-
-<p>cfx est basée sur Python et est distribué comme un fichier zip. jpm est baser sur Node.js qui est <a href="https://www.npmjs.org/package/jpm" title="https://www.npmjs.org/package/jpm"> distribué par npm </a>. Donc, pour jpm vous n'avez pas besoin de Python, mais vous avez besoin npm.</p>
-
-<p>Pour obtenir les mises de cfx vous deviez télécharger et extraire un fichier zip, tandis que pour obtenir la nouvelle version de jpm, utilisez <a href="https://docs.npmjs.com/cli/update" title="https://www.npmjs.org/doc/api/npm-update.html"> <code>npm update</code> </a>.</p>
-
-<p>Pour obtenir des instructions d'installation de jmp, consultez la section de l' <a href="/fr/docs/Mozilla/Add-ons/SDK/Tools/jpm#Installation" title="/fr/Add-ons/SDK/Tools/jpm#Installation">Installation</a> dans la référentiel de jmp.</p>
-
-<h2 id="Activation">Activation</h2>
-
-<p>Vous devez appeler <code>cfx activate</code> avant de pouvoir utiliser cfx, et cela ne fonctionne que dans le shell de commande de courant:. Si vous ouvrez un nouveau shell, vous devez appeler <code>activate</code> de nouveau</p>
-
-<p>Avec jpm, pas d'activation. Une fois qu'il est installé, vous pouvez simplement l'utiliser.</p>
-
-<h2 id="Incompatibilités">Incompatibilités</h2>
-
-<p>Dans la plupart cas, les add-ons créés avec cfx fonctionnent bien avec jpm. Cependant, il y a quelques différences que vous devez connaitre.</p>
-
-<h3 id="Add-on_ID">Add-on ID</h3>
-
-<p>L'ID de add-on est l'identifiant unique de votre add-on. Dans un xpi, c'est le<a href="https://developer.mozilla.org/fr/docs/Mozilla/Add-ons/Install_Manifests#id" title="https://developer.mozilla.org/en/install.rdf#id"> champ ID dans le fichier Manifest d'instalation de l'add-on</a> (install.rdf).</p>
-
-<p>L'identifiant est utilisé à des fins variées. Par exemple: <a href="http://addons.mozilla.org" title="http://addons.mozilla.org">addons.mozilla.org</a> l'utilise pour distinguer entre les nouvelles add-ons et les mises à jour d'add-ons existantes, et le module <a href="https://developer.mozilla.org/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/simple-storage" title="https://developer.mozilla.org/fr/Add-ons/SDK/High-Level_APIs/simple-storage"><code>simple-storage</code></a> l'utilise pour déterminer lesquelles des données stockées appartiennent à tel add-on.</p>
-
-<h4 id="Manipulation_avec_l'ID_cfx">Manipulation avec l'ID cfx</h4>
-
-<p>Lorsque vous utilisez cfx, l'ID est tiré du <a href="/fr/docs/Mozilla/Add-ons/SDK/Tools/package_json#id" title="/fr/Add-ons/SDK/Tools/package_json#id">champ <code>id</code> dans le fichier de package.json de l'add-on</a>. Vous pouvez éditer ce fichier pour créer votre propre identité, mais si vous ne le faites pas, cfx va le générer pour vous, ce qui va ressembler à quelque chose comme "<code>jid1-F3BoogbjQJE67A</code>". <a href="https://developer.mozilla.org/fr/docs/Mozilla/Add-ons/Install_Manifests#id" title="https://developer.mozilla.org/fr/Add-ons/Install_Manifests#id">L'ID Add-on doit être l'un des deux types suivant </a>: un GUID ou une chaîne qui comprend un symbole <code>"@"</code>. Le SDK ne prévoit que le dernier format, et si l'ID dans package.json ne contient pas de "@", cfx xpi ajouter "<code>@jetpack</code>" dans le champ de package.json, ce qui transforme l'ID de l'add-on.</p>
-
-<p>Donc: si vous n'avez jamais manipulé l'ID lors de l'utilisation cfx, alors la valeur dans le package.json de votre add-on sera quelque chose comme "<code>jid1-F3BoogbjQJE67A</code>", et l'ID correspondant dans la install.rdf sera "<code>jid1-F3BoogbjQJE67A@jetpack</code>".</p>
-
-<h4 id="Manipulation_d'ID_avec_jpm">Manipulation d'ID avec jpm</h4>
-
-<p>Lorsque vous créez un xpi avec <code>jpm xpi</code>:</p>
-
-<ul>
- <li>si le package.json ne comprend pas un champ <code>id</code>, alor l'ID dans l'install.rdf à la valeur de la <a href="/fr/docs/Mozilla/Add-ons/SDK/Tools/package_json#name" title="/fr/Add-ons/SDK/Tools/package_json#name"> champ <code>name</code></a> Préfixé par "@".</li>
- <li>si le package.json inclut un champ <code>id</code>, et il contient «@», alors l'écriture est la même dans install.rdf.</li>
- <li>si le package.json inclut un champ <code>id</code>, sans "@", jpm XPI soulève une erreur et le xpi ne sera pas construit.</li>
-</ul>
-
-<h4 id="Ce_que_vous_devez_faire">Ce que vous devez faire</h4>
-
-<p>Tout cela signifie que: <em> si votre package.json contient un champ id, et sa valeur ne contient pas «@», alors vous devez ajouter "@jetpack» lors du passage à jpm </em>.</p>
-
-<p>Si vous faites cela, l'ID de l'add-on sera la même que l'id utilisée avec cfx.</p>
-
-<h3 id="Point_d'entrée">Point d'entrée</h3>
-
-<p>Le point d'entrée de l'add-on est le fichier qui est exécutée lorsque l'add-on a besoin de s'initialiser: par exemple, au démarrage de Firefox, ou lorsque l'add-on est installé, activé, ou mis à niveau. Avec cfx, la valeur par défaut à "lib/main.js", même si elle peut être réglée sur un autre fichier en utilisant le <code>main</code> champ dans le package.json .</p>
-
-<p>Dans jpm, le point d'entrée par défaut est "index.js". Donc, lors de la commutation vers jpm:</p>
-
-<ul>
- <li>renommez vos "main.js" en "index.js" et déplacez les de "lib" vers le plus haut niveau</li>
- <li>ou ajouter un champ <code>main</code> dans package.json avec pour valeur "lib/main.js".</li>
-</ul>
-
-<h3 id="Chargement_des_modules">Chargement des modules</h3>
-
-<p>L'outil jpm utilise la même logique que <a href="http://nodejs.org/api/modules.html#modules_all_together" title="http://nodejs.org/api/modules.html#modules_all_together"> Node.js </a> pour déterminer comment résoudre l'argument <code>require()</code>. Dans la plupart des cas, c'est la même <a href="/fr/docs/Mozilla/Add-ons/SDK/Guides/Module_structure_of_the_SDK" title="/fr/Add-ons/SDK/Guides/Module_structure_of_the_SDK">logique que cfx</a>. Cependant, il existe quelques différences, parce certaines compatibilités ont été retirées.</p>
-
-<h4 id="Requérir_à_des_modules_locaux">Requérir à des modules locaux</h4>
-
-<p>Supposons que votre add-on est <a href="/fr/docs/Mozilla/Add-ons/SDK/Tutorials/Creating_Reusable_Modules" title="/fr/Add-ons/SDK/Tutorials/Creating_Reusable_Modules"> structuré en modules séparés </a>:</p>
-
-<ul class="directory-tree">
- <li>my-addon
- <ul>
- <li>lib
- <ul>
- <li>main.js</li>
- <li>utils.js</li>
- </ul>
- </li>
- </ul>
- </li>
-</ul>
-
-<p>Lorsque vous voulez utiliser un module "utils.js" dans "main.js", vous devez utiliser un chemin relatif à "main.js", et le préfixer avec "./" pour indiquer que c'est un chemin relatif:</p>
-
-<pre class="brush: js">var utils = require("./utils");</pre>
-
-<p>Cependant, avec cfx vous êtes également autorisé à omettre le "./":</p>
-
-<pre class="brush: js">var utils = require("utils"); // this will not work with jpm!</pre>
-
-<p>Cette seconde forme ne fonctionnera pas avec jpm.</p>
-
-<h4 id="Requérir_des_modules_de_code_de_test">Requérir des modules de code de test</h4>
-
-<p>Similarly, suppose you've written some tests for your add-on:</p>
-
-<ul class="directory-tree">
- <li>my-addon
- <ul>
- <li>lib
- <ul>
- <li>my-addon.js</li>
- </ul>
- </li>
- <li>test
- <ul>
- <li>test-my-addon-js</li>
- </ul>
- </li>
- </ul>
- </li>
-</ul>
-
-<p>Avec cfx, le code de "test-my-addon.js" peut importer "my-addon.js" en utilisant une déclaration de ce genre:</p>
-
-<pre class="brush: js">var my_addon = require("my-addon"); // ceci ne fonctionne pas avec jpm!</pre>
-
-<p>Avec jpm, vous devez spécifier le chemin vers «my-addon" explicitement, en utilisant un chemin relatif:</p>
-
-<pre class="brush: js">var my_addon = require("../lib/my-addon");
-</pre>
-
-<h3 id="Modules_tiers">Modules tiers</h3>
-
-<p>Le SDK a toujours soutenu les modules tiers: les développeurs peuvent écrire leurs propres modules qui étendent les API du SDK ou ajouter de nouvelles API, et d'autres add-on peuvent faire usage de ces modules de la même manière qu'ils utilisent les modules intégré au SDK.</p>
-
-<p>Dans jpm cette façon <a href="/fr/docs/Mozilla/Add-ons/SDK/Tutorials/Add_a_Menu_Item_to_Firefox" title="/fr/Add-ons/SDK/Tutorials/Add_a_Menu_Item_to_Firefox"> d'utiliser des modules tiers </a> ne fonctionne plus. Au lieu de cela, jpm n'accepte que les modules tiers hébergés sur la npm, vous pouvez les utiliser en les installant à partir de la npm dans l'arbre de répertoire de votre add-on. Voir le tutoriel<a href="/fr/docs/Mozilla/Add-ons/SDK/Tutorials/Using_third-party_modules_(jpm)" title="/fr/Add-ons/SDK/Tutorials/Using_third-party_modules_(jpm)"> utilisant des modules tiers avec jpm</a>.</p>
-
-<h2 id="Les_commandes_et_les_options_de_commande">Les commandes et les options de commande</h2>
-
-<h3 id="Commandes_définitivement_retiré">Commandes définitivement retiré</h3>
-
-<p>jpm ne soutient plus les <a href="/fr/docs/Mozilla/Add-ons/SDK/Tools/cfx#Internal_Commands" title="/fr/Add-ons/SDK/Tools/cfx#Internal_Commands">commandes cfx "interne"</a>.</p>
-
-<h3 id="Options_définitivement_retiré">Options définitivement retiré</h3>
-
-<p>jpm ne soutient plus :</p>
-
-<pre>--extra-packages
---use-config
---package-path
---pkgdir
---no-strip-xpi
---harness-option
---manifest-overload
---output-file
---templatedir
---keydir
---profiledir
---overload-modules
---static-args
---app
---no-run
---addons
---e10s
---logfile
---dependencies
---test-runner-pkg</pre>
-
-<p>Au lieu de <code>--profiledir</code> et de <code>--overload-modules</code>, utilisez <code>--profile</code> et <code>--overload</code></p>
-
-<h2 id="Champs_Package.json">Champs Package.json</h2>
-
-<p>Beaucoup de champs package.json <a href="/fr/docs/Mozilla/Add-ons/SDK/Tools/package_json" title="/fr/Add-ons/SDK/Tools/package_json"> </a> sont des commandes implicites de cfx. Dans jpm, nous avons supprimé le soutien de certains de ces domaines, et travaillons toujours sur le soutien des autres.</p>
-
-<h3 id="Champs_définitivement_retiré">Champs définitivement retiré</h3>
-
-<ul>
- <li><a href="/fr/docs/Mozilla/Add-ons/SDK/Tools/package_json#data">data</a></li>
- <li><a href="/fr/docs/Mozilla/Add-ons/SDK/Tools/package_json#fullName">fullName</a> - use <a href="/fr/docs/Mozilla/Add-ons/SDK/Tools/package_json#title">title</a> instead</li>
- <li><a href="/fr/docs/Mozilla/Add-ons/SDK/Tools/package_json#lib">lib</a></li>
- <li><a href="/fr/docs/Mozilla/Add-ons/SDK/Tools/package_json#packages">packages</a></li>
- <li><a href="/fr/docs/Mozilla/Add-ons/SDK/Tools/package_json#tests">tests</a></li>
- <li><a href="/fr/docs/Mozilla/Add-ons/SDK/Tools/package_json#icon64">icon64</a></li>
-</ul>
-
-<h2 id="Echappement_dans_Package.json">Echappement dans Package.json</h2>
-
-<p>Où avec cfx vous auriez dû échapper avec 2 voir 3 barres obliques inverses (\), jpm n'en a besoin que d'une.</p>
-
-<p> </p>
diff --git a/files/fr/mozilla/add-ons/sdk/tools/index.html b/files/fr/mozilla/add-ons/sdk/tools/index.html
deleted file mode 100644
index 89f1db963b..0000000000
--- a/files/fr/mozilla/add-ons/sdk/tools/index.html
+++ /dev/null
@@ -1,13 +0,0 @@
----
-title: Tools
-slug: Mozilla/Add-ons/SDK/Tools
-tags:
- - Add-on SDK
- - CFX
- - JPM
- - TopicStub
-translation_of: Archive/Add-ons/Add-on_SDK/Tools
----
-<p>Les articles répertoriés ici fournissent une référence pour les outils du SDK:</p>
-
-<p>{{ LandingPageListSubpages ("/en-US/Add-ons/SDK/Tools", 7) }}</p>
diff --git a/files/fr/mozilla/add-ons/sdk/tools/jpm/index.html b/files/fr/mozilla/add-ons/sdk/tools/jpm/index.html
deleted file mode 100644
index c079f3b0b5..0000000000
--- a/files/fr/mozilla/add-ons/sdk/tools/jpm/index.html
+++ /dev/null
@@ -1,600 +0,0 @@
----
-title: jpm
-slug: Mozilla/Add-ons/SDK/Tools/jpm
-translation_of: Archive/Add-ons/Add-on_SDK/Tools/jpm
----
-<div class="note">
-<p>Vous pouvez utiliser <code>jpm</code> pour Firefox 38 et au-delà.</p>
-
-<p>Cet article est la référence pour jpm.</p>
-</div>
-
-<p><span class="seoSummary">The Node-based replacement for <a href="/en-US/Add-ons/SDK/Tools/cfx">cfx</a>. Enables you to test, run, and package add-ons.</span></p>
-
-<p>Voir aussi le <a href="/fr/docs/Mozilla/Add-ons/SDK/Tutorials/Getting_Started_%28jpm%29" title="/fr/Add-ons/SDK/Tutorials/Getting_Started_%28jpm%29">tutoriel jpm</a> pour débuter.</p>
-
-<p>jpm usage is:</p>
-
-<pre class="brush: bash">jpm [command] [options]
-</pre>
-
-<p>jpm supports the following global options:</p>
-
-<pre class="brush: bash">-h, --help - show a help message and exit
--V, --version - print the jpm version number
-</pre>
-
-<h2 id="Installation">Installation</h2>
-
-<p>jpm is distributed using the node package manager <a class="external external-icon" href="https://www.npmjs.org/package/jpm">npm</a>, so to get jpm you need to have npm installed, if you haven't already. npm is included in Node.js. To install npm, you can either visit <a class="external external-icon" href="http://nodejs.org/">nodejs.org</a> and download the latest binary or if you have a package manager like APT installed on your system, you might want to use this package manager to install npm. For example, if you are using an Ubuntu or Debian operating system, execute <code>sudo apt-get install nodejs </code>followed by <code>sudo apt-get install npm </code>in a terminal window.</p>
-
-<p>After that you can install jpm just as you would any other npm package:</p>
-
-<pre><code>npm install jpm --global</code></pre>
-
-<p>Depending on your setup, you might need to run this as an administrator:</p>
-
-<pre class="brush: bash"><code>sudo npm install jpm --global</code></pre>
-
-<p>Or, you can install jpm using git:</p>
-
-<pre>git clone https://github.com/mozilla-jetpack/jpm.git
-cd jpm
-npm install
-npm link
-</pre>
-
-<p><span style="line-height: 1.5;">À l'invite de commande, tapez:</span></p>
-
-<pre class="brush: bash"><code>jpm</code></pre>
-
-<p>You should see a screen summarizing the available jpm commands. Note that unlike cfx, jpm is available in every command prompt you start, as long as you installed it with the <code>--global</code> flag.</p>
-
-<p>If you get an error message saying  <em>/usr/bin/env: node: No such file or directory</em> and you have installed nodejs through a package manager, nodejs may have been installed in the wrong directory. A <a href="http://stackoverflow.com/questions/20886217/browserify-error-usr-bin-env-node-no-such-file-or-directory">corresponding topic at stackoverflow.org</a> might help you to solve this problem. Basically, you can solve it by creating a symlink to the node:</p>
-
-<pre class="lang-js prettyprint prettyprinted"><code><span class="pln">sudo ln </span><span class="pun">-</span><span class="pln">s </span><span class="str">"$(which nodejs)"</span><span class="pln"> </span><span class="pun">/</span><span class="pln">usr</span><span class="pun">/</span><span class="pln">bin</span><span class="pun">/</span><span class="pln">node</span></code></pre>
-
-<h3 id="Problems">Problems?</h3>
-
-<p>If you don't see this, ask for help. SDK users and project team members discuss problems and proposals on the <a class="external external-icon" href="http://groups.google.com/group/mozilla-labs-jetpack/topics">project mailing list</a>. Someone else may have had the same problem you do, so try searching the list. You're welcome to post a question, too. You can also chat with other SDK users in <a class="external external-icon" href="http://mibbit.com/?channel=%23jetpack&amp;server=irc.mozilla.org">#jetpack</a> on <a class="external external-icon" href="http://irc.mozilla.org/">Mozilla's IRC network</a>.</p>
-
-<h2 id="Command_reference">Command reference</h2>
-
-<p>There are six jpm commands:</p>
-
-<table class="fullwidth-table standard-table">
- <tbody>
- <tr>
- <td style="width: 20%;"><a href="/en-US/Add-ons/SDK/Tools/jpm#jpm_init"><code>jpm init</code></a></td>
- <td>Create a skeleton add-on as a starting point for your own add-on.</td>
- </tr>
- <tr>
- <td><a href="/en-US/Add-ons/SDK/Tools/jpm#jpm_run"><code>jpm run</code></a></td>
- <td>Launch an instance of Firefox with your add-on installed.</td>
- </tr>
- <tr>
- <td><a href="/en-US/Add-ons/SDK/Tools/jpm#jpm_test"><code>jpm test</code></a></td>
- <td>Runs your add-on's unit tests.</td>
- </tr>
- <tr>
- <td><a href="/en-US/Add-ons/SDK/Tools/jpm#jpm_xpi"><code>jpm xpi</code></a></td>
- <td>Package your add-on as an <a href="https://developer.mozilla.org/en/XPI">XPI</a> file, which is the install file format for Firefox add-ons.</td>
- </tr>
- <tr>
- <td><a href="/en-US/Add-ons/SDK/Tools/jpm#jpm_post"><code>jpm post</code></a></td>
- <td>Package your add-on as an <a href="https://developer.mozilla.org/en/XPI">XPI</a> file, then post it to some url.</td>
- </tr>
- <tr>
- <td><a href="/en-US/Add-ons/SDK/Tools/jpm#jpm_watchpost"><code>jpm watchpost</code></a></td>
- <td>Package your add-on as an <a href="https://developer.mozilla.org/en/XPI">XPI</a> file whenever there is a file changed, and post that to some url.</td>
- </tr>
- <tr>
- <td><a href="/en-US/Add-ons/SDK/Tools/jpm#jpm_sign"><code>jpm sign</code></a></td>
- <td>Package your add-on as an <a href="https://developer.mozilla.org/en/XPI">XPI</a> file, then retrieve a new XPI signed by Mozilla.</td>
- </tr>
- </tbody>
-</table>
-
-<h3 id="jpm_init">jpm init</h3>
-
-<p>This command initializes a new add-on from scratch.</p>
-
-<p>Create a new directory, change into it, and run <code>jpm init</code>.</p>
-
-<pre class="brush: bash">mkdir my-addon
-cd my-addon
-jpm init</pre>
-
-<p>You'll then be asked to supply some information about your add-on: this will be used to create your add-on's <a href="https://developer.mozilla.org/en-US/Add-ons/SDK/Tools/package_json">package.json</a> file.</p>
-
-<ul>
- <li><a href="https://developer.mozilla.org/en-US/Add-ons/SDK/Tools/package_json#title">title</a></li>
- <li><a href="https://developer.mozilla.org/en-US/Add-ons/SDK/Tools/package_json#name">name</a>: this defaults to the name of the directory in which you are running <code>jpm init</code>. Unless an <a href="https://developer.mozilla.org/en-US/Add-ons/SDK/Tools/package_json#id"><code>id</code></a> field is present in package.json, jpm will prepend "@" to <code>name</code> and use the result as the <a href="https://developer.mozilla.org/en-US/Add-ons/Install_Manifests#id"><code>id</code> field in the add-on's install manifest</a>.</li>
- <li><a href="https://developer.mozilla.org/en-US/Add-ons/SDK/Tools/package_json#version">version</a></li>
- <li><a href="https://developer.mozilla.org/en-US/Add-ons/SDK/Tools/package_json#description">description</a></li>
- <li><a href="https://developer.mozilla.org/en-US/Add-ons/SDK/Tools/package_json#main">entry point</a> (which maps to "main" in package.json)</li>
- <li><a href="https://developer.mozilla.org/en-US/Add-ons/SDK/Tools/package_json#author">author</a></li>
- <li><a href="https://developer.mozilla.org/en-US/Add-ons/SDK/Tools/package_json#engines">engines</a> (supported applications)</li>
- <li><a href="https://developer.mozilla.org/en-US/Add-ons/SDK/Tools/package_json#license">license</a></li>
-</ul>
-
-<p>Most of these fields have a default, which is shown in brackets after the question. If you just press Enter, your add-on will get the default value.</p>
-
-<p>Once you've supplied a value or accepted the default for these properties, you'll be shown the complete contents of "package.json" and asked to accept it.</p>
-
-<p>Then jpm will create an skeleton add-on, as a starting point for your own add-on development, with the following file structure:</p>
-
-<ul class="directory-tree">
- <li>my-addon
- <ul>
- <li>index.js</li>
- <li>package.json</li>
- <li>test
- <ul>
- <li>test-index.js</li>
- </ul>
- </li>
- </ul>
- </li>
-</ul>
-
-<h3 id="jpm_run">jpm run</h3>
-
-<p>This command runs a new instance of Firefox with the add-on installed:</p>
-
-<pre class="brush: bash">jpm run</pre>
-
-<p><code>jpm run</code> accepts the following options:</p>
-
-<table class="fullwidth-table standard-table">
- <tbody>
- <tr>
- <td style="width: 30%;"><code>-b --binary BINARY</code></td>
- <td>
- <p>Use the version of Firefox specified in BINARY. BINARY may be specified as a full path or as a path relative to the current directory.</p>
-
- <pre class="brush: bash">
-jpm run -b /path/to/Firefox/Nightly</pre>
- See <a href="/en-US/Add-ons/SDK/Tools/jpm#Selecting_a_browser_version">Selecting a browser version</a>.</td>
- </tr>
- <tr>
- <td><code>--binary-args CMDARGS</code></td>
- <td>
- <p>Pass <a href="/en-US/docs/Mozilla/Command_Line_Options">extra arguments</a> to Firefox.</p>
-
- <p>For example, to pass the <code>-jsconsole</code> argument to Firefox, which will launch the <a href="/en-US/docs/Tools/Browser_Console">Browser Console</a>, try the following:</p>
-
- <pre class="brush: bash">
-jpm run --binary-args -jsconsole</pre>
-
- <p>To pass multiple arguments, or arguments containing spaces, quote them:</p>
-
- <pre class="brush: bash">
-jpm run --binary-args '-url mzl.la -jsconsole'</pre>
- </td>
- </tr>
- <tr>
- <td><code>--debug</code></td>
- <td>Run the <a href="/en-US/Add-ons/Add-on_Debugger">add-on debugger</a> attached to the add-on.</td>
- </tr>
- <tr>
- <td><code>-o --overload PATH</code></td>
- <td>
- <p>Rather than use the SDK modules built into Firefox, use the modules found at PATH. If <code>-o</code> is specified and PATH is omitted, jpm will look for the JETPACK_ROOT environment variable and use its value as the path.</p>
-
- <p>See <a href="/en-US/Add-ons/SDK/Tools/jpm#Overloading_the_built-in_modules">Overloading the built-in modules</a> for more information.</p>
- </td>
- </tr>
- <tr>
- <td><code>-p --profile=<code> PROFILE</code></code></td>
- <td>
- <p>By default, jpm uses a clean temporary Firefox <a href="http://support.mozilla.com/en-US/kb/profiles">profile</a> each time you call jpm run. Use the <code>--profile</code> option to instruct jpm to launch Firefox with an existing profile.</p>
-
- <p>The PROFILE value may be a profile name or the path to the profile.</p>
-
- <p>See <a href="/en-US/Add-ons/SDK/Tools/jpm#Using_profiles">Using profiles</a> for more information.</p>
- </td>
- </tr>
- <tr>
- <td><code>-v --verbose</code></td>
- <td>Verbose operation.</td>
- </tr>
- <tr>
- <td><code>--no-copy</code></td>
- <td>
- <div class="warning">Use with caution because <code>jpm run|test</code> changes many preferences, never use with your main profile.</div>
-
- <div class="note">This only applies when <code>--profile</code> is used.</div>
- Disables the copying of the profile used, which allows one to reuse a profile.</td>
- <td> </td>
- </tr>
- </tbody>
-</table>
-
-<h3 id="jpm_test">jpm test</h3>
-
-<p>Use this command to run an add-on's unit tests. It will:</p>
-
-<ul>
- <li>look for a directory called "test" under the add-on's root</li>
- <li>open every file in there whose name starts with "test-" (note the hyphen after "test" in the filename. <code>jpm test</code> will include a file called "test-myCode.js", but will exclude files called "test_myCode.js" or "testMyCode.js")</li>
- <li>call every function exported from that file whose name starts with "test"</li>
-</ul>
-
-<pre class="brush: bash">jpm test
-</pre>
-
-<p>See the <a href="https://developer.mozilla.org/en-US/Add-ons/SDK/Tutorials/Unit_testing">tutorial on unit testing</a> and the <a href="https://developer.mozilla.org/en-US/Add-ons/SDK/Low-Level_APIs/test_assert">reference documentation for the <code>assert</code> module</a> for more details on this.</p>
-
-<p><code>jpm test</code> accepts the following options:</p>
-
-<table class="fullwidth-table standard-table">
- <tbody>
- <tr>
- <td><code>-b --binary BINARY</code></td>
- <td>
- <p>Use the version of Firefox specified in BINARY. BINARY may be specified as a full path or as a path relative to the current directory.</p>
-
- <pre class="brush: bash">
-jpm test -b /path/to/Firefox/Nightly</pre>
-
- <p>See <a href="/en-US/Add-ons/SDK/Tools/jpm#Selecting_a_browser_version">Selecting a browser version</a>.</p>
- </td>
- </tr>
- <tr>
- <td><code>--binary-args CMDARGS</code></td>
- <td>
- <p>Pass <a href="http://kb.mozillazine.org/Command_line_arguments">extra arguments</a> to Firefox.</p>
-
- <p>For example, to pass the <code>-jsconsole</code> argument to Firefox, which will launch the <a href="/en-US/docs/Tools/Browser_Console">Browser Console</a>, try the following:</p>
-
- <pre class="brush: bash">
-jpm test --binary-args -jsconsole</pre>
-
- <p>To pass multiple arguments, or arguments containing spaces, quote them:</p>
-
- <pre class="brush: bash">
-jpm test --binary-args '-url mzl.la -jsconsole'</pre>
- </td>
- </tr>
- <tr>
- <td><code>--debug</code></td>
- <td>Run the <a href="/en-US/Add-ons/Add-on_Debugger">add-on debugger</a> attached to the add-on.</td>
- </tr>
- <tr>
- <td style="width: 30%;"><code>-f --filter FILE[:TEST]</code></td>
- <td>
- <p>Only run tests whose filenames match FILE and optionally match TEST, both regexps.</p>
-
- <pre class="brush: bash">
-jpm test --filter base64:btoa</pre>
-
- <p>The above command only runs tests in files whose names contain "base64", and in those files only runs tests whose names contain "btoa".</p>
- </td>
- </tr>
- <tr>
- <td style="width: 30%;"><code>-o --overload PATH</code></td>
- <td>
- <p>Rather than use the SDK modules built into Firefox, use the modules found at PATH. If <code>-o</code> is specified and PATH is omitted, jpm will look for the JETPACK_ROOT environment variable and use its value as the path.</p>
-
- <p>See <a href="/en-US/Add-ons/SDK/Tools/jpm#Overloading_the_built-in_modules">Overloading the built-in modules</a> for more information.</p>
- </td>
- </tr>
- <tr>
- <td style="width: 30%;"><code>-p --profile<code> PROFILE</code></code></td>
- <td>
- <p>By default, jpm uses a clean temporary Firefox <a href="http://support.mozilla.com/en-US/kb/profiles">profile</a> each time you call jpm run. Use the <code>--profile</code> option to instruct jpm to launch Firefox with an existing profile.</p>
-
- <p>The PROFILE value may be a profile name or the path to the profile.</p>
-
- <p>See <a href="/en-US/Add-ons/SDK/Tools/jpm#Using_profiles">Using profiles</a> for more information.</p>
- </td>
- </tr>
- <tr>
- <td><code>--stop-on-error</code></td>
- <td>
- <p>By default jpm test keeps running tests even after tests fail. Specify <code>--stop-on-error</code> to stop running tests after the first failure:</p>
-
- <pre class="brush: bash">
-jpm test --stop-on-error</pre>
- </td>
- </tr>
- <tr>
- <td><code>--tbpl</code></td>
- <td>Print test output in <a href="https://treeherder.mozilla.org/">Treeherder</a> format</td>
- </tr>
- <tr>
- <td><code>--times NUMBER</code></td>
- <td>
- <p>Run tests NUMBER of times:</p>
-
- <pre class="brush: bash">
-jpm test --times 2</pre>
- </td>
- </tr>
- <tr>
- <td><code>-v --verbose</code></td>
- <td>Verbose operation.</td>
- </tr>
- <tr>
- <td><code>--no-copy</code></td>
- <td>
- <div class="warning">Use with caution because <code>jpm run|test</code> changes many preferences, never use with your main profile.</div>
-
- <div class="note">This only applies when <code>--profile</code> is used.</div>
- Disables the copying of the profile used, which allows one to reuse a profile.</td>
- </tr>
- </tbody>
-</table>
-
-<h3 id="jpm_xpi">jpm xpi</h3>
-
-<p>This command packages the add-on as an <a href="https://developer.mozilla.org/en/XPI">XPI</a> file, which is the install file format for Mozilla add-ons.</p>
-
-<pre class="brush: bash">jpm xpi</pre>
-
-<p>It looks for a file called <code>package.json</code> in the current directory and creates the corresponding XPI file. It ignores any ZIPs or XPIs in the add-on's root, and any test files. It includes all other files. If you want to exclude extra files, see <a href="en-US/Add-ons/SDK/Tools/jpmignore">the .jpmignore file</a>.</p>
-
-<p>Once you have built an XPI file you can distribute your add-on by submitting it to <a href="http://addons.mozilla.org">addons.mozilla.org</a>.</p>
-
-<p><code>jpm xpi</code> accepts the following option:</p>
-
-<table class="fullwidth-table standard-table">
- <tbody>
- <tr>
- <td><code>-v --verbose</code></td>
- <td>
- <p>Verbose operation:</p>
-
- <pre class="brush: bash">
-jpm xpi -v</pre>
- </td>
- </tr>
- </tbody>
-</table>
-
-<h3 id="jpm_post">jpm post</h3>
-
-<p>This command packages the add-on as an <a href="https://developer.mozilla.org/en/XPI">XPI</a> file then posts it to some url.</p>
-
-<pre class="brush: bash">jpm post</pre>
-
-<p>It looks for a file called <code>package.json</code> in the current directory and creates a XPI file with which to post to the <code>--post-url</code>.</p>
-
-<p><code>jpm post</code> accepts the following options:</p>
-
-<table class="fullwidth-table standard-table">
- <tbody>
- <tr>
- <td><code>--post-url URL</code></td>
- <td>
- <p>The url to post the extension to after creating a XPI.</p>
-
- <pre class="brush: bash">
-jpm post --post-url http://localhost:8888/</pre>
-
- <p>See <a href="https://www.npmjs.com/package/jpm#using-post-and-watchpost">Using Post and Watchpost</a> for more information.</p>
- </td>
- </tr>
- <tr>
- <td><code>-v --verbose</code></td>
- <td>
- <p>Verbose operation:</p>
-
- <pre class="brush: bash">
-jpm post --post-url http://localhost:8888/ -v</pre>
- </td>
- </tr>
- </tbody>
-</table>
-
-<h3 id="jpm_watchpost">jpm watchpost</h3>
-
-<p>This command packages the add-on as an <a href="https://developer.mozilla.org/en/XPI">XPI</a> file then posts it to some url whenever a file in the current working directory changes.</p>
-
-<pre class="brush: bash">jpm watchpost</pre>
-
-<p>Creates a XPI whenever a file in the current working directory changes and posts that to the <code>--post-url</code>.</p>
-
-<p><code>jpm watchpost</code> accepts the following options:</p>
-
-<table class="fullwidth-table standard-table">
- <tbody>
- <tr>
- <td><code>--post-url URL</code></td>
- <td>
- <p>The url to post the extension to after creating a XPI.</p>
-
- <pre class="brush: bash">
-jpm watchpost --post-url http://localhost:8888/</pre>
-
- <p>See <a href="https://www.npmjs.com/package/jpm#using-post-and-watchpost">Using Post and Watchpost</a> for more information.</p>
- </td>
- </tr>
- <tr>
- <td><code>-v --verbose</code></td>
- <td>
- <p>Verbose operation:</p>
-
- <pre class="brush: bash">
-jpm watchpost --post-url http://localhost:8888/ -v</pre>
- </td>
- </tr>
- </tbody>
-</table>
-
-<h3 id="jpm_sign">jpm sign</h3>
-
-<div class="note">
-<p>This feature is only supported from jpm 1.0.4 onwards.</p>
-</div>
-
-<p>This command retrieves a new <a href="/en-US/docs/XPI">XPI</a> for your add-on signed by Mozilla. This allows you to <a href="/en-US/Add-ons/SDK/Tools/jpm#Supporting_updates_for_self-hosted_add-ons">self-host your add-on</a> so that users can install it without error when <a href="https://wiki.mozilla.org/Add-ons/Extension_Signing">signed add-ons are required</a>.</p>
-
-<pre class="brush: bash">jpm sign --api-key ${AMO_API_KEY} --api-secret ${AMO_API_SECRET}</pre>
-
-<p>This creates an <a href="/en-US/docs/XPI">XPI</a>, submits it to the <a href="https://addons.mozilla.org/">addons.mozilla.org</a> <a href="http://olympia.readthedocs.org/en/latest/topics/api/signing.html">signing API</a>, then downloads a new signed <a href="/en-US/docs/XPI">XPI</a> to the working directory if it passes validation. Here are some possible outcomes of running the sign command:</p>
-
-<ul>
- <li>Your add-on passed validation, was signed by Mozilla, and a new signed <a href="/en-US/docs/XPI">XPI</a> was downloaded to your working directory.</li>
- <li>Your add-on failed validation, was not signed, and you got a link to a detailed report. After fixing the validation errors, you can run the command again.</li>
- <li>Your add-on at this exact version number already exists so it was not signed. You will need to increment the version number in your <a href="/en-US/Add-ons/SDK/Tools/package_json">package.json</a> file and run the command again.</li>
-</ul>
-
-<p>Under the hood, <code>jpm sign</code> creates an unlisted add-on inside <a href="https://addons.mozilla.org/">addons.mozilla.org</a> which means you must distribute the XPI file yourself in order for your users to install it. If you need to create a listed add-on, just <a href="https://addons.mozilla.org/en-US/developers/addon/submit/2">submit it directly to addons.mozilla.org</a> where it will be signed automatically. See the <a href="/en-US/docs/Extension_Versioning%2C_Update_and_Compatibility#Debugging_and_solving_problems">debugging</a> section if you're experiencing difficulty installing a signed add-on.</p>
-
-<p><code>jpm sign</code> accepts the following options:</p>
-
-<table class="fullwidth-table standard-table">
- <tbody>
- <tr>
- <td><code>--api-key API_KEY</code></td>
- <td>
- <p>API access key (string) generated on the <a href="https://addons.mozilla.org/en-US/developers/addon/api/key/">addons.mozilla.org key management page</a>.</p>
- </td>
- </tr>
- <tr>
- <td><code>--api-secret API_SECRET</code></td>
- <td>
- <p>API access secret (string) generated on the <a href="https://addons.mozilla.org/en-US/developers/addon/api/key/">addons.mozilla.org key management page</a>. This value should be guarded with care and never checked into version control. If your secret is compromised, another developer could upload add-ons to your account. You should revoke and regenerate compromised API credentials immediately.</p>
- </td>
- </tr>
- <tr>
- <td><code>--api-url-prefix http://.../api</code></td>
- <td>
- <p>An optional API URL prefix in case you'd like to use a pre-production signing API. Here is an example of using a dev instance of <a href="https://addons.mozilla.org/">addons.mozilla.org</a> :</p>
-
- <pre class="brush: bash">
-jpm sign ... --api-url-prefix https://addons-dev.allizom.org/api/v3</pre>
- </td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Techniques">Techniques</h2>
-
-<h3 id="Selecting_a_browser_version">Selecting a browser version</h3>
-
-<p>By default, <code>jpm run</code> and <code>jpm test</code> will run the release version of Firefox. You can instruct jpm to use a different version in one of two ways:</p>
-
-<ul>
- <li>
- <p>you can use the <code>-b</code> or <code>--binary</code> option to instruct jpm to run a different version of Firefox. You can supply a path to a specific binary:</p>
-
- <pre class="brush: bash">jpm run -b /path/to/Firefox/Nightly</pre>
-
- <p>As a shorthand for this, you can pass "nightly", "aurora", "beta", or "firefox" and jpm will look in the default location for these Firefox versions:</p>
-
- <pre class="brush: bash">jpm run -b nightly</pre>
- </li>
- <li>
- <p>you can set the <code>JPM_FIREFOX_BINARY</code> environment variable with the path to the version of Firefox you want to run. When you invoke <code>jpm run</code> or <code>jpm test</code> without the <code>-b</code> option, jpm will first check  <code>JPM_FIREFOX_BINARY</code>, and use this as the path if it is set.</p>
- </li>
-</ul>
-
-<h3 id="Using_.jpmignore_to_ignore_files">Using <code>.jpmignore</code> to ignore files</h3>
-
-<p>Using <code>.jpmignore</code> is similar to using <code>.gitignore</code> with <code>git</code>, <code>.hgignore</code> with Mercurial, or <code>.npmignore</code> with <code>npm</code>. By using this file you can let <code>jpm</code> know which files you would like it to ignore when building a <code>.xpi</code> file with <code>jpm xpi</code>.</p>
-
-<p>Here is an example:</p>
-
-<pre class="brush: bash"># Ignore .DS_Store files created by mac
-.DS_Store
-
-# Ignore any zip or xpi files
-*.zip
-*.xpi
-</pre>
-
-<p>A <code>.jpmignore</code> file with the above contents would ignore all zip files and <code>.DS_Store</code> files from the xpi generated by <code>jpm xpi</code>.</p>
-
-<h3 id="Using_profiles_2"><a name="Using_profiles">Using profiles</a></h3>
-
-<p>By default, <code>jpm run</code> uses a new profile each time it is executed. This means that any profile-specific data entered from one run of <code>jpm</code> will not, by default, be available in the next run.</p>
-
-<p>This includes, for example, any extra add-ons you installed, or your history, or any data stored using the <a href="/en-US/Add-ons/SDK/High-Level_APIs/simple-storage">simple-storage</a> API.</p>
-
-<p>To make <code>jpm</code> use a specific profile, pass the <code>--profile</code> option, specifying the name of the profile you wish to use, or the path to the profile.</p>
-
-<pre class="brush: bash">jpm run --profile boogaloo
-</pre>
-
-<pre class="brush: bash">jpm run --profile path/to/boogaloo</pre>
-
-<p>If you supply <code>--profile</code> but its argument is not the name of or path to an existing profile, jpm will open the <a href="https://support.mozilla.org/en-US/kb/profile-manager-create-and-remove-firefox-profiles">profile manager</a>,  enabling you to select and existing profile or create a new one:</p>
-
-<pre class="brush: bash">jpm run --profile i-dont-exist</pre>
-
-<h3 id="Developing_without_browser_restarts">Developing without browser restarts</h3>
-
-<p>Because <code>jpm run</code> restarts the browser each time you invoke it, it can be a little cumbersome if you are making very frequent changes to an add-on. An alternative development model is to use the <a href="https://addons.mozilla.org/en-US/firefox/addon/autoinstaller/" rel="noreferrer">Extension Auto-Installer</a> add-on: this listens for new XPI files on a specified port and installs them automatically. That way you can test new changes without needing to restart the browser:</p>
-
-<ul>
- <li>make a change to your add-on</li>
- <li>run <code>jpm post --post-url http://localhost:8888/</code>, to make a xpi and post it.</li>
-</ul>
-
-<p>You could even automate this workflow with a simple script. For example:</p>
-
-<pre class="brush: bash">jpm watchpost --post-url http://localhost:8888/
-</pre>
-
-<p>Note that the logging level defined for the console is different when you use this method, compared to the logging level used when an add-on is run using <code>jpm run</code>. This means that if you want to see output from <a href="/en-US/Add-ons/SDK/Tutorials/Logging" rel="noreferrer"><code>console.log()</code></a> messages, you'll have to tweak a setting. See the documentation on <a href="/en-US/Add-ons/SDK/Tools/console#Logging_Levels" rel="noreferrer">logging levels</a> for the details on this.</p>
-
-<h3 id="Overloading_the_built-in_modules">Overloading the built-in modules</h3>
-
-<p>The SDK modules you use to implement your add-on are built into Firefox. When you run or package an add-on using <code>jpm run</code> or <code>jpm xpi</code>, the add-on will use the versions of the modules in the version of Firefox that hosts it.</p>
-
-<p>As an add-on developer, this is usually what you want. But if you're developing the SDK modules themselves, of course, it isn't. In this case you need to:</p>
-
-<ul>
- <li>get a local copy of the SDK modules that you want: this usually means checking out the SDK from its <a href="https://github.com/mozilla/addon-sdk" rel="noreferrer">GitHub repo</a></li>
- <li>set the <code>JETPACK_ROOT</code> environment variable to your local copy</li>
- <li>pass the <code>-o</code> option to <code>jpm run</code> or <code>jpm xpi</code>:</li>
-</ul>
-
-<pre>jpm run -o
-</pre>
-
-<p>This instructs jpm to use the local copies of the SDK modules, not the ones in Firefox. If you don't want to set the <code>JETPACK_ROOT</code> environment variable, you can pass the location of your copy of the SDK modules along with <code>-o</code>:</p>
-
-<pre>jpm run -o "/path/to/SDK/"</pre>
-
-<h3 id="Supporting_updates_for_self-hosted_add-ons">Supporting updates for self-hosted add-ons</h3>
-
-<div class="note">
-<p>This feature is only supported from jpm 1.0.3 onwards.</p>
-</div>
-
-<p>When you make updates to your add-on to add features or fix bugs, you'll want any previously installed versions of the add-on to update themselves to the new version.</p>
-
-<p>If you list your add-on on <a href="https://addons.mozilla.org/">addons.mozilla.org</a>, then all you have to do here is submit the new version; add-ons default to checking <a href="https://addons.mozilla.org/">addons.mozilla.org</a> for new versions of themselves. You can stop reading this section.</p>
-
-<p>If you do not list your add-on on <a href="https://addons.mozilla.org/">addons.mozilla.org</a>, you need to generate a Mozilla-signed XPI and tell Firefox where it can find new versions of your add-on. The way this works is:</p>
-
-<ul>
- <li>you run <a href="/en-US/Add-ons/SDK/Tools/jpm#jpm_sign">jpm sign</a> anytime you need to create a new version</li>
- <li>you host the signed add-on XPI and update it when you need to</li>
- <li>you host an "update manifest", which, among other things, contains a URL pointing to the XPI</li>
- <li>your add-on tells Firefox where it can find the update manifest</li>
-</ul>
-
-<p>To do this, include two extra keys in package.json:</p>
-
-<ul>
- <li><code><a href="/en-US/Add-ons/SDK/Tools/package_json#updateURL">updateURL</a></code>: this is a URL which will be included in the built XPI file (technically, it's in the <a href="/en-US/docs/Mozilla/Add-ons/Install_Manifests">install manifest</a> which <code>jpm xpi</code> builds). It points to your update manifest. The <code>updateURL</code> value <em>may</em> be HTTPS. If it isn't, then you'll also need to sign the update manifest, and then include the public key using the <code><a href="/en-US/Add-ons/SDK/Tools/package_json#updateKey">updateKey</a></code> field in package.json. See <a href="/en-US/docs/Extension_Versioning%2C_Update_and_Compatibility#Securing_Updates">Securing updates</a> for more on this.</li>
- <li><code><a href="/en-US/Add-ons/SDK/Tools/package_json#updateLink">updateLink</a></code>: this is the URL which will be included in the update manifest file. It points to the XPI, and <em>must</em> be an HTTPS URL.</li>
-</ul>
-
-<p><img alt="" src="https://mdn.mozillademos.org/files/11847/addons-update.svg" style="" title="[https://mdn.mozillademos.org]"></p>
-
-<p>If you include <code>updateURL</code> and <code>updateLink</code> (and also <code>updateKey</code> in case <code>updateURL</code> is not HTTPS), then <code>jpm xpi</code> will:</p>
-
-<ul>
- <li>embed the value you supplied for <code>updateURL</code> in the XPI it generates</li>
- <li>generate an update manifest alongside the XPI, and embed the value you supplied for <code>updateLink</code> in the manifest</li>
-</ul>
-
-<p>You then host the update manifest at <code>updateURL</code>, and host new versions of the XPI at <code>updateLink</code>.</p>
-
-<p>For some more details on this, see <a href="/en-US/docs/Extension_Versioning,_Update_and_Compatibility#Automatic_Add-on_Update_Checking">Automatic Add-on Update Checking</a>.</p>
diff --git a/files/fr/mozilla/add-ons/sdk/tutorials/add_a_context_menu_item/index.html b/files/fr/mozilla/add-ons/sdk/tutorials/add_a_context_menu_item/index.html
deleted file mode 100644
index 1ad8700c3d..0000000000
--- a/files/fr/mozilla/add-ons/sdk/tutorials/add_a_context_menu_item/index.html
+++ /dev/null
@@ -1,115 +0,0 @@
----
-title: Add a Context Menu Item
-slug: Mozilla/Add-ons/SDK/Tutorials/Add_a_Context_Menu_Item
-translation_of: Archive/Add-ons/Add-on_SDK/Tutorials/Add_a_Context_Menu_Item
----
-<p>{{AddonSidebar}}</p>
-
-<div class="note">
-<p><span>Pour suivre ce tuto , vous aurez besoin d'avoir appris des rudiments de<a href="/fr/docs/Mozilla/Add-ons/SDK/Tutorials/Getting_Started_%28jpm%29"> <code>jpm</code></a>. </span></p>
-</div>
-
-<p>Pour ajouter des éléments et des sous-menus dans le menu contextuel de Firefox, utilisez le module <a href="https://developer.mozilla.org/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/context-menu"><code>context-menu</code></a>.</p>
-
-<p>Voici un add-on qui ajoute un nouvel élément de menu contextuel. L'élément est affiché à chaque fois qu'une séléction est opérée dans la page. Si l'élément est cliqué, la séléction est envoyé au code principal.</p>
-
-<pre class="brush: js">var contextMenu = require("sdk/context-menu");
-var menuItem = contextMenu.Item({
- label: "Log Selection",
- context: contextMenu.SelectionContext(),
- contentScript: 'self.on("click", function () {' +
- ' var text = window.getSelection().toString();' +
- ' self.postMessage(text);' +
- '});',
- onMessage: function (selectionText) {
- console.log(selectionText);
- }
-});</pre>
-
-<p>Executer l'add-on, charger une page web, séléctioner un texte et faites un clic droit, le nouvel élément doit apparaitre:<img src="https://mdn.mozillademos.org/files/6513/context-menu-selection.png" style="display: block; margin-left: auto; margin-right: auto;"></p>
-
-<p>Click it, and the selection is <a href="/en-US/Add-ons/SDK/Tutorials/Logging">logged to the console</a> (or the shell, if you're running an instance of Firefox from the command line):</p>
-
-<pre>info: elephantine lizard
-</pre>
-
-<h2 id="Details">Details</h2>
-
-<p>All this add-on does is to construct a context menu item. You don't need to add it: once you have constructed the item, it is automatically added in the correct context. The constructor in this case takes four options: <code>label</code>, <code>context</code>, <code>contentScript</code>, and <code>onMessage</code>.</p>
-
-<h3 id="label">label</h3>
-
-<p>The <code>label</code> is just the string that's displayed.</p>
-
-<h3 id="context">context</h3>
-
-<p>The <code>context</code> describes the circumstances in which the item should be shown. The <code>context-menu</code> module provides a number of simple built-in contexts, including this <code>SelectionContext()</code>, which means: display the item when something on the page is selected.</p>
-
-<p>If these simple contexts aren't enough, you can define more sophisticated contexts using scripts.</p>
-
-<h3 id="contentScript">contentScript</h3>
-
-<p>This attaches a script to the item. In this case the script listens for the user to click on the item, then sends a message to the add-on containing the selected text.</p>
-
-<h3 id="onMessage">onMessage</h3>
-
-<p>The <code>onMessage</code> property provides a way for the add-on code to respond to messages from the script attached to the context menu item. In this case it just logs the selected text.</p>
-
-<p>So:</p>
-
-<ol>
- <li>the user clicks the item</li>
- <li>the content script's <code>click</code> event fires, and the content script retrieves the selected text and sends a message to the add-on</li>
- <li>the add-on's <code>message</code> event fires, and the add-on code's handler function is passed the selected text, which it logs</li>
-</ol>
-
-<h2 id="More_options">More options</h2>
-
-<h3 id="Adding_an_image">Adding an image</h3>
-
-<p>You can add an image to a context menu item with the <code>image</code> option. This is a URL pointing to a 16x16 icon that's displayed at the left side of the context menu item. Typically you'd store the image in your add-on's "data" directory, and construct the URL using <code>self.data.url()</code>:</p>
-
-<pre class="brush: js">var self = require("sdk/self");
-
-var contextMenu = require("sdk/context-menu");
-var menuItem = contextMenu.Item({
- label: "Log Selection",
- context: contextMenu.SelectionContext(),
- contentScript: 'self.on("click", function () {' +
- ' var text = window.getSelection().toString();' +
- ' self.postMessage(text);' +
- '});',
- image: self.data.url("icon-16.png"),
- onMessage: function (selectionText) {
- console.log(selectionText);
- }
-});</pre>
-
-<h3 id="Adding_an_access_key">Adding an access key</h3>
-
-<div class="geckoVersionNote">
-<p>New in Firefox 35.</p>
-</div>
-
-<p>From Firefox 35 you can specify an access key using the <code>accessKey</code> option. This must be a single-character string. Pressing the key selects the option when the context menu is open:</p>
-
-<pre class="brush: js">var contextMenu = require("sdk/context-menu");
-var menuItem = contextMenu.Item({
- label: "Log Selection",
- context: contextMenu.SelectionContext(),
- contentScript: 'self.on("click", function () {' +
- ' var text = window.getSelection().toString();' +
- ' self.postMessage(text);' +
- '});',
- accessKey: "l",
- onMessage: function (selectionText) {
- console.log(selectionText);
- }
-});
-</pre>
-
-<p> </p>
-
-<h2 id="Learning_More">Learning More</h2>
-
-<p>To learn more about the <code>context-menu</code> module, see the <a href="/en-US/Add-ons/SDK/High-Level_APIs/context-menu"><code>context-menu</code> API reference</a>.</p>
diff --git a/files/fr/mozilla/add-ons/sdk/tutorials/getting_started_(jpm)/index.html b/files/fr/mozilla/add-ons/sdk/tutorials/getting_started_(jpm)/index.html
deleted file mode 100644
index 09fa1442a9..0000000000
--- a/files/fr/mozilla/add-ons/sdk/tutorials/getting_started_(jpm)/index.html
+++ /dev/null
@@ -1,165 +0,0 @@
----
-title: Commencer avec jpm
-slug: Mozilla/Add-ons/SDK/Tutorials/Getting_Started_(jpm)
-translation_of: Archive/Add-ons/Add-on_SDK/Tutorials/Getting_Started_(jpm)
----
-<div class="note">
-<p>The Add-on SDK includes a command-line tool that you use to initialize, run, test, and package add-ons. The current tool is called jpm, and is based on <a href="http://nodejs.org/">Node.js</a>. It replaces the old cfx tool.</p>
-
-<p>You can use jpm from Firefox 38 onwards.</p>
-
-<p>This article describes how to develop using jpm.</p>
-</div>
-
-<p>Ce tutoriel est un exemple de création d'une add-on en utilisant le SDK.</p>
-
-<h2 id="Prérequis">Prérequis</h2>
-
-<p>Pour créer des add-ons pour Firefox en utilisant le SDK, vous aurez besoin:</p>
-
-<ul>
- <li>Firefox Version 38 ou plus. Si vous avez besoin de travailler avec les versions antérieures de Firefox, vous aurez besoin d'utiliser l'outil cfx. Voir les instructions pour <a href="/fr/docs/Mozilla/Add-ons/SDK/Tutorials/Getting_started_(cfx)" title="/fr/Add-ons/SDK/Tutorials/Getting_started_(cfx)">débuter avec cfx </a>.</li>
- <li>l'outil de ligne de commande jpm. Voir les instructions pour l'installation <a href="/fr/docs/Mozilla/Add-ons/SDK/Tools/jpm#Installation" title="/fr/Add-ons/SDK/Tools/jpm#Installation"> jpm </a>. Une fois que vous avez fait cela, vous serez à la recherche de l'invite de commande.</li>
-</ul>
-
-<h2 id="Initialisation_d'un_add-on_vide">Initialisation d'un add-on vide</h2>
-
-<p>Dans l'invite de commande, créez un nouveau répertoire. Accédez à, tapez <code>jpm init</code>, et appuyez sur Entrée:</p>
-
-<pre>mkdir my-addon
-cd my-addon
-jpm init
-</pre>
-
-<p>Vous serez alors invité à fournir quelques informations sur votre add-on: elles seront utilisées pour créer votre fichier <a href="/fr/docs/Mozilla/Add-ons/SDK/Tools/package_json" title="/fr/docs/Mozilla/Add-ons/SDK/Tools/package_json">package.json</a>. Pour l'instant, appuyez sur Entrée pour accepter la valeur par défaut pour chaque propriété. Pour plus d'informations sur <code>jpm init</code>, voir le <a href="/fr/docs/Mozilla/Add-ons/SDK/Tools/jpm#Command_reference" title="/fr/Add-ons/SDK/Tools/jpm#Command_reference">commande de référence jpm </a>.</p>
-
-<p>Une fois que vous avez fourni une valeur ou accepté la valeur par défaut pour ces propriétés, vous verrez le contenu complet de "package.json" que vous validerez.</p>
-
-<h2 id="Mise_en_œuvre_de_l'add-on">Mise en œuvre de l'add-on</h2>
-
-<p>Maintenant, vous pouvez écrire le code de l'add-on. Sauf si vous avez changé la valeur du "point d'entrée"("<a href="/fr/docs/Mozilla/Add-ons/SDK/Tools/package_json#main" title="/fr/Add-ons/SDK/Tools/package_json#main">main</a>"dans package.json), allez dans le fichier "index.js" à la racine de votre add-on. Ce fichier a été créé dans l'étape précédente. Ouvrez-le et ajoutez le code suivant:</p>
-
-<pre class="brush: js">var buttons = require('sdk/ui/button/action');
-var tabs = require("sdk/tabs");
-
-var button = buttons.ActionButton({
- id: "mozilla-link",
- label: "Visit Mozilla",
- icon: {
- "16": "./icon-16.png",
- "32": "./icon-32.png",
- "64": "./icon-64.png"
- },
- onClick: handleClick
-});
-
-function handleClick(state) {
- tabs.open("https://www.mozilla.org/");
-}
-</pre>
-
-<div class="note">
-<p>Notez que par défaut le "point d'entrée" dans jpm est "index.js", ce qui signifie que votre fichier principal est "index.js", et il se trouve à la racine de votre add-on.</p>
-
-<p>Dans cfx, le "point d'entrée" par défaut est "main.js», il se trouve dans le répertoire "lib" sous la racine de l'add-on.</p>
-</div>
-
-<p>Enregistrez le fichier.</p>
-
-<p>Ensuite, créez un répertoire appelé "data" à la racine de votre add-on, et enregistrer ces trois fichiers d'icônes dans "data" :</p>
-
-<table class="standard-table">
- <tbody>
- <tr>
- <td><img alt="" src="https://mdn.mozillademos.org/files/7635/icon-16.png" style="height: 16px; width: 16px;"></td>
- <td>icon-16.png</td>
- </tr>
- <tr>
- <td><img alt="" src="https://mdn.mozillademos.org/files/7637/icon-32.png" style="height: 32px; width: 32px;"></td>
- <td>icon-32.png</td>
- </tr>
- <tr>
- <td><img alt="" src="https://mdn.mozillademos.org/files/7639/icon-64.png" style="height: 64px; width: 64px;"></td>
- <td>icon-64.png</td>
- </tr>
- </tbody>
-</table>
-
-<p>Retour à l'invite de commande, tapez:</p>
-
-<pre>jpm run</pre>
-
-<p>Ceci est la commande de jpm pour lancer une nouvelle instance de Firefox avec votre add-on installée.</p>
-
-<p>Si Firefox ne peut pas être localisé, vous devrez peut-être fournir le chemin d'accès (par exemple dans Ubuntu):</p>
-
-
-<pre>jpm run -b /usr/bin/firefox</pre>
-
-<div class="note">
-<p>Vous pouvez egalement modifier le chemin dans le fichier \npm\node_modules\jpm\node_modules\fx-runner\lib\utils.js.</p>
-
-<p>Par exemple sous windos : <code>var rootKey = '\\Programe Files\\Mozilla Firefox\\';</code></p>
-</div>
-
-<p>Lorsque Firefox est lancé, dans le coin en haut à droite du navigateur, vous verrez une icône avec le logo de Firefox. Cliquez sur l'icône, et un nouvel onglet sera ouvert avec <a href="https://www.mozilla.org/" title="http://www.mozilla.org/"> https://www.mozilla.org/ </a> chargé.</p>
-
-<p>Voilà ce que fait cette add-on. Elle utilise deux modules: le module SDK <a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/ui_button_action" title="/fr/Add-ons/SDK/Low-Level_APIs/ui_button_action">button_action</a>, qui vous permet d'ajouter des boutons dans le navigateur, et le module<a href="https://developer.mozilla.org/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/tabs" title="https://developer.mozilla.org/fr/Add-ons/SDK/High-Level_APIs/tabs"> tabs</a>, qui vous permet d'effectuer des opérations de base avec des onglets. Dans ce cas, nous avons créé un bouton dont l'icône est celle de Firefox, et ajouté un gestionnaire de clic qui charge la page d'accueil de Mozilla dans un nouvel onglet.</p>
-
-<p>Essayez d'éditer ce fichier. Par exemple, nous pourrions changer la page qui est chargé:</p>
-
-<pre class="brush: js line-numbers language-js"><code class="language-js"><span class="keyword token">var</span> buttons <span class="operator token">=</span> <span class="function token">require</span><span class="punctuation token">(</span><span class="string token">'sdk/ui/button/action'</span><span class="punctuation token">)</span><span class="punctuation token">;</span>
-<span class="keyword token">var</span> tabs <span class="operator token">=</span> <span class="function token">require</span><span class="punctuation token">(</span><span class="string token">"sdk/tabs"</span><span class="punctuation token">)</span><span class="punctuation token">;</span>
-
-<span class="keyword token">var</span> button <span class="operator token">=</span> buttons<span class="punctuation token">.</span><span class="function token">ActionButton</span><span class="punctuation token">(</span><span class="punctuation token">{</span>
- id<span class="punctuation token">:</span> <span class="string token">"mozilla-link"</span><span class="punctuation token">,</span>
- label<span class="punctuation token">:</span> <span class="string token">"Visit Mozilla"</span><span class="punctuation token">,</span>
- icon<span class="punctuation token">:</span> <span class="punctuation token">{</span>
- <span class="string token">"16"</span><span class="punctuation token">:</span> <span class="string token">"./icon-16.png"</span><span class="punctuation token">,</span>
- <span class="string token">"32"</span><span class="punctuation token">:</span> <span class="string token">"./icon-32.png"</span><span class="punctuation token">,</span>
- <span class="string token">"64"</span><span class="punctuation token">:</span> <span class="string token">"./icon-64.png"</span>
- <span class="punctuation token">}</span><span class="punctuation token">,</span>
- onClick<span class="punctuation token">:</span> handleClick
-<span class="punctuation token">}</span><span class="punctuation token">)</span><span class="punctuation token">;</span>
-
-<span class="keyword token">function</span> <span class="function token">handleClick</span><span class="punctuation token">(</span>state<span class="punctuation token">)</span> <span class="punctuation token">{</span>
- tabs<span class="punctuation token">.</span><span class="function token">open</span><span class="punctuation token">(</span><span class="string token">"https://developer.mozilla.org/"</span><span class="punctuation token">)</span><span class="punctuation token">;</span>
-<span class="punctuation token">}</span></code></pre>
-
-<p>À l'invite de commande, exécutez à nouveau <code>jpm run</code>. Vous ouvrirez cette fois en cliquant <a href="https://developer.mozilla.org/">https://developer.mozilla.org/</a>.</p>
-
-<h2 id="Empaquetté_l'add-on">Empaquetté l'add-on</h2>
-
-<p>Lorsque vous avez terminé l'add-on et êtes prêt à la distribuer, vous aurez besoin de l'emballer dans un fichier XPI. C'est le format de fichier installable pour Firefox Add-ons. Vous pouvez distribuer xpi en les publiant sur <a href="https://addons.mozilla.org" title="https://addons.mozilla.org"> https://addons.mozilla.org </a> afin que les autres utilisateurs puissent la télécharger et l'installer.</p>
-
-<p>Pour construire un xpi, exécutez simplement la commande <code>jpm xpi</code> dans le répertoire de l'add-on:</p>
-
-<pre>jpm xpi
-</pre>
-
-<p>Vous devriez voir un message du type:</p>
-
-<pre>JPM info Successfully created xpi at /path/to/getting-started/@getting-started.xpi
-</pre>
-
-<p>Pour voir si cela a fonctionné, essayez d'installer le fichier xpi dans votre navigateur Firefox. Vous pouvez le faire en appuyant sur la combinaison de touches Ctrl+O (O+Cmd sur Mac) à partir de Firefox, ou en sélectionnant l'option "Ouvrir" dans le menu "Fichier" de Firefox. Cela fera apparaître une boîte de dialogue de sélection de fichier: naviguer vers le fichier "@getting-started.xpi", ouvrez-le et suivez les instructions pour installer l'add-on.</p>
-
-<p>Pour distribuer votre add-on, <a href="https://addons.mozilla.org/fr/developers/addon/submit/2" title="https://addons.mozilla.org/fr/developers/addon/submit/2"> soumettre le fichier xpi à addons.mozilla.org </a> ou exécuter <a href="https://developer.mozilla.org/fr/docs/Mozilla/Add-ons/SDK/Tools/jpm#jpm_sign" title="https://developer.mozilla.org/fr/Add-ons/SDK/Tools/jpm#jpm_sign">jpm sign</a> si vous souhaitez distribuer l'add-on sur votre propre serveur.</p>
-
-<h2 id="Résumé">Résumé</h2>
-
-<p>Dans ce tutoriel, nous avons construit et emballé une add-on en utilisant trois commandes:</p>
-
-<ul>
- <li><code>jpm init</code> pour initialiser un modèle vide d'add-on</li>
- <li><code>jpm run</code> pour exécuter une nouvelle instance de Firefox avec l'add-on installé, afin que nous puissions l'essayer</li>
- <li><code>jpm xpi</code> pour emballer l'add-on dans un fichier xpi pour la distribution</li>
-</ul>
-
-<p>Ce sont les trois principales commandes que vous utiliserez lors de l'élaboration d'add-ons SDK. Il y a une <a href="/fr/docs/Mozilla/Add-ons/SDK/Tools/jpm" title="/fr/Add-ons/SDK/Tools/jpm">documentation de référence</a> complète couvrant toutes les commandes que vous pouvez utiliser et toutes les options qu'elles prennent.</p>
-
-<p>Le code de add-on lui-même utilise deux modules de SDK, <a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/ui_button_action" title="/fr/Add-ons/SDK/Low-Level_APIs/ui_button_action"> action bouton </a> et <a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/tabs" title="/fr/Add-ons/SDK/High-Level_APIs/tabs">tabs</a>. Il ya une documentation de référence pour toute les APIs <a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs" title="/fr/Add-ons/SDK/High-Level_APIs">high-level </a> et <a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs" title="/fr/Add-ons/SDK/Low-Level_APIs">low-level</a> dans le SDK.</p>
-
-<h2 id="Et_en_suite">Et en suite?</h2>
-
-<p>Pour avoir une idée de certaines des choses que vous pouvez faire avec les API du SDK, essayer de travailler avec certains <a href="/fr/docs/Mozilla/Add-ons/SDK/Tutorials" title="/fr/Add-ons/SDK/Tutorials">tutoriels</a>.</p>
diff --git a/files/fr/mozilla/add-ons/sdk/tutorials/index.html b/files/fr/mozilla/add-ons/sdk/tutorials/index.html
deleted file mode 100644
index d68fcfd2ac..0000000000
--- a/files/fr/mozilla/add-ons/sdk/tutorials/index.html
+++ /dev/null
@@ -1,143 +0,0 @@
----
-title: Tutoriels
-slug: Mozilla/Add-ons/SDK/Tutorials
-tags:
- - Add-on SDK
- - TopicStub
-translation_of: Archive/Add-ons/Add-on_SDK/Tutorials
----
-<p>Cette page répertorie les articles sur la façon d'accomplir des tâches spécifiques en utilisant le SDK.</p>
-
-<hr>
-<h3 id="Commencer"><a name="getting-started">Commencer</a></h3>
-
-<div class="column-container">
-<div class="column-half">
-<dl>
- <dt><a href="/fr/docs/Mozilla/Add-ons/SDK/Tools/jpm#Installation">Installation</a></dt>
- <dd>Comment faire pour installer l'outil de jpm, que vous allez utiliser pour développer des add-ons.</dd>
-</dl>
-
-<dl>
- <dt><a href="/fr/docs/Mozilla/Add-ons/SDK/Tutorials/Troubleshooting">Dépannage</a></dt>
- <dd>Quelques conseils pour résoudre les problèmes courants et obtenir de l'aide.</dd>
-</dl>
-</div>
-
-<div class="column-half">
-<dl>
- <dt><a href="/fr/docs/Mozilla/Add-ons/SDK/Tutorials/Getting_Started_(jpm)">Commencer</a></dt>
- <dd>Démonstration de la création d'une add-on avec le SDK, en utilisant jpm.</dd>
-</dl>
-</div>
-</div>
-
-<hr>
-<h3 id="Créer_des_interfaces_utilisateur"><a name="create-user-interfaces">Créer des interfaces utilisateur</a></h3>
-
-<div class="column-container">
-<div class="column-half">
-<dl>
- <dt><a href="/fr/docs/Mozilla/Add-ons/SDK/Tutorials/Adding_a_Button_to_the_Toolbar">Ajouter un bouton de barre d'outils</a></dt>
- <dd>Attachez un bouton à la barre d'outils du module complémentaire Firefox.</dd>
- <dt><a href="/fr/docs/Mozilla/Add-ons/SDK/Tutorials/Add_a_Menu_Item_to_Firefox">Ajouter un élément de menu à Firefox </a></dt>
- <dd>Ajoutez des éléments aux menus principaux de Firefox.</dd>
-</dl>
-</div>
-
-<div class="column-half">
-<dl>
- <dt><a href="/fr/docs/Mozilla/Add-ons/SDK/Tutorials/Display_a_Popup">Afficher une popup </a></dt>
- <dd>Afficher une boîte de dialogue contextuelle (popup) implémentée avec HTML et JavaScript.</dd>
- <dt><a href="/fr/docs/Mozilla/Add-ons/SDK/Tutorials/Add_a_Context_Menu_Item">Ajouter un élément de menu contextuel </a></dt>
- <dd>Ajoutez des éléments au menu contextuel de Firefox.</dd>
-</dl>
-</div>
-</div>
-
-<hr>
-<h3 id="Interagir_avec_le_navigateur"><a name="interact-with-the-browser">Interagir avec le navigateur</a></h3>
-
-<div class="column-container">
-<div class="column-half">
-<dl>
- <dt><a href="/fr/docs/Mozilla/Add-ons/SDK/Tutorials/Open_a_Web_Page">Ouvrir une page Web </a></dt>
- <dd>Ouvrez une page Web dans un nouvel onglet ou une nouvelle fenêtre du navigateur à l'aide du module onglets et accédez à son contenu.</dd>
- <dt><a href="/fr/docs/Mozilla/Add-ons/SDK/Tutorials/Listen_for_Page_Load">Écouter le chargement de la page </a></dt>
- <dd>Utilisez le module onglets pour être averti lorsque de nouvelles pages Web sont chargées et accéder à leur contenu.</dd>
-</dl>
-</div>
-
-<div class="column-half">
-<dl>
- <dt><a href="/fr/docs/Mozilla/Add-ons/SDK/Tutorials/List_Open_Tabs">Obtenir la liste des onglets ouverts </a></dt>
- <dd>Utilisez le module onglets pour parcourir les onglets actuellement ouverts et accéder à leur contenu.</dd>
-</dl>
-</div>
-</div>
-
-<hr>
-<h3 id="Modifier_les_pages_Web"><a name="modify-web-pages">Modifier les pages Web</a></h3>
-
-<div class="column-container">
-<div class="column-half">
-<dl>
- <dt><a href="/fr/docs/Mozilla/Add-ons/SDK/Tutorials/Modifying_Web_Pages_Based_on_URL">Modifier les pages Web en fonction de l'URL </a></dt>
- <dd>Créez des filtres pour les pages Web en fonction de leur URL: chaque fois qu'une page Web dont l'URL correspond au filtre est chargée, exécutez un script spécifié.</dd>
-</dl>
-</div>
-
-<div class="column-half">
-<dl>
- <dt><a href="/fr/docs/Mozilla/Add-ons/SDK/Tutorials/Modifying_the_Page_Hosted_by_a_Tab">Modifier la page Web active </a></dt>
- <dd>Chargez dynamiquement un script dans la page Web actuellement active.</dd>
-</dl>
-</div>
-</div>
-
-<hr>
-<h3 id="Techniques_de_développement"><a name="development-techniques">Techniques de développement</a></h3>
-
-<div class="column-container">
-<div class="column-half">
-<dl>
- <dt><a href="/fr/docs/Mozilla/Add-ons/SDK/Tutorials/Logging">Enregistrement </a></dt>
- <dd>Enregistrez les messages sur la console à des fins de diagnostic.</dd>
- <dt><a href="/fr/docs/Mozilla/Add-ons/SDK/Tutorials/Creating_reusable_modules">Création de modules réutilisables </a></dt>
- <dd>Structurez votre module complémentaire en modules séparés pour faciliter le développement, le débogage et la maintenance. Créez des paquets réutilisables contenant vos modules, afin que d'autres développeurs de modules complémentaires puissent également les utiliser.</dd>
- <dt><a href="/fr/docs/Mozilla/Add-ons/SDK/Tutorials/Unit_testing">Tests unitaires </a></dt>
- <dd>Ecrire et exécuter des tests unitaires à l'aide du framework de test du SDK.</dd>
- <dt><a href="/fr/docs/Mozilla/Add-ons/SDK/Tutorials/Chrome_authority">Autorité Chrome </a></dt>
- <dd>Accédez à l'objet Components, permettant à votre module complémentaire de charger et d'utiliser n'importe quel objet XPCOM.</dd>
- <dt><a href="/fr/docs/Mozilla/Add-ons/SDK/Tutorials/Creating_event_targets">Création de cibles d'événements </a></dt>
- <dd>Permettez aux objets que vous définissez d'émettre leurs propres événements.</dd>
-</dl>
-</div>
-
-<div class="column-half">
-<dl>
- <dt><a href="/fr/docs/Mozilla/Add-ons/SDK/Tutorials/Listening_for_load_and_unload">Écouter pour charger et décharger </a></dt>
- <dd>Recevez des notifications lorsque votre module complémentaire est chargé ou déchargé par Firefox, et passez des arguments dans votre module complémentaire à partir de la ligne de commande.</dd>
- <dt><a href="/fr/docs/Mozilla/Add-ons/SDK/Tutorials/Using_third-party_modules_(jpm)">Utilisation de modules tiers (jpm)</a></dt>
- <dd>Installez et utilisez des modules supplémentaires qui ne sont pas fournis avec le SDK lui-même.</dd>
- <dt><a href="/fr/docs/Mozilla/Add-ons/SDK/Tutorials/l10n">Localisation </a></dt>
- <dd>Écriture de code localisable.</dd>
- <dt><a href="/fr/docs/Mozilla/Add-ons/SDK/Tutorials/Mobile_development">Développement mobile </a></dt>
- <dd>Développez des modules complémentaires pour Firefox Mobile sur Android.</dd>
- <dt><a href="/fr/docs/Mozilla/Add-ons/Add-on_Debugger">Débogueur de module complémentaire (Add-on)</a></dt>
- <dd>Déboguez le JavaScript de votre module complémentaire.</dd>
-</dl>
-</div>
-</div>
-
-<hr>
-<h3 id="Mettre_ensemble"><a name="putting-it-together">Mettre ensemble</a></h3>
-
-<div class="column-container">
-<div class="column-half">
-<dl>
- <dt><a href="/fr/docs/Mozilla/Add-ons/SDK/Tutorials/Annotator">Module complémentaire Annotator </a></dt>
- <dd>Présentation d'un module complémentaire relativement complexe.</dd>
-</dl>
-</div>
-</div>
diff --git a/files/fr/mozilla/add-ons/sdk/tutorials/l10n/index.html b/files/fr/mozilla/add-ons/sdk/tutorials/l10n/index.html
deleted file mode 100644
index 4b9ca669e7..0000000000
--- a/files/fr/mozilla/add-ons/sdk/tutorials/l10n/index.html
+++ /dev/null
@@ -1,383 +0,0 @@
----
-title: Localisation
-slug: Mozilla/Add-ons/SDK/Tutorials/l10n
-translation_of: Archive/Add-ons/Add-on_SDK/Tutorials/l10n
----
-<p>Le SDK supporte la localisation des chaînes figurant dans:</p>
-
-<ul>
- <li><a href="/fr/docs/Mozilla/Add-ons/SDK/Tutorials/l10n#Using_Localized_Strings_in_JavaScript">Le code JavaScript dans le main ou l'index de l'add-on</a></li>
- <li><a href="/fr/docs/Mozilla/Add-ons/SDK/Tutorials/l10n#Using_Localized_Strings_in_HTML">Les fichiers HTML emballés avec votre add-on</a></li>
- <li><a href="/fr/docs/Mozilla/Add-ons/SDK/Tutorials/l10n#Using_Localized_Strings_in_Preferences">Les champs <code>title</code> et <code>description</code> de votre add-on</a>.</li>
-</ul>
-
-<p>Il ne le fait pas dans le CSS, les scripts anexe, ou les champs titre et description qui apparaissent dans le gestionnaire de modules complémentaires. Voir <a href="/fr/docs/Mozilla/Add-ons/SDK/Tutorials/l10n#Limitations" title="/fr/Add-ons/SDK/Tutorials/l10n#Limitations">Limitations</a> ci-dessous.</p>
-
-<h2 id="Chaînes_localisées">Chaînes localisées</h2>
-
-<p>Les chaînes traduites sont conservées dans un répertoire appelé "locale" sous votre répertoire principale de l'add-on , avec un fichier pour chaque langue. Les dossiers:</p>
-
-<ul>
- <li>utiliser <a href="http://fr.wikipedia.org/wiki/.properties" title="http://en.wikipedia.org/wiki/.properties"> <code>.properties</code> Format</a></li>
- <li>sont nommés "xx-YY.properties", où "xx-YY" est le <a href="https://wiki.mozilla.org/L10n:Locale_Codes" title="https://wiki.mozilla.org/L10n:Locale_Codes">nom locale</a> en question (en français, uniquement "fr.properties")</li>
- <li>contienent une entrée pour chaque chaîne que vous voulez localiser, constitué d'un identifiant pour la chaîne et sa traduction dans cette langue, dans le format <code>identifier=translation</code></li>
- <li>utilisent UTF-8 sans codage BOM</li>
- <li>Les lignes commençant par "#" (après espaces optionnels) sont des commentaires</li>
-</ul>
-
-<p>Supposons que votre add-on contient une seule chaîne localisable, représentée en anglais comme "Hello!", Et que vous souhaitez fournir les localisations Français FRANCAIS et anglais ETATS-UNIS.</p>
-
-<p>Vous souhaitez ajouter deux fichiers au répertoire "locale" :</p>
-
-<pre>my-addon/
- data
- lib
- locale/
- en-US.properties
- fr.properties
-</pre>
-
-<p>"en-US.properties" contient ceci:</p>
-
-<pre>hello_id= Hello!
-</pre>
-
-<p>"fr.properties" contient ceci:</p>
-
-<pre>hello_id= Bonjour!
-</pre>
-
-<p>Maintenant, chaque fois que votre JavaScript ou HTML demande au système de localisation la traduction de l'identifiant <code>hello_id</code>, il obtiendra la traduction correcte pour la localisation en cours.</p>
-
-<h2 id="Utilisation_de_chaînes_localisées_en_HTML">Utilisation de chaînes localisées en HTML</h2>
-
-<div class="note">
-<p>Cet exemple utilise l'API <a href="https://developer.mozilla.org/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/ui_button_action" title="https://developer.mozilla.org/fr/Add-ons/SDK/Low-Level_APIs/ui_button_action">button_action</a>, qui est uniquement disponible à partir de Firefox 29.</p>
-</div>
-
-<p>Pour référencer des chaînes localisées du HTML, ajouter un attribut <code>data-l10n-id</code> à la balise HTML où vous voulez que la chaîne localisée apparaisse, et assignez y l'identifiant :</p>
-
-<pre class="brush: html">&lt;html&gt;
-  &lt;body&gt;
-    &lt;h1 data-l10n-id="hello_id"&gt;&lt;/h1&gt;
-  &lt;/body&gt;
-&lt;/html&gt;
-</pre>
-
-<p>Ensuite, vous pouvez utiliser ce fichier HTML pour construire votre interface, par exemple à l'intérieur d'un panel :</p>
-
-<pre class="brush: js">var button = require("sdk/ui/button/action").ActionButton({
-  id: "localized-hello",
-  label: "Localized hello",
-  icon: "./icon-16.png",
-  onClick: function() {
-    hello.show();
-  }
-});
-
-var hello = require("sdk/panel").Panel({
-  height: 75,
-  width: 150,
-  contentURL: require("sdk/self").data.url("my-panel.html")
-});</pre>
-
-<p>Compte tenu de fichiers locaux pour "en-US" et "fr" qui fournissent les traductions de <code>hello_id</code>, le panneau affichera désormais "Bonjour!" ou "Hello!", selon la localisation en cours:</p>
-
-<p><img alt="" src="https://mdn.mozillademos.org/files/7663/bonjour.png" style="height: 160px; width: 255px;"><img alt="" src="https://mdn.mozillademos.org/files/7665/hello.png" style="height: 160px; width: 255px;"></p>
-
-<p>La traduction est inséré dans le nœud qui a l'attribut <code>data-l10n-id</code> défini. Tout contenu existant précédemment est simplement remplacé.</p>
-
-<p>La chaîne est insérée sous forme de texte, de sorte que vous ne pouvez pas insérer du code HTML en utilisant une déclaration comme:</p>
-
-<pre class="brush: bash"># Ne fonctionne pas. Les balises HTML sont insérés sous forme de texte.
-hello_id= &lt;blink&gt;Hello!&lt;/blink&gt;
-</pre>
-
-<h3 id="Attributs_d'Elément_Localisation">Attributs d'Elément Localisation</h3>
-
-<div class="geckoVersionNote">Cette fonction est nouvelle dans Firefox 39</div>
-
-<p>Vous pouvez localiser certains attributs d'éléments avec un l10n-id en définissant sa valeur avec l10n-id.attributeName dans le fichier de propriétés comme:</p>
-
-<pre>hello_id.accesskey= H</pre>
-
-<p>Les attributs suivants sont supportés:</p>
-
-<ul>
- <li><strong>accesskey</strong></li>
- <li><strong>alt</strong></li>
- <li><strong>label</strong></li>
- <li><strong>title</strong></li>
- <li><strong>placeholder</strong></li>
-</ul>
-
-<p>En outre, la localisation avec les attributs <a href="/fr/docs/Web/Accessibility/ARIA" title="/fr/docs/Web/Accessibility/ARIA">ARIA</a> <strong> aria-label </strong>, <strong>aria-valuetex</strong> et <strong> aria-moz-hint </strong> sont pris en charge avec les mêmes alias que sur Firefox OS :</p>
-
-<ul>
- <li><strong>ariaLabel</strong></li>
- <li><strong>ariaValueText</strong></li>
- <li><strong>ariaMozHint</strong></li>
-</ul>
-
-<h2 id="Utilisation_de_chaînes_localisées_en_JavaScript">Utilisation de chaînes localisées en JavaScript</h2>
-
-<p>Pour référencer les chaînes localisées à partir de votre code d'add-on principale, faites ceci:</p>
-
-<pre class="brush: js">var _ = require("sdk/l10n").get;
-console.log(_("hello_id!"));</pre>
-
-<p><span>L'affectation de "<code>_</code>" n'est pas nécessaire, mais pour travailler avec les outils <a href="https://www.gnu.org/software/gettext/gettext.html" title="https://www.gnu.org/software/gettext/gettext. html">gettext</a> qui attendent "<code>_</code>" pour indiquer les chaînes localisables, cela est préférable.</span></p>
-
-<ol>
- <li>Importez le module <code>l10n</code>, et assigner sa fonction <code>get</code> à "<code>_</code>"(underscore).</li>
- <li>Enveloppez toutes les références aux chaînes localisables avec la fonction <code>_()</code>.</li>
-</ol>
-
-<p>Si vous l'exécutez, vous verrez le résultat attendu pour la localisation en cours:</p>
-
-<pre>info: Hello!
-</pre>
-
-<pre>info: Bonjour!
-</pre>
-
-<p>Notez que parce que vous ne pouvez pas appeler des modules avec <code>require()</code> dans les content_scripts, vous ne pouvez pas encore référencer les chaînes localisées à partir des content_scripts.</p>
-
-<h3 id="Pluriels">Pluriels</h3>
-
-<p>Le module <code>l10n</code> prend en charge les formes plurielles. Plusieurs langues ont des règles différentes pour la formation des pluriels. Par exemple, l'anglais a deux formes: une forme singulière pour "un", et une forme plurielle pour "tout le reste, y compris zéro":</p>
-
-<pre>one tomato
-no tomatoes
-two tomatoes
-</pre>
-
-<p>Mais le Russe a des formes différentes pour les numéros se terminant par 1 (sauf 11), numéros se terminant par 2-4 (sauf 12-14) et les autres numéros:</p>
-
-<pre>один помидор // one tomato
-два помидора // two tomatoes
-пять помидоров // five tomatoes
-</pre>
-
-<p>Le SDK utilise les données de <a href="http://cldr.unicode.org/index" title="http://cldr.unicode.org/index">Unicode CLDR</a> pour décrire les différentes formes plurielles utilisés dans les différentes langues.</p>
-
-<h4 id="Formes_plurielles_de_Unicode_CLDR">Formes plurielles de Unicode CLDR</h4>
-
-<p>Le projet Unicode CLDR définit un schéma pour décrire les règles de pluriel d'une langue particulière. Dans ce schéma, une langue peut se distinguer par un maximum de six formes, identifié par les catégories suivantes : <em>zero</em>, <em>one</em>, <em>two</em>, <em>few</em>, <em>many</em> et <em>other</em>.</p>
-
-<p>L'englais a deux formes, qui peuvent être décrits par les categories "1" à "<em>one</em>" et "everything else" à "<em>other</em>":</p>
-
-<pre>one → n is 1;
-other → everything else
-</pre>
-
-<p>Le russe utilise quatre formes, qui peuvent être décrits comme suit:</p>
-
-<pre>one → n mod 10 is 1 and n mod 100 is not 11;
-few → n mod 10 in 2..4 and n mod 100 not in 12..14;
-many → n mod 10 is 0 or n mod 10 in 5..9 or n mod 100 in 11..14;
-other → everything else
-</pre>
-
-<p>Les règles de pluriel pour toutes les langues peuvent être trouvés dans le CLDR <a href="http://unicode.org/repos/cldr-tmp/trunk/diff/supplemental/language_plural_rules.html" title="http://unicode.org/repos/cldr-tmp/trunk/diff/supplemental/language_plural_rules.html"> Langue règles pluriel</a> (ce tableau est mis à jour par rapport à la <a href="http://unicode.org/repos/cldr/trunk/common/supplemental/plurals.xml">source XML CLDR</a>).</p>
-
-<h4 id="Formes_plurielles_dans_le_SDK">Formes plurielles dans le SDK</h4>
-
-<p>Dans le code, vous pouvez fournir un paramètre supplémentaire à côté de l'identifiant, en décrivant combien d'articles il y a :</p>
-
-<pre class="brush: js">var _ = require("sdk/l10n").get;
-console.log(_("tomato_id"));
-console.log(_("tomato_id", 1));
-console.log(_("tomato_id", 2));
-console.log(_("tomato_id", 5));
-console.log(_("tomato_id", .5));</pre>
-
-<p>Dans le fichier <code>.properties</code> pour chaque langue, vous pouvez définir une localisation différente pour chaque forme plurielle possible dans cette langue, en utilisant les mots-clés de CLDR. Donc, en anglais, nous pourrions avoir deux localisations pluriel (à noter que la catégorie «<em>other</em>» ne prendre <strong>pas</strong> le mot-clé CLDR):</p>
-
-<pre># en-US translations
-tomato_id[one]= %d tomato
-tomato_id= %d tomatoes
-</pre>
-
-<p>En Russe, nous pourrions avoir quatre localisations pluriel:</p>
-
-<pre># ru-RU translations
-tomato_id[one]= %d помидор
-tomato_id[few]= %d помидора
-tomato_id[many]= %d помидоров
-tomato_id= %d помидоры
-</pre>
-
-<p>Le module de localisation comprend les définitions de CLDR pour chaque langue, ce qui lui permet de faire la différence entre, par exemple, "2" dans le code et "few" dans <code>ru-RU.properties</code>. Ensuite, il récupère et renvoie la localisation pour le compte que vous avez fourni.</p>
-
-<h3 id="Espaces_réservés">Espaces réservés</h3>
-
-<p>Le module <code>l10n</code> prend en charge des espaces réservés, vous permettant d'insérer une chaîne qui ne devrait pas être localisé. Dans le code qui suit les fichiers "en-US" et "fr" ".properties" incluent des espaces réservés :</p>
-
-<pre class="brush: bash"># en-US translations
-hello_id= Hello %s!
-</pre>
-
-<pre class="brush: bash"># fr translations
-hello_id= Bonjour %s !
-</pre>
-
-<p>Pour utiliser les espaces réservés, fournir la chaîne de réservation après l'identifiant:</p>
-
-<pre class="brush: js">var _ = require("sdk/l10n").get;
-console.log(_("hello_id", "Bob"));
-console.log(_("hello_id", "Alice"));</pre>
-
-<p>Dans la localisation "en-US", cela nous donne:</p>
-
-<pre>info: Hello Bob!
-info: Hello Alice!
-</pre>
-
-<p>Dans "fr" nous obtenons:</p>
-
-<pre>info: Bonjour Bob !
-info: Bonjour Alice !
-</pre>
-
-<h3 id="Commande_espaces_réservés">Commande espaces réservés</h3>
-
-<p>Quand une chaîne localisable peut prendre deux ou plusieurs espaces réservés, les traducteurs peuvent définir l'ordre dans lequel les espaces réservés sont insérés, sans affecter le code.</p>
-
-<p>Principalement, ce qui est important c'est que les différentes langues ont des règles différentes pour l'ordre des mots. Même au sein de la même langue, cependant, les traducteurs doivent avoir la liberté de définir l'ordre des mots.</p>
-
-<p>Par exemple, supposons que nous voulons inclure une chaîne localisée nommer ville natale d'une personne. Il y a deux espaces réservés: le nom de la personne et le nom de la ville natale :</p>
-
-<pre class="brush: js">var _ = require("sdk/l10n").get;
-console.log(_("home_town_id", "Bob", "London"));</pre>
-
-<p>Un traducteur anglais pourrait vouloir choisir entre les ordres suivantes:</p>
-
-<pre>"&lt;town_name&gt; is &lt;person_name&gt;'s home town."
-</pre>
-
-<pre>"&lt;person_name&gt;'s home town is &lt;town_name&gt;"
-</pre>
-
-<p>Pour choisir la première option, le fichier <code>.properties</code> peut commander les espaces réservés comme suit:</p>
-
-<pre>home_town_id= %2s is %1s's home town.
-</pre>
-
-<p>Cela nous donne le résultat suivant:</p>
-
-<pre>info: London is Bob's home town.
-</pre>
-
-<h2 id="Utilisation_de_chaînes_localisées_dans_les_Préférences">Utilisation de chaînes localisées dans les Préférences</h2>
-
-<p>En incluant une <a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/simple-prefs" title="/fr/Add-ons/SDK/High-Level_APIs/simple-prefs">structure <code>"preferences"</code> dans votre fichier "package.json"</a>, vous pouvez définir des préférences pour votre add-on que l'utilisateur peut voir et modifier à l'aide de Firefox <a href="https://support.mozilla.org/fr/kb/Using%20extensions%20with%20Firefox#w_how-to-change-extension-settings" title="https://support.mozilla.org/fr/kb/Using%20extensions%20with%20Firefox#w_how-to-change-extension-settings">Add-ons Manager</a>.</p>
-
-<p>Les préférences ont obligatoirement des champs <code>title</code> et <code>description</code>. Ce sont des chaînes qui apparaissent aux côtés de la préférence dans le Gestionnaire Add-ons, pour expliquer à l'utilisateur ce que signifie la préférence.</p>
-
-<ul>
- <li>
- <p>Pour fournir la forme localisée du titre de la préférence, inclure une entrée dans votre fichier "propriétés" dont l'identifiant est le nom de la préférence suivie par <code>_title</code>, et dont la valeur est le titre localisé.</p>
- </li>
- <li>
- <p>Pour fournir la forme localisée de la description de la préférence, inclure une entrée dans votre fichier "propriétés" dont l'identifiant est le nom de la préférence suivie par <code>_description</code>, et dont la valeur est la description localisée.</p>
- </li>
-</ul>
-
-<p>Par exemple, supposons que votre "package.json" définit une seule préférence:</p>
-
-<pre>{
- "preferences": [
- {
- "type": "string",
- "name": "monster_name",
- "value": "Gerald",
- "title": "Name"
- }
- ],
- "name": "monster-builder",
- "license": "MPL 2.0",
- "author": "me",
- "version": "0.1",
- "fullName": "Monster Builder",
- "id": "monster-builder@me.org",
- "description": "Build your own monster"
-}
-</pre>
-
-<p>Dans votre fichier "en-US.properties", inclure ces deux éléments :</p>
-
-<pre>monster_name_title= Name
-monster_name_description= What is the monster's name?
-</pre>
-
-<p>Dans votre fichier "fr.properties", inclure la traduction française:</p>
-
-<pre>monster_name_title= Nom
-monster_name_description= Quel est le nom du monstre ?
-</pre>
-
-<p>Quand la configuration locale du navigateur est "en-US", les utilisateurs voient dans le gestionnaire de modules complémentaires:</p>
-
-<p><img alt="" src="https://mdn.mozillademos.org/files/6525/preference-us.png" style="height: 77px; width: 571px;"></p>
-
-<p>Lorsque la configuration locale du navigateur est "fr", ils voient ceci:</p>
-
-<p><img alt="" src="https://mdn.mozillademos.org/files/6523/preference-french.png"></p>
-
-<p>Les types <code>menulist</code> et <code>radio</code> de préférences ont des options. L'attribut <code>label</code> de chaque option est affichée à l'utilisateur. Si le fichier de paramètres régionaux a une entrée avec la valeur de l'élément <code>label</code> préfixé «{name}_options." comme clé (où {name} est le nom de la préférence), sa valeur est utilisée comme étiquette localisée.</p>
-
-<h2 id="Utilisation_de_l'identificateurs">Utilisation de l'identificateurs</h2>
-
-<p>Si le système de localisation ne peut pas trouver une entrée pour un identifiant particulier en utilisant la localisation en cours, elle retourne juste l'identifiant lui-même.</p>
-
-<p>C'est intéressante car vous pouvez écrire du code "localisable", entièrement fonctionnel sans avoir à écrire des fichiers locaux. Vous pouvez simplement utiliser les chaînes de langue par défaut et fournir ultérieurement les fichiers <code>.properties</code> pour toutes les langues supplémentaires que vous souhaitez soutenir.</p>
-
-<p>Par exemple, dans le cas ci-dessus, vous pouvez utiliser "Bonjour!" comme identificateur, et juste avoir un <code>.properties</code> pour la locale "fr":</p>
-
-<pre>Hello!= Bonjour!
-</pre>
-
-<p>Puis, quand la locale "en-US", le système ne parviennent pas à trouver un <code>.properties</code>, et revoit "Bonjour!".</p>
-
-<div class="warning">
-<p>Cependant, cette approche rend difficile le maintien d'une add-on qui a de nombreuses localisations, parce que vous utilisez les chaînes de langue par défaut en tant que chaînes de l'interface utilisateur et que les clés recherchent vos traductions. Cela signifie que si vous voulez changer le libellé d'une chaîne dans la langue par défaut, ou corriger une faute de frappe, alors vous cassez tous vos fichiers de paramètres régionaux.</p>
-</div>
-
-<h2 id="Locale_Updater">Locale Updater</h2>
-
-<p>L'add-on <a href="https://github.com/downloads/ochameau/locale-updater/locale-updater.xpi" title="https://github.com/downloads/ochameau/locale-updater/locale-updater.xpi">locale updater (paramètres régionaux de mise à jour)</a> rend plus facile la mise à jour des fichiers locaux. Une fois que vous l'avez installé, ouvrez le Gestionnaire de modules complémentaires, et vous verrez un nouveau bouton "Update l10n" à côté de chaque add-on que vous avez installé :</p>
-
-<p><img alt="" src="https://mdn.mozillademos.org/files/6515/locale-updater.png"></p>
-
-<p>Cliquez sur le bouton et vous serez invité à entrer un nouveau fichier <code>.properties</code> pour cette add-on. Si vous fournissez un nouveau fichier, les données locales de l'add-on seront mis à jour avec le nouveau fichier.</p>
-
-<h2 id="Limites">Limites</h2>
-
-<p>Le support de la localisation actuelle est un premier pas vers la prise en charge complète, et contient un certain nombre de limitations.</p>
-
-<ul>
- <li>
- <p>Il n'y a pas de soutien pour les scripts de contenu ou des fichiers CSS: pour le moment, vous ne pouvez localiser les chaînes apparaissant dans les fichiers JavaScript qui sont appelés avec <code>require()</code>.</p>
- </li>
- <li>
- <p>Il n'y a pas de soutien pour localiser <a href="/fr/docs/Mozilla/Add-ons/Install_Manifests#name" title="/fr/Add-ons/Install_Manifests#name">name</a> ou <a href="/fr/docs/Mozilla/Add-ons/Install_Manifests#description" title="/fr/Add-ons/Install_Manifests#description">description</a> de l'add-on : votre seule option étant de modifier le fichier install.rdf après la construction du XPI. Voir <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1218719" title="https://bugzilla.mozilla.org/show_bug.cgi?id=1218719">bug 1218719</a>.</p>
- </li>
- <li>
- <p>L'ensemble des fichiers locaux sont globaux à travers une add-on. Cela signifie qu'un module n'est pas en mesure de remplacer une traduction plus générale: si un module <code>informal.js</code> ne peut pas spécifier que "hello_id" survenant dans son code doit être traduit par "Salut!".</p>
- </li>
- <li>
- <p>Les outils SDK compilent les fichiers de localisation dans un format JSON lors de la production d'un XPI. Cela signifie que les traducteurs ne peuvent pas travailler directement sur le XPI, mais doivent avoir accès à la source de l'add-on.</p>
- </li>
- <li>
- <p>Le développeur de l'add-on doit assembler manuellement l'ensemble des chaînes localisables qui composent les fichiers locaux.</p>
- </li>
-</ul>
-
-<h2 id="Voir_aussi_-_pour_les_développeurs_qui_cherchent_à_localiser_les_add-ons_non-SDK">Voir aussi - pour les développeurs qui cherchent à localiser les add-ons non-SDK</h2>
-
-<ul>
- <li>Comment localiser les pages HTML, les fichiers XUL, et les fichiers js/jsm des add-ons bootstrapped : <a href="/fr/docs/Mozilla/Add-ons/Bootstrapped_extensions#Localization_%28L10n%29" title="/fr/Add-ons/Bootstrapped_extensions#Localization_%28L10n%29">Bootstrapped Extensions::Localization(l10n)</a></li>
- <li>Tutoriel Localisation XUL School : <a href="/fr/docs/Mozilla/Tech/XUL/Tutorial/Localization" title="/fr/docs/Mozilla/Tech/XUL/Tutorial/Localization">XUL : Localisation</a> et <a href="/fr/docs/Mozilla/Tech/XUL/Tutorial/Property_Files" title="/fr/docs/Mozilla/Tech/XUL/Tutorial/Property_Files">Les fichiers de propriétés</a></li>
- <li><a href="/fr/docs/Mozilla/Localization/Localizing_an_extension">Localisation d'une extension</a></li>
-</ul>
diff --git a/files/fr/mozilla/add-ons/thunderbird/index.html b/files/fr/mozilla/add-ons/thunderbird/index.html
deleted file mode 100644
index b15b535a59..0000000000
--- a/files/fr/mozilla/add-ons/thunderbird/index.html
+++ /dev/null
@@ -1,135 +0,0 @@
----
-title: Thunderbird extensions
-slug: Mozilla/Add-ons/Thunderbird
-tags:
- - Add-ons
- - Extensions
- - NeedsTranslation
- - TopicStub
- - thunderbird
-translation_of: Mozilla/Thunderbird/Thunderbird_extensions
----
-<div class="callout-box"><strong><a href="/en/Extensions/Thunderbird/Building_a_Thunderbird_extension" title="en/Building_a_Thunderbird_extension">Building a Thunderbird extension</a></strong><br>
-Step-by-step explanation on how to build an extension for Thunderbird.</div>
-
-<div>
-<p>{{AddonSidebar}}</p>
-The following documentation provides help for creating extensions for Mozilla's <a class="internal" href="/en/Thunderbird" title="En/Thunderbird">Thunderbird</a> email client. Although there are many similarities with <a href="/en/Extensions" title="en/Extensions">Firefox extensions</a> there are also some differences that may confound the starting developer.</div>
-
-<div><br>
-<strong>Please help!</strong> You can <a class="internal" href="/en/Extensions/Thunderbird/HowTos" title="en/Extensions/Thunderbird/HowTos">add a how-to</a> (a question or an answer or a code snippet), <a class="internal" href="/en/Extensions/Thunderbird/Useful_newsgroups_discussions" title="En/Extensions/Thunderbird/Useful newsgroups discussions">summarize and link to a relevant newsgroup discussion</a>, or create a tutorial. Need help? Contact <a class="internal" href="/User:jenzed" title="User:jenzed">jenzed</a>.</div>
-
-<table class="topicpage-table">
- <tbody>
- <tr>
- <td>
- <h2 id="Documentation" name="Documentation"><a href="/Special:Tags?tag=Extensions&amp;language=en" title="Special:Tags?tag=Extensions&amp;language=en">Documentation</a></h2>
-
- <h3 id="Getting_started_with_Thunderbird">Getting started with Thunderbird</h3>
-
- <p>A brave, young developer wants to develop an add-on for Thunderbird. Here's a few links to help them through this journey.</p>
-
- <ul>
- <li>Start by reading the tutorial and learn how to<a class="internal" href="/en/Extensions/Thunderbird/Building_a_Thunderbird_extension" title="En/Building a Thunderbird extension"> build a Thunderbird extension</a> (Outdated, still talks about overlays and the add-on builder is no longer available but the tutorial has not been updated.)</li>
- <li>Read about the <a href="/en/Thunderbird/Main_Windows" title="Main Windows">main windows</a> so that you know what one means when they say « thread pane », « preview pane », and « folder pane ».</li>
-
- <li>Want to do some real stuff? See <a class="external" href="http://blog.xulforum.org/index.php?post/2011/03/14/Basic-MimeMessage-demo" title="http://blog.xulforum.org/index.php?post/2011/03/14/Basic-MimeMessage-demo">how to inspect a message</a> (demo add-on included!)</li>
- <li>Play with our other <a href="/en/Extensions/Thunderbird/Demo_Addon" title="Demo Addon">demo add-on</a> that exercises some more advanced Thunderbird-specific features</li>
- <li>Want to do even more stuff? Don't reinvent the wheel: steal functions from the <a class="link-https" href="https://github.com/protz/thunderbird-stdlib" title="https://github.com/protz/thunderbird-stdlib">thunderbird-stdlib</a> project (doc <a class="external" href="http://protz.github.com/thunderbird-stdlib/doc/symbols/_global_.html" title="http://protz.github.com/thunderbird-stdlib/doc/symbols/_global_.html">here</a>). Functions for dealing with messages (delete them, archive them, change their tags, etc.) are included.</li>
- <li>Haven't found what you're looking for? Read the <a class="internal" href="/en/Extensions/Thunderbird/HowTos" rel="internal" title="en/Extensions/Thunderbird/HowTos">Thunderbird how-tos</a>; they contain a lot of recipes for things extensions want to do.</li>
- <li>Still haven't managed to do what you wanted? See the list of all <a class="external" href="http://wiki.mozilla.org/Thunderbird/CommunicationChannels" title="http://wiki.mozilla.org/Thunderbird/CommunicationChannels">Thunderbird communication channels </a>so that you know where to ask when you get stuck :-).</li>
- <li>Feeling really brave? Read the source using a <a class="external" href="http://doxygen.db48x.net/comm-central/html/" title="http://doxygen.db48x.net/comm-central/html/">fancy interface</a>; you can often find tests that demonstrate how to do what you're trying to achieve.</li>
- </ul>
-
- <h3 id="The_Gloda_database">The Gloda database</h3>
-
- <p>Thunderbird has a subsystem called Gloda. Gloda stands for « Global Database », and creates Thunderbird-wide relations between objects. Gloda provides concepts such as Conversations, Messages, Identities, Contacts. All these concepts are related together: a Conversation contains Messages which are linked to Identities (<strong>from</strong> field, <strong>to</strong> field) which are themselves part of a Contact: indeed, a contact has multiple identities.</p>
-
- <p>Typical use cases for Gloda: find all messages whose subject matches [search term], find all messages from [person], find all messages in the same thread as [a given message], find all messages involving [person], etc. etc.</p>
-
- <p>Gloda is extremely powerful and is used heavily by add-ons such as <a class="link-https" href="https://addons.mozilla.org/en-US/thunderbird/addon/gmail-conversation-view/" title="https://addons.mozilla.org/en-US/thunderbird/addon/gmail-conversation-view/">Thunderbird Conversations</a>. Learn more about Gloda:</p>
-
- <ul>
- <li>an overview of <a href="/en/Thunderbird/gloda" title="Gloda">Gloda</a></li>
- <li>learn how to create <a href="/en/Thunderbird/Creating_a_Gloda_message_query" title="Creating a gloda message query">your first message query</a> and read the <a href="/en/Thunderbird/Gloda_examples" title="Gloda examples">gloda examples</a></li>
- <li>learn about the Gloda internals: <a href="/en/Thunderbird/Gloda_debugging" title="Gloda debugging">Gloda debugging</a>, <a href="/en/Thunderbird/Gloda_indexing" title="Gloda indexing">Gloda indexing</a></li>
- </ul>
-
- <h3 id="More_Thunderbird-specific_links">More Thunderbird-specific links</h3>
-
- <p>Some of these links may be wildly out of date, but they still provide valuable information on the codebase.</p>
-
- <ul>
- <li><a class="internal" href="/en/Extensions/Thunderbird/An_overview_of_the_Thunderbird_interface" title="En/Extensions/Thunderbird/An overview of the Thunderbird interface">An overview of Thunderbird components</a></li>
- <li><a class="internal" href="/en/Extensions/Thunderbird/Thunderbird_developer_reference_docs" title="en/Extensions/Thunderbird/Thunderbird developer reference docs">Developer reference docs</a>:
- <ul>
- <li><a class="internal" href="/en/Folders" title="En/Folders">Folder classes</a></li>
- <li><a class="internal" href="/en/DB_Views_(message_lists)" title="En/DB Views (message lists)">DB views (message list)</a></li>
- <li><a class="internal" href="/en/Message_Summary_Database" title="En/Message Summary Database">Message summary database</a></li>
- <li><a class="internal" href="/en/MailNews_Protocols" title="En/MailNews Protocols">MailNews protocols</a></li>
- <li><a class="internal" href="/En/MailNews_Filters" rel="internal" title="En/MailNews Filters">MailNews filters</a></li>
- <li><a class="internal" href="/en/Extensions/Thunderbird/Error_reporting_tools" title="en/Extension Library/Extensions/Thunderbird/Error reporting tools">Error reporting tools</a></li>
- <li><a href="/en/Toolkit_API/STEEL" title="en/Toolkit API/STEEL">STEEL library</a> (obsolete as of Thunderbird 52, use <a class="link-https" href="https://github.com/protz/thunderbird-stdlib" title="https://github.com/protz/thunderbird-stdlib">https://github.com/protz/thunderbird-stdlib</a>)</li>
- <li><a class="external" href="http://quetzalcoatal.blogspot.com/2010/01/developing-new-account-types-part-0.html" title="http://quetzalcoatal.blogspot.com/2010/01/developing-new-account-types-part-0.html">Developing new account types</a> <strong>NEW!</strong></li>
- </ul>
- </li>
- <li><a class="internal" href="/en/Extensions/Thunderbird/Useful_newsgroups_discussions" title="En/Extensions/Thunderbird/Useful newsgroups discussions">Useful newsgroup discussions</a> (watch out, anything that's too old should be regarded suspiciously; there's been significant API rewrite over the past years, and most of these techniques are considerably easier now) </li>
- <li><a href="/en/Thunderbird/Thunderbird_API_documentation" title="en/Thunderbird/Thunderbird API documentation">Thunderbird API docs</a> (mostly a collection of out-of-date pages, relevance is rather dubious) </li>
- <li><a href="/en/Mozilla/Thunderbird/Releases" title="Thunderbird developer release notes">Thunderbird developer release notes</a> - changes in the recent Thunderbird updates affecting add-on developers. <a href="/Thunderbird_5_for_developers" title="Thunderbird 5 for developers">Thunderbird 5 for developers</a> has important information on MsgHdrToMimeMessage which is a central piece of code.</li>
- </ul>
-
- <h3 id="General_links">General links</h3>
-
- <ul>
- <li><a href="/en/Extensions/Thunderbird/Finding_the_code_for_a_feature" title="en/Extensions/Thunderbird/Finding the code for a feature">Finding the code for a feature</a></li>
- <li><a class="external" href="http://kb.mozillazine.org/Category:Thunderbird" title="http://kb.mozillazine.org/Category:Thunderbird">Mozillazine articles on Thunderbird</a></li>
- <li><a href="/Special:Tags?tag=Thunderbird" title="https://developer.mozilla.org/Special:Tags?tag=Thunderbird">All pages tagged with Thunderbird</a></li>
- <li><a href="/Special:Tags?tag=MailNews" title="https://developer.mozilla.org/Special:Tags?tag=MailNews">All pages tagged with MailNews</a></li>
- </ul>
- </td>
- <td>
- <h2 id="Community" name="Community">Community</h2>
-
- <ul>
- <li>See the list of all <a class="external" href="http://wiki.mozilla.org/Thunderbird/CommunicationChannels" title="http://wiki.mozilla.org/Thunderbird/CommunicationChannels">Thunderbird communication channels </a>first</li>
- <li>Among these are:</li>
- </ul>
-
- <p>{{ DiscussionList("dev-extensions", "mozilla.dev.extensions") }}</p>
-
- <ul>
- <li><a class="link-irc" href="irc://moznet/#extdev">#extdev IRC channel</a> / <a class="link-irc" href="irc://moznet/#maildev">#maildev IRC channel</a></li>
- <li><a class="external" href="http://forums.mozillazine.org/viewforum.php?f=19">MozillaZine forum</a></li>
- <li><a class="external" href="http://mozdev.org/mailman/listinfo/project_owners">mozdev project owners</a></li>
- <li><a href="/en/Extensions/Community" title="en/Extensions/Community">Other community links...</a></li>
- </ul>
-
- <h2 id="Tools" name="Tools">Tools</h2>
-
- <ul>
- <li><a class="link-https" href="https://addons.mozilla.org/en-US/firefox/addon/6622" rel="external nofollow" title="https://addons.mozilla.org/en-US/firefox/addon/6622">DOM Inspector</a> edit the live DOM (Firefox and Thunderbird)</li>
- <li><a class="link-https" href="https://addons.mozilla.org/thunderbird/addon/workspace-for-thunderbird/" title="https://addons.mozilla.org/thunderbird/addon/workspace-for-thunderbird/">Workspace for Thunderbird</a>, allows running code snippets in Thunderbird and inspecting variable structure and content</li>
- <li><a class="external" href="http://www.hacksrus.com/~ginda/venkman/" rel="external nofollow" title="http://www.hacksrus.com/~ginda/venkman/">Venkman</a>, a JavaScript debugger (<a class="external" href="http://addons.mozilla.org/en-US/firefox/addon/216" rel="external nofollow" title="http://addons.mozilla.org/en-US/firefox/addon/216">Firefox</a>, <a class="external" href="http://addons.mozilla.org/en-US/thunderbird/addon/216" rel="external nofollow" title="http://addons.mozilla.org/en-US/thunderbird/addon/216">Thunderbird</a>)</li>
- <li><a class="link-https" href="https://addons.mozilla.org/en-US/firefox/addon/7434/" rel="external nofollow" title="https://addons.mozilla.org/en-US/firefox/addon/7434/">Extension Developer's Extension</a> a suite of development tools</li>
- <li><a class="external" href="http://www.gijsk.com/" rel="external nofollow" title="http://www.gijsk.com/">Chrome List</a> view files in chrome:// (<a class="external" href="http://addons.mozilla.org/en-US/firefox/addon/4453" rel="external nofollow" title="http://addons.mozilla.org/en-US/firefox/addon/4453">Firefox</a>, <a class="external" href="http://addons.mozilla.org/en-US/thunderbird/addon/4453" rel="external nofollow" title="http://addons.mozilla.org/en-US/thunderbird/addon/4453">Thunderbird</a>)</li>
- <li><a href="/en/Mozmill" title="en/Mozmill">Mozmill</a> test tool and framework</li>
- <li><a class="external" href="http://xpcomviewer.mozdev.org/" rel="external nofollow" title="http://xpcomviewer.mozdev.org">XPCOMViewer</a> an XPCOM inspector (Firefox and Thunderbird)</li>
- </ul>
-
- <p>... <a class="internal" href="/en/Setting_up_extension_development_environment#Development_extensions" title="en/Setting up extension development environment#Development extensions">more tools</a> ...</p>
-
- <p><span class="alllinks"><a href="/Special:Tags?tag=Extensions:Tools&amp;language=en" title="Special:Tags?tag=Extensions:Tools&amp;language=en">View All...</a></span></p>
-
- <h2 id="Related_Topics" name="Related_Topics">Related Topics</h2>
-
- <dl>
- <dd><a href="/en/XUL" title="en/XUL">XUL</a>, <a href="/en/JavaScript" title="en/JavaScript">JavaScript</a>, <a href="/en/XPCOM" title="en/XPCOM">XPCOM</a>, <a href="/en/Themes" title="en/Themes">Themes</a>, <a href="/En/Developer_Guide" title="en/Developing_Mozilla">Developing Mozilla</a></dd>
- </dl>
- </td>
- </tr>
- </tbody>
-</table>
-
-<p><span class="comment">Categories</span></p>
-
-<p>{{ languages( { "ja": "ja/Extensions/Thunderbird" } ) }}</p>
diff --git a/files/fr/mozilla/add-ons/thèmes/fond/index.html b/files/fr/mozilla/add-ons/thèmes/fond/index.html
deleted file mode 100644
index 2af0b0031c..0000000000
--- a/files/fr/mozilla/add-ons/thèmes/fond/index.html
+++ /dev/null
@@ -1,79 +0,0 @@
----
-title: Thème de fond
-slug: Mozilla/Add-ons/Thèmes/Fond
-translation_of: Mozilla/Add-ons/Themes/Lightweight_themes
----
-<p>{{AddonSidebar}}</p>
-
-<h2 id="Comment_créer_votre_propre_thème">Comment créer votre propre thème</h2>
-
-<div class="primary auto" id="getting-started">
-<p>Les thèmes sont fait d'une image "header" qui va remplacer le fond de base de Firefox.</p>
-
-<p>Vous avez fini votre thème ? <a href="https://addons.mozilla.org/developers/theme/submit">Mettez-le en ligne maintenant !</a></p>
-
-<h3 id="Création_de_l'image_header_du_thème">Création de l'image "header" du thème</h3>
-
-<p>L'image header est affichée en fond en haut de la fenêtre du navigateur, on la voit aussi derrière les barres d'outils, la barre d'adresse, la barre "Rehercher" et la ligne d'onglets. Elle sera <strong>ancrée au coin supérieur-droit</strong> de la fenêtre.</p>
-
-<p class="screenshot"><img alt="" src="https://mdn.mozillademos.org/files/9929/header-step.jpg" style="height: 215px; width: 1059px;"></p>
-
-<ul>
- <li><a href="https://addons.cdn.mozilla.net/static/img/docs/themes/header.jpg">Voir un exemple d'image Header ici.</a></li>
-</ul>
-
-<h4 id="Image_Requise">Image Requise</h4>
-
-<ul>
- <li>Les dimensions doivent être <strong>3000px de large × 200px de hauteur</strong></li>
- <li>En format PNG ou JPG</li>
- <li>L'image ne doit pas faire plus de 300KB de mémoire</li>
-</ul>
-
-<h4 id="Petites_aides">Petites aides</h4>
-
-<ul>
- <li>Une image discrète, peu contrastée et assez uniforme est recommandée; une image très détaillée ressortira trop par rapport à l'interface du navigateur</li>
- <li>Firefox peut afficher plus loin que la partie basse de l'image si une autre barre  d'outils ou d'autres éléments d'interface sont ajoutés en haut de la fenêtre.</li>
- <li>Le coin en haut à droite de l'image devrait avoir les informations les plus importantes -quand l'utilisateur agrandit la fenêtre du navigateur, celui-ci montre plus du côté gauche de l'image.</li>
-</ul>
-
-<h4 id="Ressources_édition_d'images_en_ligne">Ressources : édition d'images en ligne</h4>
-
-<ul>
- <li><a href="http://www.pixlr.com">Pixlr</a> — Pixlr offre un outil professionnel et simple d'utilisation pour créer et modifier des images dans votre navigateur.</li>
- <li><a href="http://www.photoshop.com/tools?wf=editor">Photoshop</a> — Retouchez, tournez et modifiez des photos avec Photoshop® Express, un éditeur de photo en ligne gratuit.</li>
-</ul>
-
-<h3 id="Envoyer_votre_thème_personnalisé">Envoyer votre thème personnalisé</h3>
-
-<p>Pour commencer à envoyer vos images, allez sur la page <a href="https://addons.mozilla.org/developers/theme/submit">Soumettre un thème.</a></p>
-
-<ol class="itemized">
- <li><strong>Nommez votre thème</strong> — choisissez un nom unique pour votre thème. 2 thèmes avec le même nom ne sont pas autorisés, alors vus devriez peut-être essayer plusieurs fois pour trouver un nom unique.</li>
- <li><strong>Choisissez une catégorie et des tags</strong> — sélectionnez une catégorie et entrez des tags (mots clés) qui décrivent le mieux votre thème. Rappelez-vous qu'un utilisateur pourrait rejeter votre thème si sa catégorie et ses tags ne sont pas fidèles à votre thème.</li>
- <li><strong>Décrivez votre thème</strong> — écrivez une courte description de votre thème. Rappelez-vous qu'un utilisateur pourrait rejeter votre thème si sa description n'est pas fidèle à votre thème.</li>
- <li><strong>Sélectionnez</strong> une license pour votre thème — décidez une license de droits d'auteurs pour votre travail. <a href="http://creativecommons.org/licenses/">Lire plus à propos des types de licences Creative Common.</a>
- <ul>
- <li><strong>Important:</strong> Soyez sur d'avoir les droits d'utiliser cette image dans votre thème !</li>
- </ul>
- </li>
- <li><strong>Envoyez votre image</strong> — soyez sur qu'elle fait moins de 300 KB et qu'elle soit au formant JPG ou PNG !</li>
- <li><strong>Sélectionnez la couleur des textes et des onglets</strong> — vous pouvez choisir la couleur de "fond" des onglets et celle des textes qui colle le mieux avec votre image header.</li>
- <li><strong>Prévisualisez votre thème</strong> — vous êtes prêts à prévisualiser votre thème ! Passez simplement votre souris sur le bouton "Soumettre le thème", et vous verrez à quoi il ressemble.</li>
- <li><strong>Soumettre votre thème</strong> — si tout à l'air bon, cliquez sur le bouton "Soumettre le thème" et vous avez fini ! Vous pouvez voir tous les thèmes que vous avez créé sur votre page de profil.
- <ul>
- <li><strong>Info:</strong> pour vous assurer que votre thème est approuvé pour la galerie, soyez sur qu'il n'enfreint aucune règles des Conditions d'Utilisation !</li>
- </ul>
- </li>
-</ol>
-
-<p class="call-to-submit"><a class="button prominent" href="https://addons.mozilla.org/en-US/developers/theme/submit">soumettre votre thème ici</a></p>
-
-<h2 class="call-to-submit" id="Plus_de_tutoriels">Plus de tutoriels</h2>
-
-<p><a href="http://vanillaorchidstutorials.blogspot.com/2015/11/mozilla-themes-focal-point-sizing.html">Mozilla Themes Focal Point on Sizing</a> - A tutorial on theming with a focus on sizing, by VanillaOrchids.<br>
- <br>
- <br>
- <sup>Traduit par Tocram2 ;)</sup></p>
-</div>
diff --git a/files/fr/mozilla/add-ons/thèmes/index.html b/files/fr/mozilla/add-ons/thèmes/index.html
deleted file mode 100644
index b0b2cd163a..0000000000
--- a/files/fr/mozilla/add-ons/thèmes/index.html
+++ /dev/null
@@ -1,45 +0,0 @@
----
-title: Thèmes
-slug: Mozilla/Add-ons/Thèmes
-tags:
- - Apparences
- - Extensions
- - Theme
-translation_of: Mozilla/Add-ons/Themes
----
-<p>{{AddonSidebar}}</p>
-
-<p><span id="result_box" lang="fr"><span>Les thèmes vous permettent de modifier l'apparence de l'interface utilisateur et de la personnaliser selon vos goûts.</span> <span>Apprenez comment créer et partager des thèmes !</span></span></p>
-
-<div class="column-container">
-<div class="column-half">
-<h2 class="Documentation" id="Documentation" name="Documentation">Documentation</h2>
-
-<dl>
- <dt><a href="https://developer.mozilla.org/fr/Add-ons/Themes/Theme_concepts" title="Building a Theme">Créer un thème de navigateur</a></dt>
- <dd>Introduction pour la création de thèmes pour les dernières versions de Firefox.</dd>
- <dt>
- <h2 id="Thèmes_légers">Thèmes légers</h2>
- </dt>
- <dt><a href="https://developer.mozilla.org/fr/Add-ons/Themes/Lightweight_themes" title="Themes/Lightweight themes">Thèmes légers</a></dt>
- <dd>La création de thèmes utilisant peu d'espaces pour Firefox.</dd>
- <dt><a href="https://developer.mozilla.org/fr/Add-ons/Themes/Lightweight_Themes/FAQ" title="Themes/Common_Firefox_Theme_Issues_and_Solutions">FAQ des thèmes légers</a></dt>
- <dd>Donne les réponses aux questions les plus courantes.</dd>
-</dl>
-</div>
-
-<div class="column-half">
-<h2 class="Tools" id="Tools" name="Tools">Outils et ressources</h2>
-
-<ul>
- <li><a href="https://developer.mozilla.org/fr/Add-ons/WebExtensions/manifest.json/theme">Thème de navigateur les clés du manifest.json</a></li>
- <li><a href="https://developer.mozilla.org/fr/Add-ons/WebExtensions/API/theme">API extensions pour les thèmes de navigateur</a></li>
- <li><a href="http://vanillaorchidstutorials.blogspot.com/2015/11/mozilla-themes-focal-point-sizing.html">Tutoriel pour les thèmes légers (en)</a></li>
- <li><a href="https://discourse.mozilla.org/c/add-ons/themes">Discussions du forum (en)</a></li>
- <li><a href="https://blog.mozilla.org/addons/category/personas/">Thèmes abordés dans les fils du blog (en)</a></li>
- <li>  <a href="https://developer.mozilla.org/en-US/Mozilla/Add-ons/Themes/Obsolete">Ressources archivées</a></li>
-</ul>
-</div>
-</div>
-
-<p> </p>
diff --git a/files/fr/mozilla/add-ons/thèmes/theme_concepts/index.html b/files/fr/mozilla/add-ons/thèmes/theme_concepts/index.html
deleted file mode 100644
index 8856f4e38f..0000000000
--- a/files/fr/mozilla/add-ons/thèmes/theme_concepts/index.html
+++ /dev/null
@@ -1,231 +0,0 @@
----
-title: Theme concepts
-slug: Mozilla/Add-ons/Thèmes/Theme_concepts
-translation_of: Mozilla/Add-ons/Themes/Theme_concepts
----
-<div>{{AddonSidebar()}}</div>
-
-<p>Dans Firefox, les thèmes développés par la bibliothèque <a href="/en-US/Add-ons/WebExtensions">WebExtensions API</a> vous permet de modifier le rendu du navigateur. Le cas se présente en ajoutant des images à la région de l'en-tête du navigateur Firefox : il s'agit de la partie, en arrière-plan, des barres de menu, d'outils, d'hyperliens, de recherche et de l'ensemble des onglets d'une même fenêtre.</p>
-
-<p>These theme options can be implemented as static themes (although the theme images themselves may be animated) or as dynamic themes created in a browser extension.</p>
-
-<div class="note">
-<p>If you have a <a href="/en-US/docs/Mozilla/Add-ons/Themes/Lightweight_themes">lightweight theme</a> it will be converted to this new theme format automatically before lightweight themes are deprecated. You do not need to port your theme. However, please feel free to update your themes to use any of the new features described here.</p>
-</div>
-
-<h2 id="Static_themes">Static themes</h2>
-
-<div class="note">
-<p id="Image_formats">Note that you can't yet submit static WebExtension-based themes to addons.mozilla.org. The work to support this is tracked in <a href="https://github.com/mozilla/addons/issues/501">https://github.com/mozilla/addons/issues/501</a>. If you want to share a theme with other users, you'll need to make it either a <a href="/en-US/docs/Mozilla/Add-ons/Themes/Lightweight_themes">lightweight theme</a> or a <a href="/en-US/Add-ons/WebExtensions/API/theme">dynamic theme</a>.</p>
-</div>
-
-<p>Static themes are specified using the same resources as a browser extension: a <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json">manifest.json</a> file to define the theme components with those components stored in the same folder as the manifest.json file or a sub folder. These resources are then packed in a zip for publication on <a href="https://addons.mozilla.org">addons.mozilla.org</a> (AMO).</p>
-
-<div class="note">
-<p>A theme and browser extension functionality cannot be defined in one package, such as including a theme to complement an extension. You can, however, programmatically include a theme in an extension using the Theme API. See <a href="#Dynamic_themes">Dynamic themes</a>.</p>
-</div>
-
-<h3 id="Defining_a_theme">Defining a theme</h3>
-
-<p>To create a theme (in this example a simple, single image theme):</p>
-
-<ul>
- <li>Create a folder in a suitable location on your computer.</li>
- <li>Add the theme image file to the folder:
- <pre>&lt;mytheme&gt;
- &lt;your_header_image&gt;.&lt;type&gt;</pre>
- </li>
- <li>Create a file called manifest.json in the folder and edit its content as follows:
- <pre class="brush: json">{
- "manifest_version": 2,
- "version": "1.0",
- "name": "&lt;your_theme_name&gt;",
- "theme": {
- "images": {
- "headerURL": "&lt;your_header_image&gt;.&lt;type&gt;"
- },
- "colors": {
- "accentcolor": "#FFFFFF",
- "textcolor": "#000"
- }
- }
-}
-</pre>
- Where:
-
- <ul>
- <li><code>"accentcolor":</code> is the heading area background color for your theme.</li>
- <li><code>"</code><code>textcolor</code><code>":</code> the color of the text in the heading area.</li>
- </ul>
- </li>
- <li>Package your theme and submit it to AMO, <a href="/en-US/Add-ons/WebExtensions/Publishing_your_WebExtension">following these instructions</a>.</li>
-</ul>
-
-<h3 id="Static_theme_approaches">Static theme approaches</h3>
-
-<p>There are two approaches you can take to theming the header area of Firefox: using a single image or using multiple images. You could combine the two, but it’s easier to treat them separately.</p>
-
-<h4 id="Single_image_themes">Single image themes</h4>
-
-<p>This is the basic or minimal theming option, where you define:</p>
-
-<ul>
- <li>a single image, which is anchored to the top right of the header area.</li>
- <li>A color for the text in the header.</li>
-</ul>
-
-<p>The area your header image needs to fill is a maximum of 200 pixels high. The maximum image width is determined by the resolution of the monitor Firefox is displaying on and how much of the monitor Firefox is using. Practically, this means you would need to allow for a width of up to 5120 pixels wide (for the next generation of 5k monitors). However, rather than creating a very wide image, a better approach is to use a narrower image with a transparent left edge so that it fades to the background color. For example, we could use this image<br>
- <img alt="An image of a weta (the common name for a group of about 70 insect species in the families Anostostomatidae and Rhaphidophoridae, endemic to New Zealand) with the left edge fading to total transparency." src="https://mdn.mozillademos.org/files/15215/weta.png" style="height: 200px; width: 406px;"><br>
- combined with a complementary background color, to create this effect in the header<br>
- <img alt="A single image theme using the weta.png image" src="https://mdn.mozillademos.org/files/15217/basic_theme.png" style="height: 113px; width: 679px;"></p>
-
-<p>See details about this theme in the <a href="https://github.com/mdn/webextensions-examples/tree/master/themes">themes</a> example <a href="https://github.com/mdn/webextensions-examples/tree/master/themes/weta_fade">weta_fade</a>.</p>
-
-<p>Obviously, you can still provide a single wide image if you prefer.</p>
-
-<h4 id="Multiple_image_themes">Multiple image themes</h4>
-
-<p>As an alternative to creating a single image theme, you have the option to use multiple images. These images can be individually anchored to locations within the header, with the option to apply tiling to each image.</p>
-
-<p>Depending on the effect you want to create you may need to suppress the mandatory <code>"</code><code>headerURL</code><code>":</code> image with an empty or transparent image. You would use an empty or transparent image if, for example, you wanted to tile a centrally justified image, such as<br>
- <img alt="An image of a weta (the common name for a group of about 70 insect species in the families Anostostomatidae and Rhaphidophoridae, endemic to New Zealand) with the left and right edges fading to total transparency." src="https://mdn.mozillademos.org/files/15219/weta_for_tiling.png" style="height: 200px; width: 270px;"><br>
- to create this effect<br>
- <img alt="A single image theme using the additional images option to align an image to the center of the heading and tile it. " src="https://mdn.mozillademos.org/files/15221/tiled_theme.png" style="height: 113px; width: 679px;"><br>
- Here you specify the weta image like this:</p>
-
-<pre class="brush: json" dir="ltr">"images": {
- "headerURL": "empty.png",
- "additional_backgrounds": [ "weta_for_tiling.png"]
-},</pre>
-
-<p dir="ltr">and the images tiling with:</p>
-
-<pre class="brush: json" dir="ltr">"properties": {
- "additional_backgrounds_alignment": [ "top" ],
- "additional_backgrounds_tiling": [ "repeat" ]
-},</pre>
-
-<p>Full details of how to setup this theme can be found in the <a href="https://github.com/mdn/webextensions-examples/tree/master/themes">themes</a> example <a href="https://github.com/mdn/webextensions-examples/tree/master/themes/weta_tiled">weta_tiled</a>. Full detais of the alignment and tiling options can be found in the <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/theme">"theme" key description</a>.</p>
-
-<p>Alternatively, you can use multiple images, say combining the original weta image with this one anchored to the left of the header<br>
- <img alt="An image of a weta (the common name for a group of about 70 insect species in the families Anostostomatidae and Rhaphidophoridae, endemic to New Zealand) with the right edge fading to total transparency." src="https://mdn.mozillademos.org/files/15223/weta-left.png" style="height: 200px; width: 406px;"><br>
- to create this effect<br>
- <img alt="A theme using the additional images option to place two mirrored image to the left and right of the browser header." src="https://mdn.mozillademos.org/files/15225/multi_image_theme.png" style="height: 113px; width: 679px;"></p>
-
-<p>Where the images are specified with:</p>
-
-<pre class="brush: json" dir="ltr">"images": {
- "headerURL": "empty.png",
- "additional_backgrounds": [ "weta.png", "weta-left.png"]
-},</pre>
-
-<p dir="ltr">and their alignment by:</p>
-
-<pre class="brush: json" dir="ltr">"properties": {
- "additional_backgrounds_alignment": [ "right top" , "left top" ]
-},</pre>
-
-<p>Full details of how to setup this theme can be found in the <a href="https://github.com/mdn/webextensions-examples/tree/master/themes">themes</a> example <a href="https://github.com/mdn/webextensions-examples/tree/master/themes/weta_mirror">weta_mirror</a>. Full detais of the alignment options can be found in the <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/theme">"theme" key description</a>.</p>
-
-<h3 id="Static_animated_themes">Static animated themes</h3>
-
-<p>It is possible to create an animated theme using an APNG format image, as in the <a href="https://github.com/mdn/webextensions-examples/tree/master/themes">themes</a> example <a href="https://github.com/mdn/webextensions-examples/tree/master/themes/animated">animated</a>. However, remember that rapid animations, such as the one in the example might be too distracting for a practical theme.</p>
-
-<p dir="ltr">You can also animate themes programmatically, which we discuss in <a href="#Dynamic_themes">Dynamic themes</a>.</p>
-
-<h2 id="Dynamic_themes">Dynamic themes</h2>
-
-<p>As an alternative to defining a static theme, you can use the {{WebExtAPIRef("theme")}} API to control the theme used in Firefox from within a browser extension. There are a couple of use cases for this option:</p>
-
-<ul>
- <li>To bundle a theme with a browser extension, as an added extra.</li>
- <li>Create a dynamic theme that changes under programmatic control.</li>
-</ul>
-
-<p>And, obviously, you can combine the two and bundle a programmatically controlled theme with your extension.</p>
-
-<p>Using the {{WebExtAPIRef("theme")}} API is straightforward. First, request "theme"<a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/permissions"> permission</a> in the extension's<a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json"> manifest.json</a> file. Next, you build a JSON object containing the same information you would use in a static theme’s manifest.json, Finally, pass the JSON object in a {{WebExtAPIRef("theme.update()")}} call.</p>
-
-<p>For example, the following code, from the <a href="https://github.com/mdn/webextensions-examples/tree/master/dynamic-theme">dynamic theme example</a> defines the content for the day and night elements of the dynamic theme:</p>
-
-<pre class="brush: js" dir="ltr">const themes = {
- 'day': {
- images: {
- headerURL: 'sun.jpg',
- },
- colors: {
- accentcolor: '#CF723F',
- textcolor: '#111',
- }
- },
- 'night': {
- images: {
- headerURL: 'moon.jpg',
- },
- colors: {
- accentcolor: '#000',
- textcolor: '#fff',
- }
- }
-};</pre>
-
-<p>The theme.Theme object is then passed to {{WebExtAPIRef("theme.update()")}} to change the header theme, as in this code snippet from the same example:</p>
-
-<pre class="brush: js" dir="ltr">function setTheme(theme) {
- if (currentTheme === theme) {
- // No point in changing the theme if it has already been set.
- return;
- }
- currentTheme = theme;
- browser.theme.update(themes[theme]);
-}</pre>
-
-<p dir="ltr">Learn more about dynamic themes and see an additional example in the following video:</p>
-
-<p dir="ltr">{{EmbedYouTube("ycckyrUN0AY")}}</p>
-
-<p dir="ltr"> </p>
-
-<p dir="ltr">If you have not built a browser extension before, check out <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Your_first_WebExtension">Your first extension</a> for a step-by-step guide.</p>
-
-<h2 id="Cross_browser_compatibility">Cross browser compatibility</h2>
-
-<p>There is currently limited compatibility between themes in the major browsers. Opera takes an entirely different approach, and Microsoft Edge themes are not yet open to developers.</p>
-
-<p>There is some compatibility between Firefox static themes and Chrome themes, providing the ability to port a single header image theme from Firefox to Chrome. This would be done by amending the manifest.json keys as follows:</p>
-
-<ul>
- <li><code>"headerURL":</code> to <code>"theme_frame":</code></li>
- <li><code>"accentcolor":</code> to <code>"frame":</code></li>
- <li><code>"textcolor":</code> to <code>"tab_text":</code></li>
-</ul>
-
-<p>Noting that "frame": and "tab_text": support RGB color definition only.</p>
-
-<p>So, in the single image theme example (weta_fade) could be supported in Chrome using the following manifest.json file:</p>
-
-<pre class="brush: json" dir="ltr">{
- "manifest_version": 2,
- "version": "1.0",
- "name": "&lt;your_theme_name&gt;",
- "theme": {
- "images": {
- "theme_frame": "weta.png"
- },
- "colors": {
- "frame": [ 173 , 176 , 159 ],
- "tab_text": [ 0 , 0 , 0 ]
- }
- }
-}</pre>
-
-<p>However, there will be a couple of differences:</p>
-
-<ul>
- <li>Chrome tiles the <code>“theme_frame”:</code> image from the left of the header area.</li>
- <li><code>"tab_text":</code> only affects the text on the highlighted/active tab.</li>
-</ul>
-
-<p dir="ltr"><img alt="The basic theme example using the Chrome compatible manifest.json keys, showing the differences in how those keys are implemented." src="https://mdn.mozillademos.org/files/15227/basic_in_chrome.png" style="height: 113px; width: 679px;"></p>
-
-<p>For more information, see the notes on <a href="/en-US/Add-ons/WebExtensions/manifest.json/theme#Chrome_compatibility">Chrome compatibility</a>.</p>
diff --git a/files/fr/mozilla/add-ons/webextensions/embedded_webextensions/index.html b/files/fr/mozilla/add-ons/webextensions/embedded_webextensions/index.html
deleted file mode 100644
index 7a80ac75e7..0000000000
--- a/files/fr/mozilla/add-ons/webextensions/embedded_webextensions/index.html
+++ /dev/null
@@ -1,219 +0,0 @@
----
-title: WebExtensions intégrées
-slug: Mozilla/Add-ons/WebExtensions/Embedded_WebExtensions
-translation_of: Archive/Add-ons/Embedded_WebExtensions
----
-<div>{{AddonSidebar}}</div>
-
-<div class="warning">
-<p>À partir de Firefox 57 (sorti en novembre 2017), la prise en charge des types d'extensions héritées a été supprimée, y compris les extensions héritées qui intègrent les WebExtensions.</p>
-
-<p>A partir de Firefox 64 (sortie en décembre 2018), la prise en charge des extensions bootstrapped sera supprimée, y compris la prise en charge des extensions bootstrapped qui intègrent des WebExtensions.</p>
-</div>
-
-<p>A partir de Firefox 51, vous pouvez intégrer une WebExtension dans une <a href="/fr/docs/Mozilla/Add-ons/Bootstrapped_extensions">extension bootstrapped</a> classique ou dans une extension dans le <a href="/fr/docs/Mozilla/Add-ons/SDK">SDK des extensions</a>.</p>
-
-<p>Les fichiers de WebExtension intégrés sont packagés dans les modules complémentaires existant. La WebExtension intégrée ne partage pas directement son champ d'application avec l'ajout d'un complément hérité, mais ils peuvent échanger des messages à l'aide des fonctions de messagerie définies dans l'API {{WebExtAPIRef("runtime")}}.</p>
-
-<p><img alt="" src="https://mdn.mozillademos.org/files/13895/embedded-we.png" style="display: block; height: 522px; margin-left: auto; margin-right: auto; width: 429px;"></p>
-
-<p>Cela signifie que vous pouvez migrer un add-on existant vers WebExtensions une pièce à la fois, et disposer d'un add-on entièrement fonctionnel à chaque étape. En particulier,  il vous permet de <a href="/en-US/Add-ons/WebExtensions/Embedded_WebExtensions#Migrating_data_from_legacy_add-ons">migrer des données stockées</a> à partir d'un add-on existant vers une WebExtension, en écrivant un add-on hybride intermédiaire qui lit les données à l'aide des API existantes (par exemple, <a href="/en-US/docs/Mozilla/Add-ons/SDK/High-Level_APIs/simple-prefs">simple-prefs</a> ou le <a href="/en-US/docs/Mozilla/JavaScript_code_modules/Services.jsm">service</a> de préférence) et les écrit en utilisant les APIs WebExtension (par exemple, {{WebExtAPIRef("storage")}}).</p>
-
-<p>Avec ce guide, nous avons écrit deux exemples montrant comment utiliser les WebExtensions embarquées pour faciliter la migration à partir d'un type d'add-on existant. L'un montre <a href="https://github.com/mdn/webextensions-examples/tree/master/embedded-webextension-bootstrapped">comment porter à partir d'un add-on amorcé</a>, et l'autre montre <a href="https://github.com/mdn/webextensions-examples/tree/master/embedded-webextension-sdk">comment porter à partir d'un add-on sdk</a>.</p>
-
-<p>Pour intégrer une WebExtension, vous aurez besoin de Firefox 51 ou ultérieur. Pour intégrer une WebExtension dans un add-on SDK, vous aurez également besoin de <a href="https://www.npmjs.com/package/jpm">jpm 1.2.0</a>.</p>
-
-<div class="note">
-<p>Firefox 57 laisse tomber la prise en charge des types d'add-on hérités. Si vous maintenez actuellement un add-on au format de l'ancien add-on et que vous souhaitez migrer des données, publiez une mise à jour contenant une WebExtension intégrée le plus tôt possible. Si la mise à jour est publiée près de la <a href="https://wiki.mozilla.org/RapidRelease/Calendar">date de sortie de Firefox 57</a>, les données stockées dans votre add-on seront perdues si l'utilisateur met à jour Firefox avant de recevoir votre mise à jour du add-on.</p>
-</div>
-
-<h2 id="Incorporation_d'une_WebExtension">Incorporation d'une WebExtension</h2>
-
-<p>Si l'extension héritée est une extension bootstrap avec un <a href="/fr/Add-ons/Install_Manifests">install.rdf</a>, incluez la propriété  "hasEmbeddedWebExtension" dans le RDF, contenant la valeur "true":</p>
-
-<pre>&lt;<span class="pl-ent">em</span><span class="pl-ent">:</span><span class="pl-ent">hasEmbeddedWebExtension</span>&gt;true&lt;/<span class="pl-ent">em</span><span class="pl-ent">:</span><span class="pl-ent">hasEmbeddedWebExtension</span>&gt;</pre>
-
-<div>Si le complément hérité est une SDK add-on, incluez la clé "hasEmbeddedWebExtension" dans le package.json, définissez sur true:</div>
-
-<div> </div>
-
-<pre class="brush: json"><span class="pl-s"><span class="pl-pds">"</span>hasEmbeddedWebExtension<span class="pl-pds">"</span></span>: <span class="pl-c1">true</span>
-</pre>
-
-<div>La WebExtension elle-même vit dans un dossier de niveau supérieur appelé "webextension" dans l'add-on. Par exemple:</div>
-
-<div> </div>
-
-<pre>my-boostrapped-addon/
- chrome/
- webextension/
- manifest.json
- background.js
- ...
- bootstrap.js
- chrome.manifest
- install.rdf</pre>
-
-<div> </div>
-
-<div>
-<pre>my-sdk-addon/
- index.js
- package.json
- webextension/
- manifest.json
- background.js
- ...</pre>
-</div>
-
-<p>Notez que la WebExtension intégrée doit se trouver directement dans le répertoire <code>webextension/</code>.  Il ne peut pas être dans un sous-répertoire. Cela signifie également que vous ne pouvez pas intégrer plus d'une WebExtension.</p>
-
-<p>Firefox ne traite pas les WebExtensions intégrées comme une extension indépendante. Pour cette raison, vous ne devez pas spécifier une <a href="/fr/docs/Mozilla/Add-ons/WebExtensions/WebExtensions_and_the_Add-on_ID">identification d'extension</a> pour elle. Si vous le faites, il sera simplement ignoré.</p>
-
-<p>Toutefois, lorsque vous avez terminé la migration de l'add-on et supprimé le code d'intégration existant, vous devez inclure une clé d'<a href="/fr/docs/Mozilla/Add-ons/WebExtensions/manifest.json/applications">application</a> pour l'identifiant soit identique à un ID d'extension original. De cette façon, <a href="https://addons.mozilla.org/fr/firefox/">addons.mozilla.org</a> reconnaîtra que WebExtension est une mise à jour de l'extension existante.</p>
-
-<h2 id="Démarré_la_WebExtension">Démarré la WebExtension</h2>
-
-<p>La WebExtension intégrée doit être explicitement démarré par l'extension d'intégration.</p>
-
-<p>Si l'extension d'intégration est un add-on bootstrap, l'argument de données passé à la fonction de <code><a href="/fr/Add-ons/Bootstrapped_extensions#startup">startup()</a></code> obtiendra une propriété supplémentaire à la <code>webExtension</code> :</p>
-
-<pre class="brush: js">// bootstrapped add-on
-
-<span class="pl-k">function</span> <span class="pl-en">startup</span>({webExtension}) {
-
-...</pre>
-
-<p>Si l'add-on d'intégration est une extension SDK, il pourra accéder à un objet WebExtension à l'aide du module <code>sdk/webextension</code> :</p>
-
-<pre class="brush: js"><span class="pl-k">// SDK add-on
-
-const</span> <span class="pl-c1">webExtension</span> <span class="pl-k">=</span> <span class="pl-c1">require</span>(<span class="pl-s"><span class="pl-pds">"</span>sdk/webextension<span class="pl-pds">"</span></span>);</pre>
-
-<p>Quoi qu'il en soit, cet objet a une seule fonction, <code>startup()</code>, qui renvoie une <code><a href="/fr/docs/Web/JavaScript/Reference/Global_Objects/Promise">Promise</a></code>. La promesse résolue à un objet avec un seul navigateur de propriétés :  il contient les API {{WebExtAPIRef("runtime")}} que le complément d'intégration peut utiliser pour échanger des messages avec le WebExtension intégré :</p>
-
-<ul>
- <li>{{WebExtAPIRef("runtime.onConnect")}}</li>
- <li>{{WebExtAPIRef("runtime.onMessage")}}</li>
-</ul>
-
-<p>Pour exemple:</p>
-
-<pre class="brush: js">// bootstrapped add-on
-
-function startup({webExtension}) {
- webExtension.startup().then(api =&gt; {
- const {browser} = api;
- browser.runtime.onMessage.addListener(handleMessage);
- });
-}</pre>
-
-<pre class="brush: js"><span class="pl-k">// SDK add-on</span>
-
-const webExtension = require("sdk/webextension");
-
-webExtension.startup().then(api =&gt; {
- const {browser} = api;
- browser.runtime.onMessage.addListener(handleMessage);
-});
-</pre>
-
-<p>Notez que l'ajout d'un module d'extension intégré ne peut pas démarrer les communications: il peut recevoir (et éventuellement à répondre) des messages ponctuels, en utilisant <code>onMessage</code>, et peut accepter des requêtes de connexion en utilisant <code>onConnect</code>.</p>
-
-<p>La promesse est rejetée si le WebExtension intégré manque un manifeste ou si le manifeste est invalide. Dans ce cas, vous verrez plus de détails dans la <a href="/fr/Add-ons/WebExtensions/Debugging_(before_Firefox_50)#Viewing_log_output">boite à outils de la console du navigateur</a>.</p>
-
-<h2 id="Echange_des_messages">Echange des messages</h2>
-
-<p>Une fois que la WebExtension intégré est en cours d'exécution, elle peut échanger des messages avec l'add-on hérité en utilisant le sous-ensemble des APIs {{WebExtAPIRef("runtime")}} :</p>
-
-<ul>
- <li>Il peut envoyer des messages uniques en utilisant {{WebExtAPIRef("runtime.sendMessage()")}}.</li>
- <li>Il peut configurer une connexion en utilisant  {{WebExtAPIRef("runtime.connect()")}}.</li>
-</ul>
-
-<h3 id="Messagerie_sans_connexion">Messagerie sans connexion</h3>
-
-<p>Pour envoyer un message unique, la WebExtension peut utiliser {{WebExtAPIRef("runtime.sendMessage()")}}. Vous pouvez omettre l'argument extensionId, car le navigateur considère la WebExtension intégrée comme faisant partie intégrante de l'add-on :</p>
-
-<pre class="brush: js">browser.runtime.sendMessage("message-from-webextension").then(reply =&gt; {
- if (reply) {
- console.log("response from legacy add-on: " + reply.content);
- }
-});</pre>
-
-<p>L'add-on d'intégration peut recevoir (et répondre facultativement) ce message en utilisant l'objet {{WebExtAPIRef("runtime.onMessage")}} :</p>
-
-<pre class="brush: js">// bootstrapped add-on
-
-function startup({webExtension}) {
- // Start the embedded webextension.
- webExtension.startup().then(api =&gt; {
- const {browser} = api;
- browser.runtime.onMessage.addListener((msg, sender, sendReply) =&gt; {
- if (msg == "message-from-webextension") {
- sendReply({
- content: "reply from legacy add-on"
- });
- }
- });
- });
-}</pre>
-
-<h3 id="Messagerie_orientée_connexion">Messagerie orientée connexion</h3>
-
-<p>Pour configurer une connexion plus longue entre la WebExtension et l'extension héritée, la WebExtension peut utiliser {{WebExtAPIRef("runtime.connect()")}}.</p>
-
-<pre class="brush: js">var port = browser.runtime.connect({name: "connection-to-legacy"});
-
-port.onMessage.addListener(function(message) {
- console.log("Message from legacy add-on: " + message.content);
-});
-</pre>
-
-<p>L'extension héritée peut écouter les tentatives de connexion à l'aide de {{WebExtAPIRef("runtime.onConnect")}}, et les deux côtés peuvent alors utiliser {{webExtAPIRef("runtime.Port")}} pour échanger des messages :</p>
-
-<pre class="brush: js">function startup({webExtension}) {
- // Start the embedded webextension.
- webExtension.startup().then(api =&gt; {
- const {browser} = api;
- browser.runtime.onConnect.addListener((port) =&gt; {
- port.postMessage({
- content: "content from legacy add-on"
- });
- });
- });
-}</pre>
-
-<h2 id="Migration_de_données_à_partir_d'extensions_existantes">Migration de données à partir d'extensions existantes</h2>
-
-<p>Une utilisation majeure pour les WebExtensions intégrées sont de migrer les données stockées d'une extension.</p>
-
-<p>Les données stockées sont un problème pour les personnes qui essaient de migrer à partir de types d'extension existants, car les extensions existantes ne peuvent pas utiliser les API de stockage WebExtension, alors que les  WebExtensions ne peuvent pas utiliser les API de stockage existantes. Par exemple, si une extension du SDK utilise l'API <a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/simple-prefs">simple-prefs</a>  pour stocker les préférences, la version WebExtension ne pourra pas accéder à ces données.</p>
-
-<p>Avec les WebExtensions intégrées, vous pouvez migrer des données en créant une version intermédiaire de l'extension qui intègre une WebExtension. Cette version intermédiaire lit les données stockées à l'aide des API existantes et écrit les données à l'aide des API des WebExtensions.</p>
-
-<ul>
- <li>Dans la version initiale, un add-on basé sur le SDK lit et écrit les préférences de l'add-on utilisé par l'API <a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/simple-prefs">simple-prefs</a>.</li>
- <li>Dans la version intermédiaire, le complément SDK démarre la WebExtension intégrée. La WebExtension demande ensuite le complément SDK pour récupérer les données stockées à partir de  simples prefs. La WebExtension stocke ensuite les données à l'aide de l'API {{WebExtAPIRef("storage")}}.</li>
- <li>Dans la version finale, l'extension est juste une WebExtension et utilise seulement  que l'API de stockage.</li>
-</ul>
-
-<p>Nous avons fourni deux exemples illustrant ce modèle : <a href="https://github.com/mdn/webextensions-examples/tree/master/embedded-webextension-bootstrapped">"embedded-webextension-bootstrapped"</a> montre la migration à partir d'un add-on bootstrap, tandis que <a href="https://github.com/mdn/webextensions-examples/tree/master/embedded-webextension-sdk">"embedded-webextension-sdk"</a> montre la migration à partir du SDK de l'extension.</p>
-
-<h3 id="Préférences">Préférences</h3>
-
-<p>Une extension qui contient une WebExtension intégré peut définir des préférences dans l'extension d'héritage (en utilisant, par exemple, <a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/simple-prefs">simple-prefs</a> ou le <a href="/fr/docs/Mozilla/JavaScript_code_modules/Services.jsm">service</a> des préférences) ou dans la WebExtension intégrée (en utilisant <a href="/fr/docs/Mozilla/Add-ons/WebExtensions/manifest.json/options_ui">options_ui</a>).</p>
-
-<p>Si les deux parties définissent les préférences, que les préférences de la WebExtension intégrée annuleront les anciennes.</p>
-
-<p>Si la diffusion de la WebExtension intégrée définit les préférences, elles ne seront initialisées qu'après la WebExtension intégré a <a href="/fr/Add-ons/WebExtensions/Embedded_WebExtensions#Starting_the_WebExtension">commencée</a>. Jusque-là, le bouton "Préférences" dans "about:addons" ne sera pas affiché pour l'add-on, et le navigateur enregistrera une erreur dans la <a href="/fr/docs/Tools/Browser_Console">console du navigateur</a> lorsque "about:addons" is ouvert.</p>
-
-<p>Pour cette raison, c'est important que l'extension d'intégration démarre immédiatement le démarrage WebExtension intégré lors du démarrage. Pour une extension bootstrap, cela signifie que vous devez appeler <code>webExtension.startup()</code> dans le <a href="/fr/Add-ons/Bootstrapped_extensions#startup">bootstrap de démarrage</a>. Pour une extension SDK supplémentaire, cela signifie que vous devez appeler  <code>webExtension.startup()</code> dans le point d'entrée de l'add-on (par défaut, index.js).</p>
-
-<p>Si la page "about:addons" est déjà ouverte dans un onglet lorsque le WebExtension intégré est démarré, le bouton Préférences ne sera visible qu'après la prochaine recharge de la page "about:addons".</p>
-
-<h2 id="Limitations">Limitations</h2>
-
-<h3 id="Debogage">Debogage</h3>
-
-<p>Si vous avez un add-on hérité qui intègre une WebExtension, vous ne pouvez pas utiliser le nouveau débogueur add-on pour le déboguer. Vous devrez utiliser l'<a href="/fr/Add-ons/WebExtensions/Debugging_(before_Firefox_50)">ancien flux de travail de débogage</a>, basé sur la boite d'outils du navigateur.</p>
diff --git a/files/fr/mozilla/bugzilla/index.html b/files/fr/mozilla/bugzilla/index.html
deleted file mode 100644
index d899f74c9e..0000000000
--- a/files/fr/mozilla/bugzilla/index.html
+++ /dev/null
@@ -1,59 +0,0 @@
----
-title: Bugzilla
-slug: Mozilla/Bugzilla
-translation_of: Mozilla/Bugzilla
----
-<p><a class="link-https" href="https://bugzilla.mozilla.org/">bugzilla.mozilla.org</a> (souvent abrégé b.m.o) est un système <span id="result_box" lang="fr"><span class="hps">de suivi des bugs</span> <span class="hps">de</span> <span class="hps">Mozilla.org</span><span>,</span></span> une base de données <span>pour enregistrer les bugs et les demandes d'améliration</span> pour Firefox, Thunderbird, SeaMonkey, Camino, et d'autres projets de mozilla.org.</p>
-
-<div class="row topicpage-table">
-<div class="section">
-<h2 class="Documentation" id="Documentation" name="Documentation">Documentation à propos B.m.o.</h2>
-
-<dl>
- <dt><a href="/en-US/docs/What_to_do_and_what_not_to_do_in_Bugzilla" title="en/What_to_do_and_what_not_to_do_in_Bugzilla">What to do and what not to do in Bugzilla</a></dt>
- <dd><span id="result_box" lang="fr"><span class="hps">Des conseils</span> <span class="atn hps">sur la façon d'</span><span>utiliser</span> <span class="hps">Bugzilla,</span> <span class="hps">ainsi que</span> <span class="hps">des choses que vous</span> <span class="hps">devriez éviter.</span></span></dd>
- <dt><a class="link-https" href="https://bugzilla.mozilla.org/page.cgi?id=etiquette.html">Bugzilla etiquette</a></dt>
- <dd>A guide to etiquette; this guide will help you understand how best to conduct yourself on b.m.o. and how using proper manners and civility will help ensure your problem gets solved sooner rather than later.</dd>
- <dt><a href="http://www.mozilla.org/quality/help/beginning-duplicate-finding.html" title="http://www.mozilla.org/quality/help/beginning-duplicate-finding.html">Comment savoir si un bug a déjà été signalé</a></dt>
- <dd>Il vous est utile (mais pas obligatoire) de vérifier si le problème que vous signalez est déjà suivi.Ce guide vous aidera donc à le faire.</dd>
- <dt><a href="/en-US/docs/Mozilla/QA" title="/en-US/docs/Mozilla/QA">Assurance qualité</a></dt>
- <dd><span id="result_box" lang="fr"><span class="hps">Documentation</span> <span class="hps">sur</span> <span class="hps">l'assurance qualité</span> <span class="hps">chez Mozilla</span><span>.</span></span></dd>
- <dt><a href="/en-US/docs/Mozilla/QA/Bug_writing_guidelines" title="/en-US/docs/Mozilla/QA/Bug_writing_guidelines">Recommandations pour l'écriture de bug</a></dt>
- <dd>A guide to writing a good, understandable, bug that will be easily followed by the development team.</dd>
- <dt><a href="/en-US/docs/Developer_Guide/How_to_Submit_a_Patch" title="/en-US/docs/Developer_Guide/How_to_Submit_a_Patch">Comment soumettre un patch</a></dt>
- <dd>If you've fixed a bug, or have implemented a new feature, you'll need to get your patch into the tree so it can become part of the product. This guide will teach you how!</dd>
-</dl>
-
-<p><span class="alllinks"><a href="/en-US/docs/tag/Bugzilla" title="/en-US/docs/tag/CSS">View All...</a></span></p>
-</div>
-
-<div class="section">
-<h2 class="Community" id="Community" name="Community"><span class="short_text" id="result_box" lang="fr"><span class="hps">Obtenir de l'aide</span> <span class="hps">de la communauté</span></span></h2>
-
-<p>You need help on a CSS-related problem and can't find the solution in the documentation?</p>
-
-<ul>
- <li><span class="short_text" id="result_box" lang="fr"><span class="hps">Visitez</span> <span class="hps">le </span></span><a href="https://wiki.mozilla.org/BMO/Support" title="https://wiki.mozilla.org/BMO/Support">site du support b.m.o</a>.</li>
- <li>Posez votre question sur le canal IRC de Mozilla: <a class="link-irc" href="irc://irc.mozilla.org/qa">#qa</a></li>
-</ul>
-
-<p><span class="alllinks"><a class="external" href="http://www.gnurou.org/writing/smartquestionsfr" title="http://www.gnurou.org/writing/smartquestionsfr">N'oubliez pas la <em>netiquette</em></a> pour poser vos questions…</span></p>
-
-<h2 class="Related_Topics" id="Related_Topics" name="Related_Topics">Autres matériaux</h2>
-
-<ul>
- <li><a class="external" href="http://www.bugzilla.org/about/">An Introduction to Bugzilla</a></li>
- <li><a class="external" href="http://blog.johnath.com/2010/02/04/bugzilla-for-humans">Bugzilla for humans</a></li>
- <li><a class="external" href="http://www.squarefree.com/bugzilla/quicksearch-help.html">Bugzilla QuickSearch help page</a>. QuickSearch is a quick, easy, and very effective way of quickly querying bugzilla.</li>
- <li><a href="https://developer.mozilla.org/en-US/docs/Mozilla/Bugzilla/Testopia" title="https://developer.mozilla.org/en-US/docs/Mozilla/Bugzilla/Testopia">Testopia</a> - test case management extension</li>
- <li><a class="external" href="http://www.bugzilla.org">bugzilla.org</a> - the project site</li>
- <li>{{ interwiki('wikipedia', 'Bugzilla', 'wikipedia:Bugzilla') }} - general description of Bugzilla (not specific to Mozilla projects)</li>
-</ul>
-
-<h2 class="Tools" id="Tools" name="Tools">Outils</h2>
-
-<ul>
- <li><a href="http://harthur.github.io/bugzilla-todos/" title="http://harthur.github.io/bugzilla-todos/">Bugzilla Todos</a> lists review and flag requests, patches to check in, unfulfilled requests you made of other people, and assigned bugs.</li>
-</ul>
-</div>
-</div>
diff --git a/files/fr/mozilla/command_line_options/index.html b/files/fr/mozilla/command_line_options/index.html
deleted file mode 100644
index 377bbee16b..0000000000
--- a/files/fr/mozilla/command_line_options/index.html
+++ /dev/null
@@ -1,472 +0,0 @@
----
-title: Options de ligne de commande
-slug: Mozilla/Command_Line_Options
-tags:
- - Administration
- - Documentation
- - FAQ
- - Greffons
- - XULRunner
- - ligne de commande
-translation_of: Mozilla/Command_Line_Options
----
-<p>{{FirefoxSidebar}}</p>
-
-<p>Les options de ligne de commande servent à spécifier des options de démarrage des applications Mozilla. Par exemple, vous pouvez utiliser une option pour outrepasser le gestionnaire de profils et ouvrir un profil spécifique (si vous en avez plusieurs). Vous pouvez aussi contrôler la façon dont les applications Mozilla s'ouvrent, quels composants sont lancés au démarrage et ce qu'ils font à leur ouverture. Cette page décrit les options les plus courantes et comment les utiliser. Vous pouvez ouvrir l'interface de ligne de commande en appuyant sur <kbd>Maj + F2</kbd></p>
-
-<h2 id="Règles_de_syntaxe">Règles de syntaxe</h2>
-
-<p>Commençons par décrire les règles syntaxiques applicables à toutes les options.</p>
-
-<ul>
- <li>les paramètres d'option contenant des espaces doivent être encadrés par des guillemets anglais droits, par exemple : "Utilisateur Lambda" ;</li>
- <li>les options ne sont pas sensibles à la casse ;</li>
- <li>les paramètres d'option, exceptés les noms de profil, ne sont pas sensibles à la casse ;</li>
- <li>les options et leurs paramètres sont séparés par des espaces ;</li>
- <li>le paramètre de l'option <code>compos</code> est constitué d'<em>options de message</em>, qui suivent la syntaxe <code><var>champ=valeur</var></code>, par exemple :
- <ul>
- <li><code>to=</code><code>foo@nowhere.net</code></li>
- <li><code>subject=cool page</code></li>
- <li><code>attachment=www.mozilla.org</code></li>
- <li><code>attachment='file:///c:/test.txt'</code></li>
- <li><code>body=check this page</code></li>
- </ul>
- </li>
- <li>les options de message sont séparées par des virgules (,), par exemple : <code>"to=foo@nowhere.net,subject=cool page"</code>. Les virgules de séparation ne doivent pas être suivies ni précédées d'espaces. Pour assigner plusieurs valeurs à un champ, encadrez les valeurs par des apostrophes droites ('), par exemple : <code>"to='foo@nowhere.net,foo@foo.de',subject=cool page"</code> .</li>
-</ul>
-
-<h2 id="Utilisation_des_options_de_ligne_de_commande">Utilisation des options de ligne de commande</h2>
-
-<p>Les options sont saisies après la commande servant à lancer l'application. Si les options contiennent des arguments, saisir le paramètre après l'option. Certaines options peuvent être abrégées. Par exemple, l'option « -editor » peut être abrégée en « -edit ». Quand une abréviation est disponible, elle est décrite ci-dessous avec l'option. De même pour le cas des paramètres qui dans certains cas doivent être encadrés par des guillemets droits anglais ("). Plusieurs options de ligne de commande peuvent être spécifiées. En général, la syntaxe est comme suit :</p>
-
-<pre>application -option -option "paramètre" -option paramètre</pre>
-
-<h3 id="Exemples">Exemples</h3>
-
-<p>Les exemples qui suivent montrent l'usage de l'option « -ProfileManager », qui ouvre le gestionnaire de profils avant de démarrer Firefox ou Thunderbird :</p>
-
-<h4 id="Windows">Windows</h4>
-
-<p>Sélectionner « Exécuter » depuis le « Menu démarrer ». Puis taper :</p>
-
-<pre class="eval">firefox -ProfileManager
-</pre>
-
-<h4 id="Mac_OS_X">Mac OS X</h4>
-
-<p>Aller à « Applications &gt; Utilitaires &gt; Ouvrir un terminal » et taper :</p>
-
-<pre class="eval">cd /Applications/Firefox.app/Contents/MacOS
-./firefox -ProfileManager
-</pre>
-
-<h4 id="Linux">Linux</h4>
-
-<p>Ouvrir un terminal (invite de commandes) et taper :</p>
-
-<pre class="eval">cd <em>Thunderbird</em><var> installation directory</var>
-./thunderbird -ProfileManager
-</pre>
-
-<p>L'exemple ci-dessus appelle l'option « -ProfileManager » pour Mozilla Thunderbird.</p>
-
-<h2 id="Profil_utilisateur">Profil utilisateur</h2>
-
-<h3 id="-allow-downgrade"><code>-allow-downgrade</code></h3>
-
-<p>La protection contre la rétrogradation de Firefox 67 empêche de démarrer accidentellement Firefox avec un profil ayant été exécuté dans une version plus récente de Firefox. Selon les changements entre les deux versions, certains fichiers figurant dans un profil peuvent ne pas être rétrocompatibles. Ajouter cette option outrepasse la protection contre la rétrogradation .</p>
-
-<h3 id="-CreateProfile_nom_du_profil"><code>-CreateProfile <var>nom_du_profil</var></code></h3>
-
-<p>Crée un nouveau profil dans le dossier par défaut sans démarrer l'application. Le profil s'appellera  <code><var>nom_du_profil</var></code> dans le gestionnaire de profils. <code><var>nom_du_profil</var></code> ne doit pas contenir d'espaces ( ). Pour utiliser cette option correctement, aucune instance de l'application ne doit être en cours d'exécution ou alors l'option <code>-no-remote</code> doit être utilisée.</p>
-
-<pre class="eval">firefox -CreateProfile UtilisateurJoel
-</pre>
-
-<h3 id="-CreateProfile_nom_du_profil_nom_du_dossier"><code>-CreateProfile "<var>nom_du_profil</var> <var>nom_du_dossier</var>"</code></h3>
-
-<p>Crée un nouveau profil dans le dossier <code><var>nom_du_dossier</var></code> sans démarrer l'application. Le profil s'appellera  <code><var>nom_du_profil</var></code> dans le gestionnaire de profils. Attention : <code><var>nom_du_profil</var></code> et <code><var>nom_du_dossier</var></code> sont encadrés ensemble par des guillemets droits anglais et sont séparés par une seule espace (comme précédemment, <code><var>nom_du_profil</var></code> ne doit pas contenir d'espaces). Pour utiliser cette option correctement, l'application ne doit pas être en cours d'exécution ou alors l'option <code>-no-remote</code> doit être utilisée.</p>
-
-<div class="note">
-<p>Note : <code><var>nom_du_dossier</var></code> doit exister et il ne doit pas déjà exister de profil appelé <code><var>nom_du_profil</var></code>.</p>
-</div>
-
-<pre class="eval">firefox -CreateProfile " UtilisateurJoel c:\internet\utilisateurjoel-moz-profil"
-</pre>
-
-<h3 id="-migration"><code>-migration</code></h3>
-
-<p>Démarre avec l'assistant d'importation.</p>
-
-<h3 id="-new-instance"><code>-new-instance</code></h3>
-
-<p>Ouvre une nouvelle instance et pas une nouvelle fenêtre dans l'instance en cours d'exécution, ce qui permet que plusieurs copies de l'application soient ouvertes en même temps.</p>
-
-<pre class="brush: bash; line-numbers language-bash"><code class="language-bash">firefox -no-remote -P "un autre profil"</code></pre>
-
-<div class="blockIndicator note">
-<p><strong>Note: </strong>non disponible pour Windows, voir {{bug(855899)}}.</p>
-</div>
-
-<h3 id="-no-remote"><code>-no-remote</code></h3>
-
-<p>N'accepte pas ni n'envoie de commandes distantes. Implique <code>-new-instance</code>.</p>
-
-<pre class="brush: bash; line-numbers language-bash"><code class="language-bash">firefox -no-remote -P "</code><code class="language-bash">un autre profil</code><code class="language-bash">"</code></pre>
-
-<div class="blockIndicator note">
-<p><strong>Note : </strong>depuis Firefox 9, cela signifie réellement ce que son nom implique pour toutes les plateformes, c.-à-d. que les instances créées avec cette option n'acceptent pas et n'envoient pas de commandes distantes, voir {{ bug(650078) }}. Cela signifie que de telles instances ne sont pas réutilisables. Utiliser cette option crée systématiquement de nouvelles instances.</p>
-</div>
-
-<h3 id="-override_cheminversoverride.ini"><code>-override <em>/chemin/vers/</em>override.ini</code></h3>
-
-<p>Charge le fichier <code>override.ini</code> spécifié pour outrepasser <code>application.ini</code> ({{Source("browser/app/application.ini")}}). Cette option peut être utilisée pour faire disparaître le gestionnaire de migration au démarrage en chargeant l’<code>override.ini</code> qui suit. Uniquement pour <strong>Firefox</strong>.</p>
-
-<pre class="brush: ini; line-numbers"><code>[XRE]
-EnableProfileMigrator=0</code></pre>
-
-<h3 id="-ProfileManager"><code>-ProfileManager</code></h3>
-
-<p>Lance le gestionnaire de profils. Abréviation : <strong>-P</strong> sans nom de profil.</p>
-
-<h3 id="-P_nom_du_profil"><code>-P "<var>nom_du_profil</var>"</code></h3>
-
-<p>Outrepasse le gestionnaire de profils et lance l'application avec le compte <code><var>nom_du_profil</var></code>. Ceci est utile pour gérer plusieurs profils. Attention ! La chaîne <code><var>nom_du_profil</var></code> est sensible à la casse. Si vous ne précisez pas de nom de profil, le gestionnaire de profils sera lancé. Vous devez utiliser un P majuscule sous Linux avec les versions antérieures à la 7.x, vu que l'option p (minuscule) sert à lancer le mode Purify (test des fuites et de la mémoire). Les autres plateformes acceptent aussi bien la minuscule que la majuscule.</p>
-
-<pre class="eval">firefox -P "Utilisateur Joel"
-</pre>
-
-<h3 id="-profile_chemin_du_profil"><code>-profile "<var>chemin_du_profil</var>"</code></h3>
-
-<p>Démarre avec le profil fourni depuis le chemin spécifié. Seulement pour<strong> Firefox</strong>, <strong>Thunderbird</strong> et <strong>SeaMonkey 2.x</strong>.</p>
-
-<p><code>"<var>chemin_du_profil</var>"</code> peut aussi bien être un chemin absolu (<code>"<var>/chemin/du/profil</var>"</code>)  que relatif <code>("</code><code><var>/chemin/du/profil</var></code><code>"</code>).</p>
-
-<div class="note"><strong>Note</strong> : sur Mac OS X, utiliser un chemin relatif n'est plus pris en charge depuis Firefox 4.0 à cause d'une régression, voir {{ bug(673955) }}.</div>
-
-<h2 id="Navigateur">Navigateur</h2>
-
-<h3 id="-browser"><code>-browser</code></h3>
-
-<p>Démarre le navigateur. Seulement pour <strong>Firefox</strong> et <strong>SeaMonkey</strong>.</p>
-
-<h3 id="-url_URL"><code>-url <var>URL</var></code></h3>
-
-<p>Ouvre l'<var>URL</var> dans un nouvel onglet ou une nouvelle fenêtre, dépendant de l'absence ou de la présence de l'option <code>browser</code>. <code>-url</code> peut être omis. Vous pouvez charger plusieurs URL, separées par des espaces. Pour <strong>Firefox</strong> et <strong>SeaMonkey</strong> seulement.</p>
-
-<div class="note"><strong>Note : </strong>quand vous ouvrez plusieurs URL, Firefox les ouvre dans des onglets d'une seule nouvelle fenêtre.</div>
-
-<pre class="eval">firefox www.mozilla.com
-firefox www.mozilla.com developer.mozilla.org
-</pre>
-
-<h3 id="-private"><code>-private</code></h3>
-
-<p>Ouvre Firefox en « fenêtre privée » de manière permanente. Pour <strong>Firefox 3.6 </strong>et ultérieur.</p>
-
-<p>Pourrait ne pas fonctionner pour <strong>Firefox 20</strong> et précédents sous Ubuntu. Fonctionnement correct confirmé sous Ubuntu 14.04.</p>
-
-<h3 id="-private-window"><code>-private-window</code></h3>
-
-<p>Ouvre Firefox en « fenêtre privée » dans une instance déja en cours. Pour <strong>Firefox 20 </strong>et ultérieur.</p>
-
-<h3 id="-private-window_URL"><code>-private-window URL</code></h3>
-
-<p>Ouvre l'URL dans une nouvelle « fenêtre privée ». Si une fenêtre privée est déja ouverte, ouvre un nouvel onglet.<strong> Firefox 29 </strong>et ultérieur seulement. Non fonctionnel pour <strong>Firefox 31</strong> sous Linux Mint 17 (qui ouvre l'URL dans une fenêtre normale).</p>
-
-<h3 id="-new-tab_URL"><code>-new-tab <var>URL</var></code></h3>
-
-<p>Ouvre l'<var>URL</var> dans un nouvel onglet. <strong>Firefox </strong>et <strong>SeaMonkey2.x</strong> seulement.</p>
-
-<h3 id="-new-window_URL"><code>-new-window <var>URL</var></code></h3>
-
-<p>Ouvre <var>l'URL</var> dans une nouvelle fenêtre. <strong>Firefox</strong> et <strong>SeaMonkey2.x</strong> seulement.</p>
-
-<h3 id="-search_Mot"><code>-search <var><em>Mot</em></var></code></h3>
-
-<p>Recherche <em><var>Mot</var></em> avec le moteur de recherche par défaut. <strong>Firefox</strong> et <strong>SeaMonkey 2.1</strong> et ultérieur.</p>
-
-<h3 id="-preferences"><code>-preferences</code></h3>
-
-<p>Ouvre la fenêtre des Préférences/Options. <strong>Firefox</strong> et <strong>SeaMonkey2.x</strong> seulement.</p>
-
-<h3 id="-setDefaultBrowser"><code>-setDefaultBrowser</code></h3>
-
-<p>Définit l'application comme navigateur par défaut. <strong>Firefox</strong> seulement.</p>
-
-<h3 id="-foreground"><code>-foreground</code></h3>
-
-<p>Fait de l'instance l'application active.</p>
-
-<h2 id="CourrielNouvelles">Courriel/Nouvelles</h2>
-
-<h3 id="-mail"><code>-mail</code></h3>
-
-<p>Démarre le client courriel. <strong>Thunderbird</strong> et <strong>SeaMonkey</strong> seulement.</p>
-
-<h3 id="-news_news_URL"><code>-news</code> <var>news_URL</var></h3>
-
-<p>Démarre le client de nouvelles. Si <var>news_URL</var> (optionnel) est spécifié, ouvre le groupe de nouvelles spécifié. <strong>Thunderbird</strong> et <strong>SeaMonkey</strong> seulement.</p>
-
-<pre class="eval">thunderbird -news news://server/group
-</pre>
-
-<h3 id="-compose_options_du_message"><code>-compose <var>options_du_message</var></code></h3>
-
-<p>Démarre l'outil de création de courriel. Voyez les <a href="/fr/docs/">régles de syntaxe</a>. <strong>Thunderbird</strong> et <strong>SeaMonkey</strong> seulement.</p>
-
-<pre class="eval">thunderbird -compose "to=foo@nowhere.net"
-</pre>
-
-<h3 id="-addressbook"><code>-addressbook</code></h3>
-
-<p>Démarre le carnet d'adresses. <strong>Thunderbird</strong> et <strong>SeaMonkey</strong> seulement.</p>
-
-<h3 id="-options"><code>-options</code></h3>
-
-<p>Ouvre la fenêtre des Préférences. <strong>Thunderbird</strong> seulement.</p>
-
-<h3 id="-offline"><code>-offline</code></h3>
-
-<p>Démarre le logiciel en mode déconnecté. <strong>Thunderbird</strong> et <strong>SeaMonkey</strong> seulement.</p>
-
-<h3 id="-setDefaultMail"><code>-setDefaultMail</code></h3>
-
-<p>Définit l'application comme client courriel par défaut. <strong>Thunderbird</strong> seulement.</p>
-
-<h2 id="Calendrier">Calendrier</h2>
-
-<h3 id="-calendar"><code>-calendar</code></h3>
-
-<p>Démarre le client d'agenda. <strong>Sunbird</strong> seulement.</p>
-
-<h3 id="-subscribe_URL_or_-url_URL"><code>-subscribe <var>URL</var></code> or <code>-url <var>URL</var></code></h3>
-
-<p>S'abonne à l'<var>URL</var>. <strong>Sunbird</strong> seulement.</p>
-
-<h3 id="-showdate_date"><code>-showdate <var>date</var></code></h3>
-
-<p>Affiche la <var>date </var>dans l'agenda. <strong>Sunbird</strong> seulement.</p>
-
-<pre class="eval">sunbird -showdate 08/04/2008
-</pre>
-
-<h2 id="Autres_composants">Autres composants</h2>
-
-<h3 id="-editor_URL_or_-edit_URL"><code>-editor <var>URL</var></code> or <code>-edit <var>URL</var></code></h3>
-
-<p>Démarre avec l'éditeur (compositeur) pour l'<var>URL</var> spécifiée (<var>URL</var> est optionnel). <strong>SeaMonkey</strong> seulement.</p>
-
-<pre class="eval">seamonkey -edit www.mozilla.org
-</pre>
-
-<h3 id="-jsdebugger"><code>-jsdebugger</code></h3>
-
-<p>Démarre l'application avec <a href="/en-US/docs/Tools/Browser_Toolbox">Browser Toolbox</a> (auparavant Browser Debugger). Ce débogueur est différent du Venkman (voyez l'option <code>-venkman</code>).</p>
-
-<h3 id="-jsconsole"><code>-jsconsole</code></h3>
-
-<p>Démarre l'application avec la <a href="/en-US/docs/Error_Console" title="Error_Console">console d'erreur</a>, ou, dans le cas de Firefox, la <a href="/en-US/docs/Tools/Browser_Console">console du navigateur</a>.</p>
-
-<h3 id="-start-debugger-server_port"><code>-start-debugger-server port</code></h3>
-
-<p>Firefox seulement. Démarre le serveur du débogueur avec le <code>port</code>. Ceci permet à une autre instance de Firefox de connecter ses outils de développement à l'instance visée. Voyez l'article sur le <a href="/en-US/docs/Tools/Remote_Debugging/Debugging_Firefox_Desktop">débogage à distance du bureau Firefox</a>.</p>
-
-<p>Le paramètre <code>port</code> est optionnel ; par défaut, le port 6000 est utilisé.</p>
-
-<h3 id="-inspector_URL"><code>-inspector <var>URL</var></code></h3>
-
-<p>Démarre l'<a href="/en-US/docs/DOM_Inspector" title="DOM_Inspector">inspecteur de DOM</a> (s'il est installé) et inspecte l'<var>URL</var> spécifiée (<var>URL</var> est optionnel).</p>
-
-<h3 id="-venkman"><code>-venkman</code></h3>
-
-<p>Démarre le débogueur JavaScript, <a href="/en-US/docs/Venkman" title="Venkman">Venkman</a>, s'il est installé.</p>
-
-<h3 id="-purgecaches"><code>-purgecaches</code></h3>
-
-<p>Vide le cache JavaScript de Gecko (le moteur de mise en page). Normalement le cache survit au redémarrage.</p>
-
-<h3 id="-chat"><code>-chat</code></h3>
-
-<p>Démarre le client de clavardage IRC, <a class="link-https" href="https://addons.mozilla.org/en-US/firefox/addon/16">ChatZilla</a>, s'il est installé.</p>
-
-<h2 id="XULRunner">XULRunner</h2>
-
-<h3 id="-app_cheminversapplication.ini"><code>-app <em>/chemin/vers/</em>application.ini</code></h3>
-
-<p>Démarre un nouveau processus <a href="/en-US/docs/XULRunner" title="XULRunner">XULRunner</a> pour l'application se trouvant à <em>chemin/vers</em>. Fonctionne aussi pour Firefox version 3 et ultérieur.</p>
-
-<h3 id="--register-global"><code>--register-global</code></h3>
-
-<p>Inscrit XULRunner avec le système pour tous les usagers. Exige les privilèges admin / root.</p>
-
-<h3 id="--register-user"><code>--register-user</code></h3>
-
-<p>Inscrit XULRunner pour l'utilisateur en cours.</p>
-
-<h3 id="--unregister-user"><code>--unregister-user</code></h3>
-
-<p>Désinscrit XULRunner pour tous les utilisateurs.</p>
-
-<h3 id="--unregister-user_2"><code>--unregister-user</code></h3>
-
-<p>Désinscrit XULRunner pour l'utilisateur en cours.</p>
-
-<h3 id="--install-app_cheminversmyapplication.xpixulapp"><code>--install-app chemin/vers/myapplication.(xpi|xulapp)</code></h3>
-
-<p>Installe l'application XULRunner se trouvant à <em>chemin/vers</em> sur le système. Les applications sont installées à l'emplacement par défaut du système (<code>program files|Applications|usr/lib</code>) sous <code>nom_du_vendeur/nom_de_l_application</code>. Les applications peuvent être désinstallées par les méthodes habituelles du système.</p>
-
-<pre class="eval" style="margin-top: 0px; margin-bottom: 1.286em; font-size: 14px;">"C:\Program Files\Mozilla XULRunner\1.8.0.4\xulrunner\xulrunner.exe" --install-app "C:\Users\Billdo\Desktop\myapplication.xpi"</pre>
-
-<pre>/opt/xulrunner/1.8.0.4/xulrunner/xulrunner --install-app ~/Desktop/myapplication.xulapp</pre>
-
-<pre>​/Library/Frameworks/XUL.framework/xulrunner-bin --install-app ~/Desktop/myapplication.xpi</pre>
-
-<h2 id="Chrome">Chrome</h2>
-
-<h3 id="-chrome_chrome_URL"><code>-chrome <var>chrome_URL</var></code></h3>
-
-<p>Charge le chrome spécifié.</p>
-
-<pre class="eval">firefox -chrome <a class="external" rel="freelink">chrome://inspector/content</a>
-</pre>
-
-<h3 id="-register_chrome_URL"><code>-register <var>chrome_URL</var></code></h3>
-
-<p>Inscrit le chrome spécifié, sans démarrer l'application.</p>
-
-<h2 id="Modules_complémentaires">Modules complémentaires</h2>
-
-<p>{{ gecko_minversion_note("1.9.2", "-install-global-extension et -install-global-theme ont été retirés de Gecko 1.9.2 et ultérieur.") }}</p>
-
-<h3 id="-install-global-extension_cheminversextension"><code>-install-global-extension <var>/chemin/vers/extension</var></code></h3>
-
-<p>Installe l'extension spécifiée dans le dossier de l'application. Le paramètre donne le chemin menant au module. Vous devez disposer des privilèges administrateur.</p>
-
-<h3 id="-install-global-theme_cheminverstheme"><code>-install-global-theme <var>/</var></code><code><var>chemin</var></code><code><var>/vers/theme</var></code></h3>
-
-<p>Installe le thème spécifié. Vous devez disposer des privilèges administratifs.</p>
-
-<div class="note">
-<p><strong>Note : </strong>depuis Firefox 2.0.0.7, les options <code>-install-global-extension</code> et <code>-install-global-theme</code> ne peuvent installer que depuis le stockage local (incluant le stockage réseau monté localement). L'installation directe depuis un stockage réseau échouera.</p>
-</div>
-
-<h3 id="-safe-mode"><code>-safe-mode</code></h3>
-
-<p>Démarre l'application avec toutes les extensions désactivées, cette fois-ci seulement (les extensions ne sont pas chargées, mais ne sont pas non plus désactivées de façon permanente par le gestionnaire de modules complémentaires).</p>
-
-<h2 id="Locale">Locale</h2>
-
-<h3 id="-UILocale_locale"><code>-UILocale <var>locale</var></code></h3>
-
-<p>Démarre avec l'interface régionalisée en <var>locale</var>.</p>
-
-<pre class="eval">firefox -UILocale en-US
-</pre>
-
-<h2 id="Contrôle_à_distance">Contrôle à distance</h2>
-
-<h3 id="-remote_remote_command_deprecated_inline"><code>-remote <var>remote_command {{deprecated_inline}}</var></code></h3>
-
-<div class="note">
-<p><var><strong>Note :</strong> cette option a été retirée de Firefox 36.0, puis restaurée avec 36.0.1 pour être retirée définitivement avec 39.0. Voyez</var> {{ bug(1080319) }}.</p>
-</div>
-
-<p>Exécute la <code><var>remote_command</var></code> spécifiée dans un processus déja actif (voyez <a class="external" href="http://www.mozilla.org/unix/remote.html">contrôle à distance</a>).</p>
-
-<pre class="eval">firefox -remote "openURL(www.mozilla.org, new-tab)"
-</pre>
-
-<div class="note">
-<p><strong>Note :</strong> cette option n'est disponible que pour les plateformes X-windows Unix.</p>
-</div>
-
-<h2 id="Divers">Divers</h2>
-
-<h3 id="-tray"><code><strong>-tray</strong></code></h3>
-
-<p>Démarre l'application minimisée dans la zone de notification du système. Utile avec le démarrage automatique.</p>
-
-<h3 id="-silent"><code>-silent</code></h3>
-
-<p>N'ouvre pas les fenêtres par défaut. Utile pour les options qui ouvrent leurs propres fenêtres sans empêcher les fenêtres par défaut de s'ouvrir. <strong>Firefox</strong>, <strong>Thunderbird3.x</strong> et <strong>SeaMonkey2.x</strong> seulement.</p>
-
-<h3 id="-console"><code>-console</code></h3>
-
-<p>Démarre l'application avec la console de débogage. Note : Windows seulement.</p>
-
-<h3 id="-attach-console"><code>-attach-console</code></h3>
-
-<p>Détourne les messages destinés à la console de débogage vers la fenêtre qui a lancé l'application. Note : Windows seulement.</p>
-
-<h3 id="-h_or_-help_or_-"><code>-h</code> or <code>-help</code> or <code>-?</code></h3>
-
-<p>Affiche la liste des options et paramètres disponibles. Sous Windows, cette option ne fonctionne qu'avec une redirection <code>|more</code> ({{ Bug(355889) }}). Cette option n'est disponible qu'en ligne de commande.</p>
-
-<h3 id="-v_or_-version"><code>-v</code> or <code>-version</code></h3>
-
-<p>Affiche la version de l'application. Sous Windows, cette option ne fonctionne qu'avec une redirection <code>|more</code> ({{ Bug(355889) }}). Cette option n'est disponible qu'en ligne de commande.</p>
-
-<h3 id="-osint"><code>-osint</code></h3>
-
-<p>Indique à l'application qu'elle est lancée par l'invite de commande du système. Cette option ne doit être spécifiée que si l'application invocatrice prend en charge toutes les fonctionnalités de l'invite de commande du système ({{ Bug(384384) }}).</p>
-
-<h3 id="-requestPending"><code>-requestPending</code></h3>
-
-<p>Indique à l'application qu'il y aura une requête DDE (<em>Dynamic Data Exchange</em>, Windows seulement) pour l'ouverture du même URL que celui spécifié par la ligne de commande. Cette option ne doit être spécifiée que si l'application invocatrice prend en charge toutes les fonctionnalités de l'invite de commande du système ({{ Bug(354005) }}).</p>
-
-<h3 id="options_X11">options X11</h3>
-
-<p>Ces options ne sont disponibles que pour une application roulant sous le système graphique X11 / X.org (Linux et autres systèmes Unix).</p>
-
-<h4 id="--displayDISPLAY">--display=DISPLAY</h4>
-
-<p>Définit l'affichage X à utiliser.</p>
-
-<h4 id="--classWM_CLASS">--class=WM_CLASS</h4>
-
-<p>Définit WM_CLASS comme étant la classe de ressource X11 des fenêtres créées par l'application.</p>
-
-<h4 id="--sync">--sync</h4>
-
-<p>Rend les appels X synchrones.</p>
-
-<h4 id="--g-fatal-warnings">--g-fatal-warnings</h4>
-
-<p>Rend tous les avertissements fatals.</p>
-
-<h2 id="Autre_options_restant_à_documenter">Autre options restant à documenter</h2>
-
-<ul>
- <li><code>-print-xpcom-dir</code></li>
- <li><code>-print-xpcom-dirlist</code></li>
- <li><code>-kill</code></li>
- <li><code>-killAll</code></li>
- <li><code>-f</code></li>
- <li><code>-ftimeout</code></li>
- <li><code>-fwait</code></li>
- <li><code>-unsetDefaultMail</code></li>
- <li>options GTK</li>
-</ul>
-
-<h2 id="Références">Références</h2>
-
-<ul>
- <li><a href="/en-US/docs/Chrome/Command_Line" title="Chrome/Command_Line">Chrome: Ligne de commande</a></li>
- <li><a class="external" href="http://www-archive.mozilla.org/quality/browser/front-end/testcases/cmd-line/">Documentation des tests de ligne de commande</a> (mozilla.org)</li>
- <li>{{ Source("toolkit/xre/nsAppRunner.cpp") }}</li>
- <li>{{ Source("browser/components/nsBrowserContentHetler.js") }}</li>
- <li>{{ Source("suite/browser/nsBrowserContentHetler.js") }}</li>
- <li>{{ Source("mail/components/nsMailDefaultHetler.js") }}</li>
- <li><a class="link-https" href="https://wiki.mozilla.org/Installer:Command_Line_Arguments">Options de ligne de commande de l'installateur</a></li>
-</ul>
-
-<div class="originaldocinfo">
-<h2 id="Information_sur_le_document_dorigine">Information sur le document d'origine</h2>
-
-<ul>
- <li>Auteurs : Ben Goodger, Steffen Wilberg, Seth Spitzer, Daniel Wang</li>
- <li>Information sur le droit d'auteur : des parties de ce contenu sont © 1998–2007 par des contributeurs individuels de mozilla.org ; contenu disponible sous licence Creative Commons | <a class="external" href="http://www.mozilla.org/foundation/licensing/website-content.html">Détails</a>.</li>
- <li>Traduction : Gautier Castelain, Daniel U. Thibault</li>
-</ul>
-</div>
diff --git a/files/fr/mozilla/css/index.html b/files/fr/mozilla/css/index.html
deleted file mode 100644
index a3f0d4cec1..0000000000
--- a/files/fr/mozilla/css/index.html
+++ /dev/null
@@ -1,10 +0,0 @@
----
-title: Mozilla internal-only CSS
-slug: Mozilla/CSS
-tags:
- - TopicStub
-translation_of: Mozilla/Gecko/Chrome/CSS
----
-<p>Cet ensemble de pages détaille les fonctionnalités CSS qui ne sont disponibles qu'en interne dans le navigateur Firefox, c'est-à-dire uniquement dans la feuille de style américaine.</p>
-
-<p>{{SubpagesWithSummaries}}</p>
diff --git a/files/fr/mozilla/developer_guide/utilisation_de_la_machine_virtuelle_vm/index.html b/files/fr/mozilla/developer_guide/utilisation_de_la_machine_virtuelle_vm/index.html
deleted file mode 100644
index 879be80ff2..0000000000
--- a/files/fr/mozilla/developer_guide/utilisation_de_la_machine_virtuelle_vm/index.html
+++ /dev/null
@@ -1,103 +0,0 @@
----
-title: Utilisation de Mozilla build VM
-slug: Mozilla/Developer_guide/Utilisation_de_la_Machine_Virtuelle_VM
-tags:
- - Compilation firefox
- - Firefox
- - Guide
- - Guide du Developpeur
- - Machine Virtuelle Mozilla
- - Mozilla
- - VirtualBox
-translation_of: Archive/Mozilla/Using_the_VM
----
-<p>Si vous vous êtes jamais demandés à quoi ressemble une contribution à Firefox mais vous n'aviez jamais le temps pour lire et poursuivre jusqu'au bout nos<a href="https://developer.mozilla.org/fr/docs/Compilation_simple_de_Firefox"> instructions pour configurer un environnement de devéloppement</a> ou avez voulu éviter de faire des changements à vos outils standard et configuration, alors ceci pourrait être pour vous. Mozilla fournit une machine virtuelle (VM) qui est compatible avec le logiciel de virtualisation gratuit <a href="https://www.virtualbox.org/wiki/Downloads">VirtualBox</a> (aussi bien que d'autres, y compris VMWare/VMWare Fusion).</p>
-
-<p>Cet article fournit des instructions simples pour le téléchargement, l'installation et la configuration  de cet environnement de developpement; une fois que vous avez fini les étapes ci-dessous, vous aurez un VM prêt pour modifier et adapter Firefox.</p>
-
-<p>Esperant que ce VM aidera particulièrement des développeurs ou les développeurs potentiels qui n'ont pas un environnement de développement  C++ complet disponible pour eux</p>
-
-<h2 id="Installation_de_VirtualBox">Installation de VirtualBox</h2>
-
-<p><span id="result_box" lang="fr"><span class="hps">Visitez <a href="https://www.virtualbox.org/wiki/Downloads">la page de téléchargements de VirtualBox</a></span><span class="hps"> et</span> <span class="hps">télécharger la dernière version</span> <span class="hps">du logiciel</span> <span class="hps">pour votre</span> <span class="hps">système d'exploitation</span><span>.</span></span></p>
-
-<div class="note">
-<p><strong>Note:</strong> <span id="result_box" lang="fr"><span class="hps">Si vous</span> <span class="hps">avez déjà un produit</span> <span class="hps">de virtualisation</span> <span class="hps">installé, comme</span> <span class="hps">VirtualBox</span><span>,</span> <span class="hps">VMWare</span><span>,</span> <span class="hps">ou VMWare</span> <span class="hps">Fusion</span><span>,</span> <span class="hps">vous pouvez l'utiliser</span> <span class="hps">au lieu de télécharger</span> <span class="hps">une nouvelle copie de</span> <span class="hps">VirtualBox</span><span>.</span> <span class="hps">Assurez-vous</span> <span class="hps">que vous avez</span> <span class="hps">la dernière version</span> <span class="hps">du logiciel.</span> <span class="hps">Notez que</span> <span class="hps">Parallels</span> <span class="hps">Desktop ne prend pas</span> <span class="hps">en charge le format</span> <span class="hps">OVF</span><span>.</span></span></p>
-</div>
-
-<h2 id="Telechargement_de_la_VM">Telechargement de la VM</h2>
-
-<p><span id="result_box" lang="fr"><span class="hps">Ensuite, téléchargez</span> <span class="hps">l'environnement de développement</span> <span class="hps">de Firefox</span> <span class="hps">VM</span><span>.</span></span></p>
-
-<p><a class="download-button external ignore-external" href="http://vmimages.mozilla.net/ovf/FirefoxBuildEnv.ova" rel="noopener">TELECHARGER LA VM</a></p>
-
-<p>SHA-256: 1c84eaf97ea2a9a3c990051306a038da9541a450fd600878e7c1f984fa930f35</p>
-
-<div class="note">
-<p><strong>Note:</strong> <span id="result_box" lang="fr"><span class="hps">Ce fichier</span> <span class="hps">fait environ 4.4</span> <span class="hps">Go</span><span>,</span> <span class="hps">il peut prendre</span> <span class="hps">un certain temps</span> <span class="hps">à télécharger.</span></span></p>
-</div>
-
-<h2 id="Configuration_de_la_VM">Configuration de la VM</h2>
-
-<p><span id="result_box" lang="fr"><span class="hps">Après avoir téléchargé</span></span><span lang="fr"> <span class="hps">le fichier</span><strong> <span class="hps">.ova</span></strong> <span class="hps">des</span> <span class="hps">machines virtuelles</span><span>, double-cliquez</span> <span class="hps">sur le fichier</span><span>;</span> <span class="hps">cela démarrera</span> <span class="hps">le processus d'importation</span> <span class="hps">de la machine virtuelle</span> <span class="hps">dans</span> <span class="hps">VirtualBox</span><span>.</span> <span class="hps">Il est fortement recommandé de </span><span class="hps">donner </span></span><span id="result_box" lang="fr"><span class="hps">à</span></span><span lang="fr"><span class="hps"> la</span> <span class="hps">VM</span> <span class="hps">une mémoire vive minimum de</span> 4096<span class="hps"> Mo </span><span class="atn hps">(8192</span> <span class="hps">Mo ou plus</span> <span class="hps">si vous le pouvez</span><span>)</span><span>,</span> <span class="hps">aussi configurer la afin d'</span><span class="hps">avoir le même</span> <span class="hps">nombre de processeurs</span> <span class="hps">que</span> <span class="hps">votre ordinateur hôte</span><span>.</span> Le dev<span class="hps">é</span>loppement de <span class="hps">Firefox</span> <span class="hps">utilise beaucoup de</span> <span class="hps">ressources système</span><span>,</span> <span class="hps">et que vous voulez</span> <span class="hps">construire</span> <span class="hps">le plus rapidement possible</span><span>.</span></span></p>
-
-<p><img alt="Screen shot of the Import Virtual Appliance window" src="https://mdn.mozillademos.org/files/8665/firefoxdev3.png" style="height: 447px; width: 600px;"></p>
-
-<p><span id="result_box" lang="fr"><span class="hps">Une fois que vous</span> <span class="hps">avez</span> <span class="hps">terminé d'importer</span> <span class="hps">la machine virtuelle</span><span>, vous pouvez effectuer</span> <span class="hps">des personnalisations supplémentaires</span> <span class="hps">si vous le souhaitez</span><span>, ou tout simplement</span> <span class="hps">démarrer</span> <span class="hps">la machine virtuelle</span> <span class="hps">et</span> <span class="hps">attendre que le bureau</span> <span class="hps">Ubuntu</span> <span class="hps">apparaisse</span><span>.</span> <span class="hps">Une fenêtre du</span> <span class="hps">Terminal (l'equivalent de la l'invite de commande sur Windows)</span> s'<span class="hps">affichera automatiquement</span> <span class="hps">et effectuera</span> <span class="hps">certaines activités de</span> <span class="hps">configuration finale</span><span>.</span> <span class="hps">Une fois</span> <span class="hps">celles-ci </span><span class="hps">terminée</span><span>,</span> <span class="hps">Sublime Text</span><span class="hps"> démarrera</span><span>,</span> <span class="hps">et vous pourriez</span> <span class="hps">commencer à travailler </span><span>!</span></span></p>
-
-<p><img alt="Screen shot of the Sublime Text editor running in the VM" src="https://mdn.mozillademos.org/files/8667/firefoxdev1.png" style="height: 317px; width: 600px;"></p>
-
-<div class="note">
-<p><strong>Note:</strong> <span id="result_box" lang="fr"><span class="hps">Si</span> <span class="hps">jamais vous avez besoin</span> d'<span class="hps">informations d'identification </span><span class="hps">root</span></span><span lang="fr"><span>, utilisez</span> <span class="atn hps">"</span><span class="atn">firefox-</span><span>dev</span><span>"</span> <span class="hps">comme mot de passe</span><span>.</span> <span class="hps">Si vous</span> <span class="hps">souhaitez modifier</span> <span class="hps">vos paramètres de</span> <span class="hps">langue et de clavier</span><span>,</span> <span class="hps">suivez les instructions</span> <a href="http://www.howtogeek.com/howto/17528/change-the-user-interface-language-in-ubuntu/">Comment changer la langue de l'interface utilisateur dans Ubuntu</a><span>.<sup>(page en Anglais)</sup></span></span></p>
-</div>
-
-<h2 id="Compilation_de_Firefox">Compilation de Firefox</h2>
-
-<p><span id="result_box" lang="fr"><span class="hps">Pour Compiler </span><span class="hps">Firefox</span> <span class="hps">dans la machine virtuelle (VM)</span><span>, ouvrez</span> <span class="hps">le menu "Outils"</span> <span class="hps">et choisissez l'option "Compiler"</span> <span>.</span> <span class="hps">Le processus de Compilation </span><span class="hps">commencer</span><span>a,</span> <span class="hps">et</span> <span class="hps">vous avez du temps</span> <span class="hps">pour boire un verre</span><span>,</span> <span class="hps">un bon repas</span><span>,</span> <span class="hps">ou peut-être</span> <span class="hps">une petite pause</span><span>,</span> <span class="hps">tout depend de la puissance de</span> <span class="hps">votre ordinateur</span><span>.</span> <span class="hps">Vous</span> <span class="hps">devez être patient</span><span>.</span><br>
- <br>
- <span class="hps">Une fois que la</span> Compilation<span class="hps"> terminée</span> <span class="atn hps">(</span><span>avec succès</span><span>)</span><span>, choisissez</span> <span class="hps">l'option Exécuter</span> <span class="hps">dans le</span> <span class="hps">menu "Outils"</span> <span class="hps">pour démarrer votre</span> <span class="hps">version personnalisée</span> <span class="hps">de</span> <span class="hps">Firefox</span><span>.</span> <span class="hps">Assurez-vous que</span> <span class="hps">tout ce que</span> <span class="hps">le pire</span> <span class="hps">comme prévu.</span><br>
- <br>
- <span class="hps">Par défaut</span><span>,</span> <span class="hps">la machine virtuelle</span> <span class="hps">est configuré pour</span> compiler <span class="hps">une</span> compilation <span class="hps">optimisée de</span> <span class="hps">Firefox</span><span>.</span> <span class="hps">Vous pouvez facilement passer</span> <span class="hps">de la compilation au</span><span class="hps"> débogage</span><span>.</span> <span class="hps">Il suffit d'ouvrir</span> <span class="hps">le menu "Outils"</span><span>,</span> <span class="hps">puis</span> <span class="hps">le sous-menu</span> "<span class="hps">Build System</span>"<span class="hps">.</span> <span class="hps">Dans la dernière sous-menu de</span> "<span class="hps">Build System</span>"</span><span lang="fr">, <span class="atn hps">choisissez «</span><span>Firefox</span> <span class="atn hps">(</span><span>Debug</span><span>)</span><span>"</span><span>.</span> <span class="hps">C'est tout !</span> <span class="hps">Votre prochaine</span> Compilation <span class="hps">sera</span> <span class="hps">une accumulation</span> <span class="hps">de</span> <span class="hps">débogueur</span><span>.</span></span></p>
-
-<p><img alt="Screen shot showing how to switch between debug; and optimized builds" src="https://mdn.mozillademos.org/files/8669/firefoxdev2.png" style="height: 317px; width: 600px;"></p>
-
-<h2 id="Travailler_dans_la_VM"><span class="short_text" id="result_box" lang="fr"><span class="hps">Travailler</span> <span class="hps">dans la</span> <span class="hps">VM</span></span></h2>
-
-<p><span id="result_box" lang="fr"><span class="hps">De là</span><span>, vous</span> <span class="hps">travaillez</span> <span class="hps">dans la machine virtuelle</span> <span class="hps">tout comme</span> <span class="hps">vous le feriez</span> <span class="hps">ailleurs.</span> <span class="hps">Pour</span> <span class="hps">recupé</span></span><span lang="fr"><span class="hps">rer le</span> <span class="hps">dernier code</span> <span class="hps">de</span><a href="https://developer.mozilla.org/fr/docs/mozilla-central"> mozilla-central</a><span>,</span> <span class="hps">il suffit d'utiliser</span> <span class="hps">Mercurial</span> <span class="hps">comme d'habitude </span><span>:</span></span></p>
-
-<pre>hg pull</pre>
-
-<p><span id="result_box" lang="fr"><span class="hps">Et</span> <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/How_to_Submit_a_Patch">soumettez vos patchs</a><sup>(page en Anglais)</sup> <span class="hps">de la même manière</span> <span class="hps">que vous</span> <span class="hps">le feriez normalement</span><span>.</span></span></p>
-
-<h2 id="Et_Maintenant"><span class="short_text" id="result_box" lang="fr"><span class="hps">Et Maintenant</span> <span class="hps">?</span></span></h2>
-
-<p><span id="result_box" lang="fr"><span title="Now that you've successfully built Firefox in your brand-new VM, you might be wondering what to do next.">Maintenant que vous avez construit avec succès Firefox dans votre VM flambant neuf, vous demandez peut-être ce qu'il faut faire ensuite. </span><span title="A great way to start is to pick a small, easy-to-fix bug and contribute code that patches it.">Une excellente façon de commencer est de choisir un petit bug facile à fixer et code qui applique ces patches. </span><span title="Imagine how awesome it is to have code you wrote shipped to half a billion users all over the world!
-
-">Imaginez comment il est génial d'avoir le code que vous avez écrit expédié à un demi-milliard d'utilisateurs partout dans le monde !</span></span></p>
-
-<p><span id="result_box" lang="fr"><span title="Here are some links to help you find something you can do to make Firefox better:
-
-    ">Voici quelques liens pour vous aider à trouver quelque chose que vous pouvez faire pour am</span><span class="hps">é</span></span><span lang="fr"><span title="Here are some links to help you find something you can do to make Firefox better:
-
-    ">liorer Firefox:</span></span></p>
-
-<ul>
- <li><span title="Code Firefox Lessons provides a number of video tutorials for new Firefox contributors.
-    "><a href="http://codefirefox.com/">Les Leçons CodeFirefox</a> fournit un certain nombre de tutoriels vidéo pour les nouveaux contributeurs de Firefox.</span></li>
- <li><span lang="fr"><a href="http://www.joshmatthews.net/bugsahoy/">Bugs Ahoy</a><span title="Bugs Ahoy!"> ! </span><span title="(a tool to help you find bugs that might interest you).
-    ">(Un outil pour vous aider à trouver des bugs qui pourrait vous intéresser).</span></span></li>
- <li><span lang="fr"><span title="Developer guide (documentation about developing on and for Mozilla projects).
-    "><a href="https://developer.mozilla.org/fr/docs/Developer_Guide">Guide du développeur</a> (la documentation sur le développement sur et pour les projets de Mozilla).</span></span></li>
- <li><a class="external external-icon" href="http://www.joshmatthews.net/bugsahoy/" title="http://www.joshmatthews.net/bugsahoy/">Mentored bugs</a> <span lang="fr"><span title="Mentored bugs have a mentor who commits to helping you every step of the way."> ont un mentor qui s'engage à vous aider à chaque étape dans votre parcour. </span><span title="Generally, there should be enough information in the bug to get started.">En règle générale, il devrait y avoir suffisamment d'informations dans le bug pour commencer. </span><span title="Whenever you need help, contact the mentor over IRC, in the bug itself, or by email.">Chaque fois que vous avez besoin d'aide, contactez le mentor sur Matrix, dans le bug lui-même, ou par courriel. </span><span title="When you've completed the bug, they will help you get your code into the tree.
-    ">Lorsque vous avez terminé le bug, ils vous aideront à obtenir votre code dans l'arbre.</span></span></li>
- <li><span lang="fr"><span title="When you've completed the bug, they will help you get your code into the tree.
-    "> </span></span><a class="link-https" href="https://bugzil.la/sw:%22[good%20first%20bug]%22" title='https://bugzil.la/sw:"[good first bug]"'>"Good" first bugs</a><sup> (page en Anglais)</sup> <span lang="fr"><span title='"Good" first bugs may be a little stale, but at some point in their lives we considered that they would be a good first step for newcomers to Mozilla.'> peuvent être un peu fade, mais à un certain moment de leur vie, nous considéré qu'ils seraient une bonne première étape pour les nouveaux arrivants à Mozilla. </span><span title='We are in the process of migrating these bugs to mentored bugs, but more recent "good first bugs" may be good starting points if there are no appropriate mentored bugs.
-    '>Nous sommes dans le processus de migration de ces bugs à </span></span>"mentored bugs<span lang="fr"><span title='We are in the process of migrating these bugs to mentored bugs, but more recent "good first bugs" may be good starting points if there are no appropriate mentored bugs.
-    '>", mais les plus récents "</span></span>good first bugs"<span lang="fr"><span title='We are in the process of migrating these bugs to mentored bugs, but more recent "good first bugs" may be good starting points if there are no appropriate mentored bugs.
-    '> peuvent être de bons points de départ si il n'y a pas de </span></span>"mentored bugs<span lang="fr"><span title='We are in the process of migrating these bugs to mentored bugs, but more recent "good first bugs" may be good starting points if there are no appropriate mentored bugs.
-    '>" appropriées.</span></span></li>
- <li><span lang="fr"><span title='We are in the process of migrating these bugs to mentored bugs, but more recent "good first bugs" may be good starting points if there are no appropriate mentored bugs.
-    '> </span><span title="How to submit a patch (information about how to create a patch file and get it submitted into the source code)."><a href="https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/How_to_Submit_a_Patch">Comment soumettre un patch</a> (informations sur la façon de créer un fichier de patch et le faire valoir dans le code source).</span></span></li>
-</ul>
-
-<p><span id="result_box" lang="fr"><span class="hps">Vous pouvez également</span> <span class="hps">poser vos questions</span> <span class="hps">sur "ou</span> <span class="hps">commencer "</span></span> {{IRCLink("introduction")}},  <span lang="fr"><span class="hps">et</span> <span class="hps">des questions</span> <span class="hps">de développement</span> <span class="hps">de Firefox ici </span></span>{{IRCLink("developers")}}<span lang="fr"><span>.</span></span></p>
diff --git a/files/fr/mozilla/enregistrement_chrome/index.html b/files/fr/mozilla/enregistrement_chrome/index.html
deleted file mode 100644
index fdbe05fa9b..0000000000
--- a/files/fr/mozilla/enregistrement_chrome/index.html
+++ /dev/null
@@ -1,168 +0,0 @@
----
-title: Enregistrement chrome
-slug: Mozilla/Enregistrement_chrome
-tags:
- - API_du_toolkit
-translation_of: Mozilla/Chrome_Registration
----
-<p> </p>
-
-<h3 id="D.C3.A9finition_du_chrome" name="D.C3.A9finition_du_chrome">Définition du chrome</h3>
-
-<p>Le <a href="/fr/Chrome" title="fr/Chrome">chrome</a> est l'ensemble des éléments de l'interface utilisateur d'une application qui sont situés en dehors de la zone de contenu d'une fenêtre. Les barres d'outils, les barres de menus, les barres de progression, et les titres de fenêtres sont tous des exemples d'éléments qui font habituellement partie du chrome.</p>
-
-<h3 id="Fournisseurs_de_chrome" name="Fournisseurs_de_chrome">Fournisseurs de chrome</h3>
-
-<p>Ce qui fournit le chrome pour un type de fenêtre donnée (par exemple pour la fenêtre du navigateur) est appelé un fournisseur de chrome (Chrome Provider). Les fournisseurs collaborent pour fournir un jeu complet de chrome pour une fenêtre particulière, depuis les images des boutons de la barre d'outils jusqu'aux fichiers décrivant le texte, le contenu et l'apparence de la fenêtre elle-même.</p>
-
-<p>Il y trois types basiques de fournisseurs de chrome :</p>
-
-<h4 id="content" name="content">content</h4>
-
-<p>Le fichier principal pour la description d'une fenêtre provient du fournisseur « <code>content</code> », et il peut s'agir de n'importe quel type de fichier que Mozilla peut afficher. Il s'agit généralement de fichiers XUL, puisque XUL est conçu pour décrire le contenu de fenêtres et de boîtes de dialogue. Les fichiers JavaScript définissant l'interface utilisateur font également partie des paquetages content, ainsi que la plupart des fichiers de liaisons XBL.</p>
-
-<h4 id="locale" name="locale">locale</h4>
-
-<p>Les applications localisables (disponibles en plusieurs langues) ont leurs informations de localisation dans des fournisseurs « <code>locale</code> ». Cela permet aux traducteurs de fournir un paquetage différent pour traduire toute une application sans toucher au reste du code source. Les deux principaux types de fichiers de localisation sont les fichiers <em>DTD</em> et les fichiers <em>properties</em> de style Java.</p>
-
-<h4 id="skin" name="skin">skin</h4>
-
-<p>Un fournisseur « <code>skin</code> » est responsable de la fourniture complète des fichiers décrivant l'apparence visuelle du chrome. Typiquement, un thème graphique fournit des fichiers CSS et des images.</p>
-
-<h3 id="Le_registre_chrome" name="Le_registre_chrome">Le registre chrome</h3>
-
-<p>L'environnement d'exécution Gecko s'occupe d'un service appelé le registre chrome fournissant une cartographie complète permettant de lier les noms de paquetages chrome et leurs emplacements physiques sur le disque.</p>
-
-<p>Le registre chrome est configurable et persistant, un utilisateur peut donc installer des fournisseurs de chrome différents et sélectionner un thème ou une langue préférée. Tout ceci est accompli au travers d'xpinstall et du gestionnaire d'extensions.</p>
-
-<p>Afin d'informer le registre chrome de la présence d'un nouveau chrome, un texte de présentation appelé <code>manifest</code> est utilisé : il s'agit du fichier <code>chrome.manifest</code> à la racine d'une extension ou d'un thème, ou d'une application XULRunner.</p>
-
-<p>Ces fichiers sont de simples fichiers textes présentés ligne par ligne. Chaque ligne est interprétée individuellement. Si la ligne peut être interprétée, le registre chrome réalise l'action identifiée par cette ligne, autrement, le registre chrome ignorera cette ligne (et affichera un message d'alerte dans la console d'erreurs d'exécution).</p>
-
-<pre class="eval">locale nomdupaquetage nomlocale chemin/vers/fichiers
-skin nomdupaquetage nomskin chemin/vers/fichiers
-</pre>
-
-<h3 id="Instructions_du_fichier_manifest" name="Instructions_du_fichier_manifest">Instructions du fichier manifest</h3>
-
-<h4 id="Commentaires" name="Commentaires">Commentaires</h4>
-
-<p>Une ligne est un commentaire si elle commence par le caractère « <code>#</code>» ; tous les autres caractères sur la ligne seront ignorés.</p>
-
-<pre class="eval"># cette ligne est un commentaire - vous pouvez mettre ce que vous voulez ici
-</pre>
-
-<h4 id="content_2" name="content_2">content</h4>
-
-<p>Un paquetage de type content est enregistré par la ligne :</p>
-
-<pre class="eval">content <em>nomdupaquetage</em> <em>uri/vers/fichiers/</em> <em>[drapeaux]</em>
-</pre>
-
-<p>Ceci va enregistrer un emplacement à utiliser lors de la résolution de l'URI <code>chrome://<em>nomdupaquetage</em>/content/...</code>. L'URI peut être absolue ou relative à l'emplacement du fichier manifeste. Notez qu'elle doit se terminer par une barre oblique « <code>/</code> ».</p>
-
-<h4 id="locale_2" name="locale_2">locale</h4>
-
-<p>Un paquetage de type locale est enregistré par la ligne :</p>
-
-<pre class="eval">locale <em>nomdupaquetage</em> <em>nomlocale</em> <em>uri/vers/fichiers/</em> <em>[drapeaux]</em>
-</pre>
-
-<p>Ceci va enregistrer un paquetage locale lors de la résolution de l'URI <code>chrome://<em>nomdupaquetage</em>/locale/...</code> . La chaîne <em>nomlocale</em> est habituellement un identifiant de langue comme « en » ou de langue spécifique à un pays comme « en-US ». Si plus d'une localisation est enregistrée pour un paquetage, le registre chrome sélectionnera la plus appropriée en fonction des préférences de l'utilisateur.</p>
-
-<h4 id="skin_2" name="skin_2">skin</h4>
-
-<p>Un paquetage de thème est enregistré par la ligne :</p>
-
-<pre class="eval">skin <em>nomdupaquetage</em> <em>nomskin</em> <em>uri/vers/fichiers/</em> <em>[drapeaux]</em>
-</pre>
-
-<p>Ceci va enregistrer un paquetage de thème lors de la résolution de l'URI <code><a class="external" rel="freelink">chrome://nomdupaquetage/skin/</a>...</code> . La chaîne <em>nomskin</em> est une chaîne opaque identifiant le thème installé. Si plus d'un thème est enregistré pour un paquetage, le registre chrome sélectionnera le plus approprié en fonction des préférences de l'utilisateur.</p>
-
-<h4 id="style" name="style">style</h4>
-
-<p>Les overlays de style (CSS personnalisée qui sera appliquée à une page chrome) sont enregistrés avec la syntaxe suivante :</p>
-
-<pre class="eval">style chrome://<em>URI-vers-style</em> chrome://<em>stylesheet-URI</em> <em>[drapeaux]</em>
-</pre>
-
-<h4 id="override" name="override">override</h4>
-
-<p>Dans certains cas, une extension ou une application embarquant le moteur peut avoir envie de remplacer un fichier chrome fourni par l'application ou par XULRunner. Pour autoriser ce remplacement, le manifeste d'enregistrement chrome doit contenir des instructions « override » :</p>
-
-<pre class="eval">override chrome://<em>paquetage</em>/<em>type</em>/<em>uri-originelle.qqc</em> <em>nouvelle-URI-résolue</em> <em>[drapeaux]</em>
-</pre>
-
-<p>Note : les overrides ne sont pas récursifs (donc remplacer <a class="external" rel="freelink">chrome://foo/content/bar/</a> par <a class="external" rel="freelink">file:///home/john/blah/</a> ne fera généralement pas ce que vous désirez ou vous attendez à voir).</p>
-
-<div class="note">
-<p>Un bogue est actuellement présent dans les versions de Gecko antérieures à 1.8.0.13 et 1.8.1.5, ainsi que dans des compilations plus anciennes, où l'utilisation d'une URL relative pour le paramètre <em>nouvelle-URI-résolue</em> ne fonctionnera pas. Il est nécessaire de fournir une URL complètement qualifiée (c'est-à-dire qui peut être résolue n'importe où, pas uniquement dans le répertoire dans lequel le manifeste chrome se trouve). Étant donné que le développeur d'extension ou d'application est incapable de prédire ce que sera le chemin vers un tel fichier, il est actuellement uniquement possible d'utiliser cette directive avec une autre URL chrome:// comme paramètre <em>nouvelle-URI-résolue</em>. Voir le {{ Bug(323455) }}.</p>
-</div>
-
-<h3 id="Drapeaux_de_fichiers_manifest" name="Drapeaux_de_fichiers_manifest">Drapeaux de fichiers manifest</h3>
-
-<p>Dans les fichiers manifest, plusieurs drapeaux séparés par des virgules peuvent être ajoutés à la fin des lignes d'enregistrement. Ces drapeaux indiquent des attributs spéciaux du chrome dans ce paquetage ou limite les conditions d'utilisation de la ligne.</p>
-
-<h4 id="application" name="application">application</h4>
-
-<p>Des extensions peuvent s'installer dans plusieurs applications différentes. Certaines lignes d'enregistrement chrome peuvent toutefois être réservées à une application particulière. Le drapeau</p>
-
-<pre class="eval">application=<em>app-ID</em>
-</pre>
-
-<p>indique que l'instruction ne doit être appliquée que si l'extension est installée dans une application ayant pour identifiant <em>app-ID</em>. Plusieurs drapeaux <em>application</em> peuvent être fournis sur une même ligne, auquel cas elle sera appliquée si n'importe lequel d'entre-eux correspond.</p>
-
-<h4 id="appversion" name="appversion">appversion</h4>
-
-<p>Des extensions peuvent s'installer dans plusieurs versions différentes d'une application. Il peut y avoir des lignes d'enregistrements chrome qui ne s'appliquent qu'à une version particulière de l'application. Le drapeau</p>
-
-<pre class="eval">appversion=<em>version</em>
-appversion&lt;<em>version</em>
-appversion&lt;=<em>version</em>
-appversion&gt;<em>version</em>
-appversion&gt;=<em>version</em>
-</pre>
-
-<p>indique que l'instruction ne doit s'appliquer que si l'extension est installée dans la version de l'application indiquée. Plusieurs drapeaux <code>appversion</code> peuvent figurer sur la même ligne, auquel cas la ligne sera appliquée si n'importe lequel d'entre-eux correspond. La chaîne de version doit se conformer au <a href="/fr/Format_de_version_du_toolkit" title="fr/Format_de_version_du_toolkit">Format de version du toolkit</a>.</p>
-
-<h4 id="platform_.28paquetages_propres_.C3.A0_la_plateforme.29" name="platform_.28paquetages_propres_.C3.A0_la_plateforme.29">platform (paquetages propres à la plateforme)</h4>
-
-<p>Certains paquetages sont marqués à l'aide d'un drapeau particulier indiquant qu'ils sont propres à une plateforme. Certaines parties de content, skin ou locale peuvent être différents selon la plateforme sur laquelle l'application est exécutée. Ces paquetages contiennent trois jeux de fichiers différents, pour Windows/OS2, Macintosh et les plateformes de type Unix. Par exemple, l'ordre des boutons « OK » et « Annuler » dans un dialogue n'est pas le même d'une plateforme à l'autre, de même que le nom de certains éléments.</p>
-
-<p>L'indicateur « platform » n'est pris en compte que dans le cas d'un enregistrement content, il n'est pas reconnu dans le cas d'un enregistrement locale ou string. Cependant, il s'applique aux parties content, locale et skin lorsque spécifié.</p>
-
-<p>Pour indiquer qu'un paquetage est propre à une plateforme, ajoutez l'indicateur « platform » après le chemin sur la ligne <code>content</code>, par exemple :</p>
-
-<pre class="eval">content global-platform jar:toolkit.jar!/toolkit/content/global-platform/ platform
-</pre>
-
-<p>Une fois ceci spécifié dans votre fichier manifest, assurez-vous ensuite que, sous le répertoire global-platform, les sous-répertoires <code>win</code> (Windows/OS2), <code>mac</code> (OS9/OSX), ou <code>unix</code> (tous les autres cas) sont présents. Tout ce qui se trouve en dehors de ces sous-répertoires sera ignoré.</p>
-
-<h4 id="xpcnativewrappers" name="xpcnativewrappers">xpcnativewrappers</h4>
-
-<p>Les paquetages chrome peuvent décider s'ils utilisent ou non le mécanisme de sécurité XPCNativeWrapper pour protéger leur code contre du contenu malveillant auquel ils pourraient eccéder. Consultez <a href="/fr/Accès_sécurisé_au_contenu_DOM_depuis_le_chrome" title="fr/Accès_sécurisé_au_contenu_DOM_depuis_le_chrome">Accès sécurisé au contenu DOM depuis le chrome</a> pour plus de détails.</p>
-
-<p>Dans les versions alpha de Firefox 1.5 alpha (les alphas Deer Park), ce drapeau est *désactivé* par défaut, et doit être activé explicitement en spécifiant <code>xpcnativewrappers=yes</code>.</p>
-
-<p>À partir de la première version beta de Firefox 1.5, ce drapeau est activé par défaut, et les extensions qui ont besoin d'accès non sécurisés aux objets du contenu devront spécifier explicitement <code>xpcnativewrappers=no</code>.</p>
-
-<p>Le drapeau xpcnativewrappers ne s'applique qu'au paquetages de type content : il n'est pas reconnu par les enregistrements locale ou skin.</p>
-
-<h3 id="Exemple_de_fichier_manifest_chrome" name="Exemple_de_fichier_manifest_chrome">Exemple de fichier manifest chrome</h3>
-
-<pre class="eval">content necko jar:comm.jar!/content/necko/ xpcnativewrappers=yes
-locale necko fr jar:fr.jar!/locale/fr/necko/
-content xbl-marquee jar:comm.jar!/content/xbl-marquee/
-content pipnss jar:pipnss.jar!/content/pipnss/
-locale pipnss fr jar:fr.jar!/locale/fr/pipnss/
-content pippki jar:pippki.jar!/content/pippki/ xpcnativewrappers=yes
-locale pippki fr jar:fr.jar!/locale/fr/pippki/
-content global-platform jar:toolkit.jar!/content/global-platform/ platform
-skin global classic/1.0 jar:classic.jar!/skin/classic/global/
-override <a class="external" rel="freelink">chrome://global/content/netError.xhtml</a> jar:embedder.jar!/global/content/netError.xhtml
-content inspector jar:inspector.jar!/content/inspector/ xpcnativewrappers=no
-</pre>
-
-<h3 id="Anciens_fichiers_manifest_de_type_contents.rdf" name="Anciens_fichiers_manifest_de_type_contents.rdf">Anciens fichiers manifest de type contents.rdf</h3>
-
-<p>Avant que les fichiers texte de type manifest soient mis en place (avec Firefox 1.5 et la version 1.8 du toolkit), des fichiers RDF appelés « contents.rdf » étaient utilisés pour les enregistrements chrome. Ce format n'est plus recommandé, cependant la suite Mozilla (SeaMonkey) ne permet pas encore d'utiliser les fichiers texte au format manifest, et des fichiers contents.rdf sont toujours nécessaires pour les extensions qui désirent maintenir une rétrocompatibilité avec Firefox 1.0 ou la suite.</p>
diff --git a/files/fr/mozilla/firefox/compiler_firefox_avec_rust/index.html b/files/fr/mozilla/firefox/compiler_firefox_avec_rust/index.html
deleted file mode 100644
index b44152a57f..0000000000
--- a/files/fr/mozilla/firefox/compiler_firefox_avec_rust/index.html
+++ /dev/null
@@ -1,38 +0,0 @@
----
-title: Compiler Firefox avec Rust
-slug: Mozilla/Firefox/Compiler_Firefox_avec_Rust
-tags:
- - Compilation
- - Gecko
- - rust
-translation_of: Archive/Mozilla/Firefox/Building_Firefox_with_Rust_code
----
-<div>{{FirefoxSidebar}}</div><p>En mai 2015 le <a href="http://www.rust-lang.org/">langage de programmation Rust</a> a atteint sa version stable 1.0 et diverses expérimentations comme la rédaction de parties de Gecko en Rust ont commencé. Cette page est un guide sommaire destiné aux personnes travaillant sur ce projet.</p>
-
-<h2 id="Ajouter_le_code_Rust">Ajouter le code Rust</h2>
-
-<p>Le support de base pour la compilation avec le code Rust est disponible sur la page du  <a class="bz_bug_link
- bz_status_RESOLVED bz_closed" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1161339" title="RESOLVED FIXED - Support rust files in moz.build SOURCES">bogue 1161339</a>. Si vous disposez de rustc dans votre variable path vous pouvez ajouter les fichiers .rs à la variable SOURCES dans moz.build, puis ajouter :</p>
-
-<pre>ac_add_options --enable-rust</pre>
-
-<p>à votre <a href="/en-US/docs/Configuring_Build_Options">mozconfig</a> et ça devrait fonctionner.</p>
-
-<p>La bibliothèque standard de rust utilise un thread local de stockage qui n'est pas supporté sur MacOS X 10.6. Ainsi, si vous compilez le projet depuis un Mac vous devez aussi ajouter :</p>
-
-<pre>ac_add_options --enable-macos-target=10.7</pre>
-
-<p>Vous pouvez aussi compiler une toolchain personnalisée de Rust sans la partie relative à std::thread. Pour plus de détails, regardez le <a class="bz_bug_link
- bz_status_NEW " href="https://bugzilla.mozilla.org/show_bug.cgi?id=1164109" title="NEW - rust code fails to link on macosx because of thread-local storage">bogue 1164109</a>.</p>
-
-<p>Because of limitations of cargo and the Firefox build system, currently we build a stand-alone static lib from each rust file listed in SOURCES. You must therefore list just the top-level rust file. Everything must be a single crate, like a manual unified build. The rust compiler will search for interior modules by source file name, but <code>extern crate</code> references won't be resolved.</p>
-
-<p>Allez voir le <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1135640">bogue 1135640</a> ('oxidation') pour un suivi global.</p>
-
-<h2 id="Tester_le_code_Rust">Tester le code Rust</h2>
-
-<p>Il existe un test unitaire simple de disponible dans le répertoire du projet. Vous pouvez l'utiliser pour savoir si Rust est activé et fonctionne avec votre configuration.</p>
-
-<pre>./mach gtest rust.*</pre>
-
-<p>Regardez si le test <strong>rust.CallFromCpp</strong> réussi ainsi que tous les autres.</p>
diff --git a/files/fr/mozilla/firefox/deploiement_entreprise/index.html b/files/fr/mozilla/firefox/deploiement_entreprise/index.html
deleted file mode 100644
index 13913c8e06..0000000000
--- a/files/fr/mozilla/firefox/deploiement_entreprise/index.html
+++ /dev/null
@@ -1,145 +0,0 @@
----
-title: Déploiement de Firefox dans un environnement d'entreprise
-slug: Mozilla/Firefox/deploiement_Entreprise
-tags:
- - Déploiement
- - Entreprise
- - Firefox
-translation_of: Mozilla/Firefox/Enterprise_deployment_before_60
----
-<div>{{FirefoxSidebar}}</div>
-
-<p>Cette page documente de pied en cap le processus de gestion de Mozilla Firefox sur des ordinateurs fonctionnant sur Windows ou macOS dans le cadre d'une entreprise. Vous pouvez envoyer vos questions par courrier électronique à la liste de diffusion du groupe de travail pour les entreprises (<em>Enterprise Working Group</em>) via <a href="https://mail.mozilla.org/listinfo/enterprise">enterprise@mozilla.org</a> (en anglais). Mieux encore, vous pouvez rejoindre les discussions en cours en vous <a href="https://mail.mozilla.org/listinfo/enterprise">inscrivant à la liste en anglais</a> ou <a href="https://mail.mozilla.org/listinfo/enterprise-fr" lang="fr">en français</a>.</p>
-
-<div class="note">
-<p><strong>Note :</strong> cet article couvre des versions de Firefox antérieures à Firefox 60 ESR. Pour un déploiement dans des environements d’enterprises dans Firefox 60 ou plus récent, consultez l’article <a href="https://developer.mozilla.org/docs/Mozilla/Firefox/Enterprise_deployment">Deploying Firefox in an enterprise environment</a>.</p>
-</div>
-
-<h2 id="Choisissez_une_variante_de_Firefox">Choisissez une variante de Firefox</h2>
-
-<h3 id="RR_(Version_Rapide)">RR (Version Rapide)</h3>
-
-<p>Mozilla publie une nouvelle version majeure avec de nouvelles fonctionnalités et des corrections de bugs toutes les six semaines (et, si besoin, des mises à jour de sécurité durant cette période). Le jour où une version majeure est lancée, dans la plupart des cas (voir plus bas pour les exceptions), Mozilla arrête de fournir des correctifs de bugs pour les versions précédentes.</p>
-
-<p>Pour vous renseigner sur les dates de sortie des prochaines versions, vous pouvez regarder ce <a href="https://wiki.mozilla.org/RapidRelease/Calendar#Future_branch_dates">tableau</a> sur le wiki Mozilla.</p>
-
-<h3 id="ESR_(version_de_support_étendu)">ESR (version de support étendu)</h3>
-
-<p>Chaque septième version majeure de Firefox est déclarée version de support étendu. C<span id="result_box" lang="fr"><span class="hps">es</span> <span class="hps">versions</span> <span class="hps">reçoivent</span> <span class="hps">les </span></span> <span id="result_box" lang="fr"><span class="hps">corrections des gros bugs</span> </span><span lang="fr"><span class="hps">issus des versions mineures pendant 54</span> <span class="atn hps">semaines (</span><span>neuf</span> <span class="hps">cycles</span> <span class="hps">de six semaines</span><span>)</span><span>.</span> De plus, <span class="hps">un chevauchement</span> <span class="hps">de 12</span> <span class="atn hps">semaines (</span><span>deux</span> <span class="hps">cycles de</span> six semaines<span>)</span> <span class="hps">entre</span> <span class="hps">deux</span> <span class="hps">versions successives</span> <span class="hps">de type ESR</span><span> est effectué,</span> <span class="hps">au cours de laquelle</span> <span class="hps">les deux</span> <span class="hps">versions</span> <span class="hps">ESR</span> <span class="hps">obtiennent</span> <span class="hps">des corrections de bugs</span><span>.</span></span></p>
-
-<p>Les versions ESR sont les versions 10, 17, 24, 31 et 38.</p>
-
-<p>De nombreuses entreprises et organisations avec des environnements informatiques généralisés préfèrent utiliser des versions ESR que des versions RR car elles peuvent tester leur comptabilité sur une période de 42 semaines au lieu de la période de 6 semaines (entre chaque RR). De plus si elles ont un problème, elles disposent de 12 semaines de plus (chevauchement entre 2 versions ESR) pour trouver une solution (en plus des 6 semaines obtenues en testant la version beta).</p>
-
-<p>Notez que des effets indésirables peuvent se faire ressentir si vous passez d'une version RR à une version ESR antérieure. En effet, les versions RR voient parfois de nouvelles fonctionnalités non finies intégrées à leur code pour pouvoir les tester, mais désactivées par les préférences. Lors d'un retour à une version précédente, les utilisateurs gardent leurs derniers paramètres dans leur répertoire de profil. Une option peut alors être activée sans qu'elle ne soit totalement fonctionnelle sur la version ESR. Si vous souhaitez passer d'une version RR à une version ESR, vous devriez le faire lorsqu'une nouvelle version ESR voit le jour.</p>
-
-<h2 id="Installation">Installation</h2>
-
-<ol>
- <li>Téléchargez la dernière version de Firefox depuis <a href="https://www.mozilla.org/en-US/firefox/all/">https://www.mozilla.org/en-US/firefox/all/</a> (RR) ou <a href="https://www.mozilla.org/en-US/firefox/organizations/all/">https://www.mozilla.org/en-US/firefox/organizations/all/</a> (ESR).</li>
- <li>Installez la version sur le système d'exploitation de votre choix (L'option pour une installation silencieuse est -ms).</li>
- <li>Vous pouvez aussi créer un fichier d'initialisation. Pour plus d'informations, vous pouvez visiter <a href="https://wiki.mozilla.org/Installer:Command_Line_Arguments">cette page</a> (en).</li>
-</ol>
-
-<h2 id="Configuration">Configuration</h2>
-
-<ol>
- <li>Trouvez le répertoire où l'exécutable est présent. Par exemple, sur Windows 7 (64 bits), le répertoire est souvent <code>C:\Program Files (x86)\Mozilla Firefox</code>; dans Mac OSX 10.8 il s'agit de <code>/Applications/Firefox.app/Contents/MacOS</code>. Les sous-répertoires mentionnés par la suite sont relatifs à ce dossier.</li>
- <li>Créez un fichier javascript dans<code> defaults/pref</code> (généralement, <code>autoconfig.js</code> - d'autres noms fonctionnent, mais pour de meilleurs résultats, il faut que le nom commence par un 'a'). Le contenu de ce fichier indique à Firefox où trouver le fichier de configuration. (Pour plus d'informations : <a href="http://mike.kaply.com/2012/03/15/customizing-firefox-default-preference-files/">Customizing Firefox default preference files</a> (en)).Les trois lignes dont vous avez besoin sont :
- <pre class="brush: js">// Vous devez démarrer ce fichier avec un commentaire !
-pref("general.config.filename", "mozilla.cfg");
-pref("general.config.obscure_value", 0);</pre>
- </li>
- <li>Créez un fichier .cfg (généralement <code>mozilla.cfg</code> — le nom peut être différent, mais il faut que ça corresponde au nom entré dans les 2 lignes précédentes) dans le répertoire du programme. <span id="result_box" lang="fr"><strong><span class="hps">Passez</span> <span class="hps">ou</span> <span class="hps">commentez la</span> </strong><span class="hps"><strong>première ligne</strong>, puis</span> <span class="hps">commencer à mettre</span> <span class="hps">vos préférences</span><span>.</span></span> Pour savoir quelles préférences mettre, rendez-vous sur la page about:config sur une copie de Firefox correctement configurée et regardez les préférences ayant pour statut "<strong>user set"</strong>, ou regardez les exemples suivants. Toute préférence peut être réglée via une des fonctions suivantes :
- <dl>
- <dt><strong>pref </strong></dt>
- <dd>Un utilisateur peut changer une valeur, mais elle sera effacée au prochain redémarrage. Si vous mettez une préférence de cette manière, elle sera montrée comme "<strong>user set"</strong> dans about:config</dd>
- <dt><strong>defaultPref</strong></dt>
- <dd>pour modifier la valeur par défaut. Si un utilisateur change cette valeur, il pourra la garder entre plusieurs sessions. Les préférences peuvent être réinitialisées via la GUI ou autre méthode. Elle sera montrée avec un statut "<strong>default"</strong> dans about:config</dd>
- <dt><strong>lockPref</strong></dt>
- <dd>pour bloquer les préférences. Elles ne pourront pas être changées par la GUI ou via about:config. Dans la majeure partie des cas, la GUI va enlever l'option ou la griser.<span id="result_box" lang="fr"><span class="hps"> Certains éléments</span> <span class="hps">de la configuration</span> <span class="hps">nécessitent</span> un réglage via <strong><span class="hps">lockPref</span></strong><span class="hps">,</span> <span class="hps">tels que</span> <strong><span class="hps">app.update.enabled</span></strong><span> (<strong>pref</strong> ne fonctionnera pas).</span></span></dd>
- <dt><span class="author-g-fer323ku83ypu55t">clearPref</span></dt>
- <dd>pour rendre vierge certaines préférences. Peut s'avérer utile pour désactiver des fonctions se basant sur un numéro de version.</dd>
- </dl>
- </li>
-</ol>
-
-<p>Vous pouvez visiter <a href="http://mike.kaply.com/2012/03/16/customizing-firefox-autoconfig-files/">Customizing Firefox autoconfig files</a> (en) ou <a href="http://mike.kaply.com/2012/03/20/customizing-firefox-autoconfig-files-continued/">Customizing Firefox autoconfig files continued</a> (en) pour plus d'informations. Pour désactiver des éléments de l'interface utilisateur, vous pouvez utiliser l'extension <a href="http://mike.kaply.com/cck2/">CCK2</a>.</p>
-
-<h3 id="Exemple_de_fichier_de_configuration">Exemple de fichier de configuration</h3>
-
-<p>Dans l'exemple qui suit, vous pouvez voir des exemples de références nécessitant l'utilisation de <strong>lockPref</strong>.</p>
-
-<pre class="brush: js"><span class="brush: js">// Désactive la mise à jour automatique
-lockPref("app.update.enabled", false);
-// pour être sûr que la mise à jour automatique soit désactivée
-lockPref("app.update.auto", false);
-lockPref("app.update.mode", 0);
-lockPref("app.update.service.enabled", false);
-
-// Désactive la vérification de la comptabilité des extensions
-clearPref("extensions.lastAppVersion");
-
-// Désactive l'affichage de 'Connaître vos droits' au premier lancement
-pref("browser.rights.3.shown", true);
-
-// Ne montre pas les nouvelles fonctionnalités à chaque mise à jour
-pref("browser.startup.homepage_override.mstone","ignore");
-
-// Modifie la page d'accueil
-defaultPref("browser.startup.homepage", "http://home.example.com");
-
-// Désactive le lecteur de pdf interne
-pref("pdfjs.disabled", true);
-
-// Désactive le convertisseur flash vers javascript
-pref("shumway.disabled", true);
-
-// Ne demande pas d'installer le plugin flash
-pref("plugins.notifyMissingFlash", false);
-
-// Désactive la vérification des plugins
-lockPref("plugins.hide_infobar_for_outdated_plugin", true);
-clearPref("plugins.update.url");
-
-// Désactive le rapport de santé
-lockPref("datareporting.healthreport.service.enabled", false);
-
-</span>// Disable all data upload (Telemetry and FHR)
-lockPref("datareporting.policy.dataSubmissionEnabled", false);
-<span class="brush: js">
-// Désactive le rapport de crashs
-lockPref("toolkit.crashreporter.enabled", false);
-Components.classes["@mozilla.org/toolkit/crash-reporter;1"].getService(Components.interfaces.nsICrashReporter).submitReports = false;</span><em> </em>
-</pre>
-
-<h2 id="Packaging_d'extensions">Packaging d'extensions</h2>
-
-<ol>
- <li>Installez l'extension sur une machine de test. Regardez la page about:support sous Extensions pour trouver le GUID</li>
- <li>Regardez dans le répertoire des <a href="https://support.mozilla.org/fr/kb/profils-ou-firefox-conserve-donnees-utilisateur">profils</a> (ex: <code>%APPDATA%\Mozilla\Firefox\Profiles</code> pour Win7; pour le trouver, regardez Profile Directory sur la page about:support), puis sous "Extensions" pour l'extension souhaitée. Il s'agit soit d'un fichier .xpi (correspondant à un .zip) ou un dossier avec de multiples fichiers.</li>
- <li>Décidez de la façon dont vous voulez la déployer. La méthode la plus simple est de copier le .xpi ou le dossier dans le dossier <code>/distribution/extensions mais cette méthode ne fonctionne que pour les profils créés après l'ajout de l'extension.</code> De plus, si vous réinstallez firefox, le dossier sera supprimé, assurez-vous de réinstaller les extensions par la suite. Vous pouvez vous rendre sur cette page <a href="http://mike.kaply.com/2012/02/09/integrating-add-ons-into-firefox/">Integrating add-ons into Firefox</a> (en) pour trouver d'autres méthodes.</li>
-</ol>
-
-<h2 id="Changements_au_fil_du_temps">Changements au fil du temps</h2>
-
-<h3 id="Changement_dans_la_structure_des_répertoires">Changement dans la structure des répertoires</h3>
-
-<p>La structure des répertoires intégrée au programme a changé 2 fois. Si vous lisez des descriptions sorties avant la version 21, il faut probablement prendre en compte les points suivants :</p>
-
-<ul>
- <li>Dans la version 14, certains paramètres ont arrêté de fonctionner lorsqu'ils étaient dans un fichier du répertoire <code>defaults/pref</code>. La solution pour régler le problème était de créer un répertoire directory <code>defaults/preferences</code> et de les mettrent ici.</li>
- <li>Dans la version 21, le nouveau dossier appelé <code>browser</code> fut créé. Le fichier <code>override.ini</code> et les dossiers <code>defaults/preferences</code>, <code>defaults/profile</code>, <code>extensions</code>, <code>plugins</code>, and <code>searchplugins</code> furent déplacés ici. Les plugins du répertoire <code>plugins</code> peuvent être réactivés en modifiant la préférence <code>plugins.load_appdir_plugins</code> à <strong>true</strong>.</li>
-</ul>
-
-<p>La configuration des préférences <code>general.config.filename</code> et <code>general.config.obscure_value</code> pour AutoConfiguration peut être réalisée dans le dossier <code>defaults/pref</code>, mais le fichier de configuration doit commencer par la lettre 'a', comme par exemple <code>autoconfig.js</code>.</p>
-
-<p>Si l'opération venait à échouer depuis <code>defaults/pref</code> dans une des versions suivantes de Firefox, essayez avec <code>browser/defaults/preferences</code>.</p>
-
-<h3 id="Changement_de_répertoire_sur_Mac">Changement de répertoire sur Mac</h3>
-
-<p>En raison de l'approche d'Apple plus stricte en matière de signature de logiciel, depuis environ la version 35 les fichiers de configuration doivent être placés sous <code>/Applications/Firefox.app/Contents/Resources </code>(c'est là que doit aller <code>mozilla.cfg</code> et <code>autoconfig.js </code>sous <code>/Applications/Firefox.app/Contents/Resources/defaults/pref</code>).</p>
-
-<h3 id="Changements_dans_ESR_24.x_avec_les_fichiers_PDF_Adobe">Changements dans ESR 24.x avec les fichiers PDF Adobe</h3>
-
-<p>Firefox RR 19.x modifie l'outil de visionnage d'Adobe pour les fichiers .pdf afin d'utiliser l'outil interne. Ce changement est présent dans la version ESR 24.x et la préférence se modifie automatiquement lors de la mise à jour depuis ESR 17.x même si un outil de visionnage externe a été configuré. Le nom du type de fichier a aussi été modifié passant de <strong>Adobe Acrobat Document</strong> à <strong>Portable Document Format (PDF)</strong>, le rendant difficile à localier via les outils ou options. Pour désactiver cette fonctionnalité, modifiez <code>pdfjs.disabled</code> à true, comme dans le fichier d'exemple plus haut.</p>
diff --git a/files/fr/mozilla/firefox/developer_edition/index.html b/files/fr/mozilla/firefox/developer_edition/index.html
deleted file mode 100644
index 23cf232d3b..0000000000
--- a/files/fr/mozilla/firefox/developer_edition/index.html
+++ /dev/null
@@ -1,57 +0,0 @@
----
-title: Édition pour les développeurs
-slug: Mozilla/Firefox/Developer_Edition
-tags:
- - Developer Edition
-translation_of: Mozilla/Firefox/Developer_Edition
----
-<div>{{FirefoxSidebar}}</div><p><img alt="" src="https://mdn.mozillademos.org/files/9069/firefox-dev-ed_logo-only_1024.png" style="display: block; height: 256px; margin-left: auto; margin-right: auto; width: 256px;"></p>
-
-<p style="text-align: center;">Une version de Firefox adaptée sur mesure pour les développpeurs web.</p>
-
-<p><a href="https://www.mozilla.org/fr/firefox/developer/" style="width: 375px; display: block; margin-left: auto; margin-right: auto; padding: 10px; text-align: center; border-radius: 4px; background-color: #81BC2E; white-space: nowrap; color: white; text-shadow: 0px 1px 0px rgba(0, 0, 0, 0.25); box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.2), 0px -1px 0px 0px rgba(0, 0, 0, 0.3) inset;">Télécharger Firefox Developer Edition</a></p>
-
-<hr>
-<div class="column-container">
-<div class="column-half">
-<h3 id="Les_dernières_fonctionnalités_de_Firefox"><strong>Les dernières fonctionnalités de Firefox</strong></h3>
-
-<p>L'édition de Firefox pour les développeurs remplace le canal de distribution Aurora dans le <a href="https://wiki.mozilla.org/Release_Management/Release_Process">système de release de Firefox</a>. De la même manière que pour Aurora, les nouvelles fonctionnalités seront intégrées à cette édition toutes les six semaines, une fois qu'elles auront été suffisamment stabilisées avec les versions Nightly.</p>
-
-<p>En utilisant l'édition développeur, vous pourrez avoir accès aux outils et aux fonctionnalités 12 semaines avant que ceux-ci ne soient disponibles sur le canal de release.</p>
-
-<p><a href="/en-US/Firefox/Releases/35">Découvrez les nouveautés de l'édition de Firefox pour les développeurs</a>.</p>
-</div>
-
-<div class="column-half">
-<h3 id="Des_outils_de_développement_expérimentaux"><strong>Des outils de développement expérimentaux</strong></h3>
-
-<p>Certains outils expérimentaux seront intégrés pour maturer avant d'atteindre le canal de distribution release.</p>
-
-<p>Ainsi, l'édition développeur intègre <a href="/fr/docs/Outils/Firefox_Tools_Adapter">l'extension Valence</a>, qui permet de connecter les <a href="/fr/docs/Outils">outils de développement Firefox</a> à d'autres navigateurs tels que Chrome pour Android ou Safari pour iOS.</p>
-</div>
-</div>
-
-<div class="column-container">
-<div class="column-half">
-<h3 id="Un_profil_à_part_entière"><strong>Un profil à part entière</strong></h3>
-
-<p>L'édition de Firefox pour les développeurs utilise un profil séparé de celui des autres versions de Firefox installées sur le même ordinateur. Cela signifie que vous pouvez facilement utiliser une version développeur en même temps qu'une version beta.</p>
-</div>
-
-<div class="column-half">
-<h3 id="Une_version_paramétrée_pour_les_développeurs_web"><strong>Une version paramétrée pour les développeurs web</strong></h3>
-
-<p>Les préférences utiles au développement web sont activées et paramétrées. Le débogage du chrome et le débogage à distance sont par exemple activés par défaut.</p>
-</div>
-</div>
-
-<div class="column-container">
-<div class="column-half">
-<h3 id="Un_thème_distinct"><strong>Un thème distinct</strong></h3>
-
-<p>Ce thème permet d'accéder plus rapidement aux outils de développement.</p>
-</div>
-</div>
-
-<p> </p>
diff --git a/files/fr/mozilla/firefox/developer_edition/reverting/index.html b/files/fr/mozilla/firefox/developer_edition/reverting/index.html
deleted file mode 100644
index 231da0448a..0000000000
--- a/files/fr/mozilla/firefox/developer_edition/reverting/index.html
+++ /dev/null
@@ -1,23 +0,0 @@
----
-title: Supprimer les fonctionnalités spéciales
-slug: Mozilla/Firefox/Developer_Edition/Reverting
-translation_of: Mozilla/Firefox/Developer_Edition/Reverting
----
-<div>{{FirefoxSidebar}}</div><h2 id="Changer_le_thème_de_la_Developer_Edition">Changer le thème de la <em>Developer Edition</em></h2>
-
-<p>Si vous souhaitez utiliser la Developer Edition, mais que vous préférez utiliser le thème <em>Australis</em> utilisé dans Firefox et Firefox Beta, vous pouvez utiliser le thème normal de Firefox. Ouvrez le panneau « Personnaliser » et cliquez sur le bouton « Utiliser le thème Firefox Developer Edition ».</p>
-
-<p>{{EmbedYouTube("oiHt8T1Liyk")}}</p>
-
-<p>Vous pouvez également tapper “about:addons” dans la barre d'URL, sélectionner « Apparence » et changer le thème depuis cet endroit.</p>
-
-<h2 id="Revenir_à_Firefox_Aurora">Revenir à Firefox Aurora</h2>
-
-<p>Si vous souhaitez toutes les fonctionnalités pre-Beta dans Firefox Developer Edition, mais que vous ne souhaitez aucun autre changement, vous pouvez revenir à l'ancien Firefox Aurora. Cette opération restaurera votre profil et vos données de session d'avant la mise à jour. C'est un processus en deux étapes, qu'il faut suivre dans cet ordre :</p>
-
-<ol>
- <li>Ouvrez la page Préférences de la Developer Edition, et décochez la case "Autoriser Firefox Developer Edition et Firefox à s'exécuter en parallèle". Il vous sera demandé de redémarrer le navigateur.</li>
- <li>Après avoir redémarré, vous pouvez restaurer le thème de la <em>Developer Edition</em> en suivant les instructions de la section « Changer le thème de la <em>Developper Edition</em> » ci-dessus.</li>
-</ol>
-
-<p>{{EmbedYouTube("8rEJn_hATE8")}}</p>
diff --git a/files/fr/mozilla/firefox/firefox_esr/index.html b/files/fr/mozilla/firefox/firefox_esr/index.html
deleted file mode 100644
index 594d9bbaa4..0000000000
--- a/files/fr/mozilla/firefox/firefox_esr/index.html
+++ /dev/null
@@ -1,15 +0,0 @@
----
-title: Firefox ESR
-slug: Mozilla/Firefox/Firefox_ESR
-tags:
- - ESR
- - Firefox pour Bureau
- - LTS
- - Stratégie de Groupe
- - Version au Support Allongé
- - gpo
-translation_of: Mozilla/Firefox/Firefox_ESR
----
-<div>{{FirefoxSidebar}}</div><p>Firefox Extended Support Release (ESR) est basé sur une version officielle de Firefox pour ordinateur, le public visé étant les entreprises qui ont besoin d'un support étendu dans le cadre de déploiements d'envergure. Contrairement aux autres canaux de distribution, les versions ESR ne sont pas mises à jour toutes les six semaines avec de nouvelles fonctionnalités ;  par contre, elles sont supportées pendant environ un an et reçoivent des correctifs en cas de problème de stabilité ou de risque de sécurité majeur. La version ESR actuelle se base sur Firefox 60 paru le 9 mai 2018.</p>
-
-<p>Nous encourageons fortement les utilisateurs de Firefox ESR à s'inscrire sur la <a href="https://www.mozilla.org/en-US/firefox/organizations/">liste de diffusion Enterprise Working Group (EWG)</a>.</p>
diff --git a/files/fr/mozilla/firefox/headless_mode/index.html b/files/fr/mozilla/firefox/headless_mode/index.html
deleted file mode 100644
index e852a2c775..0000000000
--- a/files/fr/mozilla/firefox/headless_mode/index.html
+++ /dev/null
@@ -1,124 +0,0 @@
----
-title: Le mode headless
-slug: Mozilla/Firefox/Headless_mode
-tags:
- - Automatisation
- - Firefox
- - Mode Headless
- - QA
- - node.js
- - test
-translation_of: Mozilla/Firefox/Headless_mode
----
-<div>{{FirefoxSidebar}}</div><p class="summary">Le mode « <em>headless</em> » permet d'utiliser Firefox mais sans afficher les éléments d'interface. Ça ne présente pas d'intérêt pour surfer sur le Web, mais cela permet de réaliser des tests automatisés. Cet article fournit les informations pertinentes pour pouvoir utiliser le mode <em>headless</em> de Firefox.</p>
-
-<h2 id="Utiliser_le_mode_headless">Utiliser le mode <em>headless</em></h2>
-
-<p>Vous pouvez démarrer Firefox dans son mode <em>headless</em> grâce à une ligne de commande incluant le drapeau (<em>flaTg</em>) <code>-headless</code>. Par exemple :</p>
-
-<pre class="brush: bash">/chemin/vers/firefox -headless</pre>
-
-<p>Pour le moment, nous n'avons pas inclus davantage d'options, mais plus seront ajoutées plus tard.</p>
-
-<p>Par exemple, nous travaillons à implémenter une option <code>--screenshot</code>, qui permettra de faire des captures d'écran depuis le mode <em>headless</em> de Firefox. Voir {{bug(1378010)}} pour suivre l'avancée.</p>
-
-<h3 id="Prise_en_charge">Prise en charge</h3>
-
-<p>Le mode <em>headless</em> de Firefox fonctionne à partir de la version 55 sur Linux et à partir de la version 56+ sur Windows et Mac.</p>
-
-<h2 id="Tests_industrialisés_à_l'aide_du_mode_headless">Tests industrialisés à l'aide du mode <em>headless</em></h2>
-
-<p>La façon la plus utile d'utiliser ce mode <em>headless</em> est de faire tourner des tests industrialisés dans Firefox. Cela signifie que vous pouvez rendre votre processus de test bien plus efficace grâce à ce mode.</p>
-
-<h3 id="Selenium">Selenium</h3>
-
-<p>Pour fournir un exemple d'utilisation du mode headless pour test industrialisés, nous allons créer un test recourant à <a href="http://www.seleniumhq.org/">Selenium</a> via <a href="https://nodejs.org/">Node.js</a> et <a>selenium-webdriver</a>. Pour cela, nous supposons que vous êtes déjà à l'aise avec les bases de Selenium, Webdriver et Node, puis que vous avez préparé un environnement de test. Si vous ne l'avez pas fait, rendez-vous sur le guide développant la <a href="https://developer.mozilla.org/en-US/docs/Learn/Tools_and_testing/Cross_browser_testing/Your_own_automation_environment#Setting_up_Selenium_in_Node">mise en place d'un environnement de test</a>, puis revenez lire cette documentation.</p>
-
-<p>Tout d'abord, soyez sûr d'avoir installé Node ainsi que <code>selenium-webdriver</code> sur votre machine. Ensuite, créez un nouveau fichier nommé <code>selenium-test.js</code>.</p>
-
-<div class="note">
-<p><strong>Note :</strong> Vous pouvez également cloner ce dépôt : <a href="https://github.com/mdn/headless-examples">headless-examples</a> qui contient un fichier de <em>package</em>. Il suffit donc de lancer <code>npm install</code> afin d'installer les dépendances nécessaires.</p>
-</div>
-
-<ol>
- <li>
- <p>Ajouter quelques lignes de code. À l'intérieur de ce fichier, commencez en important le module principal selenium-webdriver, ainsi que le sous-module firefox :</p>
-
- <pre class="brush: js">var webdriver = require('selenium-webdriver'),
- By = webdriver.By,
- until = webdriver.until;
-
-var firefox = require('selenium-webdriver/firefox');</pre>
- </li>
- <li>
- <p>Puis, créez un objet <code>binary</code> qui représente Firefox Nightly et ajouter l'argument <code>-headless</code> afin qu'il puisse être lancé avec ce mode :</p>
-
- <pre class="brush: js">var binary = new firefox.Binary(firefox.Channel.NIGHTLY);
-binary.addArguments("-headless");</pre>
- </li>
- <li>
- <p>Maintenant, créez une nouvelle instance de driver utilisant Firefox et utilisez <code>setFirefoxOptions()</code> afin d'inclure une option qui spécifiera que le test devra tourner sur le Nightly channel de Firefox (cette étape n'est pas nécessaire sur Linux, mais reste utile pour utiliser les fonctions avancées de la version Nightly de Firefox sur Windows/Mac tant que celle-ci n'est pas disponible en <em>release</em>) :</p>
-
- <pre class="brush: js">var driver = new webdriver.Builder()
- .forBrowser('firefox')
- .setFirefoxOptions(new firefox.Options().setBinary(binary))
- .build();</pre>
- </li>
- <li>
- <p>Il faut maintenant ajouter la ligne de code qui initiera la navigation sur la page de recherche Google :</p>
-
- <pre class="brush: js">driver.get('https://www.google.com');
-driver.findElement(By.name('q')).sendKeys('webdriver');
-
-driver.sleep(1000).then(function() {
- driver.findElement(By.name('q')).sendKeys(webdriver.Key.TAB);
-});
-
-driver.findElement(By.name('btnK')).click();
-
-driver.sleep(2000).then(function() {
- driver.getTitle().then(function(title) {
- if(title === 'webdriver - Google Search') {
- console.log('Test passed');
- } else {
- console.log('Test failed');
- }
- });
-});
-
-driver.quit();</pre>
- </li>
- <li>
- <p>Enfin, démarrez le test en utilisant la commande suivante :</p>
-
- <pre class="brush: bash">node selenium-test</pre>
- </li>
-</ol>
-
-<p>Et c'est tout ! Après quelques secondes, vous devriez voir apparaître le message "Test passed" sur la console</p>
-
-<p>L'article <em><a href="https://mykzilla.org/2017/08/30/headless-firefox-in-node-js-with-selenium-webdriver/">Headless Firefox in Node.js with selenium-webdriver</a></em> de Myk Melez continent d'autres conseils utiles pour créer un test industrialisé via Node.js et Selenium dans le mode <em>headless</em>.</p>
-
-<h3 id="D'autres_solutions_de_test">D'autres solutions de test</h3>
-
-<p>Slimerjs supporte Firefox sur Linux et bientôt sur Mac et Windows. Voir l'article <em><a href="https://adriftwith.me/coding/2017/04/21/headless-slimerjs-with-firefox/">Headless SlimerJS with Firefox</a></em> de Brendan Dahl pour plus détails.</p>
-
-<p>De plus, vous pourrez utiliser le mode headless de Firefox pour faire tourner des tests industrialisés développés dans la plupart des autres applications de tests, pour autant qu'elles permettent de définir une variable d'environnement.</p>
-
-<h2 id="Dépannage_et_aide_supplémentaire">Dépannage et aide supplémentaire</h2>
-
-<p>Si vous avez le moindre problème en utilisant le mode <em>headless</em>, ne vous inquiétez pas, nous sommes ici pour vous aider. Cette section a pour but de référencer toutes vos questions et les réponses que nous leur apportons.</p>
-
-<ul>
- <li>Sur Linux, certaines bibliothèques sont nécessaires pour faire tourner le mode <em>headless</em> de Firefox, même si ce dernier ne les utilise pas directement. Voir le {{bug(1372998)}} pour suivre la résolution du problème.</li>
-</ul>
-
-<p>Si vous souhaitez poser une question à nos ingénieurs, le meilleur moyen est de se rendre sur le <a href="https://wiki.mozilla.org/IRC">canal IRC</a> <code>#headless</code> de Mozilla. Si vous êtes certain d'avoir trouvé un bug, documentez le sur la plateforme <a href="https://bugzilla.mozilla.org/">Mozilla Bugzilla</a>.</p>
-
-<h2 id="Voir_aussi">Voir aussi</h2>
-
-<ul>
- <li><a href="https://intoli.com/blog/running-selenium-with-headless-firefox/"><em>Using Selenium with Headless Firefox (on Windows)</em> (en anglais)</a> par Andre Perunicic (utilise Python)</li>
- <li><em><a href="https://mykzilla.org/2017/08/30/headless-firefox-in-node-js-with-selenium-webdriver/">Headless Firefox in Node.js with selenium-webdriver </a></em><a href="https://mykzilla.org/2017/08/30/headless-firefox-in-node-js-with-selenium-webdriver/">(en anglais)</a> par Myk Melez</li>
- <li><a href="https://adriftwith.me/coding/2017/04/21/headless-slimerjs-with-firefox/"><em>Headless SlimerJS with Firefox</em> (en anglais)</a> par Brendan Dahl</li>
-</ul>
diff --git a/files/fr/mozilla/firefox/le_protocole_about/index.html b/files/fr/mozilla/firefox/le_protocole_about/index.html
deleted file mode 100644
index 0e6912b8a7..0000000000
--- a/files/fr/mozilla/firefox/le_protocole_about/index.html
+++ /dev/null
@@ -1,174 +0,0 @@
----
-title: Firefox et le protocole "about"
-slug: Mozilla/Firefox/Le_protocole_about
-tags:
- - Firefox
- - Guide
- - Mozilla
- - Protocoles
-translation_of: Mozilla/Firefox/The_about_protocol
----
-<div>{{FirefoxSidebar}}</div>
-
-<p>Il existe un grand nombre d'informations utiles à propos de Firefox cachées derrière le protocole d'URL <code>about:</code>. La plus utile est l'URL <code>about:config</code> qui affiche les préférences et les paramètres qui peuvent être consultés et modifiés. Voici la liste complète des URL du pseudo-protocole <code>about:</code> :</p>
-
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">Page <code>about:</code></th>
- <th scope="col">Description</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td><code>about:about</code></td>
- <td>Fournit un aperçu de toutes les pages about:</td>
- </tr>
- <tr>
- <td><code>about:addons</code></td>
- <td>Gestionnaire de modules complémentaires</td>
- </tr>
- <tr>
- <td><code>about:buildconfig</code></td>
- <td>Affiche la plate-forme et la configuration utilisées pour construire Firefox</td>
- </tr>
- <tr>
- <td><code>about:cache</code></td>
- <td>Affiche les informations sur les caches mémoire, disque et appcache</td>
- </tr>
- <tr>
- <td><code>about:checkerboard</code></td>
- <td>Permet de diagnostiquer les apparitions de damiers à l'affichage</td>
- </tr>
- <tr>
- <td><code>about:config</code></td>
- <td>Fournit un moyen d'inspecter et modifier les préférences et paramètres de Firefox</td>
- </tr>
- <tr>
- <td><code>about:crashes</code></td>
- <td>Liste tous les plantages qui se sont produits pendant le fonctionnement de Firefox (dans le cas où l'utilisateur a activé les rapports de plantage)</td>
- </tr>
- <tr>
- <td><code>about:credits</code></td>
- <td>Liste tous les contributeurs du projet Firefox</td>
- </tr>
- <tr>
- <td><code>about:debugging</code></td>
- <td>Affiche la page de déboguage des modules complémentaires</td>
- </tr>
- <tr>
- <td><code>about:devtools</code></td>
- <td>Introduction aux outils de développement</td>
- </tr>
- <tr>
- <td><code>about:downloads</code></td>
- <td>Affiche tous les téléchargements faits dans Firefox</td>
- </tr>
- <tr>
- <td><code>about:home</code></td>
- <td>Page de démarrage de Firefox lors de l'ouverture d'une nouvelle fenêtre</td>
- </tr>
- <tr>
- <td><code>about:license</code></td>
- <td>Affiche les informations de licence</td>
- </tr>
- <tr>
- <td><code>about:logo</code></td>
- <td>Logo de Firefox</td>
- </tr>
- <tr>
- <td><a href="/fr/docs/Performance/about%3Amemory">about:memory</a></td>
- <td>Fournit un moyen d'afficher l'utilisation de la mémoire, de l'enregistrer dans un rapport et de lancer les GC et CC</td>
- </tr>
- <tr>
- <td><code>about:mozilla</code></td>
- <td>Page spéciale affichant un message extrait de l'ouvrage "Le Livre de Mozilla"</td>
- </tr>
- <tr>
- <td><code>about:networking</code></td>
- <td>Affiche des informations sur le réseau</td>
- </tr>
- <tr>
- <td><code>about:newtab</code></td>
- <td>Page de démarrage à l'ouverture d'un nouvel onglet</td>
- </tr>
- <tr>
- <td><code>about:performance</code></td>
- <td>Affiche une indication de l'utilisation du processeur et de la mémoire des onglets/modules/processus</td>
- </tr>
- <tr>
- <td><code>about:plugins</code></td>
- <td>Affiche les informations sur les plugins installés</td>
- </tr>
- <tr>
- <td><code>about:policies</code></td>
- <td>Liste les <a href="https://support.mozilla.org/fr/products/firefox-enterprise/policies-enterprise">stratégies d'entreprise</a></td>
- </tr>
- <tr>
- <td><code>about:preferences</code></td>
- <td>Paramètres de Firefox (également accessibles à partir du menu Firefox &gt; <em>Préférences</em>)</td>
- </tr>
- <tr>
- <td><code>about:privatebrowsing</code></td>
- <td>Page de démarrage lors de l'ouverture d'une fenêtre de navigation privée</td>
- </tr>
- <tr>
- <td><code>about:profiles</code></td>
- <td>Affichages et gestion des profils</td>
- </tr>
- <tr>
- <td><code>about:restartrequired</code></td>
- <td>Page informant l'utilisateur de la nécessité d'un redémarage après une mise à jour</td>
- </tr>
- <tr>
- <td><code>about:reader</code></td>
- <td>Indique qu'une page utilise le mode lecture</td>
- </tr>
- <tr>
- <td><code>about:rights</code></td>
- <td>Affiche des informations sur les droits</td>
- </tr>
- <tr>
- <td><code>about:robots</code></td>
- <td>Page spéciale affichant des remarques concernant les robots</td>
- </tr>
- <tr>
- <td><code>about:serviceworkers</code></td>
- <td>Affiche les ServiceWorkers inscrits</td>
- </tr>
- <tr>
- <td><code>about:sessionrestore</code></td>
- <td>Restauration de session (affichée après un plantage de Firefox)</td>
- </tr>
- <tr>
- <td><code>about:support</code></td>
- <td>Informations de dépannage (également accessible à partir du menu Firefox &gt; <em>? (point d'interrogation)</em> &gt; <em>Informations de dépannage</em>)</td>
- </tr>
- <tr>
- <td><code>about:sync-log</code></td>
- <td>Affiche un protocole de synchronisation relatif à la fonctionnalité <a href="https://www.mozilla.org/fr/firefox/sync/">Sync</a></td>
- </tr>
- <tr>
- <td><code>about:telemetry</code></td>
- <td>Affiche les données de télémétrie collectées et envoyées à Mozilla lorsque Firefox est en cours d'exécution (dans le cas où l'utilisateur a activé la télémétrie)</td>
- </tr>
- <tr>
- <td><code>about:url-classifier</code></td>
- <td>Affiche le statut de la classification d'URL (utilisée pour <a href="https://support.mozilla.org/fr/kb/comment-fonctionne-protection-contre-hame%C3%A7onnage-et-logiciels-malveillants">les protections contre l'hameçonnage et les logiciels malveillants</a>)</td>
- </tr>
- <tr>
- <td><code>about:webrtc</code></td>
- <td>Informations sur l'utilisation de WebRTC</td>
- </tr>
- <tr>
- <td><code>about:welcome</code></td>
- <td>Page affiché après l'installation de Firefox</td>
- </tr>
- <tr>
- <td><code>about:welcomeback</code></td>
- <td>Page d'information affichée après la réinitialisation de Firefox</td>
- </tr>
- </tbody>
-</table>
-
-<p>Ces URL sont définies dans {{source("docshell/base/nsAboutRedirector.cpp")}}, à l'intérieur du tableau <code>kRedirMap</code>. Celui-ci couvre la plupart des URL, de <code>config</code> jusqu'aux URL du pseudo-protocole <code>chrome:</code>, comme <code>chrome://global/content/config.xul</code>. Les informations sur les emplacements about sont dupliquées dans {{source("docshell/build/nsDocShellModule.cpp")}}.</p>
diff --git a/files/fr/mozilla/firefox/multiprocessus_firefox/index.html b/files/fr/mozilla/firefox/multiprocessus_firefox/index.html
deleted file mode 100644
index 9a09652da6..0000000000
--- a/files/fr/mozilla/firefox/multiprocessus_firefox/index.html
+++ /dev/null
@@ -1,77 +0,0 @@
----
-title: Firefox multiprocessus
-slug: Mozilla/Firefox/Multiprocessus_Firefox
-tags:
- - multiprocessus
-translation_of: Mozilla/Firefox/Multiprocess_Firefox
----
-<div>{{FirefoxSidebar}}</div><p>Dans les anciennes versions de Firefox pour bureau, le navigateur ne s'exécutait que dans un seul processus du système d'exploitation. En particulier, le JavaScript qui exécutait l'interface du navigateur (également connu sous le nom « code chrome ») s'exécutait habituellement dans le même processus que celui présent dans les pages web (<span class="spellmodupdated" title="">appelé</span> aussi « contenu » ou « contenu web »).</p>
-
-<p>Les dernières versions de Firefox e<span class="spellmod" title="">xécutent</span> l'interface du navigateur dans un processus différent de celui des pages w<span class="spellmod" title="">eb.</span> Dans la première itération de cette architecture, tous les onglets tournent dans le même processus et l'interface du navigateur dans un processus différent. Dans les itérations suivantes, nous espérons avoir plus d'un processus pour le contenu. Le projet qui consiste à apporter le <span class="spellmod" title="">multi</span>processus dans Firefox est <span class="spellmod" title="">appelé</span> <em>Electrolysis</em>, qui correspond à l'abréviation e10s.</p>
-
-<p>Les pages web classiques ne sont pas affectées par l'apparition du multiprocessus dans Firefox. Les développeurs travaillant sur Firefox lui-même ou les extensions du navigateur seront affectés si leur code <span id="result_box" lang="fr"><span class="hps">repose sur la possibilité</span> <span class="hps">d'accéder directement à</span> du contenu web.</span></p>
-
-<p><span lang="fr"><span class="hps">Au lieu d'accéder au contenu directement, le JavaScript présent dans le code chrome devra utiliser </span></span>le <a href="/Firefox/Multiprocess_Firefox/Message_manager">gestionnaire de messages</a> pour accéder au contenu. Pour faciliter la transition, nous avons mis en place des objets (les <a href="/Firefox/Multiprocess_Firefox/Cross_Process_Object_Wrappers">Cross Process Object Wrappers</a>) et vous pouvez vous référer à cette <a href="https://developer.mozilla.org/Firefox/Multiprocess_Firefox/Limitations_of_chrome_scripts#Compatibility_shims">page</a> pour découvrir les limitations des scripts chrome. Si vous développez des extensions, vous pouvez lire le <a href="https://developer.mozilla.org/Mozilla/Add-ons/Working_with_multiprocess_Firefox">guide pour travailler avec Firefox multiprocessus</a>.</p>
-
-<hr>
-<div class="column-container">
-<div class="column-half">
-<dl>
- <dt><a href="/Firefox/Multiprocess_Firefox/Technical_overview">Présentation technique</a></dt>
- <dd>Une vision très haut niveau de comment le multiprocessus pour Firefox est mis en œuvre.</dd>
- <dt><a href="/en-US/Firefox/Multiprocess_Firefox/Web_content_compatibility">Guide de compatibilité du contenu web</a></dt>
- <dd>Conseils et détails sur de potentiels problèmes de compatibilité des sites web qui peuvent arriver à cause de la transition. Remarque : il n'y en a pas beaucoup !</dd>
- <dt><a href="/Firefox/Multiprocess_Firefox/Glossary">Glossaire</a></dt>
- <dd>La définition du jargon utilisé dans le projet <em>Electrolysis</em>.</dd>
- <dt><a href="/Firefox/Multiprocess_Firefox/Message_Manager">Gestionnaire de messages</a></dt>
- <dd><span id="result_box" lang="fr"><span class="hps">Guide complet sur</span> <span class="hps">les</span> <span class="hps">objets utilisés</span> <span class="hps">pour communiquer entre</span> <span class="hps">le code chrome</span> <span class="hps">et le contenu.</span></span></dd>
- <dt><a href="/Add-ons/SDK/Guides/Multiprocess_Firefox_and_the_SDK">Extensions basées sur le SDK</a></dt>
- <dd>Comment migrer vos extensions en utilisant le SDK d'extensions.</dd>
- <dt><a href="/Firefox/Multiprocess_Firefox/Which_URIs_load_where">Quelle URI se charge où</a></dt>
- <dd>Un guide rapide sur quelles URI - chrome:, about:, file:, resource: - sont chargés dans chaque processus.</dd>
-</dl>
-</div>
-
-<div class="column-half">
-<dl>
- <dt><a href="/Firefox/Multiprocess_Firefox/Motivation">Motivation</a></dt>
- <dd>Pourquoi nous implémentons le multiprocessus dans Firefox : performance, sécurité et stabilité.</dd>
- <dt><a href="/Add-ons/Working_with_multiprocess_Firefox">Guide de migration des extensions</a></dt>
- <dd>Si vous êtes un développeur d'extension, apprenez si votre extension est affectée et comment mettre à jour votre code.</dd>
- <dt><a href="/Firefox/Multiprocess_Firefox/Cross_Process_Object_Wrappers">Objets CPOW</a></dt>
- <dd>Les objets appelés <em>Cross Process Object Wrappers</em> sont une aide à la migration, permettant au code chrome d'accéder de manière synchrone au contenu.</dd>
- <dt><a href="/Firefox/Multiprocess_Firefox/Debugging_frame_scripts">Deboggage des processus du contenu</a></dt>
- <dd>Comment déboguer du code fonctionnant dans le processus contenu.</dd>
- <dt><a href="/docs/Mozilla/Firefox/Multiprocess_Firefox/Tab_selection_in_multiprocess_Firefox">Sélection d'onglet dans Firefox multiprocessus</a></dt>
- <dd>Comment le passage entre les onglets marche dans Firefox multiprocessus.</dd>
-</dl>
-</div>
-</div>
-
-<hr>
-<div class="column-container">
-<div class="column-half">
-<dl>
- <dt><a href="/Firefox/Multiprocess_Firefox/Limitations_of_chrome_scripts">Limitations des scripts chrome</a></dt>
- <dd>Les pratiques ne fonctionnant plus dans le code chrome et comment y remédier.</dd>
-</dl>
-</div>
-
-<div class="column-half">
-<dl>
- <dt><a href="/Firefox/Multiprocess_Firefox/Limitations_of_frame_scripts">Limitations des scripts avec privilèges</a></dt>
- <dd>Les pratiques ne fonctionnant plus dans le code des scripts de cadre et comment y remédier.</dd>
-</dl>
-</div>
-</div>
-
-<hr>
-<h2 id="Contactez-nous">Contactez-nous</h2>
-
-<p>Pour plus d'informations sur le projet, vous impliquer ou poser des questions :</p>
-
-<ul>
- <li><strong>Page du projet Electrolysis</strong>: <a href="https://wiki.mozilla.org/Electrolysis">https://wiki.mozilla.org/Electrolysis</a></li>
- <li><strong>IRC</strong>: #e10s sur <a href="https://wiki.mozilla.org/IRC">irc.mozilla.org</a></li>
- <li><strong>Mailing list</strong>: <a href="https://groups.google.com/forum/#!forum/mozilla.dev.tech.electrolysis">dev.tech.electrolysis</a></li>
-</ul>
diff --git a/files/fr/mozilla/firefox/multiprocessus_firefox/motivation/index.html b/files/fr/mozilla/firefox/multiprocessus_firefox/motivation/index.html
deleted file mode 100644
index ed2b4828b4..0000000000
--- a/files/fr/mozilla/firefox/multiprocessus_firefox/motivation/index.html
+++ /dev/null
@@ -1,44 +0,0 @@
----
-title: Motivation
-slug: Mozilla/Firefox/Multiprocessus_Firefox/Motivation
-translation_of: Mozilla/Firefox/Multiprocess_Firefox/Motivation
----
-<div>{{FirefoxSidebar}}</div><p>Il y a trois raisons qui nous poussent à faire tourner le contenu de Firefox dans un processus séparé : performance, sécurité, stabilité.</p>
-
-<h2 id="Performance">Performance</h2>
-
-<p>La plupart des travaux de Mozilla ces deux dernières années ont mis l'accent sur la réactivité du navigateur. Le but est de réduire les lenteurs de l'interface (<a href="/en-US/docs/Glossary/Jank">jank</a>) - c'est-à-dire quand le navigateur a l'air de se figer lors du chargement d'une grosse page, au remplissage d'un formulaire ou lors du défilement de la page. La réactivité devient plus importante que le débit sur le web aujourd'hui. Un gros du travail a été réalisé comme une partie du projet <a href="https://wiki.mozilla.org/Performance/Snappy">Snappy</a>. En voici les principaux axes :</p>
-
-<ul>
- <li>Mettre les actions longues à réaliser dans un thread séparé pour que le thread principal puisse continuer à répondre.</li>
- <li>Rendre les Entrées/Sorties asynchrones ou dans des threads séparés pour que le thread principal ne soit pas bloqué par le disque dur.</li>
- <li>Réduire les gros codes en plusieurs petits morceaux et en exécutant la boucle d'évènement entre ces morceaux.</li>
-</ul>
-
-<p>Une grande partie de ces travaux a déjà été réalisée. Les points restants sont difficiles à résoudre. Par exemple, l'exécution de JavaScript se déroule dans le thread principal ce qui bloque la boucle d'évènements. Exécuter ces composants dans un thread séparé est difficile parce qu'ils accèdent à des données comme le DOM qui ne sont pas sécurisées dans le cas d'accès par différents threads. Comme alternative, nous avons envisagé de pouvoir exécuter la boucle d'évènements au milieu de l'exécution de JavaScript, mais cela briserait beaucoup d'hypothèses de différentes parties de Firefox (comme les extensions).</p>
-
-<p>Exécuter le contenu web dans un processus séparé est une alternative viable. Comme l'approche avec différents threads, Firefox est capable d'exécuter la boucle d'évènements pendant que le JavaScript et l'agencement s'exécutent dans un processus contenu. Mais, le code d'Interface Utilisateur n'a pas accès au contenu du DOM ou d'autres structures de données du contenu, il y a donc un besoin de verrouillage et de protection d'accès sur cette partie. L'inconvénient est que tout code présent dans le processus interface utilisateur de Firefox qui a besoin d'accéder au contenu doit le faire explicitement via un passage de messages.</p>
-
-<p>Nous pensons que ce compromis est logique pour plusieurs raisons :</p>
-
-<ul>
- <li>L'accès au DOM par le code de Firefox n'est pas commun.</li>
- <li>Le code partagé avec Firefox OS utilise déjà le passage de messages.</li>
- <li>Dans le modèle multi-processus, <span id="result_box" lang="fr"><span>le code</span> <span class="hps">de Firefox qui</span> <span class="hps">ne parvient pas à</span> <span class="hps">utiliser</span> <span class="hps">le passage de messages</span> afin d'accéder <span class="hps">au contenu</span> <span class="hps">va échouer</span> <span class="hps">de</span> <span class="hps">manière </span><span class="hps">évidente. Dans un modèle</span> multi-threads, le <span class="hps">code qui accède à</span> <span class="hps">du contenu sans</span> <span class="hps">blocage</span> <span class="hps">correct</span> <span class="hps">échouera</span> <span class="hps">de façon subtile</span>, et sera bien plus difficile <span class="hps">à déboguer.</span></span></li>
-</ul>
-
-<h2 id="Sécurité">Sécurité</h2>
-
-<p>Aujourd'hui, si quelqu'un découvre un bug exploitable dans Firefox, il est capable de prendre le contrôle des ordinateurs des utilisateurs. Il existe des solutions pour parer ce problème, la plus connue est la technique du <a href="http://fr.wikipedia.org/wiki/Sandbox_%28s%C3%A9curit%C3%A9_informatique%29">bac à sable</a>. Cette méthode ne nécessite pas une architecture multi-processus. Cependant, un bac à sable fonctionnant avec Firefox en processus unique ne serait pas très efficace. Les bacs à sable permettent seulement d'empêcher à un processus d'effectuer des actions qu'il ne devrait pas réaliser. Malheureusement, Firefox nécessite l'accès à bien plus de choses que le réseau et le système de fichiers (surtout lorsque des extensions sont installées). Ainsi, un bac à sable pour Firefox en processus unique ne pourrait pas bloquer grand-chose.</p>
-
-<p>Avec Firefox multi-processus, les processus contenus seront mis dans un bac à sable. Ainsi, un processus ne pourra pas accéder directement au système de fichiers, mais devra demander au processus principal. À ce moment, le processus principal pourra vérifier que la requête est sécurisée et logique. Par conséquent, le bac à sable peut être très restrictif. On espère que cette méthode rende plus difficile l'exploitation de trous de sécurité dans Firefox.</p>
-
-<h2 id="Stabilité">Stabilité</h2>
-
-<p>Actuellement, un plantage dans un code s'exécutant dans une page va faire tomber le navigateur en entier. Avec Firefox multi-processus, seul le processus du contenu qui s'est planté sera détruit.</p>
-
-<div class="note">
-<p>Cette page contient pas mal de contenu provenant de l'article de blog de Bill McCloskey's sur Firefox multi-processus : <a href="http://billmccloskey.wordpress.com/2013/12/05/multiprocess-firefox/">http://billmccloskey.wordpress.com/2013/12/05/multiprocess-firefox/</a> (en)</p>
-</div>
-
-<p> </p>
diff --git a/files/fr/mozilla/firefox/multiprocessus_firefox/technical_overview/index.html b/files/fr/mozilla/firefox/multiprocessus_firefox/technical_overview/index.html
deleted file mode 100644
index 92839d64e2..0000000000
--- a/files/fr/mozilla/firefox/multiprocessus_firefox/technical_overview/index.html
+++ /dev/null
@@ -1,164 +0,0 @@
----
-title: Vue d'ensemble technique
-slug: Mozilla/Firefox/Multiprocessus_Firefox/Technical_overview
-translation_of: Mozilla/Firefox/Multiprocess_Firefox/Technical_overview
----
-<div>{{FirefoxSidebar}}</div><div class="note">
-<p>Cette page est une traduction d'un extrait de l'article du blog Bill McCloskey sur Firefox et le multiprocessus: <a class="external external-icon" href="http://billmccloskey.wordpress.com/2013/12/05/multiprocess-firefox/">http://billmccloskey.wordpress.com/2013/12/05/multiprocess-firefox/</a></p>
-</div>
-
-<p>À un haut niveau, le Firefox en multiprocessus fonctionne comme il suit. Le processus qui est démarré quand Firefox est lancé est appelé le processus parent. Initialement, ce processus fonctionne de la même manière que Firefox lorsqu'il fonctionne avec un seul processus: une fenêtre est ouverte affichant <a href="http://mxr.mozilla.org/mozilla-central/source/browser/base/content/browser.xul"><code>browser.xul</code></a>, qui contient les éléments principaux de l'UI pour Firefox. Firefox a un toolkit pour les GUI appelé XUL qui permet aux éléments de l'interface d'être déclaré et posés de façon déclarative, de la même manière que pour du contenu web. Tout comme le contenu web, il y a un objet  <code>window</code>, qui a une propriété <code>document</code>, et celui-ci contient tout les éléments XML déclarés dans <code>browser.xul</code>. Tous les menus, barres d'outils, sidebars, et onglets dans Firefox sont des éléments XML dans ce document. Chaque onglet contient un élément <code>&lt;browser&gt;</code> pour afficher le contenu web.</p>
-
-<p>Le premier endroit où Firefox multiprocessus diverge de sa version en monoprocessus est que chaque élément <code>&lt;browser&gt;</code> a un attribut <code>remote="true"</code>. Quand un tel élément est ajouté au document, un nouveau processus, appelé <em>child process</em>, pour le contenu est lancé. Un canal IPC est créé qui relie processus parent et enfant. Initialement l'enfant affiche <code>about:blank</code>, mais le parent peut envoyer des commandes à l'enfant pour naviguer autre part.</p>
-
-<h2 id="Rendu"><strong id="drawing">Rendu</strong></h2>
-
-<p>D'une certaine manière, le contenu Web affiché doit passer du processus enfant au parent, puis à l'écran. Le multiprocessus de Firefox dépend d'une nouvelle fonctionnalité appelée <a href="http://benoitgirard.wordpress.com/2012/05/15/off-main-thread-compositing-omtc-and-why-it-matters/"><em>off main thread compositing</em></a> (OMTC). En bref chaque fenêtre de Firefox est divisée en séries de couches, en quelque sorte similaire au calque de Photoshop. Chaque fois que Firefox effectue un rendue de la page Web, ces couches sont soumises à un thread de composition qui traduit les couches et les associent en semble pour former la page qui est ensuite dessinée.</p>
-
-<p>Les calques sont structurés comme un arbre. La couche racine de l'arbre est responsable de l'ensemble de la fenêtre de Firefox. Cette couche contient d'autres couches, dont certaines sont responsables de l'élaboration des menus et des onglets. Une sous-couche affiche tout le contenu Web. Le contenu Web lui-même peut être divisé en plusieurs couches, mais ils sont tous enracinés dans une seule couche "content".</p>
-
-<p>Dans le multiprocessus de Firefox, la sous-couche de la couche de contenu est en fait une cale. La plupart du temps, il contient un noeud de substitution qui conserve simplement une référence à la liaison IPC avec le processus enfant. Le processus de contenu conserve l'arborescence de couches réelle pour le contenu Web. Il construit et dessine dans cet arbre de couche. Lorsqu'il a terminé, il envoie la structure de son arbre de couche au processus parent via IPC. Les tampons de sauvegarde sont partagés avec le parent soit par la mémoire partagée, soit par la mémoire GPU. Les références à cette mémoire sont envoyées dans une parti de l'arborescence de l'arbre. Lorsque le parent reçoit l'arborescence de la couche, il supprime son nœud de substitution et le remplace par l'arbre réel du contenu. Ensuite, il compose et dessine comme d'habitude. Lorsqu'il a terminé, il remet sont nœud de substitution.</p>
-
-<p>L'architecture de base de la façon dont OMTC fonctionne avec plusieurs processus existe depuis un certain temps, car il est nécessaire pour Firefox OS. Cependant, Matt Woodrow et David Anderson travail beaucoup pour que tout fonctionne correctement sur Windows, Mac et Linux. L'un des grands défis pour le multiprocessus de Firefox serait d'utiliser OMTC sur toutes les plates-formes. À l'heure actuelle, seuls la plate-forme Mac l'utilisent par défaut.</p>
-
-<h2 id="User_input"><strong id="input">User input</strong></h2>
-
-<p>Events in Firefox work the same way as they do on the web. Namely, there is a DOM tree for the entire window, and events are threaded through this tree in capture and bubbling phases. Imagine that the user clicks on a button on a web page. In single-process Firefox, the root DOM node of the Firefox window gets the first chance to process the event. Then, nodes lower down in the DOM tree get a chance. The event handling proceeds down through to the XUL <code>&lt;browser&gt;</code> element. At this point, nodes in the web page’s DOM tree are given a chance to handle the event, all the way down to the button. The bubble phase follows, running in the opposite order, all the way back up to the root node of the Firefox window.</p>
-
-<p>With multiple processes, event handling works the same way until the <code>&lt;browser&gt;</code> element is hit. At that point, if the event hasn’t been handled yet, it gets sent to the child process by IPC, where handling starts at the root of the content DOM tree. The parent process then waits to run its bubbling phase until the content process has finished handling the event.</p>
-
-<h2 id="Inter-process_communication"><strong id="ipc">Inter-process communication</strong></h2>
-
-<p>All IPC happens using the Chromium IPC libraries. Each child process has its own separate IPC link with the parent. Children cannot communicate directly with each other. To prevent deadlocks and to ensure responsiveness, the parent process is not allowed to sit around waiting for messages from the child. However, the child is allowed to block on messages from the parent.</p>
-
-<p>Rather than directly sending packets of data over IPC as one might expect, we use code generation to make the process much nicer. The IPC protocol is defined in <a href="https://wiki.mozilla.org/IPDL">IPDL</a>, which sort of stands for “inter-* protocol definition language”. A typical IPDL file is <code><a href="http://mxr.mozilla.org/mozilla-central/source/netwerk/ipc/PNecko.ipdl">PNecko.ipdl</a></code>. It defines a set messages and their parameters. Parameters are serialized and included in the message. To send a message <code>M</code>, C++ code just needs to call the method <code>SendM</code>. To receive the message, it implements the method <code>RecvM</code>.</p>
-
-<p>IPDL is used in all the low-level C++ parts of Gecko where IPC is required. In many cases, IPC is just used to forward actions from the child to the parent. This is a common pattern in Gecko:</p>
-
-<pre class="brush: cpp">void AddHistoryEntry(param) {
- if (XRE_GetProcessType() == GeckoProcessType_Content) {
- // If we're in the child, ask the parent to do this for us.
- SendAddHistoryEntry(param);
- return;
- }
-
- // Actually add the history entry...
-}
-
-bool RecvAddHistoryEntry(param) {
- // Got a message from the child. Do the work for it.
- AddHistoryEntry(param);
- return true;
-}
-</pre>
-
-<p>When <code>AddHistoryEntry</code> is called in the child, we detect that we’re inside the child process and send an IPC message to the parent. When the parent receives that message, it calls <code>AddHistoryEntry</code> on its side.</p>
-
-<p>For a more realistic illustration, consider the Places database, which stores visited URLs for populating the awesome bar. Whenever the user visits a URL in the content process, we call <a href="http://mxr.mozilla.org/mozilla-central/source/toolkit/components/places/History.cpp?rev=8b9687f6c602#2326">this code</a>. Notice the content process check followed by the <code>SendVisitURI</code> call and an immediate return. The message is received <a href="http://mxr.mozilla.org/mozilla-central/source/dom/ipc/ContentParent.cpp?rev=fecda5f4a0df#2666">here</a>; this code just calls <code>VisitURI</code> in the parent.</p>
-
-<p>The code for IndexedDB, the places database, and HTTP connections all runs in the parent process, and they all use roughly the same proxying mechanism in the child.</p>
-
-<h2 id="Frame_scripts"><strong id="contentscripts">Frame scripts</strong></h2>
-
-<p>IPDL takes care of passing messages in C++, but much of Firefox is actually written in JavaScript. Instead of using IPDL directly, JavaScript code relies on <a href="/en-US/Firefox/Multiprocess_Firefox/The_message_manager">the message manager</a> to communicate between processes. To use the message manager in JS, you need to get hold of a message manager object. There is a global message manager, message managers for each Firefox window, and message managers for each <code>&lt;browser&gt;</code> element. A message manager can be used to load JS code into the child process and to exchange messages with it.</p>
-
-<p>As a simple example, imagine that we want to be informed every time a <code>load</code> event triggers in web content. We’re not interested in any particular browser or window, so we use the global message manager. The basic process is as follows:</p>
-
-<pre class="brush: js">// Get the global message manager.
-let mm = Cc["@<span class="skimlinks-unlinked">mozilla.org/globalmessagemanager;1</span>"].
- getService(Ci.nsIMessageListenerManager);
-
-// Wait for load event.
-mm.addMessageListener("GotLoadEvent", function (msg) {
- dump("Received load event: " + <span class="skimlinks-unlinked">msg.data.url</span> + "\n");
-});
-
-// Load code into the child process to listen for the event.
-mm.loadFrameScript("chrome://content/<span class="skimlinks-unlinked">content-script.js</span>", true);
-</pre>
-
-<p>For this to work, we also need to have a file <code>content-script.js</code>:</p>
-
-<pre class="brush: js">// Listen for the load event.
-addEventListener("load", function (e) {
- // Inform the parent process.
- let docURL = content.document.documentURI;
- sendAsyncMessage("GotLoadEvent", {url: docURL});
-}, false);
-</pre>
-
-<p>This file is called a <em>frame script</em>. When the <code>loadFrameScript</code> function call runs, the code for the script is run once for each <code>&lt;browser&gt;</code> element. This includes both remote browsers and regular ones. If we had used a per-window message manager, the code would only be run for the browser elements in that window. Any time a new browser element is added, the script is run automatically (this is the purpose of the <code>true</code> parameter to <code>loadFrameScript</code>). Since the script is run once per browser, it can access the browser’s window object and docshell via the <code>content</code> and <code>docShell</code> globals.</p>
-
-<p>The great thing about frame scripts is that they work in both single-process and multiprocess Firefox. To learn more about the message manager, see the <a href="/en-US/Firefox/Multiprocess_Firefox/The_message_manager">message manager guide</a>.</p>
-
-<h2 id="Cross-process_APIs"><strong id="shims">Cross-process APIs</strong></h2>
-
-<p>There are a lot of APIs in Firefox that cross between the parent and child processes. An example is the <code>webNavigation</code> property of XUL <code>&lt;browser&gt;</code> elements. The <code>webNavigation</code> property is an object that provides methods like <code>loadURI</code>, <code>goBack</code>, and <code>goForward</code>. These methods are called in the parent process, but the actions need to happen in the child. First I’ll cover how these methods work in single-process Firefox, and then I’ll describe how we adapted them for multiple processes.</p>
-
-<p>The <code>webNavigation</code> property is defined using the XML Binding Language (XBL). XBL is a declarative language for customizing how XML elements work. Its syntax is a combination of XML and JavaScript. Firefox uses XBL extensively to customize XUL elements like <code>&lt;browser&gt;</code> and <code>&lt;tabbrowser&gt;</code>. The <code>&lt;browser&gt;</code> customizations reside in <code><a href="http://mxr.mozilla.org/mozilla-central/source/toolkit/content/widgets/browser.xml?rev=754cf7fc84cd">browser.xml</a></code>. <a href="http://mxr.mozilla.org/mozilla-central/source/toolkit/content/widgets/browser.xml?rev=754cf7fc84cd#262">Here</a> is how <code>browser.webNavigation</code> is defined:</p>
-
-<pre class="brush: xml">&lt;field name="_webNavigation"&gt;null&lt;/field&gt;
-
-&lt;property name="webNavigation" readonly="true"&gt;
- &lt;getter&gt;
- &lt;![CDATA[
- if (!this._webNavigation)
- this._webNavigation = this.docShell.QueryInterface(Components.interfaces.nsIWebNavigation);
- return this._webNavigation;
- ]]&gt;
- &lt;/getter&gt;
-&lt;/property&gt;
-</pre>
-
-<p>This code is invoked whenever JavaScript code in Firefox accesses <code>browser.webNavigation</code>, where <code>browser</code> is some <code>&lt;browser&gt;</code> element. It checks if the result has already been cached in the <code>browser._webNavigation</code> field. If it hasn’t been cached, then it fetches the navigation object based off the browser’s <em>docshell</em>. The docshell is a Firefox-specific object that encapsulates a lot of functionality for loading new pages, navigating back and forth, and saving page history. In multiprocess Firefox, the docshell lives in the child process. Since the <code>webNavigation</code> accessor runs in the parent process, <code>this.docShell</code> above will just return null. As a consequence, this code will fail completely.</p>
-
-<p>One way to fix this problem would be to create a fake docshell in C++ that could be returned. It would operate by sending IPDL messages to the real docshell in the child to get work done. We may eventually take this route in the future. We decided to do the message passing in JavaScript instead, since it’s easier and faster to prototype things there. Rather than change every docshell-using accessor to test if we’re using multiprocess browsing, we decided to create a new XBL binding that applies only to remote <code>&lt;browser&gt;</code> elements. It is called <a href="http://mxr.mozilla.org/mozilla-central/source/toolkit/content/widgets/remote-browser.xml?rev=9583bd3099ae"><code>remote-browser.xml</code></a>, and it extends the existing <code>browser.xml</code> binding.</p>
-
-<p>The <code>remote-browser.xml</code> binding returns a JavaScript <em>shim object</em> whenever anyone uses <code>browser.webNavigation</code> or other similar objects. The shim object is implemented <a href="http://mxr.mozilla.org/mozilla-central/source/toolkit/modules/RemoteWebNavigation.jsm">in its own JavaScript module</a>. It uses the message manager to send messages like <code>"WebNavigation:LoadURI"</code> to <a href="http://mxr.mozilla.org/mozilla-central/source/toolkit/content/browser-child.js?rev=9583bd3099ae#107">a content script loaded by <code>remote-browser.xml</code></a>. The content script performs the actual action.</p>
-
-<p>The shims we provide emulate their real counterparts imperfectly. They offer enough functionality to make Firefox work, but add-ons that use them may find them insufficient. I’ll discuss strategies for making add-ons work in more detail later.</p>
-
-<h2 id="Cross-process_object_wrappers"><strong id="cpows">Cross-process object wrappers</strong></h2>
-
-<p>The message manager API does not allow the parent process to call <code>sendSyncMessage</code>; that is, the parent is not allowed to wait for a response from the child. It’s detrimental for the parent to wait on the child, since we don’t want the browser UI to be unresponsive because of slow content. However, converting Firefox code to be asynchronous (i.e., to use <code>sendAsyncMessage</code> instead) can sometimes be onerous. As an expedient, we’ve introduced a new primitive that allows code in the parent process to access objects in the child process synchronously.</p>
-
-<p>These objects are called cross-process object wrappers, frequently abbreviated to CPOWs. They’re created using the message manager. Consider this example content script:</p>
-
-<pre class="brush: js">addEventListener("load", function (e) {
- let doc = content.document;
- sendAsyncMessage("GotLoadEvent", <strong>{}, {document: doc}</strong>);
-}, false);
-</pre>
-
-<p>In this code, we want to be able to send a reference to the document to the parent process. We can’t use the second parameter to <code>sendAsyncMessage</code> to do this: that argument is converted to JSON before it is sent up. The optional third parameter allows us to send object references. Each property of this argument becomes accessible in the parent process as a CPOW. Here’s what the parent code might look like:</p>
-
-<pre class="brush: js">let mm = Cc["@<span class="skimlinks-unlinked">mozilla.org/globalmessagemanager;1</span>"].
- getService(Ci.nsIMessageListenerManager);
-
-mm.addMessageListener("GotLoadEvent", function (msg) {
- let uri = <strong>msg.objects.document.documentURI</strong>;
- dump("Received load event: " + uri + "\n");
-});
-mm.loadFrameScript("chrome://content/<span class="skimlinks-unlinked">content-script.js</span>", true);
-</pre>
-
-<p>It’s important to realize that we’re send object <em>references</em>. The <code>msg.objects.document</code> object is only a wrapper. The access to its <code>documentURI</code> property sends a synchronous message down to the child asking for the value. The dump statement only happens after a reply has come back from the child.</p>
-
-<p>Because every property access sends a message, CPOWs can be slow to use. There is no caching, so 1,000 accesses to the same property will send 1,000 messages.</p>
-
-<p>Another problem with CPOWs is that they violate some assumptions people might have about message ordering. Consider this code:</p>
-
-<pre class="brush: js">mm.addMessageListener("GotLoadEvent", function (msg) {
- mm.sendAsyncMessage("ChangeDocumentURI", {newURI: "<span class="skimlinks-unlinked">hello.com</span>"});
- let uri = <strong>msg.objects.document.documentURI</strong>;
- dump("Received load event: " + uri + "\n");
-});
-</pre>
-
-<p>This code sends a message asking the child to change the current document URI. Then it accesses the current document URI via a CPOW. You might expect the value of <code>uri</code> to come back as <code>"hello.com"</code>. But it might not. In order to avoid deadlocks, CPOW messages can bypass normal messages and be processed first. It’s possible that the request for the <code>documentURI</code> property will be processed before the <code>"ChangeDocumentURI"</code> message, in which case <code>uri</code> will have some other value.</p>
-
-<p>For this reason, it’s best not to mix CPOWs with normal message manager messages. It’s also a bad idea to use CPOWs for anything security-related, since you may not get results that are consistent with surrounding code that might use the message manager.</p>
-
-<p>Despite these problems, we’ve found CPOWs to be useful for converting certain parts of Firefox to be multiprocess-compatible. It’s best to use them in cases where users are less likely to notice poor responsiveness. As an example, we use CPOWs to implement the context menu that pops up when users right-click on content elements. Whether this code is asynchronous or synchronous, the menu cannot be displayed until content has responded with data about the element that has been clicked. The user is unlikely to notice if, for example, tab animations don’t run while waiting for the menu to pop up. Their only concern is for the menu to come up as quickly as possible, which is entirely gated on the response time of the content process. For this reason, we chose to use CPOWs, since they’re easier than converting the code to be asynchronous.</p>
-
-<p>It’s possible that CPOWs will be phased out in the future. Asynchronous messaging using the message manager gives a user experience that is at least as good as, and often strictly better than, CPOWs. We strongly recommend that people use the message manager over CPOWs when possible. Nevertheless, CPOWs are sometimes useful.</p>
diff --git a/files/fr/mozilla/firefox/privacy/index.html b/files/fr/mozilla/firefox/privacy/index.html
deleted file mode 100644
index 3b51c404fe..0000000000
--- a/files/fr/mozilla/firefox/privacy/index.html
+++ /dev/null
@@ -1,15 +0,0 @@
----
-title: Privacy
-slug: Mozilla/Firefox/Privacy
-tags:
- - Privacy
- - Security
-translation_of: Mozilla/Firefox/Privacy
----
-<div>{{FirefoxSidebar}}</div>
-
-<div>Ce document liste la documentation relative à la confidentialité.</div>
-
-<div> </div>
-
-<p>{{ ListSubpages () }}</p>
diff --git a/files/fr/mozilla/firefox/privacy/protection_contre_le_pistage/index.html b/files/fr/mozilla/firefox/privacy/protection_contre_le_pistage/index.html
deleted file mode 100644
index f466aef11f..0000000000
--- a/files/fr/mozilla/firefox/privacy/protection_contre_le_pistage/index.html
+++ /dev/null
@@ -1,79 +0,0 @@
----
-title: Protection contre le pistage
-slug: Mozilla/Firefox/Privacy/protection_contre_le_pistage
-tags:
- - Bloquage
- - Pistage
- - Privé
- - Vie privée
-translation_of: Mozilla/Firefox/Privacy/Tracking_Protection
----
-<div>{{FirefoxSidebar}}</div><h2 id="Qu'est-ce_que_la_protection_contre_le_pistage">Qu'est-ce que la protection contre le pistage ?</h2>
-
-<p>Depuis la version 42, Firefox pour bureau et Firefox pour Android incluent une protection contre le pistage. En navigation privée, Firefox bloque le contenu chargé depuis des domaines qui pistent les utilisateurs à travers les sites.</p>
-
-<p>Certains contenus bloqués font partie de la mise en page, et les utilisateurs pourraient constater des problèmes de mise en page lorsque Firefox bloque ces chargements. Parfois, lorsque la page fonctionne de telle manière que d'autres éléments remplissent les espaces laissés par les éléments bloqués, les utilisateurs ne remarqueront rien.</p>
-
-<p>Quand Firefox bloque un contenu, il écrit un message dans la console web comme ceci :</p>
-
-<pre>The resource at "http://some/url" was blocked because tracking protection is enabled.</pre>
-
-<p>Notez qu'avec Firefox pour Android, vous pouvez accéder à la sortie de la console en utilisant le debogueur distant.</p>
-
-<p>L'interface utilisateur de Firefox indiquera aux utilisateurs quand un contenu a été bloqué et leur permet de le débloquer pour la session en cours s'ils le souhaitent. Les utilisateurs pourront aussi  désactiver complêtement les protections contre le pistage s'ils le souhaitent.</p>
-
-<h2 id="Comment_Firefox_choisit_quoi_bloquer">Comment Firefox choisit quoi bloquer ?</h2>
-
-<p>Le contenu est bloqué selon le domaine à partir duquel il est chargé.</p>
-
-<p>Firefox contient une liste de sites qui ont été identifiés comme étant engagés dans une politique de suivi des utilisateurs au travers des différents sites visités. Quand la protection anti-tracking est activée, Firefox bloque le contenu provenant des sites de cette listes.</p>
-
-<p>Les sites surveillant les utilisateurs sont, le plus souvent, des sites tiers de publicité et d'analyse.</p>
-
-<h2 id="Ce_que_cela_signifie_pour_votre_site">Ce que cela signifie pour votre site</h2>
-
-<p>Bien évidemment, cela signifie que quand la protection anti-pistage est activée:</p>
-
-<ul>
- <li>le contenu fourni par les pisteurs tiers ne sera pas visible par les utilisateurs</li>
- <li>votre site ne pourra pas utiliser les services de publicité et d'analyse de sites tiers qui pratiquent le pistage.</li>
-</ul>
-
-<p>Plus subtilement, si d'autres parties de votre site dependent de pisteurs pour être chargés, alors ces parties ne seront pas fonctionnelles quand la protection anti-pistage est activées. Par exemple, si votre site inclus un rappel qui se lance quand le contenu d'un site de pistage est chargé, alors le rappel ne sera pas utilisé.</p>
-
-<p>Par exemple, vous ne devez pas utiliser Google Analytics de cette façon :</p>
-
-<pre class="brush:html example-bad">&lt;a href="http://www.example.com" onclick="trackLink('http://www.example.com', event);"&gt;Visit example.com&lt;/a&gt;
-&lt;script&gt;
-function trackLink(url,event) {
- event.preventDefault();
- ga('send', 'event', 'outbound', 'click', url, {
-     'transport': 'beacon',
-     'hitCallback': function() {
- document.location = url;
- }
-   });
-}
-&lt;/script&gt;</pre>
-
-<p>A la place, vous devez prendre en compte le cas où Google Analytics est manquant vérifiant si l'objet `ga` est initialisé :</p>
-
-<pre class="brush:html example-good">&lt;a href="http://www.example.com" onclick="trackLink('http://www.example.com', event);"&gt;Visit example.com&lt;/a&gt;
-&lt;script&gt;
-function trackLink(url,event) {
- event.preventDefault();
- if (window.ga &amp;&amp; <span class="pl-smi">ga</span>.loaded) {
- ga('send', 'event', 'outbound', 'click', url, {
-     'transport': 'beacon',
-      'hitCallback': function() { document.location = url; }
-    });
- } else {
- document.location = url;
- }
-}
-&lt;/script&gt;
-</pre>
-
-<p>Pour plus d'information sur cette technique : <a href="https://hacks.mozilla.org/2016/01/google-analytics-privacy-and-event-tracking/">Google Analytics, Privacy, and Event Tracking</a>.</p>
-
-<p>A noter qu'être dependant de l'utilisation de l'outil tiers de cette manière n'est pas une bonne pratique, car cela veut dire que votre site peut être cassé si l'outil tiers est lent ou inaccessible, ou si le tracker est bloqué par un add-on.</p>
diff --git a/files/fr/mozilla/firefox/privacy/protection_du_pistage_par_rebond/index.html b/files/fr/mozilla/firefox/privacy/protection_du_pistage_par_rebond/index.html
deleted file mode 100644
index 1e93b3b26b..0000000000
--- a/files/fr/mozilla/firefox/privacy/protection_du_pistage_par_rebond/index.html
+++ /dev/null
@@ -1,101 +0,0 @@
----
-title: Protection contre le pistage par redirection
-slug: Mozilla/Firefox/Privacy/protection_du_pistage_par_rebond
-tags:
- - Firefox
- - Mozilla
- - Vie privée
- - bounce tracking
- - protection contre le pistage par redirection
- - redirect tracking
-translation_of: Mozilla/Firefox/Privacy/Redirect_tracking_protection
----
-<div>{{FirefoxSidebar}}</div>
-
-<p>Firefox 79 inclut une protection contre le pistage par redirection. Ce document décrit le fonctionnement de ces protections.</p>
-
-<h2 id="Définition_du_pistage_par_redirection">Définition du pistage par redirection</h2>
-
-<p>Le <strong>pistage par redirection</strong> est un abus de la navigation intersite dans lequel un traqueur redirige momentanément un utilisateur ou une utilisatrice vers son site web dans le but d’utiliser le stockage de première partie (<em>first-party</em>) pour suivre cet utilisateur ou cette utilisatrice à travers les sites web.</p>
-
-<p>Les navigations intersites sont une caractéristique essentielle du web. Une personne peut rechercher les « meilleures chaussures de course » sur un moteur de recherche, cliquer sur un résultat de recherche pour lire des critiques et enfin cliquer sur un lien pour acheter une paire de chaussures dans un magasin en ligne. Dans le passé, chacun de ces sites web pouvait intégrer des ressources provenant du même traqueur, et le traqueur pouvait utiliser ses cookies pour relier toutes ces visites de page à la même personne. Afin de protéger la vie privée des utilisateurs et utilisatrices de Firefox, la <a href="https://support.mozilla.org/kb/enhanced-tracking-protection-firefox-desktop">Protection renforcée contre le pistage</a> (ETP pour <em>Enhanced Tracking Protection</em>) empêche déjà les traqueurs d’utiliser des cookies lorsqu’ils sont intégrés dans un contexte tiers, mais leur permet toujours d’utiliser des cookies en tant que première partie, car le blocage des cookies de première partie provoque le dysfonctionnement de sites web. Le pistage par redirection en profite pour contourner le blocage des cookies de tiers.</p>
-
-<p>Les traqueurs de redirection fonctionnent en vous obligeant à faire une escale imperceptible et momentanée sur leur site web dans le cadre de ce voyage. Ainsi, au lieu de naviguer directement du site web de comparaison au détaillant, vous finirez par naviguer d’abord vers le traqueur de redirection plutôt que vers le commerçant. Cela signifie que le traqueur est chargé en tant que première partie. Le traqueur de redirection associe les données de pistage aux identifiants qu’il a stockés dans ses cookies de première partie et vous achemine ensuite vers le commerçant.</p>
-
-<h2 id="La_protection_contre_le_pistage_par_redirection_expliquée">La protection contre le pistage par redirection expliquée</h2>
-
-<p>Pour protéger contre le pistage par redirection, Firefox supprime périodiquement les cookies et données de site provenant des traqueurs. Nous effaçons uniquement ces données du stockage si l’utilisateur ou l’utilisatrice <a href="/docs/Mozilla/Firefox/Privacy/Storage_access_policy">bloque les cookies traqueurs</a> (c.-à-d. que la préférence <code>network.cookie.cookieBehavior</code> est réglée sur <code>4</code>). La prise en charge d’autres politiques de cookies est suivie dans le <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1643045">bug 1643045</a>.</p>
-
-<h3 id="Quelles_origines_sont_supprimées">Quelles origines sont supprimées ?</h3>
-
-<p>Une origine sera supprimée si elle remplit les conditions suivantes :</p>
-
-<ol>
- <li>Elle a stocké des cookies ou a accédé à un autre stockage de site (comme <a href="/en-US/docs/Web/API/Web_Storage_API">localStorage</a>, <a href="/en-US/docs/Web/API/IndexedDB_API">IndexedDB</a> ou <a href="/en-US/docs/Web/API/CacheStorage">Cache API</a>) dans les dernières 72 heures. Comme les cookies sont assignés par hôte, nous supprimerons les variantes d’origine <code>http</code> et <code>https</code> d’un hôte de cookies.</li>
- <li>L’origine est <a href="/en-US/docs/Mozilla/Firefox/Privacy/Storage_access_policy#Tracking_protection_explained">répertoriée en tant que traqueur</a> dans la liste de notre protection contre le pistage.</li>
- <li>Aucune origine disposant du même domaine de base (eTLD+1) n’a de permission d’interaction avec l’utilisateur ou l’utilisatrice.
- <ul>
- <li>Cette permission est accordée à une origine pour 45 jours dès qu’un utilisateur ou une utilisatrice interagit avec un document de premier niveau de cette origine. Une « interaction » peut être un défilement.</li>
- <li>Bien que cette autorisation soit stockée à un niveau par origine, nous vérifierons si une origine ayant le même domaine de base l’a, pour éviter de casser les sites avec des sous-domaines et une configuration de cookies correspondante.</li>
- </ul>
- </li>
-</ol>
-
-<h3 id="Quelles_données_sont_supprimées">Quelles données sont supprimées ?</h3>
-
-<p>Firefox supprimera les <a href="https://searchfox.org/mozilla-central/rev/622dbd3409610ad3f71b56c9a6a92da905dab0aa/toolkit/components/antitracking/PurgeTrackerService.jsm#209-225">données suivantes</a> :</p>
-
-<ul>
- <li>les caches réseau et image</li>
- <li>les cookies</li>
- <li><em>AppCache</em></li>
- <li><em>DOM Quota Storage</em> (<em>localStorage</em>, <em>IndexedDB</em>, <em>ServiceWorkers</em>, <em>DOM Cache</em>, etc.)</li>
- <li>les notifications <em>Push</em> du DOM</li>
- <li>les rapports de l’API <em>Reporting</em></li>
- <li>les paramètres de sécurité (comme HSTS)</li>
- <li>les données des plugins de média EME (<em>Encrypted Media Extensions</em>)</li>
- <li>les données des plugins (comme Flash)</li>
- <li>les appareils média</li>
- <li>les permissions de <em>Storage Access</em> accordées à l’origine</li>
- <li>les tokens d’authentification HTTP</li>
- <li>le cache d’authentification HTTP</li>
-</ul>
-
-<div class="blockIndicator note">
-<p><strong>Note</strong> : même si nous effaçons toutes ces données, nous ne marquons actuellement les origines pour suppression que lorsqu’elles utilisent des cookies ou d’autres moyens de stockage du site.</p>
-</div>
-
-<p>La suppression du stockage ignore les attributs d’origine. Cela signifie que le stockage sera supprimé dans les <a href="https://wiki.mozilla.org/Security/Contextual_Identity_Project/Containers">containers</a> et le stockage isolé (comme celui de <a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/cookies#Isolement_de_la_première_partie">l</a>’<a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/cookies#Isolement_de_la_première_partie">isolement de la première partie (<em>First-Party</em>)</a>).</p>
-
-<h3 id="À_quelle_fréquence_les_données_sont-elles_supprimées">À quelle fréquence les données sont-elles supprimées ?</h3>
-
-<p>Firefox efface le stockage en fonction du déclenchement d’un événement interne appelé <code>idle-daily</code>, qui est défini par les conditions suivantes :</p>
-
-<ul>
- <li>Il sera, au plus tôt, déclenché 24 heures après le dernier événement <code>idle-daily</code> déclenché.</li>
- <li>Il sera seulement déclenché si l’utilisateur ou l’utilisatrice a été inatif·ve pour au moins 3 min (pour 24-48 h après le dernier <code>idle-daily</code>) ou 1 min (pour &gt; 48 h après le dernier <code>idle-daily</code>).</li>
-</ul>
-
-<p>Cela signifie qu’il y a au moins 24 heures entre chaque effacement de stockage et que le stockage sera uniquement effacé quand le navigateur est inactif. Lorsque nous supprimons des cookies, nous classons les cookies par date de création et nous les regroupons par lots de 100 (contrôlés par la préférence <code>privacy.purge_trackers.max_purge_count</code>) pour des raisons de performance.</p>
-
-<h2 id="Débogage">Débogage</h2>
-
-<p>Le pistage par redirection peut être activé et désactivé en inversant la préférence <code>privacy.purge_trackers.enabled</code> dans <code>about:config</code>. En outre, il ne fonctionnera que si la préférence <code>network.cookie.cookieBehavior</code> est réglée sur <code>4</code> ou <code>5</code> dans Firefox 79+ (<code>1</code>, <code>3</code>, <code>4</code>, ou <code>5</code> à partir de Firefox 80).</p>
-
-<p>Différents niveaux de journalisation peuvent être déterminés grâce à la préférence<code> privacy.purge_trackers.logging.level</code>.</p>
-
-<p>Pour le débogage, il est plus facile de déclencher l’effacement du stockage en déclenchant le service directement par la <a href="/en-US/docs/Tools/Browser_Console#Browser_Console_command_line">ligne de commande de la console du navigateur</a>. Remarquez que c’est différent de la <a href="/en-US/docs/Tools/Web_Console">console web</a> que vous pouvez utiliser pour déboguer un site web et cela nécessite que la préférence <code>devtools.chrome.enabled</code> soit réglée sur <code>true</code> pour l’utiliser interactivement. Une que vous avez activé la console du navigateur, vous pouvez déclencher la suppression du stockage en exécutant la commande suivante :</p>
-
-<pre class="brush: js notranslate">await Components.classes["@mozilla.org/purge-tracker-service;1"].getService(Components.interfaces.nsIPurgeTrackerService).purgeTrackingCookieJars()</pre>
-
-<p>L’intervalle de temps jusqu’à ce que les permissions d’interaction avec l’utilisateur ou l’utilisatrice expirent peut être réglé à un niveau inférieur grâce à la préférence <code>privacy.userInteraction.expiration</code>. Notez que vous aurez à régler cette préférence avant de consulter les sites que vous désirez tester –  elle ne s’appliquera pas rétroactivement.</p>
-
-<h2 id="Autres_mises_en_œuvre">Autres mises en œuvre</h2>
-
-<p>WebKit a livré en premier la protection contre le pistage par redirection dans <a href="https://webkit.org/blog/8311/intelligent-tracking-prevention-2-0/">ITP 2.0</a> (ils se réfèrent à la même attaque en l’appelant pistage par rebond (<em>bounce tracking</em>)). À compter de juillet 2020, il y a plusieurs différences importantes entre la mise en œuvre dans WebKit et dans Firefox :</p>
-
-<ul>
- <li>La liste des origines à effacer dans Firefox est basée notre <a href="/en-US/docs/Mozilla/Firefox/Privacy/Storage_access_policy#Tracking_protection_explained">liste de la protection contre le pistage</a>, alors que WebKit s’appuie sur la classification d’ITP.</li>
- <li>La définition d’« interaction » de Firefox comprend le défilement contrôlé par l’utilisateur ou l’utilisatrice lors de la visite de l’origine comme première partie, alors que WebKit non.</li>
- <li>Firefox ne supprimera de données pour une origine s’il a reçu une interaction comme première partie dans les 45 derniers jours calendaires. La fenêtre d’interaction de WebKit est de 30 jours d’utilisation du navigateur (p. ex. les jours au cours desquels l’utilisateur ou l’utilisatrice a eu au moins une interaction avec Safari).</li>
-</ul>
diff --git a/files/fr/mozilla/firefox/versions/14/index.html b/files/fr/mozilla/firefox/versions/14/index.html
deleted file mode 100644
index 95e45a7a02..0000000000
--- a/files/fr/mozilla/firefox/versions/14/index.html
+++ /dev/null
@@ -1,90 +0,0 @@
----
-title: Firefox 14 pour les développeurs
-slug: Mozilla/Firefox/Versions/14
-tags:
- - Firefox
- - Firefox 14
-translation_of: Mozilla/Firefox/Releases/14
----
-<div>{{FirefoxSidebar}}</div><p>Firefox 14, basé sur Gecko 14.0, est sorti le 17 juillet 2012. Cette page résume les principaux changements dans Firefox 14 qui sont utiles aux développeurs.</p>
-
-<h2 id="Changements_pour_les_développeurs_Web">Changements pour les développeurs Web</h2>
-
-<h3 id="HTML">HTML</h3>
-
-<ul>
- <li>L'élément {{HTMLElement("progress")}} n'est plus classé à tort comme un élément de formulaire, et n'a donc plus l'attribut <code>form</code>.</li>
- <li>Les touches de modification par défaut pour l'<code><a class="internal" href="https://developer.mozilla.org/fr/docs/HTML/Global_attributes" title="Attributs globaux">accesskey</a></code> du contenu HTML sur Mac sont modifiées en Control + Option. C'est la même chose que sur les navigateur basés sur WebKit sur Mac.</li>
-</ul>
-
-<h3 id="DOM">DOM</h3>
-
-<ul>
- <li>Les évènements <a class="internal" href="https://developer.mozilla.org/en-US/docs/DOM/DOM_event_reference/input" title="input">input</a> sont aussi déclenchés sur l'édition d'un élément hôte de l'éditeur <a class="internal" href="https://developer.mozilla.org/en-US/docs/DOM/Element.contentEditable" title="Element.contentEditable">contenteditable</a> et de l'élément racine de l'éditeur <a class="internal" href="https://developer.mozilla.org/en-US/docs/DOM/document.designMode" title="document.designMode">designMode</a>.</li>
- <li>{{domxref("DOMException", "DOMException.code")}} est à présent obsolète par la dernière spécification DOM 4.</li>
- <li>La méthode {{domxref("Range.insertNode()")}} fonctionne désormais correctement lorsqu'elle est utilisée sur des gammes effondrées.</li>
- <li>L'interface {{domxref("BlobBuilder", "MozBlobBuilder")}} a été abandonnée au profit du constructeur {{domxref("Blob")}}. Si vous utilisez <code>MozBlobBuilder</code> vous verrez un message d'avertissement dans la console Web.</li>
- <li>Le support pour les <a class="internal" href="https://developer.mozilla.org/en-US/docs/DOM/DOM_Mutation_Observers" title="DOM Mutation Observers">observateurs de mutation</a> a été lancé. Il est conçu pour remplacer les événements de mutation dans DOM3, ayant de nombreuses questions concernant la performance.</li>
- <li>Les propriétés <code>x</code> et <code>y</code> de l'interface {{domxref("HTMLImageElement")}} ont été retirées dans Gecko 7.0 {{geckoRelease("7.0")}} mais restaurées dans cette version pour des raisons de compatibilité.</li>
- <li>Les méthodes <code>execCommandShowHelp()</code> et <code>queryCommandText()</code> de {{ domxref("Document") }}, qui n'ont jamais rien fait, ont été retirées.</li>
- <li>L'interface <code>GeoPositionAddress</code>, un élément obsolète de l'API <a class="internal" href="https://developer.mozilla.org/fr/docs/Utilisation_de_la_géolocalisation" title="Utilisation de la géolocalisation">Geolocation</a>, a été supprimée.</li>
- <li>{{domxref("Storage", "localStorage/sessionStorage")}} retourne désormais correctement <code>undefined</code> au lieu de <code>null</code> pour les clés non déclarées grâce à la propriété d'accès.</li>
-</ul>
-
-<h3 id="CSS">CSS</h3>
-
-<ul>
- <li>Les propriétés CSS {{cssxref("text-transform")}} et {{cssxref("font-variant")}} ont été corrigées pour gérer correctement les <code>i</code> → <code>İ</code> et <code>ı</code> → <code>I</code> des langues <a class="external" href="http://fr.wikipedia.org/wiki/Langues_turques" title="http://fr.wikipedia.org/wiki/Langues_turques">Turc</a>.</li>
- <li>Le digramme Hollandais IJ est à présent correctement géré par <code>text-transform: capitalization</code>. De même que la lettre grecque <code>Σ</code>, qui a deux formes minuscules, <code>σ</code> et <code>ς</code>, est à présent correctement géré par <code>text-transform: lowercase</code>.</li>
- <li>Le support de la fonction <code>skew()</code> a été retiré de la propriété {{cssxref("transform")}}, comme elle a été supprimée du standard.</li>
- <li>La syntaxe pour {{cssxref("border-image")}} a été mise à jour pour correspondre à la dernière version de la spécification ; elle n'accepte plus de slash ("/").</li>
-</ul>
-
-<h3 id="MathML">MathML</h3>
-
-<ul>
- <li>La syntaxe de l'action <code>statusline</code> sur les éléments {{MathMLElement("maction")}} a été ajustée pour correspondre à la spécification MathML.</li>
-</ul>
-
-<h3 id="HTTP">HTTP</h3>
-
-<ul>
- <li>Gecko supporte à présent le nouveau code d'état <a class="internal" href="https://developer.mozilla.org/en-US/docs/HTTP" title="HTTP">HTTP</a> <a class="internal" href="https://developer.mozilla.org/en-US/docs/HTTP/HTTP_response_codes#308" title="en/HTTP/HTTP_response_codes#308"><code>308 Permanent Redirect</code></a>. Comme Gecko ne fait pas la différence entre les redirection permanentes et temporaires, elle se comporte comme le code d'état <a class="internal" href="https://developer.mozilla.org/en-US/docs/HTTP/HTTP_response_codes#307" title="en/HTTP/HTTP_response_codes#307"><code>307 Temporary Redirect</code></a>, car elle interdit l'agent utilisateur de modifier la méthode HTTP utilisée entre les deux demandes (<code>POST</code> restera <code>POST</code>, <code>GET</code> restera <code>GET</code>).</li>
-</ul>
-
-<h2 id="Changements_pour_les_développeurs_de_Mozilla_et_de_modules_complémentaires">Changements pour les développeurs de Mozilla et de modules complémentaires</h2>
-
-<h3 id="Modules_de_code_JavaScript">Modules de code JavaScript</h3>
-
-<h4 id="source-editor.jsm">source-editor.jsm</h4>
-
-<ul>
- <li>Ajout d'un raccourci clavier pour basculer en commentaire la sélection actuelle (Ctrl-/ ou Cmd-/ sur Mac OS X).</li>
- <li>Ajout de raccourcis clavier (Ctrl-[ et Ctrl-]) pour déplacer la position du curseur de texte au début et à la fin du bloc actuel.</li>
- <li>Ajout de nouvelles méthodes <a class="internal" href="https://developer.mozilla.org/en-US/docs/JavaScript_code_modules/source-editor.jsm#getLineStart%28%29" title="en/JavaScript_code_modules/source-editor.jsm#getLineStart()"><code>getLineStart()</code></a> et <a class="internal" href="https://developer.mozilla.org/en-US/docs/JavaScript_code_modules/source-editor.jsm#getLineEnd%28%29" title="en/JavaScript_code_modules/source-editor.jsm#getLineEnd()"><code>getLineEnd()</code></a>.</li>
-</ul>
-
-<h3 id="XUL">XUL</h3>
-
-<ul>
- <li>Ajout du nouvel attribut {{XULAttr("fullscreenbutton")}} à l'élément {{XULElem("window")}} ; la valeur <code>true</code> ajoute un bouton à la fenêtre de chrome pour activer le mode plein écran.</li>
-</ul>
-
-<h3 id="Interfaces">Interfaces</h3>
-
-<ul>
- <li>L'interface {{interface("nsILocalFile")}} a été intégrée dans {{interface("nsIFile")}} {{bug(682360)}}.</li>
- <li>Les méthodes dans {{interface("nsIPlacesImportExportService")}} pour importer des marques-pages ont toutes été retirées en faveur du module de code JavaScript <a class="internal" href="https://developer.mozilla.org/en-US/docs/JavaScript_code_modules/BookmarkHTMLUtils.jsm" title="en/JavaScript_code_modules/BookmarkHTMLUtils.jsm"><code>BookmarkHTMLUtils.jsm</code></a>.</li>
- <li>L'interface {{interface("nsIDOMGeoPositionAddress")}} a été supprimée.</li>
- <li>Les méthodes <code>getItemGUID</code>, <code>setItemGUID</code> et <code>getItemIdForGUID</code> ont été retirées de l'interface {{interface("nsINavBookmarksService")}} ({{bug(715355)}}).</li>
-</ul>
-
-<h3 id="Vérification_orthographique">Vérification orthographique</h3>
-
-<ul>
- <li>Les noms du dictionnaire sont désormais analysés comme des étiquettes de langues <a class="external" href="http://tools.ietf.org/html/bcp47" title="http://tools.ietf.org/html/bcp47">BCP 47</a> ({{bug(730209)}}, {{bug(741842)}}). Les développeurs sont encouragés à ne pas coder le nom de leur langue en dur dans leur dictionnaire de noms.</li>
-</ul>
-
-<h2 id="Voir_également">Voir également</h2>
-
-<p>{{Firefox_for_developers('13')}}</p>
diff --git a/files/fr/mozilla/firefox_pour_android/index.html b/files/fr/mozilla/firefox_pour_android/index.html
deleted file mode 100644
index 089098ad99..0000000000
--- a/files/fr/mozilla/firefox_pour_android/index.html
+++ /dev/null
@@ -1,65 +0,0 @@
----
-title: Firefox pour Android
-slug: Mozilla/Firefox_pour_Android
-tags:
- - Firefox
- - Mobile
- - NeedsContent
- - NeedsUpdate
-translation_of: Mozilla/Firefox_for_Android
----
-<p>Pour de plus en plus de gens, les appareils mobiles sont le premier, voire le seul moyen d'accéder au Web. <a class="link-https" href="https://www.mozilla.org/fr/mobile/">Firefox pour Android</a> (nom de code Fennec) est un navigateur ouvert, modifiable, basé sur les standards, comme la version de Firefox pour les ordinateurs.</p>
-
-<p>Firefox pour Android construit son interface graphique avec des widgets Android natifs plutôt qu'avec XUL : cela améliore largement les performances, particulièrement le temps de démarrage et la consommation mémoire.</p>
-
-<h2 id="Contribuer_à_Firefox_pour_Android">Contribuer à Firefox pour Android</h2>
-
-<p>Le point de départ pour obtenir des informations à propos du projet Firefox pour Android est la <a class="link-https" href="https://wiki.mozilla.org/Mobile">page Wiki du projet</a>.</p>
-
-<p>Vous pouvez nous aider à créer et améliorer Firefox pour Android :</p>
-
-<ul>
- <li>Aidez-nous à <a href="/fr/docs/Mozilla/Firefox_for_Android/Compatibility_Testing">tester la compatibilité</a> des sites populaires.</li>
- <li>Contactez l'équipe sur <a class="link-irc" href="irc://irc.mozilla.org/#mobile">IRC.</a></li>
- <li>Rejoignez-nous lors de nos <a class="link-https" href="https://wiki.mozilla.org/Mobile/Notes">réunions de développement du mercredi.</a></li>
- <li>Tenez-vous au courant des nouvelles du projet sur le <a class="external" href="http://planet.firefox.com/mobile/">Planet Firefox</a> et sur <a class="link-https" href="https://twitter.com/#!/mozmobile" title="https://twitter.com/#!/mozmobile">Twitter.</a></li>
- <li><a href="https://wiki.mozilla.org/Mobile/Fennec/Android" title="https://wiki.mozilla.org/Mobile/Fennec/Android">Construisez et hackez sur Firefox pour Android</a> (Fennec)</li>
-</ul>
-
-<h2 id="Développer_pour_le_web_mobile">Développer pour le web mobile</h2>
-
-<p>Nous avons démarré un guide pour <a href="/fr/docs/Mobile" title="En/Mobile">concevoir des sites web pour les appareils mobiles</a>.</p>
-
-<p>Avec Firefox pour Android, vous avez accès à des APIs qui exploitent toutes les capacités de l'appareil, réduisant les différences entre les applications Web et natives :</p>
-
-<ul>
- <li><a class="external" href="https://developer.mozilla.org/fr/docs/Web/API/Battery_Status_API" title="https://developer.mozilla.org/fr/docs/Web/API/Battery_Status_API">Batterie</a></li>
- <li><a href="/en-us/DOM/Using_the_Camera_API" title="Utilisation de l'API">Appareil photo</a></li>
- <li><a href="/en-us/API/WebTelephony/Introduction_to_WebTelephony" title="Introduction à la Téléphonie Web">Téléphonie Web</a></li>
- <li><a href="/fr/docs/Mozilla/Firefox_OS/API/Mobile_Messaging_API/Introduction_to_Mobile_Message_API" title="Introduction à l'API WebSMS">SMS API</a></li>
- <li><a href="/fr/docs/Web/API/Geolocation/Using_geolocation" title="Utiliser la geolocalisation">Géolocalisation</a></li>
- <li><a href="/fr/docs/Web/API/Detecting_device_orientation" title="Détecter l'orientation">Orientation</a></li>
-</ul>
-
-<p>Pour tester votre site web sur Firefox pour Android, vous pouvez l'<a class="external external-icon" href="https://www.mozilla.org/fr/firefox/">installer sur un appareil Android</a> ou <a class="link-https" href="https://wiki.mozilla.org/Mobile/Fennec/Android/Emulator">l'exécuter sur votre ordinateur en utilisant l'émulateur Android</a>.</p>
-
-<h2 id="Construire_des_add-ons_pour_mobile">Construire des add-ons pour mobile</h2>
-
-<p><a href="/en/Extensions/Mobile" title="en/Extensions/Firefox_on_Android">Firefox pour Android supporte les add-ons</a> et utilise exactement le même <a href="/fr/docs/Extensions" title="en/Extensions">système d'extension</a> que celui utilisé par toutes les autres applications basées sur Gecko. Nous n'avons pas inventé un nouveau système d'add-on. Cela signifie que construire un add-on pour Firefox pour Android est le <a href="/fr/docs/Construire_une_extension" title="en/Building_an_Extension">même procédé</a> que celui qui serait utilisé sur ordinateur. Les add-ons qui fonctionnent sur Firefox pour ordinateur <strong>ne fonctionnent pas</strong> automatiquement sur Firefox pour Android. Les interfaces graphiques y sont vraiment trop différentes.</p>
-
-<div class="note">Firefox pour Android a un identifiant unique d'application qui doit être utilisé dans <code>install.rdf</code>. L'identifiant est <code>{aa3c5121-dab2-40e2-81ca-7ea25febc110}</code></div>
-
-<p>Les deux approches d'add-ons, avec redémarrage ou <a href="/en/Extensions/Bootstrapped_extensions" title="en/Extensions/Bootstrapped_extensions">sans redémarrage</a> requis sont supportés. Il est préférable d'utiliser l'approche sans redémarrage dès que possible, puisque l'expérience utilisateur est largement meilleure que de forcer le redémarrage de l'application lorsqu'on installe ou supprime un add-on.</p>
-
-<h3 id="Aperçu_rapide">Aperçu rapide</h3>
-
-<ul>
- <li>Il n'y a pas de XUL visible dans l'interface graphique, il est donc inutile d'utiliser des overlays pour ajouter ou modifier des éléments de l'interface.</li>
- <li>Le code et les objets internes, comme <code>gBrowser</code>, n'existent pas. Regardez le fichier <a class="external" href="http://mxr.mozilla.org/mozilla-central/source/mobile/android/chrome/content/browser.js" title="http://mxr.mozilla.org/mozilla-central/source/mobile/android/chrome/content/browser.js"><code>browser.js</code></a> de Firefox pour Android pour en savoir plus sur les objets internes. La plupart des fonctionnalités fondamentales existe de la même manière.</li>
- <li>Les services comme <code>nsIPromptService</code> et <code>nsIAlertsService</code> sont implémentés pour utiliser l'interface graphique Android native.</li>
- <li>Il existe un objet Javascript simple, appelé <a href="/en/Extensions/Mobile/API/NativeWindow" title="en/Extensions/Mobile/NativeWindow"><code>NativeWindow</code></a>, qui permet de manipuler des parties de l'interface graphique Android native.</li>
-</ul>
-
-<h2 id="Obtenir_de_laide_avec_Firefox_pour_Android">Obtenir de l'aide avec Firefox pour Android</h2>
-
-<p>La documentation et les tutoriels pour utiliser Firefox pour Android et résoudre vos problèmes sont disponibles sur le <a class="external" href="http://support.mozilla.org/mobile" title="http://support.mozilla.org/mobile">site de support de Mozilla</a>.</p>
diff --git a/files/fr/mozilla/firefox_pour_android/test_compatibilite/index.html b/files/fr/mozilla/firefox_pour_android/test_compatibilite/index.html
deleted file mode 100644
index 680e19bed5..0000000000
--- a/files/fr/mozilla/firefox_pour_android/test_compatibilite/index.html
+++ /dev/null
@@ -1,105 +0,0 @@
----
-title: Tester la compatibilité des sites avec Firefox pour Android
-slug: Mozilla/Firefox_pour_Android/Test_Compatibilite
-tags:
- - AQ
- - Compatibilité
- - Firefox
- - Guide
- - Mobile
-translation_of: Mozilla/Firefox_for_Android/Compatibility_Testing
----
-<h2 id="Résumé">Résumé</h2>
-<p>Notre objectif est d'<strong>ouvrir le Web mobile à tous les navigateurs mobiles à travers la promotion des standards et des bonnes pratiques. </strong></p>
-<p>Cependant, de nombreux sites servent à Firefox pour Android un contenu qui ne fonctionne pas bien ou qui est différent de celui pour les autres navigateurs mobiles. Ce contenu peut être :</p>
-<ul>
- <li>Un site mobile basique</li>
- <li>Un site traditionnel pour ordinateur de bureau</li>
- <li>Un site WAP (Wireless Application Protocol) conçu pour les téléphones non smart-phones</li>
- <li>Un site mobile optimisé pour le tactile qui est cassé dans son apparence ou ses fonctionnalités.</li>
-</ul>
-<p>Nous désignons cette catégorie de problèmes, comme des <strong>problèmes de compatibilité Web</strong>. Les problèmes de compatibilité Web sont principalement issus d'une ou plusieurs des causes suivantes :</p>
-<dl>
- <dt>
- Détection de l'agent utilisateur (UA-sniffing)</dt>
- <dd>
- Identifier le navigateur par sa chaîne d'agent utilisateur (user-agent) et envoyer un contenu différent.</dd>
- <dt>
- Utiliser des propriétés CSS non standards (principalement Webkit)</dt>
- <dd>
- Utiliser des propriétés CSS non standard que le navigateur ne reconnaît pas, causant des problèmes de mise en page et de style</dd>
- <dt>
- Utiliser des propriétés DOM non standard (principalement Webkit)</dt>
- <dd>
- Utiliser des propriétés DOM non standards en JavaScript que le navigateur ne reconnaît pas, causant des problèmes fonctionnels</dd>
- <dt>
- Limitation navigateur</dt>
- <dd>
- Utiliser des propriétés standards CSS et DOM que le navigateur ne reconnaît pas actuellement, ou qui posent des problèmes fonctionnels ou de performance.</dd>
-</dl>
-<p>Pour <strong>Firefox</strong> en particulier, nous avons besoin de votre aide pour identifier les sites qui ne fonctionnent pas bien, en signalant les problèmes spécifiques que vous avez trouvés lors de votre enquête. D'autres fabricants de navigateurs ont leurs propres systèmes d'alertes, dans lesquels vous pouvez signaler tout problème survenant aussi avec leur navigateur.</p>
-<p>Ci-dessous sont détaillées les étapes que vous pouvez suivre pour identifier et signaler les sites problématiques.</p>
-<h2 id="Préparation">Préparation</h2>
-<p>Pour démarrer, préparons notre matériel et nos logiciels pour des tests de compatibilité.</p>
-<ol>
- <li>Un téléphone Android est un pré-requis pour tester Firefox pour Android. Assurez-vous que votre téléphone est supporté en consultant la <a href="http://www.mozilla.org/en-US/firefox/mobile/platforms/" title="http://www.mozilla.org/en-US/firefox/mobile/platforms/">liste des appareils supportés par Firefox pour Android</a>.</li>
- <li>Installer <a href="https://play.google.com/store/apps/details?id=org.mozilla.firefox" title="https://play.google.com/store/apps/details?id=org.mozilla.firefox">Firefox pour Android depuis Google Play</a>.</li>
- <li>Installer l'add-on <a href="https://addons.mozilla.org/fr/android/addon/phony/" title="https://addons.mozilla.org/fr/android/addon/phony/">Phony</a> pour Firefox pour Android. Cet add-on permet de faire passer Firefox pour Android pour un autre navigateur en remplaçant sa chaîne <a href="/en-US/docs/Browser_detection_using_the_user_agent" title="/en-US/docs/Browser_detection_using_the_user_agent">agent utilisateur</a> par celle d'un autre navigateur pour chaque requête HTTP.</li>
- <li><a href="https://bugzilla.mozilla.org/createaccount.cgi" title="https://bugzilla.mozilla.org/createaccount.cgi">Créer un compte sur Bugzilla</a> pour que vous puissiez signaler les problèmes rencontrés.</li>
-</ol>
-<p><strong>Étapes facultatives :</strong></p>
-<ul>
- <li>Installer Firefox pour Android pour un autre canal de distribution : <a href="https://play.google.com/store/apps/details?id=org.mozilla.firefox_beta" title="https://play.google.com/store/apps/details?id=org.mozilla.firefox_beta">Beta</a>, <a href="http://www.mozilla.org/en-US/mobile/aurora/" title="http://www.mozilla.org/en-US/mobile/aurora/">Aurora</a> et <a href="http://nightly.mozilla.org/" title="http://nightly.mozilla.org/">Nightly</a>.</li>
- <li>Vous pouvez essayer de reproduire et débuguer les problèmes que vous avez découverts, dans Firefox pour ordinateur de bureau. Installer Firefox sur Windows, Linux ou Mac OS X et un <a href="https://addons.mozilla.org/en-US/firefox/addon/user-agent-switcher/?src=search" title="https://addons.mozilla.org/en-US/firefox/addon/user-agent-switcher/? data-cke-saved-src=search src=search">module comme Phony pour ordinateur</a>.</li>
-</ul>
-<div class="note">
- <p><strong>Note :</strong> Voir l'article <a href="/en-US/docs/Browser_detection_using_the_user_agent" title="/en-US/docs/Browser_detection_using_the_user_agent">Détection du navigateur par l'agent-utilisateur</a> pour une explication détaillée sur les agents-utilisateurs des navigateurs.</p>
-</div>
-<h2 id="Tester_la_compatibilité">Tester la compatibilité</h2>
-<p>Les étapes suivantes vous guideront selon la méthodologie utilisée par Mozilla AQ (Assurance Qualité) lors des tests de compatibilité :</p>
-<ol>
- <li>Choisissez un site à tester.
- <ul>
- <li>Il peut s'agir d'un site que vous avez déjà visité et sur lequel vous avez constaté un problème lors de vos navigations quotidiennes.</li>
- <li>Sinon, vous pouvez choisir un des principaux sites listés dans le <a href="http://people.mozilla.org/~lmandel/arewecompatibleyet/" title="http://people.mozilla.org/~lmandel/arewecompatibleyet/">rapport Are We Compatible Yet</a>. Les sites qui n'ont pas été analysés sont affichés en blanc.</li>
- </ul>
- </li>
- <li>Ouvrez le site que vous avez choisi avec Firefox pour Android. Testez son fonctionnement en explorant les différentes parties du site. Par exemple, si le site affiche des articles, des photos, et des vidéos, vous pouvez explorer ces trois parties du site. Cliquez sur les liens, utilisez les formulaires, créez des comptes, identifiez-vous, et posez les questions :
- <ol>
- <li>Est-ce que ce site est pour ordinateur de bureau ? Si oui, sautez directement au point 3 ou 4 pour déterminer si Safari sur iPhone et le navigateur d'Android reçoivent le même contenu.</li>
- <li>Est-ce que le site a de flagrants problèmes de mise en page ? Est-ce que les éléments sont positionnées les uns sur les autres ? Est-ce qu'il manque du contenu ? Est-ce que les menus sont correctement affichés ? Est-ce que les couleurs de fonds de l'en-tête sont correctes ? Est-ce que certaines zones de la page sont affichées correctement ? Est-ce que le site apparaît tout simplement cassé, ou mal ?<span style="display: none;"> </span></li>
- </ol>
- </li>
- <li>Visitez le même site web en utilisant le navigateur de votre appareil Android, et en utilisant la même méthode d'exploration que pour le point 2, et posez les questions :
- <ol>
- <li>Est ce que ce site est pour ordinateur de bureau ? Est-ce que le contenu change fortement avec ce que vous avez vu sur Firefox pour Android ? Si oui, comment était-ce différent ? S'agit'il d'un site optimisé pour mobile ?</li>
- <li>Y-a t'il les mêmes problèmes de mise en page que ceux constatés sur Firefox pour Android ? Si oui, quels problèmes avez-vous vu sous Firefox pour Android qui ne sont plus là avec le navigateur d'Android ?</li>
- </ol>
- </li>
- <li>Faîtes apparaître Firefox pour Android aux yeux du site, comme s'il s'agissait de Safari sur iPhone, en cliquant sur Menu -&gt; Phony et en choisissant iPhone. Après avoir sélectionné iPhone, cliquez sur Menu -&gt; Recharger. Visitez le même site une nouvelle fois et continuez la même méthode d'exploration que pour le point 2, et posez les questions :
- <ol>
- <li>Est ce que ce site est pour ordinateur de bureau ? Est-ce que le contenu change fortement avec ce que vous avez vu sur Firefox pour Android ? Si oui, s'agit'il d'un site optimisé pour mobile ?</li>
- <li>Y a-t'il des problèmes de mise en page ? Si oui, quels sont ces problèmes ?</li>
- </ol>
- </li>
-</ol>
-<h2 id="Signaler_les_résultats">Signaler les résultats</h2>
-<p>Pour tout site qui apparaît ou fonctionne différement dans Firefox pour Android, le navigateur d'Android, ou Safari sur iPhone, vous devez signaler le problème sur Bugzilla. Pour signaler un problème, soumettez un bug dans le module <a href="https://bugzilla.mozilla.org/enter_bug.cgi?product=Firefox%20for%20Android&amp;component=Evangelism&amp;rep_platform=ARM&amp;op_sys=Android" title="https://bugzilla.mozilla.org/enter_bug.cgi?product=Firefox%20for%20Android&amp;component=Evangelism&amp;rep_platform=ARM&amp;op_sys=Android">Firefox for Android Evangelism</a> et fournissez autant d'informations sur le problème que vous pouvez. Voici certaines informations souvent utiles, à renseigner dans votre signalement :</p>
-<dl>
- <dt>
- Résumé</dt>
- <dd>
- Résumez le problème que vous avez identifié avec le site. Il est utile d'inclure le nom de domaine, par exemple mozilla.org, dans le résumé.</dd>
- <dt>
- Description</dt>
- <dd>
- Décrivez le problème du mieux que vous pouvez. Mettez des détails sur la façon dont le contenu diffère entre Firefox pour Android, le navigateur Android et Safari sur iPhone, les endroits précis (titres, liste d'articles, menus) où le site ne s'affiche pas correctement, et quelles parties du site (articles illisibles, vidéos injouables, impossible de cliquer sur les liens) qui ne fonctionnent pas comme elles le devraient.<br>
- <br>
- Si vous avez quelques connaissances en HTML, CSS et JavaScript, il est très utile d'indiquer les lignes de code qui sont à l'origine du problème.</dd>
- <dt>
- Pièces jointes</dt>
- <dd>
- Il est aussi utile d'attacher une capture d'écran montrant le problème dans Firefox pour Android. La méthode pour prendre une capture d'écran sur Android diffère selon la version du système d'exploitation.</dd>
-</dl>
-<h2 id="Information_de_contact">Information de contact</h2>
-<p>Si vous avez des questions sur les tests de compatibilité ou si vous voulez vous impliquer dans l'effort de compatibilité Web mobile de Mozilla, s'il vous plaît, inscrivez-vous sur la liste de diffusion <a href="https://lists.mozilla.org/listinfo/compatibility">compatibility@lists.mozilla.org</a>.</p>
diff --git a/files/fr/mozilla/gecko/chrome/css/-moz-window-dragging/index.html b/files/fr/mozilla/gecko/chrome/css/-moz-window-dragging/index.html
deleted file mode 100644
index 55ddef129a..0000000000
--- a/files/fr/mozilla/gecko/chrome/css/-moz-window-dragging/index.html
+++ /dev/null
@@ -1,107 +0,0 @@
----
-title: '-moz-window-dragging'
-slug: Mozilla/Gecko/Chrome/CSS/-moz-window-dragging
-tags:
- - CSS
- - Non-standard
- - Propriété
- - Reference
- - XUL
-translation_of: Mozilla/Gecko/Chrome/CSS/-moz-window-dragging
----
-<div>{{Non-standard_header}}{{CSSRef}}</div>
-
-<p>La propriété <strong><code>-moz-window-dragging</code></strong> indique si une fenêtre peut être déplacée. Elle ne peut être utilisée qu'à partir de code appelé pour l'interface utilisateur du navigateur et uniquement sur macOS X.</p>
-
-<p>Cette propriété a été ajoutée à Firefox 35 afin de résoudre certains problèmes liés à la fenêtre de Firefox qui ne pouvait pas être déplacé lorsque celui-ci était occupé ({{bug(944836)}}).</p>
-
-<p>{{cssinfo}}</p>
-
-<h2 id="Syntaxe">Syntaxe</h2>
-
-<p>La propriété <code>-moz-window-dragging</code> s'utilise avec un des mots-clés parmi ceux de la liste suivante.</p>
-
-<h3 id="Valeurs">Valeurs</h3>
-
-<dl>
- <dt><code>drag</code></dt>
- <dd>La fenêtre peut être déplacée.</dd>
- <dt><code>no-drag</code></dt>
- <dd>La fenêtre ne peut pas être déplacée.</dd>
-</dl>
-
-<h3 id="Syntaxe_formelle">Syntaxe formelle</h3>
-
-<pre class="syntaxbox">{{csssyntax}}</pre>
-
-<h2 id="Exemple">Exemple</h2>
-
-<pre><code id="line-283">toolbarpaletteitem {
-</code><code id="line-284"> -moz-window-dragging: no-drag;
-</code><code id="line-285">}</code></pre>
-
-<h2 id="Spécifications">Spécifications</h2>
-
-<p>Cette propriété ne fait partie d'aucune spécification.</p>
-
-<h2 id="Compatibilité_des_navigateurs">Compatibilité des navigateurs</h2>
-
-<div>{{CompatibilityTable}}</div>
-
-<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 (WebKit)</th>
- </tr>
- <tr>
- <td>Support simple</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- <td>
- <p>{{CompatGeckoDesktop(35)}}</p>
- </td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- </tr>
- </tbody>
-</table>
-</div>
-
-<div id="compat-mobile">
-<table class="compat-table">
- <tbody>
- <tr>
- <th>Fonctionnalité</th>
- <th>Android</th>
- <th>Webview Android</th>
- <th>Edge</th>
- <th>Firefox Mobile (Gecko)</th>
- <th>IE Phone</th>
- <th>Opera Mobile</th>
- <th>Safari Mobile</th>
- <th>Chrome pour Android</th>
- </tr>
- <tr>
- <td>Support simple</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatGeckoMobile(35)}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- </tr>
- </tbody>
-</table>
-</div>
-
-<p> </p>
diff --git a/files/fr/mozilla/gecko/chrome/css/_doublecolon_-moz-tree-cell-text(hover)/index.html b/files/fr/mozilla/gecko/chrome/css/_doublecolon_-moz-tree-cell-text(hover)/index.html
deleted file mode 100644
index 37bcb675cd..0000000000
--- a/files/fr/mozilla/gecko/chrome/css/_doublecolon_-moz-tree-cell-text(hover)/index.html
+++ /dev/null
@@ -1,19 +0,0 @@
----
-title: ':-moz-tree-cell-text(hover)'
-slug: 'Mozilla/Gecko/Chrome/CSS/::-moz-tree-cell-text(hover)'
-tags:
- - CSS
- - Non-standard
- - Pseudo-classe
- - Reference
-translation_of: 'Mozilla/Gecko/Chrome/CSS/::-moz-tree-cell-text(hover)'
----
-<div>{{Non-standard_header}}{{CSSRef}}{{Fx_minversion_header(1.9)}}</div>
-
-<p>La pseudo-classe <strong><code>:-moz-tree-cell-text(hover)</code></strong> correspond à un élément si le curseur de la souris est en train de survoler une cellule d'un arbre.</p>
-
-<p>Ce sélecteur est principalement destiné aux développeurs de thèmes.</p>
-
-<h2 id="Spécifications">Spécifications</h2>
-
-<p>Cette pseudo-classe est une pseudo-classe propriétaire liée à Gecko/Mozilla et ne fait partie d'aucune spécification.</p>
diff --git a/files/fr/mozilla/gecko/chrome/css/_doublecolon_-moz-tree-cell-text/index.html b/files/fr/mozilla/gecko/chrome/css/_doublecolon_-moz-tree-cell-text/index.html
deleted file mode 100644
index c20c552b1f..0000000000
--- a/files/fr/mozilla/gecko/chrome/css/_doublecolon_-moz-tree-cell-text/index.html
+++ /dev/null
@@ -1,32 +0,0 @@
----
-title: ':-moz-tree-cell-text'
-slug: 'Mozilla/Gecko/Chrome/CSS/::-moz-tree-cell-text'
-tags:
- - CSS
- - Non-standard
- - Pseudo-classe
- - Reference
-translation_of: 'Mozilla/Gecko/Chrome/CSS/::-moz-tree-cell-text'
----
-<div>{{Non-standard_header}}{{CSSRef}}</div>
-
-<p>Cette pseudo-classe est activée avec l'attribut <code>properties</code>.</p>
-
-<h2 id="Éléments_XUL_associés">Éléments XUL associés</h2>
-
-<ul>
- <li>{{XULElem("treecell")}}</li>
-</ul>
-
-<h2 id="Propriétés_associées">Propriétés associées</h2>
-
-<ul>
- <li>{{cssxref("font")}}</li>
- <li>{{cssxref("visibility")}}</li>
- <li>{{cssxref("color")}}</li>
- <li>{{cssxref("text-decoration")}}</li>
-</ul>
-
-<h2 id="Spécifications">Spécifications</h2>
-
-<p>Cette pseudo-classe est une pseudo-classe propriétaire liée à Gecko/Mozilla et ne fait partie d'aucune spécification.</p>
diff --git a/files/fr/mozilla/gecko/chrome/css/_doublecolon_-moz-tree-cell/index.html b/files/fr/mozilla/gecko/chrome/css/_doublecolon_-moz-tree-cell/index.html
deleted file mode 100644
index 5397076180..0000000000
--- a/files/fr/mozilla/gecko/chrome/css/_doublecolon_-moz-tree-cell/index.html
+++ /dev/null
@@ -1,40 +0,0 @@
----
-title: ':-moz-tree-cell'
-slug: 'Mozilla/Gecko/Chrome/CSS/::-moz-tree-cell'
-tags:
- - CSS
- - Non-standard
- - Pseudo-classe
- - Reference
-translation_of: 'Mozilla/Gecko/Chrome/CSS/::-moz-tree-cell'
----
-<div>{{Non-standard_header}}{{CSSRef}}</div>
-
-<p>Cette pseudo-classe est activée avec l'attribut <code>properties</code>.</p>
-
-<h2 id="Éléments_XUL_associés">Éléments XUL associés</h2>
-
-<ul>
- <li>{{XULElem("treecell")}}</li>
-</ul>
-
-<h2 id="Propriétés_associées">Propriétés associées</h2>
-
-<ul>
- <li>{{cssxref("background")}}</li>
- <li>{{cssxref("border")}}</li>
- <li>{{cssxref("margin")}}</li>
- <li>{{cssxref("outline")}}</li>
- <li>{{cssxref("padding")}}</li>
- <li>{{cssxref("visibility")}}</li>
-</ul>
-
-<h2 id="Spécifications">Spécifications</h2>
-
-<p>Cette pseudo-classe est une pseudo-classe propriétaire liée à Gecko/Mozilla et ne fait partie d'aucune spécification.</p>
-
-<h2 id="Voir_aussi">Voir aussi</h2>
-
-<ul>
- <li><a href="/fr/docs/Tutoriel_XUL/Styler_un_arbre">Mettre en forme un arbre XUL</a></li>
-</ul>
diff --git a/files/fr/mozilla/gecko/chrome/css/_doublecolon_-moz-tree-column/index.html b/files/fr/mozilla/gecko/chrome/css/_doublecolon_-moz-tree-column/index.html
deleted file mode 100644
index 8e0bcb2932..0000000000
--- a/files/fr/mozilla/gecko/chrome/css/_doublecolon_-moz-tree-column/index.html
+++ /dev/null
@@ -1,31 +0,0 @@
----
-title: ':-moz-tree-column'
-slug: 'Mozilla/Gecko/Chrome/CSS/::-moz-tree-column'
-tags:
- - CSS
- - Non-standard
- - Pseudo-classe
- - Reference
-translation_of: 'Mozilla/Gecko/Chrome/CSS/::-moz-tree-column'
----
-<div>{{Non-standard_header}}{{CSSRef}}</div>
-
-<p>Cette pseudo-classe est activée avec l'attribut <code>properties</code>.</p>
-
-<h2 id="Éléments_XUL_associés">Éléments XUL associés</h2>
-
-<ul>
- <li>{{XULElem("treecol")}}</li>
-</ul>
-
-<h2 id="Propriétés_associées">Propriétés associées</h2>
-
-<ul>
- <li>{{cssxref("margin")}}</li>
- <li>{{cssxref("visibility")}}</li>
- <li>{{cssxref("text style")}}</li>
-</ul>
-
-<h2 id="Spécifications">Spécifications</h2>
-
-<p>Cette pseudo-classe est une pseudo-classe propriétaire liée à Gecko/Mozilla et ne fait partie d'aucune spécification.</p>
diff --git a/files/fr/mozilla/gecko/chrome/css/_doublecolon_-moz-tree-drop-feedback/index.html b/files/fr/mozilla/gecko/chrome/css/_doublecolon_-moz-tree-drop-feedback/index.html
deleted file mode 100644
index 2b81402253..0000000000
--- a/files/fr/mozilla/gecko/chrome/css/_doublecolon_-moz-tree-drop-feedback/index.html
+++ /dev/null
@@ -1,30 +0,0 @@
----
-title: ':-moz-tree-drop-feedback'
-slug: 'Mozilla/Gecko/Chrome/CSS/::-moz-tree-drop-feedback'
-tags:
- - CSS
- - Non-standard
- - Pseudo-classe
- - Reference
-translation_of: 'Mozilla/Gecko/Chrome/CSS/::-moz-tree-drop-feedback'
----
-<div>{{Non-standard_header}}{{CSSRef}}</div>
-
-<p>Cette pseudo-classe est activée avec l'attribut <code>properties</code>.</p>
-
-<h2 id="Éléments_XUL_associés">Éléments XUL associés</h2>
-
-<ul>
- <li>{{XULElem("treerow")}}</li>
-</ul>
-
-<h2 id="Propriétés_associées">Propriétés associées</h2>
-
-<ul>
- <li>{{cssxref("margin")}}</li>
- <li>{{cssxref("visibility")}}</li>
-</ul>
-
-<h2 id="Spécifications">Spécifications</h2>
-
-<p>Cette pseudo-classe est une pseudo-classe propriétaire liée à Gecko/Mozilla et ne fait partie d'aucune spécification.</p>
diff --git a/files/fr/mozilla/gecko/chrome/css/_doublecolon_-moz-tree-image/index.html b/files/fr/mozilla/gecko/chrome/css/_doublecolon_-moz-tree-image/index.html
deleted file mode 100644
index 2305bb1423..0000000000
--- a/files/fr/mozilla/gecko/chrome/css/_doublecolon_-moz-tree-image/index.html
+++ /dev/null
@@ -1,36 +0,0 @@
----
-title: ':-moz-tree-image'
-slug: 'Mozilla/Gecko/Chrome/CSS/::-moz-tree-image'
-tags:
- - CSS
- - Non-standard
- - Pseudo-classe
- - Reference
-translation_of: 'Mozilla/Gecko/Chrome/CSS/:-moz-tree-image'
----
-<div>{{Non-standard_header}}{{CSSRef}}</div>
-
-<p>Cette pseudo-classe est activée avec l'attribut <code>properties</code>.</p>
-
-<h2 id="Éléments_XUL_associés">Éléments XUL associés</h2>
-
-<ul>
- <li>{{XULElem("treeitem")}}</li>
- <li>{{XULElem("treecell")}}</li>
-</ul>
-
-<h2 id="Propriétés_associées">Propriétés associées</h2>
-
-<ul>
- <li>{{cssxref("margin")}}</li>
- <li>{{cssxref("list-style")}}</li>
- <li>{{cssxref("position")}}</li>
-</ul>
-
-<h2 id="Exemples">Exemples</h2>
-
-<p><em><a class="external" href="http://forums.mozillazine.org/viewtopic.php?t=610762&amp;sid=2aa24bf393171dd0c9bd9343b3d355c3">Bookmark icons in the Places window - Mozillazine Forum</a></em><a class="external" href="http://forums.mozillazine.org/viewtopic.php?t=610762&amp;sid=2aa24bf393171dd0c9bd9343b3d355c3"> (en anglais)</a></p>
-
-<h2 id="Spécifications">Spécifications</h2>
-
-<p>Cette pseudo-classe est une pseudo-classe propriétaire liée à Gecko/Mozilla et ne fait partie d'aucune spécification.</p>
diff --git a/files/fr/mozilla/gecko/chrome/css/_doublecolon_-moz-tree-indentation/index.html b/files/fr/mozilla/gecko/chrome/css/_doublecolon_-moz-tree-indentation/index.html
deleted file mode 100644
index 83d93fe084..0000000000
--- a/files/fr/mozilla/gecko/chrome/css/_doublecolon_-moz-tree-indentation/index.html
+++ /dev/null
@@ -1,29 +0,0 @@
----
-title: ':-moz-tree-indentation'
-slug: 'Mozilla/Gecko/Chrome/CSS/::-moz-tree-indentation'
-tags:
- - CSS
- - Non-standard
- - Pseudo-classe
- - Reference
-translation_of: 'Mozilla/Gecko/Chrome/CSS/::-moz-tree-indentation'
----
-<div>{{Non-standard_header}}{{CSSRef}}</div>
-
-<p>Cette pseudo-classe est activée avec l'attribut <code>properties</code>.</p>
-
-<h2 id="Éléments_XUL_associés">Éléments XUL associés</h2>
-
-<ul>
- <li>{{XULElem("treeitem")}}</li>
-</ul>
-
-<h2 id="Propriétés_associées">Propriétés associées</h2>
-
-<ul>
- <li>{{cssxref("position")}}</li>
-</ul>
-
-<h2 id="Spécifications">Spécifications</h2>
-
-<p>Cette pseudo-classe est une pseudo-classe propriétaire liée à Gecko/Mozilla et ne fait partie d'aucune spécification.</p>
diff --git a/files/fr/mozilla/gecko/chrome/css/_doublecolon_-moz-tree-line/index.html b/files/fr/mozilla/gecko/chrome/css/_doublecolon_-moz-tree-line/index.html
deleted file mode 100644
index b3306ea046..0000000000
--- a/files/fr/mozilla/gecko/chrome/css/_doublecolon_-moz-tree-line/index.html
+++ /dev/null
@@ -1,30 +0,0 @@
----
-title: ':-moz-tree-line'
-slug: 'Mozilla/Gecko/Chrome/CSS/::-moz-tree-line'
-tags:
- - CSS
- - Non-standard
- - Pseudo-classe
- - Reference
-translation_of: 'Mozilla/Gecko/Chrome/CSS/::-moz-tree-line'
----
-<div>{{Non-standard_header}}{{CSSRef}}</div>
-
-<p>Cette pseudo-classe est activée avec l'attribut <code>properties</code>.</p>
-
-<h2 id="Éléments_XUL_associés">Éléments XUL associés</h2>
-
-<ul>
- <li>{{XULElem("treeitem")}}</li>
-</ul>
-
-<h2 id="Propriétés_associées">Propriétés associées</h2>
-
-<ul>
- <li>{{cssxref("border")}}</li>
- <li>{{cssxref("visibility")}}</li>
-</ul>
-
-<h2 id="Spécifications">Spécifications</h2>
-
-<p>Cette pseudo-classe est une pseudo-classe propriétaire liée à Gecko/Mozilla et ne fait partie d'aucune spécification.</p>
diff --git a/files/fr/mozilla/gecko/chrome/css/_doublecolon_-moz-tree-progressmeter/index.html b/files/fr/mozilla/gecko/chrome/css/_doublecolon_-moz-tree-progressmeter/index.html
deleted file mode 100644
index 09f8ce7451..0000000000
--- a/files/fr/mozilla/gecko/chrome/css/_doublecolon_-moz-tree-progressmeter/index.html
+++ /dev/null
@@ -1,30 +0,0 @@
----
-title: ':-moz-tree-progressmeter'
-slug: 'Mozilla/Gecko/Chrome/CSS/::-moz-tree-progressmeter'
-tags:
- - CSS
- - Non-standard
- - Pseudo-classe
- - Reference
-translation_of: 'Mozilla/Gecko/Chrome/CSS/::-moz-tree-progressmeter'
----
-<div>{{Non-standard_header}}{{CSSRef}}</div>
-
-<p>Cette pseudo-classe est activée lorsque l'attribut <code>type</code> est défini sur <code>progressmeter</code>.</p>
-
-<h2 id="Éléments_XUL_associés">Éléments XUL associés</h2>
-
-<ul>
- <li>{{XULElem("treecell")}}</li>
-</ul>
-
-<h2 id="Propriétés_associées">Propriétés associées</h2>
-
-<ul>
- <li>{{cssxref("margin")}}</li>
- <li>{{cssxref("color")}}</li>
-</ul>
-
-<h2 id="Spécifications">Spécifications</h2>
-
-<p>Cette pseudo-classe est une pseudo-classe propriétaire liée à Gecko/Mozilla et ne fait partie d'aucune spécification.</p>
diff --git a/files/fr/mozilla/gecko/chrome/css/_doublecolon_-moz-tree-row(hover)/index.html b/files/fr/mozilla/gecko/chrome/css/_doublecolon_-moz-tree-row(hover)/index.html
deleted file mode 100644
index bfc3bed3de..0000000000
--- a/files/fr/mozilla/gecko/chrome/css/_doublecolon_-moz-tree-row(hover)/index.html
+++ /dev/null
@@ -1,19 +0,0 @@
----
-title: ':-moz-tree-row(hover)'
-slug: 'Mozilla/Gecko/Chrome/CSS/::-moz-tree-row(hover)'
-tags:
- - CSS
- - Non-standard
- - Pseudo-classe
- - Reference
-translation_of: 'Mozilla/Gecko/Chrome/CSS/::-moz-tree-row(hover)'
----
-<div>{{Non-standard_header}}{{CSSRef}}{{Fx_minversion_header(3)}}</div>
-
-<p>La pseudo-classe <strong><code>:-moz-tree-row(hover)</code></strong> correspond à un élément si le curseur de la souris est en train de survoler une ligne d'un arbre.</p>
-
-<p>Ce sélecteur est principalement destiné aux développeurs de thèmes.</p>
-
-<h2 id="Spécifications">Spécifications</h2>
-
-<p>Cette pseudo-classe est une pseudo-classe propriétaire liée à Gecko/Mozilla et ne fait partie d'aucune spécification.</p>
diff --git a/files/fr/mozilla/gecko/chrome/css/_doublecolon_-moz-tree-row/index.html b/files/fr/mozilla/gecko/chrome/css/_doublecolon_-moz-tree-row/index.html
deleted file mode 100644
index 6fd4596d0b..0000000000
--- a/files/fr/mozilla/gecko/chrome/css/_doublecolon_-moz-tree-row/index.html
+++ /dev/null
@@ -1,55 +0,0 @@
----
-title: ':-moz-tree-row'
-slug: 'Mozilla/Gecko/Chrome/CSS/::-moz-tree-row'
-tags:
- - CSS
- - Non-standard
- - Pseudo-classe
- - Reference
-translation_of: 'Mozilla/Gecko/Chrome/CSS/::-moz-tree-row'
----
-<div>{{CSSRef}}{{Non-standard_header}}</div>
-
-<p>La pseudo-classe <strong><code>-moz-tree-row</code></strong> est utilisée afin de sélectionner des lignes d'un arbre pour leur appliquer des styles</p>
-
-<h2 id="Éléments_XUL_associés">Éléments XUL associés</h2>
-
-<ul>
- <li>{{XULElem("treerow")}}</li>
-</ul>
-
-<h2 id="Syntaxe">Syntaxe</h2>
-
-<pre class="syntaxbox">treechildren::-moz-tree-row { <em>propriétés de style </em>}
-</pre>
-
-<h2 id="Propriétés_associées">Propriétés associées</h2>
-
-<ul>
- <li>{{cssxref("background")}}</li>
- <li>{{cssxref("border")}}</li>
- <li>{{cssxref("margin")}}</li>
- <li>{{cssxref("outline")}}</li>
- <li>{{cssxref("padding")}}</li>
- <li>{{cssxref("display")}}</li>
- <li>{{cssxref("-moz-appearance")}}</li>
-</ul>
-
-<h2 id="Exemples">Exemples</h2>
-
-<h3 id="CSS">CSS</h3>
-
-<pre class="brush: css">treechildren::-moz-tree-row( toto bar )
-{
- margin: 2%;
-}
-</pre>
-
-<h3 id="XUL">XUL</h3>
-
-<pre class="brush: xml">&lt;treerow properties="toto"&gt;…&lt;/treerow&gt;
-</pre>
-
-<h2 id="Spécifications">Spécifications</h2>
-
-<p>Cette pseudo-classe est une pseudo-classe propriétaire liée à Gecko/Mozilla et ne fait partie d'aucune spécification.</p>
diff --git a/files/fr/mozilla/gecko/chrome/css/_doublecolon_-moz-tree-separator/index.html b/files/fr/mozilla/gecko/chrome/css/_doublecolon_-moz-tree-separator/index.html
deleted file mode 100644
index 2f0f6e1769..0000000000
--- a/files/fr/mozilla/gecko/chrome/css/_doublecolon_-moz-tree-separator/index.html
+++ /dev/null
@@ -1,31 +0,0 @@
----
-title: ':-moz-tree-separator'
-slug: 'Mozilla/Gecko/Chrome/CSS/::-moz-tree-separator'
-tags:
- - CSS
- - Non-standard
- - Pseudo-classe
- - Reference
-translation_of: 'Mozilla/Gecko/Chrome/CSS/::-moz-tree-separator'
----
-<div>{{CSSRef}}{{Non-standard_header}}</div>
-
-<p>Cette pseudo-classe est activée via l'attribut <code>properties</code> .</p>
-
-<h2 id="Éléments_XUL_associés">Éléments XUL associés</h2>
-
-<ul>
- <li>{{XULElem(" treeseparator ")}}</li>
-</ul>
-
-<h2 id="Propriétés_associées">Propriétés associées</h2>
-
-<ul>
- <li>{{cssxref("border")}}</li>
- <li>{{cssxref("display")}}</li>
- <li>{{cssxref("-moz-appearance")}}</li>
-</ul>
-
-<h2 id="Spécifications">Spécifications</h2>
-
-<p>Cette pseudo-classe est une pseudo-classe propriétaire liée à Gecko/Mozilla et ne fait partie d'aucune spécification.</p>
diff --git a/files/fr/mozilla/gecko/chrome/css/_doublecolon_-moz-tree-twisty/index.html b/files/fr/mozilla/gecko/chrome/css/_doublecolon_-moz-tree-twisty/index.html
deleted file mode 100644
index b863bca3ff..0000000000
--- a/files/fr/mozilla/gecko/chrome/css/_doublecolon_-moz-tree-twisty/index.html
+++ /dev/null
@@ -1,35 +0,0 @@
----
-title: ':-moz-tree-twisty'
-slug: 'Mozilla/Gecko/Chrome/CSS/::-moz-tree-twisty'
-tags:
- - CSS
- - Non-standard
- - Pseudo-classe
- - Reference
-translation_of: 'Mozilla/Gecko/Chrome/CSS/::-moz-tree-twisty'
----
-<div>{{CSSRef}}{{Non-standard_header}}</div>
-
-<p>Cette pseudo-classe est activée via l'attribut <code>properties</code> .</p>
-
-<h2 id="Éléments_XUL_associés">Éléments XUL associés</h2>
-
-<ul>
- <li>{{XULElem("treecell")}}</li>
-</ul>
-
-<h2 id="Propriétés_associées">Propriétés associées</h2>
-
-<ul>
- <li>{{cssxref("border")}}</li>
- <li>{{cssxref("margin")}}</li>
- <li>{{cssxref("padding")}}</li>
- <li>{{cssxref("display")}}</li>
- <li>{{cssxref("list-style")}}</li>
- <li>{{cssxref("position")}}</li>
- <li>{{cssxref("-moz-appearance")}}</li>
-</ul>
-
-<h2 id="Spécifications">Spécifications</h2>
-
-<p>Cette pseudo-classe est une pseudo-classe propriétaire liée à Gecko/Mozilla et ne fait partie d'aucune spécification.</p>
diff --git a/files/fr/mozilla/gecko/chrome/css/index.html b/files/fr/mozilla/gecko/chrome/css/index.html
deleted file mode 100644
index 1edf837046..0000000000
--- a/files/fr/mozilla/gecko/chrome/css/index.html
+++ /dev/null
@@ -1,25 +0,0 @@
----
-title: Chrome-only CSS reference
-slug: Mozilla/Gecko/Chrome/CSS
-tags:
- - Aperçu
- - CSS
- - Gecko
- - Mozilla
- - Non-standard
- - Reference
-translation_of: Mozilla/Gecko/Chrome/CSS
----
-<div>{{CSSRef}}</div>
-
-<p class="summary">Cette page liste les propriétés CSS uniquement accessible depuis le code du chrome de Gecko.</p>
-
-<p>{{SubpagesWithSummaries}}</p>
-
-<h2 id="Voir_aussi">Voir aussi</h2>
-
-<ul>
- <li><a href="/fr/docs/Web/CSS/Mozilla_Extensions">Les extensions CSS de Mozilla</a></li>
- <li><a href="/fr/docs/Web/CSS/Reference">La référence CSS</a></li>
- <li><a href="/fr/docs/Web/CSS">CSS</a></li>
-</ul>
diff --git a/files/fr/mozilla/gecko/chrome/index.html b/files/fr/mozilla/gecko/chrome/index.html
deleted file mode 100644
index 6f5de4f5ea..0000000000
--- a/files/fr/mozilla/gecko/chrome/index.html
+++ /dev/null
@@ -1,15 +0,0 @@
----
-title: Gecko Chrome
-slug: Mozilla/Gecko/Chrome
-tags:
- - Aperçu
- - Chrome
- - Gecko
- - Mozilla
-translation_of: Mozilla/Gecko/Chrome
----
-<div>{{FirefoxSidebar}}</div>
-
-<div>Cette page contient des informations spécifiques au code de Gecko responsable du "chrome" (les éléments de l'interface utilisateur).</div>
-
-<p>{{SubpagesWithSummaries}}</p>
diff --git a/files/fr/mozilla/gecko/faq/index.html b/files/fr/mozilla/gecko/faq/index.html
deleted file mode 100644
index be9fbe5bd8..0000000000
--- a/files/fr/mozilla/gecko/faq/index.html
+++ /dev/null
@@ -1,201 +0,0 @@
----
-title: Gecko FAQ
-slug: Mozilla/Gecko/FAQ
-translation_of: Gecko/FAQ
----
-<h3 id="What_is_Gecko.3F" name="What_is_Gecko.3F">Qu'est-ce que Gecko?</h3>
-
-<p>Gecko est un moteur open source de rendu web supportant différents standards d'internet comme le <a href="https://developer.mozilla.org/fr/docs/Web/HTML">HTML</a>, le <a href="https://developer.mozilla.org/fr/docs/Web/CSS">CSS</a>, le <a href="https://developer.mozilla.org/fr/docs/Web/API/R%C3%A9f%C3%A9rence_du_DOM_Gecko">DOM</a>, <a href="https://developer.mozilla.org/fr/docs/Glossaire/XML">XML</a>, <a href="https://developer.mozilla.org/fr/docs/Web/JavaScript">javascript</a> et d'autres standards encore.</p>
-
-<p>Gecko est utilisé par de nombreux navigateurs internet, avec bien entendu Mozilla Firefox, mais aussi SeaMonkey, Camino. Gecko est en développement constant par les développeurs de Mozilla. Gecko est le nom final du moteur, il s'appelait aussi "Raptor" et "NGLayout"; mais le nom final du moteur a été choisi suite à un litige.</p>
-
-<p>Pour plus d'informations, visitez <a href="https://fr.wikipedia.org/wiki/Gecko_(moteur_de_rendu)">l'article Gecko (moteur de rendu) sur Wikipedia</a>.</p>
-
-<h3 id="What_is_a_layout_engine.3F" name="What_is_a_layout_engine.3F">Qu'est-ce qu'un moteur de rendu?</h3>
-
-<p>Un <a href="https://en.wikipedia.org/wiki/Layout_engine">moteur de rendu </a>va aller traduire le contenu des fichiers (les fichiers pouvant être une page internet en HTML, XML, des images...) et s'occupe de formater les informations contenus dans les fichiers, généralement le HTML, qui décrivent l'emplacement des textes, des images etc... afin de faire affiché l'information comme le voulait le webmaster. Il dessine la page web dans la zone de rendu de la fenêtre du navigateur.</p>
-
-<p>Ainsi officiellement, un moteur de rendu définie la politique de placement pour un docuement et fait la mise en page. Gecko est un moteur de rendu trés rapide. Il offre la possibilité de parser de nombreux types de docuements (HTML, XML, SVG, etc...). Il est capable de donné un rendu avancé en incluant les compositions et les transformations. Il supporte aussi le javascript et les <a href="/en/Plugins">plugins</a>.</p>
-
-<p>Gecko est si rapide et puissant qu'il peut être utiliser pour créer des interfaces utilisateurs pour certaines applications ("chrome").  En d'autres termes, Gecko ne fait pas seulement que affiché le contenu d'un document, il peut aussi être utiliser pour dessiner des barres de défilement, des menus à l'écran. Pour plus d'information, reportez-vous à la documentation sur <a href="https://developer.mozilla.org/fr/docs/Tutoriel_XUL">XUL</a>.</p>
-
-<h3 id="How_is_a_layout_engine_like_Gecko_different_from_a_Web_browser.3F" name="How_is_a_layout_engine_like_Gecko_different_from_a_Web_browser.3F">How is a layout engine like Gecko different from a Web browser?</h3>
-
-<p>Gecko fournit la base nécessaire pour afficher l'information à l'écran, en incluant un moteur de rendu ainsi qu'un ensemble complémentaire de composants du navigateur. Cependant, Gecko ne supporte pas tous les composants aux côtés d'autres modules d'interface dans une application cohérente (y compris les menus, les barres d'outils, etc...) tel que Firefox.</p>
-
-<p>La fondation Mozilla assemble les composants nécessaires dans ses logiciels, comme Firefox, Thunderbird, SeaMonkey, Camino, qui sont disponibles au téléchargement sur le site mozilla.org. Netscape a publié sa propre version du navigateur sous la marque Netscape Navigator. D'autres compagnies crée aussi leur propre logiciel et matériel qui utilisent Gecko. Voir <a href="https://developer.mozilla.org/fr/docs/Floril%C3%A8ge_des_applications_XULrunner">la page recensant une liste de logiciel </a>dans lequel Gecko est utilisé via XULRunner.</p>
-
-<p>Les éditeurs tiers comme les éditeurs de logiciels et fournisseurs de matériels vont choisir les composants qu'ils souhaitent utiliser dans leurs logiciels ou matériels. Certains composants du navigateur ne sont pas fournis dans les fonctionnalités de Gecko, comme les marque page, l'historique de navigation, les faboris.... Cependant, la source de tous ces composants sont disponibles au téléchargement sur le portail mozilla.org.</p>
-
-<h3 id="Why_was_Gecko_built.3F" name="Why_was_Gecko_built.3F">Why was Gecko built?</h3>
-
-<p>The original Mozilla browser, first released as Navigator 1.0, was developed rapidly by a small team that was passionate about creating the next killer app, and they succeeded. Now that the web has evolved, a new generation layout engine was needed upon which future products could be built. Gecko enables a pioneering new class of dynamic content that is more interactive and offers greater presentation control to Web developers, using open and recommended Internet standards instead of proprietary APIs. You are encouraged to join this team by getting involved.</p>
-
-<h3 id="How_is_mozilla.org_using_Gecko.3F" name="How_is_mozilla.org_using_Gecko.3F">How is mozilla.org using Gecko?</h3>
-
-<p>mozilla.org will assemble the Gecko layout engine and other browser components into the Mozilla browser application.</p>
-
-<h3 id="How_does_Mozilla_use_Gecko.3F" name="How_does_Mozilla_use_Gecko.3F">How does Mozilla use Gecko?</h3>
-
-<p>Gecko lies at the heart of Mozilla and Firefox browsers, as well as others, powering all of the individual components. Gecko technologies will also power the display of the mozilla.com portal site, speedily delivering more exciting content and services. Gecko's architecture will serve Mozilla well into the future, enabling faster time to market, more innovation, less costly development, easier distribution and updating, and better cross platform support.</p>
-
-<h3 id="How_can_other_companies_and_organizations_use_Gecko.3F" name="How_can_other_companies_and_organizations_use_Gecko.3F">How can other companies and organizations use Gecko?</h3>
-
-<p>Because Gecko is small, lightweight, and open source, other companies and organizations can easily reuse it. Many hardware vendors are creating devices with network access and wish to include web browsing functionality. Likewise, many software developers want to include Web browsing capability in their applications, but don't want to independently develop browser software. These developers can pick and choose the browser components they want from among those that Gecko offers, and package these components alongside their own within their finished products.</p>
-
-<h3 id="Which_open_standards_is_the_Gecko_development_project_working_to_support.2C_and_to_what_extent_does_it_support_them.3F" name="Which_open_standards_is_the_Gecko_development_project_working_to_support.2C_and_to_what_extent_does_it_support_them.3F">Which open standards is the Gecko development project working to support, and to what extent does it support them?</h3>
-
-<p>By the end of calendar year 2000, Gecko is expected to support the following recommended open Internet standards fully except for the areas noted below and open bugs documented in <a class="link-https" href="https://bugzilla.mozilla.org/">Bugzilla</a>:</p>
-
-<ul>
- <li>HTML 4.0 - full support except for:
- <ul>
- <li>elements: BDO, BASEFONT</li>
- <li>attributes: shape attribute on the A element, abbr, axis, headers, scope-row, scope-col, scope-rowgroup, scope-colgroup, charoff, datasrc, datafld, dataformat, datapagesize, summary, event, dir, align on table columns, label attribute of OPTION, alternate text of AREA elements, longdesc</li>
- <li>various metadata attributes: cite, datetime, lang, hreflang</li>
- <li>bidirectional text layout, which is only used in Hebrew and Arabic (IBM has begun work to add bidi support in a future release)</li>
- </ul>
- </li>
- <li>Style Sheets
- <ul>
- <li>CSS 1 - full support, except for:
- <ul>
- <li>the application of styles to HTML column elements</li>
- <li>the ability to turn off author styles</li>
- <li>the names of certain Mozilla extension pseudo-classes lack the moz- prefix</li>
- </ul>
- </li>
- <li>CSS 2 - partial support is expected and has already been built into Gecko, including support for CSS2 positioning, but no commitment has been made to achieve a specific level of support</li>
- </ul>
- </li>
- <li>DOM
- <ul>
- <li>Level 0</li>
- <li>Level 1 Core: full support
- <ul>
- <li>making EntityReferences available through DOM1; per a provision of the DOM1 spec for XML implementations, Entities will be automatically expanded inline and therefore not available through DOM1; our implementation extrapolates this provision to apply to EntityReferences as well</li>
- <li>For more information, see the <a href="/en/DOM" title="en/DOM">DOM in Mozilla</a></li>
- </ul>
- </li>
- <li>Level 1 HTML</li>
- <li>DOM 2 - Most of it has already been implemented in Gecko, including support for DOM 2 events, the DOM 2 Style, and the DOM2 Core. DOM 3 support is also planned for a future release.</li>
- </ul>
- </li>
- <li>XML 1.0: full support, except for processing to manipulate default attributes</li>
- <li>RDF: full support, except for aboutEach, aboutEachPrefix, and parseType</li>
- <li>JavaScript 1.5, including ECMA-262 Edition 3 (ECMAscript) compliance, except for Date.toDateString and Date.toTimeString, which are not implemented</li>
- <li>Transfer protocols: HTTP 1.1 (including gzip compression), FTP</li>
- <li>SSL</li>
- <li>Unicode</li>
- <li>OJI (Open Java Interface)</li>
- <li>Image formats
- <ul>
- <li>PNG</li>
- <li>GIF</li>
- <li>JPEG, PJPEG</li>
- </ul>
- </li>
-</ul>
-
-<h3 id="Does_.22full_support.22_mean_that_Gecko_has_zero_bugs_today_or_will_have_zero_bugs_at_some_point_in_the_future.3F" name="Does_.22full_support.22_mean_that_Gecko_has_zero_bugs_today_or_will_have_zero_bugs_at_some_point_in_the_future.3F">Does "full support" mean that Gecko has zero bugs today or will have zero bugs at some point in the future?</h3>
-
-<p>Of course not. As Robert O'Callahan notes in {{ Bug(25707) }}, "Full HTML4/CSS1 compliance can't mean '100% bug free'. If it does, no-one will ever ship a fully compliant browser."</p>
-
-<p>Because web pages can be arbitrarily long and complex and have arbitrarily deeply nested markup, it will always be possible to construct web pages that do not display in a given browser the way the specifications would recommend. So long as QA testing and test case development continues, there will always be known bugs at any given point in time in the open-source Gecko codebase, and it follows that every commercial product that has ever shipped and ever will ship based on Gecko will have known bugs at the time of its release. (The same principle of course applies to other browser engine development projects and products based upon them as well.)</p>
-
-<p>Known bugs in the open-source Gecko codebase are documented in <a class="link-https" href="https://bugzilla.mozilla.org/">Bugzilla</a>. Here are some links to lists of reported bugs related to the standards mentioned above; be aware that these raw lists of open in-process bugs will inevitably include some duplicate, out of date, unreproducible, invalid, and incorrectly tagged reports:</p>
-
-<div class="note">The links themselves are probably outdated too.</div>
-
-<ul>
- <li><a class="link-https" href="https://bugzilla.mozilla.org/buglist.cgi?bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;email1=&amp;emailtype1=substring&amp;emailassigned_to1=1&amp;email2=&amp;emailtype2=substring&amp;emailreporter2=1&amp;bugidtype=include&amp;bug_id=&amp;changedin=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;component=Layout&amp;short_desc=&amp;short_desc_type=substring&amp;long_desc=&amp;long_desc_type=substring&amp;bug_file_loc=&amp;bug_file_loc_type=substring&amp;status_whiteboard=&amp;status_whiteboard_type=substring&amp;keywords=&amp;keywords_type=anywords&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=&amp;cmdtype=doit&amp;newqueryname=&amp;order=Reuse+same+sort+as+last+time">Layout</a> component tracks content layout bugs that may be related to a variety of specifications</li>
- <li>HTML 4.0
- <ul>
- <li><a class="link-https" href="https://bugzilla.mozilla.org/buglist.cgi?bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;email1=&amp;emailtype1=substring&amp;emailassigned_to1=1&amp;email2=&amp;emailtype2=substring&amp;emailreporter2=1&amp;bugidtype=include&amp;bug_id=&amp;changedin=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;component=Form+Submission&amp;component=HTML+Element&amp;component=HTML+Form+Controls&amp;component=HTMLFrames&amp;component=HTMLTables&amp;short_desc=&amp;short_desc_type=substring&amp;long_desc=&amp;long_desc_type=substring&amp;bug_file_loc=&amp;bug_file_loc_type=substring&amp;status_whiteboard=&amp;status_whiteboard_type=substring&amp;keywords=&amp;keywords_type=anywords&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=&amp;cmdtype=doit&amp;newqueryname=&amp;order=Reuse+same+sort+as+last+time">Elements, Form Controls, Frames, Tables, and Form Submission</a></li>
- <li>bug reports marked with the <a class="link-https" href="https://bugzilla.mozilla.org/buglist.cgi?bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;email1=&amp;emailtype1=substring&amp;emailassigned_to1=1&amp;email2=&amp;emailtype2=substring&amp;emailreporter2=1&amp;bugidtype=include&amp;bug_id=&amp;changedin=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;short_desc=&amp;short_desc_type=substring&amp;long_desc=&amp;long_desc_type=substring&amp;bug_file_loc=&amp;bug_file_loc_type=substring&amp;status_whiteboard=&amp;status_whiteboard_type=substring&amp;keywords=html4&amp;keywords_type=anywords&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=&amp;cmdtype=doit&amp;newqueryname=&amp;order=Reuse+same+sort+as+last+time">html4 keyword</a></li>
- <li>"meta bug" for tracking outstanding issues with <a class="link-https" href="https://bugzilla.mozilla.org/show_bug.cgi?id=7954">HTML 4.01 compliance</a></li>
- </ul>
- </li>
- <li>CSS: <a class="link-https" href="https://bugzilla.mozilla.org/buglist.cgi?bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;email1=&amp;emailtype1=substring&amp;emailassigned_to1=1&amp;email2=&amp;emailtype2=substring&amp;emailreporter2=1&amp;bugidtype=include&amp;bug_id=&amp;changedin=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;component=Style+System&amp;short_desc=&amp;short_desc_type=substring&amp;long_desc=&amp;long_desc_type=substring&amp;bug_file_loc=&amp;bug_file_loc_type=substring&amp;status_whiteboard=&amp;status_whiteboard_type=substring&amp;keywords=&amp;keywords_type=anywords&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=&amp;cmdtype=doit&amp;newqueryname=&amp;order=Reuse+same+sort+as+last+time">Style System</a> component (see also bug reports marked with the <a class="link-https" href="https://bugzilla.mozilla.org/buglist.cgi?bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;email1=&amp;emailtype1=substring&amp;emailassigned_to1=1&amp;email2=&amp;emailtype2=substring&amp;emailreporter2=1&amp;bugidtype=include&amp;bug_id=&amp;changedin=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;component=Style+System&amp;short_desc=&amp;short_desc_type=substring&amp;long_desc=&amp;long_desc_type=substring&amp;bug_file_loc=&amp;bug_file_loc_type=substring&amp;status_whiteboard=&amp;status_whiteboard_type=substring&amp;keywords=css1&amp;keywords_type=anywords&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=&amp;cmdtype=doit&amp;newqueryname=&amp;order=Reuse+same+sort+as+last+time">css1</a>, <a class="link-https" href="https://bugzilla.mozilla.org/buglist.cgi?bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;email1=&amp;emailtype1=substring&amp;emailassigned_to1=1&amp;email2=&amp;emailtype2=substring&amp;emailreporter2=1&amp;bugidtype=include&amp;bug_id=&amp;changedin=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;component=Style+System&amp;short_desc=&amp;short_desc_type=substring&amp;long_desc=&amp;long_desc_type=substring&amp;bug_file_loc=&amp;bug_file_loc_type=substring&amp;status_whiteboard=&amp;status_whiteboard_type=substring&amp;keywords=css2&amp;keywords_type=anywords&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=&amp;cmdtype=doit&amp;newqueryname=&amp;order=Reuse+same+sort+as+last+time">css2</a>, and <a class="link-https" href="https://bugzilla.mozilla.org/buglist.cgi?bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;email1=&amp;emailtype1=substring&amp;emailassigned_to1=1&amp;email2=&amp;emailtype2=substring&amp;emailreporter2=1&amp;bugidtype=include&amp;bug_id=&amp;changedin=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;component=Style+System&amp;short_desc=&amp;short_desc_type=substring&amp;long_desc=&amp;long_desc_type=substring&amp;bug_file_loc=&amp;bug_file_loc_type=substring&amp;status_whiteboard=&amp;status_whiteboard_type=substring&amp;keywords=css3&amp;keywords_type=anywords&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=&amp;cmdtype=doit&amp;newqueryname=&amp;order=Reuse+same+sort+as+last+time">css3</a> keywords)</li>
- <li>DOM: see <a class="link-https" href="https://bugzilla.mozilla.org/buglist.cgi?bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;email1=&amp;emailtype1=substring&amp;emailassigned_to1=1&amp;email2=&amp;emailtype2=substring&amp;emailreporter2=1&amp;bugidtype=include&amp;bug_id=&amp;changedin=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;component=DOM+Level+0&amp;short_desc=&amp;short_desc_type=substring&amp;long_desc=&amp;long_desc_type=substring&amp;bug_file_loc=&amp;bug_file_loc_type=substring&amp;status_whiteboard=&amp;status_whiteboard_type=substring&amp;keywords=&amp;keywords_type=anywords&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=&amp;cmdtype=doit&amp;newqueryname=&amp;order=Reuse+same+sort+as+last+time">DOM0</a>, <a class="link-https" href="https://bugzilla.mozilla.org/buglist.cgi?bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;email1=&amp;emailtype1=substring&amp;emailassigned_to1=1&amp;email2=&amp;emailtype2=substring&amp;emailreporter2=1&amp;bugidtype=include&amp;bug_id=&amp;changedin=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;component=DOM+Level+1&amp;short_desc=&amp;short_desc_type=substring&amp;long_desc=&amp;long_desc_type=substring&amp;bug_file_loc=&amp;bug_file_loc_type=substring&amp;status_whiteboard=&amp;status_whiteboard_type=substring&amp;keywords=&amp;keywords_type=anywords&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=&amp;cmdtype=doit&amp;newqueryname=&amp;order=Reuse+same+sort+as+last+time">DOM1</a>, <a class="link-https" href="https://bugzilla.mozilla.org/buglist.cgi?bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;email1=&amp;emailtype1=substring&amp;emailassigned_to1=1&amp;email2=&amp;emailtype2=substring&amp;emailreporter2=1&amp;bugidtype=include&amp;bug_id=&amp;changedin=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;component=DOM+Level+2&amp;short_desc=&amp;short_desc_type=substring&amp;long_desc=&amp;long_desc_type=substring&amp;bug_file_loc=&amp;bug_file_loc_type=substring&amp;status_whiteboard=&amp;status_whiteboard_type=substring&amp;keywords=&amp;keywords_type=anywords&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=&amp;cmdtype=doit&amp;newqueryname=&amp;order=Reuse+same+sort+as+last+time">DOM2</a> and <a class="link-https" href="https://bugzilla.mozilla.org/buglist.cgi?bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;email1=&amp;emailtype1=substring&amp;emailassigned_to1=1&amp;email2=&amp;emailtype2=substring&amp;emailreporter2=1&amp;bugidtype=include&amp;bug_id=&amp;changedin=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;component=Event+Handling&amp;short_desc=&amp;short_desc_type=substring&amp;long_desc=&amp;long_desc_type=substring&amp;bug_file_loc=&amp;bug_file_loc_type=substring&amp;status_whiteboard=&amp;status_whiteboard_type=substring&amp;keywords=&amp;keywords_type=anywords&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=&amp;cmdtype=doit&amp;newqueryname=&amp;order=Reuse+same+sort+as+last+time">Event Handling</a> components</li>
- <li><a class="link-https" href="https://bugzilla.mozilla.org/buglist.cgi?bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;email1=&amp;emailtype1=substring&amp;emailassigned_to1=1&amp;email2=&amp;emailtype2=substring&amp;emailreporter2=1&amp;bugidtype=include&amp;bug_id=&amp;changedin=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;component=XML&amp;short_desc=&amp;short_desc_type=substring&amp;long_desc=&amp;long_desc_type=substring&amp;bug_file_loc=&amp;bug_file_loc_type=substring&amp;status_whiteboard=&amp;status_whiteboard_type=substring&amp;keywords=&amp;keywords_type=anywords&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=&amp;cmdtype=doit&amp;newqueryname=&amp;order=Reuse+same+sort+as+last+time">XML</a></li>
- <li><a class="link-https" href="https://bugzilla.mozilla.org/buglist.cgi?bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;email1=&amp;emailtype1=substring&amp;emailassigned_to1=1&amp;email2=&amp;emailtype2=substring&amp;emailreporter2=1&amp;bugidtype=include&amp;bug_id=&amp;changedin=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;component=RDF&amp;short_desc=&amp;short_desc_type=substring&amp;long_desc=&amp;long_desc_type=substring&amp;bug_file_loc=&amp;bug_file_loc_type=substring&amp;status_whiteboard=&amp;status_whiteboard_type=substring&amp;keywords=&amp;keywords_type=anywords&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=&amp;cmdtype=doit&amp;newqueryname=&amp;order=Reuse+same+sort+as+last+time">RDF</a></li>
- <li>core JavaScript language interpreter (<a class="link-https" href="https://bugzilla.mozilla.org/buglist.cgi?bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;email1=&amp;emailtype1=substring&amp;emailassigned_to1=1&amp;email2=&amp;emailtype2=substring&amp;emailreporter2=1&amp;bugidtype=include&amp;bug_id=&amp;changedin=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;component=Javascript+Engine&amp;short_desc=&amp;short_desc_type=substring&amp;long_desc=&amp;long_desc_type=substring&amp;bug_file_loc=&amp;bug_file_loc_type=substring&amp;status_whiteboard=&amp;status_whiteboard_type=substring&amp;keywords=&amp;keywords_type=anywords&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=&amp;cmdtype=doit&amp;newqueryname=&amp;order=Reuse+same+sort+as+last+time">JavaScript engine</a>)</li>
- <li>HTTP 1.1 compliance bugs should generally be found on the <a class="link-https" href="https://bugzilla.mozilla.org/buglist.cgi?bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;email1=&amp;emailtype1=substring&amp;emailassigned_to1=1&amp;email2=&amp;emailtype2=substring&amp;emailreporter2=1&amp;bugidtype=include&amp;bug_id=&amp;changedin=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;component=Necko&amp;short_desc=&amp;short_desc_type=substring&amp;long_desc=&amp;long_desc_type=substring&amp;bug_file_loc=&amp;bug_file_loc_type=substring&amp;status_whiteboard=&amp;status_whiteboard_type=substring&amp;keywords=&amp;keywords_type=anywords&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=&amp;cmdtype=doit&amp;newqueryname=&amp;order=Reuse+same+sort+as+last+time">Networking, Networking - General, and Networking: Cache</a> components</li>
- <li><a class="link-https" href="https://bugzilla.mozilla.org/buglist.cgi?bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;email1=&amp;emailtype1=substring&amp;emailassigned_to1=1&amp;email2=&amp;emailtype2=substring&amp;emailreporter2=1&amp;bugidtype=include&amp;bug_id=&amp;changedin=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;component=OJI&amp;short_desc=&amp;short_desc_type=substring&amp;long_desc=&amp;long_desc_type=substring&amp;bug_file_loc=&amp;bug_file_loc_type=substring&amp;status_whiteboard=&amp;status_whiteboard_type=substring&amp;keywords=&amp;keywords_type=anywords&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=&amp;cmdtype=doit&amp;newqueryname=&amp;order=Reuse+same+sort+as+last+time">OJI</a></li>
- <li><a class="link-https" href="https://bugzilla.mozilla.org/buglist.cgi?bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;email1=&amp;emailtype1=substring&amp;emailassigned_to1=1&amp;email2=&amp;emailtype2=substring&amp;emailreporter2=1&amp;bugidtype=include&amp;bug_id=&amp;changedin=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;component=ImageLib&amp;short_desc=&amp;short_desc_type=substring&amp;long_desc=&amp;long_desc_type=substring&amp;bug_file_loc=&amp;bug_file_loc_type=substring&amp;status_whiteboard=&amp;status_whiteboard_type=substring&amp;keywords=&amp;keywords_type=anywords&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=&amp;cmdtype=doit&amp;newqueryname=&amp;order=Reuse+same+sort+as+last+time">Imagelib</a> image library (see also <a class="link-https" href="https://bugzilla.mozilla.org/buglist.cgi?bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;email1=&amp;emailtype1=substring&amp;emailassigned_to1=1&amp;email2=&amp;emailtype2=substring&amp;emailreporter2=1&amp;bugidtype=include&amp;bug_id=&amp;changedin=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;component=JPEG+Image+Handling&amp;short_desc=&amp;short_desc_type=substring&amp;long_desc=&amp;long_desc_type=substring&amp;bug_file_loc=&amp;bug_file_loc_type=substring&amp;status_whiteboard=&amp;status_whiteboard_type=substring&amp;keywords=&amp;keywords_type=anywords&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=&amp;cmdtype=doit&amp;newqueryname=&amp;order=Reuse+same+sort+as+last+time">JPEG Image Handling</a> and <a class="link-https" href="https://bugzilla.mozilla.org/buglist.cgi?bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;email1=&amp;emailtype1=substring&amp;emailassigned_to1=1&amp;email2=&amp;emailtype2=substring&amp;emailreporter2=1&amp;bugidtype=include&amp;bug_id=&amp;changedin=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;component=PNG+Image+Handling&amp;short_desc=&amp;short_desc_type=substring&amp;long_desc=&amp;long_desc_type=substring&amp;bug_file_loc=&amp;bug_file_loc_type=substring&amp;status_whiteboard=&amp;status_whiteboard_type=substring&amp;keywords=&amp;keywords_type=anywords&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=&amp;cmdtype=doit&amp;newqueryname=&amp;order=Reuse+same+sort+as+last+time">PNG Image Handling</a>)</li>
- <li>SSL-related bugs are filed on the <a class="link-https" href="https://bugzilla.mozilla.org/buglist.cgi?bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;email1=&amp;emailtype1=substring&amp;emailassigned_to1=1&amp;email2=&amp;emailtype2=substring&amp;emailreporter2=1&amp;bugidtype=include&amp;bug_id=&amp;changedin=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;component=Security%3A+Crypto&amp;short_desc=&amp;short_desc_type=substring&amp;long_desc=&amp;long_desc_type=substring&amp;bug_file_loc=&amp;bug_file_loc_type=substring&amp;status_whiteboard=&amp;status_whiteboard_type=substring&amp;keywords=&amp;keywords_type=anywords&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=&amp;cmdtype=doit&amp;newqueryname=&amp;order=Reuse+same+sort+as+last+time">Crypto</a> component</li>
-</ul>
-
-<p>For information about the known bugs of a specific commercial product based on Gecko, see that product's release notes.</p>
-
-<h3 id="How_does_Gecko_format_XML_documents.3F" name="How_does_Gecko_format_XML_documents.3F">How does Gecko format XML documents?</h3>
-
-<p>Gecko supports the use of CSS and <a href="/en/XSLT" title="en/XSLT">XSLT</a> to format XML documents.</p>
-
-<p>For XML documents without associated CSS or XSLT, Gecko displays the pretty-printed source of the document.</p>
-
-<h3 id="How_does_Gecko_help_content_developers.3F" name="How_does_Gecko_help_content_developers.3F">How does Gecko help content developers?</h3>
-
-<p>Content developers are sick and tired of developing and testing every single web page multiple times in order to support the different, incompatible, proprietary DOMs of browsers from different vendors. They have been demanding that all vendors fully support the open standards listed above so that they can</p>
-
-<ol>
- <li>have a rich, powerful formatting system and object model at their disposal, and</li>
- <li>"write once, view anywhere."</li>
-</ol>
-
-<p>Gecko's robust support for these standards makes Gecko the platform of choice for web content and web application developers worldwide.</p>
-
-<h3 id="Are_Gecko.27s_APIs_based_on_ActiveX.3F_COM.3F_JavaBeans.3F" name="Are_Gecko.27s_APIs_based_on_ActiveX.3F_COM.3F_JavaBeans.3F">Are Gecko's APIs based on ActiveX? COM? JavaBeans?</h3>
-
-<p>Gecko is reusable on all platforms thanks to <a href="/en/XPCOM" title="en/XPCOM">XPCOM</a>, a subset of COM that works across platforms. COM, developed by Digital and later adopted by Microsoft, is the de facto standard for modular interfaces on Windows platforms.</p>
-
-<p>Additionally, on the Windows platform, Gecko's XPCOM interfaces are wrapped in an ActiveX control that VB developers can utilize (ActiveX wrappers are not available on other platforms because ActiveX is a Windows-only technology).</p>
-
-<p>A JavaBean wrapper is not currently under development, but there is nothing in Gecko's architecture that precludes such development in the future. Source code and documentation for these interfaces are available through mozilla.org.</p>
-
-<p>For future embedding API plans, see {{ interwiki('wikimo', 'Mozilla_2:Embedding_APIs', 'wikimo:Mozilla 2:Embedding APIs') }}.</p>
-
-<h3 id="Are_Gecko.27s_APIs_compatible_with_Microsoft.27s_Trident_APIs.3F" name="Are_Gecko.27s_APIs_compatible_with_Microsoft.27s_Trident_APIs.3F">Are Gecko's APIs compatible with Microsoft's Trident APIs?</h3>
-
-<p>Gecko's XPCOM interfaces are different than Microsoft's. The most important differences between the two models involve reflection of the Document Object Model (DOM) in the interfaces.</p>
-
-<p>Microsoft's Trident interfaces reflect the DOM in a proprietary API, whereas Gecko exposes the DOM according to the W3C's recommended standard. Other incompatibilities exist. Adam Lock created a partial compatibility layer that may enable developers to more easily migrate from Microsoft's engine to the Gecko engine.</p>
-
-<h3 id="Which_platforms_does_Gecko_run_on.3F" name="Which_platforms_does_Gecko_run_on.3F">Which platforms does Gecko run on?</h3>
-
-<p>Gecko runs today on Win32 (Windows XP Service Pack 2, Windows Vista, Windows 7, Windows 8, Windows 8.1), Mac OS X 10.5 and later, and Linux. OEMs and contributors from the Net participating in mozilla.org are porting Gecko to other platforms. Such porting efforts are underway for Solaris, HP/UX, AIX, Irix, OS/2, OpenVMS, BeOS, and Amiga, among others.</p>
-
-<p>Older versions of Gecko supported earlier versions of Win32 and Mac OS X.</p>
-
-<h3 id="What_are_the_components_of_Gecko.3F" name="What_are_the_components_of_Gecko.3F">What are the components of Gecko?</h3>
-
-<p>Gecko includes the following components:</p>
-
-<ul>
- <li>Document parser (handles HTML and XML)</li>
- <li>Layout engine with content model</li>
- <li>Style system (handles CSS, etc.)</li>
- <li>JavaScript runtime (<a href="/en/SpiderMonkey" title="en/SpiderMonkey">SpiderMonkey</a>)</li>
- <li>Image library</li>
- <li>Networking library (<a href="/en/Necko" title="en/Necko">Necko</a>)</li>
- <li>Platform-specific graphics rendering and widget sets for Win32, X, and Mac</li>
- <li>User preferences library</li>
- <li>Mozilla Plug-in API (<a href="/en/Plugins" title="en/Plugins">NPAPI</a>) to support the Navigator plug-in interface</li>
- <li>Open Java Interface (OJI), with Sun Java 1.2 JVM</li>
- <li><a href="/en/RDF" title="en/RDF">RDF</a> back end</li>
- <li>Font library</li>
- <li>Security library (<a href="/en/NSS" title="en/NSS">NSS</a>)</li>
-</ul>
-
-<div class="originaldocinfo">
-<h2 id="Original_Document_Information" name="Original_Document_Information">Original Document Information</h2>
-
-<ul>
- <li>Author(s): Angus</li>
- <li>Other Contributors: Ekrock, Vidur, Hidday, Drunclear</li>
- <li>Copyright Information: Portions of this content are © 1998–2006 by individual mozilla.org contributors; content available under a Creative Commons license</li>
-</ul>
-</div>
-
-<p>{{ languages( { "ja": "ja/Gecko_FAQ", "zh-cn": "cn/Gecko_FAQ" } ) }}</p>
diff --git a/files/fr/mozilla/gecko/gecko_embedding_basics/index.html b/files/fr/mozilla/gecko/gecko_embedding_basics/index.html
deleted file mode 100644
index 2a116f5d88..0000000000
--- a/files/fr/mozilla/gecko/gecko_embedding_basics/index.html
+++ /dev/null
@@ -1,403 +0,0 @@
----
-title: Les bases de Gecko embarqués
-slug: Mozilla/Gecko/Gecko_Embedding_Basics
-translation_of: Mozilla/Gecko/Gecko_Embedding_Basics
----
-<p>{{ Outdated("It was last updated a very long time ago.") }}</p>
-
-<div class="almost_half_cell" id="gt-res-content">
-<div dir="ltr" style="zoom: 1;"><span id="result_box" lang="fr"><span class="atn hps">Compte tenu de l'</span><span>importance croissante</span> <span class="hps">du Web</span> <span class="atn hps">comme source d'</span><span>information, de divertissement</span><span>,</span> <span class="alt-edited hps">et la connectivité</span> <span class="alt-edited hps">individuelle</span><span>,</span> <span class="hps">la possibilité d'accéder</span> <span class="hps">et</span> <span class="hps">d'afficher des données</span> <span class="alt-edited hps">enregistrées</span> <span class="hps">au format</span> <span class="hps">HTML</span> <span class="hps">devient de plus en</span> <span class="hps">plus</span> <span class="hps">important pour</span> <span class="hps">une grande variété</span> <span class="hps">d'applications logicielles par</span> <span class="hps">ailleurs très</span> <span class="hps">diverses</span><span>.</span> <span class="hps">Que ce soit</span> pour un simple visualiseur HTML <span class="hps">ou</span> pour<span class="hps"> créer un navigateur</span> <span class="hps">web</span> <span class="hps">à part entière</span><span>,</span> <span class="hps">la capacité</span> <span class="hps">d'analyser et d'afficher des documents</span> <span class="hps">de type HTML</span> <span class="hps">est une fonction</span> <span class="hps">de plus en plus</span> <span class="hps">importante</span> <span class="hps">dans</span> <span class="hps">de nombreuses</span> <span class="hps">situations</span><span>.</span> <span class="hps">Pour le</span> <span class="alt-edited hps">développeur d'applications</span><span>,</span> <span class="hps">le problème</span> <span class="hps">est de savoir comment</span> <span class="hps">mettre en œuvre</span> <span class="hps">cette fonctionnalité</span> <span class="hps">cruciale</span> <span class="hps">d'une manière qui</span> <span class="hps">minimise</span> <span class="hps">encore</span> <span class="hps">le temps de développement</span> qui <span class="hps">va permettre de créer</span> <span class="hps">un produit</span> <span class="hps">agile et robuste</span><span>.</span> <span class="alt-edited hps">Intégrer</span> <span class="alt-edited hps">Gecko</span><span>,</span> <span class="hps">le moteur de rendu</span> <span class="hps">au cœur</span> <span class="hps">des navigateurs</span> <span class="hps">Netscape et Mozilla</span><span>,</span> <span class="hps">est</span> <span class="hps">une solution </span></span>pour ce problème.</div>
-
-<div dir="ltr" style="zoom: 1;"> </div>
-</div>
-
-<h2 id="Why_Gecko" name="Why_Gecko">Pourquoi Gecko</h2>
-
-<p>Intégrer Gecko est un choix pertinent. Il est rapide, robuste, et respecte les standards du web. Chez Mozilla et Netscape, il a été largement diffusé et abondamment testé.</p>
-
-<p><span style="line-height: 1.5;">Il est Open-Source. Contrairement à d'autres choix d'int</span>égration<span style="line-height: 1.5;">, tout le code source de Gecko est librement disponible et personnalisable. Vous pouvez le bricoler </span><span style="line-height: 1.5;">autant que vous le voulez sans limite. Pourtant, selon la licence choisie, il est possible d'utiliser Gecko comme un composant dans un produit commercial et propriétaire.</span></p>
-
-<p>Comme Gecko est associé avec le projet Mozilla, il y a beaucoup de ressources disponibles pour aider à son intégration. <a href="http://www.mozilla.org/">Le site officiel de Mozilla</a> a un espace dédié aux <a href="http://mozilla.org/projects/embedding/">projets d'intégration.</a> <span id="result_box" lang="fr"><span class="hps">Il y a un</span> <span class="hps">groupe de discussion,</span> <span class="hps">mozilla.dev.embedding</span><span>,</span> <span class="hps">qui met l'accent sur</span> <span class="hps">l'échange d'informations</span> <span class="hps">entre les</span> <span class="hps">intégrateurs</span><span>,</span> <span class="hps">ainsi qu'à un</span> <span class="hps">certain nombre d'autres</span> <span class="hps">groupes de discussion</span> <span class="hps">connexes</span></span>. On peut accéder à un index croisé complet de la<span id="result_box" lang="fr"><a href="http://lxr.mozilla.org/seamonkey"> <span class="hps">base de code</span></a> et il est simple d'ajouter du code, de suivre ses progrès ou d'aider à corriger des bogues via la<span class="hps"> <a href="http://bugzilla.mozilla.org/">base de données</a></span><a href="http://bugzilla.mozilla.org/"> <span class="hps">de bugs</span> <span class="hps">Bugzilla</span><span>.</span></a></span></p>
-
-<p>De plus, Gecko a été architecturé dès le commencement pour être multi-plateforme. La version de mozilla.org, tourne aussi bien sur  Wintel, Mac OS 9.0, OS X et Linux et il existe des portages faits par des tiers sur nombre d'autres plateformes.</p>
-
-<p>Enfin, la license Gecko is gratuite, même si l'application finale est un produit commercial propriétaire. La plupart du temps, toute modification apportée au code originellement fourni par Mozilla (mais pas le code dans lequel il est intégré) doit revenir à la communauté, ce même code originel doit être rendu disponible aux utilisateurs de l'application (souvent via un lien sur le site web de mozilla.org), et l'application doit indiquer de manière évidente (Par exemple un logo sur la boîte ou sur la page APropos) que le produit intègre Gecko. La description exacte des licenses possibles est visible sur <a class="external" href="http://www.mozilla.org/MPL/">Mozilla &amp; Netscape Public Licenses</a>, qui est la seule source légale des information de license.</p>
-
-<h2 id="What_You_Need_to_Embed" name="What_You_Need_to_Embed">Ce dont vous avez besoin pour embarquer</h2>
-
-<p>Une fois que vous avez décidé d'intégrer, il y a trois étapes à suivre. Premierement, vous devez vous procurer le code. Ensuite, vous devez comprendre les quelques technologies spécifiques qui sont utilisées pour manipuler le code de base de Gecko. Enfin, vous devez décider quelles fonctionalités vous pouriez ajouter. Cette section vous guidera dans ces étapes.</p>
-
-<h3 id="Getting_the_Code" name="Getting_the_Code">Vous procurer le code</h3>
-
-<p>Actuellement, le meilleur moyen d'obtenir les fichiers dont vous avez besoin pour intégrer Gecko consiste à télécharcher et compiler les source de Mozilla dans leur totalité. C'est en fait un processu assez simple. Les liens vers les instructions completes sont disponibles dans la section Télécharger le Code source de Mozilla. Une seconde méthode, composant par composant, est en cours de développement, mais est encore au niveau béta. Vous pouvez trouver des informations sur ce projet dans la section Compilation. De plus, nous développons un Environnement d'exécution Gecko (Gecko Runtime Environment ou GRE), de maniere à supporter plusieurs outils batis sur des composants Mozilla tout en n'utilisant qu'un seul ensemble de bibliotheque. (Si vous avez l'intention de travailler composant par composant, soyez particulierement attentifs aux probleme de versions et de compatibilité des binaires. Pour vous aidez sur ce point, regardez la section Réutilisation des composants XPCOM.)</p>
-
-<p>Déjà, vous devz vous procurer quelques outils (en bref, un compilateur, une distribution Perl, et quelaues utilitaires génériques). Ensuite, vous devez les installer sur votre ordinateur. Apres quoi, vous devez télécharger la source. En supposant que vous allez télécharger l'ensemble de l'arborescence, il y a deux manieres de procéder: vous pouvez télécharger en FTP une archive contenant l'ensemble de l'arborescence (c'est la maniere la plus simple, et la plus sure de compiler, mais elle peut contenir une version dépourvue des modifications les plus récentes) ou vous pouvez utiliser CVS pour etre certain que vous téléchargezla version la plus récente. Une fois que vous avez l'arborescence et les outils, et que votre environement est corectement installé, il ne vous reste qu'à exécuter le makefile. Vous pouvew trouver des instructions détaillées pour chacune des plateformes supportées. </p>
-
-<p>Une fois la source compilée, rendez-vous dans le dossier mozilla/embedding/config. Vous y trouverez des fichiers de démonstration (chacun d'entre eux porte un nom commencant par "basebrowser") intégrables sur chacune des plateformes. Ce sont uniquement des exemples, peut-etre inadaptés à votre besoin particulier, mais ce sont un bon moyen de débuter. Il y a aussi des exemples de projets d'intégration pour chacune des plateforme que vous pouvez utiliser en tant que modele. Voir Intégration : Exemples de Mozilla et projets externes. </p>
-
-<h3 id="Understanding_the_Coding_Environment" name="Understanding_the_Coding_Environment">Understanding the Coding Environment</h3>
-
-<p>Mozilla was set up from the beginning to support design and development across multiple platforms and programming languages. To this end, a number of in-house programming technologies were developed, all based around an ideal of object encapsulation. Embedding Gecko necessarily implies acquiring a working knowledge of these technologies, including XPCOM, XPIDL, XPConnect, special string classes, and, optionally, XUL. The following provides a brief introduction to them. More information can be found at the mozilla.org site.</p>
-
-<h4 id="XPCOM" name="XPCOM">XPCOM</h4>
-
-<p>The most important of the Mozilla technologies is <a href="/en/XPCOM" title="en/XPCOM">XPCOM</a>, the Cross-Platform Component Object Model. XPCOM provides a framework which manages the creation, ownership, and deletion of objects and other data throughout Mozilla. If you have used MSCOM, you will recognize certain basic similarities. But there are also significant differences -- XPCOM is cross-platform and designed to run largely in a single thread -- and the two are not at this time compatible.</p>
-
-<h5 id="The_interface" name="The_interface">The interface</h5>
-
-<p>At the core of XPCOM is the concept of the interface. An interface is simply a description of a set of methods, attributes, and related constants all associated with a particular functionality: it is completely distinct from the class that implements those things. The interface serves as a kind of contract: any object that supports a particular interface guarantees that it will perform the services described in it. To keep the interface as language neutral as possible, it is written in a special language, the Interface Definition Language, or IDL. Interface files are often referred to as .idl files. In addition to specifying the functionality of the interface, these files also carry the interface's IID, its globally unique identifying number.</p>
-
-<p>Much of the communication within Gecko takes place in terms of these abstract structures (by convention, their names follow the form <code>nsISomething</code>).</p>
-
-<pre>//this
-void ProcessSample(nsISample* aSample) {
- aSample-&gt;Poke("Hello");
-//not this
-void ProcessSample(nsSampleImpl* aSample) {
- aSample-&gt;Poke("hello");
-</pre>
-
-<h5 id=".40status_FROZEN" name=".40status_FROZEN">@status FROZEN</h5>
-
-<p>XPCOM's level of abstraction produces great flexibility in the system. Implementations are free to change as needed. But, to work, the interfaces themselves must remain fixed. Throughout Mozilla's initial design and development period, interfaces have been somewhat fluid, but as the project has matured, more and more of the interfaces have been marked FROZEN. Any interface so marked is guaranteed not to change in the future.</p>
-
-<p>Most of the main interfaces key to the embedding effort are now frozen, but it's always a good idea to check before using any interface. An interface's status is listed in the .idl file's comments. A frozen interface is marked <code>@status FROZEN</code>. You can <a class="external" href="http://lxr.mozilla.org/seamonkey/search?string=%40status+FROZEN">search for frozen interfaces</a> by using the Mozilla cross referencing tool. Until it is frozen, an interface may change at any time. For more information on the freezing process, see the <a class="external" href="http://mozilla.org/projects/embedding/">embedding project page</a>.</p>
-
-<p>Once an interface has been frozen, it is added to the <a class="external" href="http://mozilla.org/projects/embedding/embedapiref/embedapi.html">Gecko Embedding API Reference</a>.</p>
-
-<h5 id="nsISupports" name="nsISupports">nsISupports</h5>
-
-<p>A single object can support more than one interface. In fact, essentially all objects support at least two interfaces -- a minimum of one that does something specifically useful and one, <code>nsISupports</code>, that serves a more general purpose. In a sense, <code>nsISupports</code> is the progenitor of all XPCOM interfaces. All interfaces inherit from it, most directly so. It serves two main functions: runtime type discovery and object lifetime management. It is functionally identical to IUnknown in MSCOM.</p>
-
-<p>Since an object can support multiple interfaces, it's possible to have a pointer to one interface and want to know whether that same object also supports a different interface whose functionality you might also need. The first <code>nsISupports</code> method, <code>QueryInterface()</code>, does exactly that: it asks, in effect, "I know that this object is of type A (supports interface A) but is it also of type B (supports interface B)?"</p>
-
-<p>If it is (or does), <code>QueryInterface()</code> returns to the caller a pointer bound to the newly requested interface.</p>
-
-<pre>void ProcessSample(nsISample* aSample) {
- nsIExample *example;
- nsresult rv;
- rv = aSample-&gt;QueryInterface(NS_GET_IID(nsIExample),(void **)&amp;example);
- if (NS_SUCCEEDED(rv)) {
- example-&gt;DoSomeOperation();
- NS_RELEASE(example); // using a macro to call Release
- }
-}
-</pre>
-
-<p>Because XPCOM uses an indirect method, the Component Manager, to actually instantiate objects, and because multiple pointers to the same object -- often bound to different interfaces -- can exist, it can quickly become very difficult for callers to keep accurate track of all of the objects to which those pointers point. Objects could be kept around in memory longer than they need to be, causing leaks, or objects could be deleted prematurely, causing dangling pointers. The other two methods in <code>nsISupports</code>, <code>AddRef()</code> and <code>Release()</code>, are designed to deal with this issue. Every time a pointer is given out <code>AddRef()</code> must be called on the object, incrementing an internal counter. Every time a pointer is released, <code>Release()</code> must be called, which decrements that same counter. When the counter reaches zero, there are no pointers to the object remaining and the object can safely delete itself. Control of the object's lifetime stays within the object itself. See below for information on XPCOM's "smart" pointer, <a href="#nsCOMPtr">nsCOMPtr</a>, a utility which helps automate this process.</p>
-
-<h5 id="Object_creation" name="Object_creation">Object creation</h5>
-
-<p>The instantiation of objects is also an indirect process in XPCOM. Just as interfaces have a globally unique ID number (the IID), XPCOM classes are assigned their own GUIDs, the CID. In addition, they are also often given a text-based ID, called a contract ID. One or the other of these IDs is passed to a method on a persistent XPCOM component, the Component Manager, which actually creates the object. When a new library of classes (called a module in XPCOM) is first introduced into the system, it must register itself with the Component Manager, which maintains a registry that maps classes (with their IDs) to the libraries in which they reside.</p>
-
-<p>A limited number of persistent services, supplied by singleton objects, are created and controlled by a companion to the Component Manager, the Service Manager. The Component Manager itself is an example of such a persistent service.</p>
-
-<h5 id="Summing_up" name="Summing_up">Summing up</h5>
-
-<p>Functionality in XPCOM is described by abstract interfaces, and most communication among parts of the system takes place in terms of those interfaces. The underlying objects that implement the interfaces, on the other hand, are created indirectly by the Component Manager based on a cross-indexed registry that it maintains.</p>
-
-<p>One functionality shared by all interfaces is the ability to query the underlying object at runtime to see if also implements other interfaces. In theory an interface is fixed and unchangeable, but at this stage in the Mozilla codebase, only interfaces that have been declared <code>FROZEN</code> are guaranteed not to change significantly. Object lifetime management takes place inside the object itself through an internal counter that keeps track of the number of pointers to the object that have been added or released. The client's only responsibility is to increment and decrement the counter. When the internal counter reaches zero, the object deletes itself.</p>
-
-<h5 id="nsCOMPtr" name="nsCOMPtr">nsCOMPtr</h5>
-
-<p>Sometimes, however, even remembering to call <code>AddRef()</code> and <code>Release()</code> at the right times can be difficult. To make this process easier and more reliable, XPCOM has a built-in "smart" pointer, <code>nsCOMPtr</code>. This pointer takes care of calling <code>AddRef()</code> and <code>Release()</code> for you. Using <code>nsCOMPtr</code> whenever possible will make your code cleaner and more efficient. For more information on the smart pointer, see "<a class="external" href="http://www.mozilla.org/projects/xpcom/nsCOMPtr.html">The Complete nsCOMPtr User's Manual</a>".</p>
-
-<p>Mozilla actually provides a large number of built-in macros (by convention, written in all caps in the code) and utilities like <code>nsCOMPtr</code> that can make the entire process of coding with XPCOM easier. Many of these can be found in the following files: <code>nsCom.h</code>, <code>nsDebug.h</code>, <code>nsError.h</code>, <code>nsIServiceManager.h</code>, and <code>nsISupportsUtils.h</code>. Mozilla also supplies other development tools for tracking memory usage and the like. More information on these can be found at <a class="external" href="http://www.mozilla.org/performance/" rel="freelink">http://www.mozilla.org/performance/</a></p>
-
-<h5 id="For_more_information" name="For_more_information">For more information</h5>
-
-<p>More information on XPCOM in general can be found at <a href="/en/XPCOM" title="en/XPCOM">XPCOM</a>. For an overview of creating XPCOM components, see Chapter 8 of O'Reilly's <em><a class="external" href="http://books.mozdev.org/chapters/ch08.html">Creating Applications with Mozilla</a></em>. There is also a new book completely devoted to this topic, <em><a href="/en/Creating_XPCOM_Components" title="en/Creating_XPCOM_Components">Creating XPCOM Components</a></em>. A fuller explanation of some of the underlying logic to COM systems can be found in the early chapters of <em>Essential COM</em> by Don Box. While it focuses on MSCOM in particular, the book does provide an excellent background on some of the core rationales for using such an object model.</p>
-
-<h4 id="XPIDL" name="XPIDL">XPIDL</h4>
-
-<p>Interfaces are abstract classes written in XPIDL, the Cross Platform Interface Definition Language. Yet to be useful the functionality promised in those interfaces must be implemented in some regular programming language. Facilitating this is the job of the XPIDL compiler. Once an interface is defined in an .idl file, it can be processed by the XPIDL compiler.</p>
-
-<p>The compiler can be set to output a number of things, but generally the output is two-fold: a C++ .h file that includes a commented out template for a full C++ implementation of the interface and an XPT file that contains type library information which works with XPConnect to make the interface available to JavaScript. More information on the syntax of <a href="/en/XPIDL" title="en/XPIDL">XPIDL</a> (a simple C-like language) and the use of the <a href="/en/XPIDL/xpidl" title="en/XPIDL/xpidl">compiler</a> is available.</p>
-
-<h4 id="XPConnect_and_XPT_files" name="XPConnect_and_XPT_files"><a href="/en/XPConnect" title="en/XPConnect">XPConnect</a> and XPT files</h4>
-
-<p><a href="/en/XPConnect" title="en/XPConnect">XPConnect</a> is an <a href="/en/XPCOM" title="en/XPCOM">XPCOM</a> module that allows code written in <a href="/en/JavaScript" title="en/JavaScript">JavaScript</a> to access and manipulate XPCOM components written in C++ and vice versa. By means of XPConnect, components on either side of an XPCOM interface do not, in general, need to know or care about which of these languages the object on the other side is implemented in.</p>
-
-<p>When an interface is run through the XPIDL compiler, it produces an XPT or type library file. Because XPconnect uses the information in this file to implement transparent communication between C++ objects and JavaScript objects across XPCOM interfaces, it is important to make sure they are generated and included with your code even if you are developing exclusively in C++. Not only is a substantial part of the browser, in fact, implemented in JS, it is possible that in the future someone may wish to use JS-based code to interact with whatever components you create .</p>
-
-<p>As is from Mozilla, XPConnect currently facilitates interoperability between C++ and JS. Modules to extend it to allow access from other languages (including Python) are under independent development.</p>
-
-<h4 id="String_classes" name="String_classes">String classes</h4>
-
-<p>Web browsing typically involves a large amount of string manipulation. Mozilla has developed a hierarchy of C++ classes to facilitate such manipulation and to render it efficient and quick. To make communication among objects simpler and more error free, Mozilla uses interfaces, which are, in essence, abstract classes. The string hierarchy is also headed up by a set of abstract classes, <code>nsAString</code>, <code>nsASingleFragmentString</code>, and <code>nsAFlatString</code>, and for the same reasons. (These refer to double-byte strings. There is a parallel hierarchy topped with <code>nsACString</code>, etc., that refers to single-byte strings.) <code>nsAString</code> guarantees only a string of characters. <code>nsASingleFragmentString</code> guarantees that the characters will be stored in a single buffer. <code>nsAFlatString</code> guarantees that the characters will be stored in a single null-terminated buffer. While there are underlying concrete classes, in general it is best to use the most abstract type possible in a given situation. For example, concantenation can be done virtually, through the use of pointers, resulting in an nsAString that can be used like any other string. This saves the allocating and copying that would otherwise have to be done. For more information, see "<a href="/En/Mozilla_internal_string_guide" title="En/Mozilla_internal_string_guide">XPCOM string guide</a>".</p>
-
-<h4 id="XUL.2FXBL" name="XUL.2FXBL">XUL/XBL</h4>
-
-<p>Use of this final Mozilla technology is optional, depending on how you decide to create the user interface for your application. <a href="/en/XUL" title="en/XUL">XUL</a> is Mozilla's highly flexible XML UI Language. It provides a number of largely platform independent widgets from which to construct a UI. Netscape and Mozilla both use XUL for their interfaces, but not all embedders choose to use it. XBL or the eXtensible Binding Language allows you to attach behaviors to XUL's XML elements. More information on XUL can be found at <a class="external" href="http://www.mozilla.org/xpfe/xulref/">XUL Programmer's Reference</a> and on <a href="/en/XBL" title="en/XBL">XBL</a> at <a href="/en/XBL/XBL_1.0_Reference" title="en/XBL/XBL_1.0_Reference">XBL:XBL_1.0_Reference</a>. There is also a wealth of good information on XUL at <a class="external" href="http://www.xulplanet.com/">XULPlanet</a>.</p>
-
-<h3 id="Choosing_Additional_Functionalities" name="Choosing_Additional_Functionalities">Choosing Additional Functionalities</h3>
-
-<p>As of this writing (8/19/02), Gecko is a partially modularized rendering engine. Some functionalities beyond basic browsing are always embedded with Gecko, and, as a result of certain architectural decisions, always will be; some are at present always embedded with Gecko, but may, at some point in the future, be separable; and some are now available purely as options. The following table describes the present status of these additional functionalities:</p>
-
-<table>
- <tbody>
- <tr>
- <th>Functions</th>
- <th>Status Now</th>
- <th>Status in Future</th>
- </tr>
- <tr>
- <td>FTP support</td>
- <td>Optional</td>
- <td> </td>
- </tr>
- <tr>
- <td>HTTPS support</td>
- <td>Optional</td>
- <td> </td>
- </tr>
- <tr>
- <td>International character support</td>
- <td>Optional</td>
- <td> </td>
- </tr>
- <tr>
- <td>XUL support</td>
- <td>Required</td>
- <td>Probably optional</td>
- </tr>
- <tr>
- <td>Network support</td>
- <td>Required</td>
- <td>Maybe optional</td>
- </tr>
- <tr>
- <td>JavaScript support</td>
- <td>Required</td>
- <td>Maybe optional</td>
- </tr>
- <tr>
- <td>CSS support</td>
- <td>Required</td>
- <td>Always required</td>
- </tr>
- <tr>
- <td>DOM support</td>
- <td>Required</td>
- <td>Probably always</td>
- </tr>
- <tr>
- <td>XML support</td>
- <td>Required</td>
- <td>Probably always</td>
- </tr>
- </tbody>
-</table>
-
-<p>At this time embedding Mozilla's editor along with the rendering engine Gecko is an uncertain proposion, although the situation continues to improve. For more information on the status of the embeddable editor, see <a class="external" href="http://www.mozilla.org/editor/Editor_Embedding_Guide.html" rel="freelink">http://www.mozilla.org/editor/Editor...ing_Guide.html</a>.</p>
-
-<h2 id="What_Gecko_Provides" name="What_Gecko_Provides">What Gecko Provides</h2>
-
-<p>The following is a description of some of the interfaces most commonly used in embedding Gecko. It is by no means an exhaustive list of the available interfaces. The interfaces in this section are on classes provided by Mozilla. There is also a set of interfaces for which Gecko expects the embedder to provide the implementation. A sample of those are covered in the next section.</p>
-
-<h3 id="Initialization_and_Teardown" name="Initialization_and_Teardown">Initialization and Teardown</h3>
-
-<p>There are two C++ only functions which serve to initalize and terminate Gecko. The initialization function (<a class="external" href="http://mozilla.org/projects/embedding/embedapiref/embedapi2.html#1099700">NS_InitEmbedding</a>) must be called before attempting to use Gecko. It ensures XPCOM is started, creates the component registry if necessary, and starts global services. The shutdown function (<a class="external" href="http://mozilla.org/projects/embedding/embedapiref/embedapi2.html#1101115">NS_TermEmbedding</a>) terminates the Gecko embedding layer, ensuring that global services are unloaded, files are closed and XPCOM is shut down.</p>
-
-<h3 id="nsIWebBrowser" name="nsIWebBrowser"><a class="external" href="http://mozilla.org/projects/embedding/embedapiref/embedapi4.html">nsIWebBrowser</a></h3>
-
-<p>Use of this interface during initialization allows embedders to associate a new <code>nsWebBrowser</code> instance (an object representing the "client-area" of a typical browser window) with the embedder's chrome and to register any listeners. The interface may also be used at runtime to obtain the content DOM window and from that the rest of the DOM.</p>
-
-<p>The <a class="external" href="http://xulplanet.com/references/xpcomref/ifaces/nsIWebBrowser.html">XULPlanet <code>nsWebBrowser</code> reference</a> also has a lot of useful information on this class.</p>
-
-<h3 id="nsIWebBrowserSetup" name="nsIWebBrowserSetup"><a class="external" href="http://www.mozilla.org/projects/embedding/embedapiref/embedapi10.html">nsIWebBrowserSetup</a></h3>
-
-<p>This interface is used to set basic properties (like whether image loading will be allowed) before the browser window is open.</p>
-
-<h3 id="nsIWebNavigation" name="nsIWebNavigation"><a class="external" href="http://www.xulplanet.com/references/xpcomref/ifaces/nsIWebNavigation.html">nsIWebNavigation</a></h3>
-
-<p>The <code>nsIWebNavigation</code> interface is used to load URIs into the web browser instance and provide access to session history capabilities - such as back and forward. As of June 6, 2006, this interface is not yet frozen.</p>
-
-<h3 id="nsIWebBrowserPersist" name="nsIWebBrowserPersist"><a class="external" href="http://www.xulplanet.com/references/xpcomref/ifaces/nsIWebBrowserPersist.html">nsIWebBrowserPersist</a></h3>
-
-<p>The <code>nsIWebBrowserPersist</code> interface allows a URI to be saved to file. As of June 6, 2006, this interface is not yet frozen.</p>
-
-<h3 id="nsIBaseWindow" name="nsIBaseWindow"><a class="external" href="http://www.xulplanet.com/references/xpcomref/ifaces/nsIBaseWindow.html">nsIBaseWindow</a></h3>
-
-<p>The <code>nsIBaseWindow</code> interface describes a generic window and basic operations (size, position, window title retrieval, etc.) that can be performed on it. As of June 6, 2006, this interface is not yet frozen.</p>
-
-<h3 id="nsISHistory" name="nsISHistory"><a class="external" href="http://mozilla.org/projects/embedding/embedapiref/embedapi58.html">nsISHistory</a></h3>
-
-<p>The <code>nsISHistory</code> interface provides access to session history information and allows that information to be purged.</p>
-
-<h3 id="nsIWebBrowserFind" name="nsIWebBrowserFind"><a class="external" href="http://mozilla.org/projects/embedding/embedapiref/embedapi14.html">nsIWebBrowserFind</a></h3>
-
-<p>The <code>nsIWebBrowserFind</code> interface controls the setup and execution of text searches in the browser window.</p>
-
-<h2 id="What_You_Provide" name="What_You_Provide">What You Provide</h2>
-
-<p>The following is a description of some of the more common embedder-provided interfaces used in embedding Gecko. It is by no means an exhaustive list of the available interfaces.</p>
-
-<h3 id="nsIWebBrowserChrome" name="nsIWebBrowserChrome"><a class="external" href="http://mozilla.org/projects/embedding/embedapiref/embedapi6.html">nsIWebBrowserChrome</a></h3>
-
-<p>The <code>nsIWebBrowserChrome</code> interface corresponds to the top-level, outermost window containing an embedded Gecko web browser. You associate it with the WebBrowser through the <code>nsIWebBrowser</code> interface. It provides control over window setup and whether or not the window is modal. It must be implemented.</p>
-
-<h3 id="nsIEmbeddingSiteWindow" name="nsIEmbeddingSiteWindow"><a class="external" href="http://www.mozilla.org/projects/embedding/embedapiref/embedapi12.html">nsIEmbeddingSiteWindow</a></h3>
-
-<p>The <code>nsIEmbeddingSiteWindow</code> interface provides Gecko with the means to call up to the host to resize the window, hide or show it and set/get its title. It must be implemented.</p>
-
-<h3 id="nsIWebProgressListener" name="nsIWebProgressListener"><a href="/en/nsIWebProgressListener" title="en/nsIWebProgressListener">nsIWebProgressListener</a></h3>
-
-<p>The <code>nsIWebProgressListener</code> interface provides information on the progress of loading documents. It is added to the WebBrowser through the <code>nsIWebBrowser</code> interface. It must be implemented. As of this writing (8/19/02), it is not frozen.</p>
-
-<h3 id="nsISHistoryListener" name="nsISHistoryListener"><a class="external" href="http://mozilla.org/projects/embedding/embedapiref/embedapi59.html">nsISHistoryListener</a></h3>
-
-<p>The <code>nsISHistoryListener</code> interface is implemented by embedders who wish to receive notifications about activities in session history. A history listener is notified when pages are added, removed and loaded from session history. It is associated with Gecko through the <code>nsIWebBrowser</code> interface. Implementation is optional.</p>
-
-<h3 id="nsIContextMenuListener" name="nsIContextMenuListener"><a class="external" href="http://mozilla.org/projects/embedding/embedapiref/embedapi5.html">nsIContextMenuListener</a></h3>
-
-<p>The <code>nsIContextMenuListener</code> interface is implemented by embedders who wish to receive notifications for context menu events, i.e. generated by a user right-mouse clicking on a link. It should be implemented on the web browser chrome object associated with the window for which notifications are required. When a context menu event occurs, the browser will call this interface if present. Implementation is optional.</p>
-
-<h3 id="nsIPromptService" name="nsIPromptService"><a href="/en/XPCOM_Interface_Reference/nsIPromptService" title="en/nsIPromptService">nsIPromptService</a></h3>
-
-<p>The <code>nsIPromptServices</code> interface allows the embedder to override Mozilla's standard prompts: alerts, dialog boxes, and check boxes and so forth. The class that implements these embedder specific prompts must be registered with the Component Manager using the same CID and contract ID that the Mozilla standard prompt service normally uses. Implementation is optional. As of this writing (8/19/02), this interface is not frozen.</p>
-
-<h2 id="Common_Embedding_Tasks" name="Common_Embedding_Tasks">Common Embedding Tasks</h2>
-
-<p>The following is a series of code snippets (taken from MFCEmbed, the Windows based embedding Gecko sample) which demonstrate very briefly implementation associated with common embedding tasks. MFCEmbed code was deleted from the current repository as the code quality was not very high and it did not use good embedding APIs. If you need a MFC embedding example, maybe take a look at the K-Meleon source. There are also Linux- and Mac OS-based examples, see <a class="external" href="http://mxr.mozilla.org/mozilla-central/source/embedding/tests/" title="http://mxr.mozilla.org/mozilla-central/source/embedding/tests/">http://mxr.mozilla.org/mozilla-central/source/embedding/tests/</a> for a list of examples.</p>
-
-<h3 id="Gecko_setup" name="Gecko_setup">Gecko setup</h3>
-
-<p>The Gecko embedding layer must be initialized before you can use Gecko. This ensures XPCOM is started, creates the component registry if necessary, and starts global services. There is an equivalent shutdown procedure.</p>
-
-<p>Note that the embedding layer is started up by passing it two parameters. The first indicates where the executable is stored on the file system (<code>nsnull</code> indicates the working directory). The second indicates the file location object "provider" that specifies to Gecko where to find profiles, the component registry preferences, and so on.</p>
-
-<pre>nsresult rv;
-rv = NS_InitEmbedding(nsnull, provider);
-if(NS_FAILED(rv))
-{
-ASSERT(FALSE);
-return FALSE;
-}
-</pre>
-
-<h3 id="Creating_a_browser_instance" name="Creating_a_browser_instance">Creating a browser instance</h3>
-
-<p>The embedder-provided BrowserView object calls its method <code>CreateBrowser()</code>. Each browser object (a webbrowser) represents a single browser window. Notice the utility directive <code>do_CreateInstance()</code> and the use of macros.</p>
-
-<pre>//Create an instance of the Mozilla embeddable browser
-
-HRESULT CBrowserView::CreateBrowser()
-{
-// Create a web shell
-nsresult rv;
-mWebBrowser = do_CreateInstance(NS_WEBBROWSER_CONTRACTID, &amp;rv);
-if(NS_FAILED(rv))
-return rv;
-</pre>
-
-<p>Once the <code>nsWebBrowser</code> object is created the application uses <code>do_QueryInterface()</code> to load a pointer to the <a class="external" href="http://www.xulplanet.com/references/xpcomref/ifaces/nsIWebNavigation.html">nsIWebNavigation</a> interface into the <code>mWebNav</code> member variable. This will be used later for web page navigation.</p>
-
-<pre>rv = NS_OK;
-mWebNav = do_QueryInterface(mWebBrowser, &amp;rv);
-if(NS_FAILED(rv))
-return rv;
-</pre>
-
-<p>Next the embedder-provided <code>CBrowserImpl</code> object is created. Gecko requires that some interfaces be implemented by the embedder so that Gecko can communicate with the embedding application. See the <a href="#What_You_Provide">What You Provide Section</a>. In the sample, <code>CBrowserImpl</code> is the object that implements those required interfaces. It will be passed into the <code>SetContainerWindow()</code> call below.</p>
-
-<pre>mpBrowserImpl = new CBrowserImpl();
-if(mpBrowserImpl == nsnull)
-return NS_ERROR_OUT_OF_MEMORY;
-</pre>
-
-<p>The <code>mWebBrowser</code> interface pointer is then passed to the <code>CBrowserImpl</code> object via its <code>Init()</code> method. A second pointer to the platform specific <code>BrowserFrameGlue</code> interface is also passed in and saved. The <code>BrowserFrameGlue</code> pointer allows <code>CBrowserImpl</code> to call methods to update status bars, progress bars, and so forth.</p>
-
-<pre>mpBrowserImpl-&gt;Init(mpBrowserFrameGlue, mWebBrowser);
-mpBrowserImpl-&gt;AddRef();
-</pre>
-
-<p>Next the embedder-supplied chrome object is associated with the webbrowser. Note the use of an <code>nsCOMPtr</code>.</p>
-
-<pre>mWebBrowser-&gt;SetContainerWindow
- (NS_STATIC_CAST(nsIWebBrowserChrome*, mpBrowserImpl));
-nsCOMPtr&lt;nsIWebBrowserSetup&gt;setup(do_QueryInterface(mWebBrowser));
-if (setup)
- setup-&gt;SetProperty(nsIWebBrowserSetup::SETUP_IS_CHROME_WRAPPER,PR_TRUE);
-</pre>
-
-<p>Then, the real webbrowser window is created.</p>
-
-<pre>rv = NS_OK;
-mBaseWindow = do_QueryInterface(mWebBrowser, &amp;rv);
-if(NS_FAILED(rv))
-return rv;
-</pre>
-
-<h3 id="Binding_a_window" name="Binding_a_window">Binding a window</h3>
-
-<p>Basic location information is passed in.</p>
-
-<pre>RECT rcLocation;
-GetClientRect(&amp;rcLocation);
-if(IsRectEmpty(&amp;rcLocation))
-{
- rcLocation.bottom++;
- rcLocation.top++;
-}
-rv = mBaseWindow-&gt;InitWindow(nsNativeWidget(m_hWnd),
- nsnull,0, 0, rcLocation.right - rcLocation.left,
- rcLocation.bottom - rcLocation.top);
-rv = mBaseWindow-&gt;Create();
-</pre>
-
-<p>Note the <code>m_hWnd</code> passed into the call above to <code>InitWindow()</code>. (<code>CBrowserView</code> inherits the <code>m_hWnd</code> from <code>CWnd</code>). This <code>m_hWnd</code> will be used as the parent window by the embeddable browser.</p>
-
-<h3 id="Adding_a_listener" name="Adding_a_listener">Adding a listener</h3>
-
-<p>The <code>BrowserImpl</code> object is added as an <a href="/en/nsIWebProgressListener" title="en/nsIWebProgressListener">nsIWebProgressListener</a>. It will now receive progress messages. These callbacks will be used to update the status/progress bars.</p>
-
-<pre>nsWeakPtr weakling
- (dont_AddRef(NS_GetWeakReference(NS_STATIC_CAST(nsIWebProgressListener*,
- mpBrowserImpl))));
-void mWebBrowser-&gt;AddWebBrowserListener(weakling, NS_GET_IID(nsIWebProgressListener));
-</pre>
-
-<p>Finally the webbrowser window is shown.</p>
-
-<pre>mBaseWindow-&gt;SetVisibility(PR_TRUE);
-</pre>
-
-<h3 id="Using_session_history_to_navigate" name="Using_session_history_to_navigate">Using session history to navigate</h3>
-
-<p>The pointer to <a class="external" href="http://www.xulplanet.com/references/xpcomref/ifaces/nsIWebNavigation.html">nsIWebNavigation</a> saved above is used to move back through session history.</p>
-
-<pre>void CBrowserView::OnNavBack()
-{
-if(mWebNav)
- mWebNav-&gt;GoBack();
-}
-</pre>
-
-<h2 id="Appendix:_Data_Flow_Inside_Gecko" name="Appendix:_Data_Flow_Inside_Gecko">Appendix: Data Flow Inside Gecko</h2>
-
-<p>While it isn't strictly necessary for embedders to understand how Gecko does what it does, a brief overview of the main structures involved as Gecko puts bits on a display may be helpful.</p>
-
-<p><img alt="Image:EmbeddingBasicsa.gif" class="internal" src="/@api/deki/files/189/=EmbeddingBasicsa.gif"></p>
-
-<p>HTML data comes into Gecko either from the network or a local source. The first thing that happens is that it is parsed, using Gecko's own HTML parser. Then the Content Model arranges this parsed data into a large tree. The tree is also known as the "Document" and its structure is based on the W3C Document Object Model. Any use of DOM APIs manipulates the data in the Content Model.</p>
-
-<p>Next the data is put into frames using CSS and the Frame Constructor. A frame in this sense (which is not the same thing as an HTML frame) is basically an abstract box within which a DOM element will be displayed. This process produces a Frame Tree, which, like the Content Model, is a tree of data, but this time focused not on the logical relationship among the elements but on the underlying calculations needed to display the data. In the beginning a frame has no size. Using CSS rules specifying how the elements of the DOM should look when they are displayed, including information like font type or image size, the eventual size of each frame is calculated. Because the same data may need to be displayed in different ways -- to a monitor and to a printer, for example -- a particular Content Model may have more than one Frame Tree associated with it. In such a case, each individual Frame Tree would belong to a different "presentation" mode.</p>
-
-<p>Calculations continue as new information flows into the system using a process called <strong>reflow</strong>. As information in the Frame Tree changes, the section of the Frame Tree involved is marked "dirty" by the Frame Constructor. Reflow repeatedly steps through the tree, processing every "dirty" item it encounters until all the items it encounters are "clean". Every item in the Frame Tree has a pointer back to its corresponding item in the Content Model. A change in the Content Model, say through using the DOM APIs to change an element from hidden to visible, produces an equivalent change in the Frame Tree. It's important to note that all of these operations are purely data manipulations. Painting to the display itself is not yet involved at this point.</p>
-
-<p>The next stage is the View Manager. With a few small exceptions that have to do with prompting the Frame Constructor to load graphics, the View Manager is the first place in the process that accesses the native OS. Delaying OS access until this point both helps Gecko to run more quickly and makes cross-platform issues easier to deal with. The View Manger is the place where Gecko figures out where on the display the data will need to be drawn. It then tells the system that that area is "invalid" and needs to be repainted. The actual painting is managed by the gfx submodule, while other low-level system operations are run through the widget submodule, which handles things like platform specific event (mouse clicks and so forth) processing loops and accessing system defaults (colors, fonts, etc.) Both gfx and widget are system specific.</p>
-
-<p>If you want to take a look at the code underlying these structures, the code for the Content Model can be found in <code>/mozilla/content</code>, for the Frame Constructor, CSS, and Reflow in <code>/mozilla/layout</code>, for the View Manager in <code>/mozilla/view</code>, and for the DOM APIs in <code>/mozilla/dom</code>.</p>
-
-<div class="originaldocinfo">
-<h2 id="Original_Document_Information" name="Original_Document_Information">Original Document Information</h2>
-
-<ul>
- <li>Author(s): <a class="external" href="/mailto:jeev@jeev13@gmail.com" title="mailto:jeev@jeev13@gmail.com">Ellen Evans</a></li>
- <li>Last Updated Date: August 19, 2002</li>
- <li>Copyright Information: Copyright (C) <u>Creative Commons Attribution</u></li>
-</ul>
-</div>
-
-<p>{{ languages( { "ja": "ja/Gecko_Embedding_Basics" } ) }}</p>
diff --git a/files/fr/mozilla/gecko/index.html b/files/fr/mozilla/gecko/index.html
deleted file mode 100644
index fcd4a8e202..0000000000
--- a/files/fr/mozilla/gecko/index.html
+++ /dev/null
@@ -1,118 +0,0 @@
----
-title: Gecko
-slug: Mozilla/Gecko
-translation_of: Mozilla/Gecko
----
-<p><img alt="" class="internal" src="/@api/deki/files/1410/=Netscape-gecko-logo.jpg" style="float: right;"> <strong>Gecko</strong> est le nom du moteur de rendu développé par la fondation Mozilla. Il s'appelait à l'origine NGLayout.</p>
-
-<p>La fonction de Gecko est de lire le contenu Web tel que <a href="/fr/HTML" title="fr/HTML">HTML</a>, <a href="/fr/CSS" title="fr/CSS">CSS</a>, <a href="/fr/XUL" title="fr/XUL">XUL</a> et <a href="/fr/JavaScript" title="fr/JavaScript">JavaScript</a>, puis de le représenter sur l'écran de l'utilisateur ou à l'impression. Dans les applications basées sur XUL, Gecko est également utilisé pour afficher l'interface utilisateur de l'application.</p>
-
-<p>Gecko est utilisé dans de nombreuses applications dont quelques navigateurs comme Firefox, la Suite Mozilla, Camino, etc. (Pour obtenir la liste complète, référez-vous à cet <a class="external" href="http://fr.wikipedia.org/wiki/Gecko_%28moteur_de_rendu%29#Navigateurs_web">article de Wikipedia sur Gecko</a>). Les produits utilisant la même version de Gecko ont un support identique des standards.</p>
-
-<p><small>Le nom et le logo Gecko sont des marques de Netscape Communications Corporation, utilisés sous licence.</small></p>
-
-<h3 id="Les_versions_de_Gecko" name="Les_versions_de_Gecko">Les versions de Gecko</h3>
-
-<table class="standard-table">
- <tbody>
- <tr>
- <th>Version de Gecko</th>
- <th>Applications basées sur cette version</th>
- </tr>
- <tr>
- <td>Gecko 17.0 (en cours de développement)</td>
- <td><a class="internal" href="/fr/docs/Firefox_17_pour_les_développeurs" title="Firefox 17 pour les développeurs">Firefox 17</a>, SeaMonkey 2.14, Thunderbird 17</td>
- </tr>
- <tr>
- <td>Gecko 16.0 (en cours de développement)</td>
- <td><a class="internal" href="/fr/docs/Firefox_16_pour_les_développeurs" title="Firefox 16 pour les développeurs">Firefox 16</a>, SeaMonkey 2.13, Thunderbird 16</td>
- </tr>
- <tr>
- <td>Gecko 15.0 (en cours de développement)</td>
- <td><a class="internal" href="/fr/docs/Firefox_15_pour_les_développeurs" title="Firefox 15 pour les développeurs">Firefox 15</a>, <a class="link-https" href="https://wiki.mozilla.org/SeaMonkey/Features/2.12" title="Changements dans SeaMonkey 2.12">SeaMonkey 2.12</a>, <a class="link-https" href="https://wiki.mozilla.org/Thunderbird/Support/TB15UserChanges" title="Changements dans Thunderbird 15">Thunderbird 15</a></td>
- </tr>
- <tr>
- <td>Gecko 14.0</td>
- <td><a class="internal" href="/fr/docs/Firefox_14_pour_les_développeurs" title="Firefox 14 pour les développeurs">Firefox 14</a>, <a class="link-https" href="https://wiki.mozilla.org/SeaMonkey/Features/2.11" title="Changements dans SeaMonkey 2.11">SeaMonkey 2.11</a>, <a class="link-https" href="https://wiki.mozilla.org/Thunderbird/Support/TB14UserChanges" title="Changements dans Thunderbird 14">Thunderbird 14</a></td>
- </tr>
- <tr>
- <td>Gecko 13.0</td>
- <td><a class="internal" href="/fr/docs/Firefox_13_pour_les_développeurs" title="Firefox 13 pour les développeurs">Firefox 13</a>, <a class="link-https" href="https://wiki.mozilla.org/SeaMonkey/Features/2.10" title="Changements dans SeaMonkey 2.10">SeaMonkey 2.10</a>, <a class="link-https" href="https://wiki.mozilla.org/Thunderbird/Support/TB13UserChanges" title="Changements dans Thunderbird 13">Thunderbird 13</a></td>
- </tr>
- <tr>
- <td>Gecko 12.0</td>
- <td><a class="internal" href="/fr/docs/Firefox_12_pour_les_développeurs" title="Firefox 12 pour les développeurs">Firefox 12</a>, <a class="link-https" href="https://wiki.mozilla.org/SeaMonkey/Features/2.9" title="Changements dans SeaMonkey 2.9">SeaMonkey 2.9</a>, <a class="link-https" href="https://wiki.mozilla.org/Thunderbird/Support/TB12UserChanges" title="Changements dans Thunderbird 12">Thunderbird 12</a></td>
- </tr>
- <tr>
- <td>Gecko 11.0</td>
- <td><a class="internal" href="/fr/docs/Firefox_11_pour_les_développeurs" title="Firefox 11 pour les développeurs">Firefox 11</a>, <a class="link-https" href="https://wiki.mozilla.org/SeaMonkey/Features/2.8" title="Changements dans SeaMonkey 2.8">SeaMonkey 2.8</a>, <a class="link-https" href="https://wiki.mozilla.org/Thunderbird/Support/TB11UserChanges" title="Changements dans Thunderbird 11">Thunderbird 11</a></td>
- </tr>
- <tr>
- <td>Gecko 10.0</td>
- <td><a class="internal" href="/fr/docs/Firefox_10_pour_les_développeurs" title="Firefox 10 pour les développeurs">Firefox 10</a>, <a class="link-https" href="https://wiki.mozilla.org/SeaMonkey/Features/2.7" title="Changements dans SeaMonkey 2.7">SeaMonkey 2.7</a>, <a class="link-https" href="https://wiki.mozilla.org/Thunderbird/Support/TB10UserChanges" title="Changements dans Thunderbird 10">Thunderbird 10</a></td>
- </tr>
- <tr>
- <td>Gecko 9.0</td>
- <td><a class="internal" href="/fr/docs/Firefox_9_pour_les_développeurs" title="Firefox 9 pour les développeurs">Firefox 9</a>, <a class="link-https" href="https://wiki.mozilla.org/SeaMonkey/Features/2.6" title="Changements dans SeaMonkey 2.6">SeaMonkey 2.6</a>, <a class="link-https" href="https://wiki.mozilla.org/Thunderbird/Support/TB9UserChanges" title="Changements dans Thunderbird 9">Thunderbird 9</a></td>
- </tr>
- <tr>
- <td>Gecko 8.0</td>
- <td><a class="internal" href="/fr/docs/Firefox_8_pour_les_développeurs" title="Firefox 8 pour les développeurs">Firefox 8</a>, <a class="link-https" href="https://wiki.mozilla.org/SeaMonkey/Features/2.5" title="Changements dans SeaMonkey 2.5">SeaMonkey 2.5</a>, <a class="link-https" href="https://wiki.mozilla.org/Thunderbird/Support/TB8UserChanges" title="Changements dans Thunderbird 8">Thunderbird 8</a></td>
- </tr>
- <tr>
- <td>Gecko 7.0</td>
- <td><a class="internal" href="/fr/docs/Firefox_7_pour_les_développeurs" title="Firefox 7 pour les développeurs">Firefox 7</a>, <a class="link-https" href="https://wiki.mozilla.org/SeaMonkey/Features/2.4" title="Changements dans SeaMonkey 2.4">SeaMonkey 2.4</a>, <a class="link-https" href="https://wiki.mozilla.org/Thunderbird/Support/TB7UserChanges" title="Changements dans Thunderbird 7">Thunderbird 7</a></td>
- </tr>
- <tr>
- <td>Gecko 6.0</td>
- <td><a class="internal" href="/fr/docs/Firefox_6_pour_les_développeurs" title="Firefox 6 pour les développeurs">Firefox 6</a>, <a class="link-https" href="https://wiki.mozilla.org/SeaMonkey/Features/2.3" title="Changements dans SeaMonkey 2.3">SeaMonkey 2.3</a>, <a class="link-https" href="https://wiki.mozilla.org/Thunderbird/Support/TB6UserChanges" title="Changements dans Thunderbird 6">Thunderbird 6</a></td>
- </tr>
- <tr>
- <td>Gecko 5.0</td>
- <td><a class="internal" href="/fr/docs/Firefox_5_pour_les_développeurs" title="Firefox 5 pour les développeurs">Firefox 5</a>, <a class="link-https" href="https://wiki.mozilla.org/SeaMonkey/Features/2.2" title="Changements dans SeaMonkey 2.2">SeaMonkey 2.2</a>, <a class="external" href="http://kb.mozillazine.org/Thunderbird_5.0_-_New_Features_and_Changes" title="Changements dans Thunderbird 5">Thunderbird 5</a></td>
- </tr>
- <tr>
- <td>Gecko 2.0</td>
- <td><a class="internal" href="/fr/docs/Firefox_4_pour_les_développeurs" title="Firefox 4 pour les développeurs">Firefox 4</a>, <a class="link-https" href="https://wiki.mozilla.org/SeaMonkey/Features/2.1" title="Changements dans SeaMonkey 2.1">SeaMonkey 2.1</a></td>
- </tr>
- <tr>
- <td>Gecko 1.9.2</td>
- <td><a class="internal" href="/fr/docs/Firefox_3.6_pour_les_développeurs" title="Firefox 3.6 pour les développeurs">Firefox 3.6</a>, <a class="external" href="http://kb.mozillazine.org/Thunderbird_3.1_-_New_Features_and_Changes" title="Changements dans Thunderbird 3.1">Thunderbird 3.1</a></td>
- </tr>
- <tr>
- <td>Gecko 1.9.1</td>
- <td><a class="internal" href="/Fr/docs/Firefox_3.5_pour_les_développeurs" title="Firefox 3.5 pour les développeurs">Firefox 3.5</a>, <a class="link-https" href="https://wiki.mozilla.org/SeaMonkey:New_for_2.0" title="Changements dans SeaMonkey 2.0">SeaMonkey 2.0</a>, <a class="external" href="http://kb.mozillazine.org/Thunderbird_3.0_-_New_Features_and_Changes" title="Changements dans Thunderbird 3.0">Thunderbird 3.0</a></td>
- </tr>
- <tr>
- <td>Gecko 1.9.0</td>
- <td><a class="internal" href="/fr/docs/Firefox_3_pour_les_développeurs" title="Firefox_3_pour_les_développeurs">Firefox 3</a></td>
- </tr>
- <tr>
- <td>Gecko 1.8.1</td>
- <td><a class="internal" href="/fr/docs/Firefox_2_pour_les_développeurs" title="Firefox_2_pour_les_développeurs">Firefox 2</a>, SeaMonkey 1.1, Thunderbird 2.0</td>
- </tr>
- <tr>
- <td>Gecko 1.8.0</td>
- <td><a class="internal" href="/fr/docs/Firefox_1.5_pour_les_développeurs" title="Firefox_1.5_pour_les_développeurs">Firefox 1.5</a>, SeaMonkey 1.0, Thunderbird 1.5</td>
- </tr>
- <tr>
- <td>Gecko 1.7</td>
- <td>Firefox 1.0, Mozilla Suite 1.7, Nvu 1.0, Thunderbird 1.0</td>
- </tr>
- <tr>
- <td colspan="2"><strong>Les versions plus anciennes de Gecko correspondent aux versions de la Suite Mozilla</strong></td>
- </tr>
- </tbody>
-</table>
-
-<hr>
-<h3 id="Ressources" name="Ressources">Ressources</h3>
-
-<ul>
- <li><a class="external" href="http://www.mozilla.org/newlayout/">Page du projet Gecko</a></li>
- <li><a href="/fr/Manuel_de_compatibilité_Gecko" title="fr/Manuel_de_compatibilité_Gecko">Manuel de compatibilité Gecko</a></li>
- <li><a href="/fr/Les_chaînes_UserAgent_de_Gecko" title="fr/Les_chaînes_UserAgent_de_Gecko">Les chaînes UserAgent de Gecko</a></li>
- <li><a href="/fr/Mozilla_embarqué" title="fr/Mozilla_embarqué">Intégration de Gecko dans d'autres programmes</a></li>
-</ul>
-
-<p>{{ languages( { "de": "de/Gecko", "en": "en/Gecko", "es": "es/Gecko", "it": "it/Gecko", "ja": "ja/Gecko", "ko": "ko/Gecko", "pl": "pl/Gecko", "pt": "pt/Gecko", "zh-cn": "cn/Gecko" } ) }}</p>
diff --git a/files/fr/mozilla/gecko/mozilla_embarqué/api_overview/index.html b/files/fr/mozilla/gecko/mozilla_embarqué/api_overview/index.html
deleted file mode 100644
index bf0dbc85cf..0000000000
--- a/files/fr/mozilla/gecko/mozilla_embarqué/api_overview/index.html
+++ /dev/null
@@ -1,422 +0,0 @@
----
-title: Vue d'ensemble des APIS embarquées de Mozilla
-slug: Mozilla/Gecko/Mozilla_embarqué/API_overview
-translation_of: Mozilla/Gecko/Embedding_Mozilla/API_overview
----
-<h2 id="Introduction" name="Introduction">Introduction</h2>
-<p>The Mozilla Public API consists of a collection of services and components which are accessed via XPCOM interfaces. Mozilla's XPCOM layer consists of a component model (called XPCOM) and the infrastructure necessary to support dynamic registration, instantiation and manipulation of XPCOM components.</p>
-<p>At the heart of XPCOM's implementation is the Service Manager and the Component Manager. Together, these two services provide a centralized point for gaining access to all of the public Mozilla interfaces.</p>
-<p>The Service Manager exposes all of the available XPCOM services - each service represents a global object which provides some piece of functionality. The Component Manager allows new instances of registered XPCOM components to be instantiated.</p>
-<p><img alt="Image:public-apis-image2.gif" class="internal" src="/@api/deki/files/819/=Public-apis-image2.gif"></p>
-<p>The embedding layer consists of several components built on top of XPCOM and its services. Much of the Gecko functionality is exposed through a component called the nsWebBrowser. Embedding applications can leverage this component to easily access many of Gecko's features. Each WebBrowser instance represents the "client-area" of a typical browser window. The WebBrowser exposes a set of interfaces which allow the embedding application to control activity and respond to changes within this client area. Using these interfaces an embedding application can build up its own user interface around a WebBrowser instance.</p>
-<p><img alt="Image:public-apis-image1.gif" class="internal" src="/@api/deki/files/818/=Public-apis-image1.gif"></p>
-<h2 id="Public_Classes" name="Public_Classes">Public Classes</h2>
-<p>The following utility classes are available from the XPCOM DLL. They provide some basic functionality which should be leveraged when building new XPCOM components.</p>
-<ul>
- <li>nsCOMPtr&lt;interface-type&gt;</li>
-</ul>
-<p>These are templatized smart pointers which transparently deal with XPCOM reference counting issues. See the nsCOMPtr User's Manual for more information.</p>
-<ul>
- <li>nsString</li>
-</ul>
-<p>There are a collection of string classes which support both unicode and ASCII strings. These classes provide a variety of string operations as well as dealing with the memory management issues of storing the underlying data. See the String Guide for more details.</p>
-<ul>
- <li>nsWeakPtr</li>
-</ul>
-<p>This is an nsCOMPtr which encapsulates XPCOM weak reference support. See the nsIWeakReference document for more information.</p>
-<h2 id="Public_Return_Codes" name="Public_Return_Codes">Public Return Codes</h2>
-<ul>
- <li>NS_SUCCEEDED</li>
- <li>NS_ERROR_FAILURE</li>
- <li>NS_ERROR_NOT_IMPLEMENTED</li>
-</ul>
-<h2 id="Public_Functions" name="Public_Functions">Public Functions</h2>
-<p>The following functions are available from the XPCOM DLL.</p>
-<ul>
- <li>NS_InitEmbedding</li>
-</ul>
-<p>This function initializes the Gecko embedding support. This must be the first function call made into Gecko.</p>
-<ul>
- <li>NS_TermEmbedding</li>
-</ul>
-<p>This function shuts down Gecko and cleans up any remaining resources... Currently, once Gecko has been shutdown, it cannot be restarted in the same process space... This should change in the future.</p>
-<ul>
- <li>nsMemory
- <ul>
- <li>nsMemory::Alloc</li>
- <li>nsMemory::Realloc</li>
- <li>nsMemory::Free</li>
- </ul>
- </li>
-</ul>
-<p>This helper class provides static accessors to the global nsMemory Service.</p>
-<ul>
- <li>NS_GetGlobalComponentManager</li>
-</ul>
-<p>This function returns an instance of the Component Manager service.</p>
-<ul>
- <li>NS_ConvertASCIItoUCS2</li>
-</ul>
-<p>This is a helper class which converts an ASCII string into a UCS2 string. Typically, instances of this class are stack allocated, and wrap ASCII arguments which must be converted into UCS2.</p>
-<ul>
- <li>do_QueryInterface</li>
-</ul>
-<p>This is a helper class which works in conjunction with nsCOMPtr to perform a simplified call to nsISupports::QueryInterface(...) with a typesafe assignment.</p>
-<ul>
- <li>do_GetInterface</li>
-</ul>
-<p>This function simplfies retrieving interfaces via the nsIInterfaceRequestor::GetInterface(...) method. Using this function, one can use nsISupports instances and still easily access other interfaces via nsIInterfaceRequestor.</p>
-<p>Internally, this function tries to convert the nsISupports argument into an nsIInterfaceRequestor and then calls GetInterface(...) to retrieve the requested interface.</p>
-<ul>
- <li>do_QueryReferent</li>
-</ul>
-<p>This function is the equivilent of do_QueryInterface except that it performs the QI through a weak reference.</p>
-<ul>
- <li>do_GetService</li>
-</ul>
-<p>This function simplifies accessing services from the Service Manager.</p>
-<ul>
- <li>do_CreateInstance</li>
-</ul>
-<p>This function simplifies creating new component instances.</p>
-<ul>
- <li>nsCOMTypeInfo&lt;interface-type&gt;::GetIID()</li>
-</ul>
-<p>This template helper class allows easy access to an interface's nsIID. Typically the NS_GET_IID(...) macro is used instead of using the nsCOMTypeInfo template directly.</p>
-<ul>
- <li>NS_GetWeakReference</li>
-</ul>
-<p>This function creates a weak reference to a component which implements the nsIWeakReference interface.</p>
-<h2 id="Global_Services" name="Global_Services">Global Services</h2>
-<p><strong>nsServiceManager</strong></p>
-<p>The Service Manager is the central repository for accessing instances of the various XPCOM services. Each service is represented by a singleton object which is instantiated the first time it is requested and remains alive until the Service Manager is shut down, or the service is explicitly unloaded.</p>
-<p>Through the Service Manager, individual services can be loaded, unloaded and accessed.</p>
-<p><em>Implemented Interfaces:</em></p>
-<ul>
- <li>nsIServiceManager</li>
-</ul>
-<p><em>Related Interfaces:</em></p>
-<ul>
- <li>nsIShutdownListener</li>
-</ul>
-<p><strong>nsMemory</strong></p>
-<p>The nsMemory service provides the global memory manager implementation for XPCOM. In addition to memory allocation and release, this service provides low memory notifications, called a memory pressure observers, which are notified when memory is low - thus allowing cached resources to be freed.</p>
-<p>All heap access should be done via the nsMemory service. To facilitate this, a set of global functions are available to access the nsMemory methods without requiring an instance of the nsMemory service (see nsMemory.h).</p>
-<p><em>Contract-id:</em> NS_MEMORY_CONTRACTID</p>
-<p><em>Implemented Interfaces:</em></p>
-<ul>
- <li>nsIMemory</li>
-</ul>
-<p><em>Related Interfaces:</em></p>
-<ul>
- <li>nsIObserver</li>
-</ul>
-<p><strong>nsComponentManager</strong></p>
-<p>The nsComponentManager service is responsible for creating new instances of XPCOM components. The Component Manager is also responsible for registering and managing the class factories used for component creation...</p>
-<p><em>Contract-id:</em> NS_COMPONENTMANAGER_CONTRACTID</p>
-<p><em>Implemented Interfaces:</em></p>
-<ul>
- <li>nsIComponentManager</li>
- <li>nsIInterfaceRequestor</li>
-</ul>
-<p><em>Requestor Interfaces:</em></p>
-<ul>
- <li>nsIServiceManager</li>
-</ul>
-<p><em>Related Interfaces:</em></p>
-<ul>
- <li>nsIFactory</li>
-</ul>
-<p><strong>nsURILoader</strong></p>
-<p>The nsURILoader service is responsible for targeting a URI at an appropriate content handler. A content handler may be an existing or new window, a helper application or the Unknown Content Handler - if no other handler can be found for the content-type.</p>
-<p><em>Contract-id:</em> NS_URI_LOADER_CONTRACTID</p>
-<p><em>Implemented Interfaces:</em></p>
-<ul>
- <li>nsIURILoader</li>
-</ul>
-<p><em>Related Interfaces:</em></p>
-<ul>
- <li>nsIURIContentListener</li>
-</ul>
-<p><strong>nsUnknownContentTypeHandler</strong></p>
-<p>The UnknownContentTypeHandler service is the last resort of the URILoader when no other content handler can be located. If no registered content handlers are available, the UnknownContentTypeHandler is notified.</p>
-<p>The default implementation of this service displays a dialog box asking the user if the content should be saved to disk...</p>
-<p><em>Contract-id:</em> NS_IUNKNOWNCONTENTTYPEHANDLER_CONTRACTID</p>
-<p><em>Implemented Interfaces:</em></p>
-<ul>
- <li>nsIUnknownContentTypeHandler</li>
-</ul>
-<p><strong>HelperApp Launch Dialog</strong></p>
-<p><em>Contract-id:</em> NS_EXTERNALHELPERAPPSERVICE_CONTRACTID</p>
-<p><em>Implemented Interfaces:</em></p>
-<ul>
- <li>nsIExternalHelperAppService</li>
-</ul>
-<p><strong>Preferences Service</strong></p>
-<p>The Preferences service provides access to persistent data stored within a user's profile directory.</p>
-<p><em>Contract-id:</em> NS_PREF_CONTRACTID</p>
-<p><em>Implemented Interfaces:</em></p>
-<ul>
- <li>nsIPrefService</li>
- <li>nsIPrefBranch</li>
-</ul>
-<p><em>Related Interfaces:</em></p>
-<ul>
- <li>nsIPrefListener</li>
-</ul>
-<p><strong>Profile Manager Service</strong></p>
-<p><em>Contract-id:</em></p>
-<p><em>Implemented Interfaces:</em></p>
-<p><strong>Document Loader Service (WebProgress)</strong></p>
-<p>Eventually, this service will be replaced by theWebProgress service...</p>
-<p><em>Contract-id:</em> NS_DOCUMENT_LOADER_SERVICE_CONTRACTID</p>
-<p><em>Implemented Interfaces:</em></p>
-<ul>
- <li>nsIWebProgress</li>
- <li>nsIDocumentLoader</li>
-</ul>
-<p><em>Related Interfaces:</em></p>
-<ul>
- <li>nsIWebProgressListener</li>
-</ul>
-<h2 id="Public_Components" name="Public_Components">Public Components</h2>
-<h3 id="nsWebBrowser" name="nsWebBrowser">nsWebBrowser</h3>
-<p>The nsWebBrowser is the main embedding component which Gecko exposes. Conceptually, each nsWebBrowser instance represents a HTML content area.</p>
-<p>Conceptually, for each document being rendered, Gecko creates a container called a DOMWindow. Each WebBrowser exposes a tree of DOMWindows - representing the frame hierarchy for the current document. As such, access to individual document frames is done via the DOMWindow interfaces. Manipulation of the entire document structure is done via the various WebBrowser interfaces.</p>
-<p><em>Contract-id:</em> NS_WEBBROWSER_CONTRACTID</p>
-<p><em>Implemented Interfaces:</em></p>
-<ul>
- <li>nsIWebBrowser</li>
- <li>nsIWebNavigation</li>
- <li>nsIWebBrowserSetup</li>
- <li>nsIWebBrowserPersist</li>
- <li>nsIWebBrowserFind</li>
- <li>nsIWebBrowserPrint</li>
- <li>nsIWebBrowserFocus</li>
- <li>nsIBaseWindow</li>
-</ul>
-<p><em>Requestor Interfaces:</em></p>
-<ul>
- <li>nsIDOMWindow</li>
- <li>nsIDOMDocument</li>
- <li>nsIWebProgress</li>
- <li>nsIClipboardCommands</li>
- <li>nsIPrompt</li>
-</ul>
-<p><em>Related Interfaces:</em></p>
-<ul>
- <li>nsIPrompt</li>
- <li>nsIWebBrowserChrome</li>
- <li>nsIWebBrowserSiteWindow</li>
- <li>nsIWebProgressListener</li>
- <li>nsIContextMenuListener</li>
- <li>nsIPrintOptions</li>
-</ul>
-<p><strong>Overview:</strong></p>
-<p>Most of Gecko's functionality is exposed through the nsWebBrowser component. The WebBrowser provides a simple mechanism for other applications to leverage Gecko functionality. Each instance of a WebBrowser encapsulates a full featured HTML content area.</p>
-<p>The embedding application receives notifications from Gecko through a set of callback interfaces it may choose to implement.</p>
-<p><img alt="Image:public-apis-image3.gif" class="internal" src="/@api/deki/files/820/=Public-apis-image3.gif"></p>
-<p>Below is a code snippet which an embedding application can use to create and initialize a WebBrowser:</p>
-<pre> nsresult rv;
- nsCOMPtr&lt;nsIBaseWindow&gt; baseWindow;
- nsCOMPtr&lt;nsIWebBrowser&gt; webBrowser;
-
- // Create a nsWebBrowser instance...
- webBrowser = do_CreateInstance(NS_WEBBROWSER_CONTRACTID, &amp;rv);
- if (NS_FAILED(rv)) return rv;
-
- // Give the WebBrowser a pointer to the embedding component which
- // implements the callback interfaces. Replace 'this' with
- // an appropriate object...
- rv = webBrowser-&gt;SetContainerWindow((nsIWebBrowserChrome*)this);
- if (NS_FAILED(rv)) return rv;
-
- baseWindow = do_QueryInterface(webBrowser);
-
- // Initialize the WebBrowser with a native parent window
- // (ie. HWND on Win32). Replace 'nativeWindow' with a
- // reference to an appropriate native resource...
- rv = baseWindow-&gt;InitWindow(nativeWindow, // Native window
- nsnull, // Always nsnull.
- x, y, cx, cy); // Initial dimensions...
- if (NS_FAILED(rv)) return rv;
-
- // Create the child window for the WebBrowser.
- rv = baseWindow-&gt;Create();
- if (NS_FAILED(rv)) return rv;
-
- // At this point webBrowser contains the new initialized instance
- // of the nsWebBrowser component...
- // Save webBrowser before it goes out of scope :-)
-
-</pre>
-<p><strong>Web Navigation</strong></p>
-<p>The nsIWebNavigation interface is used to load URIs into the WebBrowser and provide access to session history capabilities - such as back and forward.</p>
-<p><strong>Clipboard</strong></p>
-<p>The WebBrowser exposes access to the system clipboard via the nsIClipboardCommands interface. This interface supports cut/copy/paste operations on the current selection within the WebBrowser window.</p>
-<p><strong>Printing (not yet implemented)</strong></p>
-<p>Printing the contents of a DOMWindow within a WebBrowser is a two step process. First, the printer and page options are collected via the nsIPrintOptions interface. On most platforms this involves displaying a native Print dialog box. Once all of the options have been set, the nsIWebBrowserPrint interface is used to print the contents of the desired DOMWindow.</p>
-<p><strong>Searching</strong></p>
-<p>Searching within a nsWebBrowser is controlled via the nsIWebBrowserFind interface. The search is always performed within the DOMWindow which currently has the focus.</p>
-<p><strong>Focus Management</strong></p>
-<p>Focus managment within the WebBrowser is accessed via the nsIWebBrowserFocus interface.</p>
-<p>This interface serves two purposes. First, it provides methods for the embedding application to notify a WebBrowser of activation/deactivation and to control tabbing order... This interface also allows access to the currently focused DOMWindow and DOMElement.</p>
-<p><strong>Context Menu notifications</strong></p>
-<p>Right-click context menu notifications are passed up to the embedding application through the nsIContextMenuListener interface. These notifications allow the embedding application to display context menus based on user activity within the WebBrowser (such as a right-click on a hypertext link).</p>
-<p><strong>Saving Documents</strong></p>
-<p><strong>Notification Interfaces which the embedding application should implement</strong></p>
-<h3 id="nsFile" name="nsFile">nsFile</h3>
-<h2 id="Public_Interfaces" name="Public_Interfaces">Public Interfaces</h2>
-<p><strong>nsISupports</strong></p>
-<p>Base Component Object Model interface. This interface provides runtime interface discovery and a reference counted memory model fashioned after the Microsoft COM IUnknown interface.</p>
-<p><em>Interface status...</em> none</p>
-<p><em>Interface definition:</em> nsISupportsUtils.h</p>
-<p><br>
- <strong>nsIInterfaceRequestor</strong></p>
-<p>This Interface provides an interface discovery mechanism which does not imply aggregation. <em>Interface status...</em> none</p>
-<p><em>Interface definition:</em> nsIInterfaceRequestor.idl</p>
-<p><strong>nsIWeakReference</strong></p>
-<p>This interface is used to retern a proxy reference to a component.</p>
-<p><em>Interface status...</em> <a class="external" href="http://www.mozilla.org/projects/embedding/apiReviewNotes.html#nsIWeakReference">being reviewed</a></p>
-<p><em>Interface definition:</em> nsIWeakReference.idl</p>
-<p><strong>nsISimpleEmunerator</strong></p>
-<p>This interface provides a simple enumeration abstraction.</p>
-<p><em>Interface status...</em> <a class="external" href="http://www.mozilla.org/projects/embedding/apiReviewNotes.html#nsISimpleEmunerator">being reviewed</a></p>
-<p><em>Interface definition:</em> nsISimpleEnumerator.idl</p>
-<p><strong>nsIServiceManager</strong></p>
-<p>This interface allows access to global services within mozilla.</p>
-<p><em>Interface status...</em> none</p>
-<p><em>Interface definition:</em> nsIServiceManager.h</p>
-<p><br>
- <strong>nsIShutdownListener</strong></p>
-<p>This interface is used to receive notifications when the Service Manager is being shutdown.</p>
-<p><em>Interface status...</em> none</p>
-<p><em>Interface definition:</em> nsIServiceManager.h</p>
-<p><br>
- <strong>nsIComponentManager</strong></p>
-<p>This interface allows new instances of registered XPCOM components to be instantiated.</p>
-<p><em>Interface status...</em> none</p>
-<p><em>Interface definition:</em> nsIComponentManager.idl</p>
-<p><br>
- <strong>nsIFactory</strong></p>
-<p>This interface is used by the Component Manager to create new instances of a particular XPCOM component. Each component must provide a factory implementation for creating new instances.</p>
-<p><em>Interface status...</em> none</p>
-<p><em>Interface definition:</em> nsIFactory.idl</p>
-<p><br>
- <strong>nsIMemory</strong></p>
-<p>This interface provides access to the global memory management functionality.</p>
-<p><em>Interface status...</em> <a class="external" href="http://www.mozilla.org/projects/embedding/apiReviewNotes.html#nsIMemory">being reviewed</a></p>
-<p><em>Interface definition:</em> nsIMemory.idl</p>
-<p><br>
- <strong>nsIDOMWindow</strong></p>
-<p>This interface is used to represent the window containing a specific document.</p>
-<p><em>Interface status...</em> <a class="external" href="http://www.mozilla.org/projects/embedding/apiReviewNotes.html#nsIDOMWindow">being reviewed</a></p>
-<p><em>Interface definition:</em> nsIDOMWindow.idl</p>
-<p><br>
- <strong>nsIBaseWindow</strong></p>
-<p>This interface provides access to various window operations.</p>
-<p><em>Interface status...</em> <a class="external" href="http://www.mozilla.org/projects/embedding/apiReviewNotes.html#nsIBaseWindow">being reviewed</a></p>
-<p><em>Interface definition:</em> nsIBaseWindow.idl</p>
-<p><br>
- <strong>nsIRequest</strong></p>
-<p>This interface provides a means to control various operations.</p>
-<p><em>Interface status...</em> <a class="external" href="http://www.mozilla.org/projects/embedding/apiReviewNotes.html#nsIRequest">being reviewed</a></p>
-<p><em>Interface definition:</em> nsIRequest.idl</p>
-<p><br>
- <strong>nsIWebBrowser</strong></p>
-<p>This is the primary interface to the WebBrowser component.</p>
-<p><em>Interface status...</em> <a class="external" href="http://www.mozilla.org/projects/embedding/apiReviewNotes.html#nsIWebBrowser">being reviewed</a></p>
-<p><em>Interface definition:</em> nsIWebBrowser.idl</p>
-<p><br>
- <strong>nsIWebBrowserSetup</strong></p>
-<p>This interface is used to enable or disable various capabilities of a nsWebBrowser instance.</p>
-<p><em>Interface status...</em> <a class="external" href="http://www.mozilla.org/projects/embedding/apiReviewNotes.html#nsIWebBrowserSetup">being reviewed</a></p>
-<p><em>Interface definition:</em> nsIWebBrowserSetup.idl</p>
-<p><br>
- <strong>nsIWebBrowserChrome</strong></p>
-<p>This interface provides access to the window containing an nsWebBrowser instance.</p>
-<p><em>Interface status...</em> <a class="external" href="http://www.mozilla.org/projects/embedding/apiReviewNotes.html#nsIWebBrowserChrome">being reviewed</a></p>
-<p><em>Interface definition:</em> nsIWebBrowserChrome.idl</p>
-<p><br>
- <strong>nsIWebNavigation</strong></p>
-<p>This interface exposes the web navigation functionality of the nsWebBrowser component.</p>
-<p><em>Interface status...</em> <a class="external" href="http://www.mozilla.org/projects/embedding/apiReviewNotes.html#nsIWebNavigation">being reviewed</a></p>
-<p><em>Interface definition:</em> nsIWebNavigation.idl</p>
-<p><br>
- <strong>nsIWebBrowserPersist</strong></p>
-<p>This interface exposes the save-as functionality of the nsWebBrowser component.</p>
-<p><em>Interface status...</em> <a class="external" href="http://www.mozilla.org/projects/embedding/apiReviewNotes.html#nsIWebBrowserPersist">being reviewed</a></p>
-<p><em>Interface definition:</em> nsIWebBrowserPersist.idl</p>
-<p><br>
- <strong>nsIWebBrowserPrint</strong></p>
-<p>This interface allows printing of individual (or a collection of) DOM Windows within a nsWebBrowser component.</p>
-<p><em>Interface status...</em> <a class="external" href="http://www.mozilla.org/projects/embedding/apiReviewNotes.html#nsIWebBrowserPrint">being reviewed</a></p>
-<p><em>Interface definition:</em> nsIWebBrowserPrint.idl</p>
-<p><br>
- <strong>nsIWebBrowserFind</strong></p>
-<p>This interface exposes the searching capabilities of the nsWebBrowser component.</p>
-<p><em>Interface status...</em> none</p>
-<p><em>Interface definition:</em> nsIWebBrowserFind.idl</p>
-<p><br>
- <strong>nsIWebBrowserFocus</strong></p>
-<p>This interface provides access to the focus information of a nsWebBrowser instance.</p>
-<p><em>Interface status...</em> <a class="external" href="http://www.mozilla.org/projects/embedding/apiReviewNotes.html#nsIWebBrowserFocus">being reviewed</a></p>
-<p><em>Interface definition:</em> nsIWebBrowserFocus.idl</p>
-<p><br>
- <strong>nsIWebProgress</strong></p>
-<p><em>Interface status...</em></p>
-<p><em>Interface definition:</em></p>
-<p><br>
- <strong>nsIWebProgressListener</strong></p>
-<p><em>Interface status...</em></p>
-<p><em>Interface definition:</em></p>
-<p><br>
- <strong>nsIPrompt</strong></p>
-<p><em>Interface status...</em></p>
-<p><em>Interface definition:</em></p>
-<p><br>
- <strong>nsIPrefs</strong></p>
-<p><em>Interface status...</em></p>
-<p><em>Interface definition:</em></p>
-<p><br>
- <strong>{{ interface("nsIProfile") }}</strong></p>
-<p>The Profile Manager creates and manages user profiles; each profile is essentially a complete configuration of the application, including preferences, installed extensions, and so forth.</p>
-<p><br>
- <strong>nsIDirectoryServiceProvider</strong></p>
-<p><em>Interface status...</em></p>
-<p><em>Interface definition:</em></p>
-<p><br>
- <strong>nsILocalFile</strong></p>
-<p><em>Interface status...</em></p>
-<p><em>Interface definition:</em></p>
-<p><br>
- <strong>nsIFile</strong></p>
-<p><em>Interface status...</em></p>
-<p><em>Interface definition:</em></p>
-<p><br>
- <strong>nsIClipboardCommands</strong></p>
-<p><em>Interface status...</em></p>
-<p><em>Interface definition:</em></p>
-<p><br>
- <strong>nsISelection</strong></p>
-<p><em>Interface status...</em></p>
-<p><em>Interface definition:</em></p>
-<p><br>
- <strong>nsIURILoader</strong></p>
-<p><em>Interface status...</em></p>
-<p><em>Interface definition:</em></p>
-<p><br>
- <strong>nsIURIContentListener</strong></p>
-<p><em>Interface status...</em></p>
-<p><em>Interface definition:</em></p>
-<p> </p>
-<h2 id="Defining_New_XPCOM_Components" name="Defining_New_XPCOM_Components">Defining New XPCOM Components</h2>
-<div class="originaldocinfo">
- <h2 id="Original_Document_Information" name="Original_Document_Information">Original Document Information</h2>
- <ul>
- <li>Author(s): rpotts, alecf, oeschger at netscape.com</li>
- <li>Last Updated Date: March 5, 2003</li>
- <li>Copyright Information: Creative Commons</li>
- </ul>
-</div>
-<p> </p>
diff --git a/files/fr/mozilla/gecko/mozilla_embarqué/faq_de_mozilla_embarqué/embarquer_gecko/index.html b/files/fr/mozilla/gecko/mozilla_embarqué/faq_de_mozilla_embarqué/embarquer_gecko/index.html
deleted file mode 100644
index e35036fbf4..0000000000
--- a/files/fr/mozilla/gecko/mozilla_embarqué/faq_de_mozilla_embarqué/embarquer_gecko/index.html
+++ /dev/null
@@ -1,133 +0,0 @@
----
-title: Embarquer Gecko
-slug: Mozilla/Gecko/Mozilla_embarqué/FAQ_de_Mozilla_embarqué/Embarquer_Gecko
-tags:
- - FAQ_de_Mozilla_embarqué
-translation_of: Mozilla/Gecko/Embedding_Mozilla/FAQ/Embedding_Gecko
----
-<div class="blockIndicator obsolete obsoleteHeader"><p><strong><span class="icon-only-inline" title="This is an obsolete API and is no longer guaranteed to work."><i class="icon-trash"> </i></span> Obsolète</strong><br>Cette fonctionnalité est obsolète. Bien qu'encore supportée par des navigateurs, son utilisation est découragée pour tout nouveau projet. Évitez de l'utiliser.</p></div>
-
-<div class="warning">Embedding of Gecko is no longer supported. If you currently embed Gecko, you should use an alternate solution, because you will not be able to pick up new security improvements. <strong>Do not use the techniques covered on this page; this material is retained for historical purposes only.</strong></div>
-
-<h2 id="Section_2__Embarquer_Gecko" name="Section_2_:_Embarquer_Gecko">Section 2 : Embarquer Gecko</h2>
-
-<h3 id="De_quels_fichiers_ai-je_besoin_pour_embarquer_.3F" name="De_quels_fichiers_ai-je_besoin_pour_embarquer_.3F">De quels fichiers ai-je besoin pour embarquer ?</h3>
-
-<p>Actuellement, vous devez télécharger et compiler toute l'arborescence des sources du navigateur Mozilla puis choisir les fichiers binaires que vous souhaitez embarquer dans votre application.<br>
- Les<em>nightly builds</em> sont créées automatiquement depuis les manifests donc vous pouvez commencer à chercher de ce coté.</p>
-
-<p>Comment puis-je compiler les sources à embarquer ?</p>
-
-<p>Premièrement <a href="fr/Documentation_sur_la_compilation">compilez Mozilla</a>, puis saisissez :</p>
-
-<pre class="eval">cd mozilla/embedding/config
-make
-</pre>
-
-<p>Note : Si vous utilisez un <code>objdir</code>, placez-vous plutôt dans le répertoire <code>mozilla/&lt;objdir&gt;/embedding/config</code> puis lancez la compilation avec <code>make</code>.</p>
-
-<p>Un répertoire appelé <code>mozilla/dist/Embed</code> est créé, il contient les fichiers spécifiés par les manifests par défaut et chrome. Vous pouvez tester les compilations par défaut en exécutant les applications de test TestGtkEmbed sous Unix ou MFCEmbed sous Win32. Pour exécuter TestGtlEmbed sous Unix saisissez :</p>
-
-<pre class="eval">cd mozilla/dist/Embed
-./run-mozilla.sh ./TestGtkEmbed
-</pre>
-
-<h3 id="Comment_est_faite_la_distribution_embarqu.C3.A9e_.3F" name="Comment_est_faite_la_distribution_embarqu.C3.A9e_.3F">Comment est faite la distribution embarquée ?</h3>
-
-<p>Look in <code><a href="https://dxr.mozilla.org/mozilla-central/source/embedding/config/" rel="custom">embedding/config/</a></code> to see a the embedding build process. The basebrowser-win (or basebrowser-unix etc.) file determines which files need to be copied. The embed-jar.mn specifies what chrome is required.</p>
-
-<p>Note that this sample only contains a<em>typical</em> subset of files. You may wish to add or remove files from basebrowser-foo (where foo is win, unix or mach as appropriate) depending on the capabilities you need in your product, or supplement these files by writing your own client-foo file which will be read in addition to basebrowser-foo.</p>
-
-<p>For instance, you can remove the "necko2" library if you do not need FTP, but you will need to add the "appcomps" and "mork" libraries in order to use the Mozilla browser's global history implementation.</p>
-
-<p>The embedding distribution <a href="https://dxr.mozilla.org/mozilla-central/source/embedding/config/readme.html" rel="custom">readme file</a> provides more information.</p>
-
-<p><small>Todo: provide a more complete map of features &lt;-&gt; files</small></p>
-
-<h3 id="Pourquoi_ai-je_besoin_de_distribuer_des_fichiers_XPT_avec_mon_application_.3F" name="Pourquoi_ai-je_besoin_de_distribuer_des_fichiers_XPT_avec_mon_application_.3F">Pourquoi ai-je besoin de distribuer des fichiers XPT avec mon application ?</h3>
-
-<p>XPT files are XPCOM type libraries and contain binary definitions of interfaces used by cross-thread marshalling routines and JavaScript to call objects. In other words they are as vital as DLLs to ensure Gecko functions properly.</p>
-
-<p>XPT files can be concatenated together using the xpt_link tool to reduce clutter and improve startup performance. There is a special perl script for this purpose, that you can see <a href="https://dxr.mozilla.org/mozilla-central/source/xpinstall/packager/xptlink.pl" rel="custom">here</a>.</p>
-
-<h3 id="Comment_me_pr.C3.A9munir_des_changements_de_Gecko_.3F" name="Comment_me_pr.C3.A9munir_des_changements_de_Gecko_.3F">Comment me prémunir des changements de Gecko ?</h3>
-
-<p>If you want to be protected against changes in the Gecko, you should only use interfaces and API that are clearly marked FROZEN in their idl description. This query will find most of the frozen interfaces: <a href="http://mxr.mozilla.org/mozilla-central/search?string=us+FROZEN">Frozen Interface and APIs</a>. Interfaces are being reviewed and frozen all the time and cover most things embedders will want to do.</p>
-
-<p>You can still use unfrozen interfaces (hey it's open source and we can't stop you!) and even reach into the guts of the code but you do so at your own risk. Subsequent releases of Mozilla may well change these interfaces and your source and binary will break as a result.</p>
-
-<p>See the <a class="external" href="http://www.mozilla.org/projects/embedding/embedapiref/embedapiTOC.html">Embedding API Reference</a> for more information</p>
-
-<h3 id="Cela_veut-il_dire_que_mon_application_fonctionnera_avec_toutes_les_futures_versions_de_GRE.2FGecko.2FMozilla_.3F" name="Cela_veut-il_dire_que_mon_application_fonctionnera_avec_toutes_les_futures_versions_de_GRE.2FGecko.2FMozilla_.3F">Cela veut-il dire que mon application fonctionnera avec toutes les futures versions de GRE/Gecko/Mozilla ?</h3>
-
-<p>As long as you use frozen interfaces, the answer is: "Almost." Unfortunately vtable layout can vary from compiler to compiler. This mostly affects Linux compilers such as gcc which have changed their vtable layout more than once in the past few years. See the document on <a class="external" href="http://www.mozilla.org/projects/xpcom/binary-compatibility.html">binary compatibility</a>. <span class="comment">when ported too, this should be an internal link</span></p>
-
-<h3 id="Quelles_plate-formes_sont_support.C3.A9es_.3F" name="Quelles_plate-formes_sont_support.C3.A9es_.3F">Quelles plate-formes sont supportées ?</h3>
-
-<p>Short answer is anything Mozilla can run on, then Gecko can too. However, the embedding is concentrating on three primary platforms:</p>
-
-<ul>
- <li>Windows (95? definitely 98 and later)</li>
- <li>Linux (and probably most other X-windows based *nix variants)</li>
- <li>Macintosh OS X. MacOS 8.6 and 9 support is now deprecated to the ports section of the Mozilla project and are not being actively worked on.</li>
-</ul>
-
-<h3 id="L.27embarquement_supporte-t-il_des_protocoles_s.C3.A9curis.C3.A9s_comme_HTTPS_.3F" name="L.27embarquement_supporte-t-il_des_protocoles_s.C3.A9curis.C3.A9s_comme_HTTPS_.3F">L'embarquement supporte-t-il des protocoles sécurisés comme HTTPS ?</h3>
-
-<p>Yes, psm is supported in embedding.</p>
-
-<h3 id="Comment_mes_applications_communiquent-elles_avec_Gecko_.3F" name="Comment_mes_applications_communiquent-elles_avec_Gecko_.3F">Comment mes applications communiquent-elles avec Gecko ?</h3>
-
-<p>The Embedding API provides a set of interfaces and to control the embedded application, and another set of interfaces that the containing application must implement in order to receive asynchronous notifications from the embedded browser.</p>
-
-<p><small>Todo: insert jud's picture here?</small></p>
-
-<h3 id="Puis-je_embarquer_sans..." name="Puis-je_embarquer_sans...">Puis-je embarquer sans...</h3>
-
-<p>(Some of the more common questions)</p>
-
-<ul>
- <li>FTP support? Yes.</li>
- <li>HTTPS support? Yes.</li>
- <li>Network support? No, maybe someday</li>
- <li>XUL support? No, but someday yes.</li>
- <li>JavaScript support? No, maybe someday.</li>
- <li>CSS support? No, never.</li>
- <li>DOM support? No, probably never.</li>
- <li>XML support? No, probably never.</li>
- <li>International Characters Sets? Yes.</li>
- <li>Java support? Yes.</li>
-</ul>
-
-<h3 id="Puis-je_embarquer_l.27.C3.A9diteur_HTML_de_Mozilla_.3F" name="Puis-je_embarquer_l.27.C3.A9diteur_HTML_de_Mozilla_.3F">Puis-je embarquer l'éditeur HTML de Mozilla ?</h3>
-
-<p>Sort of. The latest word is that you can embed an editor in a native app, and do command handling and updating via the command handling APIs. There is some lacking functionality (e.g. controlling editor types, inserting and extracting HTML). In addition, the command handling APIs are soon going to change, when Mike Judge lands a long-standing patch (which missed the 1.0 change, and bas been delayed way too long).</p>
-
-<p>Documentation is lacking, mostly because of pending API changes. Check out the <a class="external" href="http://www.mozilla.org/editor/editor-embedding.html">Embedding Editor</a> page for more info.</p>
-
-<h3 id="Quel_toolkit_de_widget_peut_utiliser_Mozilla_.3F" name="Quel_toolkit_de_widget_peut_utiliser_Mozilla_.3F">Quel toolkit de widget peut utiliser Mozilla ?</h3>
-
-<p>Mozilla makes its own cross-platform widgets for HTML forms, and does not use a 3rd-party cross platform toolkit, nor the native widgets that a platform provides. The widgets are drawn using GFX, Mozilla's abstraction of a drawing toolkit. They are styled with CSS, including minor per-platform tweaks to allow them to look like the native platform's native widgets. This allows full CSS and DOM support of all HTML widgets across all platforms, without requiring each platform to separately support every part of CSS and DOM.</p>
-
-<p>There have been a number of requests for native widget support but at this time there are no plans to support a second widget set beyond the cross-platform widgets.</p>
-
-<p>In the future, widgets may be defined with XBL.</p>
-
-<h3 id="Mozilla_embarqu.C3.A9_supporte-t-il_Java_.3F" name="Mozilla_embarqu.C3.A9_supporte-t-il_Java_.3F">Mozilla embarqué supporte-t-il Java ?</h3>
-
-<p>We provide Java support through the OJI plugin API. The Java plugin from Sun takes ~7Mb of disk space (Linux). If you want Java support you should edit the basebrowser-win / basebrowser-unix etc. file and uncomment the OJI section or copy those files manually after an embedding dist has been created.</p>
-
-<h3 id="Puis-je_embarquer_Mozilla_dans_n.27importe_quel_autre_cas_.3F" name="Puis-je_embarquer_Mozilla_dans_n.27importe_quel_autre_cas_.3F">Puis-je embarquer Mozilla dans n'importe quel autre cas ?</h3>
-
-<p>Aside from programming direct to the embedding API you may also embed Mozilla:</p>
-
-<ul>
- <li>In GTK applications using the <a class="external" href="http://www.mozilla.org/unix/gtk-embedding.html">Gtk Mozilla Embedding Widget</a>.</li>
- <li>In Win32 ActiveX applications using the <a class="external" href="http://www.iol.ie/%7Elocka/mozilla/mozilla.htm">Mozilla ActiveX Control</a>.</li>
- <li>In Mac applications using <a href="https://dxr.mozilla.org/mozilla-central/source/embedding/browser/powerplant/" rel="custom">PPEmbed</a>.</li>
- <li>In a Java Application using <a class="external" href="http://www.mozilla.org/projects/blackwood/webclient/">Webclient</a>.</li>
-</ul>
-
-<p><span class="comment">Interwiki Language Links</span></p>
-
-<div class="noinclude"> </div>
diff --git a/files/fr/mozilla/gecko/mozilla_embarqué/faq_de_mozilla_embarqué/introduction_à_gecko_et_à_l'embarqué/index.html b/files/fr/mozilla/gecko/mozilla_embarqué/faq_de_mozilla_embarqué/introduction_à_gecko_et_à_l'embarqué/index.html
deleted file mode 100644
index 1836cab0bb..0000000000
--- a/files/fr/mozilla/gecko/mozilla_embarqué/faq_de_mozilla_embarqué/introduction_à_gecko_et_à_l'embarqué/index.html
+++ /dev/null
@@ -1,53 +0,0 @@
----
-title: Introduction à Gecko et à l'embarqué
-slug: >-
- Mozilla/Gecko/Mozilla_embarqué/FAQ_de_Mozilla_embarqué/Introduction_à_Gecko_et_à_l'embarqué
-tags:
- - FAQ_de_Mozilla_embarqué
-translation_of: Mozilla/Gecko/Embedding_Mozilla/FAQ/How_do_I...
----
-<p> </p>
-<h2 id="Introduction_.C3.A0_Gecko_et_.C3.A0_l.27embarquement" name="Introduction_.C3.A0_Gecko_et_.C3.A0_l.27embarquement">Introduction à Gecko et à l'embarquement</h2>
-<h3 id="Qu.27est-ce_que_Gecko_.3F" name="Qu.27est-ce_que_Gecko_.3F">Qu'est-ce que Gecko ?</h3>
-<p>Gecko est le moteur interne du navigateur, ce qui inclut networking, un parser, un modèle de contenu, chrome et les autres technologies sur lesquelles Mozilla et les autres applications sont basées. En d'autres termes, tout ce qui n'est pas spécifique à une application.</p>
-<p>La FAQ de Gecko est légèrement obsolète <a class="external" href="http://www.mozilla.org/newlayout/faq.html">FAQ</a>.</p>
-<h3 id="Qu.27est-ce_que_Mozilla_.3F" name="Qu.27est-ce_que_Mozilla_.3F">Qu'est-ce que Mozilla ?</h3>
-<p>Mozilla est un navigateur web open-source multi plates-formes, un éditeur et une application de messagerie / newsgroup créé sur Gecko.</p>
-<h3 id="Qu.27est-ce_que_le_GRE_.3F" name="Qu.27est-ce_que_le_GRE_.3F">Qu'est-ce que le GRE ?</h3>
-<p>Le GRE (formellement le MRE) qui est l'acronime de <a href="fr/GRE">Gecko Runtime Environment</a>, est un support d'exécution partagé que toutes les applications peuvent utiliser. Il est maintenant développé comme un projet indépendant connu sous le nom de <a href="fr/XULRunner">XULRunner</a>.</p>
-<h3 id="Qu.27est-ce_que_XPCOM_.3F" name="Qu.27est-ce_que_XPCOM_.3F">Qu'est-ce que XPCOM ?</h3>
-<p>XPCOM est un
- <i>
- modèle objet de composants</i>
- (semblable à COM/DCOM de MS Windows mais conçut pour être portable sur plusieurs plates-formes) utilisé pour unifier la création, le contrôle, et la suppression d'objets et d'autres données à travers Mozilla. Le coeur de XPCOM est l'interface
- <i>
- nsISupports</i>
- , qui offre des services de comptage des références et d'introspection (possibilité d'interroger les objets afin de se renseigner sur leurs capacités). Tout les objets XPCOM implémentent l'interface
- <i>
- nsISupports</i>
- , en plus de toutes les interfaces spécifiques qui lui sont nécessaire. En fin de compte, XPCOM fournit une couche de services indépendante du language appelé
- <i>
- XPConnect</i>
- qui permet l'implémentation d'objets dans tout language supporté. Grâce à
- <i>
- XPConnect</i>
- , ces objets peuvent aussi être appelés à partir de n'importe lequel de ces languages.</p>
-<p>On peut trouver plus d'informations <a class="external" href="http://www.mozilla.org/projects/xpcom/">ici</a>.</p>
-<h3 id="Que_signifie_embarquer_Gecko_.3F" name="Que_signifie_embarquer_Gecko_.3F">Que signifie embarquer Gecko ?</h3>
-<p>Gecko autorise des developpeurs tiers à utiliser la même technologie que Mozilla. Cela signifie que vous pouvez tirer partie, dans une application tierce, des services d'un navigateur web, ouvrir des canaux de communications et faire transiter des flux de données à travers le service réseau, le
- <i>
- Modèle Objet de Document</i>
- (NdT: en anglais DOM,
- <i>
- Document Object Model</i>
- ) et plus encore. Vous pouvez même bâtir entièrement une nouvelle application en utilisant Gecko.</p>
-<h3 id="Quels_sont_les_termes_de_licence_pour_embarquer_Gecko_.3F" name="Quels_sont_les_termes_de_licence_pour_embarquer_Gecko_.3F">Quels sont les termes de licence pour embarquer Gecko ?</h3>
-<p>Les mêmes que pour le reste de Mozilla. Voir la <a class="external" href="http://www.mozilla.org/MPL/">page du MPL</a> pour plus d'informations.</p>
-<h3 id="Existe-t.27il_un_SDK_.3F" name="Existe-t.27il_un_SDK_.3F">Existe-t'il un SDK ?</h3>
-<p>Nous travaillons lentement sur une SDK, gelant et documentant les interfaces et retouchant le processus de construction. Pour le moment nous vous recommandons de <a class="external" href="http://developer.mozilla.org/fr/docs/T%C3%A9l%C3%A9chargement_du_code_source_de_Mozilla">télécharger le code source</a> puis de le <a class="external" href="http://developer.mozilla.org/fr/docs/Documentation_sur_la_compilation">compiler</a>.</p>
-<p>Des compilations nocturnes du SDK pour la plateforme Windows 32bits peuvent être disponibles <a class="link-ftp" href="ftp://ftp.mozilla.org/pub/mozilla.org/mozilla/nightly/latest-trunk/gecko-sdk-i586-pc-msvc.zip">ici</a>.</p>
-<h3 id="Quelle_est_la_derni.C3.A8re_version_.3F_Quelle_version_utiliser_.3F" name="Quelle_est_la_derni.C3.A8re_version_.3F_Quelle_version_utiliser_.3F">Quelle est la dernière version ? Quelle version utiliser ?</h3>
-<p>Les compilations embarquées et les source tarballs sont produites la nuit et peuvent être obtenues <a class="link-ftp" href="ftp://ftp.mozilla.org/pub/mozilla.org/xulrunner/nightly/latest-trunk/">ici</a>. Si vous privilégiez la stabilité, les compilations de la branche 1.7.x de Mozilla sont vivement recommendées.</p>
-<h3 id="Qui_utilise_d.C3.A9j.C3.A0_gecko_.3F" name="Qui_utilise_d.C3.A9j.C3.A0_gecko_.3F">Qui utilise déjà gecko ?</h3>
-<p>Voir <a class="external" href="http://www.mozilla.org/projects/embedding/examples/">ici</a> la liste des logiciels embarquant Gecko.</p>
-<p><span class="comment">Interwiki Language Links</span></p>
diff --git a/files/fr/mozilla/gecko/mozilla_embarqué/index.html b/files/fr/mozilla/gecko/mozilla_embarqué/index.html
deleted file mode 100644
index b8a2b5bb4c..0000000000
--- a/files/fr/mozilla/gecko/mozilla_embarqué/index.html
+++ /dev/null
@@ -1,59 +0,0 @@
----
-title: Mozilla embarqué
-slug: Mozilla/Gecko/Mozilla_embarqué
-tags:
- - Mozilla_embarqué
-translation_of: Mozilla/Gecko/Embedding_Mozilla
----
-<div>
-<p><a href="/fr/Gecko" title="fr/Gecko">Gecko</a> permet aux développeurs d'applications tierces de pouvoir bénéficier de la même technologie que celle présente dans Mozilla. Il est possible d'intégrer un navigateur Web à l'intérieur d'une autre application, d'ouvrir des canaux et de parcourir des flux de données à travers le réseau, de manipuler le <a href="/fr/DOM" title="fr/DOM">DOM</a> et ainsi de suite. Des applications entières peuvent être crées en s'appuyant sur Gecko.</p>
-</div>
-
-<table class="topicpage-table">
- <tbody>
- <tr>
- <td>
- <h2 class="Documentation" id="Documentation"><a href="/Special:Tags?tag=Mozilla_embarqué&amp;language=fr" title="Special:Tags?tag=Mozilla_embarqué&amp;language=fr">Documentation</a></h2>
-
- <dl>
- <dt><a href="/fr/docs/FAQ_de_Mozilla_embarqué" title="fr/FAQ_de_Mozilla_embarqué">FAQ de Mozilla embarqué</a></dt>
- <dd><small>Une Foire Aux Questions très complète concernant Mozilla embarqué.</small></dd>
- </dl>
-
- <dl>
- <dt><a href="/fr/docs/Gecko/Gecko_Embedding_Basics" title="fr/Les_bases_de_Gecko_embarqué">Les bases de Gecko embarqué</a></dt>
- <dd><small>Une introduction à l'incorporation du moteur de rendu Gecko dans une application (à traduire de <a href="/en/Gecko_Embedding_Basics">en:Gecko Embedding Basics</a>).</small></dd>
- </dl>
-
- <dl>
- <dt><a href="/fr/docs/Intégration_de_l'éditeur" title="fr/Intégration_de_l'éditeur">Intégration de l'éditeur</a></dt>
- <dd><small>Ce document détaille la situation actuelle de l'éditeur dans ce domaine, les problèmes dans l'implémentation existante, certains scénarios possibles d'intégration de l'éditeur qui doivent être pris en compte, et une solution embarquée qui les intègrera</small>.</dd>
- </dl>
-
- <dl>
- <dt><a href="https://developer.mozilla.org/fr/docs/Gecko/Mozilla_embarqué/Roll_your_own_browser" title="fr/Construisez_votre_propre_navigateur_-_Comment_embarquer_Mozilla">Construisez votre propre navigateur - Comment embarquer Mozilla</a></dt>
- <dd><small>Une introduction rapide à Mozilla embarqué (à traduire de <a href="/en/Roll_your_own_browser_-_An_embedding_HowTo">en:Roll your own browser - An embedding HowTo</a>.</small></dd>
- </dl>
-
- <p><span class="alllinks"><a href="/Special:Tags?tag=Mozilla_embarqué&amp;language=fr" title="Special:Tags?tag=Mozilla_embarqué&amp;language=fr">Tous les articles…</a></span></p>
- </td>
- <td>
- <h2 class="Community" id="Communauté">Communauté</h2>
-
- <ul>
- <li>Voir les forums de Mozilla…</li>
- </ul>
-
- <p>{{ DiscussionList("dev-embedding", "mozilla.dev.embedding") }}</p>
-
- <h2 class="Related_Topics" id="Sujets_liés">Sujets liés</h2>
-
- <dl>
- <dd><a href="/fr/Gecko" title="fr/Gecko">Gecko</a>, <a href="/fr/XPCOM" title="fr/XPCOM">XPCOM</a></dd>
- </dl>
- </td>
- </tr>
- </tbody>
-</table>
-
-<p> </p>
diff --git a/files/fr/mozilla/gecko/mozilla_embarqué/intégration_éditeur/index.html b/files/fr/mozilla/gecko/mozilla_embarqué/intégration_éditeur/index.html
deleted file mode 100644
index 4e6e8c8281..0000000000
--- a/files/fr/mozilla/gecko/mozilla_embarqué/intégration_éditeur/index.html
+++ /dev/null
@@ -1,133 +0,0 @@
----
-title: Intégration de l'éditeur
-slug: Mozilla/Gecko/Mozilla_embarqué/Intégration_éditeur
-tags:
- - Midas
- - Mozilla_embarqué
-translation_of: Mozilla/Gecko/Embedding_Mozilla/Embedding_the_editor
----
-<h3 id="Introduction" name="Introduction">Introduction</h3>
-
-<p>Ce document présente les possibilités actuelles d'intégration d'un éditeur, les problèmes causés par l'intégration existante, quelques scénarios d'intégration possibles pour s'en sortir, et une solution d'intégration pour les réaliser. Pour finir, la solution retenue sera décrite étape par étape.</p>
-
-<h3 id="Mises_en_.C5.93uvre_possibles_de_l.27int.C3.A9gration" name="Mises_en_.C5.93uvre_possibles_de_l.27int.C3.A9gration">Mises en œuvre possibles de l'intégration</h3>
-
-<p>Ici sont décrits des scénarios d'intégration nécessaires pour faire fonctionner un éditeur. Notez que j'utilise le terme de « Compositeur » pour désigner une interface de composition au format HTML qui fait de l'édition de texte enrichi et « Éditeur » pour un éditeur en texte brut (aussi bien que pour la technologie sous-jacente du compositeur). <code>&lt;htmlarea&gt;</code> est vu comme une formule pour désigner un objet texte contenant du texte enrichi, cela ne veut pas dire pour autant que cette balise sera supportée dans les versions suivantes de Mozilla.</p>
-
-<h4 id="Compositeur_int.C3.A9gr.C3.A9_dans_une_application_XUL" name="Compositeur_int.C3.A9gr.C3.A9_dans_une_application_XUL">Compositeur intégré dans une application XUL</h4>
-
-<p>Les développeurs ont besoin d'intégrer des compositeurs dans leurs applications XUL en utilisant la balise <code>&lt;editor&gt;</code>, comme cela se fait aujourd'hui. Ils devraient avoir le moins possible de travail à faire pour obtenir les fonctions basiques d'édition, avoir autant d'<code>&lt;editor&gt;</code>s par fenêtre qu'ils le souhaitent et pouvoir contrôler si ces <code>&lt;editor&gt;</code>s sont en mode HTML ou en mode texte.</p>
-
-<h4 id="Compositeur_int.C3.A9gr.C3.A9_dans_une_application_native" name="Compositeur_int.C3.A9gr.C3.A9_dans_une_application_native">Compositeur intégré dans une application native</h4>
-
-<p>Dans ce cas de figure, l'<code>&lt;iframe&gt;</code> dans laquelle fonctionne l'éditeur est directement intégrée dans l'application native. Cela revient à intégrer un navigateur via nsIWebBrowser, mais en obtenant, à la place, un document éditable. L'interface du compositeur (barres d'outils, etc.) doit être implémentée à partir des éléments d'interface graphique présents dans le conteneur ou en utilisant du XUL. Cette interface doit être configurable, avec notamment des barres d'outils flottantes déplaçables (dockable ?), une même barre d'outils pour plusieurs objets compositeur, ou une pour chaque.</p>
-
-<p>Ce type d'intégration requiert que le code du compositeur fonctionne quelle que soit l'interface utilisateur (IU). La communication entre le noyau de l'éditeur et l'interface utilisateur doit pouvoir passer par une ou plusieurs interfaces qui isolent l'éditeur de l'application hôte. (L'<code>nsEditorShell</code> existant fait des suppositions sur l'hébergement de document XUL, qui doivent être contredites.)</p>
-
-<h4 id="Compositeur_int.C3.A9gr.C3.A9_dans_une_page_web_.28.3Chtmlarea.3E.29" name="Compositeur_int.C3.A9gr.C3.A9_dans_une_page_web_.28.3Chtmlarea.3E.29">Compositeur intégré dans une page web (<code>&lt;htmlarea&gt;</code>)</h4>
-
-<p>IE 5 supporte l'<a class="external" href="http://www.siteexperts.com/ie5/htmlarea/page1.asp">élément <code>&lt;HTMLArea&gt;</code></a> ; si Mozilla travaille à supporter quelque chose de similaire, l'éditeur devra être intégrable dans la mesure du possible. Il est probable qu'on utilise <a class="external" href="http://www.mozilla.org/projects/xbl/xbl.html">XBL</a> pour implémenter ce type d'objet, comme c'est prévu pour d'autres types de contrôles.</p>
-
-<p>Dans le cas de l'intégration du compositeur dans une application native, il est donc ici nécessaire de rendre l'interface utilisateur configurable, de façon que l'on puisse aussi bien l'afficher comme une barre d'outils au dessus de <code>&lt;htmlarea&gt;</code>, comme une fenêtre flottante, ou comme une barre d'outil de haut-niveau (top-level).</p>
-
-<h3 id="Probl.C3.A8mes_connus" name="Probl.C3.A8mes_connus">Problèmes connus</h3>
-
-<p>L'architecture du compositeur existant a été créée alors que d'autres parties de Mozilla étaient encore en cours de développement. Il en résulte de nombreux points faibles et anachronismes. Cette section décrit ses défauts majeurs.</p>
-
-<h4 id="Probl.C3.A8me_d.27appartenance_de_l.27.C3.A9diteur" name="Probl.C3.A8me_d.27appartenance_de_l.27.C3.A9diteur">Problème d'appartenance de l'éditeur</h4>
-
-<p>L'éditeur d'une fenêtre compositrice appartient au <code><a class="external" href="http://lxr.mozilla.org/seamonkey/source/editor/base/nsEditorShell.cpp">nsEditorShell</a></code>, qui à son tour est créé, dirigé et détruit par <code><a class="external" href="http://lxr.mozilla.org/seamonkey/source/layout/xul/base/src/nsEditorBoxObject.cpp">nsEditorBoxObject</a></code>. L'objet box est une structure de présentation qui appartient aux noeuds de contenu et survit à la destruction/reconstitution de la frame. L'objet box a également une référence vers le docShell de la frame éditrice. XBL créé un <code>nsEditorBoxObject</code> pour chaque balise <code>&lt;editor&gt;</code>, et permet à Javascript d'accéder aux propriétés de cet objet box (tel que le <code>nsIEditorShell</code>). La balise <code>&lt;editor&gt;</code> est tout simplement une <code>&lt;iframe&gt;</code> dans laquelle l'éditeur est créé. Dans les autres aspects, il se comporte comme une <code>&lt;iframe&gt;</code> XUL.</p>
-
-<p>Le problème avec ce modèle d'appartenance est qu'il ne peut y avoir qu'un éditeur par balise <code>&lt;editor&gt;</code>, alors que le document chargé dans l'<code>&lt;iframe&gt;</code> peut très bien contenir de multiples <code>&lt;iframe&gt;</code>s (dans le cas d'un document frameset ou dans un document contenant lui-même un <code>&lt;html:iframe&gt;</code>). Aujourd'hui, le compositeur ne fonctionne pas très bien avec ce types de document.</p>
-
-<h4 id="Limitation_d.27un_.C3.A9diteur_par_fen.C3.AAtre" name="Limitation_d.27un_.C3.A9diteur_par_fen.C3.AAtre">Limitation d'un éditeur par fenêtre</h4>
-
-<p>Le compositeur construit sur une architecture XUL/C++ s'est développé sur le présupposé qu'une seule balise <code>&lt;editor&gt;</code> par fenêtre suffirait. Lors de la construction de la fenêtre, nous prenons l'editorShell de l'élément <code>&lt;editor&gt;</code> <a class="external" href="http://lxr.mozilla.org/seamonkey/source/editor/ui/composer/content/editor.js#169">que l'on met dans <code>window.editorShell</code></a>. A partir de là, beaucoup de Javascript dans editor.js, ComposerCommands.js et les différents fichiés JS de dialogue s'assurent de pouvoir atteindre le seul bon éditeur via <code>window.editorShell</code>. Ce présupposé manquait de clairevoyance et doit être corrigé.</p>
-
-<h4 id="L.27.C3.A9diteur_suppose_une_structure_de_document_XUL" name="L.27.C3.A9diteur_suppose_une_structure_de_document_XUL">L'éditeur suppose une structure de document XUL</h4>
-
-<p>Du code C++ et JS présent dans l'éditeur suppose que celui-ci se trouve dans un document XUL et qu'il y ait des nœuds du document XUL en dehors, dont les attributs peuvent être récupérés pour changer l'état de l'interface utilisateur (par exemple le style des boutons). Cela doit être changé pour permettre aux conteneurs d'utiliser leurs propres apparences, probablement natives. L'éditeur doit pouvoir faire des appels à travers une ou plusieurs interfaces quand il communique avec l'interface utilisateur.</p>
-
-<h3 id="Objectifs_de_l.27int.C3.A9gration" name="Objectifs_de_l.27int.C3.A9gration">Objectifs de l'intégration</h3>
-
-<p>L'éditeur requiert des changements de conception de façon à ce que les applications intégrées soient fonctionnelles. Ces changements doivent nécessairement prendre en compte les problèmes existants. Brièvement, les objectifs de l'intégration sont :</p>
-
-<ul>
- <li><code>&lt;editor&gt;</code> devrait vous offrir un éditeur fonctionnel dans une application XUL</li>
- <li>possibilité d'avoir plusieurs <code>&lt;editor&gt;</code>s par fenêtre XUL</li>
- <li>possibilité d'intégrer une frame éditable dans une application native</li>
- <li>Les conteneurs devraient être capables de fournir leur propre interface (barre d'outils, etc).</li>
-</ul>
-
-<p>Atteindre ces objectifs doit également permettre de résoudre les problèmes suivants, liés au compositeur :</p>
-
-<ul>
- <li>il doit pouvoir traiter les documents de type frameset</li>
- <li>il doit pouvoir traiter les documents contenant des <code>&lt;iframe&gt;</code>s</li>
- <li>il ne doit pas dépendre d'une structure de document XUL donnée</li>
-</ul>
-
-<h3 id="Solutions_propos.C3.A9es" name="Solutions_propos.C3.A9es">Solutions proposées</h3>
-
-<h4 id="R.C3.A9gler_les_probl.C3.A8mes_d.27appartenance_de_l.27.C3.A9diteur" name="R.C3.A9gler_les_probl.C3.A8mes_d.27appartenance_de_l.27.C3.A9diteur">Régler les problèmes d'appartenance de l'éditeur</h4>
-
-<p>Comme décrit plus haut, les liens d'appartenance (racines) de l'éditeur doivent être changés de façon à ce qu'un éditeur se trouve au plus haut niveau du nsDocShell, plutôt que d'être accroché à l'objet <code>nsEditorBoxObject</code>. Il doit y avoir un docShell par <code>&lt;iframe&gt;</code> éditable. Cela implique :</p>
-
-<ul>
- <li>Faire une nouvelle interface : <strong><code>nsIEditorFrame</code></strong> qui est exécutée par <code>nsDocShell</code> ou une classe liée. On doit pouvoir faire appel à l'une d'entres elle à partir de <code>nsIDocShell</code>, si l'appel réussit, il indique que la frame est éditable. <code>nsIEditorFrame</code> doit contenir des méthodes pour obtenir la session d'édition et faire certains traitements génériques liés à l'éditeur (probablement commun à l'édition HTML et texte brut). Une partie de <code>nsIEditorShell</code> devraient probablement passer dans cette interface. (Cela devrait être analogue à l'interface [<a class="external" href="http://lxr.mozilla.org/seamonkey/source/docshell/base/nsIWebNavigation.idl" rel="freelink">http://lxr.mozilla.org/seamonkey/sou...Navigation.idl</a> <code>nsIWebNavigation</code> utilisée par le navigateur.)</li>
-</ul>
-
-<ul>
- <li>Quand on aura un éditeur par docShell, charger un document frameset ou une page avec une iframe dans le compositeur instanciera plus d'un éditeur de bas-niveau. Nous avons besoin d'un concept de "session d'édition" - pour avoir un seul document de haut-niveau éditable qui puisse incorporer plusieurs éditeurs. Cette interface s'appellerait <strong><code>nsI????</code></strong>. L'IU de haut-niveau et le code intégré doivent communiquer avec cette interface de session d'édition sans connaitre les éditeurs sous-jacents. La session d'édition enverra les commandes aux éditeurs individuels en fonction du focus et gérera l' annuler/rétablir entre eux.</li>
- <li><em>La solution alternative</em> : Plutôt que d'avoir de multiples éditeurs, dans ce scénario on pourrait avoir un seul éditeur capable d'enregistrer et de restorer un état, de sorte qu'il puisse être transmis entre les différents sous-documents édités. Cette état doit inclure le document, la pile d'actions 'annuler' et l'état de la saisie (? typing state). La mise en place de la session d'édition permettra la permutation de l'état de l'éditeur en fonction du changement de focus ect.</li>
-</ul>
-
-<h4 id="Plus_d.27un_.C3.A9diteur_par_fen.C3.AAtre" name="Plus_d.27un_.C3.A9diteur_par_fen.C3.AAtre">Plus d'un éditeur par fenêtre</h4>
-
-<p>Les clients compositeurs basés sur Mozilla supposent tous qu'il n'y a qu'une balise <code>&lt;editor&gt;</code> par fenêtre. Ils ont tous besoin de fonctionner avec plusieurs éditeurs. Corriger cela nécessite des modifications JS de cette ordre :</p>
-
-<ul>
- <li>Standardiser la façon dont les clients obtiennent l'editorShell (ou son remplacant, travail post-intégration) à partir de la fenêtre.</li>
- <li>S'assurer que les changements de focus entre éditeurs mettent bien à jour la notion de session courante de la fenêtre. Si on continue à utiliser <code>window.editorShell</code>, il doit être mis à jour pour supporter les changements de focus.</li>
- <li>S'assurer que chaque éditeur est correctement construit lors de la création de la fenêtre et supprimé lors de destruction de la fenêtre.</li>
- <li>S'assurer que les tests de fermeture de fenêtre (par exemple appelé <code>window.tryToClose</code>) consultent convenablement l'état de chaques éditeurs.</li>
-</ul>
-
-<h4 id="Isoler_l.27.C3.A9diteur_de_l.27interface" name="Isoler_l.27.C3.A9diteur_de_l.27interface">Isoler l'éditeur de l'interface</h4>
-
-<p>Le compositeur doit ne rien connaitre de l'IU qui le contrôle. Le plan est d'isoler le compositeur de l'IU via une nouvelle interface que le conteneur implémente. N'importe quel IU qui est aujourd'hui créée par le compositeur doit passer par cette interface.</p>
-
-<ul>
- <li>Utiliser une nouvelle interface, <code>nsIEditorUserInterface</code> pour diffuser la communication entre l'éditeur et l'IU. Un conteneur pourrait avoir besoin de l'implémenter pour avoir des menus et barres d'outils natives. Dans le compositeur, on aurait une implémentation en JS qui communique avec les commandes existantes et met à jour les noeuds XUL.</li>
- <li>Corriger le code JS et C++ qui s'adresse explicitement à des éléments dans le document XUL pour passer par <code>nsIEditorUserInterface</code>.</li>
-</ul>
-
-<h3 id="Les_.C3.A9tapes_de_l.27int.C3.A9gration" name="Les_.C3.A9tapes_de_l.27int.C3.A9gration">Les étapes de l'intégration</h3>
-
-<p>Cette section tente de préparer un plan d'implémentation, dans le but de garder tout en état de marche étape après étape (? as the various steps are taken). Certaines de ces tâches peuvent être faite simultanément.</p>
-
-<ol>
- <li>Décider comment implémenter <a href="#Probl.C3.A8me_d.27appartenance_de_l.27.C3.A9diteur">le support d'une session édition muti-éditeur</a></li>
- <li>Éliminer <a href="#Isol.C3.A9_l.27.C3.A9diteur_de_l.27interface">les interdépendances spécifiques entre le compositeur et le document XUL</a>, via <code>nsIEditorUserInterface</code></li>
- <li>Créer <a href="#Plus_d.27un_.C3.A9diteur_par_fen.C3.AAtre">un goulet d'étranglement pour communiquer avec l'éditeur qui a le focus; s'assurer que les changements de focus mettent bien à jour l'état</a></li>
- <li>Faire du docShell,<a href="#R.C3.A9gler_les_probl.C3.A8mes_d.27appartenance_de_l.27.C3.A9diteur">le propriétaire de l'éditeur, créant <code>nsIEditorFrame</code></a></li>
- <li>Créer l'API de la session d'édition qui s'occupera des collections d'éditeurs (ou rendre l'éditeur refocusable)</li>
-</ol>
-
-<h3 id="Questions_ouvertes" name="Questions_ouvertes">Questions ouvertes</h3>
-
-<h4 id="Ou_doit_se_trouver_la_logique_d.27ouverture_et_enregistrement_de_fichier_.3F" name="Ou_doit_se_trouver_la_logique_d.27ouverture_et_enregistrement_de_fichier_.3F">Ou doit se trouver la logique d'ouverture et enregistrement de fichier ?</h4>
-
-<p>Il semble que certains conteneurs voudront composer leur logique d'ouverture et enregistrement de fichier, d'autres non. Ou devrait se trouver cette logique ? Peut-elle être en JavaScript ? Bien sur, un conteneur doit pouvoir utiliser ses propres boîtes de dialogue Ouvrir et Enregistrer et communiquer avec le compositeur pour coordonner le processus d'ouverture et enregistrement.</p>
-
-<h5 id="R.C3.A9ponse_possible" name="R.C3.A9ponse_possible">Réponse possible</h5>
-
-<p>Le conteneur fournit les boîtes de dialogue Ouvrir et Enregistrer s'il le veut. Dans le compositeur, on peut adopter (? pose) ces boîtes de dialogue à partir de JS (? certains problèmes liés à <code>nsIFile</code> ont été résolu - once some <code>nsIFile</code> problems have been solved).</p>
-
-<h4 id="Toute_l.27IU_du_compositeur_doit-elle_.C3.AAtre_rempla.C3.A7able_.3F" name="Toute_l.27IU_du_compositeur_doit-elle_.C3.AAtre_rempla.C3.A7able_.3F">Toute l'IU du compositeur doit-elle être remplaçable ?</h4>
-
-<p>Une immense partie de l'IU du compositeur se trouve dans les différentes boîtes de dialogue pour l'édition des tableaux, liens, images etc. Doit-on donner la possibilité à un conteneur de remplacer tout cela par une IU native ?</p>
-
-<h5 id="R.C3.A9ponse_possible_2" name="R.C3.A9ponse_possible_2">Réponse possible</h5>
-
-<p>Les boîtes de dialogue utilisent les API de l'éditeur disponible pour obtenir et affecter les données, donc elles peuvent faire tout leur travail en passant par les API existantes. Si un intégrateur veut une IU entièrement native, il aura à coder ses propres boîtes de dialogue et logiques associées, mais les API devraient toujours leurs être accessibles. Il semble que ce ne soit pas une bonne solution.</p>
diff --git a/files/fr/mozilla/gecko/sdk_gecko/index.html b/files/fr/mozilla/gecko/sdk_gecko/index.html
deleted file mode 100644
index 306fb0590f..0000000000
--- a/files/fr/mozilla/gecko/sdk_gecko/index.html
+++ /dev/null
@@ -1,61 +0,0 @@
----
-title: SDK Gecko
-slug: Mozilla/Gecko/SDK_Gecko
-tags:
- - Développement_de_Mozilla
- - Extensions
- - Gecko
-translation_of: Mozilla/Gecko/Gecko_SDK
----
-<p>
-</p>
-<h2 id="Aper.C3.A7u" name="Aper.C3.A7u"> Aperçu </h2>
-<p>Le SDK Gecko est un ensemble de fichiers <a href="fr/XPIDL">XPIDL</a>, d'entêtes et d'outils pour développer des composants <a href="fr/XPCOM">XPCOM</a> pouvant à leur tour être accéder depuis <a href="fr/XUL">XUL</a> grâce à <a href="fr/JavaScript">JavaScript</a>.
-</p><p>Notez que le développement de tels composants ne nécessite pas que vous possédiez la totalité des sources, par exemple de Firefox, puisque vous n'accédez pas à l'interface utilisateur depuis un composant. Comme le composant contient des fonctions basiques, il doit pouvoir fonctionner avec chaque application de la plateforme Mozilla. Il n'y a donc aucune raison de se baser sur une application particulière pour créer une fonctionnalité générique. C'est la raison pour laquelle a été conçu le SDK Gecko.
-</p><p>Il ne faut pas confondre le SDK Gecko avec <a href="fr/XULRunner">XULRunner</a>. Le SDK Gecko est une collection de fichiers d'entêtes et d'outils utilisée pour développer des composants XPCOM généraux afin d'ajouter des fonctionnalités à une plateforme existante, alors que XULRunner peut servir de support à l'éxécution d'applications autonomes ou embarquées basées sur la technologie Mozilla.
-</p>
-<h2 id="Obtenir_le_SDK" name="Obtenir_le_SDK"> Obtenir le SDK </h2>
-<p><b>Notez</b> qu'il n'est pas nécessaire de re-télécharger ou de re-compiler le SDK Gecko à chaque mise à jour de sécurité de Mozilla puisque le SDK Gecko ne subit pas de modifications lors de ces mises à jour.
-</p>
-<h3 id="T.C3.A9l.C3.A9chargement" name="T.C3.A9l.C3.A9chargement"> Téléchargement </h3>
-<p>Lorsque vous téléchargez le SDK Gecko, vous devez choisir la version correspondant à la plus ancienne version de Mozilla que vous ciblez. Autrement dit, vous ne devez pas télécharger le SDK Gecko 1.7 si vous souhaitez utiliser votre composant avec Mozilla 1.6. C'est un point important car la compatibilité binaire n'est assurée qu'avec les versions futures du moteur de rendu Gecko. Pour ce tutoriel, nous utiliserons la version 1.7 du SDK Gecko, ainsi notre composant sera compatible avec Mozilla 1.7 (et ses produits dérivés tels que Firefox 1.0 ou Netscape 7.2).
-</p>
-<table class="standard-table">
-<tbody><tr>
-<th>Lien de téléchargement
-</th><th>Gecko 1.7 (Firefox 1.0)
-</th><th>Gecko 1.8 (Firefox 1.5 et 2.0)
-</th></tr><tr>
-<th>Windows
-</th><td><a class="external" href="http://releases.mozilla.org/pub/mozilla.org/mozilla/releases/mozilla1.7/gecko-sdk-i586-pc-msvc-1.7.zip">Download</a>
-</td><td><a class="external" href="http://releases.mozilla.org/pub/mozilla.org/xulrunner/releases/1.8.0.4/sdk/gecko-sdk-win32-msvc-1.8.0.4.zip">Download</a>
-</td></tr><tr>
-<th>Mac
-</th><td>N/A
-</td><td><a class="external" href="http://releases.mozilla.org/pub/mozilla.org/xulrunner/releases/1.8.0.4/sdk/gecko-sdk-mac-1.8.0.4.zip">Download</a>
-</td></tr><tr>
-<th>Linux i686
-</th><td><a class="external" href="http://releases.mozilla.org/pub/mozilla.org/mozilla/releases/mozilla1.7/gecko-sdk-i686-pc-linux-gnu-1.7.tar.gz">Download</a>
-</td><td><a class="external" href="http://releases.mozilla.org/pub/mozilla.org/xulrunner/releases/1.8.0.4/sdk/gecko-sdk-i686-pc-linux-gnu-1.8.0.4.tar.bz2">Download</a>
-</td></tr></tbody></table>
-<p>Le SDK n'est pas officiellement disponible pour d'autres plateformes ; si vous en avez besoin, vous devrez probablement le compiler vous même.
-</p><p>Décompressez le fichier dans un répertoire de votre disque.
-</p>
-<h3 id="Compiler_le_SDK" name="Compiler_le_SDK"> Compiler le SDK </h3>
-<p>Pour compiler le SDK, vous devez compiler <a href="fr/XULRunner">XULRunner</a> (le SDK Gecko est compilé en même temps que XULRunner). Consultez la <a href="fr/Documentation_sur_la_compilation">documentation sur la compilation</a> pour plus de précisions.
-</p><p>Le SDK Gecko est généré dans <code>dist/sdk</code> dans votre répertoire objet. Vous pouvez ensuite copier ce répertoire vers un autre emplacement et supprimer l'arborescence XULRunner.
-</p>
-<h2 id="Contenu_du_SDK" name="Contenu_du_SDK"> Contenu du SDK </h2>
-<p>Le SDK contient les éléments suivants :
-</p>
-<ul><li> Fichiers IDL pour les interfaces gelées (dans <code>idl/</code>)
-</li><li> Fichiers d'entêtes pour les interfaces gelées, les fonctions XPCOM et les fonctions NSPR (dans <code>include/</code>)
-</li><li> Bibliothèques d'importations ou partagées (dans <code>lib/</code>)
-</li><li> Bibliothèques d'utilitaires statiques (dans <code>lib/</code>)
-</li><li> Divers outils (dans <code>bin/</code>)
-</li></ul>
-<p>Pour plus d'informations sur la manière de lier des composants XPCOM en utilisant la bibliothèque "glue" XPCOM, consultez <a href="fr/XPCOM_Glue">XPCOM Glue</a>.
-</p>
-<div class="noinclude">
-</div>
-{{ languages( { "en": "en/Gecko_SDK", "ja": "ja/Gecko_SDK", "zh-cn": "cn/Gecko_SDK" } ) }}
diff --git a/files/fr/mozilla/implementer_pontoon_sur_un_projet_mozilla/index.html b/files/fr/mozilla/implementer_pontoon_sur_un_projet_mozilla/index.html
deleted file mode 100644
index 8fd8b5daa7..0000000000
--- a/files/fr/mozilla/implementer_pontoon_sur_un_projet_mozilla/index.html
+++ /dev/null
@@ -1,76 +0,0 @@
----
-title: Implémenter Pontoon sur un projet Mozilla
-slug: Mozilla/Implementer_Pontoon_sur_un_projet_Mozilla
-tags:
- - Localisation
-translation_of: Mozilla/Implementing_Pontoon_in_a_Mozilla_website
----
-<p><a class="external external-icon" href="https://pontoon.mozilla.org">Pontoon</a> est un outil What-You-See-Is-What-You-Get (WYSIWYG) web pour la localisation (l10n). Chez Mozilla, nous utilisons actuellement Pontoon pour la localisation de plusieurs projets Mozilla et pour l'interface de l'app de Firefox OS app, connue comme Gaia. Pontoon est un outil simple et intuitif qui demande très peu de compétences techniques de la part des localisateurs, ce qui réduira le temps de publication des versions localisées de votre projet. Nous discutons ci-dessous de la manière d'ajouter Pontoon à votre projet Mozilla.</p>
-
-<div class="note">
-<p><strong>Vous voulez participer à l'amélioration de Pontoon?</strong> Apprenez comment participer su <a href="https://github.com/mozilla/pontoon">GitHub</a>.</p>
-</div>
-
-<div class="note">
-<p><strong>Vous venez de démarrer votre projet de localisation?</strong> Jetez un oeil sur la page <a href="https://wiki.mozilla.org/L10n:NewProjects">Localisez votre projet</a> de notre wiki.</p>
-</div>
-
-<h2 id="A._Rendre_votre_projet_localisable">A. Rendre votre projet localisable</h2>
-
-<p>Nous comprenons que les éléments suivants puissent être considérés des <a class="external external-icon" href="https://mozweb.readthedocs.org/en/latest/reference/l10n.html">meilleures pratiques</a> standards pour la localisation de projets chez Mozilla, mais nous ne perdons rien à faire un petit rappel:</p>
-
-<ol>
- <li>Assurez-vous que votre projet supporte l'un des frameworks l10n (<a class="external external-icon" href="https://www.gnu.org/software/gettext/">gettext</a>, <a class="external external-icon" href="https://docs.oasis-open.org/xliff/xliff-core/v2.0/xliff-core-v2.0.html">XLIFF</a>, <a class="external external-icon" href="https://projectfluent.org/">L20n</a>, <a class="external external-icon" href="https://github.com/mozilla-l10n/langchecker/wiki/.lang-files-format">lang</a>, <a class="external external-icon" href="https://wikipedia.org/wiki/.properties">properties</a>, etc.).</li>
- <li>Extrayez les strings localisables dans des fichiers de ressources.</li>
- <li>Envoyez (push) les ressources vers un repository (SVN, HG, Git).
- <ul>
- <li>Les répertoires locaux individuels doivent être situés au même niveau d'indentation de l'arbre des répertoires. La locale d'origine doit être nommée <code>templates</code>, <code>en-US</code>, <code>en-us</code> ou <code>en</code>. Si plusieurs répertoires avec de tels noms existent dans le repository et contiennent des fichiers dans un format de fichier supporté, le premier sera utilisé. Vous pourriez vouloir mettre tous les dossiers dans un répertoire <code>locales</code> dédié à cet objectif. Le code des locales ne doit pas faire partie du nom du fichier.</li>
- <li>Forme correcte:
- <pre>/locales/{locale_code}/path/to/file.extension</pre>
- </li>
- <li>Forme incorrecte:
- <pre>/locales/{locale_code}/path/to/file.{locale_code}.extension</pre>
- </li>
- </ul>
- </li>
- <li>Assurez-vous que Pontoon a les droits en écriture sur votre repository.
- <ul>
- <li>Si vous utilisez Github, ajoutez <a class="external external-icon" href="https://github.com/mozilla-pontoon">mozilla-pontoon</a> ou <a href="https://github.com/orgs/mozilla/teams/pontoon-l10n-robots">pontoon-l10n-robots</a> comme collaborateur à votre projet.</li>
- </ul>
- </li>
-</ol>
-
-<h2 id="B._optionnel_Activer_la_localisation_en-page_de_votre_projet_web">B. (optionnel) Activer la localisation en-page de votre projet web</h2>
-
-<ol>
- <li>Liez un script depuis l'élément <code>&lt;body&gt;</code> de votre code HTML, pour que Pontoon puisse parler à votre site, détecter le contenu et le rendre localisable en-place. Vous devez seulement faire ça sur l'environnement qui sera utilisé pour la localisation en-page. En gros, votre serveur de validation:
-
- <ul>
- <li>
- <pre id="line1"><span> </span><span>&lt;<span class="start-tag">script</span> <span class="attribute-name">src</span>="<a class="attribute-value">https://pontoon.mozilla.org/pontoon.js</a>"</span><span>&gt;&lt;/<span class="end-tag">script</span>&gt;</span></pre>
- </li>
- </ul>
- </li>
- <li>Si votre site utilise <a href="/fr/docs/Web/HTTP/CSP">CSP</a>,  assurez-vous que les actions suivantes sont autorisées pour le domaine <code>pontoon.mozilla.org</code>:
- <ol>
- <li>charger dans une iframe</li>
- <li>charger des CSS distants</li>
- <li>chargez des images distantes</li>
- </ol>
- </li>
- <li>Si votre site utilise le header <a href="/fr/docs/Web/HTTP/Headers/X-Frame-Options">X-Frame-Options</a>, assurez-vous que le chargement dans des iframes est autorisé pour le domaine <code>pontoon.mozilla.org</code>.</li>
- <li>Assurez-vous que votre site supporte HTTPS. C'est gratuit, automatisé et libre. <a href="https://letsencrypt.org/">Let's encrypt</a>!</li>
-</ol>
-
-<h2 id="C._Ajoutez_votre_projet_à_Pontoon">C. Ajoutez votre projet à Pontoon</h2>
-
-<p>Votre projet est maintenant prêt à être configuré sur Pontoon. Enregistrez un bug sur <a href="https://bugzilla.mozilla.org/enter_bug.cgi?product=Localization%20Infrastructure%20and%20Tools&amp;component=Administration%20%2F%20Setup">Localization Infrastructure and Tools :: Administration / Setup</a> et fournissez-nous l'information suivante:</p>
-
-<ul>
- <li>Nom du projet</li>
- <li>URL du repository</li>
- <li>Liste des locales solicitées</li>
- <li>URL du site web, incluant toutes les URLs des sous-pages (uniquement si vous utilisez la localisation en-page)</li>
-</ul>
-
-<p>Pour plus de détails, contactez l'<a href="mailto:pontoon-team@mozilla.com">Équipe de gestion du projet</a>.</p>
diff --git a/files/fr/mozilla/instantbird/index.html b/files/fr/mozilla/instantbird/index.html
deleted file mode 100644
index d73135fead..0000000000
--- a/files/fr/mozilla/instantbird/index.html
+++ /dev/null
@@ -1,58 +0,0 @@
----
-title: Instantbird
-slug: Mozilla/Instantbird
-translation_of: Mozilla/Instantbird
----
-<p><span class="seoSummary"><strong>Instantbird </strong>est une application de messagerie instantanée avec liens étroits à Mozilla. Ces pages documentent Instantbird et fournissent également des liens vers de la documentation sur le <a href="/en-US/docs/Chat_Core">Chat Core</a> backend, qui est également utilisée dans <a href="/fr/docs/Mozilla/Thunderbird">Thunderbird</a>.</span></p>
-
-<p>Instantbird est construit sur le même plate-form technique que <a href="/fr/docs/Mozilla/Firefox">Firefox</a>. Initialement proposé comme projet Google Summer of Code pour créer une interface d'XML autour libpurple (le backend de Pidgin). Instantbird n'a pas été accepté, mais a débuté en 2007, depuis il a grandis au-delà d'une frontend simple pour que libpurple à dispose de ses propres protocales.</p>
-
-<table class="topicpage-table">
- <tbody>
- <tr>
- <td>
- <h2 class="Documentation" id="Documentation" name="Documentation">Documentation</h2>
-
- <dl>
- <dt><a href="/en-US/docs/Simple_Instantbird_build" title="Simple Thunderbird build">Constuction d'Instantbird</a></dt>
- <dd>Information sur la création d'Instantbird à partir du dépôt <a href="/en-US/docs/comm-central" title="comm-central">comm-central</a>.</dd>
- <dt><span class="seoSummary"><a href="/en-US/docs/Chat_Core">Chat Core</a></span></dt>
- <dd>Le code backend, y compris documentation rugueux sur <a href="/en-US/docs/Chat_Core/Protocols" title="MailNews_Protocols">chat protocols</a> ({{ Interface("prplIProtocol") }} and ami.e.s.).</dd>
- <dt><a href="/en-US/docs/Chat_Core/Message_Styles" title="DB_Views_(message_lists)">Affichage des Messages</a></dt>
- <dd>Information sur le thème de l'affichage des messages.</dd>
- <dt><a href="/en-US/docs/Chat_core/Keyboard_shortcuts">Raccourcis Clavier</a></dt>
- <dd>Liste des raccourcis clavier.</dd>
- <dt>
- <h2 id="Liens_Utils">Liens Utils</h2>
- </dt>
- <dt><a href="http://ftp.instantbird.com/instantbird/nightly/latest-trunk/">Dernier nightly builds</a></dt>
- <dd>Ceux-ci sont généralement stables, mais attendent à des problèmes de temps à autreet déposer des <a href="https://bugzilla.mozilla.org/" title="Instantbird:Bugzilla">bugs</a>.</dd>
- </dl>
-
- <p><span class="alllinks"><a href="/en-US/docs/tag/Instantbird" title="tag/Thunderbird">Voir Tout...</a></span></p>
- </td>
- <td>
- <h2 class="Community" id="Community" name="Community">Communauté</h2>
-
- <ul>
- <li><a class="link-irc" href="irc://irc.mozilla.org/instantbird">#instantbird sur irc.mozilla.org</a> (pour des utilisateurs et développeurs)</li>
- <li>Assistance est géré sur la liste de diffusion pour support-instantbird ou sur IRC: {{ DiscussionList("support-instantbird", "mozilla.support.instantbird") }}</li>
- <li>Questions d'extensions peut-être discuté sur le dev-chat groupe ou sur IRC: {{ DiscussionList("dev-chat", "mozilla.dev.chat") }}</li>
- <li>une liste de tout <a class="external external-icon" href="https://wiki.mozilla.org/Instantbird/CommunicationChannels" title="Thunderbird communication channels">Instantbird canaux de communication</a></li>
- </ul>
-
- <h2 class="Tools" id="Tools" name="Tools">Outils</h2>
-
- <ul>
- <li><a href="/fr/docs/DOM_Inspector" title="DOM_Inspector">DOM Inspector</a></li>
- </ul>
-
- <h2 class="Related_Topics" id="Related_Topics" name="Related_Topics">Sujets Connexes</h2>
-
- <ul>
- <li><a href="/fr/docs/Extensions" title="Extensions">Extensions</a></li>
- </ul>
- </td>
- </tr>
- </tbody>
-</table>
diff --git a/files/fr/mozilla/internal_css_attributes/index.html b/files/fr/mozilla/internal_css_attributes/index.html
deleted file mode 100644
index cd449f72a5..0000000000
--- a/files/fr/mozilla/internal_css_attributes/index.html
+++ /dev/null
@@ -1,20 +0,0 @@
----
-title: Chrome-only CSS attributes
-slug: Mozilla/Internal_CSS_attributes
-tags:
- - TopicStub
-translation_of: Mozilla/Gecko/Chrome/CSS
----
-<div>{{CSSRef}}</div>
-
-<p>Les attributs CSS suivants ne sont disponibles qu'à partir du code privilégié (chrome) et sont spécifiques à Mozilla.</p>
-
-<p>{{LandingPageListSubpages}}</p>
-
-<h2 id="Voir_aussi">Voir aussi</h2>
-
-<ul>
- <li><a href="/en-US/docs/Web/CSS/Mozilla_Extensions">Extensions CSS Mozilla</a></li>
- <li><a href="/en-US/docs/Web/CSS/Reference">Référence CSS</a></li>
- <li><a href="/en-US/docs/Web/CSS">CSS</a></li>
-</ul>
diff --git a/files/fr/mozilla/javascript_astuces/index.html b/files/fr/mozilla/javascript_astuces/index.html
deleted file mode 100644
index f2bbb7b567..0000000000
--- a/files/fr/mozilla/javascript_astuces/index.html
+++ /dev/null
@@ -1,115 +0,0 @@
----
-title: Astuces JavaScript
-slug: Mozilla/JavaScript_Astuces
-tags:
- - Developper avec Mozilla
- - JavaScript
-translation_of: Mozilla/JavaScript_Tips
----
-<h2 id="Function_and_variable_naming" name="Function_and_variable_naming">XUL Tips</h2>
-
-<ul>
- <li>Lorsque vous insérez du code dans un overlay XUL, placez vos fonctions et variables à l'intérieur d'un objet possédant un nom unique afin d'éviter des conflts avec d'autres fonctions et noms de variables existants ou futurs.</li>
-</ul>
-
-<pre class="brush: js">var UniqueName = {
- _privateMember: 3,
- publicMember: "A string",
-
- init: function() {
- this.doSomething(this.anotherMember);
- },
-
- doSomething: function(aParam) {
- alert(aParam);
- }
-};
-</pre>
-
-<h2 id="XPConnect" name="XPConnect">XPConnect</h2>
-
-<ul>
- <li>N'utilisez pas plus de méthodes ou de propriétés d'object qu'il vous faut. Il est plus souvent rapide de stocker le résultat dans une variable temporaire.</li>
- <li>N'appelez pas les méthodes dont vous n'avez pas besoin. Par exemple, <code>windowManager.getEnumerator(aType).hasMoreElements()</code> peut être remplacé par <code>windowManager.getMostRecentWindow(aType) != null pour une simple fenêtre</code>.</li>
- <li>N'interrogez des interfaces que pour avoir accès aux méthodes et propriétés de cette interface. Vous n'avez pas à interroger des interfaces pou comparer des objets, pas plus que pour passer des objets en tant que paramètres (Ceci est différent du C++, où vous devez interroger les interfaces dans ces 2 cas).</li>
- <li>N'appelez pas <code>QueryInterface</code> à moins que vous en ayez réellement besoin. A la place, utilisez plutôt <code>instanceof</code>, par exemple :</li>
-</ul>
-
-<pre class="brush: js">if (target instanceof Components.interfaces.nsIRDFResource)
- return target.Value;
-if (target instanceof Components.interfaces.nsIRDFLiteral)
- return target.Value;
-return null;
-</pre>
-
-<ul>
- <li>Ne testez pas la valeur de retour de <code>QueryInterface</code>, elle renvoie toujours la valeur originale en cas de succès. XPConnect knows all about tearoffs and modifies the object that you <code>QueryInterface</code> or <code>instanceof</code> to cache all its known interfaces.</li>
- <li>Lorsque vous passez un objet à une méthode XPCOM, passez plutôt un objet XPCOM. La méthode C++ accèdera alors directement à l'objet C++. Ce n'est cependant pas toujours nécessaire. For instance the offline observer declared above is a JavaScript object that is registered with an XPCOM object, so that the call back from XPCOM executes the JavaScript method. Some XPCOM methods expect an object that implements several interfaces thus requiring you to write a <code>QueryInterface</code> method. However, in JavaScript this is quite simple even in the case of a weak reference which in C++ requires a helper class:</li>
-</ul>
-
-<pre class="brush: js">var weakObserver = {
- QueryInterface: function QueryInterface(aIID) {
- if (aIID.equals(Components.interfaces.nsIObserver) ||
- aIID.equals(Components.interfaces.nsISupportsWeakReference) ||
- aIID.equals(Components.interfaces.nsISupports))
- return this;
- throw Components.results.NS_NOINTERFACE;
- },
- observe: function observe(aSubject, aTopic, aState) {
- }
-}
-</pre>
-
-<ul>
- <li>Lorsque vous devez déclarer des méthodes XPCOM, essayez d'utiliser les mêmes noms pour les paramètres de la méthodes que dans la définition de l'interface.</li>
-</ul>
-
-<h2 id="DOM_elements" name="DOM_elements">DOM elements</h2>
-
-<ul>
- <li>Les éléments du DOM sont juste des objets XPCOM dont certaines interfaces sont mises en cache.</li>
- <li>N'appelez pas <a href="/en/DOM/element.getAttribute" title="en/DOM/element.getAttribute">getAttribute</a> pour voir si des attributs existent, appelez plutôt <a href="/en/DOM/element.hasAttribute" title="en/DOM/element.hasAttribute">hasAttribute</a> instead.</li>
- <li>Utilisez une boucle sur les childNodes plutôt que d'utiliser first/lastChild avec next/previous. Mais utilisez plutôt hasChildNodes() to <code>childNodes.length &gt; 0</code>. De même utilisez   <code>document.getElementsByTagName(aTag).item(0) != null</code> plutôt que <code>document.getElementsByTagName(aTag).length &gt; 0</code>.</li>
- <li>Utilisez de préférence localName plutôt que tagName.</li>
- <li>Les éléments XUL elements ont beaucoup d'attributs mappés aux propriétés. Ceci a été fait pour que vous les utilisiez ! Les propriétés sont les suivantes :
- <ul>
- <li>align</li>
- <li>allowEvents</li>
- <li>contextMenu</li>
- <li>datasources</li>
- <li>dir</li>
- <li>flex</li>
- <li>height</li>
- <li>id<span style="display: none;"> </span><span style="display: none;"> </span></li>
- <li>left</li>
- <li>maxHeight</li>
- <li>maxWidth</li>
- <li>minHeight</li>
- <li>minWidth</li>
- <li>observes</li>
- <li>orient</li>
- <li>pack</li>
- <li>persist</li>
- <li>ref</li>
- <li>statusText</li>
- <li>top</li>
- <li>tooltip</li>
- <li>tooltipText</li>
- <li>width</li>
- </ul>
- </li>
- <li>XUL mappe l'attribut <code>ordinal</code>, mais s'il n'est pas présent il sera initialisé à "1".</li>
- <li>XUL mappe également l'attribut <code>class</code> attribute, mais malheureusement <code>class</code> est un identifiant réservé. La propriété est donc appelée <code>className</code>. (La propriété pourrait avoir été implémentée ainsi <code>{{ mediawiki.external('"class"') }}</code> mais ca paraît un peu idiot.)</li>
- <li>XUL mappe les attributs <code>hidden</code> et <code>collapsed</code> aux propriétés, mais n'oubliez pas qu'il s'agit de propriétés booléennes tandis que la liste ci-dessus sont toutes des propriétés de type string..</li>
- <li>XUL mappe également d'autres propriétés et méthodes très utiles via le binding XBL. Ceci varie d'un élément à un autre.</li>
- <li>Pour de meilleures performances donnez des ids à tous les éléments importants. En plus de localiser des éléments par tagName, XUL vous permet de localiser un élément par son attribut en commençant de n'importe quel élément dans le document.</li>
-</ul>
-
-<h2 id="References" name="References">References</h2>
-
-<ul>
- <li>This was started as a reprint of <a class="external" href="http://neil.rashbrook.org/JS.htm" title="http://neil.rashbrook.org/JS.htm">Neil's guide</a></li>
- <li>Some more current info on this <a class="external" href="http://autonome.wordpress.com/2006/03/24/">blog post</a></li>
-</ul>
-
-<p>{{ languages( { "ja": "ja/JavaScript_style_guide" } ) }}</p>
diff --git a/files/fr/mozilla/javascript_code_modules/index.html b/files/fr/mozilla/javascript_code_modules/index.html
deleted file mode 100644
index b982031dd1..0000000000
--- a/files/fr/mozilla/javascript_code_modules/index.html
+++ /dev/null
@@ -1,93 +0,0 @@
----
-title: JavaScript code modules
-slug: Mozilla/JavaScript_code_modules
-tags:
- - Add-ons
- - Extensions
- - JavaScript
- - Modules
- - TopicStub
- - XPCOM
-translation_of: Mozilla/JavaScript_code_modules
----
-<div>{{gecko_minversion_header("1.9")}}</div>
-
-<p>Modules de code javaScript permettent de multiples priviléges de code partagé étendues. Par exemple, un module peut être utilisé par Firefox, ainsi que par des extensions, afin d'éviter la duplication de code.</p>
-
-<table class="topicpage-table">
- <tbody>
- <tr>
- <td>
- <h2 id="Sujets_généraux">Sujets généraux</h2>
-
- <dl>
- <dt><a href="/fr/docs/JavaScript_code_modules/Using" title="./Using">Utilisation de modules de code JavaScript</a></dt>
- <dd>Une introduction à la façon d'utiliser les modules de code JavaScript.</dd>
- <dt><a href="/fr/docs/Components.utils.import" title="Components.utils.import">Component.utils.import</a></dt>
- <dd>Comment importer un module de code JavaScript.</dd>
- <dt><a href="/fr/docs/Components.utils.unload" title="Components.utils.unload">Component.utils.unload</a> {{gecko_minversion_inline("7.0")}}</dt>
- <dd>Comment décharger un module de code JavaScript.</dd>
- <dt><a href="/fr/docs/Code_snippets/Modules" title="Code_snippets/Modules">Code snippets: Modules</a></dt>
- <dd>Des exemples de la façon d'utiliser des modules de code.</dd>
- <dt><a class="external" href="http://wiki.mozilla.org/Labs/JS_Modules">Mozilla Labs JS Modules</a></dt>
- <dd>Cette page propose une liste de modules JS, ainsi que des liens de téléchargement et de la documentation, que les développeurs d'extensions peuvent utiliser dans leur code.</dd>
- </dl>
-
- <dl>
- </dl>
- </td>
- <td>
- <h2 id="Modules_de_code_standard">Modules de code standard</h2>
-
- <dl>
- <dt><a href="/fr/docs/Addons/Add-on_Manager" title="Addons/Add-on_Manager">AddonManager.jsm</a> {{gecko_minversion_inline("2.0")}}</dt>
- <dd>Interface pour installer, gérer et désinstaller des add-ons.</dd>
- <dt><a href="/fr/docs/Addons/Add-on_Repository" title="Addons/Add-on Repository">AddonRepository.jsm</a> {{gecko_minversion_inline("2.0")}}</dt>
- <dd>Permet de rechercher des addons référentiel.</dd>
- <dt><a href="/fr/docs/Mozilla/js-ctypes" title="./ctypes.jsm">ctypes.jsm</a> {{fx_minversion_inline("3.6")}}</dt>
- <dd>Fournit une interface qui permet au code JavaScript d'appeler les bibliothèques natives sans nécessiter le développement d'un composant XPCOM.</dd>
- <dt><a href="/fr/docs/Mozilla/JavaScript_code_modules/DeferredTask.jsm" title="./DeferredTask.jsm">DeferredTask.jsm</a> {{gecko_minversion_inline("18.0")}}</dt>
- <dd>Exécuter une tâche après un délai.</dd>
- <dt><a href="/fr/docs/Mozilla/JavaScript_code_modules/Dict.jsm" title="./Dict.jsm">Dict.jsm</a> {{gecko_minversion_inline("5.0")}}</dt>
- <dd>Fournit une API pour les dictionnaires de paires clé/valeur.</dd>
- <dt><a href="/fr/docs/Mozilla/JavaScript_code_modules/DownloadLastDir.jsm" title="./DownloadLastDir.jsm">DownloadLastDir.jsm</a> {{gecko_minversion_inline("2.0")}}</dt>
- <dd>Fournit le chemin d'accès au répertoire dans lequel le dernier téléchargement a eu lieu.</dd>
- <dt><a href="/fr/docs/Mozilla/JavaScript_code_modules/Downloads.jsm" title="./Downloads.jsm">Downloads.jsm</a> {{gecko_minversion_inline("23.0")}}</dt>
- <dd>Fournit un point d'entrée unique pour interagir avec les capacités de téléchargement de la plate-forme.</dd>
- <dt><a href="/fr/docs/Mozilla/JavaScript_code_modules/FileUtils.jsm" title="./FileUtils.jsm"><strong style="font-weight: bold;">FileUtils.jsm</strong></a> {{gecko_minversion_inline("1.9.2")}}</dt>
- <dd>Fournit des aides pour le traitement des fichiers.</dd>
- <dt><a href="/fr/docs/Mozilla/JavaScript_code_modules/Geometry.jsm" title="./Geometry.jsm">Geometry.jsm</a> {{gecko_minversion_inline("2.0")}}</dt>
- <dd>Fournit des routines pour effectuer des opérations géométriques de base sur des points et des rectangles.</dd>
- <dt><a href="/fr/docs/Mozilla/JavaScript_code_modules/ISO8601DateUtils.jsm" title="./ISO8601DateUtils.jsm">ISO8601DateUtils.jsm</a></dt>
- <dd>Fournit des routines pour convertion entre des objets <a href="/fr/docs/JavaScript/Reference/Global_Objects/Date" title="/fr/docs/JavaScript/Reference/Global_Objects/Date"> <code>Date</code> </a> JavaScript et des chaînes de date ISO 8601.</dd>
- <dt><a href="/fr/docs/Mozilla/JavaScript_code_modules/NetUtil.jsm" title="./NetUtil.jsm"><strong style="font-weight: bold;">NetUtil.jsm</strong></a></dt>
- <dd>Fournit des fonctions utilitaires de mise en réseau utiles, notamment la possibilité de copier facilement des données d'un flux d'entrée vers un flux de sortie de manière asynchrone.</dd>
- <dt><a href="/fr/docs/Mozilla/JavaScript_code_modules/openLocationLastURL.jsm" title="./openLocationLastURL.jsm">openLocationLastURL.jsm</a> {{gecko_minversion_inline("1.9.1.4")}}</dt>
- <dd>Donne accès à la dernière URL ouverte à l'aide de l'option "Ouvrir l'emplacement" dans le menu Fichier.</dd>
- <dt><a href="/fr/docs/JavaScript_OS.File" title="/en-US/docs/JavaScript_OS.File">osfile.jsm</a> {{gecko_minversion_inline("16.0")}}</dt>
- <dd>Le module JavaScript <code>OS.File</code> contient des primitives de manipulation de fichiers</dd>
- <dt><a href="/fr/docs/Mozilla/JavaScript_code_modules/PerfMeasurement.jsm" title="./PerfMeasurement.jsm">PerfMeasurement.jsm</a> {{fx_minversion_inline("4.0")}}</dt>
- <dd>Permet d'accéder au hardware de bas niveau et aux outils OS de mesure de performance.</dd>
- <dt><a href="/fr/docs/Localization_and_Plurals" title="Localization and Plurals">PluralForm.jsm</a></dt>
- <dd>Fournit un moyen simple d'obtenir les formes plurielles correctes pour la locale actuelle, ainsi que des moyens de localiser vers une règle plurielle spécifique.</dd>
- <dt><a href="/fr/docs/Mozilla/JavaScript_code_modules/PopupNotifications.jsm" title="./PopupNotifications.jsm">PopupNotifications.jsm</a> {{gecko_minversion_inline("2.0")}}</dt>
- <dd>Fournit un moyen facile de présenter des notifications non-modales aux utilisateurs.</dd>
- <dt><a href="/fr/docs/Mozilla/JavaScript_code_modules/Promise.jsm" title="./Promise.jsm">Promise.jsm</a> {{gecko_minversion_inline("25.0")}}</dt>
- <dd>Met en oeuvre la proposition <a class="external" href="https://github.com/promises-aplus/promises-spec/blob/1.0.0/README.md" title="https://github.com/promises-aplus/promises-spec/blob/1.0.0/README.md">Promises/A+</a> telle que connue en avril 2013</dd>
- <dt><a href="/fr/docs/Mozilla/JavaScript_code_modules/Services.jsm" title="./Services.jsm">Services.jsm</a> {{gecko_minversion_inline("2.0")}}</dt>
- <dd>Fournit getters pour obtenir facilement l'accès aux services couramment utilisés.</dd>
- <dt><a href="/fr/docs/Mozilla/JavaScript_code_modules/source-editor.jsm" title="./source-editor.jsm">source-editor.jsm</a> {{fx_minversion_inline("11.0")}}</dt>
- <dd>Est utilisé par les outils de développement tels que l'éditeur de style; cette interface implémente l'éditeur et vous permet d'interagir avec lui.</dd>
- <dt><a href="/fr/docs/Mozilla/JavaScript_code_modules/Sqlite.jsm" title="./Sqlite.jsm">Sqlite.jsm</a> {{gecko_minversion_inline("20.0")}}</dt>
- <dd>Une API basée sur promise de {{ interface("mozIStorage") }}/SQLite.</dd>
- <dt><a href="/fr/docs/Mozilla/JavaScript_code_modules/Task.jsm" title="./Task.jsm">Task.jsm</a> {{gecko_minversion_inline("17.0")}}</dt>
- <dd>Met en œuvre un sous-ensemble d'opérations asynchrones séquentielles simple <a class="external" href="https://taskjs.org/"> Task.js </a>, en utilisant la puissance de l'opérateur JavaScript <a href="https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Opérateurs/yield">yield</a>.</dd>
- <dt><a href="/fr/docs/Mozilla/JavaScript_code_modules/Timer.jsm" title="/en-US/docs/Mozilla/JavaScript_code_modules/Timer.jsm">Timer.jsm </a>{{gecko_minversion_inline("22.0")}}</dt>
- <dd>Une mise en œuvre pur JS de <code>window.setTimeout</code>.</dd>
- <dt><a href="/fr/docs/Mozilla/JavaScript_code_modules/XPCOMUtils.jsm" title="./XPCOMUtils.jsm">XPCOMUtils.jsm</a></dt>
- <dd>Contient des utilitaires pour les composants JavaScript chargés par le chargeur composant JS.</dd>
- </dl>
- </td>
- </tr>
- </tbody>
-</table>
diff --git a/files/fr/mozilla/javascript_code_modules/osfile.jsm/index.html b/files/fr/mozilla/javascript_code_modules/osfile.jsm/index.html
deleted file mode 100644
index b2ed155f4f..0000000000
--- a/files/fr/mozilla/javascript_code_modules/osfile.jsm/index.html
+++ /dev/null
@@ -1,70 +0,0 @@
----
-title: OSFile.jsm
-slug: Mozilla/JavaScript_code_modules/OSFile.jsm
-tags:
- - File
- - IO
- - JavaScript
- - NeedsTranslation
- - OS
- - TopicStub
- - Unix
- - Windows
- - add-on
- - platform
-translation_of: Mozilla/JavaScript_code_modules/OSFile.jsm
----
-<p>Le module JavaScript <code>OS.File</code> contient des primitives pour manipuler des fichiers hors du thread principal.</p>
-
-<h2 id="F.A.Q.">F.A.Q.</h2>
-
-<dl>
- <dt>Qu'est-ce que OS.File?</dt>
- <dd>OS.File est une nouvelle API conçue pour une manipulation efficace et hors-fil des fichiers par du code JavaScript privilégié. Cette API est destinée à remplacer, à terme, la plupart des manipulations de fichiers basées sur XPCOM (nsIFile, sous-ensembles de nsIIOService, etc.) par du code JavaScript.</dd>
- <dt>Quelles sont les relations avec l'API de fichier HTML5?</dt>
- <dd>Aucun, vraiment. L'API de fichier est conçue pour une manipulation de haut niveau et très restreinte de fichiers par des applications Web. OS.File est conçu pour une manipulation efficace et sans restriction des fichiers par Firefox lui-même et par des modules complémentaires.</dd>
- <dt>Why is Off Main Thread File I/O important?</dt>
- <dd>One thing that all developers need to remember is that the duration of a File I/O operation is <em>unbounded</em>. Depending on the current load of the kernel, the current disk activity, the current load of the bus, the current rotation speed of the disk, the amount of battery power, etc. operations can take an arbitrary amount of time. We are talking about <strong>several seconds</strong> to execute operations that look trivial, such as closing a file, or checking when it was last modified.<br>
- If the operation is called on the main thread, this means that the whole user experience is stuck for several seconds, which is quite bad.</dd>
- <dt>Why is I/O Efficiency important?</dt>
- <dd>I/O efficiency is all about <em>minimizing the number of actual I/O calls</em>. This is critical because some platforms have extremely slow storage (e.g. smartphones, tablets) and because, regardless of the platforms, doing too much I/O penalizes not just your application but potentially all the applications running on the system, which is quite bad for the user experience. Finally, I/O is often expensive in terms of energy, so <em>wasting I/O is wasting battery</em>.
- <p style="text-align: justify;">Consequently, one of the key design choices of OS.File is to provide operations that are low-level enough that they do not hide any I/O from the developer (which could cause the developer to perform more I/O than they think) and, since not all platforms have the same features, offer system-specific information that the developer can use to optimize his algorithms for a platform.</p>
- </dd>
-</dl>
-
-<h2 id="Using_OS.File">Using OS.File</h2>
-
-<h3 id="..._from_the_main_thread">... from the main thread</h3>
-
-<p>Most uses of OS.File are from the main thread. In this mode, main thread clients use the API to request off main thread file I/O.</p>
-
-<dl>
- <dt><a href="/docs/Mozilla/JavaScript_code_modules/OSFile.jsm/OS.File_for_the_main_thread" title="/en-US/docs/JavaScript_OS.File/OS.File_for_the_main_thread">Calling OS.File from the main thread</a></dt>
- <dd>Asynchronous, off-main thread file I/O, main thread API.</dd>
- <dt><a href="/docs/Mozilla/JavaScript_code_modules/OSFile.jsm/OS.File.DirectoryIterator_for_the_main_thread" title="/en-US/docs/JavaScript_OS.File/OS.File.DirectoryIterator_for_the_main_thread">Calling OS.File.DirectoryIterator from the main thread</a></dt>
- <dd>Asynchronous, off-main thread file directory access, main thread API.</dd>
-</dl>
-
-<h3 id="..._from_a_worker_thread">... from a worker thread</h3>
-
-<p>In some cases, the main thread API for OS.File is not appropriate as it would require too much message passing, or because the code that requires file I/O is already executed on a worker thread. For this reason, API clients can also spawn their own worker threads and make use of OS.File directly from these threads.</p>
-
-<dl>
- <dt><a href="/docs/Mozilla/JavaScript_code_modules/OSFile.jsm/OS.File_for_workers" title="/en-US/docs/JavaScript_OS.File/OS.File_for_workers">OS.File for workers</a></dt>
- <dd>Synchronous file I/O for worker threads</dd>
- <dt><a href="/docs/Mozilla/JavaScript_code_modules/OSFile.jsm/OS.File.DirectoryIterator_for_workers" title="/en-US/docs/JavaScript_OS.File/OS.File.DirectoryIterator_for_workers">OS.File.DirectoryIterator for workers</a></dt>
- <dd>Visiting directories synchronously from a worker thread</dd>
-</dl>
-
-<h3 id="..._composants_partagés">... composants partagés</h3>
-
-<dl>
- <dt><a href="/docs/Mozilla/JavaScript_code_modules/OSFile.jsm/OS.Path" title="/en-US/docs/JavaScript_OS.File/OS.Path">OS.Path et OS.Constants.Path</a></dt>
- <dd>Manipulation des chemins</dd>
- <dt><a href="/docs/Mozilla/JavaScript_code_modules/OSFile.jsm/OS.File.Error" title="/en-US/docs/JavaScript_OS.File/OS.File.Error">OS.File.Error</a></dt>
- <dd>Représentation des erreurs liées aux fichiers</dd>
- <dt><a href="/docs/Mozilla/JavaScript_code_modules/OSFile.jsm/OS.File.Info" title="/en-US/docs/JavaScript_OS.File/OS.File.Info">OS.File.Info</a></dt>
- <dd>Représentation des informations du fichier (taille, date de création, etc.)</dd>
- <dt><a href="/docs/Mozilla/JavaScript_code_modules/OSFile.jsm/OS.File.DirectoryIterator.Entry" title="/en-US/docs/JavaScript_OS.File/OS.File.DirectoryIterator.Entry">OS.File.DirectoryIterator.Entry</a></dt>
- <dd>Informations sur les fichiers obtenues lors de la visite d'un répertoire</dd>
-</dl>
diff --git a/files/fr/mozilla/javascript_code_modules/osfile.jsm/os.file_for_the_main_thread/index.html b/files/fr/mozilla/javascript_code_modules/osfile.jsm/os.file_for_the_main_thread/index.html
deleted file mode 100644
index e21a10ac20..0000000000
--- a/files/fr/mozilla/javascript_code_modules/osfile.jsm/os.file_for_the_main_thread/index.html
+++ /dev/null
@@ -1,1159 +0,0 @@
----
-title: OS.File pour le thread principal
-slug: Mozilla/JavaScript_code_modules/OSFile.jsm/OS.File_for_the_main_thread
-translation_of: Mozilla/JavaScript_code_modules/OSFile.jsm/OS.File_for_the_main_thread
----
-<p>Cette page explique comment utiliser File I/O depuis le thread principal. Pour d'autres utilisations de OS.File, voir <a href="/fr/docs/JavaScript_OS.File" title="/fr/docs/JavaScript_OS.File">OS.File</a>.</p>
-
-<h2 id="Utilisation_d'OS.File_depuis_le_thread_principal">Utilisation d'OS.File depuis le thread principal</h2>
-
-<p>Pour importer OS.File dans votre code chrome, ajoutez les ligne suivante au début de votre script:</p>
-
-<pre><code class="brush: js">Components.utils.import("<a rel="freelink">resource://gre/modules/osfile.jsm"</a>);</code></pre>
-
-<p>Pour importer OS.File dans votre code main.js, ajoutez les lignes suivantes au début de votre script:</p>
-
-<pre><code class="brush: js"><code><span class="kwd">const</span><span class="pln"> </span><span class="pun">{</span><span class="typ">Cu</span><span class="pun">}</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">require</span><span class="pun">(</span><span class="str">"chrome"</span><span class="pun">);
-
-// To read content from file</span><span class="pln">
-</span><span class="kwd">const</span><span class="pln"> </span><span class="pun">{</span><span class="typ">TextDecoder</span><span class="pun">,</span><span class="pln"> OS</span><span class="pun">}</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Cu</span><span class="pun">.</span><span class="kwd">import</span><span class="pun">(</span><span class="str">"resource://gre/modules/osfile.jsm"</span><span class="pun">,</span><span class="pln"> </span><span class="pun">{});
-
-<code class="brush: js"><code><span class="kwd">// To read &amp; write content to file
-const</span><span class="pln"> </span><span class="pun">{</span><span class="typ"><code class="brush: js"><code><span class="typ">TextDecoder</span><span class="pun">,</span><span class="pln"> </span></code></code>TextEncoder</span><span class="pun">,</span><span class="pln"> OS</span><span class="pun">}</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Cu</span><span class="pun">.</span><span class="kwd">import</span><span class="pun">(</span><span class="str">"resource://gre/modules/osfile.jsm"</span><span class="pun">,</span><span class="pln"> </span><span class="pun">{});</span></code></code></span></code></code></pre>
-
-<h3 id="Promises">Promises</h3>
-
-<p>Avant d'utiliser OS.File depuis le thread principal, vous avez besoin d'une certaine compréhension de la bibliothèque <a href="https://developer.mozilla.org/fr/Add-ons/SDK/Low-Level_APIs/core_promise" title="https://developer.mozilla.org/fr/Add-ons/SDK/Low-Level_APIs/core_promise">Promise</a>.</p>
-
-<p>Voir la <a href="/fr/docs/Mozilla/JavaScript_code_modules/Promise.jsm/Promise" title="/fr/docs/Mozilla/JavaScript_code_modules/Promise.jsm/Promise"> documentation object <code>Promise</code></a> pour plus de détails.</p>
-
-<p>OS.File fonctionne très bien avec <a href="/fr/docs/Mozilla/JavaScript_code_modules/Task.jsm" title="/fr/docs/Mozilla/JavaScript_code_modules/Task.jsm">Task.jsm</a>.</p>
-
-<h3 id="Exemple_Lire_le_contenu_d'un_fichier_sous_forme_de_texte">Exemple: Lire le contenu d'un fichier sous forme de texte</h3>
-
-<p>L'extrait suivant ouvre un fichier "file.txt" et lit son contenu sous forme de chaîne, en utilisant l'encodage par défaut (utf-8).</p>
-
-<p>Le contenu est lu de manière asynchrone. Le résultat est une <a href="/fr/docs/Mozilla/JavaScript_code_modules/Promise.jsm/Promise" title="/fr/docs/Mozilla/JavaScript_code_modules/Promise.jsm/Promise">Promise</a>.</p>
-
-<pre class="brush: js">let decoder = new TextDecoder(); // This decoder can be reused for several reads
-let promise = OS.File.read("file.txt"); // Read the complete file as an array
-promise = promise.then(
- function onSuccess(array) {
- return decoder.decode(array); // Convert this array to a text
- }
-);
-</pre>
-
-<div class="note">Cet exemple nécessite Firefox 18 ou une version plus récente.</div>
-
-<h3 id="Exemple_Ecrire_une_chaîne_dans_un_fichier">Exemple: Ecrire une chaîne dans un fichier</h3>
-
-<p>L'extrait suivant écrit le texte "Ceci est un texte" sous forme de chaîne dans "file.txt", en utilisant l'encodage par défaut (utf-8). Il utilise une écriture atomique pour veiller à ce que le fichier ne soit pas modifiée si, pour une raison quelconque, l'écriture ne peut pas se réaliser complètement (généralement parce que l'ordinateur est éteint, la batterie est épuisée, ou l'application est arrêtée.)</p>
-
-<pre class="brush: js">let encoder = new TextEncoder(); // This encoder can be reused for several writes
-let array = encoder.encode("This is some text"); // Convert the text to an array
-let promise = OS.File.writeAtomic("file.txt", array, // Write the array atomically to "file.txt", using as temporary
- {tmpPath: "file.txt.tmp"}); // buffer "file.txt.tmp".
-
-</pre>
-
-<p>La variante suivante fait la même chose, mais échouera si "file.txt" existe déjà:</p>
-
-<pre class="brush: js">let encoder = new TextEncoder(); // This encoder can be reused for several writes
-let array = encoder.encode("This is some text"); // Convert the text to an array
-let promise = OS.File.writeAtomic("file.txt", array, // Write the array atomically to "file.txt", using as temporary
- {tmpPath: "file.txt.tmp", noOverwrite: true}); // buffer "file.txt.tmp".
-
-</pre>
-
-<div class="note">Ces exemples nécessitent Firefox 19 ou une version plus récente.</div>
-
-<h3 id="Exemple_Renommer_un_fichier">Exemple: Renommer un fichier</h3>
-
-<p>Vous pouvez utiliser <code>OS.File.move</code> pour renommer un fichier:</p>
-
-<pre class="brush: js">let promise = OS.File.move("oldname.txt", "newname.txt", {noOverwrite:true});</pre>
-
-<p>Voici un exemple qui a rebaptise <code>test.txt</code> en <code>testRenamed.txt</code> si le fichier se trouve dans le répertoire <code>C:\Jean\</code></p>
-
-<pre class="brush: js">var promise = OS.File.move(OS.Path.join('C:', 'Jean', 'test.txt'), OS.Path.join('C:', 'Jean', 'testRenamed.txt'));
-promise.then(
- function() {
- console.log('rename successful')
- },
- function(aRejectReason) {
- console.log('rename failed, aRejectReason = ', aRejectReason)
- }
-)</pre>
-
-<p><code>noOverwrite: true</code> est important, (par défaut <code>false</code>) si un fichier avec le même nom existe déjà dans le répertoire, il ne sera plus là après cette opération "renommer", qui est un "mouvement".</p>
-
-<h3 id="Exemple_Copier_un_fichier">Exemple: Copier un fichier</h3>
-
-<p>The following snippet copies file "oldname.txt" to "newname.txt". On most operating systems, this operation is handled directly by the operating system itself, which makes it as fast as possible.</p>
-
-<pre class="brush: js">let promise = OS.File.copy("oldname.txt", "newname.txt");</pre>
-
-<div class="note">This example requires Firefox 16 or a more recent version.</div>
-
-<h3 id="Exemple_Manipulation_de_chemin">Exemple: Manipulation de chemin</h3>
-
-<p>The following snippet obtains the path to file "sessionstore.js", contained in the user's profile directory.</p>
-
-<pre class="brush: js">let sessionstore = OS.Path.join(OS.Constants.Path.profileDir, "sessionstore.js");
- // Under Linux, this is generally "$HOME/.firefox/Profiles/$PROFILENAME/sessionstore.js"
- // Under MacOS, this is generally "$HOME/Library/Application Support/Firefox/$PROFILENAME/sessionstore.js"
- // Under Windows, this is generally "%APPDATA%\Local\temp\%PROFILENAME%"\sessionstore.js
- // etc.
-
-</pre>
-
-<h3 id="Exemple_Déterminer_si_un_fichier_est_un_répertoire">Exemple: Déterminer si un fichier est un répertoire</h3>
-
-<p>The following snippet determines if some path represents a file or a directory:</p>
-
-<pre class="brush: js">let promise = OS.File.stat(somePath);
-promise = promise.then(
- function onSuccess(stat) {
- if (stat.isDir) {
- // The path represents a directory
- } else {
- // The path represents a file, not a directory
- }
- },
- function onFailure(reason) {
- if (reason instanceof OS.File.Error &amp;&amp; reason.becauseNoSuchFile) {
- // The file does not exist
- } else {
- // Some other error
- throw reason;
- }
- }
-);
-</pre>
-
-<h3 id="Exemple_copier_un_fichier_par_morceaux">Exemple: copier un fichier par morceaux</h3>
-
-<p>The following snippet writes a (presumably large) buffer by chunks. Note that this snippet is useful as a demonstration of complex asynchronous programming with OS.File – in most cases, function <code>OS.File.writeAtomic</code> is a better choice.</p>
-
-<pre class="brush: js">let writeStream = function writeStream(data, outFile, chunkSize) {
- let view = new Uint8Array(data);
-
- let loop = function loop(pos) { // Define a recursive asynchronous loop.
- if (pos &lt;= view.byteLength) { // Note: Should this be pos &gt;= view.byteLength ?
- return Promise.resolve(true); // Loop end.
- }
- let promise = file.write(view.subarray(pos, chunkSize)); // Write a subset of |data|
- return promise.then(function onSuccess(bytes) {
- return loop(pos + bytes); // ... and loop.
- });
- };
-
- let promise = loop(0); // Enter the loop.
-
- promise = promise.then(function onSuccess() { // Once loop is complete, finalize.
- file.close();
- }, function onError(reason) {
- file.close();
- throw reason;
- });
- return promise;
-}
-</pre>
-
-<p>Or a variant using <a class="external" href="http://taskjs.org/" title="http://taskjs.org/">Task.js</a> (or at least <a class="external" href="http://dxr.mozilla.org/mozilla-central/source/toolkit/modules/Task.jsm" title="http://dxr.mozilla.org/mozilla-central/toolkit/content/Task.jsm.html">the subset already present on mozilla-central</a>):</p>
-
-<pre class="brush: js">let writeStream = function writeStream(data, outFile, chunkSize) {
- return Task.spawn(function() {
- let view = new Uint8Array(data);
- let pos = 0;
- while (pos &lt; view.byteLength) {
- pos += yield outFile.write(view.subarray(pos, chunkSize));
- }
- outFile.close();
- }).then(
- null,
- function onFailure(reason) {
- outFile.close();
- throw reason;
- }
- );
-}
-</pre>
-
-<h3 id="Exemple_Enregistrer_un_canvas_sur_le_disque">Exemple: Enregistrer un canvas sur le disque</h3>
-
-<p>This exmaple uses <code>Image </code>to load an image from a path (note: if your path is a file on disk you must use local file; this is accomplished with <code>OS.Path.toFileURI</code>, which accepts a string). After image loads it then draws it to <code>canvas</code>, makes it a <code>blob</code>, and uses <code>FileReader</code> to turn it into <code>ArrayBuffer(View)</code>, then uses OS.File.writeAtomic to save to disk.</p>
-
-<pre class="brush: js">var img = new Image();
-img.onload = function() {
-    var canvas = document.createElementNS('http://www.w3.org/1999/xhtml', 'canvas');
-    canvas.width = img.naturalWidth;
-    canvas.height = img.naturalHeight;
-    var ctx = canvas.getContext('2d');
-    ctx.drawImage(img, 0, 0);
-    (canvas.toBlobHD || canvas.toBlob).call(canvas, function(b) {
-        var r = <code class="language-html">Cc['@mozilla.org/files/filereader;1'].createInstance(Ci.nsIDOMFileReader); </code>//new FileReader();
-        r.onloadend = function() {
-            // r.result contains the ArrayBuffer.
-            var writePath = OS.Path.join(OS.Constants.Path.desktopDir, 'savedImage.png');
-            var promise = OS.File.writeAtomic(writePath, new Uint8Array(r.result), { tmpPath: writePath + '.tmp' });
-            promise.then(
-                function(aVal) {
-                    console.log('successfully saved image to disk');
-                },
-                function(aReason) {
-                    console.log('writeAtomic failed for reason:', aReason);
-                }
-            );
-        };
-        r.readAsArrayBuffer(b);
-    }, 'image/png');
-};
-//var path = OS.Path.toFileURI(OS.Path.join(OS.Contants.Path.desktopDir, 'my.png')); //do it like this for images on disk
-var path = 'https://mozorg.cdn.mozilla.net/media/img/firefox/channel/toggler-beta.png?2013-06'; //do like this for images online
-img.src = path;
-</pre>
-
-<h3 id="Exemple_Ajouter_au_fichier">Exemple: Ajouter au fichier</h3>
-
-<p>This example shows how to use <code>open</code>, <code>write</code>, and <code>close</code> to append to a file. If the file does not exist, it is created. At the time of this writing, <code>write</code> does not support <code>encoding</code> option so the text to be written has to be encoded with <code>TextEncoder</code>. This example also shows the resolve value of open (an instance of OS.File, this is a file, so you can do any of the methods on it found <a href="#OS.File.prototype.close">here</a>), <code>write</code> (a number indicating bytes written), and <code>close</code> (<code>undefined</code>, meaning there is no resolve value).</p>
-
-<pre class="brush: js"><code>var pth = OS.Path.join(OS.Constants.Path.desktopDir, 'app.txt');
-OS.File.open(pth, {write: true, append: true}).then(valOpen =&gt; {
-    console.log('valOpen:', valOpen);
-    var txtToAppend = '</code>append some text <code>\n';
-    var txtEncoded = TextEncoder().encode(txtToAppend);
-    valOpen.write(txtEncoded).then(valWrite =&gt; {
-        console.log('valWrite:', valWrite);
-        valOpen.close().then(valClose =&gt; {
-            console.log('valClose:', valClose);
-            console.log('successfully appended');
-        });
-    });
-});</code></pre>
-
-<h2 id="Objet_Global_OS.File">Objet Global OS.File</h2>
-
-<h3 id="Aperçu_des_Méthodes">Aperçu des Méthodes</h3>
-
-<table>
- <tbody>
- <tr>
- <td><code><a href="/en-US/docs/Mozilla/JavaScript_code_modules/Promise.jsm/Promise" title="/en-US/docs/Mozilla/JavaScript_code_modules/Promise.jsm/Promise">Promise</a>&lt;File&gt; <a href="#OS.File.open" title="#OS.File.open">open</a>(in string path, [optional] in object mode, [optional] in object options);</code></td>
- </tr>
- <tr>
- <td><code><a href="/en-US/docs/Mozilla/JavaScript_code_modules/Promise.jsm/Promise" title="/en-US/docs/Mozilla/JavaScript_code_modules/Promise.jsm/Promise">Promise</a>&lt;object&gt; <a href="#OS.File.openUnique" title="#OS.File.openUnique">openUnique</a>(in string path, [optional] in object options);</code></td>
- </tr>
- <tr>
- <td><code><a href="/en-US/docs/Mozilla/JavaScript_code_modules/Promise.jsm/Promise" title="/en-US/docs/Mozilla/JavaScript_code_modules/Promise.jsm/Promise">Promise</a>&lt;void&gt; <a href="#OS.File.copy" title="#OS.File.copy">copy</a>(in string sourcePath, in string destPath, [optional] in object options);</code></td>
- </tr>
- <tr>
- <td><code><a href="/en-US/docs/Mozilla/JavaScript_code_modules/Promise.jsm/Promise" title="/en-US/docs/Mozilla/JavaScript_code_modules/Promise.jsm/Promise">Promise</a>&lt;bool&gt; <a href="#OS.File.exists" title="#OS.File.exists">exists</a>(in string path);</code></td>
- </tr>
- <tr>
- <td><code><a href="/en-US/docs/Mozilla/JavaScript_code_modules/Promise.jsm/Promise" title="/en-US/docs/Mozilla/JavaScript_code_modules/Promise.jsm/Promise">Promise</a>&lt;string&gt; <a href="#OS.File.getCurrentDirectory" title="#OS.File.getCurrentDirectory">getCurrentDirectory</a>();</code></td>
- </tr>
- <tr>
- <td><code><a href="/en-US/docs/Mozilla/JavaScript_code_modules/Promise.jsm/Promise" title="/en-US/docs/Mozilla/JavaScript_code_modules/Promise.jsm/Promise">Promise</a>&lt;void&gt; <a href="#OS.File.makeDir" title="#OS.File.makeDir">makeDir</a>(in string path, [optional] in object options);</code></td>
- </tr>
- <tr>
- <td><code><a href="/en-US/docs/Mozilla/JavaScript_code_modules/Promise.jsm/Promise" title="/en-US/docs/Mozilla/JavaScript_code_modules/Promise.jsm/Promise">Promise</a>&lt;void&gt; <a href="#OS.File.move" title="#OS.File.move">move</a>(in string sourcePath, in string destPath);</code></td>
- </tr>
- <tr>
- <td><code><a href="/en-US/docs/Mozilla/JavaScript_code_modules/Promise.jsm/Promise" title="/en-US/docs/Mozilla/JavaScript_code_modules/Promise.jsm/Promise">Promise</a>&lt;<a href="/en-US/docs/Web/API/Uint8Array">Uint8Array</a>&gt; <a href="#OS.File.read" title="#OS.File.read">read</a>(in string path, [optional] in object options);</code></td>
- </tr>
- <tr>
- <td><code><a href="/en-US/docs/Mozilla/JavaScript_code_modules/Promise.jsm/Promise" title="/en-US/docs/Mozilla/JavaScript_code_modules/Promise.jsm/Promise">Promise</a>&lt;void&gt; <a href="#OS.File.remove" title="#OS.File.remove">remove</a>(in string path, [optional] in object options);</code></td>
- </tr>
- <tr>
- <td><code><a href="/en-US/docs/Mozilla/JavaScript_code_modules/Promise.jsm/Promise" title="/en-US/docs/Mozilla/JavaScript_code_modules/Promise.jsm/Promise">Promise</a>&lt;void&gt; <a href="#OS.File.removeEmptyDir" title="#OS.File.removeEmptyDir">removeEmptyDir</a>(in string path, [optional] in object options);</code></td>
- </tr>
- <tr>
- <td><code><a href="/en-US/docs/Mozilla/JavaScript_code_modules/Promise.jsm/Promise" title="/en-US/docs/Mozilla/JavaScript_code_modules/Promise.jsm/Promise">Promise</a>&lt;void&gt; <a href="#OS.File.removeDir" title="#OS.File.removeDir">removeDir</a>(in string path, [optional] in object options);</code></td>
- </tr>
- <tr>
- <td><code><a href="/en-US/docs/Mozilla/JavaScript_code_modules/Promise.jsm/Promise" title="/en-US/docs/Mozilla/JavaScript_code_modules/Promise.jsm/Promise">Promise</a>&lt;void&gt; <a href="#OS.File.setCurrentDirectory" title="#OS.File.setCurrentDirectory">setCurrentDirectory</a>(in string path);</code></td>
- </tr>
- <tr>
- <td><code><a href="/en-US/docs/Mozilla/JavaScript_code_modules/Promise.jsm/Promise" title="/en-US/docs/Mozilla/JavaScript_code_modules/Promise.jsm/Promise">Promise</a>&lt;void&gt; <a href="#OS.File.setDates">setDates</a>(in string path, in Date|number accessDate, in Date|number modificationDate);</code></td>
- </tr>
- <tr>
- <td><code><a href="/en-US/docs/Mozilla/JavaScript_code_modules/Promise.jsm/Promise" title="/en-US/docs/Mozilla/JavaScript_code_modules/Promise.jsm/Promise">Promise</a>&lt;void&gt; <a href="#OS.File.setPermissions">setPermissions</a>(in string path, </code> <code>in object options</code> <code>);</code></td>
- </tr>
- <tr>
- <td><code><a href="/en-US/docs/Mozilla/JavaScript_code_modules/Promise.jsm/Promise" title="/en-US/docs/Mozilla/JavaScript_code_modules/Promise.jsm/Promise">Promise</a>&lt;<a href="/en-US/docs/JavaScript_OS.File/OS.File.Info" title="/en-US/docs/JavaScript_OS.File/OS.File.Info">File.Info</a>&gt; <a href="#OS.File.stat" title="#OS.File.stat">stat</a>(in string path, [optional] in object options);</code></td>
- </tr>
- <tr>
- <td><code><a href="/en-US/docs/Mozilla/JavaScript_code_modules/Promise.jsm/Promise" title="/en-US/docs/Mozilla/JavaScript_code_modules/Promise.jsm/Promise">Promise</a>&lt;void&gt; <a href="#OS.File.unixSymLink" title="#OS.File.unixSymLink">unixSymLink</a>(in string targetPath, in string createPath);</code></td>
- </tr>
- <tr>
- <td><code><a href="/en-US/docs/Mozilla/JavaScript_code_modules/Promise.jsm/Promise" title="/en-US/docs/Mozilla/JavaScript_code_modules/Promise.jsm/Promise">Promise</a>&lt;void&gt; <a href="#OS.File.writeAtomic" title="#OS.File.writeAtomic">writeAtomic</a>(in string path, in ArrayView data, in object options);</code></td>
- </tr>
- </tbody>
-</table>
-
-<h3 id="Methods">Methods</h3>
-
-<h4 id="OS.File.open()">OS.File.open()<a name="OS.File.open"></a></h4>
-
-<p>Use method <code>OS.File.open()</code> to open a file.</p>
-
-<pre class="brush:js;">Promise&lt;File&gt; open(
- in string path,
- [optional] in object mode,
- [optional] in object options
-)
-</pre>
-
-<h5 id="Arguments">Arguments</h5>
-
-<dl>
- <dt><code>path</code></dt>
- <dd>The full native name of the file to open.</dd>
- <dt><code>mode</code> {{optional_inline()}}</dt>
- <dd>The opening mode for the file, as an object that may contain a subset of the following fields:
- <dl>
- <dt><code>read</code></dt>
- <dd>If <code>true</code>, the file will be opened for reading. Depending on other fields, it may also be opened for writing.</dd>
- <dt><code>write</code></dt>
- <dd>If <code>true</code>, the file will be opened for writing. Depending on other fields, it may also be opened for reading.</dd>
- <dd>
- <div class="note">Prior to Gecko 27, unless <code>create</code> or <code>truncate</code> are set or explicit <code>unixFlags</code> are given, the file will be opened for appending on Unix/Linux. However, the file is not opened for appending on Windows. See <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=924858">bug 924858</a>. Starting with Gecko 27, you may use the <code>append</code> flag instead. For an example using append see <a href="#Example: Append to File">here</a>.</div>
- </dd>
- <dt><code>truncate</code> | <code>trunc</code></dt>
- <dd>If <code>true</code>, the file will be opened for writing. If the file does not exist, it will be created. If the file exists, its contents will be removed. Cannot be used with <code>create</code>.</dd>
- <dt><code>create</code></dt>
- <dd>If <code>true</code>, file will be opened for writing. The file must not exist. If the file already exists, throw an error. Cannot be used with <code>truncate</code> or <code>existing</code>.</dd>
- <dt><code>existing</code></dt>
- <dd>If <code>true</code>, the file must already exist. If the file does not exist, throw an error. Cannot be used with <code>create</code>.</dd>
- <dt><code>append</code></dt>
- <dd>If<code> true</code>, the file will be opened for appending, meaning the equivalent of <code>.setPosition(0, POS_END)</code> is executed before each write. The default is <code>true</code>, i.e. opening a file for appending. Specify <code>append: false</code> to open the file in regular mode.</dd>
- </dl>
- </dd>
- <dt><code>options</code> {{optional_inline()}}</dt>
- <dd>Platform-specific options for opening the file. <strong>For advanced users only. Most users will never have need of these options.</strong> To specify options, pass an object that may contain some of the following flags:
- <dl>
- <dt><code>unixFlags</code></dt>
- <dd>(ignored under non-Unix platforms) If specified, file opening flags, as per libc function <code>open</code>. If unspecified, build these flags from the contents of <code>mode</code>. You can build these flags from values <a href="/en/JavaScript_OS.Constants#libc_opening_files" title="en/JavaScript_OS.Constants#libc_opening_files">OS.Constants.libc.O_*</a>.</dd>
- <dt><code>unixMode</code></dt>
- <dd>(ignored under non-Unix platforms) If specified, file creation mode, as per libc function <code>open</code>. If unspecified, files are created with a default mode of 0600 (file is private to the user, the user can read and write). You can build this mode from values <a href="/en/JavaScript_OS.Constants#libc_opening_files" title="en/JavaScript_OS.Constants#libc_opening_files"><code>OS.Constants.libc.S_I*</code></a>.</dd>
- <dt><code>winShare</code></dt>
- <dd>(ignored under non-Windows platforms) If specified, a sharing policy, as per Windows function <code>CreateFile</code>. If unspecified, files are opened with a default sharing policy (file is not protected against being read/written/removed by another process or another use in the same process). You can build this policy from constants OS.Constants.Win.FILE_SHARE_*.</dd>
- <dt><code>winSecurity</code></dt>
- <dd>(ignored under non-Windows platforms) If specified, a security policy, as per Windows function <code>CreateFile</code>. If unspecified, no security attributes.</dd>
- <dt><code>winAccess</code></dt>
- <dd>(ignored under non-Windows platforms) If specified, access mode, as per Windows function <code>CreateFile</code>. This also requires option <code>winDisposition</code> and this replaces argument <code>mode</code>. If unspecified, value is built from <code>mode</code>.</dd>
- <dt><code>winDisposition</code></dt>
- <dd>(ignored under non-Windows platforms) If specified, disposition mode, as per Windows function <code>CreateFile</code>. This also requires option <code>winAccess</code> and this replaces argument <code>mode</code>. If unspecified, value is built from <code>mode</code>.</dd>
- </dl>
- </dd>
-</dl>
-
-<h5 id="Promise_resolves_to">Promise resolves to</h5>
-
-<p>An instance of <code>OS.File</code> representing the expected file.</p>
-
-<div class="warning">Note that the operating system limits the number of files that can be opened simultaneously by one process, so do not forget to <a href="/OS.File.prototype.close" title="OS.File.prototype.close"><code>close</code></a> that file once you have finished it, to ensure that you are not blocking the rest of the process.</div>
-
-<p>When opening files for writing, they will be opened for appending unless you specify <code>append: false</code> in Gecko 27 and later. In Gecko 26 and earlier, on platforms other than Windows, the files will be opened for appending unless you specify explicit <code>unixFlags</code> or open the file with either <code>create</code> or <code>truncate</code> flags. In Gecko 26 and earlier on Windows, files will never be opened for appending.</p>
-
-<p>To open an existing file for writing <em>without</em> appending in a compatible way on all platforms in both Gecko 27 and later and Gecko 26 and earlier, you should specify both the <code>append</code> flag and <code>unixFlags</code>.</p>
-
-<pre class="brush:js; language-js">// Open a file for writing without appending to it.
-
-Task.spawn(function() {
- // Under Unix, you'll have to specify your own unixFlags for Gecko &lt; 27 to avoid append mode.
- var options = {};
- if (OS.Constants.libc) {
- // Own flags omitting O_APPEND, e.g.
- options.unixFlags = OS.Constants.libc.O_CREAT | OS.Constants.libc.O_WRONLY;
- }
- // For Gecko &gt;= 27, it is enough, but crucial, to set the correct append flag.
- var outfile = yield OS.File.open("file.tmp", {write: true, append: false}, options);
- try {
- // ... do something with that file
- } finally {
- yield outfile.close();
- }
-});</pre>
-
-<h5 id="Example_of_opening_file_and_keeping_it_locked">Example of opening file and keeping it locked</h5>
-
-<p>This uses Tasks.jsm to open a file and keep it open. When you are done with it, like in shutdown of restartless add-on, you should close the file so it becomes editable again.</p>
-
-<pre class="brush:js; language-js">let options = {
- winShare: 0 // Exclusive lock on Windows
-};
-if (OS.Constants.libc.O_EXLOCK) {
- // Exclusive lock on *nix
- options.unixFlags = OS.Constants.libc.O_EXLOCK;
-}
-let file = yield OS.File.open(..., options);</pre>
-
-<p>Then when you want to unlock the file so it can be edited from other places, close the file.</p>
-
-<pre class="brush:js; language-js">file.close();</pre>
-
-<p>This example is from Stackoverflow: <a href="http://stackoverflow.com/questions/24462115/os-file-check-last-modified-date-before-os-read#24463662">OS.File check last modified date before OS.read</a></p>
-
-<h4 id="OS.File.openUnique()">OS.File.openUnique()<a name="OS.File.openUnique"></a></h4>
-
-<p>Creates and opens a file with a unique name. By default, generate a random hex number and use it to create a unique new file name.</p>
-
-<pre>Promise&lt;object&gt; openUnique(
- in string path,
- [optional] in object options
-) throws <a href="/en-US/docs/JavaScript_OS.File/OS.File.Error" title="/en-US/docs/JavaScript_OS.File/OS.File.Error">OS.File.Error</a></pre>
-
-<h5 id="Arguments_2">Arguments</h5>
-
-<dl>
- <dt><code>path</code></dt>
- <dd>The full native name of the file to open.</dd>
- <dt><code>options</code> {{optional_inline()}}</dt>
- <dd>Additional options for file opening. This implementation interprets the following fields:
- <dl>
- <dt><code>humanReadable</code></dt>
- <dd>If <code>true</code>, create a new filename appending a decimal number, e.g., filename-1.ext, filename-2.ext. If <code>false</code> use hex numbers, e.g., filename-A65BC0.ext.</dd>
- <dt><code>maxAttempts</code></dt>
- <dd>Used to limit the amount of tries after a failed file creation. Default is 99.</dd>
- </dl>
- </dd>
-</dl>
-
-<h5 id="Promise_resolves_to_2">Promise resolves to</h5>
-
-<p>An object contains a file object{file} and the path{path}.</p>
-
-<h5 id="Promise_can_be_rejected_with">Promise can be rejected with</h5>
-
-<dl>
- <dt><code><a href="/en-US/docs/JavaScript_OS.File/OS.File.Error" title="/en-US/docs/JavaScript_OS.File/OS.File.Error">OS.File.Error</a></code></dt>
- <dd>If the file could not be opened.</dd>
-</dl>
-
-<h4 id="OS.File.copy()">OS.File.copy()<a name="OS.File.copy"></a></h4>
-
-<p>Copy a file.</p>
-
-<pre>void copy(
- in string sourcePath,
- in string destPath
- [optional] in object options)
-throws <a href="/en-US/docs/JavaScript_OS.File/OS.File.Error" title="/en-US/docs/JavaScript_OS.File/OS.File.Error">OS.File.Error</a>
-</pre>
-
-<h5 id="Arguments_3">Arguments</h5>
-
-<dl>
- <dt><code>sourcePath</code></dt>
- <dd>The full path of the file to copy. At the time of this writing, this function does <strong>not</strong> copy directories.</dd>
- <dt><code>destPath</code></dt>
- <dd>The full path of the destination. Note that this is not a directory but a file.</dd>
- <dt><code>options</code> {{optional_inline()}}</dt>
- <dd>An optional object used to control the behavior of this function. You may pass an object with a subset of the following fields:</dd>
- <dt style="margin-left: 40px;"><code>noOverwrite</code></dt>
- <dd style="margin-left: 40px;">If <code>destPath</code> already exists, do not overwrite it, but rather launch an exception.</dd>
-</dl>
-
-<h5 id="Promise_can_be_rejected_with_2">Promise can be rejected with</h5>
-
-<dl>
- <dt><code><a href="/en-US/docs/JavaScript_OS.File/OS.File.Error" title="/en-US/docs/JavaScript_OS.File/OS.File.Error">OS.File.Error</a></code></dt>
- <dd>In case of any error, in particular if the file does not exist.</dd>
-</dl>
-
-<div class="note"><strong>Performance notes</strong>
-
-<ul>
- <li>To avoid erasing the destination file, it is much faster to use option <code>noOverwrite</code> than to check manually whether the file exists.</li>
- <li>This operation is OS-optimized under OS X (native operation <code>copyfile</code>), Linux/Android (native operation <code>splice</code>), and Windows (native operation <code>CopyFile</code>).</li>
-</ul>
-</div>
-
-<h4 id="OS.File.exists()">OS.File.exists()<a name="OS.File.exists"></a></h4>
-
-<p>Determine whether a file exists</p>
-
-<pre class="brush: js">Promise&lt;bool&gt; exists(
- in string path
-)
-</pre>
-
-<h5 id="Arguments_4">Arguments</h5>
-
-<dl>
- <dt><code>path</code></dt>
- <dd>The name of the file</dd>
-</dl>
-
-<h5 id="Promise_resolves_to_3">Promise resolves to</h5>
-
-<p>true if the file exists, false otherwise</p>
-
-<div class="note"><strong>Performance note: </strong>For the sake of performance, you should avoid this function whenever possible. For instance, rather than calling exists() to determine if a directory should be created with makeDir, you should rather create the directory with makeDir and catch the error if the directory exists. This will ensure that you only need to perform one I/O operation rather than two.</div>
-
-<h4 id="OS.File.getCurrentDirectory()">OS.File.getCurrentDirectory()<a name="OS.File.getCurrentDirectory"></a></h4>
-
-<p>Return the current directory</p>
-
-<pre class="brush: js">Promise&lt;string&gt; getCurrentDirectory()</pre>
-
-<h5 id="Promise_resolves_to_4">Promise resolves to</h5>
-
-<p>The path to the current directory.</p>
-
-<div class="note">
-<p><strong>Safety note:</strong> Recall that the current directory can change during the execution of the process. Therefore, the information returned by this function may be false by the time you receive it.</p>
-</div>
-
-<h4 id="OS.File.makeDir()">OS.File.makeDir()<a name="OS.File.makeDir"></a></h4>
-
-<p>Create a new directory</p>
-
-<pre>Promise&lt;void&gt; makeDir(
- in string path,
- [optional] in object options
-) throws <a href="/en-US/docs/JavaScript_OS.File/OS.File.Error" title="/en-US/docs/JavaScript_OS.File/OS.File.Error">OS.File.Error</a></pre>
-
-<h5 id="Arguments_5">Arguments</h5>
-
-<dl>
- <dt><code>path</code></dt>
- <dd>The full name of the directory to create.</dd>
- <dt><code>options</code> {{optional_inline()}}</dt>
- <dd>Options for creating the directory. To specify options, pass an object that may contain some of the following flags:</dd>
- <dt style="margin-left: 40px;"><code>ignoreExisting</code></dt>
- <dd style="margin-left: 40px;">If <code>true</code>, succeed even if the directory already exists (default behavior). Otherwise, fail if the directory already exists. NOTE: If <code>from</code> is specified then even if <code>ignoreExisting</code> is specified as <code>false</code>, it will not fail due to pre-existence of directories, because the <code>from</code> option tells <code>makeDir</code> to make the folders if not found.</dd>
- <dt style="margin-left: 40px;"><code>unixMode</code></dt>
- <dd style="margin-left: 40px;">(ignored under non-Unix platforms) If specified, file creation mode, as per libc function mkdir. If unspecified, directories are created with a default mode of 0600 (file is private to the user, the user can read and write). You can build this mode from values <a href="/en/JavaScript_OS.Constants#libc_opening_files" title="en/JavaScript_OS.Constants#libc_opening_files"><code>OS.Constants.libc.S_I*</code></a>.</dd>
- <dt style="margin-left: 40px;"><code>winSecurity</code></dt>
- <dd style="margin-left: 40px;">(ignored under non-Windows platforms) If specified, a security policy, as per Windows function <code>CreateDirectory</code>. If unspecified, no security attributes.</dd>
- <dt style="margin-left: 40px;"><code>from</code></dt>
- <dd style="margin-left: 40px;">If specified, the call to <code>makeDir</code> creates all the ancestors of <code>path</code> that are descendents of <code>from</code>. Note that <code>from</code> and its existing descendents must be user-writeable and that <code>path</code> must be a descendent of <code>from</code>.</dd>
-</dl>
-
-<h4 id="OS.File.move()">OS.File.move()<a name="OS.File.move"></a></h4>
-
-<p>Move a file.</p>
-
-<pre>Promise&lt;void&gt; move(
- in string sourcePath,
- in string destPath
- [optional] in object options
-)</pre>
-
-<h5 id="Arguments_6"><span>Arguments</span></h5>
-
-<dl>
- <dt><code>sourcePath</code></dt>
- <dd>The full path of the file to move. At the time of this writing, the behavior of this function is unspecified if <code>sourcePath</code> is a directory.</dd>
- <dt><code>destPath</code></dt>
- <dd>The full path of the destination. At the time of this writing, the behavior of this function is unspecified if <code>destPath</code> is a directory.</dd>
- <dt><code>options</code> {{optional_inline()}}</dt>
- <dd>An optional object used to control the behavior of this function. You may pass an object with a subset of the following fields:
- <dl>
- <dt><code>noOverwrite</code></dt>
- <dd>If <code>destPath</code> already exists, do not overwrite it, but rather launch an exception.</dd>
- <dt><code>noCopy</code></dt>
- <dd>If moving the file would require a copy (i.e. if the destination path resides on another drive/device/file system as the source path), fail.</dd>
- </dl>
- </dd>
-</dl>
-
-<h5 id="Promise_can_be_rejected_with_3">Promise can be rejected with</h5>
-
-<dl>
- <dt><code><a href="/en-US/docs/JavaScript_OS.File/OS.File.Error" title="/en-US/docs/JavaScript_OS.File/OS.File.Error">OS.File.Error</a></code></dt>
- <dd>In case of any error, in particular if the file does not exist.</dd>
-</dl>
-
-<div class="note"><strong>Performance note</strong>: This operation is OS-optimized under OS X, Linux/Android, and Windows.</div>
-
-<h4 id="OS.File.read()">OS.File.read()<a name="OS.File.read"></a></h4>
-
-<p>Read the contents of a file</p>
-
-<pre class="brush: js">Promise&lt;Uint8Array&gt; read(
- in string path,
- [optional] in number bytes
-)
-</pre>
-
-<h5 id="Arguments_7">Arguments</h5>
-
-<dl>
- <dt><code>path</code></dt>
- <dd>The full path to the file to read.</dd>
- <dt><code>bytes</code> {{optional_inline()}}</dt>
- <dd>The number of bytes to read. If unspecified, read the complete file.</dd>
-</dl>
-
-<h5 id="Promise_resolves_to_5">Promise resolves to</h5>
-
-<p>An array holding bytes bytes (or less if the file did not contain as many bytes).</p>
-
-<h5 id="Promise_can_be_rejected_with_4">Promise can be rejected with</h5>
-
-<dl>
- <dt><code><a href="/en-US/docs/JavaScript_OS.File/OS.File.Error" title="/en-US/docs/JavaScript_OS.File/OS.File.Error">OS.File.Error</a></code></dt>
- <dd>In case of any error, in particular if the file does not exist or if the process does not have the authorization to read it.</dd>
-</dl>
-
-<div class="note">
-<dl>
- <dt>As of Firefox 30, OS.File.read() takes an options object as second argument.</dt>
-</dl>
-
-<pre class="brush: js">Promise&lt;Uint8Array&gt; read(
- in string path,
- [optional] in object options
-)</pre>
-
-<h5 id="Arguments_8">Arguments</h5>
-
-<dl>
- <dt><code>path</code></dt>
- <dd>The full path to the file to read.</dd>
-</dl>
-
-<dl>
- <dt><code>options</code> {{optional_inline()}}</dt>
- <dd>An optional object used to control the behavior of this function. You may pass an object with a subset of the following fields:
- <dl>
- <dt><code>bytes</code></dt>
- <dd>The number of bytes to read. If unspecified, read the complete file.</dd>
- <dt><code>encoding</code></dt>
- <dd>Instead of using <code>TextDecoder</code>, you can supply a string to this option. For example, instead of:
- <pre class="brush: js">let decoder = new TextDecoder();
-let promise = OS.File.read("file.txt");
-promise = promise.then(
- function onSuccess(array) {
- return decoder.decode(array); // Convert this array to a text
- }
-);</pre>
- You can simply do:
-
- <pre class="brush: js">let promise = OS.File.read("file.txt", { encoding: "utf-8" });
-promise = promise.then(
- function onSuccess(text) {
- return text; // text is a string
- }
-);</pre>
- </dd>
- </dl>
- </dd>
-</dl>
-</div>
-
-<h4 id="OS.File.remove()">OS.File.remove()<a name="OS.File.remove"></a></h4>
-
-<p>Remove an existing file.</p>
-
-<pre>Promise&lt;void&gt; remove(
- in string path,
- [optional] in object options
-)
-</pre>
-
-<h5 id="Arguments_9">Arguments</h5>
-
-<dl>
- <dt><code>path</code></dt>
- <dd>A string representing the path of the file to remove. At the time of this writing, this function does <strong>not</strong> remove directories.</dd>
- <dt>options {{optional_inline()}}</dt>
- <dd>An optional object used to control the behavior of this function. You may pass an object with a subset of the following fields:</dd>
- <dt style="margin-left: 40px;"><code>ignoreAbsent</code></dt>
- <dd style="margin-left: 40px;">Succeed if the file doesn't exist.</dd>
-</dl>
-
-<h5 id="Promise_can_be_rejected_with_5">Promise can be rejected with</h5>
-
-<dl>
- <dt><code><a href="/en-US/docs/JavaScript_OS.File/OS.File.Error" title="/en-US/docs/JavaScript_OS.File/OS.File.Error">OS.File.Error</a></code></dt>
- <dd>In case of any error, in particular if the file does not exist.</dd>
-</dl>
-
-<h4 id="OS.File.removeEmptyDir()">OS.File.removeEmptyDir()<a name="OS.File.removeEmptyDir"></a></h4>
-
-<p>Remove an empty directory</p>
-
-<pre class="brush: js">Promise&lt;void&gt; removeEmptyDir(
- in string path,
- [optional] in object options
-)
-</pre>
-
-<h5 id="Arguments_10">Arguments</h5>
-
-<dl>
- <dt><code>path</code></dt>
- <dd>The complete path to the directory.</dd>
- <dt>options {{optional_inline()}}</dt>
- <dd>An optional object used to control the behavior of this function. You may pass an object with a subset of the following fields:</dd>
- <dt style="margin-left: 40px;"><code>ignoreAbsent</code></dt>
- <dd style="margin-left: 40px;">Succeed if the directory doesn't exist.</dd>
-</dl>
-
-<h5 id="Promise_can_be_rejected_with_6">Promise can be rejected with</h5>
-
-<dl>
- <dt><code><a href="/en-US/docs/JavaScript_OS.File/OS.File.Error" title="/en-US/docs/JavaScript_OS.File/OS.File.Error">OS.File.Error</a></code></dt>
- <dd>In case of any error, in particular if the file does not exist.</dd>
-</dl>
-
-<h4 id="OS.File.removeDir()">OS.File.removeDir()<a name="OS.File.removeDir"></a></h4>
-
-<p>Remove an existing directory and its contents.</p>
-
-<pre>Promise&lt;void&gt; removeDir(
- in string path,
- [optional] in object options
-)
-</pre>
-
-<h5 id="Arguments_11">Arguments</h5>
-
-<dl>
- <dt><code>path</code></dt>
- <dd>A string representing the name of the file to remove.</dd>
- <dt><code>options</code></dt>
- <dd>An object that may contain the following fields</dd>
- <dt style="margin-left: 40px;"><code>ignoreAbsent</code></dt>
- <dd style="margin-left: 40px;">If false, this function will throw an error if the directory doesn't exist.</dd>
- <dt style="margin-left: 40px;"><code>ignorePermissions</code></dt>
- <dd style="margin-left: 40px;">If true, this function will remove the directory even when lacking write permissions.</dd>
-</dl>
-
-<h5 id="Promise_can_be_rejected_with_7">Promise can be rejected with</h5>
-
-<dl>
- <dt><code><a href="/en-US/docs/JavaScript_OS.File/OS.File.Error" title="/en-US/docs/JavaScript_OS.File/OS.File.Error">OS.File.Error</a></code></dt>
- <dd>In case of any error, in particular if path isn't a directory.</dd>
-</dl>
-
-<h4 id="OS.File.setCurrentDirectory()">OS.File.setCurrentDirectory()<a name="OS.File.setCurrentDirectory"></a></h4>
-
-<p>Change the current directory of the process.</p>
-
-<div class="warning"><strong>Use with extreme caution</strong>: This API may be useful for application developers but must not be used by add-ons, as it changes the state of the complete application.</div>
-
-<pre class="brush: js">Promise&lt;void&gt; setCurrentDirectory(
- in string path
-)</pre>
-
-<h5 id="Arguments_12">Arguments</h5>
-
-<dl>
- <dt><code>path</code></dt>
- <dd>The complete path to use as current directory.</dd>
-</dl>
-
-<h5 id="Promise_can_be_rejected_with_8">Promise can be rejected with</h5>
-
-<dl>
- <dt><code><a href="/en-US/docs/JavaScript_OS.File/OS.File.Error" title="/en-US/docs/JavaScript_OS.File/OS.File.Error">OS.File.Error</a></code></dt>
- <dd>In case of any error, in particular if the path does not represent an existing directory.</dd>
-</dl>
-
-<h4 id="OS.File.setDates()">OS.File.setDates()<a name="OS.File.setDates"></a></h4>
-
-<p>Set the last access and modification date of the file.</p>
-
-<p>The time stamp resolution is one second at best, but might be worse depending on the platform, file system, etc.</p>
-
-<pre class="brush: js">Promise&lt;void&gt; setDates(
- in string path,
- in Date|number accessDate,
- in Date|number modificationDate
-)</pre>
-
-<h5 id="Arguments_13">Arguments</h5>
-
-<dl>
- <dt>path</dt>
- <dd>The complete path to the file.</dd>
- <dt>accessDate</dt>
- <dd>The last access date. If numeric, milliseconds since epoch. If omitted or null, the current date will be used.</dd>
- <dt>modificationDate</dt>
- <dd>The last modification date. If numeric, milliseconds since epoch. If omitted or null, the current date will be used.</dd>
-</dl>
-
-<h5 id="Promise_can_be_rejected_with_9">Promise can be rejected with</h5>
-
-<dl>
- <dt><code><a href="/en-US/docs/JavaScript_OS.File/OS.File.Error" title="/en-US/docs/JavaScript_OS.File/OS.File.Error">OS.File.Error</a></code></dt>
- <dd>In case of any error, in particular if the path does not represent an existing file.</dd>
-</dl>
-
-<dl>
- <dt>
- <h4 id="OS.File.setPermissions()">OS.File.setPermissions()<a name="OS.File.setPermissions"></a></h4>
-
- <p>Sets the file's access permission bits.</p>
-
- <pre class="brush: js">Promise&lt;void&gt; setPermissions(
- in string path,
- in object options
-)</pre>
-
- <h5 id="Arguments_14">Arguments</h5>
- </dt>
- <dt>path</dt>
- <dd>The complete path to the file.</dd>
- <dt>options</dt>
- <dd>The new attributes to set</dd>
- <dt style="margin-left: 40px;"><code>winAttributes</code></dt>
- <dd style="margin-left: 40px;">This is an object with following optional keys. Ignored under non-Windows platforms.</dd>
- <dt style="margin-left: 80px;"><code>hidden</code></dt>
- <dd style="margin-left: 80px;">Boolean. Set to true to make the target hidden, or false to make it visible.</dd>
- <dt style="margin-left: 80px;"><code>readOnly</code></dt>
- <dd style="margin-left: 80px;">Boolean. Set to true to make the target "read only".</dd>
- <dt style="margin-left: 80px;"><code>system</code></dt>
- <dd style="margin-left: 80px;">Boolean. Toggles the "system" attribute, this is equivalent .</dd>
- <dt style="margin-left: 40px;"><code>unixMode</code></dt>
- <dd style="margin-left: 40px;">Number. This is an number can be created with the constants available in <code>OS.Constants.libc.S_I*</code> or <code>OS.Constants.libc.S_O*</code>. Ignored under non-Unix platforms. To make a file hidden on Unix based platforms, including Mac, simply rename the file with <code>OS.File.move</code> to have "." at the start of the file name.</dd>
- <dt style="margin-left: 40px;"><code>unixHonorUmask</code></dt>
- <dd style="margin-left: 40px;">Toggles the <code>OS.Constants.Sys.umask</code> flag. Ignored under non-Unix platforms..</dd>
- <dt>
- <h5 id="Promise_can_be_rejected_with_10">Promise can be rejected with</h5>
- </dt>
- <dt><code><a href="/en-US/docs/JavaScript_OS.File/OS.File.Error" title="/en-US/docs/JavaScript_OS.File/OS.File.Error">OS.File.Error</a></code></dt>
- <dd>In case of any error, in particular if the path does not represent an existing file.</dd>
-</dl>
-
-<h4 id="OS.File.stat()">OS.File.stat()<a name="OS.File.stat"></a></h4>
-
-<p>Obtain information about a file, such as size, creation date, etc.</p>
-
-<pre class="brush: js">Promise&lt;File.Info&gt; stat(
- in string path
-)</pre>
-
-<h5 id="Arguments_15">Arguments</h5>
-
-<dl>
- <dt><code>path</code></dt>
- <dd>The complete path to the file.</dd>
-</dl>
-
-<h5 id="Promise_resolves_to_6">Promise resolves to</h5>
-
-<p class="brush: js">An instance of <a href="/en-US/docs/JavaScript_OS.File/OS.File.Info" title="/en-US/docs/JavaScript_OS.File/OS.File.Info">File.Info</a> holding information about a file.</p>
-
-<h5 id="Promise_can_be_rejected_with_11">Promise can be rejected with</h5>
-
-<dl>
- <dt><code><a href="/en-US/docs/JavaScript_OS.File/OS.File.Error" title="/en-US/docs/JavaScript_OS.File/OS.File.Error">OS.File.Error</a></code></dt>
- <dd>In case of any error, in particular if the path does not represent an existing file.</dd>
-</dl>
-
-<div class="note"><strong>Performance Note:</strong> If the file is already opened, calling <em>method</em> <a href="#OS.File.prototype.stat" title="#OS.File.prototype.stat"><code>stat()</code></a> is much faster than calling <em>function</em> <a href="#OS.File.stat" title="#OS.File.stat">OS.File.stat()</a>.</div>
-
-<h4 id="OS.File.unixSymLink()">OS.File.unixSymLink()<a id="OS.File.unixSymLink" name="OS.File.unixSymLink"></a></h4>
-
-<p>Create a symoblic link file, also known as "Alias" files on Mac OS. This is similar to "Shortcut" files on Windows systems. This function is specific to UNIX baed systems such as Linux and Mac OS X.</p>
-
-<pre class="brush: js">Promise&lt;undefined&gt; unixSymLink(
- in string pathTarget,
- in string pathCreate
-)</pre>
-
-<h5 id="Arguments_16">Arguments</h5>
-
-<dl>
- <dt><code>pathTarget</code></dt>
- <dd>The complete path to the file that should be launced by the symbolic link.</dd>
-</dl>
-
-<dl>
- <dt><code>pathCreate</code></dt>
- <dd>The complete path to the file that should launch target. The file extension should be <code>.link.</code></dd>
-</dl>
-
-<h5 id="Promise_resolves_to_7">Promise resolves to</h5>
-
-<p class="brush: js">undefined</p>
-
-<h5 id="Promise_can_be_rejected_with_12">Promise can be rejected with</h5>
-
-<dl>
- <dt><code><a href="/en-US/docs/JavaScript_OS.File/OS.File.Error" title="/en-US/docs/JavaScript_OS.File/OS.File.Error">OS.File.Error</a></code></dt>
- <dd>In case of any error. If the file exists already, unixErrorco of 17 will be returned.</dd>
-</dl>
-
-<h4 id="OS.File.writeAtomic()">OS.File.writeAtomic()<a name="OS.File.writeAtomic"></a></h4>
-
-<p>Write data to a file, atomically.</p>
-
-<p>Unlike a regular <code>write</code>, this operation ensures that, until the contents are fully written, the destination file is not modified.</p>
-
-<pre class="brush: js">Promise&lt;void&gt; writeAtomic(
- in string path,
- in ArrayBufferView data,
- in object options
-)</pre>
-
-<h5 id="Arguments_17">Arguments</h5>
-
-<dl>
- <dt><code>path</code></dt>
- <dd>The full path to the destination file.</dd>
- <dt><code>data</code></dt>
- <dd>An <a href="/en-US/docs/JavaScript_typed_arrays/ArrayBufferView" title="/en-US/docs/JavaScript_typed_arrays/ArrayBufferView">ArrayBufferView</a> holding the data to write.</dd>
- <dd>{{ Fx_minversion_note("37.0", "As of Firefox 37, this method will neuter the array buffer.") }}</dd>
- <dt> </dt>
- <dt><code>options</code></dt>
- <dd>An object that may contain the following fields</dd>
- <dt style="margin-left: 40px;"><code>tmpPath</code></dt>
- <dd style="margin-left: 40px;">If <code>null</code> or unspecified, write the data directly to <code>path</code>. If specified, write the data to a temporary file called <code>tmpPath</code> and, once the write is complete, rename the file to replace <code>path</code>. Performing this operation is a little slower but also a little safer. {{ Fx_minversion_note("25.0", "tmpPath is required in Firefox 24 or lower version, but optional in Firefox 25 or higher version") }}</dd>
- <dt style="margin-left: 40px;"><code>noOverwrite</code></dt>
- <dd style="margin-left: 40px;">If specified and true, and if <code>path</code> already exists, this function will throw an error without overwriting <code>path</code>.</dd>
- <dt style="margin-left: 40px;"><code>flush</code></dt>
- <dd style="margin-left: 40px;">If <code>false</code> or unspecified, return immediately once the write is complete. If <code>true</code>, before writing, force the operating system to write its internal disk buffers to the disk. This is considerably slower (not just for the application but for the whole system) and more battery expensive but also safer: if the system shuts down improperly (typically due to a kernel freeze or a power failure) or if the device is disconnected before the buffer is flushed, the file has more chances of not being corrupted.</dd>
- <dt style="margin-left: 40px;"><code>backupTo</code></dt>
- <dd style="margin-left: 40px;">Available since Firefox 30. If specified, backup the destination file as <code>backupTo</code>. Note that this function renames the destination file before overwriting it. If the process or the operating system freezes or crashes during the short window between these operations, the destination file will have been moved to its backup.</dd>
- <dt style="margin-left: 40px;"><code>encoding</code></dt>
- <dd style="margin-left: 40px;">Available since Firefox 22. Instead of using <code>TextEncoder</code>, you can supply a string to this option. For example, instead of:
- <pre class="brush: js">let encoder = new TextEncoder();
-let array = encoder.encode("This is some text");
-let promise = OS.File.writeAtomic("file.txt", array, {tmpPath: "file.txt.tmp"});</pre>
- You can simply do:
-
- <pre class="brush: js">let promise = OS.File.writeAtomic("file.txt", "This is some text", { encoding: "utf-8", tmpPath: "file.txt.tmp" })</pre>
- </dd>
-</dl>
-
-<div class="warning"><strong>Limitations</strong><br>
-In a few extreme cases (hardware failure during the write, user unplugging disk during the write, etc.), data may be corrupted. If your data is user-critical (e.g., preferences, application data), you may wish to consider adding options <code>tmpPath</code> and/or <code>flush</code> to reduce the likelihood of corruption, as detailed above. Note that no combination of options can be guaranteed to totally eliminate the risk of corruption.<br>
- </div>
-
-<div class="warning"><strong>Use with caution:</strong> Modifying the contents of <code>data</code> before the operation is complete is a <strong>very bad idea</strong>.</div>
-
-<h5 id="Promise_can_be_rejected_with_13">Promise can be rejected with</h5>
-
-<dl>
- <dt><a href="/en-US/docs/JavaScript_OS.File/OS.File.Error" title="/en-US/docs/JavaScript_OS.File/OS.File.Error">OS.File.Error</a></dt>
- <dd>In case of any error, in particular if the destination file cannot be overwritten, or if <code>tmpPath</code> is not on the same device as <code>path</code>.</dd>
-</dl>
-
-<h2 id="Instances_of_OS.File">Instances of OS.File</h2>
-
-<p>To obtain an instance of OS.File, use function <a href="#OS.File.open" title="#OS.File.open">OS.File.open</a>.</p>
-
-<h3 id="Methods_overview">Methods overview</h3>
-
-<table style="height: 321px; width: 942px;">
- <tbody>
- <tr>
- <td><code><a href="/en-US/docs/Mozilla/JavaScript_code_modules/Promise.jsm/Promise" title="/en-US/docs/Mozilla/JavaScript_code_modules/Promise.jsm/Promise">Promise</a>&lt;void&gt; <a href="#OS.File.prototype.close" title="#OS.File.prototype.close">close</a>()</code></td>
- </tr>
- <tr>
- <td><code><a href="/en-US/docs/Mozilla/JavaScript_code_modules/Promise.jsm/Promise" title="/en-US/docs/Mozilla/JavaScript_code_modules/Promise.jsm/Promise">Promise</a>&lt;void&gt; <a href="#OS.File.prototype.flush" title="#OS.File.prototype.flush">flush</a>()</code></td>
- </tr>
- <tr>
- <td><code><a href="/en-US/docs/Mozilla/JavaScript_code_modules/Promise.jsm/Promise" title="/en-US/docs/Mozilla/JavaScript_code_modules/Promise.jsm/Promise">Promise</a>&lt;number&gt; <a href="#OS.File.prototype.getPosition" title="#OS.File.prototype.getPosition">getPosition</a>()</code></td>
- </tr>
- <tr>
- <td><code><a href="/en-US/docs/Mozilla/JavaScript_code_modules/Promise.jsm/Promise" title="/en-US/docs/Mozilla/JavaScript_code_modules/Promise.jsm/Promise">Promise</a>&lt;number&gt; <a href="#OS.File.prototype.read" title="#OS.File.prototype.read">read</a>([optional] in number bytes)</code></td>
- </tr>
- <tr>
- <td><code><a href="/en-US/docs/Mozilla/JavaScript_code_modules/Promise.jsm/Promise" title="/en-US/docs/Mozilla/JavaScript_code_modules/Promise.jsm/Promise">Promise</a>&lt;void&gt; <a href="#OS.File.prototype.setDates">setDates</a>(in Date|number accessDate, in Date|number modificationDate);</code></td>
- </tr>
- <tr>
- <td><code><a href="/en-US/docs/Mozilla/JavaScript_code_modules/Promise.jsm/Promise" title="/en-US/docs/Mozilla/JavaScript_code_modules/Promise.jsm/Promise">Promise</a>&lt;void&gt; <a href="#OS.File.prototype.setPosition" title="#OS.File.prototype.setPosition">setPosition</a>(in number bytes)</code></td>
- </tr>
- <tr>
- <td><code><a href="/en-US/docs/Mozilla/JavaScript_code_modules/Promise.jsm/Promise" title="/en-US/docs/Mozilla/JavaScript_code_modules/Promise.jsm/Promise">Promise</a>&lt;<a href="/en-US/docs/JavaScript_OS.File/OS.File.Info" title="/en-US/docs/JavaScript_OS.File/OS.File.Info">File.Info</a>&gt; <a href="#OS.File.prototype.stat" title="#OS.File.prototype.stat">stat</a>()</code></td>
- </tr>
- <tr>
- <td><code><a href="/en-US/docs/Mozilla/JavaScript_code_modules/Promise.jsm/Promise" title="/en-US/docs/Mozilla/JavaScript_code_modules/Promise.jsm/Promise">Promise</a>&lt;number&gt; <a href="#OS.File.prototype.write" title="#OS.File.prototype.write">write</a>(in <a href="/en-US/docs/JavaScript_typed_arrays/ArrayBufferView" title="/en-US/docs/JavaScript_typed_arrays/ArrayBufferView">ArrayBufferView</a> source, [optional] in object options)</code></td>
- </tr>
- </tbody>
-</table>
-
-<h3 id="Methods_2">Methods</h3>
-
-<h4 id="close()">close()<a name="OS.File.prototype.close"></a></h4>
-
-<p>Close a file and release any associated resource.</p>
-
-<p>Once the file is closed, any attempt to call methods of the file object will raise an error.</p>
-
-<p>An example is seen <a href="#Example: Append to File">here</a>. In this example the contents is not written to file until .close is called.</p>
-
-<div class="warning">Note that the operating system limits the number of files that can be opened simultaneously by one process, so do not forget to <a href="/#OS.File.prototype.close" title="#OS.File.prototype.close"><code>close</code></a> that file once you have finished it to make sure that you are not blocking the rest of the process.</div>
-
-<pre class="brush: js">Promise&lt;void&gt; close()</pre>
-
-<h3 id="flush()">flush()</h3>
-
-<p>Flushes the file's internal buffers, ensuring that all data still in these buffers is now written to disk.</p>
-
-<p>Disk flushes are very expensive and therefore should be used carefully, sparingly, and only in scenarios where it is vital that data survives<span class="difflineplus"> system crashes. Even though the function will be executed off the main-thread, it might still affect the overall performance of any running application.</span></p>
-
-<pre class="brush: js">Promise&lt;void&gt; flush()</pre>
-
-<h4 id="getPosition()"><a name="OS.File.prototype.getPosition">getPosition</a>()</h4>
-
-<p>Return the current position in the file.</p>
-
-<pre>Promise&lt;number&gt; getPosition()
-</pre>
-
-<h5 id="Promise_resolves_to_8">Promise resolves to</h5>
-
-<p>The current position in the file, as a number of bytes from the start.</p>
-
-<h5 id="Promise_can_be_rejected_with_14">Promise can be rejected with</h5>
-
-<dl>
- <dt><code><a href="/en-US/docs/JavaScript_OS.File/OS.File.Error" title="/en-US/docs/JavaScript_OS.File/OS.File.Error">OS.File.Error</a></code></dt>
- <dd>If the file is closed.</dd>
-</dl>
-
-<h4 id="read()">read()<a name="OS.File.prototype.read"></a></h4>
-
-<p>Read bytes from this file to a new buffer. Bytes are read from the current position in the file and the position is advanced accordingly.</p>
-
-<pre>Promise&lt;Uint8Array&gt; read(
- [optional] in number bytes
-)</pre>
-
-<h5 id="Arguments_18">Arguments</h5>
-
-<dl>
- <dt><code>bytes</code></dt>
- <dd>If specified, read <code>bytes</code> bytes, or less if the file does not contain that many bytes. If unspecified, read all the remaining bytes from this file.</dd>
-</dl>
-
-<h5 id="Promise_resolves_to_9">Promise resolves to</h5>
-
-<p>An array containing the bytes read.</p>
-
-<div class="note">If you need to convert the result of this function to a string, you may do so by using the <a href="http://wiki.whatwg.org/wiki/StringEncoding" title="http://wiki.whatwg.org/wiki/StringEncoding">StringEncoding API</a>.</div>
-
-<h5 id="Promise_can_be_rejected_with_15">Promise can be rejected with</h5>
-
-<dl>
- <dt><code><a href="/en-US/docs/JavaScript_OS.File/OS.File.Error" title="/en-US/docs/JavaScript_OS.File/OS.File.Error">OS.File.Error</a></code></dt>
- <dd>In case of I/O error.</dd>
-</dl>
-
-<h4 id="setDates()">setDates()<a name="OS.File.prototype.setDates"></a></h4>
-
-<p>Set the last access and modification date of the file.</p>
-
-<p>The time stamp resolution is one second at best, but might be worse depending on the platform, file system, etc.</p>
-
-<pre class="brush: js">Promise&lt;void&gt; setDates(
- in Date|number accessDate,
- in Date|number modificationDate
-)</pre>
-
-<h5 id="Arguments_19">Arguments</h5>
-
-<dl>
- <dt>accessDate</dt>
- <dd>The last access date. If numeric, milliseconds since epoch. If omitted or null, the current date will be used.</dd>
- <dt>modificationDate</dt>
- <dd>The last modification date. If numeric, milliseconds since epoch. If omitted or null, the current date will be used.</dd>
-</dl>
-
-<h5 id="Promise_can_be_rejected_with_16">Promise can be rejected with</h5>
-
-<dl>
- <dt><code><a href="/en-US/docs/JavaScript_OS.File/OS.File.Error" title="/en-US/docs/JavaScript_OS.File/OS.File.Error">OS.File.Error</a></code></dt>
- <dd>In case of any error, in particular if the path does not represent an existing file.</dd>
-</dl>
-
-<h4 id="setPosition()">setPosition()<a name="OS.File.prototype.setPosition"></a></h4>
-
-<p>Change the current position in the file.</p>
-
-<pre>Promise&lt;void&gt; setPosition(
- in number offset,
- in object origin
-)
-</pre>
-
-<h5 id="Arguments_20">Arguments</h5>
-
-<dl>
- <dt><code>offset</code></dt>
-</dl>
-
-<dl>
- <dd>The new position, as a number of bytes from the origin.</dd>
- <dt><code>origin</code></dt>
- <dd>One of the following:
- <ul>
- <li><code>OS.File.POS_START</code> (bytes are counted from the start of the file)</li>
- <li><code>OS.File.POS_CUR</code> (bytes are counted from the current position in the file)</li>
- <li><code>OS.File.POS_END</code> (bytes are counted from the end of the file)</li>
- </ul>
- </dd>
-</dl>
-
-<h5 id="Promise_can_be_rejected_with_17">Promise can be rejected with</h5>
-
-<dl>
- <dt><code><a href="/en-US/docs/JavaScript_OS.File/OS.File.Error" title="/en-US/docs/JavaScript_OS.File/OS.File.Error">OS.File.Error</a></code></dt>
- <dd>In case of any error, in particular if the new position is before the start of the file, or if the file is closed.</dd>
-</dl>
-
-<h4 id="stat()">stat()<a name="OS.File.prototype.stat"></a></h4>
-
-<p>Obtain information about the file, such as size, creation date, etc.</p>
-
-<pre class="brush: js">Promise&lt;<a href="/en-US/docs/JavaScript_OS.File/OS.File.Info" title="/en-US/docs/JavaScript_OS.File/OS.File.Info">File.Info</a>&gt; stat()</pre>
-
-<h5 id="Promise_resolves_to_10">Promise resolves to</h5>
-
-<p class="brush: js">An instance of <a href="/en-US/docs/JavaScript_OS.File/OS.File.Info" title="/en-US/docs/JavaScript_OS.File/OS.File.Info">File.Info</a> holding information about the file.</p>
-
-<h5 id="Promise_can_be_rejected_with_18">Promise can be rejected with</h5>
-
-<dl>
- <dt><code><a href="/en-US/docs/JavaScript_OS.File/OS.File.Error" title="/en-US/docs/JavaScript_OS.File/OS.File.Error">OS.File.Error</a></code></dt>
- <dd>In case of any error, in particular if the file is closed.</dd>
-</dl>
-
-<h4 id="write()">write()<a name="OS.File.prototype.write"></a></h4>
-
-<p>Write bytes from a buffer to this file.</p>
-
-<p>Note that, by default, this function may perform several I/O operations to ensure that the buffer is fully written.</p>
-
-<p>An example is seen <a href="#Example: Append to File">here</a>.</p>
-
-<pre>Promise&lt;number&gt; write(
- in <a href="/en-US/docs/JavaScript_typed_arrays/ArrayBufferView" title="/en-US/docs/JavaScript_typed_arrays/ArrayBufferView">ArrayBufferView</a> source
- [optional] in object options
-)</pre>
-
-<h5 id="Arguments_21">Arguments</h5>
-
-<dl>
- <dt><code>source</code></dt>
- <dd>The array in which the the bytes are stored.</dd>
- <dd>{{ Fx_minversion_note("37.0", "As of Firefox 37, this method will neuter the array buffer.") }}</dd>
- <dt><code>options</code> {{optional_inline()}}</dt>
- <dd>An object that may contain some of the following fields:</dd>
- <dt style="margin-left: 40px;"><code>bytes</code></dt>
- <dd style="margin-left: 40px;">An upper bound to the number of bytes to write to the file. If unspecified, write up to <code>source.byteLength</code> bytes. If specified, this must be less than <code>source.byteLength</code>.</dd>
-</dl>
-
-<h5 id="Promise_resolves_to_11">Promise resolves to</h5>
-
-<p>The number of bytes effectively written to the file.</p>
-
-<h5 id="Promise_can_be_rejected_with_19">Promise can be rejected with</h5>
-
-<dl>
- <dt><code><a href="/en-US/docs/JavaScript_OS.File/OS.File.Error" title="/en-US/docs/JavaScript_OS.File/OS.File.Error">OS.File.Error</a></code></dt>
- <dd>In case of any I/O error.</dd>
- <dt><code>TypeError</code></dt>
- <dd>If <code>options.bytes</code> is specified and is larger than <code>source.byteLength</code>.</dd>
-</dl>
diff --git a/files/fr/mozilla/javascript_code_modules/services.jsm/index.html b/files/fr/mozilla/javascript_code_modules/services.jsm/index.html
deleted file mode 100644
index 5db295d311..0000000000
--- a/files/fr/mozilla/javascript_code_modules/services.jsm/index.html
+++ /dev/null
@@ -1,283 +0,0 @@
----
-title: Services.jsm
-slug: Mozilla/JavaScript_code_modules/Services.jsm
-tags:
- - Add-ons
- - Extensions
- - Interface
- - JavaScript
- - Modules
- - Services
- - XPCOM
-translation_of: Mozilla/JavaScript_code_modules/Services.jsm
----
-<p>{{ gecko_minversion_header("2") }}</p>
-
-<p><span class="seoSummary">Le service Sercices.jsm Javascript module code offre un large assortiment de getters paresseux qui simplifient les processus d'obtention la reference des services communement utilisé.</span></p>
-
-<p>Pour l'utiliser, vous devez en premier importer le code module dans l'environement Javascript: </p>
-
-<pre class="eval"><span class="nowiki">Components.utils.import("resource://gre/modules/Services.jsm");</span>
-</pre>
-
-<p>Then you can obtain references to services by simply accessing them from the <code>Services</code> object exported by the code module. For example, to obtain a reference to the preferences service:</p>
-
-<pre class="brush: js">var prefsService = Services.prefs;
-</pre>
-
-<h2 id="Provided_service_getters">Provided service getters</h2>
-
-<table class="standard-table" style="width: auto;">
- <tbody>
- <tr>
- <td class="header">Service accessor</td>
- <td class="header">Service interface</td>
- <td class="header">Service name</td>
- </tr>
- <tr>
- <td><code>androidBridge</code></td>
- <td>{{ interface("nsIAndroidBridge") }}</td>
- <td><sup><a href="#note1">1</a></sup></td>
- </tr>
- <tr>
- <td><code>appinfo</code></td>
- <td>{{ interface("nsIXULAppInfo") }}<br>
- {{ interface("nsIXULRuntime") }}</td>
- <td>Application information service</td>
- </tr>
- <tr>
- <td><code>appShell</code></td>
- <td>{{ interface("nsIAppShellService") }}</td>
- <td>Application shell service</td>
- </tr>
-
- <tr>
- <td><code>blocklist</code></td>
- <td>{{ interface("nsIBlocklistService") }}</td>
- <td>Blocklist service</td>
- </tr>
- <tr>
- <td><code>cache</code></td>
- <td>{{ interface("nsICacheService") }}</td>
- <td>Cache service</td>
- </tr>
- <tr>
- <td><code>cache2</code></td>
- <td>{{ interface("nsICacheStorageService") }}</td>
- <td>Cache storage service</td>
- </tr>
- <tr>
- <td><code>clipboard</code></td>
- <td>{{ interface("nsIClipboard") }}</td>
- <td>Clipboard</td>
- </tr>
- <tr>
- <td><code>console</code></td>
- <td>{{ interface("nsIConsoleService") }}</td>
- <td>Error console service</td>
- </tr>
- <tr>
- <td><code>contentPrefs</code></td>
- <td>{{ interface("nsIContentPrefService") }}</td>
- <td>Content Preferences service</td>
- </tr>
- <tr>
- <td><code>cookies</code></td>
- <td>{{ interface("nsICookieManager2") }}</td>
- <td>Cookie Manager 2 service</td>
- </tr>
- <tr>
- <td>cpmm</td>
- <td>{{ interface("nsIMessageSender") }}</td>
- <td><a href="/en-US/Firefox/Multiprocess_Firefox/Message_Manager/Message_manager_overview#Child_process_message_manager">Child process message manager</a><sup><a href="#note4">4</a></sup></td>
- </tr>
- <tr>
- <td><code>crashmanager</code></td>
- <td><a class="external" href="http://dxr.mozilla.org/mozilla-central/source/toolkit/components/crashes/CrashManager.jsm">CrashManager.jsm</a></td>
- <td> </td>
- </tr>
- <tr>
- <td><code>dirsvc</code></td>
- <td>{{ interface("nsIDirectoryService") }}<br>
- {{ interface("nsIProperties") }}</td>
- <td>Directory service</td>
- </tr>
- <tr>
- <td><code>domStorageManager</code></td>
- <td>{{ interface("nsIDOMStorageManager") }}</td>
- <td>DOM Storage Manager</td>
- </tr>
- <tr>
- <td><code>DOMRequest</code></td>
- <td>{{ interface("nsIDOMRequestService") }}</td>
- <td>DOMRequest service</td>
- </tr>
- <tr>
- <td><code>downloads</code></td>
- <td>{{ interface("nsIDownloadManager") }}</td>
- <td>Download manager</td>
- </tr>
- <tr>
- <td><code>droppedLinkHandler</code></td>
- <td>{{ interface("nsIDroppedLinkHandler") }}</td>
- <td>Dropped link handler service</td>
- </tr>
- <tr>
- <td><code>els</code></td>
- <td>{{ interface("nsIEventListenerService") }}</td>
- <td>Event listener service</td>
- </tr>
- <tr>
- <td><code>eTLD</code></td>
- <td>{{ interface("nsIEffectiveTLDService") }}</td>
- <td>EffectiveTLD service</td>
- </tr>
- <tr>
- <td><code>focus</code></td>
- <td>{{ interface("nsIFocusManager") }}</td>
- <td>Focus manager</td>
- </tr>
- <tr>
- <td><code>io</code></td>
- <td>{{ interface("nsIIOService") }}<br>
- {{ interface("nsIIOService2") }}</td>
- <td>I/O Service</td>
- </tr>
- <tr>
- <td><code>locale</code></td>
- <td>{{ interface("nsILocaleService") }}</td>
- <td>Locale service</td>
- </tr>
- <tr>
- <td><code>logins</code></td>
- <td>{{ interface("nsILoginManager") }}</td>
- <td>Password Manager service</td>
- </tr>
- <tr>
- <td><code>metro</code></td>
- <td>{{ interface("nsIWinMetroUtils") }}</td>
- <td><sup><a href="#note2">2</a></sup></td>
- </tr>
- <tr>
- <td>mm</td>
- <td>{{ interface("nsIMessageBroadcaster") }}<br>
- {{ interface("nsIFrameScriptLoader") }}</td>
- <td><a href="/en-US/Firefox/Multiprocess_Firefox/Message_Manager/Message_manager_overview#Global_frame_message_manager">Global frame message manager</a><sup><a href="#note3">3</a></sup></td>
- </tr>
- <tr>
- <td><code>obs</code></td>
- <td>{{ interface("nsIObserverService") }}</td>
- <td>Observer service</td>
- </tr>
- <tr>
- <td><code>perms</code></td>
- <td>{{ interface("nsIPermissionManager") }}</td>
- <td>Permission manager service</td>
- </tr>
- <tr>
- <td>ppmm</td>
- <td>{{ interface("nsIMessageBroadcaster") }}<br>
- {{ interface("nsIProcessScriptLoader") }}</td>
- <td><a href="/en-US/Firefox/Multiprocess_Firefox/Message_Manager/Message_manager_overview#Global_parent_process_message_manager">Global parent process message manager</a><sup><a href="#note3">3</a></sup></td>
- </tr>
- <tr>
- <td><code>prefs</code></td>
- <td>{{ interface("nsIPrefBranch") }}<br>
- {{ interface("nsIPrefBranch2") }}<br>
- {{ interface("nsIPrefService") }}</td>
- <td>Preferences service</td>
- </tr>
- <tr>
- <td><code>prompt</code></td>
- <td>{{ interface("nsIPromptService") }}</td>
- <td>Prompt service</td>
- </tr>
- <tr>
- <td><code>scriptloader</code></td>
- <td>{{ interface("mozIJSSubScriptLoader") }}</td>
- <td>JavaScript subscript loader service</td>
- </tr>
- <tr>
- <td><code>scriptSecurityManager</code></td>
- <td>{{ interface("nsIScriptSecurityManager") }}</td>
- <td>Script security manager</td>
- </tr>
- <tr>
- <td><code>search</code></td>
- <td>{{ interface("nsIBrowserSearchService") }}</td>
- <td>Browser search service</td>
- </tr>
- <tr>
- <td><code>startup</code></td>
- <td>{{ interface("nsIAppStartup") }}</td>
- <td>Application startup service</td>
- </tr>
- <tr>
- <td><code>storage</code></td>
- <td>{{ interface("mozIStorageService") }}</td>
- <td><a href="/en-US/Storage" title="en-US/Storage">Storage API</a> service</td>
- </tr>
- <tr>
- <td><code>strings</code></td>
- <td>{{ interface("nsIStringBundleService") }}</td>
- <td>String bundle service</td>
- </tr>
- <tr>
- <td><code>sysinfo</code></td>
- <td>{{ interface("nsIPropertyBag2") }}</td>
- <td>System info service</td>
- </tr>
- <tr>
- <td><code>telemetry</code></td>
- <td>{{ interface("nsITelemetry") }}</td>
- <td>Telemetry service</td>
- </tr>
- <tr>
- <td><code>tm</code></td>
- <td>{{ interface("nsIThreadManager") }}</td>
- <td><a href="/en-US/The_Thread_Manager" title="en-US/The Thread Manager">Thread Manager</a> service</td>
- </tr>
- <tr>
- <td><code>uriFixup</code></td>
- <td>{{ interface("nsIURIFixup") }}</td>
- <td>URI Fixup service</td>
- </tr>
- <tr>
- <td><code>urlFormatter</code></td>
- <td>{{ interface("nsIURLFormatter") }}</td>
- <td>URL Formatter service</td>
- </tr>
- <tr>
- <td><code>vc</code></td>
- <td>{{ interface("nsIVersionComparator") }}</td>
- <td>Version comparator service</td>
- </tr>
- <tr>
- <td><code>wm</code></td>
- <td>{{ interface("nsIWindowMediator") }}</td>
- <td>Window mediator service</td>
- </tr>
- <tr>
- <td><code>ww</code></td>
- <td>{{ interface("nsIWindowWatcher") }}</td>
- <td>Window watcher service</td>
- </tr>
- </tbody>
-</table>
-
-<p><a id="note1" name="note1"><sup>1</sup> Mobile only</a><br>
- <a id="note2" name="note2"><sup>2</sup> Windows only</a><br>
- <a id="note3" name="note3"><sup>3</sup> Main process only</a><br>
- <a id="note4" name="note4"><sup>4</sup> Child process only</a></p>
-
-<h2 id="See_also">See also</h2>
-
-<ul>
- <li><a class="internal" href="/en-US/JavaScript_code_modules/Using" title="en-US/JavaScript code modules/Using
- JavaScript code
- modules">Using JavaScript code modules</a></li>
- <li><a class="internal" href="/en-US/JavaScript_code_modules" title="en-US/JavaScript code
- modules">JavaScript code modules</a></li>
- <li><a class="internal" href="/en-US/XPCOM/mozilla::services_namespace" title="mozilla::services C++ namespace">mozilla::services C++ namespace</a></li>
- <li><a href="http://dxr.mozilla.org/mozilla-central/source/toolkit/modules/Services.jsm">Services.jsm source on DXR</a></li>
-</ul>
diff --git a/files/fr/mozilla/javascript_code_modules/sqlite.jsm/index.html b/files/fr/mozilla/javascript_code_modules/sqlite.jsm/index.html
deleted file mode 100644
index bf799c2781..0000000000
--- a/files/fr/mozilla/javascript_code_modules/sqlite.jsm/index.html
+++ /dev/null
@@ -1,360 +0,0 @@
----
-title: Sqlite.jsm
-slug: Mozilla/JavaScript_code_modules/Sqlite.jsm
-translation_of: Mozilla/JavaScript_code_modules/Sqlite.jsm
----
-<p>{{ gecko_minversion_header("20.0") }}</p>
-
-<p>Le module de code JavaScript <code>Sqlite.jsm </code> offre une interface de stockage/SQLite. <code> Sqlite.jsm </code> fonctionne avec des interfaces XPCOM de stockage de bas niveau:</p>
-
-<ul>
- <li>la gestion de la déclaration est automatique. Sqlite.jsm va créer, gérer et détruire les instances d'instructions pour vous. Vous ne devez pas vous soucier de la mise en cache des instances des états créés, les détruire lorsque vous avez terminé, etc. Cela se traduit par moins de lignes de code pour communiquer avec SQLite.</li>
- <li>Toutes les opérations sont asynchrones. Utilisation des API de stockage synchrones est déconseillée, car ils bloquent le thread principal. Toutes les fonctionnalités de <code>Sqlite.jsm</code> sont asynchrone.</li>
- <li>La gestion de la mémoire est plus facile. <code>Sqlite.jsm</code> gère les déclarations pour vous, il peut effectuer des actions intelligentes comme purger toutes les déclarations mises en cache qui ne sont pas utilisés, ce qui libère la mémoire dans le processus. Il y a même une API <code>shrinkMemory </code> qui permettra de minimiser automatiquement l'utilisation de la mémoire de la connexion.</li>
- <li>Des opérations sont simples. Sqlite.jsm utilise une API de transaction construit avec  <a href="/fr/docs/Mozilla/JavaScript_code_modules/Task.jsm" title="/fr/docs/Mozilla/JavaScript_code_modules/Task.jsm">task.jsm</a> qui permet aux transactions d'être écrites en tant que fonctions de procédure JavaScript (par opposition à une série d'opérations motrices de rappel). Si la fonction est lancée, la transaction est automatiquement annulée. Cela rend le code facile à lire et à écrire.</li>
- <li><code>Sqlite.jsm </code> est un module JavaScript pur. Les complexités de XPCOM sont la plupart du temps cachés. Les programmeurs JavaScript doivent se sentir à l'aise en l'utilisant.</li>
-</ul>
-
-<p>{{ note("Le module de code de Javascript Sqlite.jsm peut seulement être utilisé du chrome.") }}</p>
-
-<p>Avant de pouvoir utiliser ce module, vous devez l'importer dans votre champ d'application:</p>
-
-<pre>let { Cu } = require('chrome')
-<span class="brush: js">Cu.import("resource://gre/modules/Sqlite.jsm")</span></pre>
-
-<h2 id="Obtention_d'une_connexion">Obtention d'une connexion</h2>
-
-<p><code>Sqlite.jsm </code> exporte le symbole <code>Sqlite</code>. Ce symbole est un objet avec une seule fonction: <code>openConnection</code>. Cette fonction prend un objet dictionnaire définissant les options de connexion:</p>
-
-<dl>
- <dt>path</dt>
- <dd>(Obligatoire) Le fichier de base de données à ouvrir. Cela peut être un chemin absolu ou relatif. Si un chemin relatif est donné, il est interprété comme relatif au répertoire du profil actuel. Si le chemin n'existe pas, une nouvelle base de données SQLite sera créé. La nom se termine généralement par <code>.sqlite</code>.</dd>
- <dt>sharedMemoryCache</dt>
- <dd>(En option) booléenne indiquant si plusieurs connexions à la base de données partagent la même mémoire cache. Toutefois, le partage nécessite également des connexions pour obtenir un verrou, rendant éventuellement l'accès de base de données plus lente. Par défaut, <code>true</code>.</dd>
- <dt>shrinkMemoryOnConnectionIdleMS</dt>
- <dd>(En option) Si défini, le de connexion va tenter de minimiser son utilisation de la mémoire après un grand nombre millisecondes de connexion inactive. La connexion est inactive lorsque aucun états n'est exécuter. Noter que ceci n'est pas une minuterie qui pourrait se déclencher pendant que l'Application est active.</dd>
-</dl>
-
-<p><code>openConnection(options)</code> retourne une <a href="https://fr.wikipedia.org/wiki/Futures_(informatique)">promise</a> d'une instance de connexion ouverte ou est rejetée si une erreur survient lors de l'ouverture de la base de données.</p>
-
-<p>Voici un exemple:</p>
-
-<pre class="brush: js">let { Cu } = require('chrome')
-Cu.import("resource://gre/modules/Sqlite.jsm");
-
-Sqlite.openConnection({ path: "myDatabase.sqlite", sharedMemoryCache: false }).then(
- function onConnection(connection) {
- // connection is the opened SQLite connection (see below for API).
- },
- function onError(error) {
- // The connection could not be opened. error is an Error describing what went wrong.
- }
-);
-</pre>
-
-<h2 id="Utilisation_des_connexions_ouvertes">Utilisation des connexions ouvertes</h2>
-
-<p>Les connexions ouvertes sont ce que vous interfacer avec <code>Sqlite.jsm</code>. Les sections suivantes détaillent l'API d'une instance de connexion ouverte.</p>
-
-<h3 id="Gestion_des_connexions">Gestion des connexions</h3>
-
-<p>Ces API sont utilisées pour gérer et vérifier l'état de la connexion.</p>
-
-<h4 id="close()">close()</h4>
-
-<p>Ferme la connexion de base de données. <strong> Doit </strong> être appelé pour chaque connexion ouverte.</p>
-
-<p>Cette fonction retourne une promise qui sera résolu lorsque la base de données sera fermée.</p>
-
-<p>Si une transaction est en cours d'execution au moment où cette fonction est appelée, la transaction sera annulée.</p>
-
-<p>Si des déclarations sont en cours au moment où cette fonction est appelée, elles seront annulées.</p>
-
-<p>Les utilisateurs ne doivent pas tenter d'utiliser la connexion après avoir appelé cette méthode que la connexion sera inutilisable.</p>
-
-<h4 id="clone_(readOnly)">clone (readOnly)</h4>
-
-<p>Cette fonction retourne un clone de la connexion-promise actuelle.</p>
-
-<p>Ces fonctions reçoivent l' argument:</p>
-
-<dl>
- <dt>readOnly</dt>
- <dd>(En option) Si <code>true</code> le clone sera en lecture seule,<code> false</code> par défaut. Si la connexion d'origine est déjà en lecture seule, le clone le sera, indépendamment de cette option. Si la connexion d'origine utilise le cache partagé, ce paramètre sera ignoré et le clone sera aussi privilégié que la connexion d'origine.</dd>
-</dl>
-
-<h4 id="transactionInProgress">transactionInProgress</h4>
-
-<p>Cette propriété booléenne indique si une opération est en cours. Cela est rarement nécessaire par les appelants externes.</p>
-
-<h4 id="shrinkMemory()">shrinkMemory()</h4>
-
-<p>Cette fonction peut être appelée pour diminuer l'utilisation de la mémoire de la connexion. Ceci est un <a href="https://fr.wikipedia.org/wiki/Adaptateur_(patron_de_conception)">wrapper</a> utilisé dans le <code><a href="https://www.sqlite.org/pragma.html">PRAGMA</a> shrink_memory</code>, qui impose à SQLite la réduiction d'utilisation de la mémoire (par les caches de compensation, etc.).</p>
-
-<p>Elle peut rendre votre base de données plus lent. Par conséquent, il faut être prudent avant d'appeler cette fonction.</p>
-
-<p>Cela renvoie une promise qui est résolu lorsque l'opération est terminée.</p>
-
-<h4 id="discardCachedStatements()">discardCachedStatements()</h4>
-
-<p>Cette fonction est utilisée pour éliminer les instances d'instructions mises en cache, ce qui libère la mémoire dans le processus. Les déclarations de cache actifs ne seront pas effacées. Peut être appeler à tout moment.</p>
-
-<p>Cela renvoie le nombre de déclarations mises en cache qui ont été rejetés.</p>
-
-<h3 id="Table_et_gestion_du_schéma">Table et gestion du schéma</h3>
-
-<p>Ces API traitent de la gestion des tables et le schéma de base de données.</p>
-
-<h4 id="getSchemaVersion()">getSchemaVersion()</h4>
-
-<p>La version définie par l'utilisateur associé au schéma de la base de données actuelle. Retourne 0 si aucune version de schéma a été défini.</p>
-
-<h4 id="setSchemaVersion(value)">setSchemaVersion(value)</h4>
-
-<p>Definie la valeur <code>value</code> de la nouvelle version associée au schéma de la base de données actuelle. Ceci est un wrapper autour de <code>PRAGMA user_version</code>.</p>
-
-<h4 id="tableExists(name)">tableExists(name)</h4>
-
-<p>Cette fonction détermine si une table existe dans la base de données actuelle. Elle renvoie une promise qui est résolu avec une valeur booléenne indiquant si la table existe.</p>
-
-<h4 id="indexExists(name)">indexExists(name)</h4>
-
-<p>Cette fonction détermine si un index nommé existe dans la base de données actuelle. Elle renvoie une promesse qui est résolu avec une valeur booléenne indiquant si l'index existe.</p>
-
-<h3 id="Déclaration_d'exécution">Déclaration d'exécution</h3>
-
-<p>Ces API facilitent l'exécution des instructions de connexion.</p>
-
-<h4 id="executeCached(sql_params_onRow)">executeCached(sql, params, onRow)</h4>
-
-<h4 id="execute(sql_params_onRow)">execute(sql, params, onRow)</h4>
-
-<p>Ces fonctions similaires sont utilisés pour exécuter une instruction SQL unique sur la connexion. Comme vous l'avez deviné par le nom, il y a 2 options: mises en cache et non mis en cache. En dehors de cela, ils se comportent de manière identique.</p>
-
-<p>Ces fonctions reçoivent les arguments suivants:</p>
-
-<dl>
- <dt>sql</dt>
- <dd>(Obligatoire) chaîne SQL à exécuter. Le point-virgule final n'est pas nécessaire.</dd>
- <dt>params</dt>
- <dd>(En option) Paramètres liés à cette déclaration. Cela peut être un tableau ou un objet. Voir les notes ci-dessous.</dd>
- <dt>onRow</dt>
- <dd>(En option) Fonction qui est appelée lorsqu'une ligne a été reçue.</dd>
-</dl>
-
-<p>La valeur de retour est une promise qui est résolu lorsque l'instruction a terminé l'exécution.</p>
-
-<p>Quand une instruction est exécutée via <code>executeCached()</code>, l'objet instruction préparée est mis en cache à l'intérieur de la connexion ouverte. La prochaine fois que cette même instruction SQL est exécutée (<code>sql </code> argument est identique à celui passé avant), l'ancien objet de la déclaration est réutilisée. Cela permet d'économiser du temps associé à l'analyse de l'instruction SQL et la création d'un nouvel objet de déclaration. Inconvénient: l'objet de la déclaration en cache persiste dans la connexion ouverte, en prenant de la mémoire.</p>
-
-<p>Quand une instruction est exécutée via <code>execute()</code>, l'objet de la déclaration sous-jacente est jeté au terme de l'exécution.</p>
-
-<p><code>executeCached()</code> est recommandé pour les déclarations qui seront exécutées plusieurs fois. <code>execute()</code> est recommandé pour les déclarations qui seront exécutées rarement ou une fois.</p>
-
-<p>Noter que les utilisateurs ne doivent pas préparer les états manuellement avant l'exécution. Il suffit d'appeler <code>executeCached()</code> et la déclaration sera préparée pour vous automatiquement.</p>
-
-<p>Les paramètres peuvent être liés à la déclaration faite par la définition de l'argument <code>params </code>. Cet argument peut être un tableau de paramètres ordonnées ou un objet de type dicionnaire. Si la déclaration ne contient pas de paramètres liés, cet argument peut être omis ou spécifié comme nulle.</p>
-
-<p>{{ note("Les utilisateurs sont fortement encouragés à utiliser des paramètres liés au lieu de créer dynamiquement des instructions SQL pour des raisons de sécurité.") }}</p>
-
-<div class="line">{{ note("Les utilisateurs sont encouragés à passer des objets type dictionnaire plutôt que des tableaux pour les paramètres liés car ils empêchent de s'emeler les pinceaux.") }}</div>
-
-<div class="line"> </div>
-
-<div class="line">Lorsque <code>onRow </code> n'est pas défini, les résultats complets de l'opération sont tamponnés avant que l'appelant soit informé de la déclaration d'achèvement. Pour <code>INSERT</code>, <code>UPDATE</code> et <code>DELETE</code>, ce n'est pas pertinentes. Cependant, il peut y avoir des conséquences importante pour <code>SELECT </code>. Si votre déclaration <code>SELECT </code> retourne beaucoup de données, cette mise en mémoire tampon peut entraîner une utilisation excessive de la mémoire. Par conséquent, il est recommandé d'utiliser <code>onRow </code> avec <code>SELECT</code>.</div>
-
-<div class="line">
-<div class="line"> </div>
-
-<div class="line" id="LC396">Si <code>StopIteration </code> est emis lors de l'exécution d'un gestionnaire <code>onRow</code>, l'exécution de l'instruction est immédiatement annulée. Les lignes suivantes ne seront pas traitées. La promise est résolu immédiatement.</div>
-
-<div class="line" id="LC397"> </div>
-
-<div class="line" id="LC400">Si une exception <code>StopIteration </code> est levée par le gestionnaire <code>onRow </code>, l'exception est enregistré et le traitement des lignes suivantes se poursuit normalement. La promise est toujours résolue (pas rejetée).</div>
-
-<p>La promise sera rejeté avec une <code>Error </code>, si la déclaration n'a pas terminé l'exécution complète. L'<code>Error </code> peut avoir une propriété <code>errors</code>. Si elle est définie, ce sera un tableau d'objets décrivant les erreurs. Chaque objet possède les propriétés <code>result</code> et <code>message</code>. <code>result </code> est un code d'erreur numérique et <code>message</code> est une chaîne décrivant le problème.</p>
-
-<p>Si <code>onRow </code> est spécifié, la promise sera résolu avec un booléen indiquant si le gestionnaire onRow a été appelé. Sinon, la valeur réglée sera un tableau de <a href="/fr/docs/MozIStorageRow" title="/fr/docs/MozIStorageRow"> <code>mozIStorageRow</code> </a>.</p>
-
-<h4 id="executeTransaction(func_type)">executeTransaction(func, type)</h4>
-
-<p>Cette fonction est utilisée pour exécuter une transaction de base de données. Une transaction est une série de déclarations connexes traités comme une seule unité fonctionnelle. Si la transaction réussit, toutes les déclarations contenues dedans sont engagés comme une seule unité. Si la transaction échoue, la base de données revient à son état avant le début de la transaction.</p>
-
-<p>Cette fonction reçoit les arguments suivants:</p>
-
-<dl>
- <dt>func</dt>
- <dd>La fonction définissant le corps de la transaction.</dd>
- <dt>type</dt>
- <dd>Le type de transaction à effectuer. Ce doit être l'une des constantes de <a href="https://www.sqlite.org/lang_transaction.html">TRANSACTION_*</a> sur l'instance de connexion ouverte. Les valeurs valides sont <code>TRANSACTION_DEFERRED</code> , <code>TRANSACTION_IMMEDIATE</code> , <code>TRANSACTION_EXCLUSIVE</code> . Consultez la documentation SQLite pour leur signification. La valeur par défaut est <code>TRANSACTION_DEFERRED</code>.</dd>
-</dl>
-
-<p>La fonction passée est une fonction de générateur compatible Task.jsm. Lorsqu'elle est appelée, la fonction reçoit comme argument l'instance de connexion actuelle. Cette fonction de générateur devrait produire des promises, probablement ceux qui sont renvoyés en appelant <code>executeCached()</code> et <code>execute()</code>.</p>
-
-<p>Si nous arrivons à la fin de la fonction de générateur sans erreur, la transaction est validée. Si une erreur se produit, la transaction est abandonnée.</p>
-
-<p>La valeur retournée par cette fonction est une promise qui est résolu lorsque la transaction a été exécutée ou rejetée si la transaction a été annulée.</p>
-
-<h2 id="Exemples">Exemples</h2>
-
-<h3 id="Open_Execute_Close">Open, Execute, Close</h3>
-
-<p>Dans cet exemple, nous ouvrons une connexion, exécutons une instruction simple, puis fermons la connexion.</p>
-
-<pre class="brush: js">Sqlite.openConnection({path: "MyDB.sqlite"}).then(
-  function onOpen(conn) {
-    conn.execute("SELECT 1").then(
-      function onStatementComplete(result) {
-        conn.close().then(
-          function onClose() {
-            alert("We are done!");
-          }
-        )
-      }
-    )
-  }
-)
-</pre>
-
-<p>Ce n'est pas un excellent exemple parce qu'il ne comprend pas la gestion des erreurs et est un peu difficile à lire.</p>
-
-<p>Voici la même chose mais avec <a href="/fr/docs/Mozilla/JavaScript_code_modules/Task.jsm">Task.jsm</a>:</p>
-
-<pre class="brush: js">Task.spawn(function* demoDatabase() {
- let conn = yield Sqlite.openConnection({path: "MyDB.sqlite"});
-
- try {
- let result = yield conn.execute("SELECT 1");
- } finally {
- yield conn.close();
- }
-});</pre>
-
-<h3 id="Bound_Parameters">Bound Parameters</h3>
-
-<p>Voici quelques exemples montrant des paramètres liés. Supposons que nous ouvrons une connexion avec la variable <code>conn</code>.</p>
-
-<pre class="brush: js">let dataToInsert = [
- ["foo", "bar"],
- ["biz", "baz"],
- ["yo", "ho"],
-];
-
-Task.spawn(function* doInsert() {
- for (let data of dataToInsert) {
- yield conn.executeCached("INSERT INTO myTable VALUES (?, ?)", data);
- }
-});</pre>
-</div>
-
-<p>Et la même chose avec des paramètres nommés.</p>
-
-<pre class="brush: js">let dataToInsert = [
- {paramA: "foo", paramB: "bar"},
- {paramA: "biz", paramB: "baz"},
- {paramA: "yo", paramB: "ho"},
-];
-
-Task.spawn(function* doInsert() {
- for (let data of dataToInsert) {
- yield conn.executeCached("INSERT INTO myTable VALUES (:paramA, :paramB)", data);
- }
-});</pre>
-
-<h3 id="Transactions">Transactions</h3>
-
-<p>Ces exemples montrent comment fonctionnent les transactions.</p>
-
-<pre class="brush: js">conn.executeTransaction(function* simpleTransaction() {
- yield conn.execute("INSERT INTO myTable VALUES (?, ?)", ["foo", "bar"]);
- yield conn.execute("INSERT INTO myTable VALUES (?, ?)", ["biz", "baz"]);
-});</pre>
-
-<p>L'exemple ci-dessus se traduira par 2 instructions INSERT dans une transaction différée (en supposant que les inserts procèdent sans erreur, bien sûr).</p>
-
-<p>Voici un exemple où nous voulons forcer une annulation de la transaction.</p>
-
-<pre class="brush: js">conn.executeTransaction(function* complexTransaction() {
- yield conn.execute("INSERT INTO myTable VALUES (?, ?)", ["foo", "bar"]);
- let data = yield conn.execute("SELECT * FROM myTable");
- if (data.length &lt; 5) {
- throw new Error("We don't have the expected 5 rows to perform the next operation!");
- }
-
- // ...
-});</pre>
-
-<h3 id="Sélection_et_retour_des_données">Sélection et retour des données</h3>
-
-<p>Ces exemples montrent comment accéder aux données qui sont retournées.</p>
-
-<p>Cet exemple montre plusieurs lignes d'une table retournées en utilisant le paramètre <code>onRow</code>.</p>
-
-<pre class="brush: js">let accounts = [];
-let accountId, userName;
-
-let statement = "SELECT account_id, username FROM accounts ORDER BY username ASC";
-
-conn.executeCached(statement, null, function(row) {
-  accountId = row.getResultByName("account_id");
-  userName = row.getResultByName("username");
-  accounts.push({ accountId: accountId, userName: userName });
-}).then(function onStatementComplete(result) {
- // All accounts returned successfully, so do something with them.
-<span class="pln"> console</span><span class="pun">.</span><span class="pln">log</span><span class="pun">(</span><span class="pln">result</span><span class="pun">);</span><span class="pln"> </span><span class="com">// It worked!</span>
-  if (callback) {
- callback(null, accounts);
- }
-},
-function onError(err) {
- // An error occurred.
-<span class="pln"> console</span><span class="pun">.</span><span class="pln">log</span><span class="pun">(</span><span class="pln">err</span><span class="pun">);</span><span class="pln"> </span><span class="com">// Error, Oh noes!</span>
-  if (callback) {
- callback(err);
- }
-});</pre>
-
-<div class="note">
-<p><strong>Remarque: </strong>les&gt; paramètres <strong> <code>then</code> </strong> peuvent être des fonctions anonymes (i.e. <strong> <code>function()</code> </strong>) , les seulements nomées sont <strong> <code>onStatementComplete</code> </strong> et <strong> <code>onError</code> </strong> pour la lisibilité.</p>
-</div>
-
-<p>Cet exemple démontre la récupération d'une ligne sans utiliser le paramètre <code>onRow</code>, en utilisant le résultat de <code>conn.execute</code>. Cet exemple montre également la récupération de la clé primaire de la dernière ligne insérée.</p>
-
-<pre class="brush: js">Task.spawn(function* () {
-  try {
-    conn = yield Sqlite.openConnection({ path: dbFile.path });
-
-    let statement = "INSERT INTO accounts (username, details) VALUES (:username, :details)"
-    let params = { username:"LordBusiness", details: "All I'm asking for is total perfection." };
-
-    yield conn.execute(statement,params);
-
-    // Get accountId of the INSERT.
-    statement = "SELECT last_insert_rowid() AS lastInsertRowID";
-    result = yield conn.execute(statement);
-
-    // Only one row is returned.
-    let row = result[0];
-    let accountId = row.getResultByName("lastInsertRowID");
-
-    if (callback) {
- callback(null, accountId);
- }
-  } catch (err) {
-    if (callback) {
- callback(err);
- }
-  } finally {
-    conn.close();
-  }
-});</pre>
-
-<div class="note">
-<p><strong>Remarque: </strong> La valeur retournée par<strong> last_insert_rowid()</strong> l'est par connexion, de sorte que vous devrez peut-être ouvrir des connexions séparées lorsque vous faites plusieurs <code>INSERT</code> à différents endroits, pour être sûr que l'identifiant de ligne qui est retourné corresponde.</p>
-</div>
-
-<h2 id="Voir_aussi">Voir aussi</h2>
-
-<ul>
- <li><a href="https://dxr.mozilla.org/mozilla-central/source/toolkit/modules/Sqlite.jsm">Sqlite.jsm source on DXR</a></li>
- <li><a href="/fr/docs/Storage">Storage</a></li>
-</ul>
diff --git a/files/fr/mozilla/localization/index.html b/files/fr/mozilla/localization/index.html
deleted file mode 100644
index 28764f5298..0000000000
--- a/files/fr/mozilla/localization/index.html
+++ /dev/null
@@ -1,25 +0,0 @@
----
-title: Localisation
-slug: Mozilla/Localization
-tags:
- - Localisation
- - Mozilla
- - Paramètres régionaux
- - Traduction
- - l10n
-translation_of: Mozilla/Localization
----
-<p><span class="seoSummary">La <strong>localisation</strong> (L10n) est le processus de traduction de l’interface utilisateur d’un logiciel d’une langue à une autre, en l’adaptant à la culture étrangère. Ces ressources sont destinées à tous ceux intéressés par les aspects techniques de la localisation.</span> Elles concernent aussi bien les développeurs que les autres contributeurs.</p>
-
-
-
-<h2 id="Voir_aussi">Voir aussi</h2>
-
-<dl>
- <dt><a href="https://developer.mozilla.org/fr/docs/MDN/Contribute/Localize">Localisation de MDN</a></dt>
- <dd>Cette ressource couvre la localisation de la documentation ici, sur MDN</dd>
- <dt><a href="https://developer.mozilla.org/fr/Apps/Build/Localization">Localization des applications</a></dt>
- <dd><span id="result_box" lang="fr"><span>Cet ensemble de documents s'applique plus spécifiquement à la localisation d'applications, y compris les applications Firefox OS.</span></span></dd>
- <dt><a href="https://developer.mozilla.org/fr/Apps/Build/Localization">L10n</a></dt>
- <dd><span id="result_box" lang="fr"><span>Documentation de référence pour l'API L10n utilisée par Mozilla pour localiser Firefox OS.</span></span></dd>
-</dl>
diff --git a/files/fr/mozilla/localization/index/index.html b/files/fr/mozilla/localization/index/index.html
deleted file mode 100644
index 5176c7de8f..0000000000
--- a/files/fr/mozilla/localization/index/index.html
+++ /dev/null
@@ -1,8 +0,0 @@
----
-title: Index
-slug: Mozilla/Localization/Index
-tags:
- - Localisation
-translation_of: Mozilla/Localization/Index
----
-<p>{{Index("/fr/docs/Mozilla/Localization")}}</p>
diff --git a/files/fr/mozilla/localization/l10n_style_guide/index.html b/files/fr/mozilla/localization/l10n_style_guide/index.html
deleted file mode 100644
index 8313c380b9..0000000000
--- a/files/fr/mozilla/localization/l10n_style_guide/index.html
+++ /dev/null
@@ -1,357 +0,0 @@
----
-title: Guide stylistique de localisation de Mozilla
-slug: Mozilla/Localization/L10n_Style_Guide
-translation_of: Mozilla/Localization/L10n_Style_Guide
----
-<h3 id="Introduction"><span class="author-a-z87zt8dz75zn14z76zz71z8z82zz86z2uq">Introduction</span></h3>
-
-<div id="magicdomid8"><span class="author-a-z87zt8dz75zn14z76zz71z8z82zz86z2uq">Les guides stylistiques définissent la norme selon laquelle peut être mesurée la qualité d'une traduction. Ils contiennent des règles qui sont établies à la fois par Mozilla et par les communautés de localisation de Mozilla sur la meilleure manière de traduire les textes dans les produits, sites et autre projets de Mozilla. Les guides stylistiques sont utilisés à la fois pour traduire et pour évaluer la qualité d'une traduction. En suivant ces règles, un traducteur a plus de chances de produire une traduction de qualité qui représente les valeurs et la culture de Mozilla. Voici quelques exemples de guides stylistiques créés par d'autres organisations :</span></div>
-
-<ul>
- <li id="magicdomid9"><span class="author-a-z87zt8dz75zn14z76zz71z8z82zz86z2uq url"><a href="https://help.apple.com/asg/mac/2013/ASG_2013.pdf">https://help.apple.com/asg/mac/2013/ASG_2013.pdf</a></span></li>
- <li id="magicdomid10"><span class="author-a-z87zt8dz75zn14z76zz71z8z82zz86z2uq url"><a href="https://www.microsoft.com/Language/en-US/StyleGuides.aspx">https://www.microsoft.com/Language/en-US/StyleGuides.aspx</a></span></li>
- <li><a href="https://www.facebook.com/translations/style_guides">https://www.facebook.com/translations/style_guides</a></li>
-</ul>
-
-<div><span class="author-a-z87zt8dz75zn14z76zz71z8z82zz86z2uq">Ce guide stylistique est composé de deux parties : la première contient les règles qui sont spécifiques à la langue et sont définies par chacune des communautés de localisation de Mozilla (entre autres concernant le niveau de langue, la terminologie et les unités de mesure) ; la seconde contient des règles générales que Mozilla a déterminées pour les traducteurs dans toutes les langues qui peuvent vous aider à traduire correctement. La première partie de ce guide stylistique est à adapter pour les règles de votre communauté. Là où c'est possible, faites-y référence à des normes nationales ou internationales pour les unités, règles orthographiques et grammaticales.</span></div>
-
-<h3 id="sect1"> </h3>
-
-<h2 id="Style_propre_à_la_langue_de_localisation_de_Mozilla">Style propre à la langue de localisation de Mozilla</h2>
-
-<ol style="margin-left: 80px;">
-</ol>
-
-<h3 id="Style">Style</h3>
-
-<p>Il revient principalement à votre communauté de localisation de définir son propre style. Celui-ci fait partie des instructions et recommandations pour la traduction de texte au sein des différents types de projets. Cela concerne différents éléments comme le ton et le niveau de langage, le traitement des références culturelles, d'expressions idiomatiques, et le maintien d'une certaine cohérence au sein de Mozilla et des guides et conventions stylistiques de produits tiers<span class="author-a-nz76zz86zs2xc75rz78zz66zz80zxz85zz71z">. Voici les différents aspects à aborder concernant le style.</span></p>
-
-<div id="magicdomid17"> </div>
-
-<h5 id="Ton_et_formalisme">Ton et formalisme</h5>
-
-<div id="magicdomid18"><span class="author-a-nz76zz86zs2xc75rz78zz66zz80zxz85zz71z">Pour déterminer le ton ou le formalisme d'un projet de localisation de Mozilla dans votre langue, posez-vous ces questions :</span></div>
-
-<ul>
- <li>Quel est le public cible pour ce projet ?</li>
- <li>Comment un utilisateur de ce public cible s'attendrait-il à interagir avec le projet ? Par exemple, d'une manière légère et sympathique ?</li>
- <li>Est-ce qu'un certain formalisme s'impose pour tous vos projets de localisation de Mozilla ou seulement certains d'entre-eux ? Lesquels ?</li>
- <li>Un ton plus léger peut-il être approprié pour tous vos projets de localisation de Mozilla ou seulement certains d'entre-eux ? Lesquels ?</li>
-</ul>
-
-<div><span class="author-a-nz76zz86zs2xc75rz78zz66zz80zxz85zz71z">En définitive, votre localisation ne devrait pas utiliser un niveau de langue ou de formalisme différent de celui défini dans votre guide stylistique. Par exemple, vous pourriez vouloir utiliser </span>« <span class="author-a-nz76zz86zs2xc75rz78zz66zz80zxz85zz71z">cliquez sur le lien</span> »<span class="author-a-nz76zz86zs2xc75rz78zz66zz80zxz85zz71z"> (pas très formel) plutôt que </span>« <span class="author-a-nz76zz86zs2xc75rz78zz66zz80zxz85zz71z">veuillez cliquer sur le lien</span> »<span class="author-a-nz76zz86zs2xc75rz78zz66zz80zxz85zz71z"> (un peu plus formel). De même, le ton employé au sein d'un même projet de localisation devrait toujours rester cohérent. </span></div>
-
-<div> </div>
-
-<h5 id="Expression_naturelle">Expression naturelle</h5>
-
-<p>L'utilisation d'expressions courantes peut faire en sorte de donner à votre localisation un air plus naturel pour vos utilisateurs. Si votre traduction ne suit pas les recommandations communautaires pour la traduction d'expressions locales ou naturelles, cela peut donner des résultats médiocres ou boiteux. Il est important pour vos équipes de garder ces règles en tête et de les traiter au cours du processus de traduction. Un exemple d'expression naturelle dans une traduction serait la phrase espagnole « <span class="author-a-nz76zz86zs2xc75rz78zz66zz80zxz85zz71z">En ocho días</span> ».<span class="author-a-nz76zz86zs2xc75rz78zz66zz80zxz85zz71z"> En français, on pourrait la traduire littéralement par </span>« <span class="author-a-nz76zz86zs2xc75rz78zz66zz80zxz85zz71z">dans huit jours</span> »<span class="author-a-nz76zz86zs2xc75rz78zz66zz80zxz85zz71z"> mais aussi par </span>« <span class="author-a-nz76zz86zs2xc75rz78zz66zz80zxz85zz71z">dans une semaine</span> »<span class="author-a-nz76zz86zs2xc75rz78zz66zz80zxz85zz71z">. La seconde traduction est plus naturelle bien que les deux puissent être considérées comme correctes.</span></p>
-
-<div>Dans cette section de votre guide, établissez des recommandations sur la manière de produire une localisation plus naturelle. Cela peut prendre du temps et nécessiter pas mal d'expérience pour trouver les bons exemples dans votre langue<span class="author-a-nz76zz86zs2xc75rz78zz66zz80zxz85zz71z">.</span></div>
-
-<div> </div>
-
-<h5 id="Traiter_les_références_culturelles_les_expressions_idiomatiques_et_l'argot">Traiter les références culturelles, les expressions idiomatiques et l'argot</h5>
-
-<p><span class="author-a-nz76zz86zs2xc75rz78zz66zz80zxz85zz71z">L'utilisation de référenes culturelles, d'expressions idiomatiques et d'argot nécessite une très bonne compréhension de ces références tant dans la culture de votre langue source que dans votre langue de destination. Un exemple de référence culturelle en anglais serait la phrase </span>« <span class="author-a-nz76zz86zs2xc75rz78zz66zz80zxz85zz71z">kick-off meeting</span> »<span class="author-a-nz76zz86zs2xc75rz78zz66zz80zxz85zz71z">. Celle-ci est une référence à un terme de football américain et signifie une réunion pour lancer un nouveau projet. Pour la traduire, deux approches sont possibles :</span></p>
-
-<ol>
- <li><span class="author-a-nz76zz86zs2xc75rz78zz66zz80zxz85zz71z">Trouver une phrase avec une référence équivalente dans votre langue.</span></li>
- <li><span class="author-a-nz76zz86zs2xc75rz78zz66zz80zxz85zz71z">Retirer la référence culturelle et traduire uniquement le sens concret (par exemple, </span>« <span class="author-a-nz76zz86zs2xc75rz78zz66zz80zxz85zz71z">une réunion de lancement</span> »<span class="author-a-nz76zz86zs2xc75rz78zz66zz80zxz85zz71z">) </span></li>
-</ol>
-
-<p><span class="author-a-nz76zz86zs2xc75rz78zz66zz80zxz85zz71z">Définissez une politique pour traiter ces références que vous pouvez appliquer au sain de tous vos projets. Évaluez différentes ressources complémentaires pour trouver des équivalents culturels et donnez-en une liste dans cette section de vore guide stylistique (par exemple, un guide des expressions argotiques dans votre langue).  </span></p>
-
-<h5 id="Cohérence_du_style">Cohérence du style</h5>
-
-<div id="magicdomid22"><span class="author-a-nz76zz86zs2xc75rz78zz66zz80zxz85zz71z">N'oubliez pas que d'autres recommandations et guides stylistiques ou des règles d'utilisation de marques, spécifiques à Mozilla ou externes, doivent également être respectés. Vous trouverez plus d'informations à propos de l'utilisation des marques de Mozilla ici : </span><span class="author-a-nz76zz86zs2xc75rz78zz66zz80zxz85zz71z url"><a href="https://www.mozilla.org/en-US/styleguide/identity/firefox/branding/">https://www.mozilla.org/en-US/styleguide/identity/firefox/branding/</a></span><span class="author-a-nz76zz86zs2xc75rz78zz66zz80zxz85zz71z">. Par exemple, certains noms de marque comme </span>« <span class="author-a-nz76zz86zs2xc75rz78zz66zz80zxz85zz71z">Firefox</span> »<span class="author-a-nz76zz86zs2xc75rz78zz66zz80zxz85zz71z"> ne devraient jamais être traduits. Pour d'autres marques qui n'ont pas de politique explicitement définie, c'est à votre communauté de définir s'il est approprié de les traduire. Faites particulierèment attention aux règles et recommandations des marques avant de décider de traduire un nom (qu'il s'agisse de Mozilla d'un autre organisme) et listez les dans cette section de votre guide stylistique.</span></div>
-
-<div> </div>
-
-<div>
-<h3 id="Terminologie"><span class="author-a-w6z79zlakz82zxz85zz65zz86zz78zz89zz122zz89zd b"><strong>Terminologie</strong></span></h3>
-
-<div id="magicdomid29"><span class="author-a-z87zt8dz75zn14z76zz71z8z82zz86z2uq">Voici une série de bases terminologiques existantes que vous pouvez utiliser notamment pour les termes et définitions liés aux logiciels et à Internet :</span></div>
-
-<ul>
- <li id="magicdomid30"><span class="author-a-z87zt8dz75zn14z76zz71z8z82zz86z2uq">Microsoft key terms and target languages : </span><span class="author-a-z87zt8dz75zn14z76zz71z8z82zz86z2uq url"><a href="https://www.microsoft.com/Language/en-US/Default.aspx">https://www.microsoft.com/Language/en-US/Default.aspx</a></span></li>
- <li id="magicdomid31"><span class="author-a-z87zt8dz75zn14z76zz71z8z82zz86z2uq">La liste des termes de Pootle : </span><span class="author-a-z87zt8dz75zn14z76zz71z8z82zz86z2uq url"><a href="https://mozilla.locamotion.org/xx/terminology/essential.po">https://mozilla.locamotion.org/xx/terminology/essential.po</a></span><span class="author-a-z87zt8dz75zn14z76zz71z8z82zz86z2uq"> (remplacer *xx* par un code de locale comme </span>« <span class="author-a-z87zt8dz75zn14z76zz71z8z82zz86z2uq">fr</span> »<span class="author-a-z87zt8dz75zn14z76zz71z8z82zz86z2uq">)</span></li>
-</ul>
-
-<div id="magicdomid33"><span class="author-a-z87zt8dz75zn14z76zz71z8z82zz86z2uq">L'utilisation de bases terminologiques appropriées dans votre langue devrait être systématique. Celles-ci peuvent être développées et approuvées par la communauté elle-même, ou provenir d'autres organismes qui adhèrent à certaines normes nationales, internationales ou locales pour la terminologie informatique</span><span class="author-a-z87zt8dz75zn14z76zz71z8z82zz86z2uq">.  Évitez en particulier d'utiliser </span><span class="author-a-w6z79zlakz82zxz85zz65zz86zz78zz89zz122zz89zd">:</span></div>
-
-<ul>
- <li id="magicdomid34"><span class="author-a-z87zt8dz75zn14z76zz71z8z82zz86z2uq">une terminologie incohérente au sein du projet</span></li>
- <li id="magicdomid35"><span class="author-a-z87zt8dz75zn14z76zz71z8z82zz86z2uq">une terminologie qui ne correspond pas aux bases choisies</span></li>
- <li id="magicdomid36"><span class="author-a-z87zt8dz75zn14z76zz71z8z82zz86z2uq">une terminologie non harmonisée entre vos différents projets</span></li>
- <li id="magicdomid37"><span class="author-a-z87zt8dz75zn14z76zz71z8z82zz86z2uq">une terminologie non adaptée au sujet</span><span class="author-a-w6z79zlakz82zxz85zz65zz86zz78zz89zz122zz89zd"> (par exemple, n'utilisez pas de termes médicaux dans Firefox)</span><span class="author-a-z87zt8dz75zn14z76zz71z8z82zz86z2uq">.</span></li>
-</ul>
-
-<h5 id="Astuces_sur_la_traductiond_de_concepts_difficiles"><span class="author-a-z87zt8dz75zn14z76zz71z8z82zz86z2uq b"><strong>Astuces sur la traductiond de concepts difficile</strong></span><strong>s</strong></h5>
-
-<div id="magicdomid40"><span class="author-a-z87zt8dz75zn14z76zz71z8z82zz86z2uq">Translating terms representing difficult concepts is a tricky task. Here are some ideas to help you translate terms that do not have equivalents in your language:</span></div>
-
-<ul>
- <li id="magicdomid41"><span class="author-a-z87zt8dz75zn14z76zz71z8z82zz86z2uq">Understand the meaning of the term in English. Definitions of a few key terms </span><span class="author-a-z87zt8dz75zn14z76zz71z8z82zz86z2uq url"><a href="http://techterms.com/category/internet">http://techterms.com/category/internet</a></span></li>
- <li id="magicdomid42"><span class="author-a-z87zt8dz75zn14z76zz71z8z82zz86z2uq">Know your product and understand the function of the feature. </span></li>
- <li id="magicdomid43"><span class="author-a-z87zt8dz75zn14z76zz71z8z82zz86z2uq">Consider similar ideas for those functions in your culture.</span></li>
- <li id="magicdomid44"><span class="author-a-z87zt8dz75zn14z76zz71z8z82zz86z2uq">Associate a culturally specific image with the meaning and function of the term.</span></li>
-</ul>
-
-<h5 id="Developing_new_term_bases"><span class="author-a-z87zt8dz75zn14z76zz71z8z82zz86z2uq b"><strong>Developing new term base</strong></span><span class="author-a-w6z79zlakz82zxz85zz65zz86zz78zz89zz122zz89zd b"><strong>s</strong></span></h5>
-
-<div id="magicdomid47"><span class="author-a-z87zt8dz75zn14z76zz71z8z82zz86z2uq">What is your </span><span class="author-a-w6z79zlakz82zxz85zz65zz86zz78zz89zz122zz89zd">community's</span><span class="author-a-z87zt8dz75zn14z76zz71z8z82zz86z2uq"> process </span><span class="author-a-w6z79zlakz82zxz85zz65zz86zz78zz89zz122zz89zd">for</span><span class="author-a-z87zt8dz75zn14z76zz71z8z82zz86z2uq"> identifying and creating a new t</span><span class="author-a-w6z79zlakz82zxz85zz65zz86zz78zz89zz122zz89zd">ermbase</span><span class="author-a-z87zt8dz75zn14z76zz71z8z82zz86z2uq">? Here are a few things to keep in mind:</span></div>
-
-<ul>
- <li id="magicdomid48"><span class="author-a-z87zt8dz75zn14z76zz71z8z82zz86z2uq">Avoid </span><span class="author-a-w6z79zlakz82zxz85zz65zz86zz78zz89zz122zz89zd">o</span><span class="author-a-z87zt8dz75zn14z76zz71z8z82zz86z2uq">verly borrowing English expressions</span></li>
- <li id="magicdomid49"><span class="author-a-z87zt8dz75zn14z76zz71z8z82zz86z2uq">Referenc</span><span class="author-a-w6z79zlakz82zxz85zz65zz86zz78zz89zz122zz89zd">ing</span><span class="author-a-z87zt8dz75zn14z76zz71z8z82zz86z2uq"> another language f</span><span class="author-a-w6z79zlakz82zxz85zz65zz86zz78zz89zz122zz89zd">rom</span><span class="author-a-z87zt8dz75zn14z76zz71z8z82zz86z2uq"> the same language </span><span class="author-a-w6z79zlakz82zxz85zz65zz86zz78zz89zz122zz89zd">family</span><span class="author-a-z87zt8dz75zn14z76zz71z8z82zz86z2uq"> may inspire you to come up with your own terms</span></li>
- <li id="magicdomid50"><span class="author-a-z87zt8dz75zn14z76zz71z8z82zz86z2uq">Consider the product target audience (age</span><span class="author-a-w6z79zlakz82zxz85zz65zz86zz78zz89zz122zz89zd">,</span><span class="author-a-z87zt8dz75zn14z76zz71z8z82zz86z2uq"> level of literacy, education</span><span class="author-a-w6z79zlakz82zxz85zz65zz86zz78zz89zz122zz89zd">,</span><span class="author-a-z87zt8dz75zn14z76zz71z8z82zz86z2uq"> social </span><span class="author-a-w6z79zlakz82zxz85zz65zz86zz78zz89zz122zz89zd">and</span><span class="author-a-z87zt8dz75zn14z76zz71z8z82zz86z2uq"> economic status)</span></li>
- <li id="magicdomid51"><span class="author-a-w6z79zlakz82zxz85zz65zz86zz78zz89zz122zz89zd">Will you use l</span><span class="author-a-z87zt8dz75zn14z76zz71z8z82zz86z2uq">oan words</span><span class="author-a-w6z79zlakz82zxz85zz65zz86zz78zz89zz122zz89zd"> from another language</span><span class="author-a-z87zt8dz75zn14z76zz71z8z82zz86z2uq"> </span><span class="author-a-w6z79zlakz82zxz85zz65zz86zz78zz89zz122zz89zd">or coin new terms in your language to maintain</span><span class="author-a-z87zt8dz75zn14z76zz71z8z82zz86z2uq"> </span><span class="author-a-w6z79zlakz82zxz85zz65zz86zz78zz89zz122zz89zd">language purity?</span><span class="author-a-z87zt8dz75zn14z76zz71z8z82zz86z2uq"> Is there government requirement or policy to encourage creating new terms for new concepts</span><span class="author-a-w6z79zlakz82zxz85zz65zz86zz78zz89zz122zz89zd">, o</span><span class="author-a-z87zt8dz75zn14z76zz71z8z82zz86z2uq">r </span><span class="author-a-w6z79zlakz82zxz85zz65zz86zz78zz89zz122zz89zd">will </span><span class="author-a-z87zt8dz75zn14z76zz71z8z82zz86z2uq">loan words </span><span class="author-a-w6z79zlakz82zxz85zz65zz86zz78zz89zz122zz89zd">be sufficient to</span><span class="author-a-z87zt8dz75zn14z76zz71z8z82zz86z2uq"> reach broader masses </span><span class="author-a-w6z79zlakz82zxz85zz65zz86zz78zz89zz122zz89zd">and</span><span class="author-a-z87zt8dz75zn14z76zz71z8z82zz86z2uq"> expedite new technology adoption</span><span class="author-a-w6z79zlakz82zxz85zz65zz86zz78zz89zz122zz89zd">?</span></li>
- <li id="magicdomid52"><span class="author-a-z87zt8dz75zn14z76zz71z8z82zz86z2uq">If there are two acceptable scripts commonly used by the general public, what is the commonly used script on the web or government sites?  What is the script used by major web technology companies?</span></li>
-</ul>
-
-<h3 id="Unités_et_grammaire"><span class="author-a-w6z79zlakz82zxz85zz65zz86zz78zz89zz122zz89zd">Unités</span><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj"> et grammaire </span></h3>
-
-<div id="magicdomid57"><span class="author-a-w6z79zlakz82zxz85zz65zz86zz78zz89zz122zz89zd">Many elements of unit or grammar do not exist or apply to all languages. If you find one of these elements that does not apply to your language, please remove it from your style guide.</span><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj"> For those definitions of units and grammar that apply document the reference used or how it will be applied to the translation.</span></div>
-
-<div id="magicdomid58"> </div>
-
-<div id="magicdomid59"><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj">The translation should strive to achieve proper unit conversions for currency, measurements, etc. for the target audience.</span></div>
-
-<div id="magicdomid60"> </div>
-
-<h4 id="Units_and_Unit_Conversion"><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj">Units and Unit Conversion</span></h4>
-
-<h5 id="Date_Format"><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj">Date Format</span></h5>
-
-<div id="magicdomid64"><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj">How are the date formats for weeks and months expressed in the following forms: </span></div>
-
-<ul>
- <li><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj">1). Fully spelled out</span> 2).<span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj"> 2 or 3 letters  </span><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj">3). Single letter</span></li>
- <li id="magicdomid65"><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj">What is the order of Year, Month and Day?  </span></li>
-</ul>
-
-<div id="magicdomid66"><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj">Reference material can be find here: </span>https://en.wikipedia.org/wiki/Date_format_by_country</div>
-
-<div> </div>
-
-<h5 id="Calendar_view"><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj">C</span><span class="author-a-w6z79zlakz82zxz85zz65zz86zz78zz89zz122zz89zd">alendar</span><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj"> view: </span></h5>
-
-<ul>
- <li id="magicdomid68"><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj">   Which date is considered the first day of the week, Sunday or Monday?  </span></li>
- <li id="magicdomid69"><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj">   Is Lunar calendar observed?  Other regional calendar observed?</span><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj"> </span></li>
-</ul>
-
-<h5 id="Time_Format"><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj">Time Format</span></h5>
-
-<div id="magicdomid72"><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj">How is time expressed in your language? </span><span class="author-a-w6z79zlakz82zxz85zz65zz86zz78zz89zz122zz89zd">I</span><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj">ncluding 0-24 hr expression, hour, minute and second.</span></div>
-
-<div> </div>
-
-<h5 id="Numerals"><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj">Numerals </span></h5>
-
-<div id="magicdomid76"><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj">How are numerals an</span><span class="author-a-w6z79zlakz82zxz85zz65zz86zz78zz89zz122zz89zd">d percentages</span><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj"> expressed in your language?  </span></div>
-
-<div><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj">    Example: 1.23 (decimal separator) or 1,000 (thousand separator) using comma or period. </span></div>
-
-<div> </div>
-
-<h5 id="Currency"><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj">Currency  </span></h5>
-
-<div><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj">What are other widely used currency and symbols used in your country/language for paid apps. </span></div>
-
-<div id="magicdomid79"> </div>
-
-<h5 id="Units"><span class="author-a-w6z79zlakz82zxz85zz65zz86zz78zz89zz122zz89zd">Units</span></h5>
-
-<div id="magicdomid81"><span class="author-a-w6z79zlakz82zxz85zz65zz86zz78zz89zz122zz89zd">Do you use the imperial, metric or nautical system for measuring weight, distance, etc.? Source strings will use the imperial system (e.g., miles, pounds, feet, gallons, etc.). Target translations should convert imperial metrics to their measurement system.</span></div>
-
-<div id="magicdomid82"> </div>
-
-<h5 id="Names"><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj">Name</span><span class="author-a-w6z79zlakz82zxz85zz65zz86zz78zz89zz122zz89zd">s</span><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj">  </span></h5>
-
-<div id="magicdomid84">
-<p><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj">What are the order of family name and given name in your language</span><span class="author-a-w6z79zlakz82zxz85zz65zz86zz78zz89zz122zz89zd">?</span><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj">  Here is the guideline on the naming convention from w3c.org:</span></p>
-</div>
-
-<h5 id="Address_and_Postal_Code_Format"><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj">Address and Postal Code Format </span></h5>
-
-<div id="magicdomid87"><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj">What is the format in your language?  </span></div>
-
-<div id="magicdomid88"><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj">    Example: most Asian countries start from big to small: [Country] [postal code][state/province][city][district][street number and name][building and suite numbers][addressee]</span></div>
-
-<div id="magicdomid89"><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj">    Countries of European languages start from small to big: [addressee][street number and name][building and suite numbers][district][city][state/province][postal code][Country]</span></div>
-
-<div id="magicdomid90"><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj">   </span></div>
-
-<h5 id="Telephone_Number_format"><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj">Telephone Number format</span></h5>
-
-<div id="magicdomid92"><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj">Space separators between digits can be different for area codes such as State (Province) and City, </span></div>
-
-<div id="magicdomid94"> </div>
-
-<h4 id="Spelling_And_Grammar_Checks"><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj b"><strong>Spelling And Grammar Checks</strong></span></h4>
-
-<div id="magicdomid96"><span class="author-a-w6z79zlakz82zxz85zz65zz86zz78zz89zz122zz89zd">Many languages have national or international standards that define spelling and grammar rules. When defining these rules for your community, make reference to those standards wherever possible. </span><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj">Do you have automated tests for spell checking and grammar</span><span class="author-a-w6z79zlakz82zxz85zz65zz86zz78zz89zz122zz89zd">?</span><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj"> </span><span class="author-a-w6z79zlakz82zxz85zz65zz86zz78zz89zz122zz89zd">List those tools and dictionaries here and how regularly they should be used.</span></div>
-
-<div id="magicdomid97"> </div>
-
-<h5 id="Tense"><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj b"><strong>Tense</strong></span></h5>
-
-<div id="magicdomid99"><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj">Do you have standards for verb forms that indicate or express the time, such as past, present, or future, of the action or state</span><span class="author-a-w6z79zlakz82zxz85zz65zz86zz78zz89zz122zz89zd">? What is your policy on tense consistency for certain use cases? For example, for phrases that ask a user to make an action (like "Download Firefox"), do you use a future tense, a command tense, or a neutral tense? </span><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj"> (See: </span><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj url"><a href="https://en.wikipedia.org/wiki/Grammatical_tense">https://en.wikipedia.org/wiki/Grammatical_tense</a></span><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj"> )</span></div>
-
-<div id="magicdomid100"> </div>
-
-<h4 id="Word_Forms"><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj b"><strong>Word Forms</strong></span></h4>
-
-<h5 id="Pluralization"><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj">Pluralization  </span></h5>
-
-<div id="magicdomid106"><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj">What is the appropriate form of expressing pluralization in your language?  </span><span class="author-a-w6z79zlakz82zxz85zz65zz86zz78zz89zz122zz89zd">L</span><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj">ist all forms of plural forms and examples if there is more than one.  </span><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj">Additional discussions can be found Here. </span><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj url"><a href="https://developer.mozilla.org/en-US/docs/Mozilla/Localization/Localization_and_Plurals">https://developer.mozilla.org/en-US/docs/Mozilla/Localization/Localization_and_Plurals</a></span><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj"> and here:  </span><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj url"><a href="http://www.unicode.org/cldr/charts/latest/supplemental/language_plural_rules.html">http://www.unicode.org/cldr/charts/latest/supplemental/language_plural_rules.html</a></span></div>
-
-<div id="magicdomid107"> </div>
-
-<h5 id="Abbreviations"><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj">Abbreviations  </span></h5>
-
-<p><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj">How are abbreviations expressed in your language?</span><span class="author-a-w6z79zlakz82zxz85zz65zz86zz78zz89zz122zz89zd"> </span><br>
- <span class="author-a-w6z79zlakz82zxz85zz65zz86zz78zz89zz122zz89zd">    Example, in English, abbreviations are made by removing most vowels and only using the first 3-5 consonants followed by a period (e.g., abbreviation = abbr.).</span><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj">  (see: </span><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj url"><a href="https://en.wikipedia.org/wiki/Abbreviation%29">https://en.wikipedia.org/wiki/Abbreviation)</a></span><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj">    </span><span class="author-a-w6z79zlakz82zxz85zz65zz86zz78zz89zz122zz89zd"> </span></p>
-
-<p><span class="author-a-w6z79zlakz82zxz85zz65zz86zz78zz89zz122zz89zd">If your language does not have a standard way of expressing abbreviations, do you simply leave them in English?</span></p>
-
-<h5 id="Acronyms"><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj">Acronyms </span></h5>
-
-<div id="magicdomid113">
-<p><span class="author-a-w6z79zlakz82zxz85zz65zz86zz78zz89zz122zz89zd">Are there standard</span><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj"> translat</span><span class="author-a-w6z79zlakz82zxz85zz65zz86zz78zz89zz122zz89zd">ions of</span><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj"> widely accepted acronyms such as CD, DVD, MB</span><span class="author-a-w6z79zlakz82zxz85zz65zz86zz78zz89zz122zz89zd"> in your language? If not, do they remain in English?</span><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj"> (see: </span><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj url"><a href="https://en.wikipedia.org/wiki/Acronym">https://en.wikipedia.org/wiki/Acronym</a></span><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj"> )</span></p>
-</div>
-
-<h5 id="Punctuation"><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj b"><strong>Punctuation</strong></span></h5>
-
-<div id="magicdomid117"><span class="author-a-w6z79zlakz82zxz85zz65zz86zz78zz89zz122zz89zd">Do you use different punctuation rules in your Firefox localization than what your language standard defines? </span></div>
-
-<div><span class="author-a-w6z79zlakz82zxz85zz65zz86zz78zz89zz122zz89zd">    Example: do you use a period at the end of every user interface element translation or only some? </span><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj">W</span><span class="author-a-w6z79zlakz82zxz85zz65zz86zz78zz89zz122zz89zd">hat is the international/national standard for punctuation in your language</span><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj">?</span></div>
-
-<div id="magicdomid118"> </div>
-
-<h5 id="Emphasis"><span class="author-a-w6z79zlakz82zxz85zz65zz86zz78zz89zz122zz89zd">Emphasis</span></h5>
-
-<p><span class="author-a-w6z79zlakz82zxz85zz65zz86zz78zz89zz122zz89zd">Is there an international/national standard for capitalization</span><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj"> in your language? </span></p>
-
-<ul>
- <li><span class="author-a-w6z79zlakz82zxz85zz65zz86zz78zz89zz122zz89zd">If so, do those standard rules apply in all product translations? </span></li>
- <li><span class="author-a-w6z79zlakz82zxz85zz65zz86zz78zz89zz122zz89zd">I</span><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj">f this doe</span><span class="author-a-z87zt8dz75zn14z76zz71z8z82zz86z2uq">sn</span><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj">'t apply, how </span><span class="author-a-w6z79zlakz82zxz85zz65zz86zz78zz89zz122zz89zd">do you</span><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj"> indicate importance or name of a movie, book title, product UIs (</span><span class="author-a-z87zt8dz75zn14z76zz71z8z82zz86z2uq u"><u>S</u></span><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj">ave, </span><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj u"><u>F</u></span><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj">ile...)</span><span class="author-a-w6z79zlakz82zxz85zz65zz86zz78zz89zz122zz89zd"> in your language?</span><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj"> </span></li>
- <li><span class="author-a-w6z79zlakz82zxz85zz65zz86zz78zz89zz122zz89zd">How does your language handle the use of bold, italic, or underline types to express emphasis?</span><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj">  ( See: </span><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj url"><a href="https://en.wikipedia.org/wiki/Italic_type">https://en.wikipedia.org/wiki/Italic_type</a></span><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj"> )</span></li>
-</ul>
-
-<h5 id="Hyphens_and_compounds"><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj">Hyphens and compounds </span></h5>
-
-<div id="magicdomid123"><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj">What is the appropriate </span><span class="author-a-w6z79zlakz82zxz85zz65zz86zz78zz89zz122zz89zd">way</span><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj"> of </span><span class="author-a-w6z79zlakz82zxz85zz65zz86zz78zz89zz122zz89zd">using</span><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj"> hyphens and compounds in your language?  ( </span><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj url"><a href="https://en.wikipedia.org/wiki/Compound_%28linguistics%29">https://en.wikipedia.org/wiki/Compound_%28linguistics%29</a></span><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj"> ) </span></div>
-
-<div id="magicdomid124"> </div>
-
-<h5 id="Prepositions_and_articles"><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj">Prepositions and articles</span><span class="author-a-z87zt8dz75zn14z76zz71z8z82zz86z2uq"> </span></h5>
-
-<div id="magicdomid126"><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj">What is the appropriate form of expressing prepositions and articles in your language?</span></div>
-
-<div id="magicdomid127"> </div>
-
-<h5 id="Diacritics_and_Special_characters"><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj">Diacritics and </span><span class="author-a-w6z79zlakz82zxz85zz65zz86zz78zz89zz122zz89zd">Special characters</span><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj">  </span></h5>
-
-<div id="magicdomid129"><span class="author-a-w6z79zlakz82zxz85zz65zz86zz78zz89zz122zz89zd">Does your language use</span><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj"> any special </span><span class="author-a-w6z79zlakz82zxz85zz65zz86zz78zz89zz122zz89zd">or accented characters</span><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj"> and will they be applied and preserved in sort orders, and other aspects of the translation</span><span class="author-a-w6z79zlakz82zxz85zz65zz86zz78zz89zz122zz89zd">?</span><span class="author-a-z87zt8dz75zn14z76zz71z8z82zz86z2uq"> </span><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj"> (see: </span><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj url"><a href="https://en.wikipedia.org/wiki/Diacritic">https://en.wikipedia.org/wiki/Diacritic</a></span><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj"> )</span></div>
-
-<div id="magicdomid130"> </div>
-
-<h5 id="Quotes"><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj">Quotes  </span></h5>
-
-<div id="magicdomid132">
-<p><span class="author-a-w6z79zlakz82zxz85zz65zz86zz78zz89zz122zz89zd">Does your language have a standard use for quotation marks, parenthesis, or brackets?</span></p>
-</div>
-
-<h5 id="Whitespace"><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj">Whitespace </span></h5>
-
-<div id="magicdomid135">
-<p><span class="author-a-w6z79zlakz82zxz85zz65zz86zz78zz89zz122zz89zd">Does your language require the</span><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj"> use of white space around words, sentences, paragraphs, etc</span><span class="author-a-w6z79zlakz82zxz85zz65zz86zz78zz89zz122zz89zd">.? If so, in what ways?</span><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj">  (see: </span><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj url"><a href="https://en.wikipedia.org/wiki/Sentence_spacing_in_language_and_style_guides">https://en.wikipedia.org/wiki/Sentence_spacing_in_language_and_style_guides</a></span><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj"> )</span></p>
-</div>
-
-<h5 id="User_Interface_Elements"><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj b"><strong>User Interface Elements</strong></span><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj">        </span></h5>
-
-<div id="magicdomid139"> </div>
-
-<ul>
- <li id="magicdomid140"><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj">Titles :  Should be brief and precise. Localizers can assume that source content reaches 2/3 of the total available line space. This allows localization text to expand and not be truncated or resolved through ellipsis. Title on the final page (meaning no more click through) should allow enough room to display full text.         </span></li>
- <li id="magicdomid142"><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj">Buttons: Capitalize the first letter of each word. Limit to one or two words. Use verbs that precisely describe the button's action. For example, "Cancel", "Clear History", "Add Email", "Select All", etc.          </span></li>
- <li id="magicdomid144"><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj">Value Selector Lists: Capitalize the first letter of the first word and the first letter of any proper nouns. Limit to one or two words. </span></li>
- <li id="magicdomid147"><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj">Articles:  </span><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj">Avoid them where possible. Articles (such as the word "the" in English) should be avoided wherever possible. User interface elements have limited space available for text. Avoiding articles will help ensure that your translations will be accommodated within the user interface.              </span></li>
- <li id="magicdomid149"><span class="author-a-z66zuz70zqiz67zz73z3z90zhp4z68zz73zpj">Ellipsis: Ellipsis are often inserted automatically in the UI where strings are truncated. Ellipsis should only be used at high level of UI pages, but not be on the final page (after a series of click-through) where detailed instruction is given. Ellipsis should not be used as a way to solve truncation issue.  Focus on making the UI short and precise.  The sequence of the sentence structure in another language may not translate well, when a sentence is half finished as such.     </span></li>
-</ul>
-</div>
-
-<h2 id="General_Mozilla_l10n_style">General Mozilla l10n style</h2>
-
-<h3 id="Accuracy">Accuracy</h3>
-
-<h4 id="Meaning-based_translation"><span class="author-p-1460 b"><strong>Meaning-based translation</strong></span></h4>
-
-<div id="magicdomid3"><span class="author-p-1460">When it comes to translation, meaning is everything. A translator needs to understand the source text's meaning exactly. You then find its most closely linked equivalent in your own language, without adding or subtracting meaning in your translation. Finding meaning-based equivalents between languages can be difficult. To help concentrate your thoughts, ask yourself questions like:</span></div>
-
-<ul>
- <li><span class="author-p-1460">What does this word/sentence/string mean in English?</span></li>
- <li><span class="author-p-1460">What is the message the author is trying to send?</span></li>
- <li><span class="author-p-1460">How would I express that meaning in my own language?</span></li>
-</ul>
-
-<p><span class="author-p-1460">Sometimes translation memory and machine translation tools can offer bad suggestions for a translation. If you use either as part of your translation workflow, make sure to correct the suggestions before submitting them. Avoid literal translation at all costs. Watch out for words that might sound or look the same between English and your language, but have a different meaning. </span></p>
-
-<h4 id="Should_not_be_translated">Should not be translated</h4>
-
-<h5 id="Shortcuts_and_accesskeys">Shortcuts and accesskeys</h5>
-
-<p>In Firefox and other software it's possible to use keyboard shortcuts to invoke a specific command. For example, to open a file in Firefox you can press the combination of keys <code>CTRL+O</code> (<code>Cmd+O</code> on Mac). The accelerator key depends on the operative system, but the letter itself is normally localizable. This is what is called a shortcut, or commandkey. For example, the <code>Open File…</code> menu item is stored as</p>
-
-<pre class="sourcelines stripes"><span id="l61"><span class="k">&lt;!ENTITY</span> <span class="ni">openFileCmd.label</span> <span class="s2">"Open File…"</span><span class="k">&gt;</span></span>
-<span id="l62"><span class="k">&lt;!ENTITY</span> <span class="ni">openFileCmd.accesskey</span> <span class="s2">"O"</span><span class="k">&gt;</span></span>
-<span id="l63"><span class="k">&lt;!ENTITY</span> <span class="ni">openFileCmd.commandkey</span> <span class="s2">"o"</span><span class="k">&gt;</span></span></pre>
-
-<p>The commandkey is stored in <code>openFileCmd.commandkey</code> (sometimes the string has <code>.key</code> in the identifier). Normally you should not localize this key, since shortcuts are often common across the entire operative system (e.g. <code>CTRL+S</code> to Save) or similar products (<code>CTRL+T</code> to open a new tab in most browsers). But it needs to be localized if the letter is not available in your keyboard layout. For example, in Italian the character <code>[</code> can be accessed through <code>ALT+è</code>, a command key <code>[</code> would not work.</p>
-
-<p>In the code fragment above you see also an accesskey defined for <code>Open File…</code>. Accesskeys are used to access a UI element from the keyboard. Example: if File menu has an accesskey F, and the Open file… menu has O, you can press ALT+F to access the menu, and then O to open a file.</p>
-
-<p>If the label is File, and the accesskey is F, it will be displayed as "<u>F</u>ile" on Windows and Linux, with an underscored F. If the accesskey was "O", so a character not available in the original label, it will be displayed underlined between parenthesis: "File (<u>O</u>)".</p>
-
-<p>One important thing to determine is if, for your locale, it makes sense to have localized accesskeys: for example, if most users will use a keyboard with a different layout (English), it might make sense to keep the English original accesskey instead of using a letter available in your localization.</p>
-
-<p>Accesskeys, like commandkeys, have their own lines within .dtd and .properties files and are usually identified by .accesskey in the string ID.</p>
-
-<h5 id="Variables"><span class="author-p-1460">Variables</span></h5>
-
-<p><span class="author-p-1460">Variables should never be translated. You can recognize a variable within a string by its beginning with a specific character (e.g., <span class="author-p-1460">$, #, %, etc.)</span> followed by a combination of words without spacing. For example, $BrandShortName and %S are variables.  </span>You can move a variable around within a string, if the translation of the string requires it.</p>
-
-<h5 id="Brands_copyright_and_trademark"><strong><span class="author-p-1460">Brands, copyright, and trademark</span></strong></h5>
-
-<p><span class="author-p-1460">Brand names, as well as copyright and trademarks should never be translated, nor transliterated into a non-Latin based script. See the <a href="https://www.mozilla.org/en-US/styleguide/communications/translation/">Mozilla branding guide</a> for more details.</span></p>
-
-<p><span style="font-family: open sans light,helvetica,arial,sans-serif; font-size: 1.286rem; letter-spacing: -0.014em; line-height: 1;">Translating c</span><span style="font-family: open sans light,helvetica,arial,sans-serif; font-size: 1.286rem; letter-spacing: -0.014em; line-height: 1;">ulture-specific references</span></p>
-
-<p>At times there will be English content included in Mozilla products or web projects (e.g., marketing campaigns) that makes references to American culture and concepts. When translating these, it is best to find an equivalent cultural reference within your own culture that accurately conveys the meaning of the English reference. For example, an American might say, "Good job, home run!" A home run is a baseball reference for a successful outcome. An appropriate translation would be an equivalent metaphor within your culture. Using soccer as an example, you might translate "Good job, home run!" into "Good job, nice goal!" in your language.</p>
-
-<p>[Add a note about Mozilla culture.]</p>
-
-<h4 id="Legal_content">Legal content</h4>
-
-<p>Mozilla projects will often contain legal content in the form of user agreements, privacy statements, etc. When reviewing the translation of legal content, Mozilla localizers should do so according to the criteria concerning accuracy, fluency, style, and terminology found within this style guide and according to Mozilla culture and values.</p>
-
-<h3 id="Fluency"><span class="author-a-w6z79zlakz82zxz85zz65zz86zz78zz89zz122zz89zd">Fluency</span></h3>
-
-<div id="magicdomid153"> </div>
-
-<div id="magicdomid154"><span class="author-a-w6z79zlakz82zxz85zz65zz86zz78zz89zz122zz89zd">To produce a fluent translation, not only should the translation follow the language's standard grammar, punctuation, and spelling rules, but it should avoid being ambiguous, incoherent, or inconsistent, and unintelligible.</span></div>
-
-<div id="magicdomid155"> </div>
-
-<div id="magicdomid156"><span class="author-a-w6z79zlakz82zxz85zz65zz86zz78zz89zz122zz89zd">To avoid ambiguity, the translator must thoroughly understand the meaning behind the source text, including any references that text might include. For example, if the English source text uses the word, "it", the translator must know what "it" is to avoid an ambiguous translation. Clearly understanding the source text will also allow a translator to make the source text's logical connections in their own translation. This helps to keep the translation coherent.</span></div>
-
-<div id="magicdomid157"> </div>
-
-<div id="magicdomid158"><span class="author-a-w6z79zlakz82zxz85zz65zz86zz78zz89zz122zz89zd">Inconsistency can pop up in many forms. A translator must be consistent in their use of abbreviations, references, and links within each localization project. They must also be consistent with Mozilla and the localization communities' style guides and approved terminology. Abbreviations, like terminology, should come from either a standard reference (like a dictionary of abbreviations) or should follow your language's rules for creating abbreviations. Once used, the abbreviation must remain consistent every place that it is used in the translation. Cross-references (or links) must also be consistently used within a translation. If a text contains a hyperlink URL to a support article in English, the translation should also contain a hyperlink to a translation of that support article (if available) or the English version. Links should not redirect to other pages nor should they be broken and unusable.</span></div>
-
-<div id="magicdomid159"> </div>
-
-<div id="magicdomid160"><span class="author-a-w6z79zlakz82zxz85zz65zz86zz78zz89zz122zz89zd">Finally, there are times that a translation simply doesn't make sense. It's hard to put your finger on what exactly is wrong with it, but you know it is unintelligible and not fluent. While this is uncommon, it's important to report these unintelligible translations and offer suggestions to correct them.</span></div>
diff --git a/files/fr/mozilla/localization/localiser_avec_pontoon/index.html b/files/fr/mozilla/localization/localiser_avec_pontoon/index.html
deleted file mode 100644
index c030325093..0000000000
--- a/files/fr/mozilla/localization/localiser_avec_pontoon/index.html
+++ /dev/null
@@ -1,135 +0,0 @@
----
-title: Localiser avec Pontoon
-slug: Mozilla/Localization/Localiser_avec_Pontoon
-translation_of: Mozilla/Localization/Localizing_with_Pontoon
----
-<p><a href="https://pontoon.mozilla.org" title="https://pontoon.mozilla.org">Pontoon</a> est un outil de localisation (l10n) sur le Web qui est en WYSIWYG, c'est-à-dire vous permet de voir directement ce que sera le résultat de votre travail. Chez Mozilla, nous utilisons Pontoon pour localiser tous les produits Mozilla ainsi que les sites web, depuis Firefox jusqu'à Mozilla.org. Pontoon est d'un accès facile et d'un maniement intuitif : il n'est pas nécessaire de disposer de grandes compétences techniques pour l'utiliser dans un processus de l10n. Nous allons aborder la façon d'utiliser Pontoon pour localiser des projets, depuis la manière de s'inscrire sur le site jusqu'à la phase finale de vos contributions. Chemin faisant, nous verrons quelques fonctionnalités sympathiques qui vous rendront plus efficace et faciliteront vos contributions de traduction et localisation.</p>
-
-<div class="note">
-<p><strong>Vous êtes développeur ?</strong> Parcourez l'article <a href="/en-US/docs/Implementing_Pontoon_Mozilla">implementing Pontoon in your project</a> ou apprenez comment vous impliquer sur le <a href="https://github.com/mozilla/pontoon">GitHub</a>.</p>
-</div>
-
-<h2 id="Premiers_pas">Premiers pas</h2>
-
-<p><a href="https://pontoon.mozilla.org" title="https://pontoon.mozilla.org">La page d'accueil de Pontoon</a> est d'un usage très simple. Pour commencer, cliquez sur le lien « <strong>Sign in</strong> » et validez votre inscription avec votre compte Firefox (<em>Firefox account</em>). Ensuite, il vous suffit de sélectionner le projet sur lequel vous voulez travailler et la locale (votre langue) en la sélectionnant dans les menus déroulants. Pontoon ouvre alors automatiquement le projet désiré dans votre langue et vous allez pouvoir commencer. Notez que pour les besoins de cet article, nous utiliserons le site web <a href="https://affiliates.mozilla.org/">Firefox Affiliates</a> pour explorer les fonctionnalités de Pontoon et son processus. Et voici Pontoon qui s'ouvre :</p>
-
-<p><em><img alt="Browser app and workspace" src="https://mdn.mozillademos.org/files/8323/affiliates.png" style="height: 558px;"></em></p>
-
-<h3 id="Barre_d'outils_principale">Barre d'outils principale</h3>
-
-<p>Comme vous pouvez le voir, la majeure partie de l'interface est occupée par le site web qui est en cours de traduction. Seule la barre d'outils dans la partie supérieure appartient à Pontoon et comprend les éléments suivants (de gauche à droite) :</p>
-
-<p><img alt="Main toolbar" src="https://mdn.mozillademos.org/files/8325/toolbar.png"></p>
-
-<h4 id="Liste_des_chaînes">Liste des chaînes</h4>
-
-<p>Ouvre un panneau latéral qui contient la liste de toutes les chaînes à traduire.</p>
-
-<h4 id="Sélecteur_de_projets"><span id="cke_bm_939S" style="display: none;"> </span>Sélecteur de projets</h4>
-
-<p>Permet de passer d'un projet de traduction à l'autre.</p>
-
-<h4 id="Sélecteur_de_ressources"><span id="cke_bm_940S" style="display: none;"> </span>Sélecteur de ressources</h4>
-
-<p>Permet de passer d'une ressource à l'autre pour un projet à traduire, par exemple des pages secondaires ou des fichiers. Cette entrée est masquée s'il n'existe aucune ressource pour le projet.</p>
-
-<h4 id="sect1"><span id="cke_bm_941S" style="display: none;"> </span></h4>
-
-<dl>
-</dl>
-
-<h4 id="Sélecteur_de_locale">Sélecteur de locale</h4>
-
-<p>Permet de changer la langue-cible de traduction.</p>
-
-<h4 id="Go">Go</h4>
-
-<p>Ouvre la sélection qui combine projet-ressource-langue</p>
-
-<h4 id="Indicateur_de_progression">Indicateur de progression</h4>
-
-<p>Affiche l'avancement de votre travail de traduction pour la ressource. La fenêtre popup vous donne davantage de détails.</p>
-
-<dl>
-</dl>
-
-<h4 id="Menu_utilisateur"><span id="cke_bm_943S" style="display: none;"> </span>Menu utilisateur</h4>
-
-<p>Permet d'exécuter des tâches spécifiques, telles que <em>commiter</em> sur un dépôt, télécharger des fichiers et se déconnecter.</p>
-
-<h4 id="Menu_d'information">Menu d'information</h4>
-
-<p>Fournit des informations importantes, telles que la chronologie du projet et une liste des raccourcis clavier.</p>
-
-<dl>
-</dl>
-
-<p>Bon, et si on traduisait un peu maintenant ?<span id="cke_bm_608E" style="display: none;"> </span></p>
-
-<dl>
-</dl>
-
-<h2 id="Traduction_des_chaînes">Traduction des chaînes</h2>
-
-<p>Quand vous utilisez Pontoon pour la localisation, vous disposez de plusieurs options pour traduire vos chaînes. Vous pouvez en effet traduire en contexte, hors-contexte, ou les deux à la fois. Commençons par la traduction en contexte.</p>
-
-<h3 id="En_contexte">En contexte</h3>
-
-<p>Le mode de traduction en contexte de Pontoon's est un atout qui le distingue d'autres plateformes de traduction. Pontoon ouvre une page web (ou une application web) et permet de la modifier en temps réel. Voici comment vous pouvez traduire votre première chaîne :</p>
-
-<p><img alt="In-context localization" src="https://mdn.mozillademos.org/files/8331/in-context.png"></p>
-
-<ol>
- <li>Survolez au pointeur de votre souris le texte que vous souhaitez traduire.</li>
- <li>Une icône de modification (un crayon) apparaît sur la zone de texte. Cliquez et vous activez le mode traduction.</li>
- <li>Remplacez le texte original par sa traduction dans votre langue.</li>
- <li>Cliquez sur l'icône d'enregistrement (une disquette) pour sauvegarder votre traduction.</li>
-</ol>
-
-<div>
-<h3 id="Hors-contexte">Hors-contexte</h3>
-
-<p>Certaines chaînes ne sont pas traduisibles en contexte, telles que les balises &lt;title&gt; des pages web et les chaînes ayant différents accords. En cliquant sur l'icône hamburger de la principale barre d'outils, la liste des chaînes et traductions disponibles apparaît en barre latérale. Utilisez alors la barre latérale pour inscrire une localisation hors-contexte:</p>
-
-<p><img alt="Out-of-context localization: list" src="https://mdn.mozillademos.org/files/8337/out-of-context-1.png"> <img alt="Out-of-context localization: translate" src="https://mdn.mozillademos.org/files/8335/out-of-context-2.png"></p>
-
-<ol>
- <li>Cliquez sur la chaîne à traduire.</li>
- <li>Apparaît alors, dans le panneau de traduction, la chaîne originale et ses détails (tels que des commentaires).</li>
- <li>Traduisez la chaîne dans l'espace de traduction situé en dessous.</li>
- <li>Cliquez sur enregistrer pour enregistrer votre traduction.</li>
-</ol>
-
-<p>En traduisant des chaînes hors contexte, les traductions apparaîssent sur la page web si elles sont également traduisibles en contexte.</p>
-
-<h3 id="Outils_d'aide_à_la_traduction">Outils d'aide à la traduction</h3>
-</div>
-
-<p>Comme vous le voyez, vous pouvez profiter des suggestions de l'historique et de la mémoire de traduction, de la traduction automatique et des autres locales également disponibles dans le panneau hors-contexte. Nous appelons ces outils des aides la traduction. Voici dans le détail ce que chacun d'eux peut vous apporter dans votre processus de traduction :</p>
-
-<p><img alt="Translation helpers: History" src="https://mdn.mozillademos.org/files/8339/helpers-history.png"> <img alt="Translation helpers: Machinery" src="https://mdn.mozillademos.org/files/8341/helpers-machinery.png"> <img alt="Translation helpers: Other locales" src="https://mdn.mozillademos.org/files/8343/helpers-locales.png"> <img alt="Translation helpers: Search" src="https://mdn.mozillademos.org/files/8345/helpers-menu.png"></p>
-
-<h4 id="Historique">Historique</h4>
-
-<p>Affiche les traductions suggérées pécédemment, y compris celles d'autres utilisateurs.</p>
-
-<h4 id="Machinery">Machinery</h4>
-
-<p>Displays matches from various services: internal translation memory, <a href="http://transvision.mozfr.org/">Mozilla Transvision</a>, <a href="https://amagama-live.translatehouse.org/">open source translation memory</a>, <a href="http://www.microsoft.com/Language/">Microsoft terminology</a> and <a href="http://www.bing.com/translator">machine translation</a>.</p>
-
-<h4 id="Autres_locales">Autres locales</h4>
-
-<p>Affiche les traductions correspondantes dans d'autres langues.</p>
-
-<h4 id="Recherche">Recherche</h4>
-
-<p>Fonctionne presque comme <em>Machinery</em>, mais utilise le mot-clé fourni comme paramètre au lieu de la chaîne de caractères originale.</p>
-
-<p>En cliquant sur une suggestion, vous la copiez dans la zone de traduction.</p>
-
-<dl>
-</dl>
-
-<h2 id="Publier_sa_localisation">Publier sa localisation</h2>
-
-<p>Pour publier votre travail de localisation (l10n), vous voudrez normalement l'inscrire dans un dépôt. Et Pontoon s'en charge! En réalité, il synchronise vos changements avec le dépôt t<span class="short_text" id="result_box" lang="fr"><span>outes les heures. </span></span>Félicitez-vous donc avec une tape dans le dos, une petite danse, une sieste ou autre chose pour célébrer votre travail!</p>
diff --git a/files/fr/mozilla/localization/localization_notes/index.html b/files/fr/mozilla/localization/localization_notes/index.html
deleted file mode 100644
index e391ccb006..0000000000
--- a/files/fr/mozilla/localization/localization_notes/index.html
+++ /dev/null
@@ -1,25 +0,0 @@
----
-title: Notes de traduction
-slug: Mozilla/Localization/Localization_notes
-tags:
- - Guide
- - Internationalisation
- - Mozilla
- - Traduction
-translation_of: Mozilla/Localization/Localization_notes
----
-<p><span class="seoSummary">Les traducteurs travaillent la plupart du temps sur les fichiers à traduire sans le contexte des fichiers sources, y compris les chaînes traduites ; il est donc important d'ajouter des commentaires dans ces mêmes fichiers à traduire. Ces commentaires sont généralement appelés <em>notes de traduction</em>. Il existe un format établi pour ces documents, qui est détaillé dans le document actuel.</span></p>
-
-<p>Il est important de suivre le format au plus possible. De nombreux outils analysent automatiquement les commentaires afin d'en simplifier la lecture et de faciliter le travail des traducteurs.</p>
-
-<h2 id="Fichiers_DTD">Fichiers DTD</h2>
-
-<pre class="eval">&lt;!-- NOTE DE TRADUCTION (nom de l'entité): commentaire --&gt;
-</pre>
-
-<h2 id="Fichiers_de_propriétés">Fichiers de propriétés</h2>
-
-<pre class="eval"># NOTE DE TRADUCTION (clé): commentaire
-</pre>
-
-<p>Les commentaires pour l'ensemble du fichier doivent utiliser le même format, être en haut du fichier (après l'en-tête de la licence, évidemment) et simplement indiquer la référence (<em>nom de l'entité/clé</em>).</p>
diff --git a/files/fr/mozilla/localization/localizing_with_verbatim/index.html b/files/fr/mozilla/localization/localizing_with_verbatim/index.html
deleted file mode 100644
index 32d877555a..0000000000
--- a/files/fr/mozilla/localization/localizing_with_verbatim/index.html
+++ /dev/null
@@ -1,169 +0,0 @@
----
-title: Localiser avec Verbatim
-slug: Mozilla/Localization/Localizing_with_Verbatim
-tags:
- - Comment
- - Démarrer
- - Guide
- - Localisation
- - MDN
- - Mozilla
- - Participer
- - Traduction
- - Traduire
- - Verbatim
-translation_of: Mozilla/Localization/Localizing_with_Pontoon
----
-<p><span class="seoSummary">Verbatim est un outil en ligne (plus précisément, il s'agit d'une instance Pootle hébergée par Mozilla) conçu pour localiser le contenu des pages Web de Mozilla. Tous les projets Mozilla peuvent en profiter, quelle que soit la langue utilisée. Ce guide vous aidera à localiser votre premier projet Mozilla.</span> Il vous expliquera les bases de Verbatim pour traduire tous les projets Mozilla que vous voudriez voir apparaître dans votre langue au sein de la communauté Mozilla. Plusieurs points seront abordés, notamment les types de projet utilisés avec Verbatim, comment démarrer avec Verbatim ainsi que les différentes tâches accomplies grâce à Verbatim.</p>
-
-<h2 id="Démarrer_avec_Verbatim">Démarrer avec Verbatim</h2>
-
-<p>Puisque Verbatim est un outil en ligne, le traducteur doit être connecté à Internet pour l'utiliser. Vous pouvez l'utiliser de deux manières différentes : démarrez une nouvelle localisation ou rejoignez une communauté de localisation déjà existante. Quelque soit votre choix, suivez les étapes ci-dessous pour commencer à travailler sur un projet Verbatim.</p>
-
-<table style="border-color: rgb(0,0,0); border-style: solid; width: 100%;">
- <thead>
- <tr style="text-align: center;">
- <th scope="col" style="text-align: center;"><strong>Démarrer une nouvelle localisation</strong></th>
- <th scope="col" style="text-align: center;"><strong>Rejoindre une communauté existante</strong></th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>
- <ol>
- <li>Rendez-vous à l'adresse <a class="external" href="http://localize.mozilla.org/">https://localize.mozilla.org</a>, la page d'accueil de Verbatim.</li>
- </ol>
- </td>
- <td>
- <ol>
- <li>Rendez-vous à l'adresse <a class="external" href="http://localize.mozilla.org/">https://localize.mozilla.org</a>, la page d'accueil de Verbatim.</li>
- </ol>
- </td>
- </tr>
- <tr>
- <td>
- <ol start="2">
- <li>Si vous avez un compte Mozilla <a dir="ltr" href="https://wiki.mozilla.org/Directory" id="LDAP" lang="en-US" title="LDAP Description">LDAP</a> (Lightweight Directory Access Protocol), connectez-vous simplement avec les identifiants de ce compte. Sinon, créez un compte, et connectez-vous avec les identifiants de ce compte. Vous trouverez les liens pour vous enregistrer ou vous identifier dans le coin en haut à droite de cette page.</li>
- </ol>
- </td>
- <td>
- <ol start="2">
- <li>Si vous avez un compte Mozilla <a dir="ltr" href="https://wiki.mozilla.org/Directory" id="LDAP" lang="en-US" title="LDAP Description">LDAP</a> (Lightweight Directory Access Protocol), connectez-vous simplement avec les identifiants de ce compte. Sinon, créez un compte, et connectez-vous avec les identifiants de ce compte. Vous trouverez les liens pour vous enregistrer ou vous identifier dans le coin en haut à droite de cette page.</li>
- </ol>
- </td>
- </tr>
- <tr>
- <td>
- <ol start="3">
- <li>Rapportez un bogue en utilisant  <a class="link-https" href="https://bugzilla.mozilla.org/enter_bug.cgi?alias=&amp;assigned_to=nobody%40mozilla.org&amp;blocked=&amp;bug_file_loc=https%3A%2F%2Flocalize.mozilla.org%2F&amp;bug_severity=normal&amp;bug_status=NEW&amp;cf_blocking_191=---&amp;cf_blocking_192=---&amp;cf_status_191=---&amp;cf_status_192=---&amp;cf_status_firefox10=---&amp;cf_status_firefox11=---&amp;cf_status_firefox8=---&amp;cf_status_firefox9=---&amp;cf_tracking_firefox10=---&amp;cf_tracking_firefox11=---&amp;cf_tracking_firefox8=---&amp;cf_tracking_firefox9=---&amp;comment=I%20would%20like%20to%20request%20that%20you%20add%20the%20%5Binsert%20your%20locale%20code%20here%5D%20as%20a%20new%20localization%20in%20Verbatim.%0D%0A%0D%0A%5BAdd%20any%20other%20comments%20you%20may%20have%20here.%5D&amp;component=Verbatim&amp;contenttypeentry=&amp;contenttypemethod=autodetect&amp;contenttypeselection=text%2Fplain&amp;data=&amp;defined_groups=1&amp;dependson=&amp;description=&amp;flag_type-4=X&amp;flag_type-607=X&amp;form_name=enter_bug&amp;keywords=&amp;maketemplate=Remember%20values%20as%20bookmarkable%20template&amp;op_sys=All&amp;priority=--&amp;product=Webtools&amp;qa_contact=verbatim%40webtools.bugs&amp;rep_platform=All&amp;requestee_type-325=&amp;requestee_type-4=&amp;requestee_type-607=&amp;short_desc=Request%20for%20new%20localization%20on%20Verbatim&amp;status_whiteboard=&amp;target_milestone=---&amp;version=Trunk" title="https://bugzilla.mozilla.org/enter_bug.cgi?alias=&amp;assigned_to=nobody%40mozilla.org&amp;blocked=&amp;bug_file_loc=https%3A%2F%2Flocalize.mozilla.org%2F&amp;bug_severity=normal&amp;bug_status=NEW&amp;cf_blocking_191=---&amp;cf_blocking_192=---&amp;cf_status_191=---&amp;cf_status_192=---&amp;cf_status_firefox10=---&amp;cf_status_firefox11=---&amp;cf_status_firefox8=---&amp;cf_status_firefox9=---&amp;cf_tracking_firefox10=---&amp;cf_tracking_firefox11=---&amp;cf_tracking_firefox8=---&amp;cf_tracking_firefox9=---&amp;comment=I%20would%20like%20to%20request%20that%20you%20add%20the%20%5Binsert%20your%20locale%20code%20here%5D%20as%20a%20new%20localization%20in%20Verbatim.%0D%0A%0D%0A%5BAdd%20any%20other%20comments%20you%20may%20have%20here.%5D&amp;component=Verbatim&amp;contenttypeentry=&amp;contenttypemethod=autodetect&amp;contenttypeselection=text%2Fplain&amp;data=&amp;defined_groups=1&amp;dependson=&amp;description=&amp;flag_type-4=X&amp;flag_type-607=X&amp;form_name=enter_bug&amp;keywords=&amp;maketemplate=Remember%20values%20as%20bookmarkable%20template&amp;op_sys=All&amp;priority=--&amp;product=Webtools&amp;qa_contact=verbatim%40webtools.bugs&amp;rep_platform=All&amp;requestee_type-325=&amp;requestee_type-4=&amp;requestee_type-607=&amp;short_desc=Request%20for%20new%20localization%20on%20Verbatim&amp;status_whiteboard=&amp;target_milestone=---&amp;version=Trunk">ce modèle bugzilla</a> pré-rempli. Ajoutez vos paramètres régionaux et votre langue dans le champ "Description", ainsi que toute information que vous jugez utile. Voir l'exemple ci-dessous.</li>
- </ol>
-
- <div class="note"><strong>Exemple </strong>: J'aimerais vous demander d'ajouter fr-FR comme nouveau code de localisation dans Verbatim. La langue est le <strong>français</strong>. J'aime aussi les cookies. J'adore les cookies. Toutes les pâtisseries me motivent en fait.</div>
- </td>
- <td>
- <ol start="3">
- <li><a class="link-https" href="https://wiki.mozilla.org/L10n:Teams:fr" title="https://wiki.mozilla.org/Category:L10n_Teams">Contactez la communauté</a> pour connaître les projets qui ont le plus besoin d'attention en ce moment. Lisez l'exemple ci-dessous pour vous faire une idée du message que vous pourriez envoyer aux responsables de la communauté.</li>
- </ol>
-
- <div class="note"><strong>Exemple </strong>: J'aimerais vous rejoindre pour vous aider à traduire dans cette langue. Par où puis-je commencer ? J'aimerais aussi vous offrir un verre pour vous motiver à me laisser rejoindre votre communauté !</div>
- </td>
- </tr>
- </tbody>
-</table>
-
-<p>Vous voilà enregistré(e) et identifié(e). Nous allons maintenant décrire le processus général de traduction en nous servant de la <a href="https://localize.mozilla.org/projects/mdn">page des projets MDN</a> comme exemple.</p>
-
-<h2 id="Traduire">Traduire</h2>
-
-<p>Tout d'abord, il faut trouver des sources qui ne sont pas encore traduites.</p>
-
-<ol>
- <li>Rendez-vous sur la <a class="link-https" href="https://localize.mozilla.org/projects/mdn" title="https://localize.mozilla.org/projects/mdn/">page des projects MDN</a>.</li>
- <li>Sélectionnez votre langue dans l'onglet <strong>Overview</strong>.</li>
- <li>Cliquez sur le répertoire <strong>LC Messages</strong> pour voir apparaître les fichiers <code>.po</code> qui contiennent les chaînes à traduire.</li>
- <li>Choisissez un fichier .po dont certaines sources sont encore à traduire.</li>
- <li>Une page s'affiche avec le résumé de ce fichier. Cliquez sur <strong>Continue translation</strong> et vous êtes redirigé vers l'onglet <strong>Translate</strong> pour commencer directement à traduire.</li>
-</ol>
-
-<p>Vous êtes maintenant prêt à nous aider, vous allez voir, c'est très facile. Vous pouvez le faire de deux manières :</p>
-
-<ol>
- <li>Insérez votre traduction en dessous de la chaîne en anglais.</li>
- <li>Cliquez sur <strong>Suggest</strong>. Si vous avez les autorités pour approuver une traduction, cliquez sur <strong>Submit.</strong> la chaîne suivante apparaît.</li>
- <li>Hourra ! Vous traduisez ! Répétez les étapes 1 et 2 pour toutes les chaînes à traduire.</li>
-</ol>
-
-<div class="note"><strong>Remarque </strong>: Si une suggestion a déjà été faite pour l'une des chaînes à traduire, vous pouvez toujours proposer la vôtre, si vous la trouvez plus correcte.</div>
-
-<h3 id="Verbatim_offre_des_options_très_sympas">Verbatim offre des options très sympas</h3>
-
-<p>Verbatim offre des fonctionnalités intéressantes que vous pouvez voir dans la capture d'écran ci-dessous.</p>
-
-<p><a href="/@api/deki/files/5930/=Translate_Tab.png" title="Translate Tab.png"><img alt="Translate Tab.png" class="default internal" src="/@api/deki/files/5930/=Translate_Tab.png" style="height: 221px; width: 1113px;"></a></p>
-
-<ul>
- <li>L'icône <strong>Copy </strong>vous permet de copier directement le texte source en anglais dans la ligne de traduction.</li>
- <li>L'icône <strong>Google Translate</strong> vous permet d'importer directement la traduction à partir du service de Google.</li>
- <li>Les boutons <strong>Next</strong> et <strong>Previous</strong> vous permettent de naviguer entre les lignes à traduire.</li>
- <li>Vous pouvez atteindre une chaîne à traduire directement en insérant son numéro en bas de l'écran à gauche.</li>
- <li>Vous pouvez marquer une traduction comme <strong>Fuzzy</strong> si vous pensez qu'il est possible de l'améliorer. Cette marque permettra de la retrouver plus facilement plus tard et de la modifier. Notez que seules les chaînes soumises seront validées dans le dépôt de localisation, mais pas les chaînes fuzzy. Si des chaînes restent à l'état fuzzy, leur version source apparaîtront dans votre version localisée, en lieu et place de votre traduction.</li>
- <li>La partie <strong>Translator Comments</strong> vous permet d'ajouter des remarques à une chaîne précise.</li>
- <li>Lorsqu'il existe une forme singulière et une forme plurielle d'une chaîne, vous verrez deux zones de traduction, labellées respectivement <strong>Plural Form 0</strong> (singulier) et <strong>Plural Form 1</strong> (pluriel).</li>
-</ul>
-
-<h2 id="Possibilités_supplémentaires">Possibilités supplémentaires</h2>
-
-<p>Si vous avez l'autorité d'approuver les traductions, vous pourrez également accéder aux fonctionnalités suivantes.</p>
-
-<h3 id="Relire_les_traductions_suggérées">Relire les traductions suggérées</h3>
-
-<ol start="1">
- <li>Cliquez sur l'onglet <strong>Review</strong>. Vous verrez alors apparaître le nombre de chaînes en attente de révision pour chaque fichier <code>.po</code>.<a href="/@api/deki/files/5931/=Review_Tab1.png" title="Review Tab1.png"><img alt="Review Tab1.png" class="internal rwrap" src="/@api/deki/files/5931/=Review_Tab1.png?size=webview" style="float: right; height: 145px; width: 274px;"></a></li>
- <li>Sélectionnez <strong style="font-weight: bold;">Review</strong><strong> suggestions</strong> pour commencer à approuver les suggestions.</li>
- <li>Vous pouvez soit accepter la suggestion en cliquant sur le "V" vert ou la rejeter en cliquant sur le "X" rouge (voir capture d'écran de la section précédente).</li>
-</ol>
-
-<p>il est important de noter que seules les chaînes soumises apparaîtront dans vos pages localisées, pas les suggestions, ni les traductions fuzzy. Avant de valider votre projet localisé, vérifiez que toutes les chaînes aient bien été soumises.</p>
-
-<h3 id="Utiliser_VCS_avec_Verbatim">Utiliser VCS avec Verbatim</h3>
-
-<p>VCS (<strong>V</strong>ersion <strong>C</strong>ontrol <strong>S</strong>ystem) est le système de dépôt utilisé pour mettre à jour les chaînes des projets ou pour mettre en ligne le contenu traduit, selon le lien utilisé.</p>
-
-<p><img alt="VCS.png" class="internal rwrap" src="/@api/deki/files/5925/=VCS.png" style="float: right;">Pour publier vos traductions et voir vos modifications, cliquez sur le lien <strong>Commit to VCS</strong> en dessous de chaque nom de fichier. Comptez environ une heure avant de voir apparaître vos changements sur le site du projet.</p>
-
-<p>Pour mettre à jour vos fichiers <code>.po</code> avec de nouvelles traductions, cliquez sur le lien <strong>Update from VCS</strong> en dessous de chaque nom de fichier.</p>
-
-<p> </p>
-
-<div class="note"><br>
-<strong>Remarque </strong>: Certains projets sont mis à jour automatiquement durant la nuit, alors que d'autres nécessitent une mise à jour manuelle pour recevoir du nouveau contenu. Faites-y très attention car cela peut influencer votre travail.</div>
-
-<h2 id="Traduire_les_fichiers_de_Verbatim_avec_une_application_externe">Traduire les fichiers de Verbatim avec une application externe</h2>
-
-<p>Dans l'onglet <strong>Translate</strong>, vous avez la possibilité d'exporter les fichiers <code>.po</code> et <code>.xliff</code> et de les traduire avec une application externe (p.ex. un éditeur de texte ou une mémoire de traduction).</p>
-
-<ol>
- <li>Pour télécharger le fichier <code>.po</code>, cliquez sur le lien <strong>Download </strong>sous chaque nom de fichier, pour le fichier .<code>xliff</code>, cliquez sur le lien <strong>Download XLIFF</strong>.</li>
- <li>Traduisez les chaînes avec l'outil de votre choix.</li>
-</ol>
-
-<p>Lorsque le fichier est traduit, vous devez le renvoyer sur le serveur de Verbatim, vous pouvez le faire à partir de l'onglet<strong> Translate</strong>.</p>
-
-<ol>
- <li>Naviguez jusqu'à la partie <strong>Upload File</strong> à la fin de la liste de fichiers.</li>
- <li>Cliquez sur le bouton <strong>Browse</strong> et sélectionnez le fichier que vous souhaitez envoyer.</li>
- <li>Sélectionnez un mode d'envoi selon les options disponibles.</li>
- <li>Cliquez sur <strong>Upload</strong>.</li>
-</ol>
-
-<div class="warning">
-<p class="warning"><strong>Important</strong> : Dans le passé, il y a eu quelques problèmes lorsque certains membres de la communauté mettaient à jour leurs sources alors que d'autres traduisaient en même temps l'ancienne version de ces mêmes sources. Ce faisant, certaines chaînes peuvent échapper au processus de traduction et apparaître en langue source dans un projet localisé. Coordonnez ces mises à jour manuelle entre les membres de votre communauté pour éviter ce problème.</p>
-</div>
-
-<h2 id="Voilà_on_y_est_!">Voilà, on y est !</h2>
-
-<p>Waouw ! Nous y sommes ! Il est temps d'appliquer ce que vous avez appris et d'aider les gens de votre région à comprendre et connaître Mozilla. Faites-vous plaisir et n'hésitez pas à nous <a class="link-mailto" href="mailto:l10n-drivers@mozilla.com" title="l10n-drivers@mozilla.com">signaler</a> le moindre problème, nous serons ravis de vous aider.</p>
-
-<p> </p>
-
-<p><a href="/fr/docs/MDN/Contribute/Localize/Translating_pages" lang="fr-FR" title="Traduire les pages MDN">Retour : Traduire les pages MDN</a></p>
diff --git a/files/fr/mozilla/marketplace/index.html b/files/fr/mozilla/marketplace/index.html
deleted file mode 100644
index cbe5fffb5e..0000000000
--- a/files/fr/mozilla/marketplace/index.html
+++ /dev/null
@@ -1,127 +0,0 @@
----
-title: Firefox Marketplace
-slug: Mozilla/Marketplace
-tags:
- - Applications
- - Débutant
- - Firefox OS
- - Introduction
- - Landing
- - Marketplace
-translation_of: Archive/Mozilla/Marketplace
----
-<div class="summary">Le <em>Marketplace</em> Firefox est un marché en ligne pour les applications web. <span class="seoSummary">Dans cette section de MDN, vous trouverez les informations relatives à la préparation et à la publication d'applications sur le <em>Marketplace</em> Firefox. Vous pourrez en savoir plus sur la bonne construction d'une application, les façons de la diffuser et de la mettre à jour et vous trouverez également des informations à propos des API permettant d'exploiter les fonctionnalités du <em>Marketplace</em>.</span></div>
-
-<div class="column-container">
-<p>Grâce aux technologies web standards et à certains outils, le <a href="https://marketplace.firefox.com/"><em>Marketplace </em>Firefox</a> vous permet de publier <a href="/fr/Apps">des applications <em>open web</em></a>. Ces applications peuvent être empaquetées pour être utilisées au sein de Firefox OS ou bien être hébergées sur votre propre serveur web. Les applications publiées sont disponibles pour l'ensemble des utilisateurs de Firefox OS. Le <em>Marketplace</em> permet de découvrir les différentes applications par catégories, via un outil de recherche ou via les applications du moment. Les utilisateurs peuvent ainsi installer des applications gratuites immédiatement ou des applications payantes avec le paiement via l'opérateur téléphonique.</p>
-</div>
-
-<div class="row topicpage-table">
-<div class="section">
-<h2 class="Community" id="Les_clés_du_succès"><a href="/fr/Marketplace/Prepare">Les clés du succès</a></h2>
-
-<dl>
- <dd>Que ce soit pour le plaisir ou dans un cadre plus professionnel, les utilisateurs doivent pouvoir découvrir votre application, l'utiliser et en profiter. Dans cette section, nous voyons comment construire une communauté d'utilisateurs satisfaits.</dd>
-</dl>
-
-<h2 class="Community" id="Les_options_de_publication"><a href="/fr/Marketplace/Options">Les options de publication</a></h2>
-
-<dl>
- <dd>Empaquetées ou hébergées ? Telle est la question. On voit ici comment rendre l'application disponible et les différentes options envisageables afin qu'elle soit également utilisable sur Android et les ordinateurs de bureau (en plus de Firefox OS).</dd>
-</dl>
-
-<h2 class="Community" id="Publier_des_applications"><a href="/fr/Marketplace/Publishing/Introduction">Publier des applications</a></h2>
-
-<dl>
- <dd>Ici, on voit comment publier une application sur le <em>Marketplace</em> Firefox (l'envoi initial, le processus de revue, la mise à jour, le suivi des performances et la gestion des retours utilisateur).</dd>
-</dl>
-</div>
-
-<div class="section">
-<dl>
-</dl>
-
-<h2 class="Tools" id="Outils_de_développement">Outils de développement</h2>
-
-<dl>
- <dt><a href="/fr/Marketplace/APIs">Les bibliothèques et API du Firefox Marketplace</a></dt>
- <dd>Un aperçu et des liens à propos des API et bibliothèques disponibles pour ajouter aux applications des fonctionnalités relatives au <em>Marketplace</em>.</dd>
- <dt><a href="/fr/Apps/Tools_and_frameworks/App_developer_tools">Les outils destinés aux développeurs d'application</a></dt>
- <dd>Une liste exhaustive d'outils qui peuvent être utilisés pour développer des applications web efficacement.</dd>
- <dt><a href="/fr/docs/Tools/WebIDE">WebIDE</a></dt>
- <dd>L'outil principal pour tester, déployer et déboguer des applications Firefox OS grâce au <a href="/fr/docs/Tools/Firefox_OS_Simulator">simulateur Firefox OS</a> ou sur un appareil Firefox OS.</dd>
-</dl>
-</div>
-</div>
-
-<h2 id="Subnav">Subnav</h2>
-
-<ol>
- <li><a href="/fr/Marketplace/Prepare">Les clés du succès</a>
-
- <ol>
- <li><a href="/fr/Marketplace/Prepare/Introduction">Introduction</a></li>
- <li><a href="/fr/Marketplace/Prepare/Deciding_what_to_build">Quoi construire ?</a></li>
- <li><a href="/fr/Marketplace/Prepare/Getting_to_know_your_users">Apprendre à connaître les utilisateurs</a></li>
- <li><a href="/fr/Marketplace/Prepare/Choosing_your_business_model">Choisir le modèle économique</a></li>
- <li><a href="/fr/Marketplace/Prepare/Localizing_your_apps">Traduire son application</a></li>
- <li><a href="/fr/Marketplace/Prepare/Promoting_your_app">Promouvoir son application</a></li>
- <li><a href="/fr/Marketplace/Prepare/Creating_your_community">Créer une communauté</a></li>
- </ol>
- </li>
- <li><a href="/fr/Marketplace/Options">Les options de publication</a>
- <ol>
- <li><a href="/fr/Marketplace/Options/Introduction">Introduction</a></li>
- <li><a href="/fr/Marketplace/Options/Packaged_apps">Les applications empaquetées</a></li>
- <li><a href="/fr/Marketplace/Options/Hosted_apps">Les applications hébergées</a></li>
- <li><a href="/fr/Marketplace/Options/Packaged_or_hosted">Empaquetée ou hébergée ?</a></li>
- <li><a href="/fr/Marketplace/Options/Mobile_optimized_websites">Les sites web optimisés pour le mobilewebsites</a></li>
- <li><a href="/fr/Marketplace/Options/Self_publishing">Publier soi-même son application</a></li>
- </ol>
- </li>
- <li><a href="/fr/Marketplace/Publishing">Le processus de publication</a>
- <ol>
- <li><a href="/fr/Marketplace/Publishing/Introduction">Introduction</a></li>
- <li><a href="/fr/Marketplace/Publishing/Submission_checklist">Le <em>checklist</em> pour l'envoi</a></li>
- <li><a href="/fr/Marketplace/Publishing/Marketplace_review_criteria" title="An explanation of the criteria an app must meet in order to be published on the Firefox Marketplace">Les critères de revue du <em>Marketplace</em></a></li>
- <li><a href="/fr/Marketplace/Publishing/Marketplace_showcase_criteria">Un exemple d'illustration</a></li>
- <li><a href="/fr/Marketplace/Publishing/Adding_a_subdomain" title="For security reasons, each app must have its own domain (or subdomain) on the Web. This article covers how to go about creating a subdomain for your app.">Ajouter un sous-domaine pour une application</a></li>
- <li><a href="/fr/Marketplace/Publishing/Policies_and_Guidelines">Règles et lignes directrices</a>
- <ol>
- <li><a href="/fr/Marketplace/Publishing/Policies_and_Guidelines/Introduction">Introduction</a></li>
- <li><a href="/fr/Marketplace/Publishing/Policies_and_Guidelines/Marketplace_screenshot_criteria" title="Some guidelines on how to create an effective screenshot for marketplace submission">Capture d'écran pour les critères</a></li>
- <li><a href="/fr/Marketplace/Publishing/Policies_and_Guidelines/Privacy_policies" title="Your users' privacy is very important, so you need to develop and adhere to a reasonable privacy policy to engender their trust. This article provides a guide to developing privacy policies.">Politique de confidentialité</a></li>
- <li><a href="/fr/Marketplace/Publishing/Policies_and_Guidelines/Testing_and_troubleshooting">Test et débogage des applications</a></li>
- </ol>
- </li>
- </ol>
- </li>
- <li><a href="/fr/Marketplace/Publishing/Submit">Soumettre son application</a>
- <ol>
- <li><a href="/fr/Marketplace/Publishing/Submit/Overview">Aperçu</a></li>
- <li><a href="/fr/Marketplace/Publishing/Submit/Sign-in_to_your_developer_account" title="This step-by-step guide will help you successfully submit your app to the Firefox Marketplace.">Première étape : s'inscrire</a></li>
- <li><a href="/fr/Marketplace/Publishing/Submit/Load_your_app">Deuxième étape : charger l'application</a></li>
- <li><a href="/fr/Marketplace/Publishing/Submit/Enter_your_apps_details">Troisième étape : lister les détails</a></li>
- <li><a href="/fr/Marketplace/Publishing/Submit/Next_steps">Quatrième étape : les prochaines étapes</a></li>
- <li><a href="/fr/Marketplace/Publishing/Submit/Rating_Your_Content">Cinquième étape : le système de notation des applications</a></li>
- <li><a href="/fr/Marketplace/Publishing/Submit/Define_your_team">Sixième étape : définir les membres d'une équipe</a></li>
- <li><a href="/fr/Marketplace/Publishing/Submit/Edit_other_localizations">Septième étape : éditer les localisations</a></li>
- </ol>
- </li>
- <li><a href="/fr/Marketplace/Publishing/Managing_your_apps">Gérer et mettre à jour une application publiée</a>
- <ol>
- <li><a href="/fr/Marketplace/Publishing/Managing_your_apps/Introduction_Managing_your_apps">Introduction</a></li>
- <li><a href="/fr/Marketplace/Publishing/Managing_your_apps/Status___Versions">L'état de l'application</a></li>
- <li><a href="/fr/Marketplace/Publishing/Updating_apps" title="Information about how both hosted and packaged app updates are handled, and what you need to do to ensure that your app properly supports updating.">Mettre à jour une application</a></li>
- <li><a href="/fr/Marketplace/Publishing/Managing_your_apps/App_Statistics">Les statistiques d'une application</a></li>
- </ol>
- </li>
- <li><a href="/fr/docs/Mozilla/Marketplace/Add-on_submission">Soumettre un module complémentaire</a>
- <ol>
- <li><a href="/fr/docs/Mozilla/Marketplace/Add-on_submission">Un aperçu de l'envoi</a></li>
- <li><a href="/fr/docs/Mozilla/Marketplace/Add-on_submission/Review_criteria">Les critères de revue pour un module complémentaire</a></li>
- </ol>
- </li>
- <li><a href="/fr/Marketplace/APIs">API et bibliothèques</a></li>
- <li><a href="/fr/Marketplace/FAQ">FàQ sur le <em>Marketplace </em>Firefox</a></li>
-</ol>
diff --git a/files/fr/mozilla/marketplace/index/index.html b/files/fr/mozilla/marketplace/index/index.html
deleted file mode 100644
index 84ea48e865..0000000000
--- a/files/fr/mozilla/marketplace/index/index.html
+++ /dev/null
@@ -1,8 +0,0 @@
----
-title: Index
-slug: Mozilla/Marketplace/Index
-tags:
- - Index
-translation_of: Archive/Mozilla/Marketplace/Index
----
-<p>{{Index("/fr/Marketplace")}}</p>
diff --git a/files/fr/mozilla/marketplace/monetisation/index.html b/files/fr/mozilla/marketplace/monetisation/index.html
deleted file mode 100644
index 64edbd3706..0000000000
--- a/files/fr/mozilla/marketplace/monetisation/index.html
+++ /dev/null
@@ -1,73 +0,0 @@
----
-title: Monétisation
-slug: Mozilla/Marketplace/Monetisation
-tags:
- - Applications
- - Firefox OS
- - moentization
- - paiement
-translation_of: Archive/Marketplace/Monetization
----
-<div class="summary">
-<p><span id="result_box" lang="fr"><span class="hps">Vous avez travaillé dur</span> <span class="hps">pour coder</span><span class="hps"> votre</span> <span class="hps">dernière application</span></span>, <span id="result_box" lang="fr"><span class="hps">mais comment</span> <span class="hps">pouvez-vous obtenir</span> <span class="hps">quelque chose en retour</span> <span class="hps">lors de la publication </span></span>? Cette section présente tous les informations dont vous aurez besoin pour implémenter le <span class="short_text" id="result_box" lang="fr"><span class="hps">paiement</span> <span class="hps">d'application</span></span>, <span id="result_box" lang="fr"><span class="hps">que ce soit</span> <span class="hps">les paiements</span> <span class="hps">depuis le marketplace</span> <span class="hps">ou des paiements</span> <span class="hps">dans l'application</span></span>.</p>
-</div>
-
-<div class="row topicpage-table">
-<div class="section">
-<dl>
- <dt><a href="https://developer.mozilla.org/en-US/docs/Apps/Tutorials/General/Profiting_from_your_app">Tirer profit de votre application</a></dt>
- <dd><span id="result_box" lang="fr"><span class="hps">Ce</span> <span class="hps">guide détaillé</span> <span class="hps">contient</span> <span class="hps">des discussions</span> <span class="hps">préliminaires</span> <span class="hps">sur la façon de</span> <span class="hps">monétiser vos</span> <span class="hps">applications</span></span>, <span id="result_box" lang="fr"><span class="hps">y compris</span> <span class="hps">les applications payantes</span><span>, les prix et</span> la gestion d<span class="hps">es paiements</span></span>.</dd>
- <dt><a href="/en-US/Marketplace/Monetization/App_payments_guide">Guide du paiement d'application</a></dt>
- <dd><span id="result_box" lang="fr"><span class="hps">Cet article couvre les</span> aspects <span class="hps">techniques</span> <span class="hps">des applications</span> <span class="hps">payées</span></span>.</dd>
- <dt><a href="/en-US/docs/Web/Apps/Publishing/In-app_payments">Paiements dans les application</a></dt>
- <dd><span id="result_box" lang="fr"><span class="hps">Un guide détaillé</span> <span class="hps">pour</span> <span class="hps">la mise en œuvre</span> <span class="hps">d</span><span class="hps">es paiements dans les</span> <span class="hps">applications</span> <span class="hps">dans votre application</span> <span class="hps">Web</span></span>.</dd>
- <dt><a href="/en-US/docs/Web/Apps/Publishing/Validating_a_receipt">Valider un reçu</a></dt>
- <dd><span id="result_box" lang="fr"><span class="hps">Un guide pour</span> <span class="hps">savoir quand </span><span class="hps">et</span> <span class="hps">comment faire</span> <span class="hps">valider</span> <span class="hps">le reçu</span> de paiement <span class="hps">de votre application</span></span>, que<span id="result_box" lang="fr"><span class="hps"> vous vouliez</span> <span class="hps">mettre en œuvre</span> <span class="hps">la validation</span> <span class="hps">vous-même</span> <span class="hps">ou</span> <span class="hps">utiliser une bibliothèque</span> <span class="hps">préexistante</span></span>.</dd>
- <dt><a href="/en-US/docs/Web/Apps/Publishing/App_pricing" title="/en-US/docs/Web/Apps/Publishing/App_pricing">Guide des prix</a></dt>
- <dd><span id="result_box" lang="fr"><span class="hps">Un</span> <span class="hps">tour d'horizon des</span> <span class="hps">points de</span> <span class="hps">fixation du prix que</span><span> vous pouvez choisir</span> <span class="hps">pour vos</span> <span class="hps">applications payantes</span></span>, <span id="result_box" lang="fr"><span class="hps">et</span> <span class="hps">comment ceux-ci</span> <span class="hps">varient selon les</span> <span class="hps alt-edited">différentes devises</span></span>, <span id="result_box" lang="fr"><span class="hps">ainsi que des informations</span> <span class="hps">utiles sur</span> <span class="hps">la gestion</span><span class="hps"> des paiements</span></span>.</dd>
- <dt><a href="/en-US/docs/Web/Apps/Publishing/Payments_Status" title="/en-US/docs/Web/Apps/Publishing/Payments_Status">Statuts de paiements</a></dt>
- <dd>Un résumé des pays qui bénéficient de nos services de paiement — <span id="result_box" lang="fr"><span class="hps">essentiellement</span><span>,</span> <span class="hps">où</span> <span class="hps">peuvent</span> <span class="hps">être distribuées</span> les <span class="hps">applications payantes</span></span>?</dd>
-</dl>
-</div>
-
-<div class="section">
-<h5 class="Tools" id="Tools" name="Tools">Tools for app developers</h5>
-<ul>
- <li><a href="https://marketplace.firefox.com/developers/">Visit Firefox Marketplace Developer Hub</a></li>
- <li><a href="/en-US/docs/Mozilla/Firefox_OS/Using_Firefox_OS_Simulator">Firefox OS Simulator</a></li>
- <li><a href="/en-US/docs/Apps/App_developer_tools">App developer tools</a></li>
-</ul>
-<h5 class="Documentation" id="Documentation" name="Documentation">Technology reference documentation</h5>
-<div class="twocolumns">
- <ul>
- <li><a href="/en-US/docs/Web/CSS">CSS</a></li>
- <li><a href="/en-US/docs/DOM">DOM</a></li>
- <li><a href="/en-US/docs/Web/HTML">HTML</a></li>
- <li><a href="/en-US/docs/JavaScript">JavaScript</a></li>
- <li><a href="/en-US/docs/WebAPI">WebAPI</a></li>
- <li><a href="/en-US/docs/Web/WebGL">WebGL</a></li>
- <li><a href="/en-US/docs/SVG">SVG</a></li>
- <li><a href="https://www.mozilla.org/en-US/apps/">Open Web Apps overview site</a></li>
- <li><a href="https://wiki.mozilla.org/Apps">Apps project wiki page</a></li>
- </ul>
-</div>
-<h5 class="Community" id="Community" name="Community">Getting help from the community</h5>
-<p>If you still aren't sure how to do what you're trying to get done, feel free to join the conversation!</p>
-<ul>
- <li>Consult the webapps forum: <ul>
- <li><a href="https://lists.mozilla.org/listinfo/dev-webapps"> Liste de diffusion</a></li>
-
-
- <li><a href="http://groups.google.com/group/mozilla.dev.webapps"> newsgroup</a></li>
- <li><a href="http://groups.google.com/group/mozilla.dev.webapps/feeds"> Flux de syndication</a></li>
-</ul>
- <ul>
- <li>Ask your question on the Open Web Apps IRC channel: <a class="link-irc" href="irc://irc.mozilla.org/openwebapps">#openwebapps</a></li>
- </ul>
- </li>
-</ul>
-<p><span class="alllinks"><a href="http://www.catb.org/~esr/faqs/smart-questions.html" rel="external">Don't forget about the <em>netiquette</em>...</a></span></p>
-</div>
-</div>
-
-<p> </p>
diff --git a/files/fr/mozilla/marketplace/options/creating_a_store/index.html b/files/fr/mozilla/marketplace/options/creating_a_store/index.html
deleted file mode 100644
index 0543168c72..0000000000
--- a/files/fr/mozilla/marketplace/options/creating_a_store/index.html
+++ /dev/null
@@ -1,66 +0,0 @@
----
-title: Creating your own store
-slug: Mozilla/Marketplace/Options/Creating_a_store
-translation_of: Archive/Marketplace/Options/Creating_a_store
----
-<div class="summary">
-<p><span id="result_box" lang="fr"><span class="hps">La méthode</span> <span class="hps">d'installation et de</span> <span class="hps">gestion des</span> <span class="hps">applications</span> <span class="hps">dans Firefox</span> <span class="hps">OS</span><span>,</span> <span class="hps">Firefox</span> <span class="hps">pour Android</span> <span class="hps">et</span> <span class="hps">Firefox</span> <span class="hps">pour PC de bureau</span> <span class="hps">est indépendant</span> <span class="hps">de</span> <span class="hps">Firefox</span> <span class="hps">Marketplace.</span> <span class="hps">Cela ouvre</span> <span class="hps">la possibilité</span> <span class="hps">pour vous de</span> <span class="hps">non seulement</span> <span class="hps atn">auto-</span><span>publier</span> <span class="hps">des applications</span><span>,</span> <span class="hps">mais aussi</span> <span class="hps">pour créer</span> <span class="hps">et</span> <span class="hps">héberger votre propre</span> <span class="hps">marché</span><span>.</span> <span class="hps">En fin de compte</span><span>, vous pouvez aussi</span> <span class="hps">mettre en place un</span> <span class="hps">marché</span> <span class="hps">indépendant en utilisant</span> <span class="hps">le logiciel</span> <span class="hps">open source</span><span>.</span> <span class="hps">Cette page décrit</span> <span class="hps">les options</span> <span class="hps">et</span> <span class="hps">donne un aperçu</span> <span class="hps">de</span> <span class="hps">la mise en œuvre</span> <span class="hps">de chaque</span><span>.</span></span></p>
-</div>
-
-<p><span id="result_box" lang="fr"><span class="hps">vos options</span><br>
- <br>
- <span class="hps">Les trois</span> <span class="hps">principales</span> <span class="hps">options que vous</span> <span class="hps">pouvez utiliser pour</span> <span class="hps">créer votre propre boutique</span> <span class="hps">sont</span><span>:</span><br>
- <br>
-      <span class="hps">Procédé</span> <span class="hps">d'annuaire</span><br>
-      <span class="hps">méthode de</span> <span class="hps">magasin</span><br>
-      <span class="hps">remplir</span> <span class="hps">la mise en œuvre</span> <span class="hps">du marché</span><br>
- <br>
- <span class="hps">Ces options sont décrites</span> <span class="hps">plus en détail</span> <span class="hps">ci-dessous.</span><br>
- <br>
- <span class="hps">Remarque:</span> <span class="hps">les applications</span> <span class="hps">peuvent être limités à</span> <span class="hps">l'installation</span> <span class="hps">à partir d'une</span> <span class="hps">liste des</span> <span class="hps">origines</span> <span class="hps">autorisés avec</span> <span class="hps">la</span> <span class="hps">installs_allowed_from</span> <span class="hps">bien</span> <span class="hps">manifeste</span><span>.</span> <span class="hps">Vous aurez besoin de</span> <span class="hps">confirmer que cette</span> <span class="hps">propriété n'est pas définie</span> <span class="hps">pour exclure</span> <span class="hps">l'origine de</span> <span class="hps">votre magasin</span> <span class="hps">lors de l'inscription</span> <span class="hps">applications</span><span>.</span></span></p>
-
-<h3 id="Directory_method">Directory method</h3>
-
-<p>Here you create a directory of apps served by the Firefox Marketplace, making use of the <a href="http://firefox-marketplace-api.readthedocs.org/en/latest/">Firefox Marketplace API</a> to retrieve information on the apps. You would then need to implement your own Web pages to display details of the apps and trigger their installation. With this method you can serve any app that is available on Firefox Marketplace, but you won't generate a revenue stream for paid apps.<br>
- You can find an example of this method of store creation in <a href="http://thecount.paas.allizom.org/home">TheCount</a>. At the time of writing, to see the example in action click <a href="http://thecount.paas.allizom.org/listing/num_ratings/30">apps with at least 30 ratings</a> and open any of the listed apps. In the app's details page you'll see an install button directly below the title, as shown below.</p>
-
-<p><img alt="The installation button for an app with at least 30 ratings in TheCount, a stats and reporting website. " height="350" src="https://mdn.mozillademos.org/files/7917/TheCount_Install_Button.png" width="718"></p>
-
-<p>You can find the code used to implement the button in <a href="https://github.com/wfwalker/thecount">the project's Github repository</a>.</p>
-
-<h3 id="Store_method">Store method</h3>
-
-<p>Here you work independently of the Firefox Marketplace providing a list of self-published apps that are installed using {{ domxref("Apps.install") }} or {{ domxref("Apps.installPackage") }}. The self-published apps can either be hosted by you or another developer. This method limits you to apps that can be <a href="/en-US/Marketplace/Options/Self_publishing">self-published</a>, that is, you cannot serve <a href="/en-US/Marketplace/Options/Packaged_apps">Packaged Apps</a> using <a href="/en-US/Apps/Build/App_permissions">Privileged and Certified APIs</a>.</p>
-
-<h3 id="Full_Marketplace_implementation">Full Marketplace implementation</h3>
-
-<p>Here you implement the various components of Marketplace (<a href="https://github.com/mozilla/zamboni">zamboni</a> plus other components such as <a href="https://github.com/mozilla/solitude">Solitude</a> and <a href="https://github.com/mozilla/webpay">WebPay</a>, if you want to implement payments). For more information, please see the <a href="http://zamboni.readthedocs.org/en/latest/index.html">zamboni documentation</a>.</p>
-
-<h2 id="Useful_APIs">Useful APIs</h2>
-
-<p>When implementing the directory or store methods, you'll find the following APIs of use.</p>
-
-<h3 id="Interacting_with_Marketplace">Interacting with Marketplace</h3>
-
-<p>When using the directory method you'll need to access and use details of the apps available in Marketplace. The key APIs for these tasks are:</p>
-
-<ul>
- <li>App lists — <a href="http://firefox-marketplace-api.readthedocs.org/en/latest/topics/search.html#search-api"><code>GET /api/v1/apps/search/</code></a> — this API enables you to get a list of Marketplace apps based on a query string, similar to the query strings you see when searching the Web version of Marketplace.</li>
- <li>App's details — <a href="http://firefox-marketplace-api.readthedocs.org/en/latest/topics/apps.html#get--api-v1-apps-app-%28int-id%29|%28string-slug%29-"><code>GET /api/v1/apps/app/</code></a> — this API enables you to get the details of an individual app, such as its author and icons.</li>
-</ul>
-
-<p>To find more information on these APIs and others that might be useful, please see the <a href="http://firefox-marketplace-api.readthedocs.org/en/latest/">Firefox Marketplace API</a> documentation.</p>
-
-<h3 id="Managing_apps_on_a_device">Managing apps on a device</h3>
-
-<p>You'll probably be familiar with {{ domxref("Apps.install") }} or {{ domxref("Apps.installPackage") }} already, the APIs used to install Packaged  Apps and Hosted Apps. These APIs are part of the {{ domxref("navigator.mozApps") }} JavaScript object, which includes several other APIs that can communicate with a Firefox OS device or browser to gather information on installed apps.</p>
-
-<p>For example, the <a href="/en-US/docs/Web/API/Apps.getInstalled"><code>navigator.mozApps.getInstalled()</code></a> method enables you to get a list of the apps that were installed in the current user agent by your domain. You'll not see apps installed by other domains, only the ones that you put there. You can use this method to determine whether the user's installed apps match your expectations, or to implement a "resync" feature if the user signs into your site from a new profile.</p>
-
-<p>For more details, please see <a href="/en-US/Apps/Developing/JavaScript_API">App Installation and Management APIs.</a></p>
-
-<h2 id="Other_information">Other information</h2>
-
-<p>If you're delivering Hosted Apps, you can easily maintain a session with the user to track preferences, proof-of-purchase, or other additional services. If you're providing services to a remotely Hosted App, you'll need to do some additional work to support a distributed authentication system.</p>
-
-<div id="dc_vk_code" style="display: none;"> </div>
diff --git a/files/fr/mozilla/marketplace/options/index.html b/files/fr/mozilla/marketplace/options/index.html
deleted file mode 100644
index 43e9966338..0000000000
--- a/files/fr/mozilla/marketplace/options/index.html
+++ /dev/null
@@ -1,21 +0,0 @@
----
-title: Your publication options
-slug: Mozilla/Marketplace/Options
-tags:
- - Structure only
- - TopicStub
-translation_of: Archive/Mozilla/Marketplace/Options/Introduction
----
-<p>Dans <a href="/en-US/Marketplace/Options/Introduction">cette section</a>, vous découvrirez :</p>
-
-<ul>
- <li>Les formats dans lesquels vous pouvez fournir des applications Web ouvertes ‐ sous forme d'application <a href="/en-US/Marketplace/Options/Packaged_apps">packagée</a> ou <a href="/en-US/Marketplace/Options/Hosted_apps">hébergée</a> ‐ ainsi que des détails sur la <a href="/en-US/Marketplace/Options/Packaged_or_hosted_">façon de faire le choix entre ces formats</a>.</li>
- <li>Comment les fonctionnalités d'<a href="/en-US/Marketplace/Options/Open_web_apps_for_android">Open Web Apps pour Android</a> et d'<a href="/en-US/Marketplace/Options/Open_web_apps_for_desktop">Open Web Apps pour Desktop</a> fournissent vos applications au appareils Android et aux PC Linux / Mac / Windows.</li>
- <li>Informations sur le choix entre des périphériques avec différentes quantités de mémoire.</li>
- <li>Vos options pour <a href="/en-US/Marketplace/Options/Self_publishing">publier des applications vous-même</a>, en dehors de Firefox Marketplace.</li>
- <li>Comment vous pouvez <a href="/en-US/Marketplace/Options/Creating_a_store">créer votre propre Marketplace</a>.</li>
-</ul>
-
-<div class="warning">
-<p>Le contenu de cette section est toujours en cours de développement.</p>
-</div>
diff --git a/files/fr/mozilla/marketplace/options/introduction/index.html b/files/fr/mozilla/marketplace/options/introduction/index.html
deleted file mode 100644
index 51cee4b8c5..0000000000
--- a/files/fr/mozilla/marketplace/options/introduction/index.html
+++ /dev/null
@@ -1,25 +0,0 @@
----
-title: Introduction — vos options de publications
-slug: Mozilla/Marketplace/Options/Introduction
-translation_of: Archive/Mozilla/Marketplace/Options/Introduction
----
-<div class="summary">
-<p><span id="result_box" lang="fr"><span class="hps">Le</span> <span class="hps">Marketplace de</span> <span class="hps">Firefox</span> <span class="hps">fournit</span> <span class="hps">un canal</span> <span class="hps">à travers lequel vous</span> <span class="hps">pouvez publier vos</span> <span class="hps">applications</span> <span class="hps">et</span> <span class="hps">les rendre facilement</span> <span class="hps">détectables</span> <span class="hps">par les utilisateurs</span> <span class="hps">de</span> <span class="hps">Firefox</span> <span class="hps">OS</span><span>.</span> <span class="hps">Cependant, ce n'est</span> <span class="hps">pas votre seule</span> <span class="hps">option pour rendre</span> disponibles <span class="hps">vos</span> <span class="hps">applications</span><span>.</span> Cette section vous aidera à comprendre les idées de base sur les formats utilisables pour les applications et les diverses options pour leur publication.</span></p>
-</div>
-
-<h2 id="Vos_options_de_publications">Vos options de publications</h2>
-
-<dl>
- <dt><a href="https://developer.mozilla.org/fr/Marketplace/Options/Packaged_apps">Application packagée</a></dt>
- <dd>Choisissez votre méthode préférée de<span id="result_box" lang="fr"><span class="hps"> livraison pour vos</span> <span class="hps">applications</span> <span class="hps">-</span> </span><span lang="fr"><span class="hps">une option qui vous offre l'accès à des API privilégiées et sécurisées</span></span></dd>
- <dt><a href="/en-US/Marketplace/Options/Hosted_apps">Hosted apps</a></dt>
- <dd>Découvrez comment rendre vos applications disponibles à partir d'un serveur, tout en donnant aux utilisateurs les avantages d'une application installée.</dd>
- <dt><a href="/en-US/Marketplace/Options/Packaged_or_hosted_">Packaged or hosted?</a></dt>
- <dd><span id="result_box" lang="fr"><span class="hps">Utilisez cette liste</span> de contrôle <span class="hps">pour déterminer</span> <span class="hps">le format</span> <span class="hps">qui</span> <span class="hps">convient le mieux à</span><span class="hps"> votre application</span><span>.</span></span></dd>
- <dt><a href="/fr/Marketplace/Options/Self_publishing">Auto-publication d'application</a></dt>
- <dd>Dans certains cas, vous voudrez peut-être publier vos applications en dehors de Firefox Marketplace, peut-être pour les rendre disponibles aux tests ou les distribuer dans votre entreprise. Découvrez les options que vous avez et comment les mettre en œuvre.</dd>
- <dt><a href="https://developer.mozilla.org/en-US/docs/Mozilla/Marketplace/Options/Mobile_optimized_websites">Mobile-optimized websites</a></dt>
- <dd>Le Marketplace Firefox a la possibilité de répertorier les sites web optimisés pour mobile (MOW) - simplement des sites web qui fonctionnent bien dans les appareils et plates-formes mobiles - juste à côté des applications. Cet article explique ce que cette nouvelle fonctionnalité implique, comment vous pouvez l'utiliser et ce que les différentes phases de publication future mettront à disposition.</dd>
-</dl>
-
-<p> </p>
diff --git a/files/fr/mozilla/marketplace/options/open_web_apps_for_android/index.html b/files/fr/mozilla/marketplace/options/open_web_apps_for_android/index.html
deleted file mode 100644
index 3a37fc5c26..0000000000
--- a/files/fr/mozilla/marketplace/options/open_web_apps_for_android/index.html
+++ /dev/null
@@ -1,216 +0,0 @@
----
-title: Open Web Apps for Android
-slug: Mozilla/Marketplace/Options/Open_web_apps_for_android
-translation_of: Archive/Marketplace/Options/Open_web_apps_for_android
----
-<div class="summary">
-<p>Users of Firefox for Android install Marketplace apps as 'normal' Android apps, gaining the benefit of powerful open web features. This ability is enabled by the creation of APKs by the APK Factory. Installed apps are run by the <strong>Web Runtime for Android,</strong> which is included in Firefox for Android. By making your apps accessible to Firefox for Android users, you gain an additional distribution opportunity, expanding the potential audience for your work.</p>
-</div>
-
-<h2 id="What_is_Open_Web_Apps_for_Android">What is Open Web Apps for Android?</h2>
-
-<p>Open Web Apps for Android enables free Marketplace apps to be packaged into an APK (Android installation package), which is then installed and run in the same way as any other Android app. The APK package consists of web content (in the case of packaged apps) or a pointer to web content (in the case of hosted apps). This content is then enclosed in a thin Java/Android wrapper, which provides the integration with the Android OS. Once installed on an Android device the app is executed by Web Runtime for Android, a component of Firefox for Android.</p>
-
-<p>These packages are created by the <a href="https://github.com/mozilla/apk-factory-service">APK Factory Service</a>, which is run as a web service by Marketplace. The APK Factory Service makes use of the <a href="https://github.com/mozilla/apk-factory-library">APK Factory Library</a> to create the actual package and the <a href="https://github.com/mozilla/apk-signer">APK Signer</a> to digitally sign the APK. This service is available to <a href="/en-US/Marketplace/Publishing/Creating_a_store">your own Marketplace</a>, should you choose to create one.</p>
-
-<p>You don't need any knowledge of Android development, or to take any extra development steps, to use Open Web Apps for Android: you simply select the option for distribution to Firefox Mobile or Firefox Tablet when submitting your apps to the <a href="https://marketplace.firefox.com/">Firefox Marketplace</a>.</p>
-
-<div class="note">
-<p><strong>Note</strong>: Open Web Apps for Android provides support for hosted apps in Firefox for Android xx or later, packaged apps are supported in Firefox for Android 29 or later. Only free apps are available for Android from the Firefox Marketplace at this time.</p>
-</div>
-
-<p>Web Runtime for Android supports 12 APIs to access device capabilities, such as vibration, geolocation, and battery status. You can see a <a href="https://wiki.mozilla.org/WebAPI#APIs">complete list of supported APIs here</a>: APIs showing "A" under "Availability" are those APIs available on Android, with green cells indicating that the API is available in full. You can also mouseover individual cells to get tooltips containing more information.</p>
-
-<p>Web Runtime for Android will continue to add support for other APIs in future releases. Some of the APIs planned are:</p>
-
-<ul>
- <li>Alarm API</li>
- <li>SimplePush API</li>
- <li>Web Activities</li>
-</ul>
-
-<div class="note">
-<p><strong>Note</strong>: Android users may be using devices with higher resolutions, greater pixel densities (DPI), and larger screen sizes than those found on Firefox OS devices. Apps that haven't used responsive design may therefore provide a poor experience, and you may want to design your apps with this in mind. For more information on responsive design see the <a href="/en-US/docs/Apps/Design">Design section of the App Center</a>.</p>
-</div>
-
-<h2 id="Using_Open_Web_Apps_for_Android_from_Firefox_Marketplace">Using Open Web Apps for Android from Firefox Marketplace</h2>
-
-<p>This section provides details on how you make use of Open Web Apps for Android from Firefox Marketplace, how they affect the Marketplace experience, and information on app updates.</p>
-
-<h3 id="Submitting_an_app">Submitting an app</h3>
-
-<p>When you <a href="/en-US/Marketplace/Submission/Submitting_an_app">submit an app to the Firefox Marketplace</a>, you choose the option of making your app available for Firefox Mobile or Firefox Tablet. Choosing either or both of these options will automatically deliver your app as an APK on Android devices.</p>
-
-<h3 id="Approving_an_app">Approving an app</h3>
-
-<p>When your app is reviewed, the reviewer installs your app from the reviewer section in Firefox Marketplace. When they do this from an Android device, the "review" instance of the APK Factory service is invoked to create an APK signed in Android debug mode. This version of the APK is then installed on the app reviewer's device and they complete the review process.</p>
-
-<p>If the app is approved, the "release" instance of the APK Factory service is invoked to generate and sign the APK with a unique APK Signing Key. The resulting signed APK is then cached for delivery when a user chooses to install the app.</p>
-
-<h3 id="Installing_an_app">Installing an app</h3>
-
-<p>When a user selects your app in the Marketplace on their Android device, installation works as follows:</p>
-
-<ol>
- <li><a href="https://marketplace.firefox.com/">Firefox Marketplace</a> displays the app's details and <strong>Free</strong> install button as normal.</li>
- <li>When the user taps <strong>Free</strong>, {{ domxref("Apps.install") }} or {{ domxref("Apps.installPackage") }} is invoked as usual (depending on whether it's a hosted or packaged app) and a call is made to the APK Factory service to request the APK.</li>
- <li>The APK is downloaded to the Android device and the standard Android app installation process invoked.</li>
- <li>If the user hasn't enabled the <strong>Security</strong> setting <strong>Unknown sources</strong>, Android will alert the user and give them the option to cancel the installation or open <strong>Settings</strong>.</li>
- <li>Once <strong>Unknown sources</strong> is enabled, the user is shown an install confirmation dialog. The dialog lists the permissions requested by privileged apps.</li>
- <li>If the user taps <strong>Install</strong> the app is installed.</li>
- <li>Once the app has been installed, the user is given the option to <strong>Open</strong> the app and in Firefox Marketplace the <strong>Free</strong> button is replaced with a <strong>Launch</strong> button.</li>
-</ol>
-
-<p>Subsequently the user will find the application in their Apps screen. In addition, the process to use and remove the app is the same as they'd expect for other Android apps. Firefox for Android provides a list of installed apps under <strong>Apps</strong> on the <strong>Tools</strong> menu as well.</p>
-
-<h3 id="Keeping_apps_up_to_date">Keeping apps up to date</h3>
-
-<p>Firefox for Android provides a mechanism installing update apps.</p>
-
-<p>If your app is hosted, whenever you make a change on its server, users will pick up changes the next time they run your app.</p>
-
-<p>For all other changes, you need to add a new version to the Firefox Marketplace:</p>
-
-<ul>
- <li>For a hosted app, the link to the app's hosting server containing the updated manifest file.</li>
- <li>For a packaged app, a zip file containing the updated app manifest and app content.</li>
-</ul>
-
-<p>Firefox for Android makes a daily check on the version number in the app’s manifest and if it has changed silently applies the update.</p>
-
-<h2 id="Using_Open_Web_Apps_for_Android_from_your_own_Marketplace">Using Open Web Apps for Android from your own Marketplace</h2>
-
-<p>You're able to create <a href="/en-US/Marketplace/Publishing/Creating_a_store">your own Marketplace</a>. Such a Marketplace consists of either a directory of apps in Firefox Marketplace or your own hosted content (app descriptions with the main manifest of hosted apps or the mini manifest with app zip archive in the case of packaged apps).</p>
-
-<p>Your Marketplace will pass the URL of the manifest to be installed to {{ domxref("Apps.install") }} / {{ domxref("Apps.installPackage") }} that then invokes APK Factory, meaning you don't have to do anything to enable Open Web Apps for Android in your Marketplace. You do, however, need to ensure that your Marketplace only serves apps that include APIs supported by the Web Runtime for Android.</p>
-
-<h2 id="How_the_APK_Factory_works">How the APK Factory works</h2>
-
-<p>This section describes how the APK Factory works.</p>
-
-<ul>
- <li>When the APK Factory is invoked, as described above, it determines whether there is a cached copy of the app's APK file. If a cached copy isn't available, APK Factory:
- <ol>
- <li>Requests the app's manifest file from the hosting server (the Firefox Marketplace, or wherever else the app is hosted):
- <ul>
- <li>The main manifest in the case of hosted apps.</li>
- <li>The mini manifest in the case of packaged apps.</li>
- </ul>
- </li>
- <li>Detects whether the app is hosted or packaged.</li>
- <li>If the app is packaged, APK Factory requests the app's zip archive from the Marketplace or other hosting server.</li>
- <li>Creates the APK by performing some metadata transcoding for elements such as icons and security requirements, after which it:
- <ul>
- <li>Wraps the hosting URL in an Android Java container for hosted apps.</li>
- <li>Wraps the app's content in an Android Java container for packaged apps.</li>
- </ul>
- </li>
- <li>Passes the APK to be signed by the secure <strong><a href="https://github.com/mozilla/apk-signer">APK Signer</a></strong> service:
- <ul>
- <li>"Review" APKs are signed in Android debug mode.</li>
- <li>"Release" APKs are signed with an <strong>APK signing key</strong>.</li>
- </ul>
- </li>
- <li>Caches the signed APK.</li>
- </ol>
- </li>
- <li>Delivers the signed APK file to the device for installation.</li>
-</ul>
-
-<p>The following diagrams offer an alternative representation of the workflow of the APK Factory:</p>
-
-<p style="text-align: center;"><img alt="Web Sequence diagram showing the operation of the APK factory" src="https://mdn.mozillademos.org/files/7849/APK%20factory%20operation.png" style="height: 827px; width: 749px;"></p>
-
-<h2 id="Package_naming_and_APK_signing_keys">Package naming and APK signing keys</h2>
-
-<p>On installation of an APK the Android device checks the Java package name and signature. It verifies the signature the first time an app is installed (there is no central authority it checks with). Future updates must then have the same package name and signature. If the package name and signature aren't the same, the Android device won't update the installation.</p>
-
-<h3 id="Package_naming">Package naming</h3>
-
-<p>The package name for an APK consists of the hosting site and a unique serial number, for example:</p>
-
-<ul>
- <li>For a hosted app: org.mykzilla.p362b12c70d0556c124908a3c125d3d02:</li>
- <li>For a packaged app: com.firefox.marketplace.p0604c71abc0d4091829d19be9a50453c</li>
-</ul>
-
-<h3 id="APK_signing_keys">APK signing keys</h3>
-
-<p>Each APK needs to be identified by an APK signing key before it can be installed on an Android device. APK signing keys are created and owned by the <strong><a href="https://github.com/mozilla/apk-signer">APK Signer</a></strong> service. These signing keys are sensitive, and stored securely in the APK Signer.</p>
-
-<p>This service creates a unique key for each app, applying it to the original release and subsequent updates. The reuse of the key on updated app APKs is important, as without a match in the package name and key Android won't install an update over an earlier version of the app. If you create your own Marketplace, the APK will retain the same name and keys, so that either version will be able to update the other.</p>
-
-<div class="note">
-<p><strong>Note</strong>: Mozilla assumes no responsibility for the credibility of the APK signing keys. That is, the keys provide no information about the authenticity of the app or developer beyond the fact that they have been approved for release in Marketplace, if the app is hosted there. The service is not tied to Google or any other central authority.</p>
-</div>
-
-<h2 id="FAQ">FAQ</h2>
-
-<p>Here are answers to some frequently asked questions about APKs for Open Web Apps for Android.</p>
-
-<h3 id="What_about_re-installation_of_apps_installed_as_bookmarks">What about re-installation of apps installed as bookmarks?</h3>
-
-<p>When a user updates to Firefox for Android version 29 or later, their bookmark-style apps will continue to work, and Firefox will prompt users to update apps to their Open Web Apps for Android version.</p>
-
-<h3 id="How_will_in-app_purchases_work">How will in-app purchases work?</h3>
-
-<p>The APK is given access to the trusted UI, <a href="/en-US/docs/Web/API/Navigator.mozPay">mozPay</a>, and all payment processes for in-app purchases, so in-app payments will function as normal.</p>
-
-<h3 id="How_do_I_download_a_copy_of_my_app's_APK">How do I download a copy of my app's APK?</h3>
-
-<p>You can download a copy of your app from the APK Factory service by retrieving a URL in the format:</p>
-
-<p style="margin-left: 40px;"><code>https://controller.apk.firefox.com/application.apk?manifestUrl=ESCAPED_URL_TO_MANIFEST</code></p>
-
-<p>where <code>ESCAPED_URL_TO_MANIFEST</code> is an escaped URL to the app's manifest or mini-manifest. That URL causes the APK Factory to return the cached copy of the APK, or create a new one if the app hasn't been submitted to Marketplace.</p>
-
-<h4 id="Examples">Examples</h4>
-
-<p>For a hosted app:</p>
-
-<p><code>&gt; wget https://controller.apk.firefox.com/application.apk?manifestUrl=http%3A%2F%2Fmykzilla.org%2Fapp%2Fmanifest.webapp -O mykzilla.apk</code></p>
-
-<p>For a packaged app:</p>
-
-<p><code>&gt; wget https://controller.apk.firefox.com/application.apk?manifestUrl=https%3A%2F%2Fmarketplace.firefox.com%2Fapp%2Fa22e0277-35bc-434d-9371-1568c75fc726%2Fmanifest.webapp -O cuttherope.apk</code><br>
-  </p>
-
-<h3 id="Can_I_generate_an_APK_manually_from_a_different_URL">Can I generate an APK manually from a different URL?</h3>
-
-<p>Yes, by providing the URL to any location for your manifest or mini-manifest files. However, be aware that because the APK is generated from a different URL, the package name will differ from that created when you submit the app to Firefox Marketplace, so the Firefox Marketplace version will be installed as a separate app.</p>
-
-<h3 id="If_I_setup_my_own_copy_of_the_APK_Factory_can_I_use_the_APKs_it_generates">If I setup my own copy of the APK Factory can I use the APKs it generates?</h3>
-
-<p>You can, but be aware that the signing keys will differ from those assigned to the APKs generated by Firefox Marketplace. As a result Android will refuse to install whichever version the user tries to install second. (See <a href="https://developer.mozilla.org/en-US/Marketplace/Publishing/Open_web_apps_for_android#If_I_also_have_an_Android_native_version_of_my_app.2C_can_both_be_installed_on_an_Android_device.3F">If I also have an Android native version of my app, can both be installed on an Android device?</a> for more information.)</p>
-
-<h3 id="Can_I_submit_an_APK_created_by_the_APK_Factory_to_Google_Play_or_other_Android_store">Can I submit an APK created by the APK Factory to Google Play or other Android store?</h3>
-
-<p>You can submit an APK generated by APK Factory to Google Play or an alternative Android store. However, it's your responsibility to:</p>
-
-<ul>
- <li>Confirm that your app complies with the policies of the store you're submitting it to. Approval for distribution in Firefox Marketplace doesn't imply any approval for Google Play or another Android marketplace.</li>
- <li>When you update your app you'll have to update the APK on any stores you have submitted the APK to; there is no automatic process to deliver updated APKs to Android stores.</li>
-</ul>
-
-<h3 id="Can_I_use_my_Android_signing_keys_to_sign_the_APK_and_choose_the_package_name">Can I use my Android signing keys to sign the APK and choose the package name?</h3>
-
-<p>At present you cannot use your own signing keys to sign an APK generated by APK Factory or choose the package name. This is an option being considered. If this is of interest to you, join the discussion on the <a href="https://lists.mozilla.org/listinfo/dev-marketplace">dev-marketplace mailing list</a>, or the <a href="irc://irc.mozilla.org/marketplace">Marketplace IRC channel</a>.</p>
-
-<h3 id="If_I_also_have_an_Android_native_version_of_my_app_can_both_be_installed_on_an_Android_device">If I also have an Android native version of my app, can both be installed on an Android device?</h3>
-
-<p>Unless you choose to use the APK package name created by APK Factory for your native Android app, both can be installed on an Android device. If you choose to use the same package name for your native Android app (which you'll sign with your own key) Android will refuse to install whichever version the user tries to install second. This is because the package names are the same but the signing keys are different, so Android considers the apps to be the same, but from different sources. Therefore Android will refuse to update one app with the other, since that would allow one developer to override another's app. The user will end up with the first version installed on their device.</p>
-
-<div class="warning">
-<p>Because of the issues it may cause for users, it's highly recommended that you don't reuse the package name the APK Factory assigns to your app for a native Android version of your app.</p>
-</div>
-
-<h3 id="How_can_I_testdebug_APKs">How can I test/debug APKs?</h3>
-
-<p>We're working on a toolchain for testing and debugging an app on an Android device. The initial version will include a Node-based command-line tool for generating an APK you can install on the device and debug using Firefox's Remote Developer Tools.</p>
-
-<h2 id="Also_see">Also see</h2>
-
-<ul>
- <li>Hacks blog: <a href="https://hacks.mozilla.org/2014/06/firefox-os-apps-run-on-android/">Firefox OS Apps run on Android</a></li>
- <li>Hack blog: <a href="https://hacks.mozilla.org/2014/06/testing-your-native-android-app/" rel="bookmark" title="Permanent link to “Testing Your Native Android App”">Testing Your Native Android App</a></li>
-</ul>
diff --git a/files/fr/mozilla/marketplace/options/packaged_apps/index.html b/files/fr/mozilla/marketplace/options/packaged_apps/index.html
deleted file mode 100644
index 465763857c..0000000000
--- a/files/fr/mozilla/marketplace/options/packaged_apps/index.html
+++ /dev/null
@@ -1,92 +0,0 @@
----
-title: Application packagée
-slug: Mozilla/Marketplace/Options/Packaged_apps
-translation_of: Archive/Mozilla/Marketplace/Options/Packaged_apps
----
-<div class="summary">
-<p><span class="seoSummary">Une application packagée est un .zip contenant toutes les ressources nécessaires (HMTL, CSS, JavaScript, manifest, etc.) au format Open Web APP plutôt que laisser les ressources sur un serveur web. Cet article contient une introduction aux applications packagée et des liens vers tout ce dont vous avez besoin de connaitre en tant que developpeur.</span></p>
-</div>
-
-<p>Une application packagée est un fichier .zip qui contient tous les fichiers nécessaires au bon fonctionnement des Open Web App ainsi que le <a href="/en-US/Apps/Build/Manifest">manifeste</a> au dossier racine du zip. Le manifeste fournis les détails de l'application tels que la description, l'icône qui identifie l'application,... Le package est alors utilisé pour installer l'application dans Firefox OS, Firefox pour android et Firefox pour ordinateur. Une fois installée, l'app fonctionne sur l'appareil de l'utilisateur, mais est toujours capable d'accéder a des ressources externes, comme une base de données externe.</p>
-
-<p>Il y a trois types d'<a name="#types_of_packaged_apps">application packagée</a> : les applications web, les applications privilégiées et les applications certifiées. Alors que les applications web sont distribuables sans contraintes, les applications privilégiées et certifiées sont numériquement signées pour permettre l'utilisation de <a href="/en-US/Apps/Build/App_permissions">privilèges et d'API certifiées</a>. Les applications privilégiées sont signées durant le processus de revue des applications Marketplace, ce qui certifie qu'elles sont signées par des constructeurs d'appareils ou des opérateurs.</p>
-
-<p>En plus de ces possibilitées, les applications packagées permettent un temps de démarrage plus court car toutes les ressources sont déjà téléchargées car installées. Cette fonctionalité fait des applications packagées l'approche recomandée pour fournir des Open Web App aux téléphones Firefox OS et Android et pour Firefox pour ordinateur.</p>
-
-<div class="note">
-<p><strong>Note :</strong> Actuellement, Firefox Marketplace supporte les applications web et privilégiées. De plus, Firefox Marketplace supporte les applications payantes pour Firefox OS seulement et les applications gratuites pour Firefox pour Android et Firefox pour ordinateur. Le support des applications payantes pour toutes le plateformes est en développement.</p>
-</div>
-
-<h2 id="Type_d'applications_packagées"><a name="types_of_packaged_apps">Type d'applications packagées</a></h2>
-
-<p>Il y a trois types d'application packagée : les applications web, les applications privilégiées et les applications certifiées. Chaque type d'application packagée correspond a un niveau du modèle de <a href="/en-US/docs/Mozilla_Web_Services_Security_Model#App_Security">sécurité des applications</a> implémenté dans Firefox OS. Cette section fourni des informations sur chaque type d'application packagée.</p>
-
-<h3 id="Application_Web">Application Web</h3>
-
-<p>Une application web est celle qui n'utilise pas de privilège ou de certification. Quand elle est soumise au Marketplace, elle est signée, mais cela ne permet pas d'utiliser les privilèges ou les certifications. Ces applications ne sont pas sujettes aux  <a href="/en-US/Apps/CSP">politiques de sécurité des contenus</a> nécessaires aux applications certifiées et privilégiées.</p>
-
-<p>Ce type d'application packagée ne requière pas le champ <code>field</code> dans son fichier <code>manifest.webapp</code> car la valeur par défaut (<code>web</code>) est correcte.</p>
-
-<p>Les applications web peuvent être <a href="/en-US/Marketplace/Options/Self_publishing">auto-publiées</a> ou distribuées <em>via</em> le Firefox Marketplace. Elles peuvent aussi être fournies aux utilisateurs via le mécanisme d'<a href="/en-US/Marketplace/Options/Hosted_apps">application hébergée</a>.</p>
-
-<h3 id="Application_privilégiée">Application privilégiée</h3>
-
-<p>Une application privilégiée peut-être considérée comme l'équivalent des applications natives sur des plateformes comme iOS et Android. Durant sa soumission au Firefox Marketplace, ce type d'application passe par un processus spécial. En effet, cela donne au utilisateurs de ces applications l'assurance qu'elles ont été soigneusement revues pour de potentiels problèmes de sécurité, de vie privée ou de fonctionnement.</p>
-
-<p>Pour spécifier qu'une application est privilégiée, ajoutez le <a href="/en-US/Apps/Build/Manifest">type</a> <code>field</code> dans le <code>manifest.webapp</code> et passez-le à <code>privileged</code>. Chaque API privilégiée que votre application nécessite doit être spécifiée dans le champ <code>permissions</code> du manifeste.</p>
-
-<p>Vous devez mettre les <a href="/en-US/Apps/CSP">CSP</a> suivantes dans le manifeste d'une application privilégiée :</p>
-
-<pre class="brush: js">"default-src *; script-src 'self'; object-src 'none'; style-src 'self' 'unsafe-inline'"</pre>
-
-<p>Ces applications ne peuvent être distribuées que <code>via</code> le Firefox Marketplace.</p>
-
-<h3 id="Application_certifiée">Application certifiée</h3>
-
-<div class="geckoVersionNote">
-<p>Les applications certifiées ne sont généralement pas disponibles pour les développeurs tiers et ne sont pas distribuées <em>via</em> le Firefox Marketplace. Le but sur le long terme est que toutes les API nécessitant le niveau certifié ne nécessitent plus que le niveau privilégié. Si vous voulez voir une API particulière devenir disponible, venez nous en parler sur la mailling list <a href="https://lists.mozilla.org/listinfo/dev-webapps">dev-webapps</a>.</p>
-</div>
-
-<p>Une application certifiée permet l'utilisation d'API certifiées, qui permettent d'accéder aux fonctions critiques du système. Contrairement aux applications privilégiées, les permissions d'API pour les applications certifiées sont implicites et donc toutes activées par défaut sans l'approbation explicite de l'utilisateur. Une application certifiée doit être approuvée pour un constructeur ou un opérateur.</p>
-
-<p>Pour spécifiée qu'elle est certifiée, l'application doit contenir le champ <code>field</code> avec la valeur <code>certified</code> dans le <code>manifest.webapp</code>. Chaque API privilégiée que votre application nécessite doit être spécifiée dans le champs <code>permissions</code> du manifeste.</p>
-
-<p>Vous devez mettre les <a href="/en-US/Apps/CSP">CSP</a> suivantes dans le manifeste d'une application privilégiées :</p>
-
-<pre class="brush: js">"default-src *; script-src 'self'; object-src 'none'; style-src 'self'"</pre>
-
-<p>Ceci a pour effet d'implémenter des règles plus strictes pour les CSP par rapport aux applications certifiées. Si vous voulez comprendre les raisons derrières ces motivations, lisez la <a href="https://wiki.mozilla.org/Apps/Security#Default_CSP_policy">politique des CSP par défaut</a> et le <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=768029">bug 768029</a>.</p>
-
-<p>Les applications certifiées sont pré-chargées dans les appareils par les constructeurs et les opérateurs.</p>
-
-<h2 id="Tester_des_applications_packagées">Tester des applications packagées</h2>
-
-<p>Pour installer des applications dans le simulateur Firefox OS ou directement dans un téléphone, voyez le guide d'utilisation du <a href="/en-US/Firefox_OS/Using_the_App_Manager">manager d'application</a>. Vous pouvez aussi installer sur un appareil via un serveur web en suivant le guide pour <a href="https://developer.mozilla.org/en-US/Marketplace/Options/Self_publishing">publier des applications</a> par vous-mêmes.  N'oubliez pas que si vous déployez par vous-même, seules les applications web pourront être installées.</p>
-
-<h2 id="Publiez_votre_application_packagée">Publiez votre application packagée</h2>
-
-<p>Vous avez deux options pour publier vos applications : le Firefox Marketplace ou par vous-même.</p>
-
-<h3 id="Publier_sur_le_Firefox_Marketplace">Publier sur le Firefox Marketplace</h3>
-
-<p>Le processus pour publier une application packagée est décrit dans la section parlant de la <a href="/en-US/Marketplace/Publishing">publication d'application</a>.</p>
-
-<p>Quand vous soumettez votre application, le fichier zip est stockée sur le Firefox Marketplace et celui-ci génère un nouveau manifest appellé <strong>mini-manifeste</strong>, basé sur votre manifeste. Quand un utilisateur installe votre application, le mini-manifeste est passé à la fonction <a href="/en-US/docs/Web/API/Apps.installPackage"><code>Apps.installPackage()</code></a> qui va l'installer. Ce mini-manifeste est utilisé seulement pour des questions d'installation et de mise à jour et n'est pas utilisé par votre application pour fonctionner.</p>
-
-<h3 id="La_publier_vous-même">La publier vous-même</h3>
-
-<p>Il est possible de publier vous-même votre application en dehors du Firefox Marketplace via votre propre serveur web. Vous trouverez des détails sur la page dédiée à <a href="https://developer.mozilla.org/en-US/Marketplace/Options/Self_publishing">ce sujet</a>.</p>
-
-<h2 id="Mettre_a_jour_votre_application">Mettre a jour votre application</h2>
-
-<p>Pour des informations sur la mise à jour d'application, voyez la page dédiée à <a href="/en-US/Marketplace/Publishing/Updating_apps">ce sujet</a>.</p>
-
-<h2 id="Plus_d'information">Plus d'information</h2>
-
-<ul>
- <li><a href="/en-US/Firefox_OS/Security/Security_model">Firefox OS security Overview</a></li>
- <li><a href="/en-US/Firefox_OS/Security/Application_security">Application Security</a></li>
- <li><a href="https://github.com/robnyman/Firefox-OS-Boilerplate-App" title="https://github.com/robnyman/Firefox-OS-Boilerplate-App">Firefox OS Boilerplate App</a></li>
-</ul>
-
-<p> </p>
diff --git a/files/fr/mozilla/marketplace/options/self_publishing/index.html b/files/fr/mozilla/marketplace/options/self_publishing/index.html
deleted file mode 100644
index cc1b852940..0000000000
--- a/files/fr/mozilla/marketplace/options/self_publishing/index.html
+++ /dev/null
@@ -1,144 +0,0 @@
----
-title: Auto-publication d'application
-slug: Mozilla/Marketplace/Options/Self_publishing
-translation_of: Archive/Mozilla/Marketplace/Options/Self_publishing
----
-<div class="summary">
- <p><span class="seoSummary">Il y a des circonstances où il n'est pas souhaitable de rendre une application disponible sur le Firefox Marketplace. C'est le cas, lorsque l'on veut distribuer l'application uniquement au membre d'une organisation ou bien lorsque l'application est encore en phase de test privé. Cette page explique comment publier sa propre application en dehors du Marketplace.</span></p>
-</div>
-<p>Les Open Web Apps sont installables sous Firefox OS, Firefox pour android et Firefox pour desktop en utilisant {{ domxref("Apps.install") }} ou {{ domxref("Apps.installPackage") }}. Dans les deux cas, ces APIs envoient l'URL du manifeste décrivant l'application à installer. Ainsi afin de publier soi-même son application, les pré-requis minimaux sont:</p>
-<ol>
- <li>Un serveur où le manifest de l'application est accessible.</li>
- <li>Un serveur où l'application est accessible pour les applications hébergées et pour les applications empaquetées le fichier ZIP contenant l'application.</li>
- <li>Un code sur un site web appelant {{ domxref("Apps.install") }} ou {{ domxref("Apps.installPackage") }} selon la situation.</li>
-</ol>
-<h2 id="Limitations">Limitations</h2>
-<p>Avant de publier vous-même votre Open Web Apps, vous devriez garder en mémoires les limitations suivantes:</p>
-<ul>
- <li>Les applications auto-publiées ne peuvent pas avoir accés aux <a href="/fr/Apps/Build/App_permissions">APIs privilégiées</a>. Pour utiliser ces APIs, l'application doit être une application empaquetée et avoir son fichier ZIP signé en utilisant le systéme de soumission du Firefox Marketplace.</li>
- <li> L'application ne peut pas utiliser les achats intégrés du Firefox MarketPlace.</li>
- <li>Vous devrez faire connaitre votre application vous-même car elle ne sera pas visible sur le Firefox marketplace.</li>
-</ul>
-<h2 id="Auto-publication_d'applications_empaquetées">Auto-publication d'applications empaquetées</h2>
-<p>Vous pouvez auto-publier votre application empaquetée en hébergeant son fichier ZIP ainsi qu'un mini-manifeste associé sur un serveur. Le mini-manifeste doit être dans le même dossier que le fichier ZIP car il permet d'identifier l'application lors de l'installation. Une fois le mini-manifeste créé, il ne reste plus qu'à créer un script invoquant {{ domxref("Apps.installPackage") }} avec l'url du mini-manifeste pour installer l'application. Voyons maintenant en détails les différentes étapes:</p>
-<ol>
- <li>
- <p>Empaquetez le contenu de votre application dans une archive ZIP et donnez lui le nom <code>package.zip</code>.  L'archive doit contenir toutes les ressources de l'application ainsi que que le <a href="/fr/Apps/Manifeste" title="Manifest documentation">manifeste</a> principal.</p>
- <div class="warning">
- <p>Attention: Le manifeste doit être à la racine de l'archive.</p>
- </div>
- </li>
- <li>Créez un fichier appelé <code>manifest.webapp</code> et ajoutez le contenu ci-dessous. Ce fichier est connu sous le nom de mini-manifeste, car il s'agit d'une version simplifiée du fichier manifeste contenu dans l'archive de l'application. Il est utilisé par {{ domxref("Apps.installPackage") }} pour entreprendre l'installation de l'application. Pour plus de détails, référez-vous à la documentation sur les <a href="#Champs du mini-manifeste">champs du mini-manifeste</a> ci-dessous.
- <pre class="brush: js">{
- "name": "Le nom de mon application",
- "package_path" : "<code class="language-js"><span class="token string">&lt;a class="</span>LinkyMobile<span class="token operator">-</span>ext<span class="token string">" href="</span>http<span class="token punctuation">:</span><span class="token operator">/</span><span class="token operator">/</span>my<span class="token operator">-</span>server<span class="token punctuation">.</span>com<span class="token operator">/</span>my<span class="token operator">-</span>app<span class="token operator">-</span>directory<span class="token operator">/</span>my<span class="token operator">-</span>app<span class="token punctuation">.</span>zip<span class="token string">" title="</span>Linkification<span class="token punctuation">:</span> http<span class="token punctuation">:</span><span class="token operator">/</span><span class="token operator">/</span>my<span class="token operator">-</span>server<span class="token punctuation">.</span>com<span class="token operator">/</span>my<span class="token operator">-</span>app<span class="token operator">-</span>directory<span class="token operator">/</span>my<span class="token operator">-</span>app<span class="token punctuation">.</span>zip<span class="token string">"&gt;http://my-server.com/my-app-directory/package.zip&lt;/a&gt;</span></code>",
- "version": "1",
- "developer": {
- "name": "A. Developpeur",
- "url": "<code class="language-js"><span class="token string">&lt;a class="</span>LinkyMobile<span class="token operator">-</span>ext<span class="token string">" href="</span>http<span class="token punctuation">:</span><span class="token operator">/</span><span class="token operator">/</span>my<span class="token operator">-</span>server<span class="token punctuation">.</span>com<span class="token string">" title="</span>Linkification<span class="token punctuation">:</span> http<span class="token punctuation">:</span><span class="token operator">/</span><span class="token operator">/</span>my<span class="token operator">-</span>server<span class="token punctuation">.</span>com<span class="token string">"&gt;http://my-server.com&lt;/a&gt;</span></code>"
- }
-}</pre>
- </li>
- <li>Créez le script qui installera l'application. Pour cela, l'exemple ci-dessous utilise une simple page HTML nommée<code> index.html</code> ,  mais vous pouvez invoquer le script dans n'importe qu'elle méthode de votre site web. Le javaScript de cette page appelle l'API d'installation d'application empaquetée ({{ domxref("Apps.installPackage") }}) et inclut des notifications indiquant si l'installation a réussi ou non.
- <pre class="brush: html">&lt;html&gt;
-  &lt;body&gt;
-    &lt;p&gt;Page d'installation de l'application empaquetée&lt;/p&gt;
-    &lt;script&gt;
- // Cette URL doit être une URL compléte
-      var manifestUrl = '<code class="language-html"><span class="token script"><span class="token string">&lt;a class="LinkyMobile-ext" href="http://my-server.com/my-app-directory/package.manifest" title="Linkification: http://my-server.com/my-app-directory/package.manifest"&gt;http://my-server.com/my-app-directory/manifest.webapp&lt;/a&gt;</span></span></code>';
-      var req = navigator.mozApps.installPackage(manifestUrl);
-      req.onsuccess = function() {
-        alert(this.result.origin);
-      };
-      req.onerror = function() {
-        alert(this.error.name);
-      };
-    &lt;/script&gt;
-  &lt;/body&gt;
-&lt;/html&gt;</pre>
- </li>
- <li>Copiez les fichiers <code>package.zip</code>, <code>package.manifest</code>, et <code>index.html</code> sur votre serveur dans le dossier choisi (<code>my-app-directory</code> dans cet exemple).</li>
- <li>Maintenant vous pouvez installer l'application sur un appareil compatible. Ouvrez le fichier <code>index.html</code> (dans cet exemple le chemin de ce fichier est <code> <a class="LinkyMobile-ext" href="http://my-server.com/my-app-directory/package.manifest" title="Linkification: http://my-server.com/my-app-directory/package.manifest">http://mon-serveur.com/App-directory/index.html</a></code>)  et vous aurez une fenêtre demandant une confirmation avant d'installer l'application. Une fois l'installation terminée, vous aurez une indication sur le résultat de l'installation.</li>
-</ol>
-<div class="note">
- <p>Astuce: Vous pouvez héberger localement une application empaquetée et le tester sur un appareil. Le serveur et l'appareil doivent pouvoir communiquer sur le réseau local. N'oubliez pas d'indiquer le numéro port si vous n'utilisez pas le port standard, par exemple: <code><a class="LinkyMobile-ext" href="http://10.10.12.1:8080/package.zip" title="Linkification: http://10.10.12.1:8080/package.zip">http://10.10.12.1:8080/package.zip</a></code>.</p>
-</div>
-<h3 id="Champs_du_mini-manifeste"><a name="Champs du mini-manifeste">Champs du mini-manifeste</a></h3>
-<p>Dans le cas d'auto-publication, il est nécessaire de créer un mini-manifeste. Si l'application est est publiée sur le Firefox Marketplace, le mini-manifeste est généré automatiquement à partir du <a href="/fr/Apps/Build/Manifest">manifeste</a> de l'application.</p>
-<p>Le meilleur moyen de créer le mini-manifeste est de copier le manifeste de l'application et de le modifer de maniére apropriée. Ainsi les champs<strong> <code>name</code>, <code>version</code>, <code>developer</code> et <code>locales</code> fields seront exactement les mêmes dans les deux manifestes</strong>. Il ne vous reste plus qu'à ajouter les champs <code>package_path</code>, <code>release_notes</code> et <code>size</code>:</p>
-<dl>
- <dt>
- <code>package_path</code> (requis)</dt>
- <dd>
- Le chemin absolu (URL compléte:  <code> <a class="LinkyMobile-ext" href="http://my-server.com/my-app-directory/package.manifest" title="Linkification: http://my-server.com/my-app-directory/package.manifest">http://mon-serveur.com/App-directory/manifest.webapp</a></code>) vers l'archive de l'application.</dd>
- <dt>
- <code>release_notes</code> (optionel)</dt>
- <dd>
- Notes de version de l'application. Sur le Firefox Marketplace cette information est fournie lors du processus de soumission.</dd>
-</dl>
-<dl>
- <dt>
- <code>size</code> (optionel)</dt>
- <dd>
- La taille de l'archive en octets. Cette information est utilisée par {{ domxref("Apps.installPackage") }} pour fournir une barre de progression lors de l'installation.</dd>
-</dl>
-<p>Voici un exemple d'un mini-manifeste:</p>
-<pre class="brush: js">{
- "name": "My app",
- "package_path": "<code class="language-js"><span class="token string">&lt;a class="</span>LinkyMobile<span class="token operator">-</span>ext<span class="token string">" href="</span>http<span class="token punctuation">:</span><span class="token operator">/</span><span class="token operator">/</span>thisdomaindoesnotexist<span class="token punctuation">.</span>org<span class="token operator">/</span>myapp<span class="token punctuation">.</span>zip<span class="token string">" title="</span>Linkification<span class="token punctuation">:</span> http<span class="token punctuation">:</span><span class="token operator">/</span><span class="token operator">/</span>thisdomaindoesnotexist<span class="token punctuation">.</span>org<span class="token operator">/</span>myapp<span class="token punctuation">.</span>zip<span class="token string">"&gt;http://thisdomaindoesnotexist.org/myapp.zip&lt;/a&gt;</span></code>",
- "version": "1.0",
- "size": 172496,
- "release_notes": "Première publication",
- "developer": {
- "name": "Dupont Michel",
- "url": "<code class="language-js"><span class="token string">&lt;a class="</span>LinkyMobile<span class="token operator">-</span>ext<span class="token string">" href="</span>http<span class="token punctuation">:</span><span class="token operator">/</span><span class="token operator">/</span>thisdomaindoesnotexist<span class="token punctuation">.</span>org<span class="token operator">/</span><span class="token string">" title="</span>Linkification<span class="token punctuation">:</span> http<span class="token punctuation">:</span><span class="token operator">/</span><span class="token operator">/</span>thisdomaindoesnotexist<span class="token punctuation">.</span>org<span class="token operator">/</span><span class="token string">"&gt;http://thisdomaindoesnotexist.org/&lt;/a&gt;</span></code>"
- },
- "locales": {
- "fr-FR": {
- "name": "Mon application"
- },
- "se-SE": {
- "name": "Min balla app"
- }
- },
- "icons": {
- "16": "/icons/16.png",
- "32": "/icons/32.png",
- "256": "/icons/256.png"
- }
-}
-</pre>
-<p>Les autres champs de cet exemple sont:</p>
-<dl>
- <dt>
- <code>name</code> (requis)</dt>
- <dd>
- Le nom de l'application. La longueur maximale est de 128 caractères.</dd>
- <dt>
- <code>version</code> (optionel)</dt>
- <dd>
- Le numéro de version de cette application.</dd>
- <dt>
- <code>developer</code>  (optionel)</dt>
- <dd>
- Information sur le développeur, contenant les champs <code>name</code> (nom) et <code>url</code> (adresse). Les informations saisies doivent correspondre avec celles du fichier manifest dans l'archive ZIP.</dd>
- <dt>
- <code>locales</code> (optionel)</dt>
- <dd>
- Information sur le langage, au format <code>xx-YY</code>.</dd>
- <dt>
- <code>icons</code> (optionel)</dt>
- <dd>
- Les icones utilisés par cette application.</dd>
-</dl>
-<p>Les autres champs de l'exemple proviennent du manifeste de l'application voir la <a href="/fr/Apps/Build/Manifest" title="Manifest documentation">page associée</a> pour plus d'information.</p>
-<h2 id="Auto-publication_d'application_hébergée">Auto-publication d'application hébergée</h2>
-<p>L'auto-publication d'applications hébergé est similaire à celle des applications empaquetées. Il faut toujours créer un manifeste pour l'application voir la <a href="/fr/Apps/Build/Manifest" title="Manifest documentation">page associée</a>. Le code pour installer l'application hébergé est le même que les applications hébergées. La seule différence est que le manifeste peut utiliser des URLs relatives</p>
-<h2 id="Voir_aussi">Voir aussi</h2>
-<ul>
- <li><a href="/fr/Apps/Build/JavaScript_API">Installation d'application et gestion des APIs</a></li>
- <li>{{ domxref("Apps.install") }}</li>
- <li>{{ domxref("Apps.installPackage") }}</li>
- <li><a href="/fr/Apps/Build/Manifest" title="Manifest documentation">Manifeste de l'application</a></li>
- <li><a href="/fr/Apps/Build/App_permissions">Permissions d'application</a></li>
-</ul>
diff --git a/files/fr/mozilla/marketplace/publication/index.html b/files/fr/mozilla/marketplace/publication/index.html
deleted file mode 100644
index f9e798d4d7..0000000000
--- a/files/fr/mozilla/marketplace/publication/index.html
+++ /dev/null
@@ -1,9 +0,0 @@
----
-title: Publication
-slug: Mozilla/Marketplace/Publication
-tags:
- - Structure seule
- - 'l10n:priority'
-translation_of: Archive/Mozilla/Marketplace/Publishing/Introduction
----
-<p>REDIRECTION <a class="redirect" href="/en-US/Marketplace/Publishing/Introduction">Introduction — App Publishing [en-US]</a> (<em>Introduction - publication d'applications</em>)</p>
diff --git a/files/fr/mozilla/marketplace/publication/marketplace_critere_revue/index.html b/files/fr/mozilla/marketplace/publication/marketplace_critere_revue/index.html
deleted file mode 100644
index ff2a0a5e2c..0000000000
--- a/files/fr/mozilla/marketplace/publication/marketplace_critere_revue/index.html
+++ /dev/null
@@ -1,110 +0,0 @@
----
-title: Critères d'évaluation du Marketplace
-slug: Mozilla/Marketplace/Publication/Marketplace_critere_revue
-translation_of: Archive/Mozilla/Marketplace/Publishing/Marketplace_review_criteria
----
-<div class="summary">
-<p>Cet article décrit les différents prérequis qu'une application doit satisfaire avant de pouvoir être publiée par le Firefox Marketplace. Ces critères sont pensés pour répondre aux besoins des développeurs d'applications du Firefox Marketplace autant qu'à ceux de leurs utilisateurs. Les développeurs attendent des critères équitables, universels et réalistes auxquels ils peuvent se fier pour concrétiser leurs idées. D'un autre côté, les utilisateurs veulent être assurés que les applications soient sûres, fonctionnelles et fassent bien ce qu'elles sont censées faire. Les prérequis listés ci-dessous servent à trouver un équilibre délicat entre ces différents besoins.</p>
-</div>
-
-<p>D'après Mozilla, les modalités d'une évaluation d'application sont :</p>
-
-<ul>
- <li>Les critères doient être appliqués de manière équitable, juste et cohérente. Le processus d'évaluation d'application ne doit pas être un obstacle mais bien un point de contact qui fournit des commentaires permettant d'aider les développeurs à aboutir.</li>
- <li>Les évaluateurs n'ont pas pour vocation d'être une équipe de contrôle de qualité ! Durant le processus d'évaluation, quelqu'un regardera le manifeste de l'application et passera quelques minutes à l'utiliser comme un utilisateur lambda.</li>
- <li>Si l'application échoue, le développeur recevra une explication claire sur les problémes rencontrés ainsi que la maniére de les reproduire. Si possible, l'évaluateur indiquera au développeur la bonne direction par la fourniture de liens vers les documents pertinents ou de recommandations sur les changements nécessaires.</li>
- <li>Les évaluateurs ne jugent pas l'apparence d'une application, mais seulement son fonctionnement. Par exemple, une application avec un paragraphe en texte rouge écrit sur fond orange ne sera pas rejetée parce qu'elle est hideuse mais pourra l'être si le paragraphe est illisible.</li>
- <li>Nous laissons toujours le bénéfice du doute aux développeurs. Si nous hésitons à refuser une application, des évaluateurs poseront toujours des questions <em>avant</em> de la rejeter. Les applications ne sont pas (sciemment) refusées pour des problémes de compatibilité avec une platefoirme (qui ne sont pas contrôlables par les développeurs) ; cependant nous pouvons différer notre approbation si nous ne parvenons pas à faire fonctionner l'application.</li>
-</ul>
-
-<h2 id="Sécurité">Sécurité</h2>
-
-<p>Tous les détails de l'architecture de sécurité des applications sont disponibles ici : <a href="https://wiki.mozilla.org/Apps/Security">https://wiki.mozilla.org/Apps/Security</a></p>
-
-<ul>
- <li>Le manifeste d'application doit être disponible à la racine de l'application.</li>
- <li>Le manifeste d'application doit contenir l'en-tête <code>Content-Type</code> de <code>application/x-web-app-manifest+json</code>.</li>
- <li>Les applications ne doivent pas utiliser de redirection ou d'"iframes" pour charger le contenu que le développeur n'est pas autorisé à utiliser.</li>
- <li>Les permissions requises doivent être spécifiées dans le manifeste de l'application, avec la description des raisons pour lesquelles ces autorisations sont nécessaires.</li>
- <li>Les applications de <a href="https://developer.mozilla.org/fr/Apps/Manifeste#type">type </a><code>privileged</code> recevront des vérifications supplémentaires, incluant notamment un contrôle du code, pour vérifier l'absence d'activité malveillante et de perte de données utilisateur rendues possibles par les APIs<code> privileged.</code></li>
- <li>La politique de sécurité du contenu (<a href="https://developer.mozilla.org/en-US/docs/Web/Security/CSP/Introducing_Content_Security_Policy">CSP</a>) définit, dans le manifeste d'application, ce que le code source de l'application peut faire. La valeur par défaut, si elle n'est pas spécifiée, pour les applications non privilégiées est la même que pour n'importe quel site Web ; les applications de <a href="https://developer.mozilla.org/fr/Apps/Manifeste#type">type </a><code>privileged</code> doivent répondre à une CSP plus <a href="https://developer.mozilla.org/en-US/Marketplace/Options/Packaged_apps#Privileged_app">restrictive</a>. Le rapport de validation créé à la soumission d'une application sur le Firefox Marketplace indiquera les violations potentielles de la CSP dans votre application - méfiez-vous malgré tout des faux positifs et des demandes de certains modules de bibliothèques tierces que vous n'utilisez pas.</li>
-</ul>
-
-<h2 id="Confidentialité">Confidentialité</h2>
-
-<p>Le développeur devra fournir un lien vers la politique de confidentialité utilisée pour son application lors de sa soumission. Il n'y a, en revanche, pas de restriction concernant le format ou le contenu de cette politique de confidentialité. N'hésitez-pas à utiliser notre <a href="https://github.com/flamsmark/privacy-policy-template">modèle de politique de confidentialité</a>. Regardez également nos<a href="https://developer.mozilla.org/en-US/Marketplace/Publishing/Privacy_policies"> directives sur la politique de confidentialité</a>.</p>
-
-<h2 id="Contenu">Contenu</h2>
-
-<ul>
- <li>Toutes les applications qui enfreignent nos <a href="#Directives_sur_le_contenu">directives de contenu</a>, spécifiées ci-après, ne seront pas autorisées. Si vous pensez être dans une situation limite, n'hésitez pas à demander des explications à l'équipe d'évaluation, et ce, même si l'application n'est pas encore prête pour une soumission. Nous voulons vous aider à rester sur la bonne voie, <span id="result_box" lang="fr"><span class="hps">plutôt que</span> <span class="hps">d'investir</span> <span class="hps">du temps de développement</span> <span class="hps">dans un contenu</span> <span class="hps">qui sera</span> <span class="hps">rejeté</span><span>.</span></span></li>
- <li><span id="result_box" lang="fr"><span class="hps">A partir de janvier</span> <span class="hps">2014,</span> <span class="hps">toutes les applications</span> <span class="hps">doivent recevoir</span> <span class="hps">une</span> <span class="hps">note </span>de la part de l'International Age Rating Coalition (IARC)<span>.</span> <span class="hps">Pour obtenir cette</span> <span class="hps">note,</span> <span class="hps">nous</span> <span class="hps">vous dirigeons vers</span> <span class="hps">un bref questionnaire</span> <span class="hps">au cours du processus</span> <span class="hps">de soumission</span><span>,</span> <span class="hps">et vous recevrez immédiatement la note</span><span>.</span> <span class="hps">Des informations supplémentaires sur</span> <span class="hps">le processus</span> <span class="hps">d'évaluation</span> sont <span class="hps">disponibles</span> <a href="https://developer.mozilla.org/en-US/Marketplace/Publishing/Submit/Rating_Your_Content"><span class="hps">ici</span></a><span>.</span> </span></li>
- <li><span id="result_box" lang="fr"><span class="hps">Les captures d'écran</span> <span class="hps">et</span> <span class="hps">descriptions</span> <span class="hps">soumises sur le Firefox Marketplace </span><span class="hps">doivent</span> <span class="hps">représenter </span><span class="hps">l'application</span><span> avec précision.</span> <span class="hps">Vous</span> <span class="hps">pouvez inclure</span> <span class="hps">1 ou 2</span> <span class="hps">images</span> vendeuses, <span class="hps">qui prouvent </span><span class="hps">la compatibilité</span><span>,</span> <span class="hps">comparent les caractéristiques</span><span>,</span> <span class="hps">ou de manière générale, </span><span class="hps">suscitent l'intérêt</span><span>,</span> <span class="hps">mais</span> <span class="hps">il doit aussi y avoir</span> <span class="hps">au moins une</span> capture d'écran <span class="hps">de l'application</span> <span class="hps">en fonctionnement</span><span>, pour</span><span class="hps"> que les utilisateurs</span> puissent<span class="hps"> prévisualiser</span> <span class="hps">ce qu'ils</span> vont <span class="hps">réellement</span> <span class="hps">obtenir</span><span>.</span> <span class="hps">Si</span> <span class="hps">l'une de vos</span> <span class="hps">captures d'écran</span> <span class="hps">montre</span> un écran de démarrage ou <span class="hps">de lancement</span><span>, vous</span> <span class="hps">devez également inclure</span> <span class="hps">une capture d'écran</span> <span class="hps">de la partie fonctionnelle</span> <span class="hps">de l'application.</span></span></li>
- <li><span lang="fr"><span class="hps">Dans le</span> <span class="hps">manifeste de l'application</span><span>,</span> <span class="hps">les clés </span><a href="https://developer.mozilla.org/fr/Apps/Manifeste#locales"><code>locale</code> </a><span class="hps">doivent correspondre aux</span> <span class="hps">localisations</span> <span class="hps">que votre application</span> <span class="hps">prend en charge.</span> <span class="hps">En spécifiant </span><span class="hps">une clé <code>locale </code></span><span class="hps">en polonais</span><span>, les utilisateurs</span> <span class="hps">s'attendent à ce que</span> <span class="hps">votre application</span> <span class="hps">soit disponible</span> <span class="hps">dans cette langue</span><span>.</span></span></li>
- <li>L'icône de l'application doit suivre le <a href="https://www.mozilla.org/en-US/styleguide/products/firefox-os/icons/">Firefox OS app icons style guide</a>. Seule une icône 128x128 est obligatoire, mais nous vous recommandons également une icône 512x512 (pour plus de détails, voir <a href="https://developer.mozilla.org/en-US/Apps/Build/Icon_implementation_for_apps#Firefox_OS">Icon implementation for apps</a>.)  À noter, ces icônes peuvent être rondes, carrées aux angles arrondis ou carrées, selon le guide de style.</li>
-</ul>
-
-<h3 id="Règles_de_contenu">Règles de contenu</h3>
-
-<p><span id="result_box" lang="fr"><span class="hps">Cette liste</span> <span class="hps">décrit les types</span> <span class="hps">de contenu qui</span> <span class="hps">ne sont pas appropriés</span> sur le Firefox Marketplace<span>.</span> <span class="hps">Cette liste</span> <span class="hps">est</span> <span class="hps">indicative, non</span> <span class="hps">définitive</span><span>,</span> <span class="hps">et</span> <span class="hps">peut donc être</span> <span class="hps">mise à jour</span><span>.</span> </span><span lang="fr">Si une application est jugée contraire à ces règles de contenu, Mozilla a le droit de retirer immédiatement l'application du Marketplace Firefox.</span></p>
-
-<ul>
- <li><span id="result_box" lang="fr"><span class="hps">Pas de matériaux</span> <span class="hps">pornographiques</span> <span class="hps">obscènes</span><span>,</span> <span class="hps">ou de représentations</span> <span class="hps">graphiques</span> <span class="hps">de sexualité</span> <span class="hps">ou de violence</span><span>.</span></span></li>
- <li><span lang="fr"><span class="hps">Pas de contenu violant</span> <span class="hps">les droits de quelqu'un, y compris la propriété intellectuelle ou d'autres droits de propriété, ou les droits de confidentialité ou de publicité.</span></span></li>
- <li><span lang="fr"><span class="hps">Pas de contenu</span> <span class="hps">visant à </span><span class="hps">nuire</span> à <span class="hps">Mozilla</span> ou à ses <span class="hps">utilisateurs</span> <span class="atn hps">(</span><span>tels que</span> du <span class="hps">code malveillant</span><span>, des virus</span><span>,</span> des <span class="hps">logiciels espions...</span><span>)</span><span>.</span></span></li>
- <li><span lang="fr"><span class="hps">Pas de contenu </span><span class="hps">illégal</span> <span class="hps">ou faisant</span> <span class="hps">la promotion d'activités</span> <span class="hps">illégales</span><span>.</span></span></li>
- <li><span lang="fr"><span class="hps">Pas de c</span><span class="hps">ontenu</span> <span class="hps">trompeur</span><span>,</span> <span class="hps">frauduleux</span>, <span class="hps">conçu pour</span> le phishing <span class="hps">ou</span> <span class="hps">autres</span> <span class="hps">vols d'identité.</span></span></li>
- <li><span lang="fr"><span class="hps">Pas de contenu faisant l'apologie </span><span class="hps">des</span><span class="hps"> jeu</span><span>x d'argents.</span></span></li>
- <li><span lang="fr"><span class="hps">Pas de contenu </span><span class="hps">faisant</span> <span class="hps">la publicité de produits</span> <span class="hps">ou services illicites</span> <span class="hps">ou contrôlés</span><span>.</span></span></li>
- <li><span lang="fr">Pas de contenu <span class="hps">exploitant des enfants</span><span>.</span></span></li>
- <li><span lang="fr"><span class="hps">Pas de c</span><span class="hps">ontenu qui</span> <span class="hps">dégrade</span><span>,</span> <span class="hps">intimide</span><span>,</span> menace, <span class="hps">incite à la violence</span><span>,</span> <span class="hps">ou</span> <span class="hps">encourage des actions</span> <span class="hps">préjudiciables</span> <span class="hps">contre</span> <span class="hps">quelqu'un ou un groupe</span> basées sur <span class="hps">l'âge</span><span>, le sexe</span><span>, la race</span><span>, l'origine ethnique</span><span>, l'origine nationale</span><span>, la religion</span><span>, l'orientation sexuelle</span><span>, le handicap</span><span>, la religion</span><span>, la situation géographique</span> <span class="hps">ou toute autre</span> <span class="hps">catégorie protégée, ou qui constitue un discours de haine</span></span>.</li>
- <li><span lang="fr"><span class="hps">Aucun</span> contenu <span class="hps">qui trompe</span> <span class="hps">un utilisateur</span> <span class="hps">et le pousse à prendre une décision</span> <span class="hps">d'achat</span><span>.</span></span></li>
-</ul>
-
-<h2 id="Fonctionnalité">Fonctionnalité</h2>
-
-<ul>
- <li><span id="result_box" lang="fr"><span class="hps">L'évaluateur </span><span class="hps">doit</span> <span class="hps">être en mesure de mettre en oeuvre </span>l<span class="hps">es fonctionnalités</span> <span class="hps">annoncées</span> <span class="hps">de l'application</span><span>.</span> Les <span class="hps">défauts superficiels </span><span class="hps">et</span> <span class="hps">les inconvénients mineurs</span> <span class="hps">seront signalés </span><span class="hps">au développeur,</span> <span class="hps">mais</span> <span class="hps">n'empêcheront pas </span>l'approbation<span class="hps"> d'une application</span><span class="hps">.</span></span></li>
- <li><span lang="fr"><span class="hps">L'application</span> <span class="hps">ne doit pas</span> <span class="hps">compromettre les performances</span> <span class="hps">ou</span> <span class="hps">la stabilité du système</span><span>.</span></span></li>
-</ul>
-
-<h2 id="Ergonomie">Ergonomie</h2>
-
-<ul>
- <li>Le développeur doit tenter raisonnablement d'optimiser la mise en page de l'application pour la plate-forme cible. L'objectif de cette exigence est d'empêcher des échecs évidents, tels que :
- <ul>
- <li>Une application soumise pour mobile qui est de façon évidente pour un site de bureau.</li>
- <li>Une application qui visiblement ne s'étend pas pour remplir l'espace d'écran disponible (imaginez une application de 320x480 qui ne prend que le coin supérieur sur une tablette, le reste de l'écran demeurant vierge. Ce n'est certainement pas attendu !)</li>
- </ul>
- </li>
- <li>L'application doit mettre en œuvre sa propre méthode de navigation et ne pas compter sur le bouton Chrome du navigateur ou un bouton arrière du matériel qui ne sera pas présent sur tous les périphériques.
- <ul>
- <li>Par exemple, une application sera rejetée si l'évaluateur navigue quelque part dans l'application et ne peut pas revenir en arrière. Les applications ne sont PAS nécessaires pour implémenter une barre de boutons commune aux applications natives.</li>
- <li>Sur Firefox OS v1.1 et versions ultérieures, vous pouvez ajouter la propriété de manifeste <code><a href="https://developer.mozilla.org/en-US/Apps/Build/Manifest#chrome">chrome</a></code> pour ajouter des contrôles de navigation minimaux.</li>
- </ul>
- </li>
- <li>Les éléments de navigation, tels que les boutons et les liens, doivent être faciles à cliquer ou à utiliser.</li>
-</ul>
-
-<h2 id="Politique_de_blocage">Politique de blocage</h2>
-
-<p>Nous espérons que nous ne devrons jamais l'utiliser, mais nous nous réservons le droit de supprimer ("blocklist" (en) "liste noire" ou "liste de blocage" (fr)) toute application publiée qui est plus tard considérée comme contraire aux exigences de sécurité, de confidentialité ou de contenu ; ou des applications qui dégradent sérieusement les performances du système ou du réseau. Les développeurs seront informés de la situation avant qu'une application soit bloquée ; ils seront présupposés être de bons citoyens, à moins que nous ayons des preuves précises. Nous recevrons une assistance complète de l'équipe d'évaluation des applications pour communiquer sur ce qui se passe et résoudre le problème. Des exemples spécifiques, de situations où la liste de blocage est justifiée, comprennent :</p>
-
-<ul>
- <li>Phishing</li>
- <li>Spamming</li>
- <li>Modification du contenu de "Images de poupées v1.0" à "Violence brutale v1.0" (sans actualiser la note de contenu)</li>
- <li>Un mauvais comportement (grave) de l'application pour un grand pourcentage d'utilisateurs - dégradant les performances du téléphone, provoquant des redémarrages, provoquant une perte de données utilisateur, etc. - pour lequel les utilisateurs ne peuvent pas dire que c'est à cause de l'application et s'il n'est pas résolu en redémarrant l'appareil.</li>
- <li>Une application utilisée pour des attaques sur le réseau, tel qu'un déni de service distribué (DDOS)</li>
-</ul>
-
-<h2 id="Plus_d'informations">Plus d'informations</h2>
-
-<p><span id="result_box" lang="fr"><span>Les ressources suivantes fournissent plus d'informations sur le processus d'évaluation des applications et les commentaires :</span></span></p>
-
-<ul>
- <li><a href="https://wiki.mozilla.org/Marketplace/Reviewers/Apps/Testing">Reviewers test criteria</a> — cette page décrit les tests que les évaluateurs effectueront sur votre application.</li>
- <li><a href="https://wiki.mozilla.org/Marketplace/Reviewers/Apps">App reviewers</a> — comment contacter l'équipe d'évaluation et participer à l'examen des applications.</li>
-</ul>
-
-<p> </p>
diff --git a/files/fr/mozilla/marketplace/publication/updating_apps/index.html b/files/fr/mozilla/marketplace/publication/updating_apps/index.html
deleted file mode 100644
index 861bd4447f..0000000000
--- a/files/fr/mozilla/marketplace/publication/updating_apps/index.html
+++ /dev/null
@@ -1,68 +0,0 @@
----
-title: Mises à jour des applications
-slug: Mozilla/Marketplace/Publication/Updating_apps
-translation_of: Archive/Mozilla/Marketplace/Publishing/Updating_apps
----
-<div class="summary">
-<p>Cet article explique le processus par lequel vous mettez à jour des applications publiées, auto-éditées ou publiées sur le<span class="seoSummary"> <a href="https://marketplace.firefox.com/">Firefox Marketplace</a>.</span></p>
-</div>
-
-<div class="note">
-<p><span class="transpan"><span id="tran0">Une fois qu'une application a été installée par un utilisateur, il n'est plus possible de changer son nom par une mise à jour. De nouvelles installations cependant, prendront le nouveau nom de l'application. Ceci est une mesure de sécurité pour éviter les changements de nom sans scrupules.</span></span></p>
-</div>
-
-<h2 id="Mise_à_jour_des_applications_hébergées"><span class="short_text" id="result_box" lang="fr"><span>Mise à jour de</span>s <span>applications hébergées</span></span></h2>
-
-<p><a href="/en-US/Marketplace/Options/Hosted_apps">Hosted Apps</a> <span id="result_box" lang="fr"><span>respectent</span> <span>les règles normales de</span> <span>mise en cache Web</span><span>,</span> <span>et peuvent</span> <span>utiliser des mécanismes</span> <span>avancés</span> <span>pour améliorer le démarrage</span><span> ou</span> <span>pour permettre</span> <span>une utilisation hors ligne</span><span>,</span> <span>tels que</span></span> <span class="transpan"><span style="background-color: #d3d8f1;"> </span></span> <a href="https://developer.mozilla.org/en-US/docs/HTML/Using_the_application_cache">AppCache</a>. Par conséquent<span id="result_box" lang="fr"><span>, il</span> <span>n'y a normalement pas</span> <span>de règles spéciales pour</span> <span>la mise à jour</span> <span>des</span> <span>applications</span> <span>-</span> <span>il vous suffit de</span> <span>mettre à jour l'</span><span>application sur votre</span> <span>site.</span></span></p>
-
-<p>Cependant, quelques changements sur vos applications peuvent impliquer des mises à jour du <a href="/en-US/Apps/Build/Manifest">manifeste.</a></p>
-
-<h3 id="Changer_le_contenu_d'un_manifeste">Changer le contenu d'un manifeste</h3>
-
-<p><span class="transpan"><span id="tran0">Pour mettre à jour les caractéristiques d'une application publiée - comme le nom d'application, le nom du développeur, les langues, les icônes - vous appliquez simplement ces changements au manifeste que vous hébergez. Si vous avez soumis l'application au Marketplace de Firefox et qu'un de ces changements est considéré comme significatif, l'application est marquée pour</span></span> <a href="#Re_review_of_updated_apps">évaluation</a>.</p>
-
-<p><span class="transpan"><span id="tran0">Les moments d'exécution sur le Web et l'OS de Firefox devraient automatiquement détecter ces changements et déclencher une mise à jour chez l'utilisateur. Cependant, vous pouvez manuellement déclencher des mises à jour en inscrivant un champ de version dans le manifeste d'application. Votre application peut alors vérifier la version en inspectant la valeur retournée {{ domxref ("Apps.getInstalled") }}</span></span> . <span class="transpan"><span id="tran0">Si la version installée de l'utilisateur n'est pas à jour, votre application peut déclencher une mise à jour utilisant {{ domxref ("Apps.install") }}. Notez que quelques changements à un manifeste, et en conséquence une installation, peuvent exiger l'approbation de l'utilisateur avant l'exécution de la mise à jour.</span></span></p>
-
-<p>La valeur de version n'est pas utilisée par l'OS de Firefox ni pendant les temps d'exécution sur le Web, donc vous pouvez utiliser n'importe quel schéma de version vous convenant.</p>
-
-<h3 id="Changement_de_l'emplacement_d'un_manifeste">Changement de l'emplacement d'un manifeste</h3>
-
-<p>Vous pouvez vouloir changer l'emplacement du fichier du manifeste de votre application. Typiquement, vous ferez cela pour déplacer l'application vers un nouveau domaine ou vers un sous-domaine qui vous permettront de livrer plusieurs applications hébergées.</p>
-
-<p><span class="transpan"><span id="tran0">Si vous voulez  faire ceci pour des applications soumises au Marketplace de Firefox, retournez à la soumission d'application et dans la page "</span></span> Edit Details "<span class="transpan"><span> changez la valeur de l'URL du manifeste. La suite dépendra du statut de votre application :</span></span></p>
-
-<ul>
- <li><span id="result_box" lang="fr"><span>pour une</span> application <span>publiée</span> <span>(</span><span>ou approuvée</span> <span>mais non publiée</span><span>)</span> <span>,</span> <span>l'application</span> <span>est marquée</span> <span>pour évaluation et</span> <span>vous serez</span> <span>contacté</span> <span>si</span> <span>(</span><span>et seulement si</span><span>) des</span> <span>problèmes ultérieurs</span> <span>sont découverts.</span></span></li>
- <li>Pour des applications non approuvées, l'évaluation se déroulera normalement.</li>
-</ul>
-
-<h3 id="Avis_sur_les_applications_mises_à_jour"><span class="short_text" id="result_box" lang="fr"><span>Avis sur</span> <span>les applications</span> <span>mises à jour</span></span></h3>
-
-<p><span id="result_box" lang="fr"><span>Lorsqu'une</span> <span>applicationi</span> <span>hébergé</span>e <span>est signalée</span> <span>pour évaluation</span> <span>à la suite d'</span><span>une mise à jour</span><span>, ce qui suit</span> <span>se produit </span><span>:</span></span></p>
-
-<ul>
- <li>Le statut  de l'application ne change pas, une application publiée reste publiée .</li>
- <li><span id="result_box" lang="fr"><span>L'application</span> <span>est ajoutée à la</span> <span>file d'attente des évaluations à réaliser</span><span> et</span> <span>quand son tour arrive</span><span> (</span><span>entre</span><span> quelques</span> <span>heures et quelques</span> <span>jours plus tard</span><span>) un évaluateur</span> <span>examine</span> <span>les changements et </span><span>:</span></span>
- <ul>
- <li><span class="short_text" id="result_box" lang="fr"><span>efface</span> <span>le marquage (flag)</span></span> .</li>
- <li><span id="result_box" lang="fr">la <span>rejette</span>, <span>si l'application</span> <span>est</span> <span>complètement cassée,</span></span><span lang="fr"> <span>et vous contacte.</span> <span>Cela supprimera l'application de Firefox Marketplace, si elle a été publiée.</span></span></li>
- <li> <span class="short_text" id="result_box" lang="fr"><span>vous</span> <span>contacte pour</span> <span>de plus amples informations</span><span>.</span></span>   </li>
- </ul>
- </li>
-</ul>
-
-<div class="warning">
-<p><span id="result_box" lang="fr"><span>Dans la mesure du possible</span><span>, vous devez</span> <span>éviter de changer</span> <span>l'emplacement</span> <span>de l'application</span> <span>/</span> <span>manifeste</span> <span>après</span> <span>la publication</span> <span>dans le</span> <span>Marketplace de</span> <span>Firefox</span><span>,</span> <span>en raison de</span> <span>l'impact sur</span> <span>l'utilisateur.</span> <span>Un changement</span> <span>de l'</span><span>emplacement du manifeste</span> <span>se traduira par</span> <span>une nouvelle instance</span> <span>installée de</span> <span>l'</span><span>application lorsque</span></span> {{ domxref("Apps.install") }} <span class="short_text" id="result_box" lang="fr"><span>est invoquée</span></span> . <span id="result_box" lang="fr"><span>De nombreux utilisateurs</span> <span>trouveront cela</span> <span>perturbant.</span></span></p>
-</div>
-
-<h2 id="Mise_à_jour_des_applications_empaquetées"><span class="short_text" id="result_box" lang="fr"><span>Mise à jour</span> <span>des applications</span> <span>empaquetées</span></span></h2>
-
-<p><span class="short_text" lang="fr"><span>Les </span></span><a href="/en-US/docs/Web/Apps/Packaged_apps">Packaged Apps</a> <span id="result_box" lang="fr"> <span>ont un processus</span> <span>de mise à jour</span> <span>différent de celui des</span> <span>applications hébergées</span><span>.</span> <span>Pour mettre à jour</span> <span>une</span> <span>application</span> <span>empaquet</span><span>ée,</span> <span>vous téléchargez</span> <span>une nouvelle version</span> du <span>fichier zip</span> <span>sur le</span> <span>Marketplace de</span> <span>Firefox</span><span>.</span> <span>L'</span><span>application mise à jour</span> <span>est ensuite</span> <span>évaluée et</span><span>,</span> <span>lorsqu'elle est approuvée</span><span>,</span> <span>publiée sur le</span> <span>Marketplace</span><span>.</span></span>  <span id="result_box" lang="fr"><span>Cela déclenche</span> <span>une mise à jour</span> de <span>toutes les</span> <span>versions installées</span><span>.</span> <span>Les utilisateurs de l'OS</span> <span>Firefox</span><span> peuvent</span> <span>également demander</span> <span>une mise à jour</span> <span>en utilisant l'application</span> <span>Paramètres.</span> <span>Pour télécharger</span> <span>une nouvelle</span> <span>version de votre application</span><span>, connectez-vous</span> <span>au Marketplace</span> <span>avec le</span> <span>même compte que</span> pour <span>la présentation précédente,</span> <span>puis cliquez sur</span> <span>l'icône d'engrenage</span> <span>en haut à droite</span> <span>et cliquez sur</span> <span>«</span></span> My Submissions <span lang="fr"><span>» <em>(mes soumissions)</em>.</span></span>   <span id="result_box" lang="fr"><span>Sous</span> <span>l'en-tête</span> <span>«</span></span> Manage My Submissions <span lang="fr"><span>» <em>(gérer mes soumissions)</em> et</span> pour <span>l'application en question</span><span>, cliquez sur</span> <span>"Status</span> <span>&amp;</span> <span>Versions</span><span>.</span><span>"</span> <span>De là</span><span>, faites défiler</span> <span>vers le bas et</span> <span>cliquez sur "</span></span> Select a File " <em>(</em><span lang="fr"><em><span>Sélectionner un fichier</span></em><span><em>)</em> sous </span></span> "Upload New Version" <em><span lang="fr"><span>(</span><span>Télécharger</span> <span>la nouvelle version).</span></span></em>  <span id="result_box" lang="fr"><span>À partir de là, vous</span> <span>pouvez</span> <span>choisir de ne pas</span> <span>avoir</span> <span>une </span> <span>publication</span> <span>automatique de votre application</span> <span>après son évaluation</span> <span>en décochant la case</span> <span> </span></span> "Publish my app in the Firefox Marketplace as soon as it's reviewed". <span lang="fr"> <span>Les appareils des utilisateurs</span> <span>vérifier</span>ont chaque<span> jour l'existence de</span><span> mises à jour</span> <span>d'applications</span><span>,</span> <span>et</span> <span>verront</span> <span>une notification</span> <span>d'une mise à jour</span> <span>disponible</span> <span>pour son téléchargement</span> <span>à leur discrétion.</span></span></p>
-
-<p><img alt="Would you like to publish to marketplace upon review?" src="https://mdn.mozillademos.org/files/8523/publish_checkbox.png" style="height: 232px; width: 1000px;"></p>
-
-<ul>
- <li> <span id="result_box" lang="fr"><span>Lorsque l'application</span> <span>empaquetée</span> <span>mise à jour</span> <span>est publiée, le</span> <span>mini-</span><span>manifeste</span> <span>est mis à jour</span> <span>pour pointer vers le</span> <span>fichier zip</span> <span>mis à jour</span> <span>(</span><span>le mini-</span><span>manifeste n'est</span> <span>pas</span> <span>l'application principale</span> <span>manifeste)</span><span>.</span> <span>L'en-tête</span> </span> <code>ETag</code> <span lang="fr"> <span>est modifié,</span> <span>ce qui déclenche</span> <span>une mise à jour</span> <span>sur le téléphone</span> <span>Firefox</span> <span>OS</span><span>.</span></span></li>
- <li>L'OS Firefox <span id="result_box" lang="fr"><span>vérifie</span> <span>une fois</span> <span>par jour par sondage téléphonique, les</span> <span>modifications apportées aux</span><span> applications</span><span>.</span> </span> <span id="result_box" lang="fr"><span>Pour ce faire, il examine l'URL du mini-manifeste, puis interroge l'URL dans le champ package_path dans le mini-manifeste.</span></span> <span lang="fr"> <span>Cela se fait</span> avec la méthode</span> <code>checkForUpdate()</code> dans la <a href="/en-US/docs/Web/API/App"><code>App</code> object</a>. <span id="result_box" lang="fr"><span>Lorsque</span> <span>l'en-tête</span> <span>ETag</span> <span>change, il</span> <span>sait que l'</span><span>application a été</span> <span>mise à jour</span><span>.</span> <span>Ensuite,</span> <span>il vérifie</span> <span>si le</span> <span>fichier zip</span> <span>a changé.</span></span></li>
- <li>Firefox OS <span id="result_box" lang="fr"><span>contrôle</span> <span>le lot</span> <span>pour les mises à jour</span> <span>des applications</span><span>.</span></span></li>
-</ul>
diff --git a/files/fr/mozilla/marketplace/publish/index.html b/files/fr/mozilla/marketplace/publish/index.html
deleted file mode 100644
index 387fc894de..0000000000
--- a/files/fr/mozilla/marketplace/publish/index.html
+++ /dev/null
@@ -1,25 +0,0 @@
----
-title: Publier sur le Firefox Marketplace
-slug: Mozilla/Marketplace/Publish
-translation_of: Archive/Mozilla/Marketplace/Publish
----
-<div class="summary">
-<p><span id="result_box" lang="fr"><span>Documentation pour la publication d'une application sur Firefox Marketplace.</span></span></p>
-</div>
-
-<div class="row topicpage-table">
-<div class="section">
-<dl>
- <dt><a href="/en-US/Marketplace/Submission/Testing_and_troubleshooting">App testing and troubleshooting</a></dt>
- <dd>Un petit guide pour tester et <span id="result_box" lang="fr"><span>dépanner, à suivre avant de soumettre votre application sur Firefox Marketplace.</span></span></dd>
- <dt><a href="https://developer.mozilla.org/fr/Apps/Publishing/Proposer_une_application">Proposer une application sur le Firefox Market</a></dt>
- <dd>Ce guide étape par étape vous aidera à soumettre votre application avec succès à Firefox Marketplace.</dd>
- <dt><a href="https://developer.mozilla.org/fr/Marketplace/Publication/Marketplace_critere_revue">Critères d'évaluation du Marketplace</a></dt>
- <dd>Une explication des critères qu'une application doit respecter pour être publiée sur Firefox Marketplace; en suivant les règles énoncées dans cet article, vous pouvez faciliter le processus de publication de votre application.</dd>
- <dt><a href="/en-US/docs/Web/Apps/Publishing/Marketplace_screenshot_criteria">Marketplace screenshot criteria</a></dt>
- <dd>Règles pour les captures d'écran à soumettre avec votre application afin de maximiser son impact et sa qualité sur le marché.</dd>
-</dl>
-</div>
-</div>
-
-<p> </p>
diff --git a/files/fr/mozilla/marketplace/publishing/submit/index.html b/files/fr/mozilla/marketplace/publishing/submit/index.html
deleted file mode 100644
index 265a1ad776..0000000000
--- a/files/fr/mozilla/marketplace/publishing/submit/index.html
+++ /dev/null
@@ -1,10 +0,0 @@
----
-title: Submit
-slug: Mozilla/Marketplace/Publishing/Submit
-tags:
- - NeedsTranslation
- - TopicStub
-translation_of: Archive/Mozilla/Marketplace/Publishing/Submit
----
-<p>This section describes the process for submitting an app to Firefox Marketplace</p>
-<p>Residual details: <a href="/en-US/Marketplace/Publishing/Submit/Submitting_an_app">https://developer.mozilla.org/en-US/Marketplace/Publishing/Submit/Submitting_an_app</a></p>
diff --git a/files/fr/mozilla/mathml_project/index.html b/files/fr/mozilla/mathml_project/index.html
deleted file mode 100644
index c5286ce4ab..0000000000
--- a/files/fr/mozilla/mathml_project/index.html
+++ /dev/null
@@ -1,99 +0,0 @@
----
-title: Mozilla MathML Project
-slug: Mozilla/MathML_Project
-tags:
- - MathML
- - MathML Project
- - NeedsTranslation
- - TopicStub
-translation_of: Mozilla/MathML_Project
----
-<p>The Mozilla MathML project is Mozilla's project to build and enhance <a href="/en-US/docs/Web/MathML" title="/en-US/docs/Web/MathML">MathML</a> support within Firefox and other Mozilla-based applications. For a quick overview, see the <a href="http://fred-wang.github.io/MozSummitMathML/index.html">slides for the innovation fairs at Mozilla Summit 2013</a>.</p>
-
-<h2 id="Updates">Updates</h2>
-
-<p><img alt="Mathzilla" class="default internal" src="https://mdn.mozillademos.org/files/6281/mathzilla.svg" style="float: right; height: 150px; width: 150px;"></p>
-
-<ul>
- <li><a href="/docs/Mozilla/MathML_Project/Status" title="Mozilla MathML Project/Status">Status of each tag</a></li>
- <li><a href="/docs/Mozilla/MathML_Project/MathML3Testsuite" title="Mozilla MathML Project/MathML3Testsuite">Result of the MathML 3 Testsuite</a></li>
- <li><a class="external" href="https://www.wg9s.com/mozilla/firefox/">Unofficial nightly builds with MathML patches applied</a> (maintained by Bill Gianopoulos)</li>
- <li><a href="/docs/Mozilla/MathML_Project/Student_Projects" title="Mozilla_MathML_Project/Student_Projects">Student Projects</a></li>
- <li><a href="/docs/Mozilla/MathML_Project/Updates" title="Mozilla_MathML_Project/Updates">All Updates...</a></li>
-</ul>
-
-<h3 id="August_11_2013">August 11, 2013</h3>
-
-<p><a href="http://www.infogridpacific.com/blog/igp-blog-20130811-mathml-in-education-digital-content.html">Math(ML) in Education Digital Content</a></p>
-
-<h3 id="August_6_2013">August 6, 2013</h3>
-
-<p><a href="http://fiduswriter.org/2013/08/06/math-in-the-browser/">Math in the browser</a></p>
-
-<h3 id="May_3_2013">May 3, 2013</h3>
-
-<p><a href="http://www.maths-informatique-jeux.com/blog/frederic/?post/2013/05/03/Firefox-Nightly-passes-the-Acid2-test">Firefox Nightly passes the MathML Acid2 test</a> ; <a href="http://news.slashdot.org/story/13/05/04/0015241/firefox-is-the-first-browser-to-pass-the-mathml-acid2-test" title="http://news.slashdot.org/story/13/05/04/0015241/firefox-is-the-first-browser-to-pass-the-mathml-acid2-test">Slashdot article</a> ; <a href="http://www.ghacks.net/2013/05/04/firefox-first-browser-to-pass-mathml-acid-test-how-about-your-browser/" title="http://www.ghacks.net/2013/05/04/firefox-first-browser-to-pass-mathml-acid-test-how-about-your-browser/">ghacks</a> article.</p>
-
-<h3 id="January_10_2013">January 10, 2013</h3>
-
-<p>Chrome 24 has been released with basic MathML support!</p>
-
-<p><ins>update: MathML disabled again in Chrome 25 :-(</ins></p>
-
-<h3 id="December_1_2012">December 1, 2012</h3>
-
-<p>All the pages of the Mozilla MathML Project have now been <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=585142#c2" title="https://bugzilla.mozilla.org/show_bug.cgi?id=585142#c2">migrated to MDN</a>!</p>
-
-<h3 id="November_26_2012">November 26, 2012</h3>
-
-<p><a href="http://toc.oreilly.com/2012/11/math-typesetting.html" title="http://toc.oreilly.com/2012/11/math-typesetting.html">Math typesetting - Why are we leaving such an important issue to under-resourced volunteers and small organisations?</a></p>
-
-<h2 id="Community">Community</h2>
-
-<ul>
- <li>View Mozilla forums... {{DiscussionList("dev-tech-mathml", "mozilla.dev.tech.mathml")}}</li>
- <li><a class="link-irc" href="irc://irc.mozilla.org/%23mathml" rel="external" title="irc://irc.mozilla.org/%23mathml">IRC channel</a></li>
- <li><a class="link-https" href="https://wiki.mozilla.org/MathML:Home_Page">Wiki used by contributors</a> - check out the latest developments and help us improving MathML in Mozilla.</li>
-</ul>
-
-<h2 id="Links">Links</h2>
-
-<ul>
- <li>Installing <a href="/docs/Mozilla/MathML_Project/Fonts" title="Mozilla MathML Project/Fonts">fonts for Mozilla's MathML engine</a></li>
- <li><a class="external" href="https://www.w3.org/TR/MathML3/">MathML Version 3.0</a> - W3C Recommendation, 21 October 2010</li>
- <li><a class="external" href="https://www.w3.org/Math/testsuite/"><abbr>W3C</abbr> <abbr>MathML</abbr> Test Suite</a> - Designed to check the implementation of each element one attribute (or built-in rendering behavior) at a time in a fairly thorough manner.</li>
- <li><a href="/docs/Web/MathML" title="MathML">MathML in Mozilla Developer Network</a></li>
-</ul>
-
-<h3 id="Sample_MathML_Documents">Sample <abbr>MathML</abbr> Documents</h3>
-
-<ul>
- <li><a href="/docs/Mozilla/MathML_Project/Screenshots" title="Mozilla MathML Project/Screenshots">Screenshots</a></li>
- <li><a href="/docs/Mozilla/MathML_Project/Start" title="Mozilla_MathML_Project/Start"><abbr>MathML</abbr> Start Page</a> - with translations in different languages ( <a href="/ar/docs/Mozilla_MathML_Project/Start" title="/ar/Mozilla_MathML_Project/Start">Arabic</a>, <a href="/zh-CN/docs/Mozilla_MathML_Project/Start" title="/zh-CN/Mozilla_MathML_Project/Start">Chinese</a>, <a href="/he/docs/Mozilla_MathML_Project/Start" title="/he/Mozilla_MathML_Project/Start">Hebrew</a>, <a href="/th/docs/Mozilla_MathML_Project/Start" title="/th/Mozilla_MathML_Project/Start">Thai</a>)</li>
- <li><a class="external" href="/docs/Mozilla/MathML_Project/Basics">MathML Basics</a> - Document tailored to display correctly with just the Symbol font that is pre-installed by default on most OS configurations.</li>
- <li><a class="external" href="/fr/docs/Mozilla/MathML_Project/MathML_Torture_Test"><abbr>MathML</abbr> Torture Test</a> - Comparative testing of MathML rendering against TeX.</li>
- <li>Demo of some MathML tags: <a class="external" href="/docs/Mozilla/MathML_Project/mfrac">mfrac</a>, <a class="external" href="/docs/Mozilla/MathML_Project/mo">mo</a>, <a class="external" href="/docs/Mozilla/MathML_Project/mtable">mtable</a>, <a class="external" href="/docs/Mozilla/MathML_Project/mspace">mspace</a>, <a class="external" href="/docs/Mozilla/MathML_Project/mmultiscripts">mmultiscripts</a>, <a class="external" href="/docs/Mozilla/MathML_Project/roots">msqrt-mroot</a>.</li>
- <li><a class="external" href="/docs/Mozilla/MathML_Project/Extras">MathML Extras</a> - Technology demonstration of some interesting upshots from building natively upon the browser environment.</li>
- <li><a href="/docs/Mozilla/MathML_Project/Various" title="Mozilla_MathML_Project/Various">Various MathML Tests</a> - These pages were imported from <code>layout/mathml/tests/</code>.</li>
- <li><a class="external" href="https://golem.ph.utexas.edu/~distler/blog/archives/000104.html">Blog</a> with comments that include MathML.</li>
-</ul>
-
-<h3 id="Create_MathML_Documents">Create <abbr>MathML</abbr> Documents</h3>
-
-<ul>
- <li><a href="/docs/Web/MathML/Authoring" title="Mozilla MathML Project/Authoring">Authoring MathML</a></li>
- <li><a class="external" href="https://www.w3.org/Math/Software/mathml_software_cat_editors.html">Editors</a></li>
- <li><a class="external" href="https://www.w3.org/Math/Software/mathml_software_cat_converters.html">Converters</a></li>
- <li><a class="external" href="https://www.w3.org/Math/Software/mathml_software_cat_stylesheets.html">Stylesheets</a></li>
-</ul>
-
-<div class="originaldocinfo">
-<h2 id="Original_Document_Information" name="Original_Document_Information">Original Document Information</h2>
-
-<ul>
- <li>Author(s): Roger B. Sidje</li>
- <li>Other Contributors: Frédéric Wang</li>
- <li>Last Updated Date: April 4, 2010</li>
- <li>Copyright Information: Portions of this content are © 1999–2010 by individual mozilla.org contributors; content available under a Creative Commons license | <a class="external" href="http://www.mozilla.org/foundation/licensing/website-content.html">Details</a>.</li>
-</ul>
-</div>
diff --git a/files/fr/mozilla/mathml_project/mathml_torture_test/index.html b/files/fr/mozilla/mathml_project/mathml_torture_test/index.html
deleted file mode 100644
index 10e11ba7ce..0000000000
--- a/files/fr/mozilla/mathml_project/mathml_torture_test/index.html
+++ /dev/null
@@ -1,1445 +0,0 @@
----
-title: Test de torture MathML
-slug: Mozilla/MathML_Project/MathML_Torture_Test
-tags:
- - MathML
-translation_of: Mozilla/MathML_Project/MathML_Torture_Test
----
-<h2 id="MathML_Torture_Test" name="MathML_Torture_Test">Test de torture de MathML</h2>
-<div style="display: none;">
- <h3 id="HTML_Content">HTML Content</h3>
- <pre class="brush: html">&lt;p&gt;
- Render mathematics with:
- &lt;select name="MathFont" id="MathFont"&gt;
- &lt;option value="Default" selected="selected"&gt;Default fonts&lt;/option&gt;
- &lt;option value="Asana"&gt;Asana&lt;/option&gt;
- &lt;option value="MathJax"&gt;MathJax&lt;/option&gt;
- &lt;option value="STIX"&gt;STIX General&lt;/option&gt;
- &lt;option value="AsanaExp"&gt;Asana (experimental)&lt;/option&gt;
- &lt;option value="Cambria"&gt;Cambria (experimental)&lt;/option&gt;
- &lt;option value="TeXGyreBonum"&gt;TeX Gyre Bonum (experimental) &lt;/option&gt;
- &lt;option value="TeXGyrePagella"&gt;TeX Gyre Pagella (experimental) &lt;/option&gt;
- &lt;option value="TeXGyreTermes"&gt;TeX Gyre Termes (experimental) &lt;/option&gt;
- &lt;option value="LatinModern"&gt;Latin Modern (experimental) &lt;/option&gt;
- &lt;option value="Lucida"&gt;Lucida (experimental) &lt;/option&gt;
- &lt;option value="NeoEuler"&gt;Neo Euler (experimental) &lt;/option&gt;
- &lt;option value="STIXWord"&gt;STIX Word (experimental) &lt;/option&gt;
- &lt;option value="XITS"&gt;XITS (experimental) &lt;/option&gt;
- &lt;option value="XITSRTL"&gt;XITS RTL (experimental) &lt;/option&gt;
- &lt;/select&gt; &lt;br/&gt;
-&lt;/p&gt;
-
-&lt;table&gt;
-
-&lt;tr&gt;
-&lt;td&gt;&lt;/td&gt;
-&lt;th scope="col"&gt;As rendered by TeX&lt;/th&gt;
-&lt;th scope="col"&gt;As rendered by your browser&lt;/th&gt;&lt;/tr&gt;
-
-&lt;tr&gt;
-&lt;td&gt;1&lt;/td&gt;
-
-&lt;td&gt;&lt;img src="https://developer.mozilla.org/@api/deki/files/4578/=ex1.png" width="38" height="22"
-alt="TeXbook, 16.2-16.3" /&gt;&lt;/td&gt;
-&lt;td&gt;
-&lt;math display="block"&gt;
-&lt;mrow&gt;
- &lt;msup&gt;
- &lt;mi&gt;x&lt;/mi&gt;
- &lt;mn&gt;2&lt;/mn&gt;
- &lt;/msup&gt;
- &lt;msup&gt;
- &lt;mi&gt;y&lt;/mi&gt;
-
- &lt;mn&gt;2&lt;/mn&gt;
- &lt;/msup&gt;
-&lt;/mrow&gt;
-&lt;/math&gt;
-&lt;/td&gt;&lt;/tr&gt;
-
-&lt;tr&gt;
-&lt;td&gt;2&lt;/td&gt;
-&lt;td&gt;&lt;img src="https://developer.mozilla.org/@api/deki/files/4579/=ex2.png" width="30" height="17" alt="TeXbook, 16.2-16.3" /&gt;&lt;/td&gt;
-&lt;td&gt;
-&lt;math display="block"&gt;
-&lt;!--
-&lt;mrow&gt;
- &lt;msub&gt;&lt;mi&gt;&lt;/mi&gt;&lt;mn&gt;2&lt;/mn&gt;&lt;/msub&gt;
- &lt;msub&gt;&lt;mi&gt;F&lt;/mi&gt;&lt;mn&gt;3&lt;/mn&gt;&lt;/msub&gt;
-&lt;/mrow&gt;
---&gt;
-&lt;mrow&gt;
-
- &lt;mmultiscripts&gt;
- &lt;mi&gt;F&lt;/mi&gt;
- &lt;mn&gt;3&lt;/mn&gt;&lt;none/&gt;
- &lt;mprescripts/&gt;
- &lt;mn&gt;2&lt;/mn&gt;&lt;none/&gt;
- &lt;/mmultiscripts&gt;
-&lt;/mrow&gt;
-&lt;/math&gt;
-
-&lt;/td&gt;&lt;/tr&gt;
-
-&lt;tr&gt;
-&lt;td&gt;3&lt;/td&gt;
-&lt;td&gt;&lt;img src="https://developer.mozilla.org/@api/deki/files/4586/=ex21.png" width="58" height="47" alt="TeXbook, 17-17.1" /&gt;&lt;/td&gt;
-&lt;td&gt;
-&lt;math display="block"&gt;
-&lt;mrow&gt;
- &lt;mfrac&gt;
- &lt;mrow&gt;
- &lt;mi&gt;x&lt;/mi&gt;
- &lt;mo&gt;+&lt;/mo&gt;
-
- &lt;msup&gt;
- &lt;mi&gt;y&lt;/mi&gt;
- &lt;mn&gt;2&lt;/mn&gt;
- &lt;/msup&gt;
- &lt;/mrow&gt;
- &lt;mrow&gt;
- &lt;mi&gt;k&lt;/mi&gt;
-
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mn&gt;1&lt;/mn&gt;
- &lt;/mrow&gt;
- &lt;/mfrac&gt;
-&lt;/mrow&gt;
-&lt;/math&gt;
-&lt;/td&gt;&lt;/tr&gt;
-
-&lt;tr&gt;
-&lt;td&gt;4&lt;/td&gt;
-
-&lt;td&gt;&lt;img src="https://developer.mozilla.org/@api/deki/files/4587/=ex22.png" width="76" height="25" alt="TeXbook, 17-17.1" /&gt;&lt;/td&gt;
-&lt;td&gt;
-&lt;math display="block"&gt;
-&lt;mrow&gt;
- &lt;mi&gt;x&lt;/mi&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;msup&gt;
- &lt;mi&gt;y&lt;/mi&gt;
- &lt;mfrac&gt;
-
- &lt;mn&gt;2&lt;/mn&gt;
- &lt;mrow&gt;
- &lt;mi&gt;k&lt;/mi&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mn&gt;1&lt;/mn&gt;
- &lt;/mrow&gt;
- &lt;/mfrac&gt;
-
- &lt;/msup&gt;
-&lt;/mrow&gt;
-&lt;/math&gt;
-&lt;/td&gt;&lt;/tr&gt;
-
-&lt;tr&gt;
-&lt;td&gt;5&lt;/td&gt;
-&lt;td&gt;&lt;img src="https://developer.mozilla.org/@api/deki/files/4588/=ex23.png" width="30" height="42" alt="TeXbook, 17-17.1" /&gt;&lt;/td&gt;
-&lt;td&gt;
-&lt;math display="block"&gt;
-&lt;mrow&gt;
- &lt;mfrac&gt;
- &lt;mi&gt;a&lt;/mi&gt;
-
- &lt;mrow&gt;
- &lt;mi&gt;b&lt;/mi&gt;
- &lt;mo&gt;/&lt;/mo&gt;
- &lt;mn&gt;2&lt;/mn&gt;
- &lt;/mrow&gt;
- &lt;/mfrac&gt;
-&lt;/mrow&gt;
-&lt;/math&gt;
-
-&lt;/td&gt;&lt;/tr&gt;
-
-&lt;tr&gt;
-&lt;td&gt;6&lt;/td&gt;
-&lt;td&gt;&lt;img src="https://developer.mozilla.org/@api/deki/files/4589/=ex24.png" width="220" height="138" alt="TeXbook, 17.5-17.6" /&gt;&lt;/td&gt;
-&lt;td&gt;
-&lt;math display="block"&gt;
-&lt;mrow&gt;
- &lt;msub&gt;
- &lt;mi&gt;a&lt;/mi&gt;
- &lt;mn&gt;0&lt;/mn&gt;
-
- &lt;/msub&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mfrac&gt;
- &lt;mn&gt;1&lt;/mn&gt;
- &lt;mstyle displaystyle="true" scriptlevel="0"&gt;
- &lt;msub&gt;
- &lt;mi&gt;a&lt;/mi&gt;
-
- &lt;mn&gt;1&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mfrac&gt;
- &lt;mn&gt;1&lt;/mn&gt;
- &lt;mstyle displaystyle="true" scriptlevel="0"&gt;
- &lt;msub&gt;
-
- &lt;mi&gt;a&lt;/mi&gt;
- &lt;mn&gt;2&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mfrac&gt;
- &lt;mn&gt;1&lt;/mn&gt;
- &lt;mstyle displaystyle="true" scriptlevel="0"&gt;
-
- &lt;msub&gt;
- &lt;mi&gt;a&lt;/mi&gt;
- &lt;mn&gt;3&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mfrac&gt;
- &lt;mn&gt;1&lt;/mn&gt;
-
- &lt;mstyle displaystyle="true" scriptlevel="0"&gt;
- &lt;msub&gt;
- &lt;mi&gt;a&lt;/mi&gt;
- &lt;mn&gt;4&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;/mstyle&gt;
- &lt;/mfrac&gt;
- &lt;/mstyle&gt;
- &lt;/mfrac&gt;
-
- &lt;/mstyle&gt;
- &lt;/mfrac&gt;
- &lt;/mstyle&gt;
- &lt;/mfrac&gt;
-&lt;/mrow&gt;
-&lt;/math&gt;
-&lt;/td&gt;&lt;/tr&gt;
-
-&lt;tr&gt;
-&lt;td&gt;7&lt;/td&gt;
-&lt;td&gt;&lt;img src="https://developer.mozilla.org/@api/deki/files/4590/=ex25.png" width="200" height="85" alt="TeXbook, 17.5-17.6" /&gt;&lt;/td&gt;
-&lt;td&gt;
-
-&lt;math&gt;
-&lt;mrow&gt;
- &lt;msub&gt;
- &lt;mi&gt;a&lt;/mi&gt;
- &lt;mn&gt;0&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mfrac&gt;
-
- &lt;mn&gt;1&lt;/mn&gt;
- &lt;mrow&gt;
- &lt;msub&gt;
- &lt;mi&gt;a&lt;/mi&gt;
- &lt;mn&gt;1&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;mo&gt;+&lt;/mo&gt;
-
- &lt;mfrac&gt;
- &lt;mn&gt;1&lt;/mn&gt;
- &lt;mrow&gt;
- &lt;msub&gt;
- &lt;mi&gt;a&lt;/mi&gt;
- &lt;mn&gt;2&lt;/mn&gt;
- &lt;/msub&gt;
-
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mfrac&gt;
- &lt;mn&gt;1&lt;/mn&gt;
- &lt;mrow&gt;
- &lt;msub&gt;
- &lt;mi&gt;a&lt;/mi&gt;
- &lt;mn&gt;3&lt;/mn&gt;
-
- &lt;/msub&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mfrac&gt;
- &lt;mn&gt;1&lt;/mn&gt;
- &lt;mrow&gt;
- &lt;msub&gt;
- &lt;mi&gt;a&lt;/mi&gt;
-
- &lt;mn&gt;4&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;/mrow&gt;
- &lt;/mfrac&gt;
- &lt;/mrow&gt;
- &lt;/mfrac&gt;
- &lt;/mrow&gt;
- &lt;/mfrac&gt;
-
- &lt;/mrow&gt;
- &lt;/mfrac&gt;
-&lt;/mrow&gt;
-&lt;/math&gt;
-&lt;/td&gt;&lt;/tr&gt;
-
-&lt;tr&gt;
-&lt;td&gt;8&lt;/td&gt;
-&lt;td&gt;&lt;img src="https://developer.mozilla.org/@api/deki/files/4591/=ex26.png" width="54" height="50" alt="TeXbook, 17.5-17.6" /&gt;&lt;/td&gt;
-&lt;td&gt;
-&lt;math display="block"&gt;
-&lt;mrow&gt;
- &lt;mo&gt;(&lt;/mo&gt;
-
- &lt;mfrac linethickness="0"&gt;
- &lt;mi&gt;n&lt;/mi&gt;
- &lt;mrow&gt;
- &lt;mi&gt;k&lt;/mi&gt;
- &lt;mo&gt;/&lt;/mo&gt;
- &lt;mn&gt;2&lt;/mn&gt;
- &lt;/mrow&gt;
-
- &lt;/mfrac&gt;
- &lt;mo&gt;)&lt;/mo&gt;
-&lt;/mrow&gt;
-&lt;/math&gt;
-&lt;/td&gt;&lt;/tr&gt;
-
-&lt;tr&gt;
-&lt;td&gt;9&lt;/td&gt;
-&lt;td&gt;&lt;img src="https://developer.mozilla.org/@api/deki/files/4592/=ex27.png" width="237" height="50" alt="TeXbook, 17.7" /&gt;&lt;/td&gt;
-&lt;td&gt;
-&lt;math display="block"&gt;
-&lt;mrow&gt;
- &lt;mrow&gt;
-
-
- &lt;mo&gt;(&lt;/mo&gt;
- &lt;mfrac linethickness="0"&gt;
- &lt;mi&gt;p&lt;/mi&gt;
- &lt;mn&gt;2&lt;/mn&gt;
- &lt;/mfrac&gt;
- &lt;mo&gt;)&lt;/mo&gt;
- &lt;/mrow&gt;
-
- &lt;msup&gt;
- &lt;mi&gt;x&lt;/mi&gt;
- &lt;mn&gt;2&lt;/mn&gt;
- &lt;/msup&gt;
- &lt;msup&gt;
- &lt;mi&gt;y&lt;/mi&gt;
- &lt;mrow&gt;
-
- &lt;mi&gt;p&lt;/mi&gt;
- &lt;mo&gt;-&lt;/mo&gt;
- &lt;mn&gt;2&lt;/mn&gt;
- &lt;/mrow&gt;
- &lt;/msup&gt;
- &lt;mo&gt;-&lt;/mo&gt;
- &lt;mfrac&gt;
-
- &lt;mn&gt;1&lt;/mn&gt;
- &lt;mrow&gt;
- &lt;mn&gt;1&lt;/mn&gt;
- &lt;mo&gt;-&lt;/mo&gt;
- &lt;mi&gt;x&lt;/mi&gt;
- &lt;/mrow&gt;
- &lt;/mfrac&gt;
-
- &lt;mfrac&gt;
- &lt;mn&gt;1&lt;/mn&gt;
- &lt;mrow&gt;
- &lt;mn&gt;1&lt;/mn&gt;
- &lt;mo&gt;-&lt;/mo&gt;
- &lt;msup&gt;
- &lt;mi&gt;x&lt;/mi&gt;
-
- &lt;mn&gt;2&lt;/mn&gt;
- &lt;/msup&gt;
- &lt;/mrow&gt;
- &lt;/mfrac&gt;
-&lt;/mrow&gt;
-&lt;/math&gt;
-&lt;/td&gt;&lt;/tr&gt;
-
-&lt;tr&gt;
-&lt;td&gt;10&lt;/td&gt;
-&lt;td&gt;&lt;img src="https://developer.mozilla.org/@api/deki/files/4593/=ex29.png" width="116" height="63" alt="TeXbook, 17.7-17.8" /&gt;&lt;/td&gt;
-
-&lt;td&gt;
-&lt;math display="block"&gt;
-&lt;mrow&gt;
- &lt;munder&gt;
- &lt;mo&gt;&amp;sum;&lt;/mo&gt;
- &lt;mrow&gt;
- &lt;mfrac linethickness="0"&gt;
- &lt;mrow&gt;
- &lt;mn&gt;0&lt;/mn&gt;
- &lt;mo&gt;&amp;leq;&lt;/mo&gt;
-
- &lt;mi&gt;i&lt;/mi&gt;
- &lt;mo&gt;&amp;leq;&lt;/mo&gt;
- &lt;mi&gt;m&lt;/mi&gt;
- &lt;/mrow&gt;
- &lt;mrow&gt;
- &lt;mn&gt;0&lt;/mn&gt;
- &lt;mo&gt;&amp;lt;&lt;/mo&gt;
-
- &lt;mi&gt;j&lt;/mi&gt;
- &lt;mo&gt;&amp;lt;&lt;/mo&gt;
- &lt;mi&gt;n&lt;/mi&gt;
- &lt;/mrow&gt;
- &lt;/mfrac&gt;
- &lt;/mrow&gt;
- &lt;/munder&gt;
- &lt;mi&gt;P&lt;/mi&gt;
-
- &lt;mo stretchy="false"&gt;(&lt;/mo&gt;
- &lt;mi&gt;i&lt;/mi&gt;
- &lt;mo&gt;,&lt;/mo&gt;
- &lt;mi&gt;j&lt;/mi&gt;
- &lt;mo stretchy="false"&gt;)&lt;/mo&gt;
-&lt;/mrow&gt;
-&lt;/math&gt;
-
-&lt;/td&gt;&lt;/tr&gt;
-
-&lt;tr&gt;
-&lt;td&gt;11&lt;/td&gt;
-&lt;td&gt;&lt;img src="https://developer.mozilla.org/@api/deki/files/4580/=ex3.png" width="27" height="18" alt="TeXbook, 16.2-16.3" /&gt;&lt;/td&gt;
-&lt;td&gt;
-&lt;math display="block"&gt;
-&lt;mrow&gt;
-&lt;msup&gt;
- &lt;mi&gt;x&lt;/mi&gt;
- &lt;mrow&gt;
- &lt;mn&gt;2&lt;/mn&gt;
-
- &lt;mi&gt;y&lt;/mi&gt;
- &lt;/mrow&gt;
-&lt;/msup&gt;
-&lt;/mrow&gt;
-&lt;/math&gt;
-&lt;/td&gt;&lt;/tr&gt;
-
-&lt;tr&gt;
-&lt;td&gt;12&lt;/td&gt;
-&lt;td&gt;&lt;img src="https://developer.mozilla.org/@api/deki/files/4594/=ex30.png" width="175" height="61" alt="TeXbook, 17.8" /&gt;&lt;/td&gt;
-&lt;td&gt;
-&lt;math display="block"&gt;
-&lt;mrow&gt;
-
- &lt;munderover&gt;
- &lt;mo&gt;&amp;sum;&lt;/mo&gt;
- &lt;mrow&gt;
- &lt;mi&gt;i&lt;/mi&gt;
- &lt;mo&gt;=&lt;/mo&gt;
- &lt;mn&gt;1&lt;/mn&gt;
- &lt;/mrow&gt;
-
- &lt;mi&gt;p&lt;/mi&gt;
- &lt;/munderover&gt;
- &lt;munderover&gt;
- &lt;mo&gt;&amp;sum;&lt;/mo&gt;
- &lt;mrow&gt;
- &lt;mi&gt;j&lt;/mi&gt;
- &lt;mo&gt;=&lt;/mo&gt;
-
- &lt;mn&gt;1&lt;/mn&gt;
- &lt;/mrow&gt;
- &lt;mi&gt;q&lt;/mi&gt;
- &lt;/munderover&gt;
- &lt;munderover&gt;
- &lt;mo&gt;&amp;sum;&lt;/mo&gt;
- &lt;mrow&gt;
- &lt;mi&gt;k&lt;/mi&gt;
-
- &lt;mo&gt;=&lt;/mo&gt;
- &lt;mn&gt;1&lt;/mn&gt;
- &lt;/mrow&gt;
- &lt;mi&gt;r&lt;/mi&gt;
- &lt;/munderover&gt;
- &lt;msub&gt;
- &lt;mi&gt;a&lt;/mi&gt;
-
- &lt;mrow&gt;
- &lt;mi&gt;i&lt;/mi&gt;
- &lt;mi&gt;j&lt;/mi&gt;
- &lt;/mrow&gt;
- &lt;/msub&gt;
- &lt;msub&gt;
- &lt;mi&gt;b&lt;/mi&gt;
-
- &lt;mrow&gt;
- &lt;mi&gt;j&lt;/mi&gt;
- &lt;mi&gt;k&lt;/mi&gt;
- &lt;/mrow&gt;
- &lt;/msub&gt;
- &lt;msub&gt;
- &lt;mi&gt;c&lt;/mi&gt;
-
- &lt;mrow&gt;
- &lt;mi&gt;k&lt;/mi&gt;
- &lt;mi&gt;i&lt;/mi&gt;
- &lt;/mrow&gt;
- &lt;/msub&gt;
-&lt;/mrow&gt;
-&lt;/math&gt;
-&lt;/td&gt;&lt;/tr&gt;
-
-&lt;tr&gt;
-
-&lt;td&gt;13&lt;/td&gt;
-&lt;td&gt;&lt;img src="https://developer.mozilla.org/@api/deki/files/4595/=ex31.png" width="405" height="100" alt="TeXbook, 17.9-17.10" /&gt;&lt;/td&gt;
-&lt;td&gt;
-&lt;math display="block"&gt;
-&lt;mrow&gt;
- &lt;msqrt&gt;
- &lt;mn&gt;1&lt;/mn&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;msqrt&gt;
- &lt;mn&gt;1&lt;/mn&gt;
-
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;msqrt&gt;
- &lt;mn&gt;1&lt;/mn&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;msqrt&gt;
- &lt;mn&gt;1&lt;/mn&gt;
- &lt;mo&gt;+&lt;/mo&gt;
-
- &lt;msqrt&gt;
- &lt;mn&gt;1&lt;/mn&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;msqrt&gt;
- &lt;mn&gt;1&lt;/mn&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;msqrt&gt;
-
- &lt;mn&gt;1&lt;/mn&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mi&gt;x&lt;/mi&gt;
- &lt;/msqrt&gt;
- &lt;/msqrt&gt;
- &lt;/msqrt&gt;
- &lt;/msqrt&gt;
-
- &lt;/msqrt&gt;
- &lt;/msqrt&gt;
- &lt;/msqrt&gt;
-&lt;/mrow&gt;
-&lt;/math&gt;
-&lt;/td&gt;&lt;/tr&gt;
-
-&lt;tr&gt;
-&lt;td&gt;14&lt;/td&gt;
-&lt;td&gt;&lt;img src="https://developer.mozilla.org/@api/deki/files/4596/=ex34.png" width="272" height="50" alt="TeXbook, 17.10" /&gt;&lt;/td&gt;
-&lt;td&gt;
-&lt;math display="block"&gt;
-&lt;mrow&gt;
-
- &lt;mrow&gt;
- &lt;mo&gt;(&lt;/mo&gt;
- &lt;mfrac&gt;
- &lt;msup&gt;
- &lt;mo&gt;&amp;part;&lt;/mo&gt;
- &lt;mn&gt;2&lt;/mn&gt;
- &lt;/msup&gt;
- &lt;mrow&gt;
-
- &lt;mo&gt;&amp;part;&lt;/mo&gt;
- &lt;msup&gt;
- &lt;mi&gt;x&lt;/mi&gt;
- &lt;mn&gt;2&lt;/mn&gt;
- &lt;/msup&gt;
- &lt;/mrow&gt;
- &lt;/mfrac&gt;
- &lt;mo&gt;+&lt;/mo&gt;
-
- &lt;mfrac&gt;
- &lt;msup&gt;
- &lt;mo&gt;&amp;part;&lt;/mo&gt;
- &lt;mn&gt;2&lt;/mn&gt;
- &lt;/msup&gt;
- &lt;mrow&gt;
- &lt;mo&gt;&amp;part;&lt;/mo&gt;
- &lt;msup&gt;
-
- &lt;mi&gt;y&lt;/mi&gt;
- &lt;mn&gt;2&lt;/mn&gt;
- &lt;/msup&gt;
- &lt;/mrow&gt;
- &lt;/mfrac&gt;
- &lt;mo&gt;)&lt;/mo&gt;
- &lt;/mrow&gt;
-
- &lt;msup&gt;
- &lt;mrow&gt;
- &lt;mo minsize="1.5"&gt;|&lt;/mo&gt;
- &lt;mi&gt;&amp;#x3C6; &lt;!-- \varphi --&gt;&lt;/mi&gt;
- &lt;mo stretchy="false"&gt;(&lt;/mo&gt;
- &lt;mi&gt;x&lt;/mi&gt;
- &lt;mo&gt;+&lt;/mo&gt;
-
- &lt;mi mathvariant="normal"&gt;i&lt;/mi&gt;
- &lt;mi&gt;y&lt;/mi&gt;
- &lt;mo stretchy="false"&gt;)&lt;/mo&gt;
- &lt;mo minsize="1.5"&gt;|&lt;/mo&gt;
- &lt;/mrow&gt;
- &lt;mn&gt;2&lt;/mn&gt;
-
- &lt;/msup&gt;
- &lt;mo&gt;=&lt;/mo&gt;
- &lt;mn&gt;0&lt;/mn&gt;
-&lt;/mrow&gt;
-&lt;/math&gt;
-&lt;/td&gt;&lt;/tr&gt;
-
-&lt;tr&gt;
-&lt;td&gt;15&lt;/td&gt;
-&lt;td&gt;&lt;img src="https://developer.mozilla.org/@api/deki/files/4581/=ex4.png" width="31" height="22" alt="TeXbook, 16.2-16.3" /&gt;&lt;/td&gt;
-&lt;td&gt;
-
-&lt;math display="block"&gt;
-&lt;mrow&gt;
- &lt;msup&gt;
- &lt;mn&gt;2&lt;/mn&gt;
- &lt;msup&gt;
- &lt;mn&gt;2&lt;/mn&gt;
- &lt;msup&gt;
- &lt;mn&gt;2&lt;/mn&gt;
-
- &lt;mi&gt;x&lt;/mi&gt;
- &lt;/msup&gt;
- &lt;/msup&gt;
- &lt;/msup&gt;
-&lt;/mrow&gt;
-&lt;/math&gt;
-&lt;/td&gt;&lt;/tr&gt;
-
-&lt;tr&gt;
-&lt;td&gt;16&lt;/td&gt;
-&lt;td&gt;&lt;img src="https://developer.mozilla.org/@api/deki/files/4597/=ex40.png" width="55" height="49" alt="TeXbook, 18.10-18.11" /&gt;&lt;/td&gt;
-
-&lt;td&gt;
-&lt;math display="block"&gt;
-&lt;mrow&gt;
- &lt;msubsup&gt;
- &lt;mo stretchy="false"&gt;&amp;int;&lt;/mo&gt;
- &lt;mn&gt;1&lt;/mn&gt;
- &lt;mi&gt;x&lt;/mi&gt;
- &lt;/msubsup&gt;
- &lt;mfrac&gt;
-
- &lt;mrow&gt;&lt;mi&gt;d&lt;/mi&gt;&lt;mi&gt;t&lt;/mi&gt;&lt;/mrow&gt;
- &lt;mi&gt;t&lt;/mi&gt;
- &lt;/mfrac&gt;
-&lt;/mrow&gt;
-&lt;/math&gt;
-&lt;/td&gt;&lt;/tr&gt;
-
-&lt;tr&gt;
-&lt;td&gt;17&lt;/td&gt;
-&lt;td&gt;&lt;img src="https://developer.mozilla.org/@api/deki/files/4599/=ex41.png" width="91" height="47" alt="TeXbook, 18.12-18.13" /&gt;&lt;/td&gt;
-&lt;td&gt;
-
-&lt;math display="block"&gt;
-&lt;mrow&gt;
- &lt;msub&gt;
- &lt;mo&gt;&amp;#x222C; &lt;!-- \iint --&gt;&lt;/mo&gt;
- &lt;mi&gt;D&lt;/mi&gt;
- &lt;/msub&gt;
- &lt;mi&gt;d&lt;/mi&gt;&lt;mi&gt;x&lt;/mi&gt;
- &lt;space width="thinmathspace"/&gt;
-
- &lt;mi&gt;d&lt;/mi&gt;&lt;mi&gt;y&lt;/mi&gt;
-&lt;/mrow&gt;
-&lt;/math&gt;
-&lt;/td&gt;&lt;/tr&gt;
-
-&lt;tr&gt;
-&lt;td&gt;18&lt;/td&gt;
-&lt;td&gt;&lt;img src="https://developer.mozilla.org/@api/deki/files/4600/=ex43.png" width="250" height="66" alt="TeXbook, 18.23" /&gt;&lt;/td&gt;
-&lt;td&gt;
-&lt;math display="block"&gt;
-&lt;mrow&gt;
- &lt;mi&gt;f&lt;/mi&gt;
-
- &lt;mo stretchy="false"&gt;(&lt;/mo&gt;
- &lt;mi&gt;x&lt;/mi&gt;
- &lt;mo stretchy="false"&gt;)&lt;/mo&gt;
- &lt;mo&gt;=&lt;/mo&gt;
- &lt;mrow&gt;
- &lt;mo&gt;{&lt;/mo&gt;
-
- &lt;mtable&gt;
- &lt;mtr&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mrow&gt;
- &lt;mn&gt;1&lt;/mn&gt;
- &lt;mo&gt;/&lt;/mo&gt;
- &lt;mn&gt;3&lt;/mn&gt;
-
- &lt;/mrow&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="left"&gt;
- &lt;mrow&gt;
- &lt;mtext&gt;if&amp;nbsp;&lt;/mtext&gt;
- &lt;mn&gt;0&lt;/mn&gt;
- &lt;mo&gt;&amp;leq;&lt;/mo&gt;
- &lt;mi&gt;x&lt;/mi&gt;
-
- &lt;mo&gt;&amp;leq;&lt;/mo&gt;
- &lt;mn&gt;1&lt;/mn&gt;
- &lt;mo&gt;;&lt;/mo&gt;
- &lt;/mrow&gt;
- &lt;/mtd&gt;
- &lt;/mtr&gt;
- &lt;mtr&gt;
- &lt;mtd columnalign="center"&gt;
-
- &lt;mrow&gt;
- &lt;mn&gt;2&lt;/mn&gt;
- &lt;mo&gt;/&lt;/mo&gt;
- &lt;mn&gt;3&lt;/mn&gt;
- &lt;/mrow&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
-
- &lt;mrow&gt;
- &lt;mtext&gt;if&amp;nbsp;&lt;/mtext&gt;
- &lt;mn&gt;3&lt;/mn&gt;
- &lt;mo&gt;&amp;leq;&lt;/mo&gt;
- &lt;mi&gt;x&lt;/mi&gt;
- &lt;mo&gt;&amp;leq;&lt;/mo&gt;
- &lt;mn&gt;4&lt;/mn&gt;
-
- &lt;mo&gt;;&lt;/mo&gt;
- &lt;/mrow&gt;
- &lt;/mtd&gt;
- &lt;/mtr&gt;
- &lt;mtr&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mn&gt;0&lt;/mn&gt;
- &lt;/mtd&gt;
-
- &lt;mtd columnalign="left"&gt;
- &lt;mtext&gt;elsewhere.&lt;/mtext&gt;
- &lt;/mtd&gt;
- &lt;/mtr&gt;
- &lt;/mtable&gt;
- &lt;/mrow&gt;
-&lt;/mrow&gt;
-&lt;/math&gt;
-&lt;/td&gt;&lt;/tr&gt;
-
-&lt;tr&gt;
-&lt;td&gt;19&lt;/td&gt;
-&lt;td&gt;&lt;img src="https://developer.mozilla.org/@api/deki/files/4601/=ex44.png" width="101" height="44" alt="TeXbook, 18.23-18.24" /&gt;&lt;/td&gt;
-&lt;td&gt;
-&lt;math display="block"&gt;
-&lt;mover&gt;
- &lt;mrow&gt;
- &lt;mi&gt;x&lt;/mi&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mo&gt;...&lt;/mo&gt;
-
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mi&gt;x&lt;/mi&gt;
- &lt;/mrow&gt;
- &lt;mover&gt;
- &lt;mo&gt;&amp;OverBrace;&lt;/mo&gt;
- &lt;mrow&gt;&lt;mi&gt;k&lt;/mi&gt; &lt;mspace width="thinmathspace"/&gt; &lt;mtext&gt;times&lt;/mtext&gt;&lt;/mrow&gt;
- &lt;/mover&gt;
-
-&lt;/mover&gt;
-&lt;/math&gt;
-&lt;/td&gt;&lt;/tr&gt;
-
-&lt;tr&gt;
-&lt;td&gt;20&lt;/td&gt;
-&lt;td&gt;&lt;img src="https://developer.mozilla.org/@api/deki/files/4582/=ex5.png" width="25" height="13" alt="TeXbook, 16.2-16.3" /&gt;&lt;/td&gt;
-&lt;td&gt;
-&lt;math display="block"&gt;
-&lt;mrow&gt;
- &lt;msub&gt;
- &lt;mi&gt;y&lt;/mi&gt;
- &lt;msup&gt;
-
- &lt;mi&gt;x&lt;/mi&gt;
- &lt;mn&gt;2&lt;/mn&gt;
- &lt;/msup&gt;
- &lt;/msub&gt;
-&lt;/mrow&gt;
-&lt;/math&gt;
-&lt;/td&gt;&lt;/tr&gt;
-
-&lt;tr&gt;
-&lt;td&gt;21&lt;/td&gt;
-
-&lt;td&gt;&lt;img src="https://developer.mozilla.org/@api/deki/files/4602/=ex51.png" width="253" height="56" alt="TeXbook, 18.40" /&gt;&lt;/td&gt;
-&lt;td&gt;
-&lt;math display="block"&gt;
-&lt;mrow&gt;
- &lt;munder&gt;
- &lt;mo&gt;&amp;sum;&lt;/mo&gt;
- &lt;mrow&gt;
- &lt;mi&gt;p&lt;/mi&gt;
- &lt;mtext&gt;&amp;nbsp;prime&lt;/mtext&gt;
- &lt;/mrow&gt;
-
- &lt;/munder&gt;
- &lt;mi&gt;f&lt;/mi&gt;
- &lt;mo stretchy="false"&gt;(&lt;/mo&gt;
- &lt;mi&gt;p&lt;/mi&gt;
- &lt;mo stretchy="false"&gt;)&lt;/mo&gt;
- &lt;mo&gt;=&lt;/mo&gt;
-
- &lt;msub&gt;
- &lt;mo stretchy="false"&gt;&amp;int;&lt;/mo&gt;
- &lt;mrow&gt;
- &lt;mi&gt;t&lt;/mi&gt;
- &lt;mo&gt;&amp;gt;&lt;/mo&gt;
- &lt;mn&gt;1&lt;/mn&gt;
- &lt;/mrow&gt;
- &lt;/msub&gt;
-
- &lt;mi&gt;f&lt;/mi&gt;
- &lt;mo stretchy="false"&gt;(&lt;/mo&gt;
- &lt;mi&gt;t&lt;/mi&gt;
- &lt;mo stretchy="false"&gt;)&lt;/mo&gt;
- &lt;mspace width="thinmathspace"/&gt;
- &lt;mi&gt;d&lt;/mi&gt;
- &lt;mi&gt;&amp;pi;&lt;/mi&gt;
- &lt;mo stretchy="false"&gt;(&lt;/mo&gt;
- &lt;mi&gt;t&lt;/mi&gt;
- &lt;mo stretchy="false"&gt;)&lt;/mo&gt;
-&lt;/mrow&gt;
-&lt;/math&gt;
-&lt;/td&gt;&lt;/tr&gt;
-
-&lt;tr&gt;
-&lt;td&gt;22&lt;/td&gt;
-
-&lt;td&gt;&lt;img src="https://developer.mozilla.org/@api/deki/files/4603/=ex52.png" width="159" height="81" alt="TeXbook, 18.41" /&gt;&lt;/td&gt;
-&lt;td&gt;
-&lt;math display="block"&gt;
-&lt;mrow&gt;
- &lt;mo stretchy="false"&gt;{&lt;/mo&gt;
- &lt;munder&gt;
- &lt;mrow&gt;
- &lt;mover&gt;
- &lt;mrow&gt;
- &lt;mpadded width="0em"&gt;&lt;mphantom&gt;&lt;mo&gt;(&lt;/mo&gt;&lt;/mphantom&gt;&lt;/mpadded&gt;
- &lt;mi&gt;a&lt;/mi&gt;
- &lt;mo&gt;,&lt;/mo&gt;
- &lt;mo&gt;...&lt;/mo&gt;
- &lt;mo&gt;,&lt;/mo&gt;
- &lt;mi&gt;a&lt;/mi&gt;
- &lt;/mrow&gt;
-
- &lt;mover&gt;
- &lt;mo&gt;&amp;OverBrace;&lt;/mo&gt;
- &lt;mrow&gt;
- &lt;mi&gt;k&lt;/mi&gt;
- &lt;mtext&gt;&amp;nbsp;&lt;/mtext&gt;
- &lt;mi&gt;a&lt;/mi&gt;
- &lt;mtext&gt;'s&lt;/mtext&gt;
-
- &lt;/mrow&gt;
- &lt;/mover&gt;
- &lt;/mover&gt;
- &lt;mo&gt;,&lt;/mo&gt;
- &lt;mover&gt;
- &lt;mrow&gt;
- &lt;mpadded width="0em"&gt;&lt;mphantom&gt;&lt;mo&gt;(&lt;/mo&gt;&lt;/mphantom&gt;&lt;/mpadded&gt;
- &lt;mi&gt;b&lt;/mi&gt;
- &lt;mo&gt;,&lt;/mo&gt;
- &lt;mo&gt;...&lt;/mo&gt;
- &lt;mo&gt;,&lt;/mo&gt;
- &lt;mi&gt;b&lt;/mi&gt;
- &lt;/mrow&gt;
-
- &lt;mover&gt;
- &lt;mo&gt;&amp;OverBrace;&lt;/mo&gt;
- &lt;mrow&gt;
- &lt;mi&gt;&amp;ell;&lt;/mi&gt;
- &lt;mtext&gt;&amp;nbsp;&lt;/mtext&gt;
- &lt;mi&gt;b&lt;/mi&gt;
- &lt;mtext&gt;'s&lt;/mtext&gt;
- &lt;/mrow&gt;
-
- &lt;/mover&gt;
- &lt;/mover&gt;
- &lt;/mrow&gt;
- &lt;munder&gt;
- &lt;mo&gt;&amp;UnderBrace;&lt;/mo&gt;
- &lt;mrow&gt;
- &lt;mi&gt;k&lt;/mi&gt;
- &lt;mo&gt;+&lt;/mo&gt;
-
- &lt;mi&gt;&amp;ell;&lt;/mi&gt;
- &lt;mtext&gt;&amp;nbsp;elements&lt;/mtext&gt;
- &lt;/mrow&gt;
- &lt;/munder&gt;
- &lt;/munder&gt;
- &lt;mo stretchy="false"&gt;}&lt;/mo&gt;
-&lt;/mrow&gt;
-&lt;/math&gt;
-&lt;/td&gt;&lt;/tr&gt;
-
-&lt;tr&gt;
-&lt;td&gt;23&lt;/td&gt;
-&lt;td&gt;&lt;img src="https://developer.mozilla.org/@api/deki/files/4604/=ex53.png" width="213" height="108" alt="TeXbook, 18.42" /&gt;&lt;/td&gt;
-&lt;td&gt;
-&lt;math display="block"&gt;
-&lt;mrow&gt;
- &lt;mo&gt;(&lt;/mo&gt;
- &lt;mtable&gt;
- &lt;mtr&gt;
- &lt;mtd columnalign="center"&gt;
-
- &lt;mrow&gt;
- &lt;mo&gt;(&lt;/mo&gt;
- &lt;mtable&gt;
- &lt;mtr&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mi&gt;a&lt;/mi&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
-
- &lt;mi&gt;b&lt;/mi&gt;
- &lt;/mtd&gt;
- &lt;/mtr&gt;
- &lt;mtr&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mi&gt;c&lt;/mi&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
-
- &lt;mi&gt;d&lt;/mi&gt;
- &lt;/mtd&gt;
- &lt;/mtr&gt;
- &lt;/mtable&gt;
- &lt;mo&gt;)&lt;/mo&gt;
- &lt;/mrow&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
-
- &lt;mrow&gt;
- &lt;mo&gt;(&lt;/mo&gt;
- &lt;mtable&gt;
- &lt;mtr&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mi&gt;e&lt;/mi&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
-
- &lt;mi&gt;f&lt;/mi&gt;
- &lt;/mtd&gt;
- &lt;/mtr&gt;
- &lt;mtr&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mi&gt;g&lt;/mi&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
-
- &lt;mi&gt;h&lt;/mi&gt;
- &lt;/mtd&gt;
- &lt;/mtr&gt;
- &lt;/mtable&gt;
- &lt;mo&gt;)&lt;/mo&gt;
- &lt;/mrow&gt;
- &lt;/mtd&gt;
- &lt;/mtr&gt;
-
- &lt;mtr&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mn&gt;0&lt;/mn&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mrow&gt;
- &lt;mo&gt;(&lt;/mo&gt;
- &lt;mtable&gt;
-
- &lt;mtr&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mi&gt;i&lt;/mi&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mi&gt;j&lt;/mi&gt;
- &lt;/mtd&gt;
- &lt;/mtr&gt;
-
- &lt;mtr&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mi&gt;k&lt;/mi&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mi&gt;l&lt;/mi&gt;
- &lt;/mtd&gt;
- &lt;/mtr&gt;
-
- &lt;/mtable&gt;
- &lt;mo&gt;)&lt;/mo&gt;
- &lt;/mrow&gt;
- &lt;/mtd&gt;
- &lt;/mtr&gt;
- &lt;/mtable&gt;
- &lt;mo&gt;)&lt;/mo&gt;
-&lt;/mrow&gt;
-
-&lt;/math&gt;
-&lt;/td&gt;&lt;/tr&gt;
-
-&lt;tr&gt;
-&lt;td&gt;24&lt;/td&gt;
-&lt;td&gt;&lt;img src="https://developer.mozilla.org/@api/deki/files/4605/=ex54.png" width="344" height="130" alt="TeXbook, 18.43" /&gt;&lt;/td&gt;
-&lt;td&gt;
-&lt;math display="block"&gt;
-&lt;mrow&gt;
- &lt;mi&gt;det&lt;/mi&gt;
- &lt;mo&gt;|&lt;/mo&gt;
- &lt;mtable&gt;
-
- &lt;mtr&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;msub&gt;
- &lt;mi&gt;c&lt;/mi&gt;
- &lt;mn&gt;0&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
-
- &lt;msub&gt;
- &lt;mi&gt;c&lt;/mi&gt;
- &lt;mn&gt;1&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;msub&gt;
- &lt;mi&gt;c&lt;/mi&gt;
-
- &lt;mn&gt;2&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mo&gt;&amp;mldr;&lt;/mo&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;msub&gt;
-
- &lt;mi&gt;c&lt;/mi&gt;
- &lt;mi&gt;n&lt;/mi&gt;
- &lt;/msub&gt;
- &lt;/mtd&gt;
- &lt;/mtr&gt;
- &lt;mtr&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;msub&gt;
-
- &lt;mi&gt;c&lt;/mi&gt;
- &lt;mn&gt;1&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;msub&gt;
- &lt;mi&gt;c&lt;/mi&gt;
-
- &lt;mn&gt;2&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;msub&gt;
- &lt;mi&gt;c&lt;/mi&gt;
- &lt;mn&gt;3&lt;/mn&gt;
-
- &lt;/msub&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mo&gt;&amp;mldr;&lt;/mo&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;msub&gt;
- &lt;mi&gt;c&lt;/mi&gt;
-
- &lt;mrow&gt;
- &lt;mi&gt;n&lt;/mi&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mn&gt;1&lt;/mn&gt;
- &lt;/mrow&gt;
- &lt;/msub&gt;
- &lt;/mtd&gt;
-
- &lt;/mtr&gt;
- &lt;mtr&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;msub&gt;
- &lt;mi&gt;c&lt;/mi&gt;
- &lt;mn&gt;2&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;/mtd&gt;
-
- &lt;mtd columnalign="center"&gt;
- &lt;msub&gt;
- &lt;mi&gt;c&lt;/mi&gt;
- &lt;mn&gt;3&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;msub&gt;
-
- &lt;mi&gt;c&lt;/mi&gt;
- &lt;mn&gt;4&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mo&gt;&amp;mldr;&lt;/mo&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
-
- &lt;msub&gt;
- &lt;mi&gt;c&lt;/mi&gt;
- &lt;mrow&gt;
- &lt;mi&gt;n&lt;/mi&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mn&gt;2&lt;/mn&gt;
- &lt;/mrow&gt;
-
- &lt;/msub&gt;
- &lt;/mtd&gt;
- &lt;/mtr&gt;
- &lt;mtr&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mo&gt;&amp;#x22EE;&lt;/mo&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mo&gt;&amp;#x22EE;&lt;/mo&gt;
-
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mo&gt;&amp;#x22EE;&lt;/mo&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mo&gt;&amp;#x22EE;&lt;/mo&gt;
- &lt;/mtd&gt;
-
- &lt;/mtr&gt;
- &lt;mtr&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;msub&gt;
- &lt;mi&gt;c&lt;/mi&gt;
- &lt;mi&gt;n&lt;/mi&gt;
- &lt;/msub&gt;
- &lt;/mtd&gt;
-
- &lt;mtd columnalign="center"&gt;
- &lt;msub&gt;
- &lt;mi&gt;c&lt;/mi&gt;
- &lt;mrow&gt;
- &lt;mi&gt;n&lt;/mi&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mn&gt;1&lt;/mn&gt;
-
- &lt;/mrow&gt;
- &lt;/msub&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;msub&gt;
- &lt;mi&gt;c&lt;/mi&gt;
- &lt;mrow&gt;
- &lt;mi&gt;n&lt;/mi&gt;
-
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mn&gt;2&lt;/mn&gt;
- &lt;/mrow&gt;
- &lt;/msub&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mo&gt;&amp;mldr;&lt;/mo&gt;
- &lt;/mtd&gt;
-
- &lt;mtd columnalign="center"&gt;
- &lt;msub&gt;
- &lt;mi&gt;c&lt;/mi&gt;
- &lt;mrow&gt;
- &lt;mn&gt;2&lt;/mn&gt;
- &lt;mi&gt;n&lt;/mi&gt;
- &lt;/mrow&gt;
-
- &lt;/msub&gt;
- &lt;/mtd&gt;
- &lt;/mtr&gt;
- &lt;/mtable&gt;
- &lt;mo&gt;|&lt;/mo&gt;
- &lt;mo&gt;&amp;gt;&lt;/mo&gt;
- &lt;mn&gt;0&lt;/mn&gt;
-&lt;/mrow&gt;
-
-&lt;/math&gt;
-&lt;/td&gt;&lt;/tr&gt;
-
-&lt;tr&gt;
-&lt;td&gt;25&lt;/td&gt;
-&lt;td&gt;&lt;img src="https://developer.mozilla.org/@api/deki/files/4598/=ex6.png" width="25" height="14" alt="TeXbook, 16.2-16.3" /&gt;&lt;/td&gt;
-&lt;td&gt;
-&lt;math display="block"&gt;
-&lt;msub&gt;
- &lt;mi&gt;y&lt;/mi&gt;
- &lt;msub&gt;
- &lt;mi&gt;x&lt;/mi&gt;
-
- &lt;mn&gt;2&lt;/mn&gt;
- &lt;/msub&gt;
-&lt;/msub&gt;
-&lt;/math&gt;
-&lt;/td&gt;&lt;/tr&gt;
-
-&lt;tr&gt;
-&lt;td&gt;26&lt;/td&gt;
-&lt;td&gt;&lt;img src="https://developer.mozilla.org/@api/deki/files/4583/=ex7.png" width="90" height="23" alt="TeXbook, 16.4-16.5" /&gt;&lt;/td&gt;
-&lt;td&gt;
-&lt;math display="block"&gt;
-&lt;mrow&gt;
- &lt;msubsup&gt;
-
- &lt;mi&gt;x&lt;/mi&gt;
- &lt;mn&gt;92&lt;/mn&gt;
- &lt;mn&gt;31415&lt;/mn&gt;
- &lt;/msubsup&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mi&gt;&amp;pi;&lt;/mi&gt;
-&lt;/mrow&gt;
-
-&lt;/math&gt;
-&lt;/td&gt;&lt;/tr&gt;
-
-&lt;tr&gt;
-&lt;td&gt;27&lt;/td&gt;
-&lt;td&gt;&lt;img src="https://developer.mozilla.org/@api/deki/files/4584/=ex8.png" width="27" height="36" alt="TeXbook, 16.4-16.5" /&gt;&lt;/td&gt;
-&lt;td&gt;
-&lt;math display="block"&gt;
-&lt;msubsup&gt;
- &lt;mi&gt;x&lt;/mi&gt;
- &lt;msubsup&gt;
- &lt;mi&gt;y&lt;/mi&gt;
-
- &lt;mi&gt;b&lt;/mi&gt;
- &lt;mi&gt;a&lt;/mi&gt;
- &lt;/msubsup&gt;
- &lt;msubsup&gt;
- &lt;mi&gt;z&lt;/mi&gt;
- &lt;mi&gt;c&lt;/mi&gt;
- &lt;mi&gt;d&lt;/mi&gt;
-
- &lt;/msubsup&gt;
-&lt;/msubsup&gt;
-&lt;/math&gt;
-&lt;/td&gt;&lt;/tr&gt;
-
-&lt;tr&gt;
-&lt;td&gt;28&lt;/td&gt;
-&lt;td&gt;&lt;img src="https://developer.mozilla.org/@api/deki/files/4585/=ex9.png" width="24" height="22" alt="TeXbook, 16.4-16.5" /&gt;&lt;/td&gt;
-&lt;td&gt;
-&lt;math display="block"&gt;
-&lt;msubsup&gt;
- &lt;mi&gt;y&lt;/mi&gt;
- &lt;mn&gt;3&lt;/mn&gt;
-
- &lt;mrow&gt;
- &lt;mo&gt;&amp;prime;&lt;/mo&gt;
- &lt;mo&gt;&amp;prime;&lt;/mo&gt;
- &lt;mo&gt;&amp;prime;&lt;/mo&gt;
- &lt;/mrow&gt;
-&lt;/msubsup&gt;
-&lt;/math&gt;
-
-&lt;/td&gt;&lt;/tr&gt;
-&lt;/table&gt;</pre>
- <h3 id="CSS_Content">CSS Content</h3>
- <pre class="brush: css"> /* Table style */
-
- body {
- text-align: center;
- }
-
- table
- {
- border: solid thin;
- border-collapse: collapse;
- margin-left: auto;
- margin-right: auto;
- }
-
- th
- {
- background-color: #ddf;
- border: solid thin;
- color: black;
- padding: 5px;
- }
-
- td
- {
- border: solid thin;
- padding: 5px;
- text-align: center;
- }
-
- /* Asana */
-
- .Asana ::-moz-math-stretchy {
- font-family: Asana Math;
- }
-
- .Asana math, .Asana [mathvariant] {
- font-family: Asana Math;
- }
-
- .Asana [mathvariant="sans-serif"],
- .Asana [mathvariant="bold-sans-serif"],
- .Asana [mathvariant="sans-serif-italic"],
- .Asana [mathvariant="sans-serif-bold-italic"] {
- font-family: sans-serif;
- }
-
- .Asana [mathvariant="monospace"] {
- font-family: monospace;
- }
-
- /* MathJax */
-
- .MathJax ::-moz-math-stretchy {
- font-family: MathJax_Main;
- }
-
- .MathJax math, .MathJax [mathvariant] {
- font-family: MathJax_Main;
- }
-
- .MathJax [mathvariant="sans-serif"],
- .MathJax [mathvariant="bold-sans-serif"],
- .MathJax [mathvariant="sans-serif-italic"]
- .MathJax [mathvariant="sans-serif-bold-italic"] {
- font-family: MathJax_SansSerif;
- }
-
- .MathJax [mathvariant="monospace"] {
- font-family: MathJax_Typewriter;
- }
-
- .MathJax [mathvariant="fraktur"],
- .MathJax [mathvariant="bold-fraktur"] {
- font-family: MathJax_Fraktur;
- }
-
- .MathJax [mathvariant="script"],
- .MathJax [mathvariant="bold-script"] {
- font-family: MathJax_Script;
- }
-
- .MathJax [mathvariant="double-struck"] {
- font-family: MathJax_AMS;
- }
-
- /* STIX */
-
- .STIX ::-moz-math-stretchy {
- font-family: STIXNonUnicode, STIXSizeOneSym, STIXSize1, STIXGeneral;
- }
-
- .STIX math, .STIX [mathvariant] {
- font-family: STIXGeneral;
- }
-
- .STIX [mathvariant="sans-serif"],
- .STIX [mathvariant="bold-sans-serif"],
- .STIX [mathvariant="sans-serif-italic"],
- .STIX [mathvariant="sans-serif-bold-italic"] {
- font-family: sans-serif;
- }
-
- .STIX [mathvariant="monospace"] {
- font-family: monospace;
- }
-
- /**** Experimental Open Type MATH fonts ****/
-
- /* AsanaExp */
- .AsanaExp math {
- font-family: Asana Math;
- }
-
- /* Cambria */
- .Cambria math {
- font-family: Cambria Math;
- }
-
- /* TeXGyreBonum */
- .TeXGyreBonum math {
- font-family: TeX Gyre Bonum Math;
- }
-
- /* TeXGyrePagella */
- .TeXGyrePagella math {
- font-family: TeX Gyre Pagella Math;
- }
-
- /* TeXGyreTermes */
- .TeXGyreTermes math {
- font-family: TeX Gyre Termes Math;
- }
-
- /* LatinModern */
- .LatinModern math {
- font-family: Latin Modern Math;
- }
-
- /* Lucida */
- .Lucida math {
- font-family: Lucida Bright Math;
- }
-
- /* NeoEuler */
- .NeoEuler math {
- font-family: Neo Euler;
- }
-
- /* STIXWord */
- .STIXWord math {
- font-family: STIX Math;
- }
-
- /* XITS */
- .XITS math {
- font-family: XITS Math;
- }
-
- /* XITS RTL */
- .XITSRTL math {
- font-family: XITS Math;
- direction: rtl;
- }
-
-</pre>
- <h3 id="JavaScript_Content">JavaScript Content</h3>
- <pre class="brush: js"> function updateMathFont()
- {
- var mathFont = document.getElementById("MathFont").value;
- if (mathFont == "Default") {
- document.body.removeAttribute("class");
- } else {
- document.body.setAttribute("class", mathFont);
- }
- }
-
- function load()
- {
- document.getElementById("MathFont").
- addEventListener("change", updateMathFont, false)
- }
-
- window.addEventListener("load", load, false);
-
-</pre>
-</div>
-<p>Note: Afin d'obtenir le meilleur rendu pour les équations ci-dessous, assurez-vous d'avoir les <a href="/en-US/docs/Mozilla_MathML_Project/Fonts" title="/en-US/docs/Mozilla_MathML_Project/Fonts">polices mathématiques</a> installées. Cette page contient également plus d'informations sur les <a href="https://developer.mozilla.org/en-US/docs/Mozilla/MathML_Project/Fonts#Experimental_Fonts_with_a_MATH_table">polices expérimentales avec une table MATH</a>, qui ne sont pas encore supportées ( voir aussi cette <a href="http://www.maths-informatique-jeux.com/ulule/mathml_torture_test/">version utilisant les Web fonts</a>).</p>
-<p> </p>
-<p>{{ EmbedLiveSample('MathML_Torture_Test', '100%', '2500px') }}</p>
-<div id="cke_pastebin" style="position: absolute; top: 74.6667px; width: 1px; height: 1px; overflow: hidden; left: -1000px;">
- <br>
-  </div>
diff --git a/files/fr/mozilla/mobile/balise_meta_viewport/index.html b/files/fr/mozilla/mobile/balise_meta_viewport/index.html
deleted file mode 100644
index d1914b3c92..0000000000
--- a/files/fr/mozilla/mobile/balise_meta_viewport/index.html
+++ /dev/null
@@ -1,80 +0,0 @@
----
-title: >-
- Utiliser la balise meta viewport pour contrôler la mise en page sur les
- navigateurs mobiles
-slug: Mozilla/Mobile/Balise_meta_viewport
-translation_of: Mozilla/Mobile/Viewport_meta_tag
----
-<p>Les nouvelles fonctionnalités de la version à venir de <a class="link-https" href="https://wiki.mozilla.org/Mobile/Fennec">Firefox Mobile (Fennec)</a>, 1.1, ont amélioré le support pour la balise <code>&lt;meta name="viewport"&gt;</code>. Les versions précédentes supportaient les propriétés <code>width</code>, <code>height</code>, et <code>initial-scale</code> de la balise <em>viewport</em>, mais étaient <a class="external" href="http://starkravingfinkle.org/blog/2010/01/perils-of-the-viewport-meta-tag/">problématiques</a> avec certains sites prévus pour les navigateurs iPhone et Android. Nous supportons désormais les mêmes propriétés que Safari Mobile, et nous avons également amélioré Fennec pour permettre au rendu d'être plus cohérent entre les différentes tailles et résolutions d'écrans.</p>
-
-<p class="caption">touch.facebook.com avant :</p>
-
-<p class="figure"><img alt="05-11-fennec-meta-viewport-2.png" class="default internal" src="/@api/deki/files/4371/=05-11-fennec-meta-viewport-2.png"></p>
-
-<p class="caption">touch.facebook.com après :</p>
-
-<p class="figure"><img alt="05-11-fennec-meta-viewport-1.png" class="default internal" src="/@api/deki/files/4372/=05-11-fennec-meta-viewport-1.png"></p>
-
-<p>Vous pouvez tester les changements par vous-même dans la dernière version de <a class="external" href="http://ftp.mozilla.org/pub/mozilla.org/mobile/nightly/latest-mobile-1.9.2/">Fennec (1.1)</a> et les dernières <a class="external" href="http://ftp.mozilla.org/pub/mozilla.org/mobile/nightly/latest-mobile-trunk/">principales</a> <em>nightly builds</em> pour Maemo, Windows, Mac, et Linux.</p>
-
-<h2 id="Trame">Trame</h2>
-
-<p>Les navigateurs mobiles tels que Fennec affichent les pages dans une « fenêtre » virtuelle (le <em>viewport</em>), souvent plus large que l'écran, afin d'éviter de devoir rétrécir chaque configuration de page dans une petite fenêtre (ce qui provoquerait un mauvais affichage de beaucoup de sites non-optimisés pour les mobiles). Les utilisateurs peuvent ensuite se déplacer et zoomer pour visualiser les différentes parties de la page.</p>
-
-<p>Safari Mobile a créé la « balise meta <em>viewport</em> » pour permettre aux développeurs web de contrôler la taille et l'échelle du <em>viewport</em>. Beaucoup d'autres navigateurs mobiles supportent désormais cette balise, bien qu'elle ne soit pas standardisée. La <a class="external" href="http://developer.apple.com/safari/library/documentation/AppleApplications/Reference/SafariWebContent/UsingtheViewport/UsingtheViewport.html#//apple_ref/doc/uid/TP40006509-SW29" style="line-height: 1.5;">documentation</a><span style="line-height: 1.5;"> de Apple explique plutôt bien comment les développeurs peuvent utiliser ce tag, mais nous avons du effectuer des recherches plus approfondies pour trouver la bonne implémentation pour Fennec. Par exemple, la documentation de Safari dit que le contenu de la balise est une « liste de valeurs séparées par des virgules », mais les navigateurs existants utilisent en fait n'importe quel mélange de virgules, points-virgules et d'espaces en tant que séparateurs.</span></p>
-
-<p>Apprenez-en plus sur les <em>viewports</em> dans les différents navigateurs mobiles dans l'article <a class="external" href="http://www.quirksmode.org/mobile/viewports2.html" title="http://www.quirksmode.org/mobile/viewports2.html">A Tale of Two Viewports (en)</a> sur quirksmode.org.</p>
-
-<h2 id="Les_bases_du_viewport">Les bases du <em>viewport</em></h2>
-
-<p>La plupart des sites optimisés pour les mobiles utilisent une balise comme la suivante :</p>
-
-<pre class="notranslate">&lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&gt;</pre>
-
-<p>La propriété <code>width</code> contrôle la taille du <em>viewport</em>. Elle peut être réglée à une valeur précise de pixels, comme <code>width=600</code>, ou bien à la valeur spéciale <code>device-width</code> qui correspond à la largeur de l'écran en pixels CSS à l'échelle 100%. (Il existe les propriétés et valeurs <code>height</code> et <code>device-height</code> correspondantes, qui peuvent être utiles pour les pages contenant des éléments qui changent de taille ou de position en fonction de la hauteur du <em>viewport</em>.)</p>
-
-<p>La propriété <code>initial-scale</code> contrôle le niveau de zoom lorsque la page est chargée pour la première fois. Les propriétés <code>maximum-scale</code>, <code>minimum-scale</code>, et <code>user-scalable</code> contrôlent la manière dont les utilisateurs sont autorisés à zoomer ou dézoomer une page.</p>
-
-<div class="blockIndicator warning">
-<p>Empêcher le zoom peut poser des problèmes d'accessibilité aux usagers avec une déficience visuelle.</p>
-</div>
-
-<h2 id="Un_pixel_nest_pas_un_pixel">Un pixel n'est pas un pixel</h2>
-
-<p>L'iPhone et beaucoup de téléphones Android possèdent des écrans 3 à 4 pouces (7 à 10 cm) avec 320 à 480 pixels (environ 160 dpi). Firefox pour Maemo s'exécute sur le Nokia N900, qui a la même taille mais entre 480 et 800 pixels (environ 240 dpi). À cause de cela, la précédente version de Fennec affichait beaucoup de pages un tiers plus petit (en taille réelle) que l'iPhone ou les systèmes Android. Cela causait des problèmes de lecture et d'utilisation sur beaucoup de sites optimisés pour le tactile. Peter-Paul Koch a écrit sur ce sujet dans son article <a class="external" href="http://www.quirksmode.org/blog/archives/2010/04/a_pixel_is_not.html" style="line-height: 1.5;">A pixel is not a pixel is not a pixel (en)</a><span style="line-height: 1.5;">.</span></p>
-
-<p>Fennec 1.1 pour Maemo utilisera 1,5 pixels matériels pour chaque « pixel » CSS, suivant ainsi le comportement des navigateurs pour Android basés sur WebKit. Cela signifie qu'une page à<span style="line-height: 1.5;"> </span><code style="font-size: 14px;">initial-scale=1</code><span style="line-height: 1.5;"> sera affichée pratiquement à la même taille réelle sur Fennec pour Maemo, Safari Mobile pour iPhone et le navigateur Android sur les téléphones </span><a class="external" href="http://developer.android.com/guide/practices/screens_support.html#range" style="line-height: 1.5;">HDPI et MDPI (en)</a>, ce qui coïncide avec la<span style="line-height: 1.5;"> </span><a class="external" href="http://www.w3.org/TR/CSS2/syndata.html#length-units" style="line-height: 1.5;">spécification CSS 2.1</a>,<span style="line-height: 1.5;"> qui dit :</span></p>
-
-<blockquote>
-<p>Si la résolution du périphérique d'affichage est vraiment différente de celle moyenne des ordinateurs, le navigateur doit remettre à l'échelle les valeurs des pixels. Il est recommandé que l'unité des pixels renvoie à l'unité la plus proche du celle référence correspondant au nombre total des pixels de l'appareil. Il est également recommandé que l'unité de référence soit de l'envergure visuelle d'un pixel sur un périphérique avec une résolution de 96 dpi à une distance d'un bras du lecteur.</p>
-</blockquote>
-
-<p>Pour les développeurs, cela signifie que 320 pixels doivent être en pleine largeur en mode portrait à une échelle 1 sur tous les périphériques de poche mentionnés ci-dessus, et qu'ils peuvent, en sachant cela, redimensionner leurs mises en page et images. Mais rappelez-vous que tous les périphériques mobiles ne sont pas de la même largeur ; vous devriez également vous assurer que vos pages fonctionnent correctement en mode paysage, et sur tous les appareils plus larges tels que l'iPad et les tablettes Android.</p>
-
-<p>Sur des écrans à 240 dpi, les pages à<span style="line-height: 1.5;"> </span><code style="font-size: 14px;">initial-scale=1</code><span style="line-height: 1.5;"> seront mis à échelle 1,5 par Fennec et Android WebKit. Leur texte sera lissé et mis à l'échelle en conséquence, mais leurs images pourraient ne pas tirer profit de la résolution plein-écran. Pour obtenir des images plus nettes sur ces écrans, les développeurs web peuvent prévoir les images - ou les mises en pages complètes - à une échelle 150% (ou 200% pour supporter les périphériques à 320 dpi comme les iPhone à écrans retina) puis réduire leur échelle par la suite à l'aide de propriétés du <em>viewport</em> ou de CSS.</span></p>
-
-<p>Le ratio par défaut dépend de la résolution. Lorsqu'elle est inférieure à 200 dpi, le ratio sera de 1,0. Entre 200 et 300 dpi, il s'élèvera à 1,5. Au delà, il vaut <code>floor(densité / 150 dpi)</code>. Notez que le ratio par défaut est avéré uniquement lorsque l'échelle du <em>viewport</em> vaut 1. Sinon, la relation entre pixels CSS et pixels matériels dépend du niveau de zoom actuel.</p>
-
-<h2 id="Largeur_du_viewport_et_largeur_de_lécran">Largeur du <em>viewport</em> et largeur de l'écran</h2>
-
-<p>Beaucoup de sites configurent leur <em>viewport</em> à <code style="font-size: 14px;">"width=320, initial-scale=1"</code><span style="line-height: 1.5;"> pour correspondre précisément à la configuration d'un iPhone en mode portrait. Comme mentionné ci-dessus, cela a provoqué des</span><span style="line-height: 1.5;"> </span><a class="external" href="http://starkravingfinkle.org/blog/2010/01/perils-of-the-viewport-meta-tag/" style="line-height: 1.5;">problèmes</a><span style="line-height: 1.5;"> lors du rendu de ces sites sous Fennec 1.0, tout particulièrement en mode paysage. Pour empêcher cela, Fennec 1.1 étendra la largeur du <em>viewport</em> si nécessaire pour remplir l'écran à l'échelle définie. Cela suit le comportement d'Android et de Safari Mobile, et est surtout utile sur les périphériques à écrans larges comme l'iPad. (Allen Pike en fournit une bonne éxplication pour les développeurs dans son article </span><a class="external" href="http://www.antipode.ca/2010/choosing-a-viewport-for-ipad-sites/" style="line-height: 1.5;">Choosing a viewport for iPad sites</a>.)</p>
-
-<p>Pour les pages qui définissent une largeur initiale ou maximale, cela signifie que la propriété <code>width</code> est en réalité interprétée en tant qu'une largeur <strong>minimale<em> </em></strong>du <em>viewport</em>. Par exemple, si votre mise en page nécessite au moins 500 pixels de largeur, vous pouvez utiliser le code suivant. Lorsque l'écran est plus grand que 500 pixels, le navigateur étendra le <em>viewport</em> (au lieu de zoomer) jusqu'à la largeur de l'écran :</p>
-
-<pre class="notranslate">&lt;meta name="viewport" content="width=500, initial-scale=1"&gt;</pre>
-
-<p>Fennec 1.1 supporte également <code>minimum-scale</code>, <code>maximum-scale</code>, and <code>user-scalable</code>, avec les défauts et les limites de <a class="external" href="http://developer.apple.com/safari/library/documentation/AppleApplications/Reference/SafariHTMLRef/Articles/MetaTags.html">Safari</a>. Ces propriétés affectent l'échelle et la largeur initiales, en plus de limiter les changements dans le niveau de zoom.</p>
-
-<p>Les navigateurs mobiles gèrent les changements d'orientation différemment. Par exemple, Safari Mobile zoome souvent simplement sur la page lors du changement portrait vers paysage, au lieu d'afficher la page telle qu'elle aurait du l'être si elle avait été chargée à la base en paysage. Si les développeurs web souhaitent garder une certaine logique dans leurs paramètres de mise à l'échelle lors du changement d'orientation sur iPhone, ils doivent ajouter une valeur <code>maximum-scale</code> pour empêcher ce zoom, ce qui empêche parfois les utilisateurs de zoomer :</p>
-
-<pre class="notranslate">&lt;meta name="viewport" content="initial-scale=1, maximum-scale=1"&gt;</pre>
-
-<p>Cela n'est pas nécessaire sur Fennec : lorsque le périphérique change d'orientation, Fennec rafraîchit la taille du <em>viewport</em>, la mise en page, et les propriétés JavaScript/CSS telles que <code>device-width</code>, en fonction des nouvelles dimensions de la fenêtre.</p>
-
-<h2 id="Tailles_communes_de_viewport_pour_les_périphériques_mobiles_et_tablettes">Tailles communes de <em>viewport</em> pour les périphériques mobiles et tablettes</h2>
-
-<p>Si vous souhaitez connaître les largeurs de <em>viewport</em> des périphériques mobiles et tablettes les plus communs, il existe une liste complète des<span style="line-height: 1.5;"> </span><a href="https://docs.adobe.com/content/help/fr-FR/target/using/experiences/vec/mobile-viewports.translate.html" style="line-height: 1.5;" title="http://i-skool.co.uk/mobile-development/web-design-for-mobiles-and-tablets-viewport-sizes/">tailles de <em>viewport</em> sur mobiles et tablettes ici</a><span style="line-height: 1.5;">. Elle vous donnera des informations telles que la largeur du <em>viewport</em> en orientation portrait et paysage, ainsi que la taille physique de l'écran, le système d'exploitation et la résolution du périphérique.</span></p>
-
-<h2 id="Standardisation">Standardisation</h2>
-
-<p>Il y a une claire demande à propos de la balise meta <em>viewport</em>, puisqu'elle est supportée par la plupart des navigateurs mobiles populaires et utilisée par des milliers de sites web. Il serait bien d'avoir un standard réel pour le contrôle des propriétés du <em>viewport</em> sur les pages. D'après la spécification HTML5, les extensions à la balise <font face="Courier New, Andale Mono, monospace"><span style="line-height: normal;">meta</span></font> doivent d'abord être enregistrées sur le <a class="external" href="http://wiki.whatwg.org/wiki/MetaExtensions" style="line-height: 1.5;">wiki WHATWG</a><span style="line-height: 1.5;"> avant d'entrer dans le processus de standardisation W3C. Si cela arrive, Mozilla s'assurera d'implémenter tout changement fait pendant la standardisation.</span></p>
diff --git a/files/fr/mozilla/mobile/index.html b/files/fr/mozilla/mobile/index.html
deleted file mode 100644
index 7a31704260..0000000000
--- a/files/fr/mozilla/mobile/index.html
+++ /dev/null
@@ -1,22 +0,0 @@
----
-title: Mobile
-slug: Mozilla/Mobile
-translation_of: Mozilla/Mobile
----
-<h2 id="Firefox_OS"><a href="/fr/docs/Archive/B2G_OS" title="Boot to Gecko">Firefox OS</a></h2>
-
-<p>Firefox OS est un système d'exploitation pour mobile Open Source qui utilise Linux et le moteur de rendu de Mozilla, Gecko pour fournir une interface utilisateur et un ensemble d'applications entièrement écrites en HTML, CSS et JavaScript.<br>
- <br>
- Apprenez à installer Firefox OS et à développer des applications pour ce dernier.</p>
-
-<h2 id="Firefox_pour_Android"><a href="/fr/docs/Mozilla/Firefox_pour_Android" title="/fr/docs/Mozilla/Firefox_for_Android">Firefox pour Android</a></h2>
-
-<p>Firefox pour Android est le navigateur web de Mozilla. Il a été récemment réécrit pour utiliser l'interface utilisateur native d'Android, le rendant ainsi plus rapide, plus léger et plus réactif. Il offre le support de puissantes APIs pour accéder aux capacités de l'appareil telles que l'appareil photo ou la pile de téléphonie.<br>
- <br>
- Découvrez comment aider à développer Firefox pour Android, comment utiliser ses APIs et comment créer des modules complémentaires pour mobile.</p>
-
-<h2 id="Développement_Web_pour_mobiles"><a href="/fr/docs/Mobile/Mobile_Web_Development" title="https://developer.mozilla.org/fr/docs/Mobile/Mobile_Web_Development">Développement Web pour mobiles</a></h2>
-
-<p>Les appareils mobiles ont des caractéristiques physiques très différentes de celles d'un ordinateur de bureau ou d'un ordinateur portable et nombre d'APIs utilisées pour interragir avec eux sont toujours en cours de standardisation.</p>
-
-<p>Apprenez à développer des sites web avec un bon rendu sur appareils mobiles et profitez des nouvelles possibilités qu'ils vous offrent. Apprenez à rendre vos sites web compatibles avec différents navigateurs web.</p>
diff --git a/files/fr/mozilla/mode_presque_standard_de_gecko/index.html b/files/fr/mozilla/mode_presque_standard_de_gecko/index.html
deleted file mode 100644
index 98b15c4dca..0000000000
--- a/files/fr/mozilla/mode_presque_standard_de_gecko/index.html
+++ /dev/null
@@ -1,75 +0,0 @@
----
-title: Mode presque standard de Gecko
-slug: Mozilla/Mode_presque_standard_de_Gecko
-tags:
- - Développement_Web
- - Gecko
- - Standards_du_Web
-translation_of: Mozilla/Gecko_Almost_Standards_Mode
----
-<p><br>
- Depuis Mozilla 1.0.1 et 1.1 beta, un nouveau mode de rendu appelé « presque standard » existe. Celui-ci s'ajoute aux modes « <a href="/fr/docs/Web/HTML/Quirks_Mode_and_Standards_Mode">quirks</a> » et « standard » qui existaient depuis un bout de temps.</p>
-
-<p>Le mode de rendu « presque standard » est exactement le même que le mode « standard » en tous points sauf un : le calcul de la hauteur pour les boites de ligne et certains des éléments en ligne dans celles-ci. Un cas courant de l’impact de cela est le placement des images à l'intérieur des cellules de tableaux. Cela signifie que les mises en page avec des découpages d'images dans des tableaux seront moins probablement mis en pièces dans les navigateurs basés sur Gecko à partir du moteur de rendu de Mozilla 1.0.1 ou supérieur, que ce soit en mode « quirks » ou « presque standard ». (Consultez l'article "<a href="/fr/docs/Archive/Misc_top_level/Images,_tableaux_et_d%C3%A9calages_myst%C3%A9rieux">Images, tableaux et décalages mystérieux</a>" pour une explication détaillée du traitement de ces mises en pages particulières en mode « standard ».)</p>
-
-<p>En détaillant légèrement plus, voici grossièrement ce qui diffère dans le mode presque standard : les boites en ligne qui n’ont pas de texte hors espaces blancs comme enfant et qui n’ont pas de bordure, <em>padding</em> ou marges :</p>
-
-<ul>
- <li>n’influencent pas la taille de la boite de ligne (autrement dit, leur <a href="/fr/docs/Web/CSS/line-height">hauteur de ligne</a> est ignorée) ;</li>
- <li>ne prennent pas une hauteur (par exemple pour leur arrière plan) plus large que celle de leurs descendants, même si leur taille de police est plus large (s’ils n’ont pas de descendant, ils sont positionés à leur ligne de base avec une taille nulle).</li>
-</ul>
-
-<p>À part cette différence, les mode « presque standard » et « standard » sont exactement pareils en termes de mise en page et autres comportements.</p>
-
-<h3 id="D.C3.A9clenchement_du_mode_.C2.AB_presque_standard_.C2.BB" name="D.C3.A9clenchement_du_mode_.C2.AB_presque_standard_.C2.BB">Déclenchement du mode « presque standard »</h3>
-
-<p>Les déclarations DOCTYPE qui déclencheront le mode « presque standard » sont celles qui contiennent :</p>
-
-<ul>
- <li>L'identificateur public "<code>-//W3C//DTD XHTML 1.0 Transitional//EN</code>"</li>
- <li>L'identificateur public "<code>-//W3C//DTD XHTML 1.0 Frameset//EN</code>"</li>
- <li>L'identificateur public "<code>-//W3C//DTD HTML 4.01 Transitional//EN</code>", avec un identificateur système</li>
- <li>L'identificateur public "<code>-//W3C//DTD HTML 4.01 Frameset//EN</code>", avec un identificateur système</li>
- <li>L'identificateur système IBM "<code><span class="nowiki">http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd</span></code>"</li>
-</ul>
-
-<p>Un DOCTYPE complet contient un identificateur public et un identificateur système. En parlant de DOCTYPE, beaucoup se réfèreront à un DOCTYPE comme étant « avec URI » ou « sans URI ». L'URI est l'identificateur système. Par exemple, examinons le DOCTYPE qui suit :</p>
-
-<pre>&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd"&gt;</pre>
-
-<p>Les parties sont les suivantes :</p>
-
-<ul>
- <li>Identificateur public : "<code>-//W3C//DTD HTML 4.01 Transitional//EN</code>"</li>
- <li>Identificateur système : "<code><span class="nowiki">http://www.w3.org/TR/html4/loose.dtd</span></code>"</li>
-</ul>
-
-<p>Par conséquent, tout DOCTYPE HTML 4.01 Transitional ou Frameset avec une URI (identificateur système) déclenchera le mode « presque standard », tout comme tout DOCTYPE XHTML 1.0 Transitional ou Frameset, avec ou sans URI. Les auteurs ne faisant pas partie d'IBM n'ont aucune raison de se préoccuper du DOCTYPE personnalisé qui déclenchera aussi le mode « presque standard ».</p>
-
-<h3 id="Recommandations" name="Recommandations">Recommandations</h3>
-
-<ul>
- <li>Pour les auteurs qui tentent de migrer vers un balisage valide, que ce soit en HTML 4.01 ou XHTML 1.0, et qui utilisent toujours des concepts de mise en page basés sur des images dans des tableaux, assurez-vous d'utiliser un DOCTYPE qui déclenchera le mode « presque standard ».</li>
-</ul>
-
-<h3 id="Aussi_sur_MDC" name="Aussi_sur_MDC">Aussi sur MDC</h3>
-
-<ul>
- <li><a href="/fr/docs/Archive/Misc_top_level/Images,_tableaux_et_d%C3%A9calages_myst%C3%A9rieux">Images, tableaux et décalages mystérieux</a></li>
- <li><a href="/fr/docs/Archive/Standards_du_Web/Le_sniffing_de_DOCTYPE_dans_Mozilla">Le sniffing de DOCTYPE dans Mozilla</a></li>
- <li><a href="/fr/docs/Web/HTML/Quirks_Mode_and_Standards_Mode">Mode quirks de Mozilla</a></li>
-</ul>
-
-
-
-<div class="originaldocinfo">
-<h3 id="Informations_sur_le_document_origninal" name="Informations_sur_le_document_origninal">Informations sur le document origninal</h3>
-
-<ul>
- <li>Auteur(s) : Eric A. Meyer, Netscape Communications</li>
- <li>Date de dernière mise à jour : Publié le 8 novembre 2002</li>
- <li>Copyright : Copyright © 2001-2003 Netscape. Tous droits réservés.</li>
- <li>Note : Cet article a été réédité et faisait originellement partie du site DevEdge.</li>
-</ul>
-</div>
diff --git a/files/fr/mozilla/participer_au_projet_mozilla/index.html b/files/fr/mozilla/participer_au_projet_mozilla/index.html
deleted file mode 100644
index 168b8847f6..0000000000
--- a/files/fr/mozilla/participer_au_projet_mozilla/index.html
+++ /dev/null
@@ -1,9 +0,0 @@
----
-title: Participer au projet Mozilla
-slug: Mozilla/Participer_au_projet_Mozilla
-translation_of: Mozilla/Participating_in_the_Mozilla_project
----
-<p>Si vous avez envie d'aider à corriger des bugs et en général de travailler sur le code sur lequel repose la plateforme Mozilla, c'est ici que vous trouverez la documentation qui vous pointera dans la bonne direction.</p>
-<table class="mainpage-table"> <tbody> <tr> <td> <h2 id="Documentation">Documentation</h2> <dl> <dt><a class="internal" href="/fr/Guide_de_d%C3%A9veloppement" title="fr/Guide de développement">Guide de développement de Mozilla<br> </a></dt> <dd>Astuces et guides de développement pour contribuer au code de Mozilla.</dd> <dt><a class="internal" href="/fr/Developer_Guide/Source_Code" title="fr/Code source de Mozilla">Code source de Mozilla</a><br> </dt> <dd>Informations sur l'obtention du code de Mozilla, par téléchargement ou contrôle de version, et sur la manière d'y faire incorporer votre code.<br> </dd> <dt><a class="internal" href="/fr/Guide_de_d%C3%A9veloppement/Instructions_de_compilation" title="fr/Documentation sur la compilation">Documentation sur la compilation</a><br> </dt> <dd>Informations sur la compilation des différents projets Mozilla, dont Firefox et Thunderbird.<br> </dd> <dt><a class="internal" href="/fr/La%20plateforme%20Mozilla" title="fr/La plateforme Mozilla">La plateforme Mozilla</a><br> </dt> <dd>Informations sur la plateforme Mozilla, toutes ses technologies et API, ainsi que la manière de les utiliser dans vos propres projets.</dd> <dt><a class="internal" href="/Project:fr/Comment_aider" title="Project:fr/Comment aider">Documentation de Mozilla</a><br> </dt> <dd>Aidez-nous à créer et améliorer notre documentation pour Mozilla et le web ouvert.</dd> <dt><a class="internal" href="/fr/D%C3%A9bogage" title="fr/Débogage">Débogage</a><br> </dt> <dd>Astuces et recommandations à suivre lors du débogage du code de Mozilla.</dd> <dt><a class="internal" href="/fr/Qualit%C3%A9" title="fr/Qualité">Assurance qualité</a><br> </dt> <dd>Informations sur les tests et le suivi des bugs.</dd> <dt><a class="internal" href="/fr/Localisation" title="fr/Localisation">Localisation</a><br> </dt> <dd>Documentation sur la traduction des projets Mozilla, de la documentation, et d'autres informations dans de nombreuses langues.</dd> </dl> </td> <td> <h2 id="Outils">Outils</h2> <dl> <dt><a class="link-https" href="https://bugzilla.mozilla.org/" title="https://bugzilla.mozilla.org/">Bugzilla</a><br> </dt> <dd>La base de données <a class="internal" href="/fr/Bugzilla" title="fr/Bugzilla">Bugzilla</a> utilisée pour suivre les problèmes dans les projets Mozilla.<br> </dd> <dt><a class="external" href="http://mxr.mozilla.org/" title="http://mxr.mozilla.org/">MXR</a><br> </dt> <dd>Parcourir et effectuer des recherches dans le référentiel du code source de Mozilla sur le web.<br> </dd> <dt><a class="external" href="http://bonsai.mozilla.org/cvsqueryform.cgi" title="http://bonsai.mozilla.org/cvsqueryform.cgi">Bonsai</a><br> </dt> <dd>L'outil <a class="internal" href="/fr/Bonsai" title="fr/Bonsai">Bonsai</a> permet de savoir qui a changé quel fichier du référentiel, et dans quel but.<br> </dd> <dt><a class="external" href="http://tinderbox.mozilla.org/showbuilds.cgi" title="http://tinderbox.mozilla.org/showbuilds.cgi">Tinderbox</a><br> </dt> <dd><a class="internal" href="/fr/Tinderbox" title="fr/Tinderbox">Tinderbox</a> affiche l'état de l'arbre afin de savoir s'il est actuellement en état de compiler. À vérifier avant d'intégrer ou de récupérer du code, pour s'assurer de travailler avec un arbre fonctionnel.</dd> <dt><a class="internal" href="/fr/Rapports_de_plantage" title="fr/Rapports de plantage">Rapports de plantage</a><br> </dt> <dd>Informations sur les systèmes de rapports de plantages <a class="link-https" href="https://crash-reports.mozilla.com/reports" title="https://crash-reports.mozilla.com/reports">Socorro</a> et <a class="external" href="http://talkback-public.mozilla.org/search/start.jsp" title="http://talkback-public.mozilla.org/search/start.jsp">Talkback</a>.</dd> <dt><a class="external" href="http://graphs.mozilla.org/" title="http://graphs.mozilla.org/">Suivi des performances</a><br> </dt> <dd>Consultez des informations de performances à propos des projets Mozilla.</dd> <dt><a class="external" href="http://www.mozilla.org/community/developer-forums.html" title="http://www.mozilla.org/community/developer-forums.html">Forums de développement</a><br> </dt> <dd>Une liste de forums de discussion classés par sujet où vous pouvez parler de vos problèmes de développement liés à Mozilla.<br> </dd> </dl> </td> </tr> </tbody>
-</table>
-<p>  {{ languages( { "en": "en/Participating_in_the_Mozilla_project", "ja": "ja/Participating_in_the_Mozilla_project"} ) }}</p>
diff --git a/files/fr/mozilla/preferences/index.html b/files/fr/mozilla/preferences/index.html
deleted file mode 100644
index fe792aff80..0000000000
--- a/files/fr/mozilla/preferences/index.html
+++ /dev/null
@@ -1,53 +0,0 @@
----
-title: Preferences
-slug: Mozilla/Preferences
-tags:
- - TopicStub
-translation_of: Mozilla/Preferences
----
-<p>Le système de préférences permet de stocker des données pour les applications Mozilla à l'aide d'un système d'appariement clé / valeur. Ces articles fournissent des informations sur l'utilisation du système de préférences.</p>
-
-<table class="topicpage-table">
- <tbody>
- <tr>
- <td>
- <h2 class="Documentation" id="Documentation" name="Documentation">Documentation</h2>
-
- <dl>
- <dt><a href="/en-US/docs/Preferences/Preferences_system" title="Preferences/Preferences system">Système de préférences</a></dt>
- <dd>Une introduction à l'utilisation du système de préférences dans Mozilla.</dd>
- <dt><a href="/en-US/docs/XUL_School/Handling_Preferences" title="XUL School/Handling Preferences">XUL School: gestion des préférences</a></dt>
- <dd>Le chapitre du tutoriel XUL School sur les préférences.</dd>
- <dt><a href="/en-US/docs/Preferences/Preference_reference" title="Preferences/Preference_reference">Référence de préférence Mozilla</a></dt>
- <dd>Un guide de référence pour toutes les préférences de Mozilla; actuellement un travail en cours.</dd>
- <dt><a href="/en-US/docs/Preferences/A_brief_guide_to_Mozilla_preferences" title="Preferences/A brief guide to Mozilla preferences">Un bref guide des préférences de Mozilla</a></dt>
- <dd>Un guide d'introduction sur l'emplacement de stockage des préférences et d'autres informations utiles sur le système de préférences de base.</dd>
- <dt><a href="/en-US/docs/Preferences/Using_preferences_from_application_code" title="Preferences/Using preferences from application code">Utilisation des préférences du code d'application</a> {{gecko_minversion_inline("6.0")}}</dt>
- <dd>Firefox 6 Firefox 6 a introduit des fonctions statiques pour accéder efficacement aux préférences à partir du code d'application. Cette API n'est pas disponible pour les modules complémentaires, mais si vous travaillez sur une application Gecko, cette API est le moyen préféré d'accéder aux préférences.</dd>
- <dt><a href="/en-US/docs/Preferences/Mozilla_networking_preferences" title="Preferences/Mozilla networking preferences">Préférences de mise en réseau de Mozilla</a></dt>
- <dd>Un guide des principales préférences liées au réseautage.</dd>
- <dt><a href="/en-US/docs/Preferences/Mozilla_preferences_for_uber-geeks" title="Preferences/Mozilla preferences for uber-geeks">Préférences de Mozilla pour les super-geeks</a></dt>
- <dd>Un guide des préférences avec lesquelles seuls les geeks d'élite devraient jouer.</dd>
- </dl>
-
- <p><span class="alllinks"><a href="/en-US/docs/tag/Preferences" title="tag/Preferences">Afficher toutes les pages marquées avec "Préférences"...</a></span></p>
- </td>
- <td>
- <h2 class="Community" id="Examples" name="Examples">Exemples</h2>
-
- <dl>
- <dt><a href="/en-US/docs/Code_snippets/Preferences" title="Code snippets/Preferences">Extraits de code</a></dt>
- <dd>Extraits de code liés aux préférences.</dd>
- <dt><a href="/en-US/docs/Adding_preferences_to_an_extension" title="Adding preferences to an extension">Ajout de préférences à une extension</a></dt>
- <dd>Comment ajouter des préférences à une extension existante.</dd>
- </dl>
-
- <h2 class="Related_Topics" id="Related_Topics" name="Related_Topics">Rubriques connexes</h2>
-
- <ul>
- <li><a href="/en-US/docs/XUL" title="XUL">XUL</a>, <a href="/en-US/docs/JavaScript" title="JavaScript">JavaScript</a>, <a href="/en-US/docs/XPCOM" title="XPCOM">XPCOM</a>, <a href="/en-US/docs/Extensions" title="Extensions">Extensions</a>, <a href="/en-US/docs/Developer_Guide" title="Developing_Mozilla">Développement de Mozilla</a></li>
- </ul>
- </td>
- </tr>
- </tbody>
-</table>
diff --git a/files/fr/mozilla/projects/emscripten/index.html b/files/fr/mozilla/projects/emscripten/index.html
deleted file mode 100644
index 842caea844..0000000000
--- a/files/fr/mozilla/projects/emscripten/index.html
+++ /dev/null
@@ -1,37 +0,0 @@
----
-title: Emscripten
-slug: Mozilla/Projects/Emscripten
-translation_of: Mozilla/Projects/Emscripten
----
-<p><span class="seoSummary">Emscripten est un compilateur depuis LLVM vers le JavaScript. Il prend du bytecode LLVM (p. ex. généré depuis le C/C++ en utilisant Clang, ou depuis un autre langage) et le compile en JavaScript, qui peut être exécuté sur le Web.</span></p>
-
-<div class="warning">
-<p><strong>Important</strong> : Cette page fournit une brève introduction à ce qu'est Emscripten. Pour démarrer avec Emscripten, <a href="http://kripken.github.io/emscripten-site/index.html">allez sur le Wiki officiel d'Emscripten</a>.</p>
-</div>
-
-<p>Avec Emscripten, vous pouvez</p>
-
-<ul>
- <li>Compiler du code C et C++ en JavaScript</li>
- <li>Compiler n'importe quel autre code qui peut être traduit depuis du bytecode LLVM vers du JavaScript.</li>
- <li>Compiler les environnements d'exécution C/C++ d'autres langages, en JavaScript et ensuite exécuter du code dans ces langages indirectement (ceci a déjà été fait pour Python et Lua) !</li>
-</ul>
-
-<p>Emscripten rend le code natif disponible immédiatement sur le Web : qui est une plateforme basée sur les standards, a de nombreuses implémentations indépendentes mais compatibles et qui s'exécute partout, depuis les PCs jusqu'aux iPads.</p>
-
-<p>Avec Emscripten, les développeurs C/C++ n'ont pas à supporter le coût élevé d'un portage manuel vers le JavaScript — il n'ont même pas à l'apprendre. Les développeurs Web en bénéficient également, puisqu'ils peuvent utilser dans leurs sites Web, les quelques milliers d'utilitaires et bibliothèques nativent qui existent déjà.</p>
-
-<p>À peu près n'importe quelle base de code portable, en C ou C++, peut être compilée en JavaScript à l'aide d'Emscripten, depuis les jeux haute performance qui doivent faire du rendu graphique, jouer du son et charger et traiter des fichiers, jusqu'aux cadriciels d'applications tels que Qt.</p>
-
-<p>Emscripten génère du code rapide — sa sortie par défaut est <a href="/en-US/docs/Games/Tools/asm.js">asm.js</a>, un sous-ensemble hautement optimizable du JavaScript qui s'exécute à une vitesse proche de celle du code natif, dans beaucoup de cas.</p>
-
-<div class="note">
-<p><strong>Note</strong>: Intéressant n'est-ce pas ? <a href="http://kripken.github.io/emscripten-site/docs/introducing_emscripten/about_emscripten.html">Lisez-en plus à propos d'Emscripten et essayez quelques démos</a>, puis <a href="http://kripken.github.io/emscripten-site/docs/getting_started/index.html">commencez à l'utiliser</a>.</p>
-</div>
-
-<h2 id="Autres_articles_intéressants_sur_MDN">Autres articles intéressants sur MDN</h2>
-
-<ul>
- <li>Notre <a href="/en-US/docs/Games">zone de jeux</a> propose du contenu intéressant lié au développement de jeux, qui est un domaine où Emscripten est fréquemment utilisé.</li>
- <li>Notre page de <a href="/en-US/docs/Mozilla/Projects/Emscripten/Techniques">techniques avec Emscripten</a> est un endroit pratique pour stocker les idées utiles liées à Emscripten, qui n'ont pas encore été ajoutées au Wiki d'Emscripten.</li>
-</ul>
diff --git a/files/fr/mozilla/projects/index.html b/files/fr/mozilla/projects/index.html
deleted file mode 100644
index 408359ca13..0000000000
--- a/files/fr/mozilla/projects/index.html
+++ /dev/null
@@ -1,15 +0,0 @@
----
-title: Projects
-slug: Mozilla/Projects
-tags:
- - Mozilla
- - NeedsContent
- - Projects
- - TopicStub
-translation_of: Mozilla/Projects
----
-<p>{{ draft() }}</p>
-
-<p><span class="tlid-translation translation" lang="fr"><span title="">Mozilla a un certain nombre de projets autres que <a href="/fr/docs/Mozilla/Firefox">Firefox</a> lui-même.</span> <span title="">Beaucoup d'entre eux sont des composants de Firefox ou sont des outils utilisés pour créer Firefox, mais peuvent également être utilisés par d'autres projets.</span> <span title="">Vous trouverez ici des liens vers de la documentation sur ces projets.</span></span></p>
-
-<p>{{ LandingPageListSubpages() }}</p>
diff --git a/files/fr/mozilla/projects/rhino/examples/index.html b/files/fr/mozilla/projects/rhino/examples/index.html
deleted file mode 100644
index 2347013026..0000000000
--- a/files/fr/mozilla/projects/rhino/examples/index.html
+++ /dev/null
@@ -1,32 +0,0 @@
----
-title: Rhino Examples
-slug: Mozilla/Projects/Rhino/Examples
-translation_of: Mozilla/Projects/Rhino/Examples
----
-<p>Examples have been provided that show how to control the JavaScript engine and to implement scriptable host objects. All the examples are in the git tree at <code><a href="https://github.com/mozilla/rhino/tree/master/examples/">mozilla/js/rhino/examples</a></code>.</p>
-<h2 id="Scripts_Simple"><a id="sample" name="sample">Scripts Simple</a></h2>
-<p>Le script <code><a href="https://github.com/mozilla/rhino/tree/master/examples/unique.js">unique.js</a></code> permet d'écrirer une seul ligne depuis un fichier.</p>
-<p>Le script <code><a href="https://github.com/mozilla/rhino/tree/master/examples/liveConnect.js">liveConnect.js</a></code> montre un usage simple de LiveConnect (connectivité Java-vers-JavaScript).</p>
-<p>Le script <code><a href="https://github.com/mozilla/rhino/tree/master/examples/jsdoc.js">jsdoc.js</a></code> est un analogue en JavaScript de la<code> javadoc</code>. Il permet un usage régulier des "regular expressions".</p>
-<p>Le script <code><a href="https://github.com/mozilla/rhino/tree/master/examples/checkParam.js">checkParam.js</a></code> est un outil utile pour vérifier les tags<code> @param</code> dans les commentaires documentation Java qui corresponde au paramètres dans la méthode  Java correspondante.</p>
-<p>The <code><a href="https://github.com/mozilla/rhino/tree/master/examples/enum.js">enum.js</a></code> script is a good example of using a JavaAdapter to implement a Java interface using a JavaScript object.</p>
-<p>The <a href="https://github.com/mozilla/rhino/tree/master/examples/NervousText.js">NervousText.js</a> script is a JavaScript implementation of the famous NervousText applet using JavaScript compiled to Java classes using <a href="jsc.html">jsc</a>. It can be run in the HTML page <a href="https://github.com/mozilla/rhino/tree/master/examples/NervousText.html">NervousText.html</a>.</p>
-<h2 id="Controlling_the_JavaScript_Engine"><a id="controlling" name="controlling">Controlling the JavaScript Engine</a></h2>
-<h4 id="The_RunScript_class">The RunScript class</h4>
-<p><code><a href="https://github.com/mozilla/rhino/tree/master/examples/RunScript.java">RunScript.java</a></code> is a simple program that executes a script from the command line.</p>
-<h4 id="The_Control_class">The Control class</h4>
-<p><code><a href="https://github.com/mozilla/rhino/tree/master/examples/Control.java">Control.java</a></code> is a program that executes a simple script and then manipulates the result.</p>
-<h4 id="JavaScript_Shell">JavaScript Shell</h4>
-<p><code><a href="https://github.com/mozilla/rhino/tree/master/examples/Shell.java">Shell.java</a></code> is a program that executes JavaScript programs; it is a simplified version of the shell in the <code>tools</code> package. The programs may be specified as files on the command line or by typing interactively while the shell is running.</p>
-<h4 id="PrimitiveWrapFactory">PrimitiveWrapFactory</h4>
-<p><a href="https://github.com/mozilla/rhino/tree/master/examples/PrimitiveWrapFactory.java">PrimitiveWrapFactory.java</a> is an example of a WrapFactory that can be used to control the wrapping behavior of the Rhino engine on calls to Java methods.</p>
-<h4 id="Multithreaded_Script_Execution">Multithreaded Script Execution</h4>
-<p><code><a href="https://github.com/mozilla/rhino/tree/master/examples/DynamicScopes.java">DynamicScopes.java</a></code> is a program that creates a single global scope object and then shares it across multiple threads. Sharing the global scope allows both information to be shared across threads, and amortizes the cost of Context.initStandardObjects by only performing that expensive operation once.</p>
-<h2 id="Implementing_Host_Objects">Implementing Host Objects</h2>
-<p>First check out the <a href="/en/docs/Rhino/Embedding_tutorial">tutorial</a> if you haven't already.</p>
-<h4 id="The_Foo_class_-_Extending_ScriptableObject">The Foo class - Extending ScriptableObject</h4>
-<p><code><a href="https://github.com/mozilla/rhino/tree/master/examples/Foo.java">Foo.java</a></code> is a simple JavaScript host object that includes a property with an associated action and a variable argument method.</p>
-<h4 id="The_Matrix_class_-_Implementing_Scriptable">The Matrix class - Implementing Scriptable</h4>
-<p><code><a href="https://github.com/mozilla/rhino/tree/master/examples/Matrix.java">Matrix.java</a></code> provides a simple multidimensional array by implementing the Scriptable interface.</p>
-<h4 id="The_File_class_-_An_advanced_example">The File class - An advanced example</h4>
-<p><code><a href="https://github.com/mozilla/rhino/tree/master/examples/File.java">File.java</a></code> extends ScriptableObject to provide a means of reading and writing files from JavaScript. A more involved example of host object definition.</p>
diff --git a/files/fr/mozilla/projects/rhino/index.html b/files/fr/mozilla/projects/rhino/index.html
deleted file mode 100644
index 1618f7abb1..0000000000
--- a/files/fr/mozilla/projects/rhino/index.html
+++ /dev/null
@@ -1,25 +0,0 @@
----
-title: Rhino
-slug: Mozilla/Projects/Rhino
-tags:
- - JavaScript
- - Mozilla
- - NeedsUpdate
- - Rhino
-translation_of: Mozilla/Projects/Rhino
----
-<p><img alt="Image:rhino.jpg" class="internal" src="/@api/deki/files/832/=Rhino.jpg"></p>
-
-<p><strong>Rhino</strong> est un moteur <a href="/fr/docs/Web/JavaScript/" title="en/JavaScript">JavaScript</a> <em>open-source</em> entièrement écrit en  Java. Il est généralement intégré dans des applications Java afin de permettre l'utilisation de scripts aux utilisateurs finaux. Il est intégré dans J2SE 6 en tant que moteur JavaScript par défaut.</p>
-
-<h4 id="Télécharger_Rhino">Télécharger Rhino</h4>
-
-<p><a class="internal" href="/fr/docs/Mozilla/Projects/Rhino/Download_Rhino" title="en/RhinoDownload">Comment obtenir les sources et exécutables</a>. </p>
-
-<h4 id="La_documentation_de_Rhino">La documentation de Rhino</h4>
-
-<p><a href="/fr/docs/Mozilla/Projects/Rhino/Documentation" title="en/Rhino_documentation">Des informations relatives à Rhino</a> pour écrire des scripts ou embarquer le moteur dans des applications Java.</p>
-
-<h4 id="L'aide_de_Rhino">L'aide de Rhino</h4>
-
-<p><a href="/fr/docs/Mozilla/Projects/Rhino/Community" title="en/Rhino/Community">Différentes ressources utiles</a> si vous êtes bloqué.</p>
diff --git a/files/fr/mozilla/projects/talos/index.html b/files/fr/mozilla/projects/talos/index.html
deleted file mode 100644
index f42f2c3303..0000000000
--- a/files/fr/mozilla/projects/talos/index.html
+++ /dev/null
@@ -1,8 +0,0 @@
----
-title: Talos
-slug: Mozilla/Projects/Talos
-translation_of: Mozilla/Projects/Talos
----
-<p>Talos est un framework de <a href="/en-US/docs/Mozilla_automated_testing" title="/en-US/docs/Mozilla_automated_testing">test</a> de performance <a href="/en-US/docs/Python" title="/en-US/docs/Python">python</a> qui est inusable sur Windows, Mac et Linux. Talos est notre framework de test de performance polyvalente que nous utilisons à Mozilla. Il a été créé pour servir comme coureur de test pour le test de performance existant que Mozilla courait en 2007 en plus de fournir un framework extensible pour des nouveaux tests comme ils étaient en cours de création.</p>
-
-<p>S'il te plait regarde <a href="https://wiki.mozilla.org/TestEngineering/Performance/Talos">Talos's home page</a> pour plus de détails.</p>
diff --git a/files/fr/mozilla/projects/thunderbird/thunderbird_localisation/index.html b/files/fr/mozilla/projects/thunderbird/thunderbird_localisation/index.html
deleted file mode 100644
index a97de22c9b..0000000000
--- a/files/fr/mozilla/projects/thunderbird/thunderbird_localisation/index.html
+++ /dev/null
@@ -1,95 +0,0 @@
----
-title: Localisation Thunderbird
-slug: Mozilla/Projects/Thunderbird/Thunderbird_Localisation
-translation_of: Mozilla/Projects/Thunderbird/Thunderbird_Localization
----
-<p>Cette page est destinée aux localisateurs actuels et futurs de Thunderbird, le client de messagerie électronique et usenet de Mozilla Messaging. Il couvre de nombreux aspects qu'un localisateur de Thunderbird doit connaître comme les outils nécessaires, comment obtenir des informations sur les événements pertinents pour la localisation et divers autres sujets d'intérêt.</p>
-
-<h2 id="Création_dune_localisation_Thunderbird"><span class="mw-headline">Création d'une localisation Thunderbird</span></h2>
-
-<p><a href="/en/Bootstrapping_a_New_Locale" title="Fr/Création_d'une_nouvelle_localisation_(Mercurial)">Création d'une nouvelle localisation (Mercurial)</a> - Cet article décrit comment créer une nouvelle localisation pour Thunderbird.</p>
-
-<h3 id="À_propos_des_répertoires_et_des_branches">À propos des répertoires et des branches</h3>
-
-<p>Il y a 3 référentiels actifs pour le développement de Thunderbird. Le travail de développement de Thunderbird est fusionné d'une branche à l'autre toutes les six semaines.</p>
-
-<ul>
- <li>comm-central - aussi connu sous le nom de Tronc ou "Daily".
- <ul>
- <li>C'est là que le développement régulier de Thunderbird a lieu. Les chaînes changent à tout moment.</li>
- <li>Seules quelques langues sont attendues pour traduire sur cette branche.</li>
- </ul>
- </li>
- <li>comm-aurora - aussi connu sous le nom de "Earlybird"
- <ul>
- <li>C'est là que le développement d'une version particulière commence à être stabilisé.</li>
- <li>Aucune nouvelle fonctionnalité n'est autorisée et les chaînes sont gelées.</li>
- <li>Les localisations devraient progresser le plus possible dans cette branche et obtenir leur approbation.</li>
- <li>Le travail effectué ici sera automatiquement fusionné en version bêta et publié toutes les 6 semaines..</li>
- </ul>
- </li>
- <li>comm-beta - voie "Beta"
- <ul>
- <li>C'est ici que nous donnons un aperçu du développement de Thunderbird à un grand nombre d'utilisateurs.</li>
- <li>Les stabilisations finales sont effectuées.</li>
- <li>Peu ou pas de travail l10n est fait ici.</li>
- </ul>
- </li>
-</ul>
-
-<p>La plupart des localisations travailleront sur comm-aurora. Ce référentiel ou branche est stable en ce qui concerne les chaînes pour chaque période de six semaines. Terminer le travail ici signifie qu'il est prêt pour la première version bêta, et vous n'aurez pas besoin d'accéder à la branche bêta. Votre travail sera également reporté automatiquement.</p>
-
-<h3 id="Exigences_en_matière_de_localisation">Exigences en matière de localisation</h3>
-
-<p>Il n'y a pas de restrictions significatives pour l'évolution des localisations. Cependant, nous devons œuvrer de concert pour fournir aux utilisateurs de Thunderbird des moteurs de recherche qu'ils pourront utiliser pour trouver le bon équilibre avec le jeu d'options appropriées. Pour de plus amples informations <a href="/en/Thunderbird_Localization/Productization" title="fr/Thunderbird_Localisation/Production">consultez cette page </a>.</p>
-
-<h3 id="Tableau_de_bord_de_localisation"><span class="mw-headline">Tableau de bord de localisation </span></h3>
-
-<p>Le <a class="external text" href="https://l10n.mozilla.org/teams/" rel="nofollow" title="https://l10n.mozilla.org/teams/">tableau de bord de localisation</a> pour Thunderbird donne aux localisateurs un aperçu précis de l'état actuel de leur tâche. Des renseignements détaillés sont disponibles sur la <a class="link-https" href="https://wiki.mozilla.org/Thunderbird:Localization:Dashboard" title="https://wiki.mozilla.org/Thunderbird:Localization:Dashboard">page du tableau de bord l10n </a>.</p>
-
-<p>Une localisation sera ajoutée au tableau de bord l10n sur demande, lorsqu'elle aura atteint un niveau d'achèvement minimal de 80% - comme le montre la sortie de <a href="https://wiki.developer.mozilla.org/en/Compare-locales" title="Fr/Comparer-langues">comparer-langues</a>. Pour demander l'ajout de votre langue au tableau de bord, déposez un bogue dans le produit Thunderbird ou le composant Build Config.</p>
-
-<h2 id="Obtenir_des_informations_pertinentes_pour_l10n"><span class="mw-headline">Obtenir des informations pertinentes pour l10n </span></h2>
-
-<h3 id="Groupes_de_discussion_listes_de_diffusion"><span class="mw-headline">Groupes de discussion </span>&amp;<span class="mw-headline"> listes de diffusion</span></h3>
-
-<p>Les localisateurs de Thunderbird devraient lire les groupes de discussion sur la localisation (<a class="external" href="http://groups.google.de/group/mozilla.dev.l10n.announce" title="http://groups.google.de/group/mozilla.dev.l10n.announce">mozilla.dev.l10n.announce</a> <a class="external text" href="http://groups.google.de/group/mozilla.dev.l10n" rel="nofollow" title="http://groups.google.de/group/mozilla.dev.l10n">mozilla.dev.l10n</a>) pour se tenir au courant des articles spécifiques à Thunderbird et ceux d'ordre général relatifs à l10n qui les intéressent. Ils sont également encouragés à s'intéresser au groupe de discussion sur le développement de Thunderbird. (<a class="external text" href="http://groups.google.de/group/mozilla.dev.apps.thunderbird" rel="nofollow" title="http://groups.google.de/group/mozilla.dev.apps.thunderbird">mozilla.dev.apps.thunderbird</a>) pour être informés des dernières nouveautés.</p>
-
-<p>Ces groupes de discussion sont également accessibles via les listes de diffusion <a class="link-https" href="https://lists.mozilla.org/listinfo/dev-l10n-announce" title="https://lists.mozilla.org/listinfo/dev-l10n-announce">dev-l10n-announce@lists.mozilla.org</a>, <a class="link-https" href="https://lists.mozilla.org/listinfo/dev-l10n" title="https://lists.mozilla.org/listinfo/dev-l10n">dev-l10n@lists.mozilla.org</a> (liste de diffusion de localisation) ou <a class="link-https" href="https://lists.mozilla.org/listinfo/dev-apps-thunderbird" title="https://lists.mozilla.org/listinfo/dev-apps-thunderbird">dev-apps-thunderbird@lists.mozilla.org</a> (liste de diffusion du développement de Thunderbird), qui reflètent les groupes de discussion mentionnés ci-dessus. Vous pouvez vous abonner ou vous désabonner à ces listes de diffusion via l'interface web à l'adresse suivante <a class="link-https" href="https://lists.mozilla.org/listinfo" title="https://lists.mozilla.org/listinfo">lists.mozilla.org</a>.</p>
-
-<h3 id="Bugzilla"><span class="mw-headline">Bugzilla </span></h3>
-
-<p>Les localisateurs devraient surveiller l'adresse électronique <a href="mailto:thunderbird@localization.bugs" rel="freelink">thunderbird@localization.bugs</a> (ou de son alias :tb-l10n) pour se tenir au courant des bugs qui pourraient les affecter sur Thunderbird. Ceci peut être réalisé en ajoutant cette adresse à la "Surveillance des utilisateurs". de vos <a href="https://bugzilla.mozilla.org/userprefs.cgi?tab=email" title="https://bugzilla.mozilla.org/userprefs.cgi?tab=email">préférences e-mail dans bugzilla</a>.</p>
-
-<h3 id="Quelques_liens_utiles"><span class="mw-headline">Quelques liens utiles </span></h3>
-
-<ul>
- <li><a class="external text" href="https://bugzilla.mozilla.org/buglist.cgi?product=MailNews+Core&amp;product=Thunderbird&amp;keywords_type=allwords&amp;keywords=l12y&amp;bug_status=UNCONFIRMED,NEW,ASSIGNED,REOPENED" rel="nofollow" title="https://bugzilla.mozilla.org/buglist.cgi?product=MailNews+Core&amp;product=Thunderbird&amp;keywords_type=allwords&amp;keywords=l12y&amp;bug_status=UNCONFIRMED,NEW,ASSIGNED,REOPENED">Ouvrir des bugs avec le mot-clé l12y (localisation)</a></li>
- <li><a class="external text" href="https://bugzilla.mozilla.org/buglist.cgi?product=MailNews+Core&amp;product=Thunderbird&amp;bug_status=UNCONFIRMED,NEW,ASSIGNED,REOPENED&amp;emailcc1=1&amp;emailtype1=exact&amp;email1=thunderbird@localization.bugs" rel="nofollow" title="https://bugzilla.mozilla.org/buglist.cgi?product=MailNews+Core&amp;product=Thunderbird&amp;bug_status=UNCONFIRMED,NEW,ASSIGNED,REOPENED&amp;emailcc1=1&amp;emailtype1=exact&amp;email1=thunderbird%40localization.bugs">Ouvrir des bugs qui nécessitent l'attention du localisateur (thunderbird@localization.bugs a été averti à propos de ce bug)</a></li>
-</ul>
-
-<h2 id="Niveaux_des_langues"><span class="mw-headline">Niveaux des langues</span></h2>
-
-<p>Les niveaux des langues restituent les langues pour lesquelles nous avons besoin d'avoir un bon développement pour la version. Il y a 10 langues dans le niveau 1, qui sont les plus importantes pour Thunderbird, en raison de leur nombre d'utilisateurs ou de leur potentiel de croissance.</p>
-
-<p>Ces langues sont traitées comme des entités de première classe, aussi importantes que en-US, c'est-à-dire que toute langue de niveau 1 qui ne répond pas aux critères peut bloquer une version finale de Thunderbird.</p>
-
-<h3 id="Niveau_1"><span class="mw-headline">Niveau 1 </span></h3>
-
-<p>Les langues suivantes sont en P1 (priorité 1) par prépondérence :</p>
-
-<pre>* de - allemand
-* fr - français
-* ja, ja-JP-mac - japonais
-* en-GB - anglais britannique
-* es-ES - espagnol (continent européen)
-* it - italien
-* pl - polonais
-* ru - russe
-* nl - hollandais
-* pt-BR - portugais brésilien
-</pre>
-
-<h3 id="Niveau_2"><span class="mw-headline">Niveau 2 </span></h3>
-
-<p>Toutes les autres langues supportées sont dans la catégorie de niveau 2.</p>
diff --git a/files/fr/mozilla/rejoindre/index.html b/files/fr/mozilla/rejoindre/index.html
deleted file mode 100644
index ab23ca6481..0000000000
--- a/files/fr/mozilla/rejoindre/index.html
+++ /dev/null
@@ -1,94 +0,0 @@
----
-title: '{Re}Joindre Mozilla'
-slug: Mozilla/Rejoindre
-tags:
- - Mozilla
-translation_of: Mozilla/Connect
----
-<div class="summary">
-<p><span class="seoSummary">Inspirez, collaborez, mettez en œuvre vos compétences afin de faire du Web « la » plateforme des appareils connectés.</span></p>
-</div>
-
-
-<div>
-<div class="column-container dev-program-callouts dev-program-block dev-program-first dev-program-column-wrapper">
-<div class="dev-program-callout">
-<div class="callout-link-container">
-<h2 id="Blog_Hacks">Blog Hacks</h2>
-
-<p>Une ressource essentielle pour les personnes dévelopant pour le Web ouvert, le blog Mozilla Hacks offre actualités et discussions sur les dernières technologies Web, et les fonctionnalités des navigateurs.<a class="callout-link ignore-external" href="https://hacks.mozilla.org/" style="white-space: normal;">Lire le blog</a></p>
-</div>
-</div>
-
-<div class="dev-program-callout">
-<div class="callout-link-container">
-<h2 id="Aide_Questions_Réponses">Aide Questions / Réponses</h2>
-
-<p>Rejoignez les discussions à propos du Web et des applications web sur Stack Overflow, où vous pouvez échanger des idées avec d'autres développeurs Web.<br>
- <span class="smaller"><strong>{{anch("Developer discussions", "Cherchez parmi les Q&amp;R ci-dessous")}}</strong></span></p>
-
-<div class="callout-link-wrapper"><a class="callout-link ignore-external" href="http://stackoverflow.com/r/mozilla" style="white-space: normal;">Mozilla Q&amp;R sur Stack Overflow</a></div>
-</div>
-</div>
-
-<div class="dev-program-callout">
-<div class="callout-link-container">
-<h2 id="Rejoignez_MDN">Rejoignez MDN</h2>
-
-<p>Inscrivez-vous sur MDN ! Vous pourrez <a href="/fr/docs/MDN/Contribute">éditer la documentation</a>, créer un profil pour mettre en avant vos contributions et tester les nouvelles fonctionnalités.</p>
-
-<div class="callout-link-wrapper"><a class="callout-link" href="/profile/edit" style="white-space: normal;">S'inscrire ou se connecter</a></div>
-</div>
-</div>
-</div>
-
-<div class="dev-program-explanation dev-program-block">
-<h2 id="Entrer_en_contact_avec_Mozilla">Entrer en contact avec Mozilla</h2>
-
-<p>Chez Mozilla, nous croyons que les développeurs contribuent au futur en créant des services de qualité et des applications destinées au grand public. Notre but est de les aider en proposant des technologies standardisées et ouvertes. Afin d'aider les développeurs et leur permettre de former des relations sur le long terme, nous avons créé le Mozilla Developer Program (MDP) en plus de la documentation présente sur MDN.<br>
- <br>
- Nous offrons de l'aide à travers les questions-réponses (Q&amp;R) sur Stack Overflow, pour aider à résoudre des problèmes technique spécifiques ou des défis que vous pouvez rencontrer. Nous avons également une <a href="https://marketplace.firefox.com/developers/#newsletter-signup" title="https://marketplace.firefox.com/developers/#newsletter-signup">newsletter</a> pour vous tenir informé des derniers événements autour du Web et des applications web.<br>
- <br>
- Nos idées sont nombreuses pour agrandir le Mozilla Developer Program et vous impliquer autant que nous le sommes ! Pour participer : <a href="http://stackoverflow.com/r/mozilla">suivez les tags sur Stack Overflow</a>, <a href="https://hacks.mozilla.org/">abonnez vous au blog Hacks</a>, et <a href="/profile/edit">créez un compte MDN </a>!</p>
-</div>
-
-<div class="column-container dev-program-block">
-<div class="column-half" id="Developer_discussions">
-<h2 id="QR_sur_Stack_OverflowVoir_toutes_les_QR...">Q&amp;R sur Stack Overflow<a class="heading-link" href="http://stackoverflow.com/r/mozilla">Voir toutes les Q&amp;R...</a></h2>
-
-<p>Nous avons des Q&amp;R pour discuter des défis et problèmes liés au développement, plus particulièrement autour de Firefox OS et du Web sur mobile. Elles sont actuellement disponibles sur Stack Overflow à cette adresse <a href="http://stackoverflow.com/r/mozilla">http://stackoverflow.com/r/mozilla</a>.</p>
-
-
-<div class="stack-form">Stack form</div>
-
-<h3 id="Dernières_Questions-Réponses">Dernières Questions-Réponses</h3>
-</div>
-
-<div class="column-half dev-program-hacks dev-program-block"> </div>
-</div>
-
-<p class="dev-program-block"><img alt="Développeurs lors d'un événement Firefox OS à Madrid" src="https://mdn.mozillademos.org/files/7479/PhonesUp.jpg" style="display: block; height: 359px; margin: 0px auto; max-width: 100%; width: 720px;"></p>
-
-<div class="column-container dev-program-block">
-<div class="column-7 dev-program-events">
-<h2 id="Où_se_trouve_Mozilla_Voir_les_conférenciers_et_plus_d'informations_sur_la_page_des_évènements...">Où se trouve Mozilla ? <a class="heading-link" href="https://developer.mozilla.org/en/events">Voir les conférenciers et plus d'informations sur la page des évènements...</a></h2>
-</div>
-
-<div class="column-5">
-<h2 id="Autres_ressources">Autres ressources</h2>
-
-<ul class="no-bullets">
- <li><a href="http://www.youtube.com/user/mozhacks">Mozilla Hacks sur YouTube</a>
-
- <ul>
- <li><a href="http://www.youtube.com/playlist?list=PLo3w8EB99pqIHIUUv08hBCHq1OgPKhdo0">Vidéos Firefox OS</a></li>
- <li><a href="http://www.youtube.com/playlist?list=PLo3w8EB99pqLZNY22xKbTEzMfYo9PXAlm">Vidéos sur les outils de développement Firefox Developer Tools</a></li>
- </ul>
- </li>
- <li><a href="https://twitter.com/mozhacks">@mozhacks on Twitter</a></li>
-</ul>
-</div>
-</div>
-</div>
-
-<p> </p>
diff --git a/files/fr/mozilla/rust/index.html b/files/fr/mozilla/rust/index.html
deleted file mode 100644
index 7ec000ae43..0000000000
--- a/files/fr/mozilla/rust/index.html
+++ /dev/null
@@ -1,47 +0,0 @@
----
-title: Le langage de programmation Rust
-slug: Mozilla/Rust
-tags:
- - Développement Web
- - Langages
- - Mozilla
- - Parallélisme
- - rust
- - systèmes
-translation_of: Mozilla/Rust
----
-<p><img alt="Rust logo" src="https://www.rust-lang.org/logos/rust-logo-blk.svg" style="float: left; height: 150px; width: 150;"><a href="https://www.rust-lang.org/">Rust</a> est un nouveau langage de programmation open source créé par Mozilla et une communauté de volontaires, conçu pour aider les développeurs à concevoir des applications ultra-rapides et sécurisées qui utilisent avantageusement les puissantes fonctionnalités offertes par les processeurs multi-cœurs modernes. Il permet d'éviter les erreurs de segmentation et assure la sécurité des threads, le tout avec une syntaxe facile à assimiler.</p>
-
-<p>En outre, Rust offre des abstractions à coût zéro, déplacement des sémantiques, garanti la sécurité de la mémoire, des threads sans concurence des données, trait-based generics, pattern matching, inférence de type et des liaisons C efficace, avec un minimum de taille d'exécution.</p>
-
-<p>Pour en apprendre plus sur Rust, vous pouvez :</p>
-
-<ul>
- <li>Regarder les vidéos ci-dessous pour découvrir attentivement toute la puissance et les avantages offerts par Rust.</li>
- <li>Lire le livre <em><a href="https://doc.rust-lang.org/book/">The Rust Programming Language</a></em> en ligne.</li>
- <li>Télécharger le compilateur Rust, voir des exemples et apprendre tout ce que vous souhaitez savoir sur <a href="https://www.rust-lang.org/">le site officiel de Rust</a>.</li>
-</ul>
-
-<h2 id="Rust_et_le_futur_de_la_programmation_des_systèmes">Rust et le futur de la programmation des systèmes</h2>
-
-<p>{{EmbedYouTube("8EPsnf_ZYU0")}}</p>
-
-<h2 id="Débloquez_le_pouvoir_du_parallélisme_avec_Rust">Débloquez le pouvoir du parallélisme avec Rust</h2>
-
-<p>{{EmbedYouTube("cNeIOt8ZdAY")}}</p>
-
-<h2 id="Rust_pour_les_développeurs_web">Rust pour les développeurs web</h2>
-
-<p>{{EmbedYouTube("FfoXFnzZbBM")}}</p>
-
-<h2 id="Programmation_des_systèmes_sécurisée_avec_Rust">Programmation des systèmes sécurisée avec Rust</h2>
-
-<p>{{EmbedYouTube("P3sfNGtpuxc")}}</p>
-
-<h2 id="Agrandir_la_communauté_Rust">Agrandir la communauté Rust</h2>
-
-<p>{{EmbedYouTube("duv0tuPAnO0")}}</p>
-
-<h2 id="Mettre_Rust_en_production_chez_Mozilla">Mettre Rust en production chez Mozilla</h2>
-
-<p>{{EmbedYouTube("2RhbYpgVpg0")}}</p>
diff --git a/files/fr/mozilla/security/index.html b/files/fr/mozilla/security/index.html
deleted file mode 100644
index 99a342c74c..0000000000
--- a/files/fr/mozilla/security/index.html
+++ /dev/null
@@ -1,30 +0,0 @@
----
-title: Browser security
-slug: Mozilla/Security
-tags:
- - Accueil
- - Firefox
- - Mozilla
- - Sécurité
-translation_of: Mozilla/Security
----
-<p><span class="seoSummary">Un aspect important du développement de code pour n'importe quel navigateur, y compris Firefox, ainsi que n'importe quel projet orienté Web, est sa sécurité. Ces articles offrent d'importants guides et références pour asurer que le code que vous écrivez est sécurisé, y compris aussi bien les recommandations en matière de design que de guides de testing.</span></p>
-
-<p>{{LandingPageListSubpages}}</p>
-
-<section id="Quick_Links">
-<ol>
- <li><a href="https://www.mozilla.org/en-US/security/bug-bounty/" title="We appreciate all bug reports, but we back up our appreciation of reports of severe security problems with a $3000 reward!">Bug bounty program</a></li>
- <li><a href="http://www.mozilla.org/projects/security/known-vulnerabilities.html" title="Learn from our past mistakes.">Known vulnerabilities and fixes in Mozilla</a></li>
- <li><a href="/en-US/docs/Mozilla/Security">Debugging and testing</a>
- <ol>
- <li>{{Link("/en-US/docs/Clang_Static_Analysis")}}</li>
- <li>{{Link("/en-US/docs/Debugging_Mozilla_with_Valgrind")}}</li>
- <li>{{Link("/en-US/docs/Mozilla/Testing/Firefox_and_Address_Sanitizer")}}</li>
- <li>{{Link("/en-US/docs/Mozilla/QA/Fuzzing")}}</li>
- </ol>
- </li>
- <li>{{Link("/en-US/docs/Mozilla/Developer_guide")}}</li>
- <li>{{Link("/en-US/docs/Web/Security")}}</li>
-</ol>
-</section>
diff --git a/files/fr/mozilla/tech/index.html b/files/fr/mozilla/tech/index.html
deleted file mode 100644
index c624ad5a70..0000000000
--- a/files/fr/mozilla/tech/index.html
+++ /dev/null
@@ -1,13 +0,0 @@
----
-title: Technologies de Mozilla
-slug: Mozilla/Tech
-tags:
- - Mozilla
- - Reference
- - Régionalisation
- - XUL
-translation_of: Mozilla/Tech
----
-<p>Mozilla a plusieurs technologies utilisées en composantes de ses projets. Celles-ci sont documentées ici.</p>
-
-<p>{{LandingPageListSubpages}}</p>
diff --git a/files/fr/mozilla/tech/visualisation_et_recherche_du_code_source_mozilla_en_ligne/index.html b/files/fr/mozilla/tech/visualisation_et_recherche_du_code_source_mozilla_en_ligne/index.html
deleted file mode 100644
index bdbde7f35c..0000000000
--- a/files/fr/mozilla/tech/visualisation_et_recherche_du_code_source_mozilla_en_ligne/index.html
+++ /dev/null
@@ -1,37 +0,0 @@
----
-title: Visualisation et recherche du code source Mozilla en ligne
-slug: Mozilla/Tech/Visualisation_et_recherche_du_code_source_Mozilla_en_ligne
-tags:
- - Developper avec Mozilla
- - Mozilla Code source
-translation_of: Mozilla/Tech/Viewing_and_searching_Mozilla_source_code_online
----
-<p><span id="result_box" lang="fr"><span class="hps">Le code source pour</span> <span class="hps">tous les projets</span> <span class="hps">de Mozilla</span> <span class="hps">hébergés</span> <span class="hps">dans</span> <span class="hps">le dépôt Mercurial</span> <span class="hps">et</span> <span class="hps">CVS</span> <span class="hps">peut être recherché</span> <span class="hps">et</span> <span class="hps">consulté en ligne</span> <span class="hps">à l'aide de</span> </span><a class="external external-icon" href="http://dxr.mozilla.org">DXR</a>.<span lang="fr"> C'<span class="hps">est</span> <span class="hps">une variante</span> <span class="hps">renforcée et</span> <span class="hps">améliorée de l'outil</span> <span class="hps">original </span><span class="hps">Linux Cross</span> <span class="hps">Reference</span><span>.</span></span></p>
-
-<p><span lang="fr"><span class="hps">Ne téléchargez pas</span> <span class="hps">le code source</span> <span class="hps">en parcourant toutes les pages du site </span><span class="hps">DXR</span><span> ;</span> <span class="hps">téléchargez plutôt</span> <a href="https://developer.mozilla.org/fr/docs/T%C3%A9l%C3%A9chargement_du_code_source_de_Mozilla">une archive</a> <span class="hps">ou</span> <span class="hps">utilisez</span> <a href="/fr/docs/Code_source_de_Mozilla_(Mercurial)">Mercurial</a> <span class="hps">ou <a href="/fr/docs/Code_source_de_Mozilla_(CVS)">CVS</a></span> à la <span class="hps">place.</span><br>
- <br>
- <span class="hps">DXR<span> </span>indexe</span> <span class="hps">plusieurs</span> <span class="hps">branches CVS</span> <span class="hps">et modules</span><span>;</span> <span class="hps">la racine</span> <span class="hps">MXR</span> la <span class="hps">plus intéressant</span> <span class="hps">pour un</span> <span class="hps">contributeur</span> <span class="hps">Mozilla</span> <span class="hps">est</span> </span><a class="external external-icon" href="http://dxr.mozilla.org/comm-central/">comm-central</a>,<span lang="fr"> <span class="hps">qui contient le</span> <span class="hps">dernier code source</span> <span class="hps">pour la plupart des</span> <span class="hps">produits Mozilla</span> <span class="atn hps">(</span><span>y compris</span> <span class="hps">Firefox</span><span>,</span> <span class="hps">Thunderbird</span><span>,</span> <span class="hps">SeaMonkey</span><span>,</span> <span class="hps">Sunbird</span> <span class="hps">/</span> <span class="hps">Lightning</span> <span class="hps">Chatzilla</span><span>,</span> <span class="hps">DOM</span> Inspector <span class="hps">et</span> <span class="hps">Venkman JavaScript</span> <span class="hps">debugger</span><span>) et est</span> <span class="hps">fréquemment mise à jour</span><span class="hps">.</span></span></p>
-
-<p><span class="short_text" id="result_box" lang="fr"><span class="hps">Certaines</span> <span class="hps">autres</span> <span class="hps">racines</span> <span class="hps">d'intérêt MXR</span></span><span class="short_text" lang="fr"><span class="hps"> sont:</span></span></p>
-
-<ul>
- <li><a class="link-https" href="https://hg.mozilla.org/mozilla-central/">"mozilla-central"</a> <span id="result_box" lang="fr"><span title='"mozilla-central" contains current Firefox and Gecko development.'>contient le développement actuel de Firefox et Gecko. </span><span title="Releases branch off of this repository.">mets a disposition la branche de sortie de ce </span></span>dépôt<span lang="fr"><span title="Releases branch off of this repository.">. </span><span title='Also known as "Trunk" .
-    '>Aussi connu comme «Trunk».</span></span></li>
- <li><a class="external" href="http://dxr.mozilla.org/comm-central/">"comm-central"</a> <span id="result_box" lang="fr"><span title='"comm-central" contains current Thunderbird, SeaMonkey and Calendar development.'>contient le développement </span></span><span lang="fr"><span title='"comm-central" contains current Thunderbird, SeaMonkey and Calendar development.'> actuelle de Thunderbird, SeaMonkey et de Calendar. </span><span title="Also contains a mirror of mozilla-central.">Il contient également une copie de mozilla-central. </span></span><span id="result_box" lang="fr"><span title="Releases branch off of this repository.">mets </span></span><span lang="fr"><span class="hps">à </span><span title="Releases branch off of this repository.">disposition la branche de sortie de ce </span></span>dépôt<span lang="fr"><span title="Releases branch off of this repository.">.</span></span></li>
- <li><a class="link-https" href="https://hg.mozilla.org/releases/mozilla-1.9.1/">"mozilla-1.9.1"</a> <span id="result_box" lang="fr"><span title='"mozilla-1.9.1" contains Branch development on Firefox 3.5 and Gecko 1.9.1.
-    '>contient la branche de développement  sur Firefox 3.5 et Gecko 1.9.1 .</span></span></li>
- <li><a class="link-https" href="https://hg.mozilla.org/releases/comm-1.9.1/">"comm-1.9.1"</a> <span id="result_box" lang="fr"><span title='"mozilla-1.9.1" contains Branch development on Firefox 3.5 and Gecko 1.9.1.
-    '>contient la branche de développement pour</span></span> Thunderbird 3, SeaMonkey 2 et Sunbird 1 avec Gecko 1.9.1. <span id="result_box" lang="fr"><span title="Also contains a mirror of mozilla-1.9.1.
-    ">Il contient également une partie de</span></span> mozilla-1.9.1.</li>
- <li><a class="external" href="http://mxr.mozilla.org/seamonkey/">"mozilla root '</a> <span id="result_box" lang="fr"><span class="hps">contient</span> <span class="hps">le code</span> <span class="hps">de 1,9</span> <span class="hps">branche,</span> <span class="atn hps">comme "</span><span>SeaMonkey</span><span>"</span><span>, mais</span> indexe <span class="hps">une</span> <span class="hps">plus grande</span> <span class="hps">partie du</span> </span>dépôt<span lang="fr"><span class="hps"> et</span> <span class="hps">est mis à jour</span> <span class="hps">moins souvent</span><span>.</span></span></li>
- <li><a class="external" href="http://mxr.mozilla.org/mozilla1.8/">Mozilla 1.8 root</a> <span id="result_box" lang="fr"><span class="hps">contient</span> <span class="hps">Firefox</span><span>,</span> <span class="hps">Thunderbird</span> <span class="hps">2.0.0.x</span><span>,</span> <span class="hps">et</span> <span class="hps">SeaMonkey</span></span> 1.1.x</li>
- <li><a class="external" href="http://mxr.mozilla.org/mozilla1.8.0/">Mozilla 1.8.0 root</a> <span id="result_box" lang="fr"><span class="hps">contient</span> <span class="hps">Firefox</span><span>,</span> <span class="hps">Thunderbird</span> <span class="hps">1.5.0.x</span><span>,</span> <span class="hps">SeaMonkey</span></span> <span id="result_box" lang="fr"><span class="hps">1.0.x</span> </span></li>
- <li><a class="external" href="http://mxr.mozilla.org/aviary101branch/">Aviary 1.0.1 root</a> <span id="result_box" lang="fr"><span class="hps">Firefox et Thunderbird</span> <span class="hps">1.0.0.x</span></span></li>
- <li><a class="external" href="http://mxr.mozilla.org/mozilla1.7/">Mozilla 1.7 root</a> <span id="result_box" lang="fr"><span class="hps">contient</span> <span class="hps">Mozilla</span> <span class="hps">Suite</span> <span class="hps">1.7.x</span></span></li>
-</ul>
-
-<p><a href="/en/Mozilla_Source_Code_Directory_Structure" title="en/Mozilla_Source_Code_Directory_Structure">Mozilla Source Code Directory Structure</a> <sup>(page en Anglais) </sup><span id="result_box" lang="fr"><span class="hps">contient une courte</span> <span class="hps">description du code</span> <span class="hps">dans chaque</span> <span class="hps">répertoire source</span> <span class="hps">de l'arbre</span><span>.</span></span></p>
-
-<h3 id="Resources" name="Resources">Ressources</h3>
-
-<p><a href="/en/CVS_Tags" title="en/CVS_Tags">CVS Tags</a></p>
diff --git a/files/fr/mozilla/tech/xpcom/guide/creating_components/an_overview_of_xpcom/index.html b/files/fr/mozilla/tech/xpcom/guide/creating_components/an_overview_of_xpcom/index.html
deleted file mode 100644
index 35e8dd51a0..0000000000
--- a/files/fr/mozilla/tech/xpcom/guide/creating_components/an_overview_of_xpcom/index.html
+++ /dev/null
@@ -1,504 +0,0 @@
----
-title: Un aperçu de XPCOM
-slug: Mozilla/Tech/XPCOM/Guide/Creating_components/An_Overview_of_XPCOM
-translation_of: Mozilla/Tech/XPCOM/Guide/Creating_components/An_Overview_of_XPCOM
----
-<p></p><div class="prevnext" style="text-align: right;">
- <p><a href="/fr/docs/Mozilla/Tech/XPCOM/Guide/Creating_components/Preface" style="float: left;">« Précédent</a><a href="/fr/docs/Mozilla/Tech/XPCOM/Guide/Creating_components/Using_XPCOM_Components">Suivant »</a></p>
-</div><p></p>
-
-<p>Cette section est présentée comme un tutoriel sur la création de composants XPCOM, mais elle couvre tous les principaux aspects, les concepts et la terminologie du modèle de composant XPCOM tout au long de sa conception.</p>
-
-<p>Ce chapitre fournit un rapide tour d'horizons sur XPCOM - une introduction aux concepts de base, des technologies XPCOM et du développement de composants. Les paragraphes de ce chapitre présentent des concepts de haut niveaux, de sorte que nous puissions les approfondir et de les utiliser avec plus de familiarité dans le tutoriel lui-même, qui décrit la création d'un composant Mozilla appelé <strong>WebLock</strong> .</p>
-
-<h3 id="La_solution_XPCOM">La solution XPCOM</h3>
-
-<p>Le Cross Platform Component Object Module (XPCOM) est un cadre qui permet aux développeurs de fractionner un projets monolithiques en morceaux modulaires. Ces morceaux, appelés <em>composants</em> , sont ensuite assemblés de nouveau ensemble à l'exécution.</p>
-
-<p>Le but de XPCOM est de mettre au point les différentes parties de logiciel en les construisant indépendamment les uns des autres. Afin de permettre l'interopérabilité entre les composants d'une application, XPCOM sépare la <em>mise en œuvre</em> d'un composant de l'<a href="https://developer.mozilla.org/fr/docs/Mozilla/Tech/XPCOM/Guide/Creating_components/An_Overview_of_XPCOM#Interfaces">Interface</a> . Mais XPCOM fournit également plusieurs outils et bibliothèques qui permettent le chargement et la manipulation de ces composants, des services qui aident le développeur à écrire du code modulaire multi-plateforme, et le soutien des versions, de sorte que les composants peuvent être remplacés ou mis à niveau sans casser ou avoir à recréer l'application . En utilisant XPCOM, les développeurs créent des composants qui peuvent être réutilisés dans différentes applications ou qui peut être remplacé pour changer la fonctionnalité des applications existantes.</p>
-
-<p>XPCOM soutient non seulement le développement de composant logiciels, il fournit également une grande partie des fonctionnalité de la plate-forme de développement fournit, tels que:</p>
-
-<ul>
- <li>la gestion de composant</li>
- <li>le fichier abstrait</li>
- <li>l'objet message</li>
- <li>la gestion de la mémoire</li>
-</ul>
-
-<p>Nous allons décrire les éléments ci-dessus en détail dans les chapitres à venir, mais pour l'instant, il peut être utile de penser à XPCOM en tant que <em>plate-forme pour le développement de composants</em> , dans lequel des caractéristiques telles que celles énumérées ci-dessus sont fournis.</p>
-
-<h3 id="Gecko">Gecko</h3>
-
-<p>Bien qu'il soit à certains égards structurellement similaires à Microsoft COM, XPCOM est conçu pour être utilisé principalement au niveau de l'application. L'utilisation la plus importante de XPCOM est dans <em>Gecko</em> , open source, conforme aux standards, navigateur Web intégrable et boîte à outils pour la création de navigateurs Web et autres applications.</p>
-
-<p>XPCOM est le moyen d'accéder aux fonctionnalités de la bibliothèque Gecko pour l'utilisation ou l'extension de Gecko. Ce livre met l'accent sur l'extension mais les explications de ce livre seront important pour le développeurs d'application Gecko embarquées.</p>
-
-<p>Gecko est utilisé dans de nombreuses applications internet, la plupart des navigateurs et notamment Mozilla Firefox.</p>
-
-<h3 id="Composants">Composants</h3>
-
-<p>XPCOM vous permet de briser les gros projets logiciels en petits morceaux connus en tant que composants. Ils sont généralement contenus dans des bibliothèques binaires réutilisables (<abbr>DLL</abbr> sur Windows, <abbr>DSO</abbr> sur Unix), qui peuvent comprendre un ou plusieurs composants. Lorsque deux ou plusieurs composants connexes sont regroupées dans une bibliothèque binaire, la bibliothèque est appelée <em>module</em>.</p>
-
-<p>Modulaire, la programmation à base de composants logiciels rend plus facile le développement et la maintenance:</p>
-
-<table class="standard-table">
- <tbody>
- <tr>
- <td class="header">Avantage</td>
- <td class="header">Description</td>
- </tr>
- <tr>
- <td>Réutilisation</td>
- <td>Code modulaire peut être réutilisé dans d'autres applications et d'autres contextes.</td>
- </tr>
- <tr>
- <td>Mises à jour</td>
- <td>Vous pouvez mettre à jour les composants sans avoir à recompiler l'application entière.</td>
- </tr>
- <tr>
- <td>Performance</td>
- <td>Lorsque le code est modulaire, les modules qui ne sont pas nécessaires immédiatement peuvent être chargées partiellement, ou pas chargés du tout, ce qui peut améliorer les performances de votre application.</td>
- </tr>
- <tr>
- <td>Maintenance</td>
- <td>Même lorsque un composant est obsolète, la conception de votre application modulaire vous permet  plus facilement de maintenir les parties de l'application que vous intéressent.</td>
- </tr>
- </tbody>
-</table>
-
-<p>Mozilla a plus de quatre millions de lignes de code, et pas une seule personne ne comprend l'ensemble du code source. La meilleure façon d'aborder un projet de cette taille est de le diviser en modules. La bibliothèque de réseau, par exemple, est constitué de composants pour chacun des protocoles, HTTP, FTP, et d'autres, qui sont groupés et liés dans une seule bibliothèque. Cette bibliothèque est le module de gestion de réseau, également appelé "necko."</p>
-
-<p>Mais il n'est pas toujours souhaitable de diviser les choses. Le composant <abbr>HTTP</abbr> de Gecko n'expose pas les classes privés qu'elle utilise comme des composants séparés. Les objets interne au composante reste interne, et ne soit pas manipulables par XPCOM.</p>
-
-<h3 id="Interfaces">Interfaces</h3>
-
-<p>Comment segmenter du code? L'idée de base est d'identifier les segments fonctionnellement liés et comprendre comment ils communiquent entre eux. Les canaux de communication entre les différentes composants forment ces limites, et lorsque ces limites sont formalisées on parle d'<em>interfaces</em> .</p>
-
-<p>Les interfaces ne sont pas une idée nouvelle en programmation. Nous avons tous l'habitude interfacer depuis notre premier programme "HelloWorld", où est l'interface entre le code que nous avons écrit - le code d'application - et le code d'impression. Le code d'application utilisé une interface à partir d'une bibliothèque, <code>stdio</code> , et imprime la texte "hello world" sur l'écran. La différence ici est que l'application "HelloWorld" dans XPCOM trouve cette fonctionnalité d'affichage à l'exécution et n'a pas à connaître <code>stdio</code> quand il est compilé.</p>
-
-<p>Interfaces permettent aux développeurs d' <em>encapsuler</em> la mise en œuvre et de fonctionnement interne de leur logiciel, et permettent aux clients d'ignorer la façon dont les choses sont faites, il suffit d'utiliser ce logiciel.</p>
-
-<div class="side-note">
-<h4 id="Interfaces_et_programmation_par_contrat">Interfaces et programmation par contrat</h4>
-
-<p>Une interface forme un accord contractuel entre les composants et les clients. Il n'y a pas de code qui oblige ces accords, mais les ignorer peut être fatal. Dans la programmation à base de composants, un composant garantit que les interfaces qu'il fournit seront <em>immuable</em> - qu'ils vont offrir le même accès aux mêmes méthodes à travers différentes versions du composante - l'établissement d'un contrat avec les logiciels clients qui l'utilisent. À cet égard, la programmation basé sur l'interface est souvent désigné comme <em>la programmation par contrat</em> .</p>
-</div>
-
-<h4 id="Interfaces_et_Encapsulation">Interfaces et Encapsulation</h4>
-
-<p>Aux limites des composants, l'abstraction est crucial pour la maintenabilité du logiciel et la réutilisabilité. Considérons, par exemple, une classe mal encapsulé. L'utilisation d'une méthode d'initialisation publique librement disponibles, comme l'exemple ci-dessous, peut causer des problèmes.</p>
-
-<h4 id="SomeClass_Class_Initialization">SomeClass Class Initialization</h4>
-
-<pre>class SomeClass{
- public:
- // Constructeur
- SomeClass();
- // Destructeur virtuel
- virtual ~SomeClass();
- // method init
- void Init();
- void DoSomethingUseful();
-};
-</pre>
-
-<p>Pour que ce système fonctionne correctement, l'utilisateur de cette classe doit porter une attention particulière à tout ce que le créateur de cette classe a établi. C'est l'accord contractuel avec cette classe non encapsulé: un ensemble de règles qui définissent quand chaque méthode peut être appelée et ce qu'elle est censé faire. Une règle peut spécifier que <code>DoSomethingUseful</code> ne peut être appelé après un appel à <code>init ()</code> . La méthode <code>DoSomethingUseful</code> peut veiller à ce que la condition soit satisfaite.</p>
-
-<p>En plus du code correctement commenté pour les règles d'utilisation de <code>Init()</code> , le développeur peut prendre quelques mesures pour que ce contrat soit plus clair. Tout d'abord, le constructeur d'un objet peut être encapsulé, et une <em>classe virtuelle</em><code> DoSomethingUseful</code> peut être mis à disposition. De cette façon, le constructeur et l'initialisation peuvent être complètement cachés des utilisateurs de la classe. Dans cette situation, "semi-encapsulé", la seule partie de la classe qui est exposé est une liste bien définie des méthodes appelables (i.e, l'interface). Une fois que la classe est encapsulé, la seule interface que le client verra est la suivante:</p>
-
-<h4 id="Encapsulation_de_SomeInterface">Encapsulation de SomeInterface</h4>
-
-<pre>class SomeInterface{
- public:
- virtual void DoSomethingUseful() = 0;
-};
-</pre>
-
-<p>La mise en œuvre peut alors dériver de cette classe par l'utilisation de la méthode virtuelle. Les utilisateurs de ce code peuvent ensuite créer l'objet (voir <a href="https://developer.mozilla.org/fr/docs/Mozilla/Tech/XPCOM/Guide/Creating_components/An_Overview_of_XPCOM#Factories">utilisation</a> ) et encapsuler aussi la mise en œuvre. Avec XPCOM, les usagers sont ignorant du fonctionnement du composants et comptent sur ​​l'interface pour donner accès aux fonctionnalités nécessaires.</p>
-
-<h4 id="L'interface_de_base_nsISupports">L'interface de base <code>nsISupports</code></h4>
-
-<p>Les deux fondamentaux de la programmation composant sont basé sur<em> component lifetime</em>(durée de vie), appelé aussi <em>object ownership</em>, et <em>interface querying</em>, sois l'identification des interfaces d'un composant prises en charge lors de l'exécution. Ce chapitre présente la mère de toutes les interfaces XPCOM - <code>nsISupports</code> , qui fournit les solutions à ces deux problèmes pour les développeurs XPCOM.</p>
-
-<h4 id="Object_Ownership">Object Ownership</h4>
-
-<p>Avec XPCOM, parce que les composants peuvent mettre en œuvre un certain nombre d'interfaces, ils doivent être <em>référencés</em> . Quand un composant est créé, un entier interne au composant est incrémenté - connu comme compteur de référence. Au cours de la vie du composant, le compteur de référence augmente et diminue. Lorsque le composant n'a plus d'utilité, le compteur de références atteint zéro, et le composant est détruit.</p>
-
-<p>Lorsque les clients utilisent des interfaces de façon responsable, cela peut être un processus très simple. XPCOM dispose d'outils pour rendre encore cela plus facile. Il peut soulever des problèmes réels de maintenance lorsque, par exemple, un client utilise une interface et oublie de decrémenter le nombre de références. Lorsque cela se produit, les interfaces ne peuvent jamais être libérés et provoqueront des fuites de mémoire. Le système de comptage de référence est, comme beaucoup de choses dans XPCOM, un contrat entre les clients et les implémentations. Il fonctionne quand les utilisateur le respecte, mais quand ils ne le font pas, les choses peuvent aller mal. C'est le rôle de la fonction qui crée le pointeur d'interface pour ajouter la référence initiale, ou <em>owning reference</em>, d'éviter ces problemes.</p>
-
-<div class="side-note">
-<h4 id="Pointeurs_avec_XPCOM">Pointeurs avec XPCOM</h4>
-
-<p>Dans XPCOM, <em>les pointeurs</em> se réfèrent à l'interface pointeurs. La différence est subtile, puisque les pointeurs d'interface et les pointeurs réguliers sont tout simplement deux adresses dans la mémoire. Mais un pointeur d'interface est connu pour mettre en œuvre l'interface de base nsISupports, et peut donc être utilisé pour appeler des méthodes telles que <code>AddRef</code>, <code>Release,</code> ou<code> QueryInterface</code>.</p>
-</div>
-
-<p><code>nsISupports</code>, illustré ci-dessous, fournit les fonctionnalités de base pour faire face à la création d'interface et de comptage de référence. Les membres de cette interface,<code> QueryInterface</code>, <code>AddRef</code> et <code>Release</code> , fournissent les moyens de base pour obtenir la bonne interface d'un objet, incrémenter le compteur de référence, et de libérer les objets une fois qu'ils ne sont plus utilisés.</p>
-
-<h4 id="L'interface_nsISupports">L'interface <code>nsISupports</code></h4>
-
-<pre>class Sample: public nsISupports{
- private:
- nsrefcnt mRefCnt;
- public:
- Sample();
- virtual ~Sample();
- NS_IMETHOD QueryInterface(const nsIID &amp;aIID, void **aResult);
- NS_IMETHOD_(nsrefcnt) AddRef(void);
- NS_IMETHOD_(nsrefcnt) Release(void);
-};
-</pre>
-
-<p>Les différents types utilisés de l'l'interface sont décrites dans la section <a href="https://developer.mozilla.org/fr/docs/Mozilla/Tech/XPCOM/Guide/Creating_components/An_Overview_of_XPCOM#XPCOM_Types">Types XPCOM</a>. La mise en œuvre complète de<code> </code><code>nsISupports</code> est indiquée ci-dessous. Voir <a class="external external-icon" href="http://www.mozilla.org/projects/xpcom/QI.html">Une implémentation de référence de QueryInterface</a> pour des informations détaillées.</p>
-
-<h4 id="Mise_en_œuvre_de_l'interface_nsISupports">Mise en œuvre de l'interface nsISupports</h4>
-
-<pre>// <code class="language-html">Initialiser le compteur de référence à 0</code>
-Sample::Sample() : mRefCnt(0){
-}
-Sample::~Sample(){
-}
-// <code class="language-html">la mise en œuvre générique de QI</code>
-NS_IMETHODIMP Sample::QueryInterface(const nsIID &amp;aIID,
- void **aResult){
- if (!aResult) {
- return NS_ERROR_NULL_POINTER;
- }
- *aResult = NULL;
- if (aIID.Equals(kISupportsIID)) {
- *aResult = (void *) this;
- }
- if (!*aResult) {
- return NS_ERROR_NO_INTERFACE;
- }
- // ajoute une reference
- AddRef();
- return NS_OK;
-}
-NS_IMETHODIMP_(nsrefcnt) Sample::AddRef(){
- return ++mRefCnt;
-}
-NS_IMETHODIMP_(nsrefcnt) Sample::Release(){
- if (--mRefCnt == 0) {
- delete this;
- return 0;
- }
- // optional: retourn le nombre de reference
- return mRefCnt;
-}
-</pre>
-
-<h4 id="Object_Interface_Discovery">Object Interface Discovery</h4>
-
-<p><em>Héritage</em> est un autre sujet très important dans la programmation orientée objet. L'héritage est le moyen par lequel une classe est dérivée d'une autre. Quand une classe hérite d'une autre classe, la classe hérite peut <em>remplacer</em> les comportements par défaut de la classe de base sans avoir à copier tout le code de cette classe et créer ainsi une classe plus spécifique, comme dans l'exemple suivant:</p>
-
-<h4 id="Héritage_de_classe_simple">Héritage de classe simple</h4>
-
-<pre>class Shape{
- private:
- int m_x;
- int m_y;
- public:
- virtual void Draw() = 0;
- Shape();
- virtual ~Shape();
-};
-class Circle : public Shape{
- private:
- int m_radius;
- public:
- virtual Draw();
- Circle(int x, int y, int radius);
- virtual ~Circle();
-};
-</pre>
-
-<p><code>Circle(cercle</code>) est une classe dérivée de <code>Shape(forme)</code> . Un <code>cercle</code> est une <code>forme</code> , en d'autres termes, mais une<code> forme</code> n'est pas nécessairement un <code>cercle</code> . Dans ce cas, <code>forme</code> est la <em>classe de base</em> et <code>cercle</code> est une <em>sous-classe</em> de <code>forme</code> .</p>
-
-<p>Avec XPCOM, toutes les classes dérivent de l'interface <code>nsISupports</code>, de sorte que tous les objets héritent de <code>nsISupports</code>. Avec <a href="https://developer.mozilla.org/fr/docs/Mozilla/Tech/XPCOM/Guide/Creating_components/An_Overview_of_XPCOM#Simple_Class_Inheritance">Héritage Class simple</a> , par exemple, vous êtes en mesure de savoir si la <code>forme</code> est un <code>cercle</code> et dans ce cas de l'utiliser comme un cercle. Ces à quoi la caractéristique <code>QueryInterface</code> de <code>nsISupports</code> est destinée: elle permet aux utilisateurs de trouver et d'accéder aux différentes interfaces en fonction de leurs besoins.</p>
-
-<p>En C++, vous pouvez utiliser une fonctionnalité assez avancé connu sous le nom de <a href="https://fr.wikipedia.org/wiki/Dynamic_cast">dynamic_cast&lt;&gt;</a> , qui lève une exception si l'objet <code>f</code><code>orme</code> n'est un <code>cercle</code> . Mais les exceptions levants <a href="https://fr.wikipedia.org/wiki/Run-time_type_information">RTTI(</a>Run-time type information<a href="https://fr.wikipedia.org/wiki/Run-time_type_information">)</a> ne sont pas une option en raison de la lourdeur et de la compatibilité sur de nombreuses plates-formes, XPCOM fait les choses différemment.</p>
-
-<div class="side-note">
-<h4 id="Exceptions_avec_XPCOM">Exceptions avec XPCOM</h4>
-
-<p>Les exceptions C++ ne sont pas pris en charge directement par XPCOM. Les exceptions doivent être manipulés dans le composant XPCOM, avant de franchir les frontières de l'interface. Toutes les méthodes de l'interface doivent retourner une valeur d'erreur <code>nsresult </code>(voir <a href="https://developer.mozilla.org/en-US/docs/XPCOM_API_Reference">référence de l'API XPCOM</a> pour une liste de ces codes d'erreur). Ces résultats de code d'erreur deviennent les «exceptions» que gère XPCOM.</p>
-</div>
-
-<p>Au lieu de tirer parti de RTTI du C++, XPCOM utilise la méthode <code>QueryInterface</code> qui passe l'objet à la bonne interface, si cette interface est pris en charge.</p>
-
-<p>Chaque interface est pourvu d'un identifiant qui est généré à partir d'un outil nommée <a href="https://fr.wikipedia.org/wiki/Universal_Unique_Identifier">"uuidgen"</a>. Cet identifiant universel unique (UUID) est un numéro unique de 128 bits appelé <em>IID</em>. Ce n'est pas la même chose que l'ID d'un composant.</p>
-
-<p>Quand un client veut découvrir si un objet prend en charge une interface donnée, le client passe l'IID assignée à cette interface dans la méthode <code>QueryInterface</code> de cet objet. Si l'objet prend en charge l'interface demandée, il ajoute une référence à lui-même et repasse un pointeur sur cette interface. Si l'objet ne prend pas en charge l'interface une erreur est renvoyée.</p>
-
-<pre>class nsISupports {
- public:
- long QueryInterface(const nsIID &amp; uuid,
- void **result) = 0;
- long AddRef(void) = 0;
- long Release(void) = 0;
-};
-</pre>
-
-<p>Le premier paramètre de <code>QueryInterface</code> est une référence à une classe nommée <code>nsIID</code> , qui est une encapsulation de base de l'IID. Parmi les trois méthodes sur de la classe <code>nsIID</code>, <code>Equals</code> ,<code>Parse</code> et <code>ToString</code> , <code>Equal</code> est de loin le plus important, car elle est utilisé pour comparer deux<code> nsIID</code> dans le processus d'interrogation d'interface.</p>
-
-<p>Lorsque vous implémentez la classe <code><a href="https://developer.mozilla.org/en-US/docs/XPCOM_Interface_Reference/nsISupports">nsISupports</a></code> (et vous le verrez dans le chapitre <a href="https://developer.mozilla.org/en-US/docs/Creating_XPCOM_Components/Using_XPCOM_Utilities_to_Make_Things_Easier">Utilitaires XPCOM pour faciliter les choses</a> comment les macros peuvent rendre ce processus beaucoup plus facile), vous devez vous assurer que les méthodes de la classe renvoient un résultat valable lorsque le client appelle <code>QueryInterface</code> avec le <code>nsISupports</code> IID.<code> QueryInterface</code> devrait soutenir toutes les interfaces que le composant soutient.</p>
-
-<p>Dans les implémentations de <code>QueryInterface</code>, l'argument IID est comparer à la classe <code>nsIID</code>. Si il y a une corespondence, l'objet <code>this</code> pointeur est converti en <code>void</code>, le compteur de référence est incrémenté, et l'interface renvoyée à l'appelant. Si il n'y a pas de correspondance, la classe retourne une erreur et la valeur de sortie est <code>null</code> .</p>
-
-<p>Dans l'exemple ci-dessus, il est assez facile d'utiliser un C-style cast. Mais le casting peut devenir plus compliqué et vous devez d'abord passer <code>void</code> avec le type demandé, parce que vous devez retourner le pointeur d'interface dans la <abbr>table virtuelle(vtable)</abbr> correspondant à l'interface demandée. Castings peut devenir un problème quand il y a une hiérarchie d'héritage ambigu.</p>
-
-<h3 id="Identifiants_XPCOM">Identifiants XPCOM</h3>
-
-<p>En plus de l'identifiant d'interface IID discuté dans la section précédente, XPCOM utilise deux autres identificateurs très important pour distinguer les classes et les composants.</p>
-
-<div class="side-note">
-<h4 id="Classes_XPCOM_Identifier">Classes XPCOM Identifier</h4>
-
-<p>La classe <code>nsIID</code> est en fait un typedef de la classe <code>nsID</code>. Les autres typedefs de <code>nsID</code> , CID et IID, se réfèrent respectivement à des implémentations spécifiques d'une classe concrète et d'une interface spécifique.</p>
-
-<p>La classe <code>nsID</code> fournit des méthodes comme <code>Equals</code> pour comparer les identificateurs dans le code. Voir <a href="https://developer.mozilla.org/en-US/docs/Creating_XPCOM_Components/Creating_the_Component_Code#Identifiers_in_XPCOM">identificateurs XPCOM</a> pour plus d'information sur <code>ns</code><code>ID</code>.</p>
-</div>
-
-<h4 id="CID">CID</h4>
-
-<p>Un CID est un nombre de 128 bits qui identifie de manière unique une classe ou un composant de la même manière qu'un IID identifie de manière unique une interface. Le CID pour <code>nsISupports</code> ressemble à ceci:</p>
-
-<p><code>00000000-0000-0000-C000-000000000046</code></p>
-
-<p>La longueur d'un CID  peut être lourd à traiter dans le code, de sorte que très souvent, vous verrez #defines pour les CID et les autres identifiants utilisés, comme dans cet exemple:</p>
-
-<pre>#define SAMPLE_CID \
-{ 0x777f7150, 0x4a2b, 0x4301, \
-{ 0xad, 0x10, 0x5e, 0xab, 0x25, 0xb3, 0x22, 0xaa}}
-</pre>
-
-<p>Vous verrez utilisé aussi <code>NS_DEFINE_CID</code>. Cette macro déclare une constante avec la valeur du CID:</p>
-
-<pre>static NS_DEFINE_CID(kWebShellCID, NS_WEB_SHELL_CID);
-</pre>
-
-<p>Un CID est parfois aussi désigné comme un <em>identificateur de classe</em> . Si la classe à laquelle un CID se réfère a plus d'une interface, il garanties que la classe implémente cette ensemble d'interfaces quand elle est publiée ou fixée.</p>
-
-<h4 id="Contrat_ID">Contrat ID</h4>
-
-<p>Un contract ID est une chaîne lisible utilisé pour accéder à un composant. Un CID ou un contract ID peuvent être utilisés pour accéder à un composant dans gestionnaire de composant. Le contract ID est utilisé pour le composant <a href="https://fr.wikipedia.org/wiki/Lightweight_Directory_Access_Protocol#Op.C3.A9rations">LDAP Opération</a> :</p>
-
-<pre>"@mozilla.org/network/ldap-operation;1"
-</pre>
-
-<p>Le format du contract ID est formé du <em>domaine</em>, du <em>module, du</em> <em>nom du composant</em> séparés par des barres obliques et du <em>numéro de version</em>.</p>
-
-<p>Comme un CID, un contract ID se réfère à une mise en œuvre plutôt qu'à une interface à l'instar IID. Mais un contract ID n'est pas liée à une mise en œuvre spécifique, contrairement au CID, il est donc plus général. Au lieu de cela, un contract ID spécifie seulement un ensemble donné d'interfaces qu'il met en œuvre, et un certain nombre de CID diffèrent peuvent intervenir en complément. Cette différence entre un contract ID et un CID est ce qui rend possible de remplacer des composants.</p>
-
-<h3 id="Utilisation">Utilisation</h3>
-
-<p>Une fois que le code est divisé en composants, le code client utilise habituellement l'opérateur <code>new</code> pour instancier des objets:</p>
-
-<pre>SomeClass* component = new SomeClass();
-</pre>
-
-<p>Ce modèle exige que le client connaisse le composant. Le <a href="https://fr.wikipedia.org/wiki/Fabrique_(patron_de_conception)">factory design pattern</a> peut être utilisé pour encapsuler la construction de l'objet. L'objectif du procédé est de créer un objet sans exposer les clients à la mise en œuvre et l'initialisation de cet objet. Dans l'exemple <code>SomeClass</code>, la construction et l'initialisation de <code>SomeClass</code> , qui implémente la classe abstraite <code>SomeInterface</code>, est contenu par la fonction <code>New_SomeInterface</code>:</p>
-
-<h4 id="Encapsuler_le_constructeur">Encapsuler le constructeur</h4>
-
-<pre>int New_SomeInterface(SomeInterface** ret){
-<code class="language-html"> // Créer l'objet</code>
- SomeClass* out = new SomeClass();
- if (!out) return -1;
-<code class="language-html"> // Initialisation de l'objet</code>
- if (out-&gt;Init() == FALSE){
- delete out;
- return -1;
- }
- // conversion de types de l'interface
- *ret = static_cast&lt;SomeInterface*&gt;(out);
- return 0;
-}
-</pre>
-
-<p>Factory est la classe qui gère effectivement la création des instances distinctes d'un composant. Dans XPCOM, les factories sont mises en œuvre par l'interface <code>nsIFactory</code>. Le modèle de conception utilise l'abstraction et encapsulalion de la construction et de l'initialisation de l'objet.</p>
-
-<p>L'exemple de <a href="https://developer.mozilla.org/fr/docs/Mozilla/Tech/XPCOM/Guide/Creating_components/An_Overview_of_XPCOM#Encapsulating_the_Constructor">l'encapsulation du constructeur</a> est une version simple et sans état ​​de factories, mais la programmation réel est généralement plus compliquée, ou les factories ont besoin de stocker l'état. Au minimum, la factory a besoin de préserver l'information des objets qu'elle a créée. Quand une factory gère les instances d'une classe construite dans une bibliothèque dynamique partagée, par exemple, elle doit savoir quand elle peut décharger la bibliothèque. Quand la factory conserve l'état, vous pouvez demander si il y a des références et savoir si la factory a créé des objets.</p>
-
-<p>Un autre état ​​utile est de savoir si oui ou non un objet est un <em>singleton</em> . Par exemple, si la factory crée un objet qui est censé être un singleton, les appels suivants doivent retourner le même objet. Bien qu'il existe des outils et de meilleures façons de gérer les singletons (dont nous parlerons lorsque nous parlons de l'<code>nsIServiceManager</code>), un développeur peut vouloir utiliser cette information pour s'assurer que seul un objet singleton peut exister quelque soit l'usage.</p>
-
-<p>Les exigences d'une classe factory peuvent être traitées de manière strictement fonctionnel, l'état étant détenu par des variables globales, mais il y a des avantages à utiliser des classes pour les factory. Lorsque vous utilisez une classe pour implémenter la fonctionnalité d'une factory, par exemple, vous utilisez <code>nsISupports</code>, qui vous permet de gérer la durée de vie de l'objets lui-mêmes. Ceci est important quand vous voulez regrouper des ensembles de factories et déterminer si elles peuvent être déchargées. Un autre avantage de l'utilisation de <code>nsISupports</code> est que vous pouvez supporter d'autres interfaces comme ils sont introduits. Comme nous allons le montrer lorsque nous aborderons <code>nsIClassInfo</code>, certaines factories soutiennent l'interrogation des informations sur la mise en œuvre sous-jacente, comme le langage d'écriture de l'objet dans les interfaces que l'objet prend en charge, etc. Ce genre d' "évolutivité" est un avantage clé qui est dérivé de <code>nsISupports</code>.</p>
-
-<h4 id="XPIDL_et_bibliothèques_de_types">XPIDL et bibliothèques de types</h4>
-
-<p>Un moyen facile et puissant pour définir une interface - les interfaces dans un environnement de développement multi-plateforme, doit être indépendant du langage - est d'utiliser une <a href="https://fr.wikipedia.org/wiki/Interface_description_language">interface définition langage(IDL)</a>. XPCOM utilise sa propre variante de la définition <a href="https://fr.wikipedia.org/wiki/Common_Object_Request_Broker_Architecture">CORBA</a> <a href="https://fr.wikipedia.org/wiki/Object_Management_Group">OMG</a> Interface Langage (IDL) appelé <a href="https://developer.mozilla.org/fr/docs/XPIDL">XPIDL</a>, qui vous permet de spécifier les méthodes, les attributs et les constantes d'une interface donnée, et aussi d'en définir héritage.</p>
-
-<p>Il y a quelques inconvénients à la définition de votre interface à l'aide XPIDL. Il n'y a pas d'héritage multiple possible. Si vous définissez une nouvelle interface, il ne peut pas provenir de plus d'une interface. Une autre limitation des interfaces dans XPIDL est que les noms de méthode doivent être uniques. Vous ne pouvez pas avoir deux méthodes avec le même nom qui prennent des paramètres différents, et la solution de contournement - avec plusieurs noms de fonction - n'est pas joli:</p>
-
-<pre>void FooWithInt(in int x);
-void FooWithString(in string x);
-void FooWithURI(in nsIURI x);
-</pre>
-
-<p>Cependant, ces lacunes sont peu de chose en comparaison des fonctionnalités acquises en utilisant XPIDL. XPIDL vous permet de générer <em>des bibliothèques de types</em> , ou typelibs, qui sont des fichiers avec l'extension <em>.xpt</em>. La bibliothèque de types est une représentation binaire d'une ou plusieurs interfaces. Elle fournit un contrôle programmatique et l'accès à l'interface, ce qui est crucial pour les interfaces utilisées d'autre langages que C++. Lorsque les composants sont accessibles à partir d'autres langages, car ils peuvent être en XPCOM, ils utilisent la bibliothèque de type binaire pour accéder à l'interface, trouver les méthodes supportées, et les appeler. Cet aspect de XPCOM est appelé <em>XPConnect</em> . XPConnect est la couche de XPCOM qui donne accès à des composants XPCOM à partir des langages tels que JavaScript. Voir<a href="https://developer.mozilla.org/en-US/docs/Creating_XPCOM_Components/Using_XPCOM_Components#Connecting_to_Components_from_the_Interface"> connexion à des composants de l'interface</a> pour plus d'informations à propos de XPConnect.</p>
-
-<p>Quand un composant est accessible à partir d'une langage autre que C ++, tels que JavaScript, son interface est dit "réfléchi" dans cette langage. Chaque interface réfléchie doit avoir une bibliothèque de type correspondant. Actuellement, vous pouvez écrire des composants en C, C++ ou JavaScript (et parfois Python ou Java, en fonction de l'état des liaisons respectives), et il y a des efforts en cours pour renforcer les liaisons XPCOM pour Ruby et Perl.</p>
-
-<div class="side-note">
-<p><span id="%C3%89criture_dans_d'autres_langages"><a id="%C3%89criture_dans_d'autres_langages"></a><strong>Écriture dans d'autres langages</strong></span></p>
-
-<div class="side-note">
-<p>Bien que vous ne disposez pas de l'accès à certains des outils que XPCOM prévoit pour C++ (comme les macros, les modèles, des pointeurs intelligents, et autres) lorsque vous créez des composants dans d'autres langages, vous pouvez être tellement à l'aise avec, que vous pouvez éviter complètement le C++ et construire, par exemple, les composants XPCOM en Python qui peuvent être utilisés à partir de JavaScript, ou vice versa.</p>
-
-<p>Voir les <a href="https://developer.mozilla.org/en-US/docs/Creating_XPCOM_Components/Resources">Ressources</a> pour plus d'informations à propos de Python et d'autres langages utilisables avec XPCOM.</p>
-</div>
-
-<p>Toutes les interfaces publiques en XPCOM sont définies en utilisant la syntaxe de XPIDL. Les bibliothèques de types et les fichiers d'en-tête de C++ sont générés à partir de ces fichiers IDL, et l'outil qui génére ces fichiers est appelé le <em>compilateur xpidl</em> . La section <a href="https://developer.mozilla.org/en-US/docs/Creating_XPCOM_Components/Starting_WebLock#Defining_the_WebLock_Interface_in_XPIDL">Définir l'interface de WEBLOCK dans XPIDL</a> décrit la syntaxe de XPIDL en détail.</p>
-
-<h3 id="Services_de_XPCOM">Services de XPCOM</h3>
-
-<p>Lorsque les clients utilisent des composants, ils <em>instancient</em> généralement un nouvel objet à chaque fois qu'ils ont besoin de la fonctionnalité du composant fournit. Tel est le cas lorsque, par exemple, les clients travaillent avec des fichiers: chaque fichier séparé est représenté par un objet différent, et plusieurs objets de fichier peut être utilisé à tout moment.</p>
-
-<p>Mais il y a aussi une sorte d'objet connu comme <em>le service</em> , dont il n'y a toujours qu'une seule copie (même si il peut y avoir de nombreux services en cours d'exécution à un moment donné).Chaque fois qu'un client veut accéder à la fonctionnalité fournie par un service, ils parlent à la même instance de ce service. Quand un utilisateur recherche un numéro de téléphone dans une base de données de l'entreprise, par exemple, probablement cette base de données est représentée par un «objet» qui est le même pour tous les collaborateurs. Si ce n'etait pas le cas, l'application aurait besoin de garder deux copies d'une grande base de données en mémoire, pour la même chose, et il pourrait aussi y avoir des incohérences entre les documents si les copies ont divergé.</p>
-
-<p>La fourniture de ce point d'accès unique à la fonctionnalité est mis en oeuvre par le <a href="https://fr.wikipedia.org/wiki/Singleton_(patron_de_conception)">singleton design pattern</a>.</p>
-
-<p>Dans XPCOM, en plus de l'appui et de la gestion des composants, il y a un certain nombre de services qui aident les développeurs à l'écriture de composants. Ces services incluent un fichier abstrait multiplateforme qui offre un accès uniforme et puissant pour les fichiers, les services d'annuaire qui maintiennent l'emplacement application, gestion de la mémoire pour s'assurer que tout le monde utilise le même allocateur de mémoire, et un système de notification d'événement qui permet de passer des messages simples. Le tutoriel va vous montrer l'utilisation de chacun de ces composants et services, et de la <a href="https://developer.mozilla.org/en-US/docs/XPCOM_API_Reference">Référence de l'API XPCOM</a> avec une liste d'interface complète.</p>
-
-<h3 id="Types_XPCOM">Types XPCOM</h3>
-
-<p>Il existe de nombreux types déclarés et de simples macros que nous allons utiliser dans les exemples suivants. La plupart de ces types sont des applications simples. Les types les plus courants sont décrits dans les sections suivantes.</p>
-
-<h4 id="les_types_de_méthode">les types de méthode</h4>
-
-<p>Ce qui suit est un ensemble de types qui veillent à la convention d'appel correcte et de type de méthodes XPCOM de retour.</p>
-</div>
-
-<table class="standard-table">
- <tbody>
- <tr>
- <td><code>NS_IMETHOD</code></td>
- <td>Type de retour de déclaration de méthode.</td>
- </tr>
- <tr>
- <td><code>NS_IMETHODIMP</code></td>
- <td>Type de retour de mise en œuvre de méthode. </td>
- </tr>
- <tr>
- <td><code>NS_IMETHODIMP_(type)</code></td>
- <td>Cas particulier de type de retour de mise en œuvre. Certaines méthodes telles que <code>AddRef</code> et <code>Release</code> ne renvoient pas le type de retour par défaut.</td>
- </tr>
- <tr>
- <td><code>NS_IMPORT</code></td>
- <td>Force la résolution de la méthode en interne par la bibliothèque partagée.</td>
- </tr>
- <tr>
- <td><code>NS_EXPORT</code></td>
- <td>Force l'exportation de la méthode par la bibliothèque partagée.</td>
- </tr>
- </tbody>
-</table>
-
-<p>Référence Comptage</p>
-
-<p>Ces macros gérer comptage de référence.</p>
-
-<table class="standard-table">
- <tbody>
- <tr>
- <td><code>NS_ADDREF</code></td>
- <td>Appelle <code>AddRef</code> de <code>nsISupports</code>.</td>
- </tr>
- <tr>
- <td><code>NS_IF_ADDREF</code></td>
- <td>Vérifie l'etat null avant d'appeler <code>AddRef</code>.</td>
- </tr>
- <tr>
- <td><code>NS_RELEASE</code></td>
- <td>Appelle <code>Release</code> de <code>nsISupports</code>.</td>
- </tr>
- <tr>
- <td><code>NS_IF_RELEASE</code></td>
- <td>Vérifie l'etat null avant d'appeler <code>Release</code>.</td>
- </tr>
- </tbody>
-</table>
-
-<p>Codes d'état</p>
-
-<p>Ces macros testent les codes d'état.</p>
-
-<table class="standard-table">
- <tbody>
- <tr>
- <td><code>NS_FAILED</code></td>
- <td>Retourne vrai si le code d'état passé est un échec</td>
- </tr>
- <tr>
- <td><code>NS_SUCCEEDED</code></td>
- <td>Retourne vrai est le code d'état passé est un succès.</td>
- </tr>
- </tbody>
-</table>
-
-<h3 id="Variable_Mappings">Variable Mappings</h3>
-
-<table class="standard-table">
- <tbody>
- <tr>
- <td><code>nsrefcnt</code></td>
- <td>Type de comptage de référence(entier de 32 bits).</td>
- </tr>
- <tr>
- <td><code>nsresult</code></td>
- <td>Type d'erreur par défaut(entier de 32 bits).</td>
- </tr>
- <tr>
- <td><code>nsnull</code></td>
- <td>Valeur null par défaut.</td>
- </tr>
- </tbody>
-</table>
-
-<h3 id="Codes_d'erreur_XPCOM_communes">Codes d'erreur XPCOM communes</h3>
-
-<table class="standard-table">
- <tbody>
- <tr>
- <td><code>NS_ERROR_NOT_INITIALIZED</code></td>
- <td>Instance non initialisée.</td>
- </tr>
- <tr>
- <td><code>NS_ERROR_ALREADY_INITIALIZED</code></td>
- <td>Instance déjà initialisée.</td>
- </tr>
- <tr>
- <td><code>NS_ERROR_NOT_IMPLEMENTED</code></td>
- <td>Méthode non implémentée</td>
- </tr>
- <tr>
- <td><code>NS_ERROR_NO_INTERFACE</code></td>
- <td>Interface non pris en charge.</td>
- </tr>
- <tr>
- <td><code>NS_ERROR_NULL_POINTER</code></td>
- <td>Pointeur valide <code>nsnull</code>.</td>
- </tr>
- <tr>
- <td><code>NS_ERROR_FAILURE</code></td>
- <td>La méthode a échoué. Erreur générique.</td>
- </tr>
- <tr>
- <td><code>NS_ERROR_UNEXPECTED</code></td>
- <td>Erreur inattendue.</td>
- </tr>
- <tr>
- <td><code>NS_ERROR_OUT_OF_MEMORY</code></td>
- <td>Allocation de mémoire échouée.</td>
- </tr>
- <tr>
- <td><code>NS_ERROR_FACTORY_NOT_REGISTERED</code></td>
- <td>Classe inconnue du registre.</td>
- </tr>
- </tbody>
-</table>
-
-<p></p><div class="prevnext" style="text-align: right;">
- <p><a href="/fr/docs/Mozilla/Tech/XPCOM/Guide/Creating_components/Preface" style="float: left;">« Précédent</a><a href="/fr/docs/Mozilla/Tech/XPCOM/Guide/Creating_components/Using_XPCOM_Components">Suivant »</a></p>
-</div><p></p>
diff --git a/files/fr/mozilla/tech/xpcom/guide/creating_components/index.html b/files/fr/mozilla/tech/xpcom/guide/creating_components/index.html
deleted file mode 100644
index dbffe93c6e..0000000000
--- a/files/fr/mozilla/tech/xpcom/guide/creating_components/index.html
+++ /dev/null
@@ -1,281 +0,0 @@
----
-title: Créer des composants XPCOM
-slug: Mozilla/Tech/XPCOM/Guide/Creating_components
-translation_of: Mozilla/Tech/XPCOM/Guide/Creating_components
----
-<p></p><div class="prevnext" style="text-align: right;">
- <p><a href="/fr/docs/Creating_XPCOM_Components/Preface">Suivant »</a></p>
-</div><p></p>
-
-<p><span class="seoSummary">Ce guide a pour but de vous initier à Gecko, et de vous permettre de créer des composants <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XPCOM/Guide/Creating_components/en/XPCOM">XPCOM</a> pour les applications Gecko.</span> Bien que le principal objectif soit de vous permettre d'inclure du code C++ dans des composants utilisables dans Gecko, nous espérons pouvoir vous présenter tous les outils, techniques, et technologies qui constituent XPCOM. <span id="result_box" lang="fr"><span class="hps">En conséquence</span><span>,</span> c<span class="hps">e livre</span> <span class="hps">est agencé</span> <span class="hps">de telle sorte que</span> <span class="hps">vous puissiez </span><span class="hps">suivre</span> <span class="hps">et créer</span> <span class="hps">vos propres composants</span> <span class="hps">ou</span> <span class="hps">en apprendre davantage sur</span> <span class="hps">les différents</span> <span class="hps">sujets</span> <span class="hps">XPCOM</span> <span class="hps">individuellement</span><span>, comme un </span><span class="hps">ouvrage de référence</span><span>.</span></span> Par exemple, l'introduction inclue une analyse des composants, et le premier chapitre - dans lequel vous compilerez le code de base et vous l'enregistrerez avec Mozilla - explique la relation entre les composants et les modules, les interfaces XPCOM, et le processus d'enregistrement de manière générale.</p>
-
-<div class="note">
-<p><strong>Remarque:</strong> De manière générale, essayez d'éviter de créer des composants XPCOM. Les add-ons devraient utiliser le nouveau <a href="/en-US/Add-ons/SDK">Add-on SDK</a> autant que possible ; cependant, il est probable que dans certains cas cela soit inévitable.</p>
-</div>
-
-<div class="note">
-<p><strong>Remarque :</strong> Cet article décrit une méthode qui utilise <a href="https://developer.mozilla.org/en-US/docs/Mozilla/XPIDL">xpidl</a> mais vous devriez plutôt utiliser <a href="https://developer.mozilla.org/en-US/docs/Mozilla/WebIDL_bindings">webidl</a>.</p>
-</div>
-
-<h3 id="Preface" name="Preface"><a href="https://developer.mozilla.org/fr/docs/Mozilla/Tech/XPCOM/Guide/Creating_components/Preface" title="/en-US/docs/Creating_XPCOM_Components/Preface">Preface</a></h3>
-
-<dl>
- <dd><a href="https://developer.mozilla.org/fr/docs/Mozilla/Tech/XPCOM/Guide/Creating_components/Preface" title="/en-US/docs/Creating_XPCOM_Components/Preface#Who_Should_Read_This_Book">Pour qui est ce tutoriel</a></dd>
- <dd><a href="https://developer.mozilla.org/fr/docs/Mozilla/Tech/XPCOM/Guide/Creating_components/Preface" title="/en-US/docs/Creating_XPCOM_Components/Preface#Organization_of_the_Tutorial">Organisation du tutoriel</a></dd>
- <dd><a href="https://developer.mozilla.org/fr/docs/Mozilla/Tech/XPCOM/Guide/Creating_components/Preface" title="/en-US/docs/Creating_XPCOM_Components/Preface#Following_Along_with_the_Examples">En Pratique</a></dd>
- <dd><a href="https://developer.mozilla.org/fr/docs/Mozilla/Tech/XPCOM/Guide/Creating_components/Preface" title="/en-US/docs/Creating_XPCOM_Components/Preface#Conventions">Conventions</a></dd>
- <dd><a href="https://developer.mozilla.org/fr/docs/Mozilla/Tech/XPCOM/Guide/Creating_components/Preface" title="/en-US/docs/Creating_XPCOM_Components/Preface#Acknowledgements">Remerciements</a></dd>
-</dl>
-
-<h3 id="An_Overview_of_XPCOM" name="An_Overview_of_XPCOM"><a href="https://developer.mozilla.org/fr/docs/Mozilla/Tech/XPCOM/Guide/Creating_components/An_Overview_of_XPCOM" title="/en-US/docs/Creating_XPCOM_Components/An_Overview_of_XPCOM">Un aperçu de XPCOM</a></h3>
-
-<dl>
- <dd><a href="https://developer.mozilla.org/fr/docs/Mozilla/Tech/XPCOM/Guide/Creating_components/An_Overview_of_XPCOM" title="/en-US/docs/Creating_XPCOM_Components/An_Overview_of_XPCOM#The_XPCOM_Solution">Solutions XPCOM</a></dd>
- <dd><a href="https://developer.mozilla.org/fr/docs/Mozilla/Tech/XPCOM/Guide/Creating_components/An_Overview_of_XPCOM" title="/en-US/docs/Creating_XPCOM_Components/An_Overview_of_XPCOM#Gecko">Gecko</a></dd>
- <dd><a href="https://developer.mozilla.org/fr/docs/Mozilla/Tech/XPCOM/Guide/Creating_components/An_Overview_of_XPCOM" title="/en-US/docs/Creating_XPCOM_Components/An_Overview_of_XPCOM#Components">Composants</a></dd>
- <dd><a href="https://developer.mozilla.org/fr/docs/Mozilla/Tech/XPCOM/Guide/Creating_components/An_Overview_of_XPCOM" title="/en-US/docs/Creating_XPCOM_Components/An_Overview_of_XPCOM#Interfaces">Interfaces</a>
- <dl>
- <dd><a href="https://developer.mozilla.org/fr/docs/Mozilla/Tech/XPCOM/Guide/Creating_components/An_Overview_of_XPCOM" title="/en-US/docs/Creating_XPCOM_Components/An_Overview_of_XPCOM#Interfaces_and_Encapsulation">Interfaces et Encapsulation</a></dd>
- <dd><a href="https://developer.mozilla.org/fr/docs/Mozilla/Tech/XPCOM/Guide/Creating_components/An_Overview_of_XPCOM" title="/en-US/docs/Creating_XPCOM_Components/An_Overview_of_XPCOM#The_nsISupports_Base_Interface">L'interface de base <code>nsISupports</code></a></dd>
- </dl>
- </dd>
- <dd><a href="https://developer.mozilla.org/fr/docs/Mozilla/Tech/XPCOM/Guide/Creating_components/An_Overview_of_XPCOM" title="/en-US/docs/Creating_XPCOM_Components/An_Overview_of_XPCOM#XPCOM_Identifiers">XPCOM Identifiers</a>
- <dl>
- <dd><a href="https://developer.mozilla.org/fr/docs/Mozilla/Tech/XPCOM/Guide/Creating_components/An_Overview_of_XPCOM" title="/en-US/docs/Creating_XPCOM_Components/An_Overview_of_XPCOM#CID">CID</a></dd>
- <dd><a href="https://developer.mozilla.org/fr/docs/Mozilla/Tech/XPCOM/Guide/Creating_components/An_Overview_of_XPCOM" title="/en-US/docs/Creating_XPCOM_Components/An_Overview_of_XPCOM#Contract_ID">Contract ID</a></dd>
- </dl>
- </dd>
- <dd><a href="https://developer.mozilla.org/fr/docs/Mozilla/Tech/XPCOM/Guide/Creating_components/An_Overview_of_XPCOM" title="/en-US/docs/Creating_XPCOM_Components/An_Overview_of_XPCOM#Factories">Factories</a>
- <dl>
- <dd><a href="https://developer.mozilla.org/fr/docs/Mozilla/Tech/XPCOM/Guide/Creating_components/An_Overview_of_XPCOM" title="/en-US/docs/Creating_XPCOM_Components/An_Overview_of_XPCOM#XPIDL_and_Type_Libraries">XPIDL et bibliothèques de types</a></dd>
- </dl>
- </dd>
- <dd><a href="https://developer.mozilla.org/fr/docs/Mozilla/Tech/XPCOM/Guide/Creating_components/An_Overview_of_XPCOM" title="/en-US/docs/Creating_XPCOM_Components/An_Overview_of_XPCOM#XPCOM_Services">XPCOM Services</a></dd>
- <dd><a href="https://developer.mozilla.org/fr/docs/Mozilla/Tech/XPCOM/Guide/Creating_components/An_Overview_of_XPCOM" title="/en-US/docs/Creating_XPCOM_Components/An_Overview_of_XPCOM#XPCOM_Types">XPCOM Types</a>
- <dl>
- <dd><a href="https://developer.mozilla.org/fr/docs/Mozilla/Tech/XPCOM/Guide/Creating_components/An_Overview_of_XPCOM" title="/en-US/docs/Creating_XPCOM_Components/An_Overview_of_XPCOM#Method_Types">Method Types</a></dd>
- <dd><a href="https://developer.mozilla.org/fr/docs/Mozilla/Tech/XPCOM/Guide/Creating_components/An_Overview_of_XPCOM" title="/en-US/docs/Creating_XPCOM_Components/An_Overview_of_XPCOM#Reference_Counting">Reference Counting</a></dd>
- <dd><a href="https://developer.mozilla.org/fr/docs/Mozilla/Tech/XPCOM/Guide/Creating_components/An_Overview_of_XPCOM" title="/en-US/docs/Creating_XPCOM_Components/An_Overview_of_XPCOM#Status_Codes">Status Codes</a></dd>
- <dd><a href="https://developer.mozilla.org/fr/docs/Mozilla/Tech/XPCOM/Guide/Creating_components/An_Overview_of_XPCOM" title="/en-US/docs/Creating_XPCOM_Components/An_Overview_of_XPCOM#Variable_Mappings">Variable Mappings</a></dd>
- <dd><a href="https://developer.mozilla.org/fr/docs/Mozilla/Tech/XPCOM/Guide/Creating_components/An_Overview_of_XPCOM" title="/en-US/docs/Creating_XPCOM_Components/An_Overview_of_XPCOM#Common_XPCOM_Error_Codes">Codes d'erreur XPCOM</a></dd>
- </dl>
- </dd>
-</dl>
-
-<h3 id="Using_XPCOM_Components" name="Using_XPCOM_Components"><a href="/en-US/docs/Creating_XPCOM_Components/Using_XPCOM_Components" title="/en-US/docs/Creating_XPCOM_Components/Using_XPCOM_Components">Utilisation des composants XPCOM</a></h3>
-
-<dl>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Using_XPCOM_Components#Component_Examples" title="/en-US/docs/Creating_XPCOM_Components/Using_XPCOM_Components#Component_Examples">Exemples de composants</a>
-
- <dl>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Using_XPCOM_Components#Cookie_Manager" title="/en-US/docs/Creating_XPCOM_Components/Using_XPCOM_Components#Cookie_Manager">gestionnaire de cookies</a></dd>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Using_XPCOM_Components#The_WebBrowserFind_Component" title="/en-US/docs/Creating_XPCOM_Components/Using_XPCOM_Components#The_WebBrowserFind_Component"><strong>WebBrowserFind</strong></a></dd>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Using_XPCOM_Components#The_WebLock_Component" title="/en-US/docs/Creating_XPCOM_Components/Using_XPCOM_Components#The_WebLock_Component"><strong>WebLock</strong></a></dd>
- </dl>
- </dd>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Using_XPCOM_Components#Component_Use_in_Mozilla" title="/en-US/docs/Creating_XPCOM_Components/Using_XPCOM_Components#Component_Use_in_Mozilla">Utilisation de composant dans Mozilla</a>
- <dl>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Using_XPCOM_Components#Finding_Mozilla_Components" title="/en-US/docs/Creating_XPCOM_Components/Using_XPCOM_Components#Finding_Mozilla_Components">Trouver des composants Mozilla</a></dd>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Using_XPCOM_Components#Using_XPCOM_Components_in_Your_Cpp" title="/en-US/docs/Creating_XPCOM_Components/Using_XPCOM_Components#Using_XPCOM_Components_in_Your_Cpp">Utilisation de composants XPCOM dans votre Cpp</a></dd>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Using_XPCOM_Components#XPConnect:_Using_XPCOM_Components_From_Script" title="/en-US/docs/Creating_XPCOM_Components/Using_XPCOM_Components#XPConnect:_Using_XPCOM_Components_From_Script">XPConnect: Utilisation de XPCOM avec un Script</a></dd>
- </dl>
- </dd>
-</dl>
-
-<h3 id="Component_Internals" name="Component_Internals"><a href="/en-US/docs/Creating_XPCOM_Components/Component_Internals" title="/en-US/docs/Creating_XPCOM_Components/Component_Internals">Composants Internes</a></h3>
-
-<dl>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Component_Internals#Creating_Components_in_Cpp" title="/en-US/docs/Creating_XPCOM_Components/Component_Internals#Creating_Components_in_Cpp">Creation de composants dans  Cpp</a></dd>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Component_Internals#XPCOM_Initialization" title="/en-US/docs/Creating_XPCOM_Components/Component_Internals#XPCOM_Initialization">XPCOM Initialization</a>
- <dl>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Component_Internals#XPCOM_Registry_Manifests" title="/en-US/docs/Creating_XPCOM_Components/Component_Internals#XPCOM_Registry_Manifests">XPCOM Registry Manifests</a></dd>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Component_Internals#Registration_Methods_in_XPCOM" title="/en-US/docs/Creating_XPCOM_Components/Component_Internals#Registration_Methods_in_XPCOM">Registration Methods in XPCOM</a></dd>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Component_Internals#Autoregistration" title="/en-US/docs/Creating_XPCOM_Components/Component_Internals#Autoregistration">Autoregistration</a></dd>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Component_Internals#The_Shutdown_Process" title="/en-US/docs/Creating_XPCOM_Components/Component_Internals#The_Shutdown_Process">The Shutdown Process</a></dd>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Component_Internals#Three_Parts_of_a_XPCOM_Component_Library" title="/en-US/docs/Creating_XPCOM_Components/Component_Internals#Three_Parts_of_a_XPCOM_Component_Library">Three Parts of a XPCOM Component Library</a></dd>
- </dl>
- </dd>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Component_Internals#XPCOM_Glue" title="/en-US/docs/Creating_XPCOM_Components/Component_Internals#XPCOM_Glue">XPCOM Glue</a>
- <dl>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Component_Internals#The_Glue_Library" title="/en-US/docs/Creating_XPCOM_Components/Component_Internals#The_Glue_Library">The Glue Library</a></dd>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Component_Internals#XPCOM_String_Classes" title="/en-US/docs/Creating_XPCOM_Components/Component_Internals#XPCOM_String_Classes">XPCOM String Classes</a></dd>
- </dl>
- </dd>
-</dl>
-
-<h3 id="Creating_the_Component_Code" name="Creating_the_Component_Code"><a href="/en-US/docs/Creating_XPCOM_Components/Creating_the_Component_Code" title="/en-US/docs/Creating_XPCOM_Components/Creating_the_Component_Code">Creating the Component Code</a></h3>
-
-<dl>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Creating_the_Component_Code#What_We.27ll_Be_Working_On" title="/en-US/docs/Creating_XPCOM_Components/Creating_the_Component_Code#What_We.27ll_Be_Working_On">What We'll Be Working On</a></dd>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Creating_the_Component_Code#Component_Registration" title="/en-US/docs/Creating_XPCOM_Components/Creating_the_Component_Code#Component_Registration">Component Registration</a>
- <dl>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Creating_the_Component_Code#The_regxpcom_Program" title="/en-US/docs/Creating_XPCOM_Components/Creating_the_Component_Code#The_regxpcom_Program">The <code>regxpcom</code> Program</a></dd>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Creating_the_Component_Code#Registration_Alternatives" title="/en-US/docs/Creating_XPCOM_Components/Creating_the_Component_Code#Registration_Alternatives">Registration Alternatives</a></dd>
- </dl>
- </dd>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Creating_the_Component_Code#Overview_of_the_WebLock_Module_Source" title="/en-US/docs/Creating_XPCOM_Components/Creating_the_Component_Code#Overview_of_the_WebLock_Module_Source">Overview of the <strong>WebLock</strong> Module Source</a></dd>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Creating_the_Component_Code#Digging_In:_Required_Includes_and_Constants" title="/en-US/docs/Creating_XPCOM_Components/Creating_the_Component_Code#Digging_In:_Required_Includes_and_Constants">Digging In: Required Includes and Constants</a>
- <dl>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Creating_the_Component_Code#Identifiers_in_XPCOM" title="/en-US/docs/Creating_XPCOM_Components/Creating_the_Component_Code#Identifiers_in_XPCOM">Identifiers in XPCOM</a></dd>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Creating_the_Component_Code#Coding_for_the_Registration_Process" title="/en-US/docs/Creating_XPCOM_Components/Creating_the_Component_Code#Coding_for_the_Registration_Process">Coding for the Registration Process</a></dd>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Creating_the_Component_Code#The_Registration_Methods" title="/en-US/docs/Creating_XPCOM_Components/Creating_the_Component_Code#The_Registration_Methods">The Registration Methods</a></dd>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Creating_the_Component_Code#Creating_an_Instance_of_Your_Component" title="/en-US/docs/Creating_XPCOM_Components/Creating_the_Component_Code#Creating_an_Instance_of_Your_Component">Creating an Instance of Your Component</a></dd>
- </dl>
- </dd>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Creating_the_Component_Code#webLock1.cpp" title="/en-US/docs/Creating_XPCOM_Components/Creating_the_Component_Code#webLock1.cpp"><code>webLock1.cpp</code></a></dd>
-</dl>
-
-<h3 id="Using_XPCOM_Utilities_to_Make_Things_Easier" name="Using_XPCOM_Utilities_to_Make_Things_Easier"><a href="/en-US/docs/Creating_XPCOM_Components/Using_XPCOM_Utilities_to_Make_Things_Easier" title="/en-US/docs/Creating_XPCOM_Components/Using_XPCOM_Utilities_to_Make_Things_Easier">Using XPCOM Utilities to Make Things Easier</a></h3>
-
-<dl>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Using_XPCOM_Utilities_to_Make_Things_Easier#XPCOM_Macros" title="/en-US/docs/Creating_XPCOM_Components/Using_XPCOM_Utilities_to_Make_Things_Easier#XPCOM_Macros">XPCOM Macros</a>
-
- <dl>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Using_XPCOM_Utilities_to_Make_Things_Easier#Generic_XPCOM_Module_Macros" title="/en-US/docs/Creating_XPCOM_Components/Using_XPCOM_Utilities_to_Make_Things_Easier#Generic_XPCOM_Module_Macros">Generic XPCOM Module Macros</a></dd>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Using_XPCOM_Utilities_to_Make_Things_Easier#Common_Implementation_Macros" title="/en-US/docs/Creating_XPCOM_Components/Using_XPCOM_Utilities_to_Make_Things_Easier#Common_Implementation_Macros">Common Implementation Macros</a></dd>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Using_XPCOM_Utilities_to_Make_Things_Easier#Declaration_Macros" title="/en-US/docs/Creating_XPCOM_Components/Using_XPCOM_Utilities_to_Make_Things_Easier#Declaration_Macros">Declaration Macros</a></dd>
- </dl>
- </dd>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Using_XPCOM_Utilities_to_Make_Things_Easier#webLock2.cpp" title="/en-US/docs/Creating_XPCOM_Components/Using_XPCOM_Utilities_to_Make_Things_Easier#webLock2.cpp"><code>webLock2.cpp</code></a></dd>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Using_XPCOM_Utilities_to_Make_Things_Easier#String_Classes_in_XPCOM" title="/en-US/docs/Creating_XPCOM_Components/Using_XPCOM_Utilities_to_Make_Things_Easier#String_Classes_in_XPCOM">String Classes in XPCOM</a>
- <dl>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Using_XPCOM_Utilities_to_Make_Things_Easier#Using_Strings" title="/en-US/docs/Creating_XPCOM_Components/Using_XPCOM_Utilities_to_Make_Things_Easier#Using_Strings">Using Strings</a></dd>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Using_XPCOM_Utilities_to_Make_Things_Easier#nsEmbedString_and_nsEmbedCString" title="/en-US/docs/Creating_XPCOM_Components/Using_XPCOM_Utilities_to_Make_Things_Easier#nsEmbedString_and_nsEmbedCString"><code>nsEmbedString</code> and <code>nsEmbedCString</code></a></dd>
- </dl>
- </dd>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Using_XPCOM_Utilities_to_Make_Things_Easier#Smart_Pointers" title="/en-US/docs/Creating_XPCOM_Components/Using_XPCOM_Utilities_to_Make_Things_Easier#Smart_Pointers">Smart Pointers</a></dd>
-</dl>
-
-<h3 id="Starting_WebLock" name="Starting_WebLock"><a href="/en-US/docs/Creating_XPCOM_Components/Starting_WebLock" title="/en-US/docs/Creating_XPCOM_Components/Starting_WebLock">Starting <strong>WebLock</strong></a></h3>
-
-<dl>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Starting_WebLock#Getting_Called_at_Startup" title="/en-US/docs/Creating_XPCOM_Components/Starting_WebLock#Getting_Called_at_Startup">Getting Called at Startup</a>
-
- <dl>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Starting_WebLock#Registering_for_Notifications" title="/en-US/docs/Creating_XPCOM_Components/Starting_WebLock#Registering_for_Notifications">Registering for Notifications</a></dd>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Starting_WebLock#Getting_Access_to_the_Category_Manager" title="/en-US/docs/Creating_XPCOM_Components/Starting_WebLock#Getting_Access_to_the_Category_Manager">Getting Access to the Category Manager</a></dd>
- </dl>
- </dd>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Starting_WebLock#Providing_Access_to_WebLock" title="/en-US/docs/Creating_XPCOM_Components/Starting_WebLock#Providing_Access_to_WebLock">Providing Access to <strong>WebLock</strong></a></dd>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Starting_WebLock#Creating_the_WebLock_Programming_Interface" title="/en-US/docs/Creating_XPCOM_Components/Starting_WebLock#Creating_the_WebLock_Programming_Interface">Creating the <strong>WebLock</strong> Programming Interface</a></dd>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Starting_WebLock#Defining_the_WebLock_Interface_in_XPIDL" title="/en-US/docs/Creating_XPCOM_Components/Starting_WebLock#Defining_the_WebLock_Interface_in_XPIDL">Defining the <strong>WebLock</strong> Interface in XPIDL</a>
- <dl>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Starting_WebLock#The_XPIDL_Syntax" title="/en-US/docs/Creating_XPCOM_Components/Starting_WebLock#The_XPIDL_Syntax">The XPIDL Syntax</a></dd>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Starting_WebLock#Scriptable_Interfaces" title="/en-US/docs/Creating_XPCOM_Components/Starting_WebLock#Scriptable_Interfaces">Scriptable Interfaces</a></dd>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Starting_WebLock#Subclassing_nsISupports" title="/en-US/docs/Creating_XPCOM_Components/Starting_WebLock#Subclassing_nsISupports">Subclassing <code>nsISupports</code></a></dd>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Starting_WebLock#The_Web_Locking_Interface" title="/en-US/docs/Creating_XPCOM_Components/Starting_WebLock#The_Web_Locking_Interface">The Web Locking Interface</a></dd>
- </dl>
- </dd>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Starting_WebLock#Implementing_WebLock" title="/en-US/docs/Creating_XPCOM_Components/Starting_WebLock#Implementing_WebLock">Implementing <strong>WebLock</strong></a>
- <dl>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Starting_WebLock#Declaration_Macros" title="/en-US/docs/Creating_XPCOM_Components/Starting_WebLock#Declaration_Macros">Declaration Macros</a></dd>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Starting_WebLock#Representing_Return_Values_in_XPCOM" title="/en-US/docs/Creating_XPCOM_Components/Starting_WebLock#Representing_Return_Values_in_XPCOM">Representing Return Values in XPCOM</a></dd>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Starting_WebLock#XPIDL_Code_Generation" title="/en-US/docs/Creating_XPCOM_Components/Starting_WebLock#XPIDL_Code_Generation">XPIDL Code Generation</a></dd>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Starting_WebLock#Getting_the_WebLock_Service_from_a_Client" title="/en-US/docs/Creating_XPCOM_Components/Starting_WebLock#Getting_the_WebLock_Service_from_a_Client">Getting the <strong>WebLock</strong> Service from a Client</a></dd>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Starting_WebLock#Implementing_the_iWebLock_Interface" title="/en-US/docs/Creating_XPCOM_Components/Starting_WebLock#Implementing_the_iWebLock_Interface">Implementing the <code>iWebLock</code> Interface</a></dd>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Starting_WebLock#The_Directory_Service" title="/en-US/docs/Creating_XPCOM_Components/Starting_WebLock#The_Directory_Service">The Directory Service</a></dd>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Starting_WebLock#Modifying_Paths_with_nsIFile" title="/en-US/docs/Creating_XPCOM_Components/Starting_WebLock#Modifying_Paths_with_nsIFile">Modifying Paths with <code>nsIFile</code></a></dd>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Starting_WebLock#Manipulating_Files_with_nsIFile" title="/en-US/docs/Creating_XPCOM_Components/Starting_WebLock#Manipulating_Files_with_nsIFile">Manipulating Files with <code>nsIFile</code></a></dd>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Starting_WebLock#Using_nsILocalFile_for_Reading_Data" title="/en-US/docs/Creating_XPCOM_Components/Starting_WebLock#Using_nsILocalFile_for_Reading_Data">Using <code>nsILocalFile</code> for Reading Data</a></dd>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Starting_WebLock#Processing_the_White_List_Data" title="/en-US/docs/Creating_XPCOM_Components/Starting_WebLock#Processing_the_White_List_Data">Processing the White List Data</a></dd>
- </dl>
- </dd>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Starting_WebLock#iWebLock_Method_By_Method" title="/en-US/docs/Creating_XPCOM_Components/Starting_WebLock#iWebLock_Method_By_Method"><code>iWebLock</code> Method By Method</a>
- <dl>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Starting_WebLock#Lock_and_Unlock" title="/en-US/docs/Creating_XPCOM_Components/Starting_WebLock#Lock_and_Unlock"><code>Lock</code> and <code>Unlock</code></a></dd>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Starting_WebLock#AddSite" title="/en-US/docs/Creating_XPCOM_Components/Starting_WebLock#AddSite"><code>AddSite</code></a></dd>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Starting_WebLock#RemoveSite" title="/en-US/docs/Creating_XPCOM_Components/Starting_WebLock#RemoveSite"><code>RemoveSite</code></a></dd>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Starting_WebLock#SetSites" title="/en-US/docs/Creating_XPCOM_Components/Starting_WebLock#SetSites"><code>SetSites</code></a></dd>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Starting_WebLock#GetNext" title="/en-US/docs/Creating_XPCOM_Components/Starting_WebLock#GetNext"><code>GetNext</code></a></dd>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Starting_WebLock#GetSites" title="/en-US/docs/Creating_XPCOM_Components/Starting_WebLock#GetSites"><code>GetSites</code></a></dd>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Starting_WebLock#HasMoreElements" title="/en-US/docs/Creating_XPCOM_Components/Starting_WebLock#HasMoreElements"><code>HasMoreElements</code></a></dd>
- </dl>
- </dd>
-</dl>
-
-<h3 id="Finishing_the_Component" name="Finishing_the_Component"><a href="/en-US/docs/Creating_XPCOM_Components/Finishing_the_Component" title="/en-US/docs/Creating_XPCOM_Components/Finishing_the_Component">Finishing the Component</a></h3>
-
-<dl>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Finishing_the_Component#Using_Frozen_Interfaces" title="/en-US/docs/Creating_XPCOM_Components/Finishing_the_Component#Using_Frozen_Interfaces">Using Frozen Interfaces</a>
-
- <dl>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Finishing_the_Component#Copying_Interfaces_Into_Your_Build_Environment" title="/en-US/docs/Creating_XPCOM_Components/Finishing_the_Component#Copying_Interfaces_Into_Your_Build_Environment">Copying Interfaces Into Your Build Environment</a></dd>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Finishing_the_Component#Implementing_the_nsIContentPolicy_Interface" title="/en-US/docs/Creating_XPCOM_Components/Finishing_the_Component#Implementing_the_nsIContentPolicy_Interface">Implementing the <code>nsIContentPolicy</code> Interface</a></dd>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Finishing_the_Component#Receiving_Notifications" title="/en-US/docs/Creating_XPCOM_Components/Finishing_the_Component#Receiving_Notifications">Receiving Notifications</a></dd>
- </dl>
- </dd>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Finishing_the_Component#Implementing_the_nsIContentPolicy" title="/en-US/docs/Creating_XPCOM_Components/Finishing_the_Component#Implementing_the_nsIContentPolicy">Implementing the <code>nsIContentPolicy</code></a>
- <dl>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Finishing_the_Component#Uniform_Resource_Locators" title="/en-US/docs/Creating_XPCOM_Components/Finishing_the_Component#Uniform_Resource_Locators">Uniform Resource Locators</a></dd>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Finishing_the_Component#Checking_the_White_List" title="/en-US/docs/Creating_XPCOM_Components/Finishing_the_Component#Checking_the_White_List">Checking the White List</a></dd>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Finishing_the_Component#Creating_nsIURI_Objects" title="/en-US/docs/Creating_XPCOM_Components/Finishing_the_Component#Creating_nsIURI_Objects">Creating <code>nsIURI</code> Objects</a></dd>
- </dl>
- </dd>
-</dl>
-
-<h3 id="Building_the_WebLock_UI" name="Building_the_WebLock_UI"><a href="/en-US/docs/Creating_XPCOM_Components/Building_the_WebLock_UI" title="/en-US/docs/Creating_XPCOM_Components/Building_the_WebLock_UI">Building the <strong>WebLock</strong> UI</a></h3>
-
-<dl>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Building_the_WebLock_UI#User_Interface_Package_List" title="/en-US/docs/Creating_XPCOM_Components/Building_the_WebLock_UI#User_Interface_Package_List">User Interface Package List</a></dd>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Building_the_WebLock_UI#Client_Code_Overview" title="/en-US/docs/Creating_XPCOM_Components/Building_the_WebLock_UI#Client_Code_Overview">Client Code Overview</a></dd>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Building_the_WebLock_UI#XUL" title="/en-US/docs/Creating_XPCOM_Components/Building_the_WebLock_UI#XUL">XUL</a>
- <dl>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Building_the_WebLock_UI#The_XUL_Document" title="/en-US/docs/Creating_XPCOM_Components/Building_the_WebLock_UI#The_XUL_Document">The XUL Document</a></dd>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Building_the_WebLock_UI#The_Locking_UI" title="/en-US/docs/Creating_XPCOM_Components/Building_the_WebLock_UI#The_Locking_UI">The Locking UI</a></dd>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Building_the_WebLock_UI#Site_Adding_UI" title="/en-US/docs/Creating_XPCOM_Components/Building_the_WebLock_UI#Site_Adding_UI">Site Adding UI</a></dd>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Building_the_WebLock_UI#weblock.xul" title="/en-US/docs/Creating_XPCOM_Components/Building_the_WebLock_UI#weblock.xul"><code>weblock.xul</code></a></dd>
- </dl>
- </dd>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Building_the_WebLock_UI#Overlaying_New_User_Interface_Into_Mozilla" title="/en-US/docs/Creating_XPCOM_Components/Building_the_WebLock_UI#Overlaying_New_User_Interface_Into_Mozilla">Overlaying New User Interface Into Mozilla</a>
- <dl>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Building_the_WebLock_UI#webLockOverlay.xul" title="/en-US/docs/Creating_XPCOM_Components/Building_the_WebLock_UI#webLockOverlay.xul"><code>webLockOverlay.xul</code></a></dd>
- </dl>
- </dd>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Building_the_WebLock_UI#Other_Resources" title="/en-US/docs/Creating_XPCOM_Components/Building_the_WebLock_UI#Other_Resources">Other Resources</a>
- <dl>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Building_the_WebLock_UI#weblock.css" title="/en-US/docs/Creating_XPCOM_Components/Building_the_WebLock_UI#weblock.css"><code>weblock.css</code></a></dd>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Building_the_WebLock_UI#Image_Resources" title="/en-US/docs/Creating_XPCOM_Components/Building_the_WebLock_UI#Image_Resources">Image Resources</a></dd>
- </dl>
- </dd>
-</dl>
-
-<h3 id="Packaging_WebLock" name="Packaging_WebLock"><a href="/en-US/docs/Creating_XPCOM_Components/Packaging_WebLock" title="/en-US/docs/Creating_XPCOM_Components/Packaging_WebLock">Packaging WebLock</a></h3>
-
-<dl>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Packaging_WebLock#Component_Installation_Overview" title="/en-US/docs/Creating_XPCOM_Components/Packaging_WebLock#Component_Installation_Overview">Component Installation Overview</a></dd>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Packaging_WebLock#Archiving_Resources" title="/en-US/docs/Creating_XPCOM_Components/Packaging_WebLock#Archiving_Resources">Archiving Resources</a></dd>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Packaging_WebLock#The_WebLock_Installation_Script" title="/en-US/docs/Creating_XPCOM_Components/Packaging_WebLock#The_WebLock_Installation_Script">The <strong>WebLock</strong> Installation Script</a></dd>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Packaging_WebLock#The_WebLock_Trigger_Script" title="/en-US/docs/Creating_XPCOM_Components/Packaging_WebLock#The_WebLock_Trigger_Script">The <strong>WebLock</strong> Trigger Script</a></dd>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Packaging_WebLock#Distributing_Your_Component" title="/en-US/docs/Creating_XPCOM_Components/Packaging_WebLock#Distributing_Your_Component">Distributing Your Component</a></dd>
-</dl>
-
-<h3 id="Appendix_A_-_Setting_up_the_Gecko_SDK" name="Appendix_A_-_Setting_up_the_Gecko_SDK"><a href="/en-US/docs/Creating_XPCOM_Components/Setting_up_the_Gecko_SDK" title="/en-US/docs/Creating_XPCOM_Components/Setting_up_the_Gecko_SDK">Appendix A - Setting up the Gecko SDK</a></h3>
-
-<dl>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Setting_up_the_Gecko_SDK#Downloading_and_Setting_the_SDK" title="/en-US/docs/Creating_XPCOM_Components/Setting_up_the_Gecko_SDK#Downloading_and_Setting_the_SDK">Downloading and Setting the SDK</a></dd>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Setting_up_the_Gecko_SDK#Building_a_Microsoft_Visual_Cpp_Project" title="/en-US/docs/Creating_XPCOM_Components/Setting_up_the_Gecko_SDK#Building_a_Microsoft_Visual_Cpp_Project">Building a Microsoft Visual Cpp Project</a>
- <dl>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Setting_up_the_Gecko_SDK#Creating_a_New_Project" title="/en-US/docs/Creating_XPCOM_Components/Setting_up_the_Gecko_SDK#Creating_a_New_Project">Creating a New Project</a></dd>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Setting_up_the_Gecko_SDK#Adding_the_Gecko_SDK_to_the_Project_Settings" title="/en-US/docs/Creating_XPCOM_Components/Setting_up_the_Gecko_SDK#Adding_the_Gecko_SDK_to_the_Project_Settings">Adding the Gecko SDK to the Project Settings</a></dd>
- </dl>
- </dd>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Setting_up_the_Gecko_SDK#Building_a_Windows_Project" title="/en-US/docs/Creating XPCOM Components/Setting up the Gecko SDK#Building a Windows Project">Building a Windows Project</a></dd>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Setting_up_the_Gecko_SDK#A_Makefile_for_Unix" title="/en-US/docs/Creating_XPCOM_Components/Setting_up_the_Gecko_SDK#A_Makefile_for_Unix">A Makefile for Unix</a></dd>
-</dl>
-
-<h3 id="Appendix_B_-_Resources" name="Appendix_B_-_Resources"><a href="/en-US/docs/Creating_XPCOM_Components/Resources" title="/en-US/docs/Creating_XPCOM_Components/Resources">Appendix B - Resources</a></h3>
-
-<dl>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Resources#WebLock_Resources" title="/en-US/docs/Creating_XPCOM_Components/Resources#WebLock_Resources">WebLock Resources</a></dd>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Resources#Gecko_Resources" title="/en-US/docs/Creating_XPCOM_Components/Resources#Gecko_Resources">Gecko Resources</a></dd>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Resources#XPCOM_Resources" title="/en-US/docs/Creating_XPCOM_Components/Resources#XPCOM_Resources">XPCOM Resources</a></dd>
- <dd><a href="/en-US/docs/Creating_XPCOM_Components/Resources#General_Development_Resources" title="/en-US/docs/Creating_XPCOM_Components/Resources#General_Development_Resources">General Development Resources</a></dd>
-</dl>
-
-<p></p><div class="prevnext" style="text-align: right;">
- <p><a href="/fr/docs/Creating_XPCOM_Components/Preface">Suivant »</a></p>
-</div> <p></p><div class="licenseblock">
-<p>Copyright (c) 2003 by Doug Turner and Ian Oeschger. This material may be distributed only subject to the terms and conditions set forth in the <a class="external" href="http://www.opencontent.org/openpub/" rel="noopener">Open Publication License</a>, v1.02 or later. Distribution of substantively modified versions of this document is prohibited without the explicit permission of the copyright holder. Distribution of the work or derivative of the work in any standard (paper) book form is prohibited unless prior permission is obtained from the copyright holder.</p>
-</div><p></p>
-
-<p></p>
diff --git a/files/fr/mozilla/tech/xpcom/guide/creating_components/preface/index.html b/files/fr/mozilla/tech/xpcom/guide/creating_components/preface/index.html
deleted file mode 100644
index 478a139e2f..0000000000
--- a/files/fr/mozilla/tech/xpcom/guide/creating_components/preface/index.html
+++ /dev/null
@@ -1,77 +0,0 @@
----
-title: Préface
-slug: Mozilla/Tech/XPCOM/Guide/Creating_components/Preface
-tags:
- - Guide
- - XPCOM
-translation_of: Mozilla/Tech/XPCOM/Guide/Creating_components/Preface
----
-<p></p><div class="prevnext" style="text-align: right;">
- <p><a href="/fr/docs/Mozilla/Tech/XPCOM/Guide/Creating_components/An_Overview_of_XPCOM">Suivant »</a></p>
-</div><p></p>
-
-<p>Cette section concerne Gecko et la création de composants <a href="https://developer.mozilla.org/fr/docs/XPCOM">XPCOM</a> pour des applications basées sur Gecko. Bien que l'accent soit mis sur les mesures concrètes que vous prenez pour créer un code C ++ valide dans un composant qui peut être utilisé dans Gecko, nous espérons que ces mesures nous donneront également l'occasion de discuter de tous les outils, les techniques et les technologies qui composent XPCOM. En conséquence, le livre est agencé de telle sorte que vous puissiez suivre et créer vos propres composants et en apprendre davantage sur XPCOM, comme dans un ouvrage de référence. Par exemple, l'introduction comprend une discussion sur les composants, et le premier chapitre - dans laquelle vous compilez le code de base et l'enregistrer avec Mozilla - éclair sur la relation entre les composants et les modules, les interfaces XPCOM et le processus d'enregistrement en général.</p>
-
-<p>Le début de chaque chapitre fournit une liste des principaux sujets abordés. Des barres latérales sont incluses pour mettre en évidence les détails techniques. À la fin du livre, vous aurez appris comment construire un composant XPCOM et vous comprendrez sont fonctionnement dans Gecko.</p>
-
-<h3 id="Pour_qui_est_ce_tutoriel">Pour qui est ce tutoriel ?</h3>
-
-<p><a href="https://developer.mozilla.org/fr/docs/Mozilla/Tech/XPCOM/Guide/Creating_components">La Création de composants XPCOM</a> est destinée aux développeurs C ++. Bien que vous pouvez créer des composants XPCOM en <a href="https://developer.mozilla.org/fr/docs/compiler_un_composant_xpcom_javascript">JavaScript</a> ou d'autres langages, le code de mise en œuvre des composants est écrit en C ++, et une grande partie de la discussion sur la façon de programmer un composant XPCOM utilise le C ++. Vous ne devez pas non plus être un expert C ++. Bien que les idées de base telles que l'héritage et l'encapsulation devraient vous être familiers. Leur utilisation est expliquée à chaque fois dans le tutoriel. En outre, beaucoup d'exemples sont en JavaScript,  utilisé dans Mozilla pour accéder aux composants XPCOM comme des objets scriptable, votre familiarité avec ce langage est également utile.</p>
-
-<p>XPCOM pour Cross Platform Component Object Model est similaire à Microsoft COM. Si vous avez une expérience avec ces technologies, beaucoup d'entre elles peuvent être appliquées à XPCOM. Cependant, ce tutoriel ne suppose aucune connaissance préalable du COM - toutes les idées de base seront présentés.</p>
-
-<p>Ce livre fournit un tutoriel sur la construction d'un composant XPCOM contrôlant le comportement d'un navigateur. Bien que XPCOM peux être utilisé dans de nombreux environnements qui sont sans rapport avec la navigation web, le principal client de XPCOM est Gecko. Il est open source, conforme aux standards, possède un navigateur Web embarquable, où il est plus facile et plus pratique d'illustrer les fonctionnalités d'XPCOM. Une description complète de ce composant peut être trouvé dans le chapitre <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XPCOM/Guide/Creating_components/Creating_the_Component_Code#What_We.27ll_Be_Working_On">ce que nous allons faire</a> du didacticiel.</p>
-
-<div class="note">
-<p>Malgré ce que dit le vieux document, XPCOM ne devrait pas être utilisé pour faire des <a href="en/Plugins">plugins NPAPI </a> scriptable. A partir de Gecko 1.7.5 (Firefox 1.0) une extension spéciale NPAPI pour scriptabilité est prise en charge, voir <a href="en/Gecko_Plugin_API_Reference/Scripting_plugins">plugins Scripting</a>.</p>
-</div>
-
-<h3 id="Organisation_du_Tutoriel">Organisation du Tutoriel</h3>
-
-<p>La liste suivante donne un aperçu des étapes que nous allons suivre pour construire un composant XPCOM appelé <strong>WebLock</strong>, qui prévoit une fonctionnalité de blocage de sites pour les navigateurs basés sur Gecko. Chacune de ces étapes a son propre chapitre, dans lequel un certain nombre de sujets liés à l'étape sont abordés.</p>
-
-<ul>
- <li>Créer un module de code générique pour le composant.</li>
- <li>Utilisez les macros C++, particulièrement les classes string et pointeurs intelligents, pour optimiser votre code.</li>
- <li>Définir la fonctionnalité pour le composant; créer une interface <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XPCOM/Guide/Creating_components/en/XPIDL">XPIDL</a> pour cette fonctionnalité; créer le code de mise en œuvre spécifique à l'usage de l'interface du composant <strong>WebLock</strong>.</li>
- <li>Terminer la mise en œuvre du composant <strong>WebLock</strong>: <code>nsIContentPolicy</code> , fichier I/O, de verrouillage, etc.</li>
- <li>Création de l'interface utilisateur pour le composant de <strong>WebLock</strong>.</li>
- <li>Emballage <strong>WebLock</strong> pour la distribution et l'installation.</li>
-</ul>
-
-<h3 id="Continuons_avec_des_exemples">Continuons avec des exemples</h3>
-
-<p>Il y a deux façons d'installer XPCOM sur votre machine pour que vous puissiez commencer à créer des composants. Si vous avez déjà Mozilla build ou le code source de Mozilla 1.2 ou ultérieure, vous pouvez utiliser le framework XPCOM disponible. Si non, la façon la plus simple d'obtenir et d'utiliser XPCOM est de télécharger le <a href="https://developer.mozilla.org/fr/docs/SDK_Gecko">SDK Gecko</a>, qui est un ensemble de bibliothèques et d'outils qui comporte le framework XPCOM.</p>
-
-<p>Que vous compiliez le code source ou utilisiez le SDK Gecko, vous pouvez construire vos propres composants en utilisant les composants existant dans Gecko. Le composant <strong>WebLock</strong> que nous décrirons dans ce tutoriel met ceci en pratique (et, nous l'espérons, de façon utile) en plus de la manipulation du navigateur. Pour que cela fonctionne, votre code source SDK Gecko ou Mozilla doit être de version 1.2 ou ultérieure (l'interface XPCOM n'a pas été entièrement fixée dans les versions antérieures).</p>
-
-<p>Ce livre suppose que vous utilisez SDK plutôt que de compiler le code source de Mozilla, bien que la différence entre ces deux approches soit minime. La construction, et l'obtention de l'accès à la programmation de composants Gecko est fournies en annexe à ce livre, <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XPCOM/Guide/Creating_components/Setting_up_the_Gecko_SDK">Configuration du SDK Gecko</a> .</p>
-
-<h3 id="Conventions">Conventions</h3>
-
-<p>Les conventions de formats ci-dessous sont utilisées pour désigner des types d'informations spécifiques dans le livre et rendre les choses plus faciles à analyser. Le but est d'utiliser aussi peu de formats que possible, mais de distinguer clairement les différents types d'informations.</p>
-
-<table class="standard-table">
- <tbody>
- <tr>
- <td class="header">Format</td>
- <td class="header">Description</td>
- </tr>
- <tr>
- <td><strong>gras</strong></td>
- <td><strong>noms des composants</strong> apparaissent en gras dans le texte</td>
- </tr>
- <tr>
- <td><code>monospace</code></td>
- <td><code>lignes de code</code> , <code>noms d'interface</code> et <code>membres</code> d'interfaces (par exemple, <code>createInstance()</code>) apparaissent avec cette police. Les lignes de code sont placées dans des encarts séparés. En outre, <code>les noms de fichiers</code> et de <code>répertoires</code> possèdent également cette police.</td>
- </tr>
- <tr>
- <td><em>italique</em></td>
- <td><em>les variables</em> apparaissent en italique. Les termes importants et les nouveaux concepts sont également en italique la première fois qu'ils apparaissent dans le texte. Ces termes sont expliqués soit immédiatement après leur citation, ou bien le lecteur est renvoyé à une section dans le livre où ils sont décrits en détail.</td>
- </tr>
- <tr>
- <td>lien</td>
- <td>Références à d'autres sections, figures ou tableaux et leur liens vers ces articles.</td>
- </tr>
- </tbody>
-</table>
diff --git a/files/fr/mozilla/tech/xpcom/guide/creating_components/using_xpcom_components/index.html b/files/fr/mozilla/tech/xpcom/guide/creating_components/using_xpcom_components/index.html
deleted file mode 100644
index 3a6b536ee6..0000000000
--- a/files/fr/mozilla/tech/xpcom/guide/creating_components/using_xpcom_components/index.html
+++ /dev/null
@@ -1,303 +0,0 @@
----
-title: Utilisation des composants XPCOM
-slug: Mozilla/Tech/XPCOM/Guide/Creating_components/Using_XPCOM_Components
-translation_of: Mozilla/Tech/XPCOM/Guide/Creating_components/Using_XPCOM_Components
----
-<p></p><div class="prevnext" style="text-align: right;">
- <p><a href="/fr/docs/Mozilla/Tech/XPCOM/Guide/Creating_components/An_Overview_of_XPCOM" style="float: left;">« Précédent</a><a href="/fr/docs/Mozilla/Tech/XPCOM/Guide/Creating_components/Component_Internals">Suivant »</a></p>
-</div> Une des meilleures façons de commencer à travailler avec XPCOM - surtout quand vous concevez l'interface d'un composant qui sera utilisé par d'autres(<a href="https://developer.mozilla.org/fr/docs/Mozilla/Tech/XPCOM/Guide/Creating_components/Starting_WebLock">WebLock</a>) - est de regarder comment les clients utilisent déjà des composants XPCOM.<p></p>
-
-<p>Les applications sophistiqués comme le navigateur Mozilla sont des utilisateurs de modules XPCOM. En fait, la quasi-totalité des fonctionnalités associees au navigateur - la navigation, la gestion des fenêtres, la gestion des cookies, les signets, la sécurité, la recherche, de rendu et d'autres caractéristiques - sont définies par des composants XPCOM et consultée par le biais de leurs interfaces. Mozilla est <em>fait</em> de composants XPCOM.</p>
-
-<p>Ce chapitre montre comment Mozilla utilise certains de ces objets XPCOM, tels que le CookieManager, et explique comment l'accès au composant de Weblock sera défini.</p>
-
-<h3 id="Exemples_de_composants">Exemples de composants</h3>
-
-<p>Pour en savoir plus sur l'utilisation de composant particulier référez vous à <a href="https://developer.mozilla.org/fr/docs/Mozilla/Tech/XPCOM/Reference">API XPCOM référence</a> . Pour l'instant, ili est important de comprendre comment un composant est  utilisé par le navigateur Mozilla.</p>
-
-<h4 id="Gestionnaire_de_Cookies">Gestionnaire de Cookies</h4>
-
-<p>Gestion des cookies est l'une des nombreux fonctionnalités qui est mise disposition du navigateur sous la forme de composant XPCOM et qui peut être réutilisé par les développeurs qui veulent des fonctionnalités similaires dans leurs applications. Chaque fois qu'un utilisateur accède à la boîte de dialogue de Cookie Manager pour afficher, organiser, ou supprimer les cookies qui ont été stockées sur le système, ils utilisent le composant CookieManager en coulisses. <a href="https://developer.mozilla.org/fr/docs/Mozilla/Tech/XPCOM/Guide/Creating_components/Using_XPCOM_Components#The_Cookie_Manager_Dialog">La boite de dialogue du gestionnaire de cookies</a> montre interface utilisateur qui est présenté à l'utilisateur dans Mozilla pour l'utilisation du composant CookieManager.</p>
-
-<p><span id="Boite_de_dialogue_du_gestionnaire_de_cookies"><a id="Boite_de_dialogue_du_gestionnaire_de_cookies"></a><strong>Boite de dialogue du gestionnaire de cookies</strong></span></p>
-
-<p><img alt="Image:cookie_mgr_dlog.png" class="internal" src="/@api/deki/files/625/=Cookie_mgr_dlog.png"></p>
-
-<p>Cette boite de dialogue est écrit en <abbr>XUL</abbr> et en JavaScript, et utilise une partie de XPCOM appelé <em>XPConnect</em> pour se connecter de manière transparente au composant CookieManager (voir <a href="https://developer.mozilla.org/fr/docs/Mozilla/Tech/XPCOM/Guide/Creating_components/Using_XPCOM_Components#Connecting_to_Components_from_the_Interface">Connexion à des interfaces de composants</a> ci-dessous). XUL expose les fonctionnalités du composant CookieManager, il est tres utilisé dans l'environement Mozilla.</p>
-
-<p>La fonctionnalité du composant CookieManager est disponible à travers l'interface <code>nsICookieManager</code>, ses méthodes publiques sont exposées dans le tableau ci-dessous.</p>
-
-<p><span id="Interface_nsICookieManager"><a id="Interface_nsICookieManager"></a><strong>Interface nsICookieManager</strong></span></p>
-
-<table class="standard-table">
- <tbody>
- <tr>
- <td><code>removeAll</code></td>
- <td>Retirez tous les cookies de la liste des cookies.</td>
- </tr>
- <tr>
- <td><code>enumerator</code></td>
- <td>Énumérer la liste des cookies.</td>
- </tr>
- <tr>
- <td><code>remove</code></td>
- <td>Retirer un cookie particulier de la liste.</td>
- </tr>
- </tbody>
-</table>
-
-<p>Linterface XPCOM garanti la stabilitée, même si il y a des changements sous-jacentes. Les interfaces sont <em>publics</em> et les implémentations sont privés. Lorsque l'utilisateur sélectionne l'un des cookies affichés dans la liste, puis clique sur le bouton Supprimer, la méthode <code>Remove</code> de <code>nsICookieManager</code> est appelée. La fonction est réalisée par le composant CookieManager, et le cookie sélectionné est supprimé du disque et retiré de la liste affichée.</p>
-
-<p>L'extrait <a href="https://developer.mozilla.org/fr/docs/Mozilla/Tech/XPCOM/Guide/Creating_components/Using_XPCOM_Components#Getting_the_CookieManager_Component_in_JavaScript">Utiliser le composant CookieManager en JavaScript</a> montre comment <code>Remove()</code> peut être appelé à partir de JavaScript:</p>
-
-<p><span id="Utiliser_le_composant_CookieManager_en_JavaScript"><a id="Utiliser_le_composant_CookieManager_en_JavaScript"></a><strong>Utiliser le composant CookieManager en JavaScript</strong></span></p>
-
-<pre>// xpconnect to cookiemanager
-// get the cookie manager component in JavaScript
-var cmgr = Components.classes["@mozilla.org/cookiemanager;1"]
- .getService();
-cmgr = cmgr.QueryInterface(Components.interfaces.nsICookieManager);
-
-// called as part of a largerDeleteAllCookies() function
-function FinalizeCookieDeletions() {
- for (var c=0; c&lt;deletedCookies.length; c++) {
- cmgr.remove(deletedCookies[c].host,
- deletedCookies[c].name,
- deletedCookies[c].path);
- }
- deletedCookies.length = 0;
-}
-</pre>
-
-<div class="side-note">
-<p><span id="Connexion_%C3%A0_l'interface_d'un_composant"><a id="Connexion_%C3%A0_l'interface_d'un_composant"></a><strong>Connexion à l'interface d'un composant</strong></span></p>
-
-<div class="side-note">
-<p>L'interface Mozilla utilise JavaScript pour accèder aux composants XPCOM par l'intermediaire de <a href="https://developer.mozilla.org/fr/docs/XPConnect">XPConnect</a>.</p>
-
-<p>XPConnect via <a href="https://developer.mozilla.org/fr/docs/XPIDL">XPIDL</a> est appeler à partir d'objets JavaScript, qui représentent des instances de composants comme CookieManager.</p>
-
-<p>XPConnect lie le code d'application de l'interface utilisateur du navigateur Mozilla(XUL basé sur Gecko), à l'environnement JavaScript(comme <a href="https://developer.mozilla.org/fr/docs/xpcshell">xpcshell</a>)..</p>
-</div>
-
-<p>Les arrangements contractuels que permet XPCOM ouvre la voie à <em>l'interopérabilité binaire, </em>pour l'accès, l'utilisation et la réutilisation des composants XPCOM. Ils permettent d'utiliser des composants écrits dans d'autres langages tels que JavaScript, Python et autres.</p>
-
-<p>Dans le navigateur Mozilla, les composants sont souvant utilisés à partir de JavaScript. En fait, une recherche du code source Mozilla révèle que le composant CookieManager est appelée <em>seulement</em> à partir de JavaScript. C'est ce que nous allons faire dans ce tutoriel.</p>
-</div>
-
-<div class="side-note">
-<p><span id="JavaScript_et_Mozilla"><a id="JavaScript_et_Mozilla"></a><strong>JavaScript et Mozilla</strong></span></p>
-
-<div class="side-note">
-<p>JavaScript est la <em>lingua franca</em> du navigateur Mozilla, et les liaisons entre elle et XPCOM sont forts et bien définie. <em>scriptabilité</em> , cette capacité à obtenir et utiliser des composants XPCOM à partir de JavaScript et d'autres langages pour lesquels fixations XPConnect ont été créés, est une caractéristique essentielle de XPCOM.</p>
-</div>
-
-<h4 id="Le_composant_WebBrowserFind">Le composant <code>WebBrowserFind</code></h4>
-
-<p>Les composants sont utilisés partout - dans les fonctionnalités du navigateur de haut niveau tels que <code>nsWebBrowserFind</code> , qui fournit les méthodes<code> find()</code> et <code>findNext()</code> pour trouver du contenu dans les pages Web, et dans les tâches de bas niveau tels que la manipulation des données.</p>
-
-<p>En plus du composant CookieManager, le composant WebBrowserFind est une autre partie d'un grand ensemble d'interfaces du navigation Web que vous pouvez utiliser. Son interface <code>nsIWebBrowserFind</code> est présentée dans <a href="https://developer.mozilla.org/fr/docs/Mozilla/Tech/XPCOM/Guide/Creating_components/Using_XPCOM_Components#The_nsIWebBrowserFind_Interface">L'interface nsIWebBrowserFind</a> .</p>
-</div>
-
-<p><span id="Les_m%C3%A9thodes_de_nsIWebBrowserFind"><a id="Les_m%C3%A9thodes_de_nsIWebBrowserFind"></a><strong>Les méthodes de nsIWebBrowserFind</strong></span></p>
-
-<table class="standard-table">
- <tbody>
- <tr>
- <td><code>findNext</code></td>
- <td>Trouver la prochaine occurrence de la chaîne recherchée.</td>
- </tr>
- <tr>
- <td><code>findBackwards</code></td>
- <td>Attribut booléen qui ajuste <code>findNext()</code> pour rechercher vers le début du document.</td>
- </tr>
- <tr>
- <td><code>searchFrames</code></td>
- <td>Attribut booléen qui indique si la recherche s'efectue dans les sous-fenêtres du document actuel.</td>
- </tr>
- <tr>
- <td><code>matchCase</code></td>
- <td>Attribut booléen qui indique la sensibilité à la casse.</td>
- </tr>
- <tr>
- <td><code>entireWord</code></td>
- <td>Attribut booléen qui indique si le mot entier doit correspondre.</td>
- </tr>
- </tbody>
-</table>
-
-<p>Quand vous utilisez l'interface d'un composant, vous pouvez demander si il suportr d'autres interfaces. Ce service, qui est défini dans <code>nsISupports</code> est mis en œuvre par tous les composants XPCOM, vous permet d'interroger et de passer d'une interface à un composant dans le cadre des <em>runtime object typing</em>. Il est géré par <code>QueryInterface</code>, qui a été introduit dans le chapitre <a class="internal" href="https://developer.mozilla.org/fr/Creating_XPCOM_Components/An_Overview_of_XPCOM">Vue d'ensemble du XPCOM</a> . L'<a href="https://developer.mozilla.org/fr/XPCOM_API_Reference">API de référence</a> XPCOM fournit une référence complète des composants XPCOM disponibles dans Mozilla.</p>
-
-<h4 id="The_WebLock_Component">The WebLock Component</h4>
-
-<p>Now it's time to look at the <strong>WebLock</strong> component as another example of XPCOM components (since you'll be creating it shortly). In object-oriented programming, it's typical to design the interface first-to define the functionality that's going to be provided in the abstract, without worrying about how this functionality will be achieved. So we'll put aside the details of the implementation until the next chapter and look at the component from the outside-at the interface to the WebLock component.</p>
-
-<p><span id="The_IWebLock_Interface"><a id="The_IWebLock_Interface"></a><strong>The IWebLock Interface</strong></span></p>
-
-<table class="standard-table">
- <tbody>
- <tr>
- <td><code>lock</code></td>
- <td>Lock the browser to the current site (or to the whitelist of approved sites read from disk).</td>
- </tr>
- <tr>
- <td><code>unlock</code></td>
- <td>Unlock the browser for unrestricted use.</td>
- </tr>
- <tr>
- <td><code>addSite</code></td>
- <td>Add a new site to the whitelist.</td>
- </tr>
- <tr>
- <td><code>removeSite</code></td>
- <td>Remove a given site from the whitelist.</td>
- </tr>
- <tr>
- <td><code>sites</code></td>
- <td>Enumerator for the list of approved sites read in from the whitelist.</td>
- </tr>
- </tbody>
-</table>
-
-<p>The WebLock component is software that implements all of these methods in the way described by the interface definition. It registers itself for use when the browser starts up, and provides a factory that creates an instance of it for use when the user or administrator clicks the weblock icon in the browser's user interface.</p>
-
-<h3 id="Component_Use_in_Mozilla">Component Use in Mozilla</h3>
-
-<p>So how are components obtained and used in Mozilla? You've seen some enticing snippets of JavaScript in earlier sections of this chapter, but we haven't explained how XPCOM makes components available in general.</p>
-
-<p>This section discusses practical component use in Mozilla. It's divided into three subsections: one about actually finding all these binary components in Mozilla and two others corresponding to the two main ways that clients typically access XPCOM components:</p>
-
-<h4 id="Finding_Mozilla_Components">Finding Mozilla Components</h4>
-
-<p>This book attempts to provide reference information for XPCOM components and their interfaces that are frozen as of the time of this writing. The <a class="external" href="http://www.mozilla.org/projects/embedding/">Mozilla embedding project</a> tracks the currently frozen interfaces.</p>
-
-<p>Mozilla also has some tools that can find and display information about the interfaces available in Gecko such as the <em>XPCOM Component Viewer</em>, described below, and <a class="external" href="http://mxr.mozilla.org/">MXR</a>, which is a web-based source code viewing tool.</p>
-
-<p>The challenge to making good information about XPCOM components available to prospective clients, however, is that the process of freezing the interfaces that are implemented by these components is still ongoing. The Component Viewer does not distinguish between components that are frozen and those that are not. In the source code you view in MXR, interfaces that have been frozen are marked at the top with <code>@status frozen</code>.</p>
-
-<h5 id="The_XPCOM_Component_Viewer">The XPCOM Component Viewer</h5>
-
-<p>The <a class="external" href="http://addons.mozilla.org/firefox/2230/">XPCOM Component Viewer</a> is an add-on you can install in your browser (in sandbox, not available for now).<br>
- Alternatively, you can try <a class="external" href="http://xpcomviewer.mozdev.org/ ">XPCOMViewer</a>, a similar add-on.</p>
-
-<p><span id="XPCOM_Component_Viewer"><a id="XPCOM_Component_Viewer"></a><strong>XPCOM Component Viewer</strong></span></p>
-
-<p><img alt="Image:using-component-viewer.png" class="internal" src="/@api/deki/files/922/=Using-component-viewer.png"></p>
-
-<p>The left column shows the components - in this case a subset returned from a search on "gfx" as part of the contract ID and the right column a list of the interfaces. When you open a component on the left, you can see the interfaces it implements along with a list of the methods provided by each interface.</p>
-
-<p>The XPCOM Component Viewer can be extremely useful for this sort of gross interrogation, but again: it displays <em>all</em> of the components and interfaces in your build, many of which are not practical for actual reuse or stable enough to be used reliably in your own application development. Use comprehensive lists like this with caution.</p>
-
-<p> </p>
-
-<h4 id="Using_XPCOM_Components_in_Your_Cpp">Using XPCOM Components in Your Cpp</h4>
-
-<p>XPConnect makes it easy to acecss XPCOM components as JavaScript objects, but using XPCOM components in C++ is not much more difficult.</p>
-
-<p><a href="#Managing_Cookies_from_Cpp">Managing Cookies from Cpp</a> duplicates code from <a href="#Getting_the_CookieManager_Component_in_JavaScript">Getting the CookieManager Component in JavaScript</a>, but in C++ instead of JavaScript.</p>
-
-<p><span id="Managing_Cookies_from_Cpp"><a id="Managing_Cookies_from_Cpp"></a><strong>Managing Cookies from Cpp</strong></span></p>
-
-<pre>nsCOMPtr&lt;nsIServiceManager&gt; servMan;
-nsresult rv = NS_GetServiceManager(getter_AddRefs(servMan));
-if (NS_FAILED(rv))
- return -1;
-
-nsCOMPtr&lt;nsICookieManager&gt; cookieManager;
-rv = servMan-&gt;GetServiceByContractID("@<a class="linkification-ext" href="http://mozilla.org/cookiemanager">mozilla.org/cookiemanager</a>",
- NS_GET_IID(nsICookieManager),
- getter_AddRefs(cookieManager));
-
-if (NS_FAILED(rv))
- return -1;
-
-PRUint32 len;
-deletedCookies-&gt;GetLength(&amp;len);
-
-for (int c=0; c&lt;len; c++)
- cookieManager-&gt;Remove(deletedCookies[c].host,
- deletedCookies[c].name,
- deletedCookies[c].path,
- PR_FALSE);
-</pre>
-
-<p>XXX: In the original document, there were only the first three parameters to the |Remove| call. I added |PR_FALSE| as a fourth parameter because the interface seems to require it: <a class="linkification-ext external" href="http://lxr.mozilla.org/mozilla/source/netwerk/cookie/public/nsICookieManager.idl#64">http://lxr.mozilla.org/mozilla/source/netwerk/cookie/public/nsICookieManager.idl#64</a> This problem also appears in the JavaScript version below, and I've added |false| as a fourth parameter there as well.</p>
-
-<p>If your application is written in C++, then <a href="#Managing_Cookies_from_Cpp">Managing Cookies from Cpp</a> shows the steps you take to get an XPCOM component, specify the interface on that component you want to use, and call methods on that interface.</p>
-
-<h4 id="XPConnect_Using_XPCOM_Components_From_Script">XPConnect: Using XPCOM Components From Script</h4>
-
-<p>The CookieManager component we discussed at the beginning of this chapter provides a good opportunity to talk further about using components from JavaScript. In the following code fragment from the Cookie Manager dialog in Mozilla, you can see a singleton of the CookieManager component being created with the <code>getService()</code> method and used to provide the functionality that lets users load and remove cookies from the user interface.</p>
-
-<p><span id="Managing_Cookies_from_JavaScript"><a id="Managing_Cookies_from_JavaScript"></a><strong>Managing Cookies from JavaScript</strong></span></p>
-
-<pre>var cmgr = Components.classes["@mozilla.org/cookiemanager;1"]
- .getService();
-cmgr = cmgr.QueryInterface(Components.interfaces.nsICookieManager);
-
-function loadCookies() {
- // load cookies into a table
- var enumerator = cmgr.enumerator;
- var count = 0;
- var showPolicyField = false;
- while (enumerator.hasMoreElements()) {
- var nextCookie = enumerator.getNext();
- nextCookie = nextCookie.QueryInterface(Components.interfaces.nsICookie);
- /* .... */
-}
-function FinalizeCookieDeletions() {
- for (var c=0; c&lt;deletedCookies.length; c++) {
- cmgr.remove(deletedCookies[c].host,
- deletedCookies[c].name,
- deletedCookies[c].path,
- false);
- }
- deletedCookies.length = 0;
-}
-</pre>
-
-<p>XXX: In the original document, there were only the first three parameters to the |remove| call. I added |false| as a fourth parameter because the interface seems to require it: <a class="linkification-ext external" href="http://lxr.mozilla.org/mozilla/source/netwerk/cookie/public/nsICookieManager.idl#64">http://lxr.mozilla.org/mozilla/source/netwerk/cookie/public/nsICookieManager.idl#64</a> This problem also appears in the C++ version above, and I've added |PR_FALSE| as a fourth parameter there as well.</p>
-
-<p>Beyond the methods that are being called on the CookieManager itself (e.g., <code>cookiemanager.remove</code>, which maps to the <code>remove()</code> function in <a href="#The_nsICookieManager_Interface">The nsICookieManager Interface</a>), note the special XPConnect objects and methods that reflect the XPCOM component into JavaScript.</p>
-
-<p><code>Components</code> is the JavaScript object that controls the connection to components, and <code>classes</code> is an array of all of the classes you can ask for by contract ID. To instantiate an XPCOM component in JavaScript, you create a new <code>Component</code> object and pass in the contract ID for the component you want and ask for either a singleton or an instance of that component to be returned:</p>
-
-<pre>var cmgr = Components.classes["@mozilla.org/cookiemanager;1"]
- .getService();
-</pre>
-
-<p>The resulting <code>cookiemanager</code> object then provides access to all of the methods for that component that have been defined in IDL and compiled into the type library. Using the CookieManager component, you could write code like this to delete all cookies from the system:</p>
-
-<pre>cmgr = Components.classes["@<a class="linkification-ext" href="http://mozilla.org/cookiemanager;1">mozilla.org/cookiemanager;1</a>"]
- .getService();
-cmgr = cmgr.QueryInterface(Components.interfaces.nsICookieManager);
-
-// delete all cookies
-function trashEm() {
- cmgr.removeAll();
-}
-</pre>
-
-<p>Another vital feature of the XPConnect glue this example shows is the availability of the <code>QueryInterface</code> method on all objects that are reflected into JavaScript from XPCOM. As in C++, you can use this method to ask for other interfaces that are available on the given object.</p>
-
-<div class="side-note">
-<p><span id="Services_Versus_Regular_Instances"><a id="Services_Versus_Regular_Instances"></a><strong>Services Versus Regular Instances</strong></span></p>
-
-<p>Whether to have clients use your component as an instance or a service is a design question, really, and something you should be clear about in the documentation for your component. Actually, the <code>getService()</code> method in the example here calls through to the <code>createInstance()</code> method that is also available from the Component object and caches the result, making it a singleton rather than a normal instance.</p>
-
-<p>The singleton design pattern that is used to create services is described in <a href="/en/Creating_XPCOM_Components/An_Overview_of_XPCOM#XPCOM_Services">XPCOM Services</a>.</p>
-</div>
-
-<p>Remember, <code>QueryInterface</code> allows you to query an object for the interfaces it supports. In the case of the snippet in <a href="#The_nsICookieManager_Interface">The nsICookieManager Interface</a>, the <code>QueryInterface</code> method is being used to get the <code>nsICookie</code> interface from the enumerator so that, for instance, the JavaScript code can access the <code>value</code> and <code>name</code> attributes for each cookie.</p>
-
-<ol>
- <li><div class="blockIndicator note"><strong>Note :</strong> cookie-manager-ui</div> Note that the interface is not part of the component itself. XPCOM makes it easy to use components like CookieManager from Mozilla's Cross Platform Front End (XPFE) and other user interfaces, but the component itself doesn't provide its own UI.</li>
- <li><div class="blockIndicator note"><strong>Note :</strong> private-xpcom-interfaces</div> There are exceptions to this. Some XPCOM interfaces are also private and not made for general use. Private interfaces do not have the same requirements as the ones that are made available publicly in IDL.</li>
- <li><div class="blockIndicator note"><strong>Note :</strong> cookie-manager-in-tutorial</div> The CookieManager component is used to persist for the web locking functionality described in this tutorial.</li>
-</ol>
-
-<p></p><div class="prevnext" style="text-align: right;">
- <p><a href="/fr/docs/Mozilla/Tech/XPCOM/Guide/Creating_components/An_Overview_of_XPCOM" style="float: left;">« Précédent</a><a href="/fr/docs/Mozilla/Tech/XPCOM/Guide/Creating_components/Component_Internals">Suivant »</a></p>
-</div> <p></p><div class="licenseblock">
-<p>Copyright (c) 2003 by Doug Turner and Ian Oeschger. This material may be distributed only subject to the terms and conditions set forth in the <a class="external" href="http://www.opencontent.org/openpub/" rel="noopener">Open Publication License</a>, v1.02 or later. Distribution of substantively modified versions of this document is prohibited without the explicit permission of the copyright holder. Distribution of the work or derivative of the work in any standard (paper) book form is prohibited unless prior permission is obtained from the copyright holder.</p>
-</div><p></p>
diff --git a/files/fr/mozilla/tech/xpcom/guide/index.html b/files/fr/mozilla/tech/xpcom/guide/index.html
deleted file mode 100644
index 748a2784b5..0000000000
--- a/files/fr/mozilla/tech/xpcom/guide/index.html
+++ /dev/null
@@ -1,16 +0,0 @@
----
-title: XPCOM guide
-slug: Mozilla/Tech/XPCOM/Guide
-tags:
- - Landing
- - Mozilla
- - NeedsTranslation
- - TopicStub
- - XPCOM
-translation_of: Mozilla/Tech/XPCOM/Guide
----
-<p><span class="seoSummary">These articles provide tutorials and usage documentation for XPCOM, including how to use it in your own projects and how to build XPCOM components for your Firefox add-ons and the like.</span></p>
-<p></p><div class="row topicpage-table">
- <div class="section"><dl><dl><dt class="landingPageList"><a href="/fr/docs/compiler_un_composant_xpcom_javascript">Compiler un composant XPCOM javascript</a></dt><dd class="landingPageList"></dd><dt class="landingPageList"><a href="/fr/docs/Mozilla/Tech/XPCOM/Guide/Creating_components">Créer des composants XPCOM</a></dt><dd class="landingPageList">Ce guide a pour but de vous initier à Gecko, et de vous permettre de créer des composants <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XPCOM/Guide/Creating_components/en/XPCOM">XPCOM</a> pour les applications Gecko.</dd></dl></dl></div>
- <div class="section"><dl><dt></dt></dl></div>
- </div><p></p>
diff --git a/files/fr/mozilla/tech/xpidl/index.html b/files/fr/mozilla/tech/xpidl/index.html
deleted file mode 100644
index 6f7e3d2425..0000000000
--- a/files/fr/mozilla/tech/xpidl/index.html
+++ /dev/null
@@ -1,22 +0,0 @@
----
-title: XPIDL
-slug: Mozilla/Tech/XPIDL
-tags:
- - XPCOM
-translation_of: Mozilla/Tech/XPIDL
----
-<p><strong>XPIDL</strong> est un langage de description d'interfaces utilisé pour spécifier les classes de l'interface <a href="/fr/XPCOM" title="fr/XPCOM">XPCOM</a>.</p>
-<p>Les langages de description d'interfaces (IDL) sont utilisés pour décrire des interfaces d'une manière indépendante d'un langage et d'une machine. Les IDL permettent de définir des interfaces qui peuvent alors être employées par des outils pour générer automatiquement des spécifications d'interfaces propres à un langage donné.</p>
-<p>Un de ces outils est <a href="/fr/XPIDL:xpidl" title="fr/XPIDL/xpidl">xpidl</a>, utilisé pour générer des fichiers d'en-têtes C++, des informations typelib et plusieurs autres choses.</p>
-<h2 id=".C3.89criture_de_fichiers_interface_XPIDL" name=".C3.89criture_de_fichiers_interface_XPIDL">Écriture de fichiers interface XPIDL</h2>
-<p>XPIDL ressemble fortement à <a class="external" href="http://www.omg.org/gettingstarted/omg_idl.htm">OMG IDL</a> avec une syntaxe étendue pour traiter les IID et des types supplémentaires. Quelques exemples sont disponibles dans les répertoires <a class="external" href="http://lxr.mozilla.org/mozilla/source/xpcom/base">xpcom/base</a> et <a class="external" href="http://lxr.mozilla.org/mozilla/source/xpcom/ds">xpcom/ds</a> des sources de Mozilla.</p>
-<ul>
- <li><a class="external" href="http://www.mozilla.org/scriptable/xpidl/syntax.html">syntaxe XPIDL</a> (non à jour)</li>
- <li><a href="/fr/XPIDL/Syntaxe" title="fr/XPIDL/Syntaxe">XPIDL:Syntaxe</a> <small>(<a href="/en/XPIDL/Syntax">en:XPIDL:Syntax</a></small>) (XPIDL <a class="external" href="http://en.wikipedia.org/wiki/Extended_Backus-Naur_form">EBNF</a>)</li>
- <li><a class="external" href="http://www.mozilla.org/scriptable/xpidl/idl-authors-guide/index.html">XPIDL Author's Guide</a> (globalement à jour)</li>
-</ul>
-<h2 id="Ressources" name="Ressources">Ressources</h2>
-<ul>
- <li><a class="external" href="http://www.mozilla.org/scriptable/xpidl/notes/">Quelques notes non triées</a> dont <a class="external" href="http://www.mozilla.org/scriptable/xpidl/notes/keywords.txt">une liste de mots clés</a>.</li>
- <li><a href="/fr/XPIDL/xpidl" title="fr/XPIDL/xpidl">xpidl</a> est un outil pour générer des entêtes C++, des interfaces Java, des typelibs <a href="/fr/XPConnect" title="fr/XPConnect">XPConnect</a>, et de la documentation HTML à partir de fichiers XPIDL.</li>
-</ul>
diff --git a/files/fr/mozilla/testing/asan_nightly_project/index.html b/files/fr/mozilla/testing/asan_nightly_project/index.html
deleted file mode 100644
index c7937ca41b..0000000000
--- a/files/fr/mozilla/testing/asan_nightly_project/index.html
+++ /dev/null
@@ -1,126 +0,0 @@
----
-title: Projet Nightly ASan
-slug: Mozilla/Testing/ASan_Nightly_Project
-tags:
- - Bug
- - Firefox
- - Testing
- - asan
- - bogue
- - nightly
- - test
-translation_of: Mozilla/Testing/ASan_Nightly_Project
----
-<p>{{ApiRef}}</p>
-
-<article id="wikiArticle">
-<p>Documentation déplacée dans la documentation de Firefox:<br>
- <a class="external external-icon" href="https://firefox-source-docs.mozilla.org/tools/sanitizer/asan_nightly.html" rel="noopener">https://firefox-source-docs.mozilla.org/tools/sanitizer/asan_nightly.html</a></p>
-</article>
-
-<p>Le <strong>Projet Nightly</strong> <strong>ASan</strong> consiste à créer un navigateur Firefox Nightly incluant l'outil populaire <a href="https://github.com/google/sanitizers/wiki/AddressSanitizer">AddressSanitizer</a> et à l'améliorer avec des capacités de génération de rapports de plantage à distance pour toutes erreurs détectées.</p>
-
-<p>Le but du projet est de trouver de subtiles altérations de la mémoire survenant lors d'une navigation normale qui ne feraient pas planter du tout le navigateur ou qui feraient planter de telle sorte que nous ne puissions pas déterminer quel est le problème exact à partir du vidage de la mémoire sur incident. Nous disposons de beaucoup de rapports de plantage inopérants et les traces AddressSanitizer sont généralement beaucoup plus exploitables par elles-mêmes (en particulier les traces d'utilisation après libération). Une partie de ce projet consiste à déterminer si des rapports de plantage d'ASan sont exploitables et combien uniquement en surfant. Le succès du projet dépend bien entendu aussi du nombre de participants.</p>
-
-<p>Vous pouvez télécharger la dernière version en utilisant l'un des liens ci-dessous. Les builds sont mises à jour quotidiennement comme les builds nocturnes régulières (comme pour les builds régulières, vous pouvez aller sur <em>"Help"</em> → <em>"About Nightly"</em> pour forcer une vérification de mise à jour ou confirmer que vous utilisez la dernière version).</p>
-
-<div class="note">
-<p>Si vous êtes venu ici à la recherche de versions ASan standard (par exemple pour le fuzzing ou comme développeur voulant reproduire un plantage), vous devriez probablement <a href="/fr/docs/Mozilla/Testing/Firefox_and_Address_Sanitizer">aller ici</a> à la place.</p>
-</div>
-
-<h3 id="Exigences">Exigences</h3>
-
-<p>Les exigences actuelles sont :</p>
-
-<ul>
- <li>Système d'exploitation basé sur Linux</li>
- <li>16 Go de RAM recommandés</li>
- <li>Special ASan Nightly Firefox Build
- <ul>
- <li><a href="https://index.taskcluster.net/v1/task/gecko.v2.mozilla-central.nightly.latest.firefox.linux64-asan-reporter-opt/artifacts/public/build/target.tar.bz2">Téléchargement pour Linux</a></li>
- <li><a href="https://index.taskcluster.net/v1/task/gecko.v2.mozilla-central.nightly.latest.firefox.win64-asan-reporter-nightly-repackage-signing/artifacts/public/build/target.installer.exe">Téléchargement pour Windows</a></li>
- </ul>
- </li>
-</ul>
-
-<p>Si vous utilisez déjà Nightly, il devrait être possible de partager le profil avec l'instance Nightly ordinaire. Si vous utilisez normalement une version bêta ou version finale (et que vous souhaitez pouvoir y revenir), vous devriez envisager d'utiliser un second profil.</p>
-
-<div class="warning">
-<p><strong>Utilisateurs Windows :</strong> Veuillez noter que les versions de Windows affichent actuellement une erreur lors de l'installation (voir la section "Problèmes connus" ci-dessous), mais l'installation fonctionne néanmoins. Nous travaillons sur la problème.</p>
-</div>
-
-<div class="note">
-<p>Si vous exécutez dans un environnement avec toutes sortes de restrictions de sécurité supplémentaires (par exemple le sandboxing de processus personnalisé), assurez-vous que votre répertoire /tmp est accessible en écriture et que le binaire  <code>llvm-symbolizer</code> livré est exécutable depuis le processus de Firefox.</p>
-</div>
-
-<h3 id="Préférences">Préférences</h3>
-
-<p>Si vous souhaitez que votre rapport d'accident soit identifiable, vous pouvez aller dans <code>about:config</code> et définir <strong><code>asanreporter.clientid</code></strong> avec votre <strong>adresse e-mail valide</strong>. Ce n'est pas obligatoire, vous pouvez bien sûr signaler des traces de pantage de manière anonyme. Si vous décidez d'envoyer des rapports avec votre adresse e-mail et que vous avez un compte Bugzilla, pensez à utiliser la même adresse e-mail que celle utilisée pour votre compte Bugzilla. Nous vous mettrons en CC sur les bogues déposés à partir de vos rapports de plantage Si votre adresse e-mail n'appartient pas à un compte Bugzilla, nous ne la publierons pas mais nous l'utiliserons uniquement pour trouver des réponses aux questions soulevées par vos rapports de plantage.</p>
-
-<div class="note">
-<p>La définition de cette préférence nous permet de vous contacter au cas où nous aurions des questions sur votre configuration/système d'exploitation. Veuillez envisager de l'utiliser afin que nous puissions revenir vers vous si nécessaire.</p>
-</div>
-
-<h3 id="Programme_de_Bug_Bounty">Programme de Bug Bounty</h3>
-
-<p>Comme récompense spéciale pour participer au programme, nous avons décidé de traiter tous les rapports soumis comme s'ils étaient enregistrés directement dans Bugzilla. Cela signifie que les rapports :</p>
-
-<ul>
- <li>qui indiquent un problème de sécurité critique ou élevé</li>
- <li><strong>et</strong> que cela peut être corrigé par nos développeurs</li>
-</ul>
-
-<p>sont éligibles pour une prime de bogue selon <a href="https://www.mozilla.org/en-US/security/client-bug-bounty/">les règles de notre programme de Bug Bounty</a>. Comme le rapport n'inclura généralement aucune étape de reproduction ou de test, il recevra très probablement une prime inférieure. Comme avec les rapports de bogue habituels, nous récompensons généralement le premier signalement (identifiable) d'un problème.</p>
-
-<div class="warning">
-<p>Si vous souhaitez participer au programme de récompense, assurez-vous de régler votre préférence <strong><code>asanreporter.clientid</code></strong> comme indiqué ci-dessus. Nous ne pouvons pas récompenser les rapports soumis sans adresse e-mail.</p>
-</div>
-
-<h3 id="Problèmes_connus">Problèmes connus</h3>
-
-<p>Cette section répertorie toutes les limitations actuellement connues des versions Nightly ASan considérées comme des bogues.</p>
-
-<ul>
- <li><s>Flash is currently not working</s></li>
- <li><s><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1477490">Bug 1477490</a> - <strong>Windows:</strong> Stack instrumentation disabled due to false positives</s></li>
- <li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1478096">Bug 1478096</a> - <strong>Windows:</strong> Error during install with maintenanceservice_tmp.exe</li>
- <li>Il a été rapporté que les performances d'ASan Nightly sont particulièrement mauvaises si vous exécutez sur un écran avec un taux de rafraîchissement de 120hz. Le passage à 60 Hz devrait améliorer considérablement les performances.</li>
-</ul>
-
-<p>Notez que ces bogues sont <strong>specifiques</strong> à ASan Nightly comme indiqué dans la <a href="https://bugzilla.mozilla.org/showdependencytree.cgi?id=1386297&amp;hide_resolved=0">liste des dépendances de suivi de bogues</a>. Pour la liste complète des bogues trouvés par ce projet, voir plutôt <a href="https://bugzilla.mozilla.org/showdependencytree.cgi?id=1479399&amp;hide_resolved=0">cette liste</a> et notez que certains bogues peuvent ne pas être affichés parce qu'ils sont des bogues de sécurité.</p>
-
-<p>Si vous rencontrez un bogue qui ne figure pas dans cette liste, veuillez déposer un bogue sur <a href="https://bugzilla.mozilla.org/">bugzilla.mozilla.org</a> ou envoyer un courriel à <a href="mailto:choller@mozilla.com?subject=%5BASan%20Nightly%20Project%5D%5BBug%20Report%5D">choller@mozilla.com</a>. Lorsque vous déposez un rapport de bogue, cela aide grandement, si vous mettez en CC cette adresse e-mail et marquez le bogue comme bloquant le <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1386297">bug 1386297</a>.</p>
-
-<h3 id="FAQ">FAQ</h3>
-
-<h4 id="Quelles_sont_les_données_supplémentaires_collectées">Quelles sont les données supplémentaires collectées ?</h4>
-
-<p>Le projet ne collecte que les traces ASan et (si vous le définissez dans les préférences) votre adresse e-mail. Nous ne collectons aucune autre donnée de navigateur, en particulier ni les sites que vous consultez ni le contenu de la page. Il s'agit vraiment de traces de plantage soumises à un emplacement distant.</p>
-
-<div class="note">
-<p>Le navigateur Nightly ASan possède également toutes les capacités de collecte de données d'un navigateur Nightly normal. La réponse ci-dessus se réfère uniquement à ce que ce projet recueille <strong>en plus </strong>de ce que le navigateur Nightly normal peut collecter.</p>
-</div>
-
-<h4 id="Quel_est_limpact_sur_les_performances">Quel est l'impact sur les performances ?</h4>
-
-<p>La version Nightly ASan ne s'accompagne que d'un léger ralentissement au démarrage et à la navigation, parfois même pas perceptible. La consommation de RAM est cependant beaucoup plus élevée qu'avec une version normale. Soyez prêt à redémarrer parfois votre navigateur, surtout si vous utilisez beaucoup d'onglets à la fois. En outre, les mises à jour sont plus volumineuses que les mises à jour ordinaires, ce qui signifie que les temps de téléchargement des mises à jour seront plus longs, en particulier si votre connexion Internet est plus lente.</p>
-
-<div class="warning">
-<p>Si vous rencontrez des problèmes de performance, voir aussi la section "Problèmes connus" ci-dessus, en particulier le problème du ralentissement de la vitesse de rafraîchissement de l'écran de Firefox.</p>
-</div>
-
-<h4 id="Et_la_stabilité">Et la stabilité ?</h4>
-
-<p>Le navigateur est aussi stable qu'une version Nightly standard. Différentes personnes ont surfé avec pour leur travail au quotidien depuis des semaines maintenant et nous avons à peine reçu que quelques rapports de plantage.</p>
-
-<h4 id="Comment_puis-je_confirmer_que_jutilise_la_bonne_version">Comment puis-je confirmer que j'utilise la bonne version ?</h4>
-
-<p>Si vous ouvrez <code>about:support</code> et tapez <em>"asanreporter"</em> dans le champ de recherche, vous devriez voir une entrée appelée <code><strong>asanreporter.apiurl</strong></code> associée à une URL. Ne modifiez pas cette valeur.</p>
-
-<div class="warning">
-<p>Depuis Firefox 64, la fonctionnalité <em>"ASan Crash Reporter"</em>  n'est plus listée dans le répertoire <code>about:support</code></p>
-</div>
-
-<h4 id="Y_aura-t-il_prise_en_charge_de_macOS">Y aura-t-il prise en charge de macOS ?</h4>
-
-<p>Nous travaillons sur le support pour Mac, mais cela pourrait prendre plus de temps parce que nous n'avons pas de couverture ASan CI sur Mac en raison de contraintes matérielles. Si vous travaillez sur l'ingénierie de publication et que vous souhaitez contribuer à ce que Mac, par exemple, arrive plus tôt, n'hésitez pas à <a href="mailto:choller@mozilla.com?subject=%5BASan%20Nightly%20Project%5D%20">me contacter</a>.</p>
diff --git a/files/fr/mozilla/testing/firefox_and_address_sanitizer/index.html b/files/fr/mozilla/testing/firefox_and_address_sanitizer/index.html
deleted file mode 100644
index 77db938413..0000000000
--- a/files/fr/mozilla/testing/firefox_and_address_sanitizer/index.html
+++ /dev/null
@@ -1,11 +0,0 @@
----
-title: Firefox et Address Sanitizer
-slug: Mozilla/Testing/Firefox_and_Address_Sanitizer
-tags:
- - Debugging
- - Developing Mozilla
- - Guide
- - Testing
-translation_of: Mozilla/Testing/Firefox_and_Address_Sanitizer
----
-<p>Déplacé dans la documentation de Firefox: <a href="https://firefox-source-docs.mozilla.org/tools/sanitizer/asan.html">https://firefox-source-docs.mozilla.org/tools/sanitizer/asan.html</a></p>
diff --git a/files/fr/mozilla/testing/index.html b/files/fr/mozilla/testing/index.html
deleted file mode 100644
index eaf633a72e..0000000000
--- a/files/fr/mozilla/testing/index.html
+++ /dev/null
@@ -1,12 +0,0 @@
----
-title: Testing Mozilla code
-slug: Mozilla/Testing
-tags:
- - Landing
- - Mozilla
- - Testing
-translation_of: Mozilla/Testing
----
-<p>Tester votre code est important ! Avant même de pouvoir intégrer votre code dans l'arborescence des sources, vous devez le tester, et les correctifs de plus grande taille doivent avoir des tests automatisés. Ces articles vous aideront à maîtriser (et à continuer à exceller) le test du code Mozilla.</p>
-
-<p>{{LandingPageListSubpages}}</p>
diff --git a/files/fr/mozilla/thunderbird/account_examples/index.html b/files/fr/mozilla/thunderbird/account_examples/index.html
deleted file mode 100644
index 5b0af43c05..0000000000
--- a/files/fr/mozilla/thunderbird/account_examples/index.html
+++ /dev/null
@@ -1,71 +0,0 @@
----
-title: Account examples
-slug: Mozilla/Thunderbird/Account_examples
-tags:
- - Extensions
- - thunderbird
-translation_of: Mozilla/Thunderbird/Account_examples
----
-<div class="blockIndicator draft">
-<p><strong>Brouillon</strong><br>
- Cette page n'est pas complète</p>
-</div>
-
-<div class="blockIndicator standardNote">
-<p>Ce contenu couvre les fonctionnalités introduites dans <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Thunderbird/Releases/3">Thunderbird 3</a></p>
-</div>
-
-<p>Cet article fournit des exemples d'accès et de manipulation des comptes Thunderbird. Les <a class="internal" href="/en-US/docs/Thunderbird/Account_interfaces" title="en/Thunderbird/Account interfaces">interfaces de compte</a> fournissent une vue d'ensemble des interfaces associées. Voir <a class="internal" href="/en-US/docs/Extensions/Thunderbird/An_overview_of_the_Thunderbird_interface" title="En/Extensions/Thunderbird/An overview of the Thunderbird interface">Présention des composants Thunderbird </a>pour une description générale de l'interface utilisateur de Thunderbird et des interfaces de programmation associées.</p>
-
-<h2 id="Itérer_sur_tous_les_comptes_connus">Itérer sur tous les comptes connus</h2>
-
-<pre class="brush: js notranslate">var acctMgr = Components.classes["@mozilla.org/messenger/account-manager;1"]
- .getService(Components.interfaces.nsIMsgAccountManager);
-var accounts = acctMgr.accounts;
-if (accounts.queryElementAt) {
- // Gecko 17+
- for (var i = 0; i &lt; accounts.length; i++) {
- var account = accounts.queryElementAt(i, Components.interfaces.nsIMsgAccount);
- // Faire quelque chose avec le compte
- }
-} else {
- // Gecko &lt; 17
- for (var i = 0; i &lt; accounts.Count(); i++) {
- var account = accounts.QueryElementAt(i, Components.interfaces.nsIMsgAccount);
- // Faire quelque chose avec le compte
- }
-}
-</pre>
-
-<h2 id="Introspectez_les_détails_de_certains_comptes_noms_paramètres_etc.">Introspectez les détails de certains comptes (noms, paramètres, etc.)</h2>
-
-<pre class="brush: js notranslate">var acctMgr = Components.classes["@mozilla.org/messenger/account-manager;1"]
- .getService(Components.interfaces.nsIMsgAccountManager);
-var accounts = acctMgr.accounts;
-for (var i = 0; i &lt; accounts.length; i++) {
- var account = accounts.queryElementAt(i, Components.interfaces.nsIMsgAccount);
- Application.console.log(account.key);
- // account.incomingServer est un nsIMsgIncomingServer
- // account.identities est un nsISupportsArray de nsIMsgIdentity objects
- // vous pouvez le parcourir comme acctMgr.accounts ci-dessus
- // account.defaultIdentity est un nsIMsgIdentity
-}
-</pre>
-
-<h2 id="Parcourir_les_dossiers_dun_compte">Parcourir les dossiers d'un compte</h2>
-
-<pre class="brush: js notranslate">var acctMgr = Components.classes["@mozilla.org/messenger/account-manager;1"]
- .getService(Components.interfaces.nsIMsgAccountManager);
-var accounts = acctMgr.accounts;
-for (var i = 0; i &lt; accounts.length; i++) {
- var account = accounts.queryElementAt(i, Components.interfaces.nsIMsgAccount);
-  var rootFolder = account.incomingServer.rootFolder; // nsIMsgFolder
- Application.console.log(rootFolder.prettiestName);
- if (rootFolder.hasSubFolders) {
-  var subFolders = rootFolder.subFolders; // nsIMsgFolder
-   while(subFolders.hasMoreElements()) {
-  var folder = subFolders.getNext().QueryInterface(Components.interfaces.nsIMsgFolder);
- Application.console.log(folder.prettiestName);
- }
- }
-}</pre>
diff --git a/files/fr/mozilla/thunderbird/autoconfiguration/index.html b/files/fr/mozilla/thunderbird/autoconfiguration/index.html
deleted file mode 100644
index 3deb8fa43d..0000000000
--- a/files/fr/mozilla/thunderbird/autoconfiguration/index.html
+++ /dev/null
@@ -1,173 +0,0 @@
----
-title: Autoconfiguration dans Thunderbird
-slug: Mozilla/Thunderbird/Autoconfiguration
-translation_of: Mozilla/Thunderbird/Autoconfiguration
----
-<p>Autheur: Ben Bucksch<br>
- <span id="result_box" lang="fr"><span class="hps">Veuillez</span> <span class="hps">ne pas modifier ce</span> <span class="hps">document sans</span> <span class="hps">consulter</span> <span class="hps">l'auteur</span></span></p>
-
-<p>Traduction Française par Kimpe Andy association heberge-kimpe</p>
-
-<p>l'association heberge-kimpe et une association qui s'engage dans l'open source.</p>
-
-<p>C'est la raison de le traduction de ce document très pratique pour les webmaster</p>
-
-<p><span id="result_box" lang="en"><span class="hps">Si vous utilisez zpanel sur votre serveur voici comment mettre en place automatiquement l'autoconfiguration de thunderbrid</span></span></p>
-
-<p> </p>
-
-<p><span lang="en"><span class="hps">attention le lien ci dessous ne fonctionne plus.</span></span></p>
-
-<p>car le site de la comunauté française de zpanel a fermer c'est porte (merci yousse)</p>
-
-<p>je ferais a nouveau ce tutoriel (avec une mise à jours a sentora) des que j'aurais plus de temp libre.</p>
-
-<p>merci de votre compréhention</p>
-
-<p>cordialement andy</p>
-
-<p><a href="http://www.zpanel-fr.com/forum/10-infos-importantes-mise-a-jour/115-tuto-perssonalisez-les-dns-par-defaut">http://www.zpanel-fr.com/forum/10-infos-importantes-mise-a-jour/115-tuto-perssonalisez-les-dns-par-defaut</a></p>
-
-<p> </p>
-
-<p>A partir de la version Thunderbird 3.1 et versions ultérieures (et 3,0 dans une certaine mesure) inclut la fonctionnalité de configuration automatique de compte de courriel. Le but de l'autoconfiguration est de le rendre très facile pour les utilisateurs la configuration et la connexion de Thunderbird à leurs serveurs de messagerie. Dans de nombreux cas, les gens devraient être en mesure de télécharger et d'installer Thunderbird, d'entrer leur vrai nom, adresse e-mail et mot de passe dans l'Assistant Configuration du compte et d' avoir un client de messagerie qui fonctionne pleinement et d'envoyer et recevoir leur courrier de manière aussi sécurisée que possible.</p>
-
-<p><span class="short_text" id="result_box" lang="fr"><span class="hps">voir aussi</span></span>:</p>
-
-<ul>
- <li>le <a class="link-https" href="https://wiki.mozilla.org/Thunderbird:Autoconfiguration" title="https://wiki.mozilla.org/Thunderbird:Autoconfiguration">projet de la page du wiki de Mozilla</a> <span id="result_box" lang="fr"><span class="hps">pour le fond,</span> de <span class="hps">conception, de</span> <span class="hps">mise en oeuvre et</span> <span class="hps">les détails du projet</span></span></li>
- <li><span id="result_box" lang="fr"><span class="hps">Pour obtenir des instructions</span> <span class="hps">pour les utilisateurs</span><span>, voir</span></span> aussi la <a class="external" href="http://support.mozillamessaging.com/en-US/kb/Automatic+Account+Configuration" title="http://support.mozillamessaging.com/en-US/kb/Automatic+Account+Configuration">Configuration Automatique du compte</a> <span class="short_text" id="result_box" lang="fr"><span class="hps">sur</span> <span class="hps">la base de connaissances</span> <span class="hps">Thunderbird</span></span>.</li>
- <li>La<a href="/en/Thunderbird/Autoconfiguration/FileFormat/HowTo" title="en/Thunderbird/Autoconfiguration/FileFormat/HowTo"> description des fichier de comfiguration</a> et leur <a href="/en/Thunderbird/Autoconfiguration/FileFormat/Definition" title="en/Thunderbird/Autoconfiguration/FileFormat/Definition">definition</a></li>
-</ul>
-
-<p><span id="result_box" lang="fr"><span class="hps">Ce document décrit comment</span> <span class="hps">la configuration automatique</span> <span class="hps">dans</span> <span class="hps">Thunderbird</span> <span class="hps">fonctionne et</span> <span class="hps">ce qu'il faut faire</span> <span class="hps">pour permettre aux serveurs</span> <span class="hps">de messagerie</span> <span class="alt-edited hps">d'être</span> <span class="hps">configurées automatiquement</span></span>.</p>
-
-<h1 id="Mécanismes"><span class="short_text" id="result_box" lang="fr"><span class="hps">Mécanismes</span></span></h1>
-
-<p><span id="result_box" lang="fr"><span class="hps">Thunderbird</span> <span class="hps">obtient les</span> <span class="hps">paramètres de serveur</span> <span class="hps">par l'intermédiaire de</span> <span class="hps">divers moyens</span><span>,</span> <span class="hps">dont chacun</span> <span class="hps">est prévu pour</span> un cas de figure particulier </span>:</p>
-
-<ul>
- <li><span id="result_box" lang="fr"><span class="hps">ISPDB</span><br>
- <span class="hps">Le</span> <span class="hps">ISPDB</span> <span class="hps">est une</span> <span class="hps">base de données centrale</span><span>,</span> <span class="hps">actuellement</span> <span class="hps">hébergée par</span> <span class="hps">Mozilla Messaging</span><span>,</span> <span class="hps">mais libre</span> <span class="hps">d'utilisation pour</span> <span class="hps">n'importe quel client.</span> <span class="hps">Il</span> <span class="hps">contient les paramètres</span> <span class="hps">pour les principaux</span> <span class="hps">fournisseurs d'accès du</span> <span class="hps">monde</span><span>.</span> <span class="hps">Nous espérons que</span> <span class="hps">la base de données</span> <span class="alt-edited hps">aura bientôt</span> <span class="hps">assez d'informations pour</span> <span class="hps">configurer automatiquement</span> <span class="hps">environ</span> <span class="hps">50% des</span> <span class="hps">comptes e-mail</span> <span class="hps">de nos utilisateurs</span><span>.</span><br>
- <span class="alt-edited hps">Elle a été ajoutée</span> <span class="hps">simplement parce que</span> <span class="hps">nous ne pouvons pas</span> <span class="hps">supposer que tous les</span> <span class="hps">grands</span> <span class="hps">fournisseurs de services Internet</span> <span class="hps">(y compris</span> <span class="hps">Microsoft)</span> <span class="hps">mettront</span> <span class="hps">immédiatement en place</span> <span class="hps">un serveur de configuration</span> <span class="hps">pour</span> <span class="hps">Thunderbird</span></span>.</li>
- <li><span id="result_box" lang="fr"><span class="hps">Serveur</span> <span class="hps">de configuration</span> <span class="hps">à l'ISP</span><br>
- <span class="hps">Les FAI</span> <span class="hps">ont la possibilité de</span> <span class="hps">fournir</span> <span class="hps">leurs informations de</span> <span class="hps">configuration</span> <span class="hps">eux-mêmes</span> <span class="hps">directement aux utilisateurs</span><span>,</span> <span class="hps">en mettant en place</span> <span class="hps">un serveur web</span> <span class="hps">à</span> <span class="hps">autoconfig</span><span>.</span> <span class="hps">&lt;domaine&gt;</span><span>, Qui renvoie</span> <span class="hps">simplement</span> <span class="hps">un fichier</span> <span class="hps">XML</span> <span class="hps">statique</span> <span class="hps">de la configuration,</span> <span class="hps">comme décrit</span> <span class="hps">ci-dessous.</span> <span class="hps">Pour les configurations</span> <span class="hps">plus complexes</span><span>,</span> <span class="hps">par exemple lorsque le</span> <span class="hps">nom d'utilisateur</span> <span class="hps">n'apparaît pas dans</span> <span class="atn hps">l'</span><span>adresse</span> <span class="hps">email,</span> <span class="hps">le fichier</span> <span class="hps">XML</span> <span class="hps">peut également être généré</span> <span class="hps">par le FAI.</span> <span class="hps">Dans ces</span> <span class="hps">cas compliqués</span><span>,</span> <span class="hps">c'est la seule</span> <span class="hps">façon de permettre</span> <span class="hps">une</span> <span class="hps">configuration automatique</span></span>.</li>
- <li><span id="result_box" lang="fr"><span class="hps">Le fichier de configuration</span> <span class="hps">sur le disque dur</span><br>
- <span class="hps">Les administrateurs peuvent</span> <span class="hps">placer un</span> <span class="hps">fichier de configuration dans</span> <span class="hps">le</span> <span class="hps">dossier d'installation de</span> <span class="hps">Thunderbird.</span> <span class="hps">Ceci est principalement</span> <span class="hps">destiné aux entreprises</span> <span class="hps">qui installent</span> <span class="hps">Thunderbird</span> <span class="hps">sur les ordinateurs de</span> <span class="hps">leurs employés</span> <span class="hps">et veulent</span> <span class="hps">permettre</span> <span class="hps">l'installation facile</span> <span class="hps">de</span> <span class="hps">compte sans avoir à</span> <span class="hps">mettre en place un</span> <span class="hps">serveur de configuration.</span> <span class="hps">Cette méthode n'est pas</span> <span class="hps">pratique pour les</span> <span class="hps">autres cas d'utilisation</span><span>,</span> <span class="hps">car il est difficile</span> <span class="hps">de mettre à jour</span> <span class="hps">le fichier de configuration</span><span>.</span> <span class="hps">Par conséquent</span><span>, les FAI</span> <span class="hps">publics</span> <span class="hps">doivent utiliser un</span> <span class="hps">serveur de configuration</span></span>.</li>
- <li><span id="result_box" lang="fr"><span class="alt-edited hps">Deviner</span><br>
- <span class="hps">Si</span> <span class="hps">tous les autres mécanismes</span> <span class="hps">ont échoué,</span> <span class="hps">Thunderbird</span> <span class="hps">essaie de deviner</span> <span class="hps">la</span> <span class="hps">configuration,</span> <span class="hps">en essayant de</span> <span class="hps">noms de serveurs</span> <span class="hps">communs comme</span> <span class="hps">imap</span><span>.</span> <span class="hps">&lt;domaine&gt;</span><span>, Smtp</span><span>.</span> <span class="hps">&lt;domaine&gt;</span><span class="alt-edited">, mail</span><span>.</span> <span class="hps">&lt;domaine&gt;</span> <span class="hps">Etc</span><span>,</span> <span class="hps">et</span><span>,</span> <span class="hps">quand un</span> <span class="hps">serveur de messagerie</span> <span class="alt-edited hps">répond</span><span>,</span> <span class="hps">vérifier si</span> <span class="hps">elle</span> <span class="hps">prend en charge</span> <span class="hps">les mots de passe</span> <span class="hps">SSL</span><span>,</span> <span class="hps">STARTTLS</span> <span class="hps">et</span> <span class="atn hps">cryptée (</span><span class="atn">CRAM-</span><span>MD5</span><span>)</span></span>.</li>
- <li><span id="result_box" lang="fr"><span class="alt-edited hps">Configuration Manuelle</span><br>
- <span class="hps">Si</span> <span class="hps">deviner</span> <span class="hps">échoue</span><span>, l'utilisateur doit</span> <span class="hps">entrer manuellement</span> <span class="hps">les informations de configuration</span><span>.</span> <span class="hps">Les utilisateurs peuvent</span> <span class="hps">peuvent également</span> <span class="hps">modifier</span> <span class="hps">manuellement</span> <span class="hps">les paramètres du compte</span><span>, même</span> <span class="hps">si les informations</span> <span class="alt-edited hps">de configuration ont était obtenu</span> <span class="hps">avec succès</span> <span class="hps">par les méthodes décrites</span> <span class="hps">ci-dessus</span></span>.</li>
-</ul>
-
-<p><span id="result_box" lang="fr"><span class="hps">Tous les mécanismes</span> <span class="hps">lookup</span> <span class="hps">utilisent</span> <span class="hps">le</span> <span class="hps">domaine</span> <span class="hps">de l'adresse</span> <span class="hps">e-mail</span> <span class="hps">en tant que base</span> <span class="hps">pour la</span> <span class="hps">recherche.</span> <span class="hps">Par exemple, pour</span> <span class="hps">l'adresse</span> <span class="hps">email</span> <span class="hps">fred@example.com</span><span>, la recherche</span> <span class="hps">est effectuée comme</span> <span class="atn hps">(</span><span>dans cet ordre)</span></span>:</p>
-
-<ol>
- <li><span id="result_box" lang="fr"><span class="hps">tb-install-dir/isp/example.com.xml</span> <span class="hps">sur le disque dur</span></span></li>
- <li><span class="short_text" id="result_box" lang="fr"><span class="hps">vérifier</span> <span class="hps">autoconfig.example.com</span></span></li>
- <li><span class="short_text" id="result_box" lang="fr"><span class="hps">rechercher</span> <span class="hps">des</span> <span class="hps">"example.com"</span> <span class="hps">dans le</span> <span class="hps">ISPDB</span></span></li>
- <li><span id="result_box" lang="fr"><span class="hps">rechercher</span> <span class="hps">"MX</span> <span class="hps">example.com"</span> <span class="hps">dans le DNS</span><span>,</span> <span class="hps">et</span> <span class="hps">pour</span> <span class="hps">mx1.mail.hoster.com</span><span>,</span> <span class="atn hps">consultez la rubrique "</span><span>hoster.com</span><span>"</span> <span class="hps">dans le</span> <span class="hps">ISPDB</span></span></li>
- <li><span id="result_box" lang="fr"><span class="hps">essayer de deviner</span> <span class="atn hps">(</span><span>imap.example.com</span><span>,</span> <span class="hps">smtp.example.com</span> <span class="hps">etc</span><span>)</span></span></li>
-</ol>
-
-<p><span id="result_box" lang="fr"><span class="hps">Nous pouvons</span> <span class="hps">à l'avenir</span> <span class="hps">ajouter</span> <span class="hps">des enregistrements DNS</span> <span class="hps">SRV en tant que</span> <span class="hps">mécanisme pris en charge</span> <span class="hps">à l'avenir</span><span>, mais nous</span> <span class="hps">n'avons actuellement pas</span><span>.</span></span></p>
-
-<h1 id="Comment_ajouter_le_support_pour_votre_nom_de_domaine"><span id="result_box" lang="fr"><span class="hps">Comment</span> <span class="hps">ajouter le support pour</span> <span class="hps">votre nom de domaine</span></span></h1>
-
-<h2 id="Classification">Classification</h2>
-
-<p><span id="result_box" lang="fr"><span class="hps">Si</span> <span class="hps">vous êtes un grand</span> <span class="hps">fournisseur de services Internet</span> <span class="atn hps">(</span><span>&gt; 100.000</span> <span class="hps">utilisateurs)</span> <span class="hps">fournir des adresses</span> <span class="hps">email</span> <span class="hps">uniquement</span> <span class="hps">sous quelques</span> <span class="hps">domaines tels que</span> <span class="hps">"example.com</span><span class="atn">" et "</span><span>example.de</span><span>"</span><span>, vous pouvez</span> <span class="hps">soit envoyer</span> <span class="hps">la configuration</span> <span class="hps">à la</span> <span class="hps">ISPDB</span> <span class="hps">ou mettre en place</span> <span class="hps">un serveur de configuration</span></span>.<br>
- <br>
- <span id="result_box" lang="fr"><span class="hps">Si vous soutenez</span> <span class="hps">alias de messagerie</span> <span class="hps">et</span> <span class="hps">le nom de connexion</span> <span class="hps">de l'utilisateur</span> <span class="hps">ne fait pas partie</span> <span class="hps">de l'adresse de</span> <span class="hps">courrier électronique (par</span> <span class="hps">exemple, les utilisateurs</span> <span class="hps">peuvent avoir</span> <span class="atn hps">"</span><span>hero@example.com</span><span>"</span> <span class="hps">comme</span> <span class="hps">adresse e-mail</span><span>, mais</span> <span class="hps">le nom de connexion</span> <span class="hps">IMAP</span> <span class="hps">/ POP /</span> <span class="hps">SMTP</span> <span class="hps">n'est ni</span> <span class="hps">«héros»</span> <span class="hps">ni</span> <span class="atn hps">"</span><span>hero@example.com</span><span class="atn">", mais "</span><span>u67578</span><span>"</span><span>)</span><span>, vous devez</span> <span class="hps">configurer un serveur</span> <span class="hps">de configuration, qui</span> <span class="hps">fait</span> <span class="hps">l'adresse</span> <span class="hps">mail -&gt;</span> <span class="hps">nom de connexion</span> <span class="hps">lookup</span></span>.<br>
- <br>
- <span id="result_box" lang="fr"><span class="hps">Si vous hébergez</span> <span class="hps">domaines clients</span><span>, c'est à dire</span> <span class="hps">que vous êtes</span> <span class="atn hps">"</span><span>hoster.com</span><span>», mais</span> <span class="hps">vos clients</span> <span class="atn hps">ont "</span><span>fred@flintstone.com</span><span class="atn">" et "</span><span>louis@kent.com</span><span>"</span> <span class="hps">comme des domaines</span><span>,</span> <span class="hps">avec seulement quelques</span> <span class="hps">utilisateurs par</span> <span class="hps">domaine, vous</span> <span class="hps">devez configurer</span> <span class="hps">un serveur de configuration</span> <span class="hps">(ou</span> <span class="hps">s'appuyer sur</span> <span class="hps">DNS</span> <span class="hps">MX)</span><span>.</span></span><br>
- <br>
- <span id="result_box" lang="fr"><span class="hps">Si vous</span> <span class="hps">êtes une petite entreprise</span> <span class="hps">d'installer</span> <span class="hps">Thunderbird</span> <span class="hps">sur les</span> <span class="hps">postes de travail</span> <span class="hps">de vos employés</span><span>, vous pouvez placer</span> <span class="hps">un fichier de configuration</span> <span class="hps">dans le</span> <span class="hps">dossier d'installation de</span> <span class="hps">Thunderbird.</span></span></p>
-
-<h2 id="ISPDB">ISPDB</h2>
-
-<p>L'<span id="result_box" lang="fr"><span class="hps">URL</span> <span class="hps">de base de données</span> <span class="hps">est</span> </span> <a class="moz-txt-link-rfc2396E link-https" href="https://live.mozillamessaging.com/autoconfig/v1.1/" title="https://live.mozillamessaging.com/autoconfig/v1.1/">&lt;https://live.mozillamessaging.com/autoconfig/v1.1/&gt;</a>, <span id="result_box" lang="fr"><span class="hps">append</span> <span class="hps">nom de domaine,</span> <span class="hps">par exemple</span></span>. <a class="moz-txt-link-rfc2396E link-https" href="https://live.mozillamessaging.com/autoconfig/v1.1/freenet.de" title="https://live.mozillamessaging.com/autoconfig/v1.1/freenet.de">&lt;https://live.mozillamessaging.com/autoconfig/v1.1/freenet.de&gt;</a>.<br>
- <br>
- <span class="short_text" id="result_box" lang="fr"><span class="hps">Le processus actuel</span><span>:</span> <span class="hps">Remplissez un bug</span> <span class="hps">dans</span></span> <a class="link-https" href="https://bugzilla.mozilla.org/enter_bug.cgi?product=Webtools&amp;component=ISPDB%20Database%20Entries&amp;op_sys=All&amp;rep_platform=All">Bugzilla</a>, <span id="result_box" lang="fr"><span class="hps">Produit</span> <span class="atn hps">"</span><span>Outils web</span><span>"</span><span>,</span> <span class="atn hps">"</span><span>composants</span> <span class="hps">ISPDB</span> <span class="hps">Base de données</span> <span class="hps">d'entrées»</span><span>, avec</span> <span class="hps">un fichier de configuration</span> <span class="hps">qui correspond aux</span> <span class="hps">exigences décrites</span> <span class="hps">ci-dessous.</span> <span class="hps">Demander une révision</span> <span class="hps">de</span> <span class="hps">bwinton</span><span>,</span> <span class="hps">gozer</span> <span class="hps">ou</span> <span class="hps">ben.bucksch</span><span>.</span></span><br>
- <br>
- <span class="short_text" id="result_box" lang="fr"><span class="hps">Future</span><span>:</span> <span class="hps">ajouter</span> <span class="hps">la configuration</span> <span class="atn hps">à l'</span></span> <a class="link-https" href="https://ispdb.mozillamessaging.com">ISPDB server app</a>.</p>
-
-<p> </p>
-
-<p>je finirait la traduction demain merci de votre compréhention</p>
-
-<h2 id="Configuration_du_serveur_avec_ISP">Configuration du serveur avec ISP</h2>
-
-<p>Given the email address <a class="moz-txt-link-rfc2396E link-mailto" href="mailto:fred@example.com">"fred@example.com"</a>, Thunderbird first checks &lt;<span class="external free"><a class="moz-txt-link-freetext external" href="http://autoconfig.example.com/mail/config-v1.xml?emailaddress=fred@example.com">http://autoconfig.example.com/mail/config-v1.1.xml?emailaddress=fred@example.com</a></span>&gt; and then <a class="moz-txt-link-rfc2396E external" href="http://example.com/.well-known/autoconfig/mail/config-v1.1.xml" title="http://example.com/.well-known/autoconfig/mail/config-v1.1.xml">&lt;http://example.com/.well-known/autoconfig/mail/config-v1.1.xml&gt;</a>.</p>
-
-<h3 id="Small_company">Small company</h3>
-
-<p>If you are a small company, you can put the XML configuration file on your web server, at URL <a class="moz-txt-link-rfc2396E external" href="http://example.com/.well-known/autoconfig/mail/config-v1.1.xml">&lt;http://example.com/.well-known/autoconfig/mail/config-v1.1.xml&gt;</a>. (This is not yet finalized and subject to change.)</p>
-
-<h3 id="Domain_hoster">Domain hoster</h3>
-
-<p>If you are an ISP that hosts domains for your customers - for example, you are hoster.com and your customer registers fancy.com or example.com, and your servers accept and serve the mail for example.com -, you should set up an autoconfig server.</p>
-
-<h4 id="DNS">DNS</h4>
-
-<p>For each customer domain, you add a DNS record (in addition to the existing MX, A www etc. DNS records):<br>
- <code>autoconfig IN A 10.2.3.4</code><br>
- or<br>
- <code>autoconfig IN CNAME autoconfig.hoster.com</code>.<br>
- ... where 10.2.3.4 and autoconfig.hoster.com are IP addresses / hostnames you own.<br>
- This allows Thunderbird to find you as hoster.</p>
-
-<p>To make the Version without an autoconfig DNS Entry work you have to make sure that example.com points to the Webserver you will place the config-v1.1.xml on.</p>
-
-<p>Example: <span style="font-family: courier new,andale mono,monospace; line-height: normal;">example.com A 10.2.3.4</span></p>
-
-<h4 id="Web_server">Web server</h4>
-
-<p>You set up a web server bound to a physical IP address. This may be on the same machine as other web servers, but the web server must be configured to the content to any requested domain.<br>
- <br>
- You must use an virtual host that match all autoconfig.* domains of your customers. In Apache terms, you can use a "ip-based virtual host". In the Apache configuration files, that means something like: Listen 10.2.3.4:80 (of course, you use a public IP address that you own)</p>
-
-<pre>&lt;VirtualHost 10.2.3.4:80&gt; #Must be the first and only virtual host with this ip!
-    DocumentRoot /var/www/autoconfig/
-    ServerName autoconfig.hoster.com
- &lt;Directory /var/www/autoconfig&gt;
- Order allow,deny
- allow from all
-    &lt;/Directory&gt;
-&lt;/VirtualHost&gt;</pre>
-
-<p>Place the configuration file at the URL /mail/config-v1.1.xml on that host.</p>
-
-<p>All config files must be served as <code>Content-Type: text/xml</code> (or <code>application/xml</code>), otherwise the file will be ignored. Also, they must use charset UTF-8 (esp. if there are any non-ASCII-characters).</p>
-
-<p>If you like to use name-based virtual hosts. You probably don't want to setup the autoconfig subdomain for every domain of your customers.<br>
- You can add a Rewriterule in the default virtual host (on debian /etc/apache2/sites-enabled/000-default)  to match all autoconfig.* subdomains:</p>
-
-<pre>&lt;VirtualHost *:80&gt; #Must be the first Virtual host
- ServerAdmin webmaster@hoster.com
- ServerName www
- DocumentRoot /var/www
- RewriteEngine On
- RewriteCond %{HTTP_HOST} ^autoconfig\. [NC]
- RewriteRule ^/(.*) http://autoconfig.hoster.com/$1 [L,R=301,NE]
- #...
-&lt;/VirtualHost&gt;
-&lt;VirtualHost *:80&gt;
-    DocumentRoot /var/www/autoconfig/
-    ServerName autoconfig.hoster.com
- &lt;Directory /var/www/autoconfig&gt;
-  Order allow,deny
- allow from all
-    &lt;/Directory&gt;
-&lt;/VirtualHost&gt;
-</pre>
-
-<p> </p>
-
-<p> </p>
-
-<h2 id="Configuration_file">Configuration file</h2>
-
-<p>This is described at <a href="/en/Thunderbird/Autoconfiguration/FileFormat/HowTo" title="en/Thunderbird/Autoconfiguration/FileFormat/HowTo">How to create a configuration file</a> and <a href="/en/Thunderbird/Autoconfiguration/FileFormat/Definition" title="en/Thunderbird/Autoconfiguration/FileFormat/Definition">defined</a> on the sub-pages.</p>
-
-<p>{{ languages( { "ja": "ja/Thunderbird/Autoconfiguration" } ) }}</p>
diff --git a/files/fr/mozilla/thunderbird/index.html b/files/fr/mozilla/thunderbird/index.html
deleted file mode 100644
index f05663cdbd..0000000000
--- a/files/fr/mozilla/thunderbird/index.html
+++ /dev/null
@@ -1,72 +0,0 @@
----
-title: Thunderbird
-slug: Mozilla/Thunderbird
-tags:
- - TopicStub
- - thunderbird
-translation_of: Mozilla/Thunderbird
----
-<p><strong>Thunderbird</strong> est l'application de mail/messagerie de Mozilla. Ces pages documentent Thunderbird et fournissent également des liens vers la documentation sur le backend <a href="/en-US/docs/tag/MailNews" title="tag/MailNews">MailNews</a> qui est également utilisé dans d'autres projets tels que <a href="http://wiki.mozilla.org/Penelope">Eudora/Penelope</a>, <a href="http://www.seamonkey-project.org/">Seamonkey</a>, <a href="http://nkreeger.com/correo/">Correo</a>, etc.</p>
-
-<p>Thunderbird est le petit frère de Firefox et est construit sur la même plate-forme technique que le navigateur Web. En développement depuis de nombreuses années, et actuellement l'un des clients de messagerie open source les plus populaires, il est utilisé par des millions de personnes à travers le monde pour rassembler tous leurs comptes de messagerie, groupes de discussion et lecture de flux dans un environnement familier à haute productivité.  (Du début 2007 au début 2011, Thunderbird a été développé par <a class="link-https" href="https://en.wikipedia.org/wiki/Mozilla_Messaging" title="https://en.wikipedia.org/wiki/Mozilla_Messaging">Mozilla Messaging</a>, une filiale appartenant à Mozilla.)</p>
-
-<table class="topicpage-table">
- <tbody>
- <tr>
- <td>
- <h2 class="Documentation" id="Documentation" name="Documentation">Documentation</h2>
-
- <dl>
- <dt><a href="https://developer.mozilla.org/en-US/docs/Simple_Thunderbird_build" title="Simple Thunderbird build">Construire Thunderbird</a></dt>
- <dd>Informations sur la construction de Thunderbird avec le référentiel <a href="/en-US/docs/comm-central" title="comm-central">comm-central</a>. Il y a aussi des informations sur le fonctionnement de <a href="/en-US/docs/How_comm-central%27s_build_system_works" title="How_comm-central's_build_system_works">comm-central</a>, comment le <a href="/en-US/docs/Mailnews_and_Mail_code_review_requirements" title="Mailnews and Mail code review requirements">processus de révision fonctionne</a> et comment utiliser le <a href="/en-US/docs/Using_the_Mozilla_symbol_server" title="Using the Mozilla symbol server">serveur de symboles Mozilla</a> pour aider au débogage.</dd>
- <dt><a href="/en-US/docs/MailNews_Protocols" title="MailNews_Protocols">Protocoles MailNews</a></dt>
- <dd>Documentation approximative sur les protocoles de messagerie..</dd>
- <dt><a href="/en-US/docs/DB_Views_%28message_lists%29" title="DB_Views_(message_lists)">Vues de la base de données</a></dt>
- <dd>Information de backend sur {{ Interface("nsIMsgDBView") }} et les interfaces associées..</dd>
- <dt><a href="/en-US/docs/Thunderbird/Thunderbird_API_documentation" title="Thunderbird API documentation">Documentation de l'API Thunderbird</a></dt>
- <dd>Documentation de l'API Thunderbird</dd>
- <dt><a href="/en-US/docs/Extensions/Thunderbird" title="Extensions/Thunderbird/">Documentation d'extension</a></dt>
- <dd>Tutoriels et astuces pour créer des extensions Thunderbird</dd>
- <dt><a href="/en-US/docs/Thunderbird/Thunderbird_Automated_Testing" title="Thunderbird Automated Testing">Test automatisé</a></dt>
- <dd>Détails des installations de test automatisées de Thunderbird</dd>
- <dt><a href="/en-US/docs/Thunderbird/Thunderbird_in_the_Enterprise" title="Thunderbird in the Enterprise">Thunderbird dans l'entreprise</a></dt>
- <dd>Aide au déploiement de Thunderbird dans les grandes organisations</dd>
- </dl>
-
- <p><span class="alllinks"><a href="/en-US/docs/tag/Thunderbird" title="tag/Thunderbird">Voir tout...</a></span></p>
- </td>
- <td>
- <h2 class="Community" id="Community" name="Community">Communauté</h2>
-
- <ul>
- <li>Le support est géré à <a href="http://getsatisfaction.com/mozilla_messaging" title="http://getsatisfaction.com/mozilla_messaging">getsatisfaction</a>.</li>
- <li>Les questions relatives aux extensions sont fréquemment abordées dans le groupe dev-apps-thunderbird group: {{ DiscussionList("dev-apps-thunderbird", "mozilla.dev.apps.thunderbird") }}</li>
- <li>La discussion sur le développement se déroule sur la mailing liste tb-planning:
- <ul>
- <li><a class="link-https" href="https://mail.mozilla.org/listinfo/tb-planning" title="https://mail.mozilla.org/listinfo/tb-planning">souscrire</a></li>
- <li><a class="link-https" href="https://mail.mozilla.org/pipermail/tb-planning/" title="https://mail.mozilla.org/pipermail/tb-planning/">archives</a></li>
- </ul>
- </li>
- <li><a href="http://forums.mozillazine.org/viewforum.php?f=50">Forums Mozillazine</a></li>
- <li><a href="http://www.mozillamessaging.com/">Page Web de Mozilla Messaging</a></li>
- <li><a class="link-irc" href="irc://irc.mozilla.org/thunderbird">#thunderbird sur irc.mozilla.org</a> (pour les utilisateurs)</li>
- <li><a class="link-irc" href="irc://irc.mozilla.org/maildev">#maildev sur irc.mozilla.org</a> (pour les développeurs)</li>
- <li>une liste de tous les <a href="http://wiki.mozilla.org/Thunderbird/CommunicationChannels" title="Thunderbird communication channels">canaux de communication Thunderbird</a></li>
- </ul>
-
- <h2 class="Tools" id="Tools" name="Tools">Outils</h2>
-
- <ul>
- <li><a href="http://ted.mielczarek.org/code/mozilla/extensiondev/">Extension du développeur d'extension</a></li>
- <li><a href="/en-US/docs/DOM_Inspector" title="DOM_Inspector">Inspecteur DOM</a></li>
- </ul>
-
- <h2 class="Related_Topics" id="Related_Topics" name="Related_Topics">Rubriques connexes</h2>
-
- <ul>
- <li><a href="/en-US/docs/Extensions" title="Extensions">Extensions</a></li>
- </ul>
- </td>
- </tr>
- </tbody>
-</table>
diff --git a/files/fr/mozilla/thunderbird/index/index.html b/files/fr/mozilla/thunderbird/index/index.html
deleted file mode 100644
index e8d18b61a8..0000000000
--- a/files/fr/mozilla/thunderbird/index/index.html
+++ /dev/null
@@ -1,8 +0,0 @@
----
-title: Index
-slug: Mozilla/Thunderbird/Index
-tags:
- - Index
-translation_of: Mozilla/Thunderbird/Index
----
-<p>{{Index("/fr/docs/Mozilla/Thunderbird")}}</p>
diff --git a/files/fr/mozilla/trouver_trace_appels_pour_rapport_bug/index.html b/files/fr/mozilla/trouver_trace_appels_pour_rapport_bug/index.html
deleted file mode 100644
index 98b0d6c0e1..0000000000
--- a/files/fr/mozilla/trouver_trace_appels_pour_rapport_bug/index.html
+++ /dev/null
@@ -1,97 +0,0 @@
----
-title: Comment trouver la trace d'appels pour envoyer un rapport de bug
-slug: Mozilla/Trouver_trace_appels_pour_rapport_bug
-tags:
- - Bugzilla
-translation_of: Mozilla/How_to_get_a_stacktrace_for_a_bug_report
----
-<p>Si vous envoyez un rapport de plantage sur le Bugzilla vous devriez joindre la trace d'appels (en anglais <em>stacktrace</em>). C'est grâce à elle que les développeurs de Mozilla sauront ce qui s'est mal passé et auront un point de départ pour mener leurs investigations. Cet article vous explique comment utiliser le rapporteur de plantage de Mozilla (le <em>Breakpad</em>, un bloc-notes des incidents) pour obtenir un identifiant de plantage que nos ingénieurs peuvent utiliser pour obtenir la trace d'appels. Vous apprendre également de quels autres moyens vous disposez pour obtenir une trace d'appels si vous ne connaissez pas l'identifiant de plantage.</p>
-
-<h2 id="Conditions_nécessaires">Conditions nécessaires</h2>
-
-<p>Vous avez besoin d'une version de Firefox téléchargée sur <a class="external external-icon" href="https://www.mozilla.org/fr/firefox/">Mozilla.org</a>. SeaMonkey et Thunderbird comportent également une assistance au rapport de plantage.</p>
-
-<p>Le serveur du rapporteur de bug de Mozilla ne dispose d'informations de débogage que pour les versions produites par Mozilla. Par conséquent le rapporteur de bug ne peut pas fonctionner si vous utilisez votre propre compilation du code source ou une version issue de certaines distributions Linux. Auquel cas vous devrez utiliser une des <a href="#Alternative_ways_to_get_a_stacktrace">méthodes alternatives</a> exposées ci-dessous.</p>
-
-<div class="note"><strong>Remarque : </strong>lorsqu'on traite un rapport de plantage, il est important se savoir si le plantage s'est produit avec <a class="external" href="http://support.mozilla.com/en-US/kb/Safe+Mode" title="http://support.mozilla.com/en-US/kb/Safe+Mode">Firefox en mode sans échec</a>. C'est ce qui aide les ingénieurs à déterminer si une <a class="external" href="http://support.mozilla.com/en-US/kb/Troubleshooting+extensions+and+themes" title="http://support.mozilla.com/en-US/kb/Troubleshooting+extensions+and+themes">extension</a> quelconque ou un <a class="external" href="http://support.mozilla.com/en-US/kb/Troubleshooting+plugins" title="http://support.mozilla.com/en-US/kb/Troubleshooting+plugins">plugin</a> particulier est à l'origine du problème.</div>
-
-<h2 id="Trouver_lidentifiant_de_plantage_avec_le_rapporteur_de_plantage_de_Mozilla">Trouver l'identifiant de plantage avec le rapporteur de plantage de Mozilla</h2>
-
-<table style="width: 100%;">
- <tbody>
- <tr>
- <td>
- <p><strong>1. Le plantage et l'envoi d'un rapport au système.</strong></p>
-
- <p>La fenêtre du rapporteur de plantage de Mozilla devrait apparaître automatiquement après un plantage de Firefox. Si vous disposez d'autres informations complémentaires sur le plantage, comme des détails sur ce que vous étiez en train de faire au moment critique et qui peut avoir déclenché le plantage, n'hésitez pas à l'écrire dans la zone de saisie des commentaires. Vérifiez que vous avez bien coché la case <strong>« </strong>Informer <span class="highlight">Firefox </span>de ce problème pour qu’il puisse être corrigé<strong> » </strong>et cliquez sur le bouton de redémarrag<strong>e</strong>. Le rapporteur de plantage devrait alors soumettre le rapport de plantage, puis Firefox va s'ouvrir à nouveau.</p>
-
- <div class="note">Le bouton "Détails" permet d'accéder à des données supplémentaires sur l'incident, cependant elles ne sont pas très utiles dans un rapport de bug.</div>
- </td>
- <td>
- <p style="text-align: center;"><img alt="reporter.jpg" class="internal lwrap" src="../../../../@api/deki/files/2854/=reporter.jpg?size=webview" style="float: left; height: 307px; width: 300px;"></p>
- </td>
- </tr>
- </tbody>
-</table>
-
-<table style="width: 100%;">
- <tbody>
- <tr>
- <td>
- <p><strong>2. Communiquez-nous l'identifiant du rapport que vous avez soumis.</strong></p>
-
- <p>Pour accéder à tous vos rapports de bug, saisissez<strong> "about:crashes" dans la barre d'adresse de Firefox</strong> et appuyez sur Entrée. Firefox should open a list of IDs for your submitted crash reports. Copy two or three of the IDs for the appropriate crashes and paste them into your Bugzilla report. Please check the listed times to avoid copying the ID of an unrelated crash report.</p>
-
- <div class="note">You can prefix a "bp-" to the beginning of an ID to make Bugzilla turn it into a link: <strong>bp-</strong>a70759c6-1295-4160-aa30-bc4772090918</div>
- </td>
- <td>
- <p style="text-align: center;"><img alt="crashlist.jpg" class="internal lwrap" src="../../../../@api/deki/files/2855/=crashlist.jpg?size=webview" style="float: left; height: 403px; width: 450px;"></p>
- </td>
- </tr>
- </tbody>
-</table>
-
-<h3 id="Trouver_lidentifiant_dun_plantage_au_démarrage">Trouver l'identifiant d'un plantage au démarrage</h3>
-
-<p><span id="result_box" lang="fr"><span>Si Firefox tombe en panne au démarrage, vous pouvez toujours accéder à vos rapports d'incident soumis.</span></span> <span id="result_box" lang="fr"><span>Les rapports Crash sont accessibles depuis tous les profils de Firefox,</span></span> <a class="external external-icon" href="https://support.mozilla.org/fr/kb/utiliser-gestionnaire-profils-creer-supprimer-profils">new profile</a> <span id="result_box" lang="fr"><span>ne se bloque pas, vous pouvez l'utiliser pour y accéder par "about: crashes"</span></span> <a class="external" href="/En/How_to_get_a_stacktrace_for_a_bug_report#How_to_get_a_crash_ID_with_the_Mozilla_Crash_Reporter" title="https://developer.mozilla.org/En/How_to_get_a_stacktrace_for_a_bug_report#How_to_get_a_crash_ID_with_the_Mozilla_Crash_Reporter">as above</a>.</p>
-
-<h4 id="Accès_aux_ID_de_rapport_dincident_en_dehors_de_Firefox"><span id="result_box" lang="fr"><span>Accès aux ID de rapport d'incident en dehors de Firefox</span></span></h4>
-
-<p><span id="result_box" lang="fr"><span>Si vous ne pouvez pas charger Firefox du tout, vous pouvez trouver les fichiers de rapport d'incident à cet emplacement en fonction de votre système d'exploitation:</span></span></p>
-
-<p>Windows : <span class="filename">%APPDATA%\Mozilla\Firefox\Crash Reports\submitted\</span><br>
- OS X : <span class="filename">~/Library/Application Support/Firefox/Crash Reports/submitted/</span><br>
- Linux : <span class="filename">~/.mozilla/firefox/Crash Reports/submitted/</span></p>
-
-<p><span id="result_box" lang="fr"><span>Chaque fichier de ce dossier contient un ID de rapport d'incident envoyé.</span> <span>Vous pouvez vérifier l'heure modifiée ou la création pour chaque fichier afin de déterminer quels rapports d'incident sont pertinents pour votre rapport de bogue.</span></span></p>
-
-<h2 id="Dautres_moyens_de_trouver_la_trace_dappels">D'autres moyens de trouver la trace d'appels</h2>
-
-<p><span id="result_box" lang="fr"><span>Si le journal de crash Mozilla ne s'affiche pas ou n'est pas disponible, vous devrez obtenir manuellement une trace de pile:</span></span></p>
-
-<h4 id="Windows">Windows</h4>
-
-<p>Voir l'article <a class="internal" href="/en/How_to_get_a_stacktrace_with_WinDbg">Create a stacktrace with Windbg</a> pour plus d'information à ce propos.</p>
-
-<p>For a full process dump, see <a href="/en-US/docs/How_to_get_a_process_dump_with_Windows_Task_Manage">How to get a process dump with Windows Task Manager [en-US]</a></p>
-
-<h4 id="OS_X">OS X</h4>
-
-<p>Exécuter /Applications/Utilities/Console.app.  Ouvrir "~/Library/Logs" et "CrashReporter", et rechercher les logs pour "firefox-bin".</p>
-
-<h4 id="Linux">Linux</h4>
-
-<p>Note that for most distros the package you need to get symbols for will be something like "xulrunner", not "firefox".</p>
-
-<h2 id="Where_did_my_crash_get_submitted.3F" name="Where_did_my_crash_get_submitted.3F">Les fichiers de rapports de plantage dans votre ordinateur</h2>
-
-<p><span id="result_box" lang="fr"><span>Lorsque Breakpad initialement attrape un plantage, il écrit d'abord les fichiers de rapport d'incident (par exemple les fichiers .dump et .extra) dans le sous-répertoire «pending» de son annuaire «Crash Reports».</span><br>
- <br>
- <span>Si Breakpad envoie avec succès le rapport d'incident au serveur de rapports, par défaut, les fichiers ajoutés au sous-répertoire «en attente» de la panne sont supprimés et un fichier .txt est placé dans le répertoire «soumis» contenant l'ID d'incident</span> <span>Serveur de rapports a enregistré le crash sous.</span> <span>Si vous voulez que Breakpad quitte les fichiers .dump et .extra sur votre ordinateur pour pouvoir les examiner localement,</span></span> MOZ_CRASHREPORTER_NO_DELETE_DUMP <span class="short_text" id="result_box" lang="fr"><span>variable d'environnement à 1.</span></span></p>
-
-<ul>
- <li>Ubuntu:  <a class="external external-icon" href="https://wiki.ubuntu.com/MozillaTeam/Bugs#Obtain%20a%20backtrace%20from%20an%20apport%20crash%20report%20(using%20gdb)">Instructions from the Ubuntu Team</a></li>
- <li>openSUSE:  <a class="external external-icon" href="https://en.opensuse.org/openSUSE:Bugreport_application_crashed">General instructions from openSUSE</a></li>
- <li>Fedora: <a class="external external-icon" href="https://fedoraproject.org/wiki/StackTraces">Capturing Stack Traces</a></li>
- <li>Gentoo: <a class="external external-icon" href="https://wiki.gentoo.org/wiki/Debugging_with_GDB">Debugging using GDB</a></li>
-</ul>
diff --git a/files/fr/mozilla/working_with_windows_in_chrome_code/index.html b/files/fr/mozilla/working_with_windows_in_chrome_code/index.html
deleted file mode 100644
index 7f4c49a097..0000000000
--- a/files/fr/mozilla/working_with_windows_in_chrome_code/index.html
+++ /dev/null
@@ -1,250 +0,0 @@
----
-title: Travailler avec des fenêtres dans le chrome
-slug: Mozilla/Working_with_windows_in_chrome_code
-tags:
- - Extensions
-translation_of: Mozilla/Working_with_windows_in_chrome_code
----
-<p>
-Cet article décrit la manière de travailler avec des fenêtres multiples dans le code chrome de Mozilla (applications <a href="fr/XUL">XUL</a> et <a href="fr/Extensions">extensions</a>). Il donne des astuces et des exemples de code sur l'ouverture de nouvelles fenêtres, la recherche de fenêtres déjà ouvertes, et la transmission de données entre différentes fenêtres.
-</p>
-<h3 id="Ouverture_de_fen.C3.AAtres" name="Ouverture_de_fen.C3.AAtres"> Ouverture de fenêtres </h3>
-<p>Pour ouvrir une nouvelle fenêtre, on utilise habituellement un appel DOM <code><a href="fr/DOM/window.open">window.open</a></code> ou <code><a href="fr/DOM/window.openDialog">window.openDialog</a></code>, comme ceci :
-</p>
-<pre class="eval">var win = window.open("<a class=" external" rel="freelink">chrome://myextension/content/about.xul</a>",
- "aproposDeMonExtension", "chrome,centerscreen");
-</pre>
-<p>Le premier paramètre de <code>window.open</code> est l'URI du fichier XUL décrivant la fenêtre et son contenu.
-</p><p>Le second paramètre est le nom de la fenêtre ; il peut être utilisé par des liens ou formulaires dans leur attribut <code>target</code>. Il est différent du titre de la fenêtre tel que vu par l'utilisateur, qui est spécifié en XUL.
-</p><p>Le troisième paramètre, facultatif, est une liste de fonctionnalités spéciales que la fenêtre doit avoir.
-</p><p>La fonction <code>window.openDialog</code> fonctionne de manière similaire, mais permet de spécifier des paramètres optionnels qui peuvent être référencés depuis le code JavaScript. Elle gère également les fonctionnalités de la fenêtre légèrement différemment, supposant notamment toujours que la fonctionnalité <code>dialog</code> est spécifiée.
-</p><p>Si l'objet <code>window</code> est indisponible (par exemple, lors de l'ouverture d'une fenêtre depuis le code d'un composant XPCOM), vous pouvez avoir besoin de l'interface <a href="fr/NsIWindowWatcher">nsIWindowWatcher</a>. Ses paramètres sont similaires à ceux de <code>window.open</code>, en fait l'implémentation de <code>window.open</code> appelle les méthodes de <code>nsIWindowWatcher</code>.
-</p>
-<pre class="eval">var ww = Components.classes["@mozilla.org/embedcomp/window-watcher;1"]
- .getService(Components.interfaces.nsIWindowWatcher);
-var win = ww.openWindow(null, "<a class=" external" rel="freelink">chrome://myextension/content/about.xul</a>",
- "aboutMyExtension", "chrome,centerscreen", null);
-</pre>
-<h3 id="L.27objet_window" name="L.27objet_window"> L'objet window </h3>
-<p>Notez la variable <code>win</code> dans la section ci-dessus, à laquelle est assignée la valeur de retour de <code>window.open</code>. Elle peut être utilisée pour accéder à la fenêtre ouverte. La valeur renvoyée par <code>window.open</code> (et les méthodes similaires) est un objet <code><a class="external" href="http://xulplanet.com/references/objref/Window.html">Window</a></code> (habituellement <code><a class="external" href="http://xulplanet.com/references/objref/ChromeWindow.html">ChromeWindow</a></code>), du même type que la variable <code>window</code>.
-</p><p>Du point de vue technique, elle implémente un certain nombre d'interfaces, dont <code><a href="fr/NsIDOMJSWindow">nsIDOMJSWindow</a></code> et <code><a href="fr/NsIDOMWindowInternal">nsIDOMWindowInternal</a></code>, mais elle contient également les propriétés définies par l'utilisateur pour les variables globales et fonctions de la fenêtre. Donc, par exemple, pour accéder au document DOM correspondant à la fenêtre, vous pouvez utiliser <code><a href="fr/DOM/window.document">win.document</a></code>.
-</p><p>Notez cependant que le retour de l'appel à <code>open()</code> se fait <i>avant</i> que la fenêtre ne soit totalement chargée, donc certains appels comme <code><a href="fr/DOM/document.getElementById">win.document.getElementById()</a></code> ne fonctionneront pas. Pour contourner cette difficulté, vous pouvez déplacer le code d'initialisation vers un gestionnaire <code>load</code> de la fenêtre ouverte, ou passer une fonction de callback comme décrit <a href="#callback">ci-dessous</a>.
-</p><p>Vous pouvez obtenir un objet <code>Window</code> depuis un document à l'aide de <code><a href="fr/DOM/document.defaultView">document.defaultView</a></code>.
-</p>
-<h3 id="Fen.C3.AAtres_de_contenu" name="Fen.C3.AAtres_de_contenu"> Fenêtres de contenu </h3>
-<p>Lorsqu'une fenêtre XUL contient un élément d'interface capable d'afficher une page, comme <code>&lt;browser&gt;</code> ou <code>&lt;iframe&gt;</code>, le document à l'intérieur de celui-ci est, naturellement, séparé du document de la fenêtre chrome elle-même. Il y a également un objet <code>Window</code> pour chaque sous-document, bien qu'il n'y ait pas de fenêtre dans le sens commun pour le sous-document.
-</p><p>C'est également valable pour les fenêtres chrome ouvertes dans un onglet ou &lt;tt&gt;&lt;tabbrowser&gt;&lt;/tt&gt;. Les éléments au dessus du document chrome ouvert dans l'onglet sont séparés de votre document chrome.
-</p><p>Les deux sous-sections qui suivent décrivent la manière de passer les frontières du contenu chrome dans les deux sens, c'est-à-dire d'accéder à des éléments qui sont les ancêtres de votre document chrome, ou des éléments qui sont descendants de votre document chrome, mais néanmoins dans un contexte différent.
-</p>
-<h4 id="Acc.C3.A8s_aux_documents_contenus" name="Acc.C3.A8s_aux_documents_contenus"> Accès aux documents contenus </h4>
-<p>Supposons que vous avez un document chargé dans un élément &lt;tt&gt;&lt;tabbrowser&gt;&lt;/tt&gt;, &lt;tt&gt;&lt;browser&gt;&lt;/tt&gt; ou &lt;tt&gt;&lt;iframe&gt;&lt;/tt&gt; dans votre document.
-Vous pouvez utiliser <code>browser.contentDocument</code> pour accéder à ce document et <code>browser.contentWindow</code> pour accéder à l'objet <code>Window</code> de ce document. </p><p>Il est nécessaire de prendre en compte la fonctionnalité <a href="fr/XPCNativeWrapper">XPCNativeWrapper</a> si l'on n'opère pas dans du <a href="fr/XPCNativeWrapper#Qu.27est-ce_qu.27une_fen.C3.AAtre_s.C3.A9curis.C3.A9e_.3F">contenu de confiance</a>.
-</p><p>Dans le cas de <code>&lt;browser type="content-primary"/&gt;</code>, vous pouvez utiliser la propriété raccourcie <a href="fr/DOM/window.content">content</a> pour accéder à l'objet <code>Window</code> du document contenu. Par exemple :
-</p>
-<pre class="eval">// affiche le titre du document affiché dans l'élément de contenu principal
-alert(content.document.title);
-</pre>
-<p>Par exemple, vous pouvez utiliser <code>content.document</code> dans un overlay à browser.xul pour accéder à la page Web dans l'onglet sélectionné.
-</p>
-<div class="note">Certains exemples utilisent <code>_content</code> au lieu de <code>content</code>. La première forme est déconseillée depuis longtemps, et vous devriez utiliser <code>content</code> dans tout nouveau code.</div>
-<h4 id="Acc.C3.A8s_.C3.A0_un_document_dans_un_panneau_lat.C3.A9ral" name="Acc.C3.A8s_.C3.A0_un_document_dans_un_panneau_lat.C3.A9ral"> Accès à un document dans un panneau latéral </h4>
-<p>Firefox permet d'accéder à un panneau latéral, qui est implémenté comme un élément <code>&lt;browser&gt;</code> avec <code>id="sidebar"</code>. Pour accéder aux éléments et variables à l'intérieur du panneau, il est nécessaire d'utilier <code>document.getElementById("sidebar").contentDocument</code> ou <code>.contentWindow</code>, comme pour l'{{ Anch("Accès aux documents contenus") }}.
-</p>
-<h4 id="Acc.C3.A8s_aux_.C3.A9l.C3.A9ments_du_document_de_la_fen.C3.AAtre_principale_depuis_une_fen.C3.AAtre_fille" name="Acc.C3.A8s_aux_.C3.A9l.C3.A9ments_du_document_de_la_fen.C3.AAtre_principale_depuis_une_fen.C3.AAtre_fille"> Accès aux éléments du document de la fenêtre principale depuis une fenêtre fille </h4>
-<p>Le cas opposé est l'accès au document chrome depuis un script privilégié chargé dans un &lt;tt&gt;&lt;browser&gt;&lt;/tt&gt; ou un &lt;tt&gt;&lt;iframe&gt;&lt;/tt&gt;.
-</p><p>Un cas typique où cela peut s'avérer utile est lorsque du code exécuté dans un panneau latéral de la fenêtre principale de Firefox doit pouvoir accéder aux éléments de cette fenêtre.
-</p><p>L'arbre DOM, tel qu'il apparaît dans l'<a href="fr/Inspecteur_DOM">Inspecteur DOM</a>, peut ressembler à ceci :
-</p>
-<pre class="eval">#document
- window main-window
- ...
- browser
- #document
- window myExtensionWindow
-</pre>
-<p>où la fenêtre fille est celle où se trouve votre code.
-</p><p>Le but est d'accéder aux éléments situés au dessus du document chrome, c'est-à-dire de sortir de la fenêtre chrome et d'accéder à ses ancêtres. Cela peut se faire à l'aide de l'instruction suivante :
-</p>
-<pre class="eval">var mainWindow = window.QueryInterface(Components.interfaces.nsIInterfaceRequestor)
- .getInterface(Components.interfaces.nsIWebNavigation)
- .QueryInterface(Components.interfaces.nsIDocShellTreeItem)
- .rootTreeItem
- .QueryInterface(Components.interfaces.nsIInterfaceRequestor)
- .getInterface(Components.interfaces.nsIDOMWindow)
-</pre>
-<p>Ceci permet de passer les limites du contenu chrome, et renvoie l'objet de la fenêtre principale.
-</p>
-<h3 id="Recherche_de_fen.C3.AAtres_d.C3.A9j.C3.A0_ouvertes" name="Recherche_de_fen.C3.AAtres_d.C3.A9j.C3.A0_ouvertes"> Recherche de fenêtres déjà ouvertes </h3>
-<p>Le composant XPCOM window mediator (interface <a href="fr/NsIWindowMediator">nsIWindowMediator</a>) fournit des informations à propos des fenêtres existantes. Deux de ses méthodes sont souvent utilisées pour obtenir des informations à propos des fenêtres actuellement ouvertes : <code>getMostRecentWindow</code> et <code>getEnumerator</code>. Consultez la page <a href="fr/NsIWindowMediator">nsIWindowMediator</a> pour plus d'informations sur <code>nsIWindowMediator</code>.
-<span class="comment">=== Example: Opening a window only if it's not opened already === XXX TBD</span>
-</p>
-<h3 id="Transfert_de_donn.C3.A9es_entre_fen.C3.AAtres" name="Transfert_de_donn.C3.A9es_entre_fen.C3.AAtres"> Transfert de données entre fenêtres </h3>
-<p>Lorsque l'on travaille avec plusieurs fenêtres, il est souvent nécessaire de faire passer des informations d'une fenêtre à une autre. Comme des fenêtres séparées ont des documents DOM et objets globaux différents pour les scripts, il n'est pas possible d'utiliser une seule variable globale JavaScript dans des scripts de fenêtres différentes. </p><p>Plusieurs techniques existent, de puissance et de simplicité variables, pour partager des données. Nous les présenterons de la plus simple à la plus complexe dans les quelques sections suivantes.
-</p>
-<h4 id="Exemple_1_:_Passage_de_donn.C3.A9es_.C3.A0_une_fen.C3.AAtre_.C3.A0_son_ouverture_avec_openDialog" name="Exemple_1_:_Passage_de_donn.C3.A9es_.C3.A0_une_fen.C3.AAtre_.C3.A0_son_ouverture_avec_openDialog"> Exemple 1 : Passage de données à une fenêtre à son ouverture avec <code>openDialog</code> </h4>
-<p>Lorsque vous ouvrez une fenêtre à l'aide de <code><a href="fr/DOM/window.openDialog">window.openDialog</a></code> ou <code>nsIWindowWatcher.openWindow</code>, vous pouvez fournir un nombre d'<i>arguments</i> arbitraires à cette fenêtre. Les arguments sont des objets JavaScript simples, accessibles au travers de la propriété <code><a href="fr/DOM/window.arguments">window.arguments</a></code> dans la fenêtre ouverte.
-</p><p>Dans cet exemple, on utilise <code>window.openDialog</code> pour ouvrir un dialogue de progression. On lui passe le texte d'état ainsi que les valeurs maximale et courante de la barre de progression. (Notez qu'utiliser <code>nsIWindowWatcher.openWindow</code> est un peu moins trivial <a class="external" href="http://lxr.mozilla.org/seamonkey/source/extensions/help/resources/content/contextHelp.js#70">.)
-</a></p><p><a class="external" href="http://lxr.mozilla.org/seamonkey/source/extensions/help/resources/content/contextHelp.js#70">Code d'ouverture :
-</a></p><a class="external" href="http://lxr.mozilla.org/seamonkey/source/extensions/help/resources/content/contextHelp.js#70">
-</a><pre class="eval"><a class="external" href="http://lxr.mozilla.org/seamonkey/source/extensions/help/resources/content/contextHelp.js#70">window.openDialog("</a><a class=" external" rel="freelink">chrome://test/content/progress.xul</a>",
- "myProgress", "chrome,centerscreen",
- {status: "Lecture des données distantes", maxProgress: 50, progress: 10} );
-</pre>
-<p><code>progress.xul</code>:
-</p>
-<pre>&lt;?xml version="1.0"?&gt;
-&lt;?xml-stylesheet href="chrome://global/skin/" type="text/css"?&gt;
-
-&lt;window onload="onLoad();" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"&gt;
-&lt;script&gt;&lt;![CDATA[
- var gStatus, gProgressMeter;
- var maxProgress = 100;
- function onLoad() {
- gStatus = document.getElementById("status");
- gProgressMeter = document.getElementById("progressmeter");
-
- if("arguments" in window &amp;&amp; window.arguments.length &gt; 0) {
- maxProgress = window.arguments[0].maxProgress;
- setProgress(window.arguments[0].progress);
- setStatus(window.arguments[0].status);
- }
- }
-
- function setProgress(value) {
- gProgressMeter.value = 100 * value / maxProgress;
- }
-
- function setStatus(text) {
- gStatus.value = "Status: " + text + "...";
- }
-]]&gt;&lt;/script&gt;
-
-&lt;label id="status" value="(Aucun état)"/&gt;
-&lt;hbox&gt;
- &lt;progressmeter id="progressmeter" mode="determined"/&gt;
- &lt;button label="Annuler" oncommand="close();"/&gt;
-&lt;/hbox&gt;
-
-&lt;/window&gt;
-</pre>
-<h4 id="Exemple_2_:_Interaction_avec_la_fen.C3.AAtre_ouvrante" name="Exemple_2_:_Interaction_avec_la_fen.C3.AAtre_ouvrante"> Exemple 2 : Interaction avec la fenêtre ouvrante </h4>
-<p>Il arrive qu'une fenêtre ouverte doive interagir avec celle qui a déclenché son ouverture (opener). Par exemple, cela peut avoir pour but de lui indiquer que l'utilisateur a effectué des changements dans la fenêtre. On peut trouver la fenêtre qui en a ouvert une autre à l'aide de sa propriété <a href="fr/DOM/window.opener">window.opener</a> ou via une fonction de callback passée à la fenêtre, de la façon décrite dans la section précédente.
-</p><p>Ajoutons un peu de code à l'exemple précédent pour avertir la fenêtre ouvrante lorsque l'utilisateur appuie sur Annuler dans la fenêtre de progression.
-</p>
-<ul><li> <b>Avec <code>window.opener</code>.</b> La propriété <code>opener</code> renvoie {{ Anch("l\'objet Window") }} pour la fenêtre qui a ouvert la fenêtre courante. Si nous sommes certains que la fenêtre qui a ouvert le dialogue de progression a déclaré la fonction <code>cancelOperation</code>, nous pouvons utiliser <code>window.opener.cancelOperation();</code> pour lui envoyer une notification :
-</li></ul>
-<pre class="eval">&lt;button label="Annuler" oncommand="<b>opener.cancelOperation();</b> close();"/&gt;
-</pre>
-<ul><li> <b><b>Avec une fonction de callback.</b> Une autre manière de faire est de passer une fonction de callback depuis la fenêtre ouvrante vers le dialogue de progression de la même manière que nous avons passé le message d'état dans l'exemple précédent :
-</b></li></ul><b>
-<pre class="eval">function onCancel() {
- alert("Opération annulée.");
-}
-
-...
-
-window.openDialog("<a class=" external" rel="freelink">chrome://test/content/progress.xul</a>",
- "myProgress", "chrome,centerscreen",
- {status: "Lecture des données distantes", maxProgress: 50, progress: 10},
- <b>onCancel</b>);
-</pre>
-<p>Le dialogue de progression peut alors exécuter le callback de cette façon :
-</p>
-<pre class="eval">&lt;button label="Cancel" oncommand="<b>window.arguments[1]();</b> close();"/&gt;
-</pre>
-<h4 id="Exemple_3_:_Utilisation_de_nsIWindowMediator_lorsque_opener_ne_suffit_pas" name="Exemple_3_:_Utilisation_de_nsIWindowMediator_lorsque_opener_ne_suffit_pas"> Exemple 3 : Utilisation de <code>nsIWindowMediator</code> lorsque <code>opener</code> ne suffit pas </h4>
-<p>La propriété <code>window.opener</code> est très facile à utiliser, mais elle n'est utile que lorsque vous pouvez vous assurer que la fenêtre a été ouverte depuis un endroit connu. Dans des cas plus compliqués, vous devez utiliser l'interface <code><a href="fr/NsIWindowMediator">nsIWindowMediator</a></code> dont il est fait état plus haut.
-</p><p>Une situation dans laquelle <code>nsIWindowMediator</code> peut être utilisé est dans la fenêtre d'options d'une extension. Supposons que vous développez une extension au navigateur qui consiste en un overlay sur <code>browser.xul</code> et une fenêtre d'options. Supposons que l'overlay contient un bouton pour ouvrir la fenêtre d'options de l'extension, qui doit lire certaines données depuis la fenêtre de navigation. Comme vous vous en souvenez peut-être, le gestionnaire d'extensions de Firefox peut également être utilisé pour ouvrir votre fenêtre d'options.
-</p><p>Cela signifie que la valeur de <code>window.opener</code> dans votre dialogue d'options n'est pas forcément la fenêtre de navigation, il peut s'agir à la place de la fenêtre du gestionnaire d'extensions. Vous pourriez vérifier la propriété <code>location</code> de l'<code>opener</code> et utiliser <code>opener.opener</code> dans le cas de la fenêtre du gestionnaire d'extensions, mais une meilleure manière de faire est d'utiliser <code>nsIWindowMediator</code> :
-</p>
-<pre class="eval">var wm = Components.classes["@mozilla.org/appshell/window-mediator;1"]
- .getService(Components.interfaces.nsIWindowMediator);
-var browserWindow = wm.getMostRecentWindow("navigator:browser");
-// lecture de valeurs depuis |browserWindow|
-</pre>
-<p>Il peut être tentant d'utiliser une technique similaire pour appliquer les changements effectués par l'utilisateur dans la fenêtre d'options, mais une meilleur manière de le faire est d'utiliser les <a class="external" href="http://kb.mozillazine.org/Dev_:_Using_preferences#Using_preferences_observers">observateurs de préférences</a>.
-</p>
-<h3 id="Partage_de_donn.C3.A9es_avanc.C3.A9" name="Partage_de_donn.C3.A9es_avanc.C3.A9"> Partage de données avancé </h3>
-<p>Le code ci-dessus est utile lorsque vous avez besoin de passer des données d'une fenêtre à une autre ou vers un ensemble de fenêtres, mais dans certains cas vous voulez simplement partager une variable JavaScript commune à différentes fenêtres. Vous pourriez déclarer une variable locale dans chaque fenêtre ainsi que les fonctions nécessaires pour garder les « instances » de la variable synchronisées entre les différentes fenêtres, mais par chance il existe une meilleure solution.
-</p><p>Pour déclarer une variable partagé, il est nécessaire de trouver un endroit qui existe tout au long de l'exécution de l'application et qui est facilement accessible depuis le code dans différentes fenêtres du chrome. En fait, quelques endroits comme celui-ci existent.
-</p>
-<h4 id="Utilisation_d.27un_composant_singleton_XPCOM" name="Utilisation_d.27un_composant_singleton_XPCOM"> Utilisation d'un composant singleton XPCOM </h4>
-<p>La manière la plus propre et la plus puissante est de définir votre propre composant XPCOM (vous pouvez en écrire un en JavaScript) et y accéder depuis n'importe quel endroit à l'aide d'un appel à <code>getService</code> :
-</p>
-<pre class="eval">Components.classes["@domain.org/mycomponent;1"].getService();
-</pre>
-<ul><li> Avantages :
-<ul><li> C'est la « manière propre. »
-</li><li> On peut stocker des objets JavaScripts arbitraires dans le composant.
-</li><li> La visibilité n'est pas partagée entre composants, donc pas d'inquiétude à avoir sur des collisions de noms.
-</li></ul>
-</li><li> Inconvénients :
-<ul><li> Vous ne pouvez pas utiliser l'objet <code><a href="fr/DOM/window">window</a></code>, ses membres, comme <code>alert</code> et <code>open</code>, ainsi que beaucoup d'objets disponibles à l'intérieur d'une fenêtre. La fonctionnalité n'est pas perdue, cependant, vous devrez juste utiliser les composants XPCOM directement au lieu d'utiliser des raccourcis pratiques. Bien sûr, cela n'a pas d'importance si vous ne faites que stocker des données dans le composant.
-</li><li> Apprendre à créer des composants XPCOM prend du temps.
-</li></ul>
-</li></ul>
-<p>Plusieurs articles et livres sur la création de composants XPCOM existent en ligne.
-</p>
-<h4 id="Stockage_de_donn.C3.A9es_partag.C3.A9es_dans_les_pr.C3.A9f.C3.A9rences" name="Stockage_de_donn.C3.A9es_partag.C3.A9es_dans_les_pr.C3.A9f.C3.A9rences"> Stockage de données partagées dans les préférences </h4>
-<p>Si vous avez simplement besoin de stocker une chaîne ou un nombre, l'écriture d'un composant XPCOM complet peut être une complication inutile. Vous pouvez utiliser le <a class="external" href="http://www.xulplanet.com/references/xpcomref/ifaces/nsIPrefService.html">service de préférences</a> dans de tels cas.
-</p>
-<ul><li> Avantages :
-<ul><li> Il est assez aisé de stocker des données simples.
-</li></ul>
-</li><li> Inconvénients :
-<ul><li> Ne peut pas être utilisé pour stocker des données complexes.
-</li><li> L'abus du service de préférences sans nettoyer ses traces après utilisation peut causer un accroissement important de la taille du fichier &lt;tt&gt;prefs.js&lt;/tt&gt; et ralentir le démarrage de l'application.
-</li></ul>
-</li></ul>
-<p>Consultez <a href="fr/Extraits_de_code/Pr%c3%a9f%c3%a9rences">Extraits de code:Préférences</a> pour une description détaillée du système de préférences et des exemples de code.
-</p><p>Exemple :
-</p>
-<pre class="eval">var prefs = Components.classes["@mozilla.org/preferences-service;1"]
- .getService(Components.interfaces.nsIPrefService);
-var branch = prefs.getBranch("extensions.myext.");
-var var1 = branch.getBoolPref("var1"); // obtient une préférence
-</pre>
-<h4 id="L.27astuce_de_la_fen.C3.AAtre_cach.C3.A9e" name="L.27astuce_de_la_fen.C3.AAtre_cach.C3.A9e"> L'astuce de la fenêtre cachée </h4>
-<p>Certains auteurs d'extensions utilisent la fenêtre cachée spéciale (<i>hidden window</i>) pour stocker leurs données et leur code. La fenêtre cachée est similaire à une fenêtre normale, mais contrairement à celles-ci elle est disponible à tout moment de la vie de l'application et n'est pas visible pour l'utilisateur. Le document chargé dans cette fenêtre est <code><a class=" external" rel="freelink">chrome://browser/content/hiddenWindow.xul</a></code> sous Mac OS X où il est utilisé pour implémenter les menus et <code><a class=" external" rel="freelink">resource://gre/res/hiddenWindow.html</a></code> pour les autres systèmes d'exploitation. À terme, cette fenêtre sera retirée des systèmes d'exploitation où elle n'est pas nécessaire ({{ Bug(71895) }}).
-</p><p>Une référence à la fenêtre cachée peut être obtenue depuis l'interface <code>nsIAppShellService</code>. Comme tout objet DOM, elle vous permet de définir des propriétés personnalisées :
-</p>
-<pre class="eval">var hiddenWindow = Components.classes["@mozilla.org/appshell/appShellService;1"]
- .getService(Components.interfaces.nsIAppShellService)
- .hiddenDOMWindow;
-hiddenWindow.myExtensionStatus = "ready";
-</pre>
-<p>Cependant, les objets placés dans la fenêtre cachée appartiendront toujours à la fenêtre qui les a créés. Si une méthode d'un tel objet accède à des propriétés de l'objet <code>window</code> comme <code>XMLHttpRequest</code>, vous pouvez être confronté à un message d'erreur parce que la fenêtre originale a été fermée. Pour éviter cela, vous pouvez charger les objets avec un fichier script dans la fenêtre cachée:
-</p>
-<pre class="eval">var hiddenWindow = Components.classes["@mozilla.org/appshell/appShellService;1"]
- .getService(Components.interfaces.nsIAppShellService)
- .hiddenDOMWindow;
-hiddenWnd.Components.classes["@mozilla.org/moz/jssubscript-loader;1"]
- .getService(Components.interfaces.mozIJSSubScriptLoader)
- .loadSubScript("<a class=" external" rel="freelink">chrome://my-extension/content/globalObject.js</a>");
-hiddenWnd.myExtensionObject.doSomething();
-</pre>
-<p>Où <code>globalObject.js</code> contient quelque chose comme :
-</p>
-<pre class="eval">var myExtensionObject = {
- doSomething: function() {
- return new XMLHttpRequest();
- }
-}
-</pre>
-<ul><li> Avantages :
-<ul><li> Si vous exécutez du code dans la fenêtre cachée, l'objet <code>window</code> et ses propriétés sont disponibles, contrairement au cas du composant.
-</li><li> Vous pouvez stocker des objets JavaScript arbitraires dans la fenêtre cachée.
-</li></ul>
-</li><li> Inconvénients :
-<ul><li> C'est du bidouillage.
-</li><li> La même fenêtre est utilisée par différentes extensions, il faut utiliser de longs noms de variables pour éviter les conflits.
-</li><li> La fenêtre cachée peut disparaître des versions Windows et Linux.
-</li></ul>
-</li></ul>
-<h3 id="Voir_aussi" name="Voir_aussi"> Voir aussi </h3>
-<p><a href="fr/Extraits_de_code/Dialogues_et_invites">Extraits de code:Dialogues et invites</a>
-</p><p><br>
-</p>
-<div class="noinclude">
-</div>
-{{ languages( { "en": "en/Working_with_windows_in_chrome_code", "es": "es/Trabajar_con_ventanas_desde_c\u00f3digo_chrome", "ja": "ja/Working_with_windows_in_chrome_code" } ) }}</b>