diff options
author | Florian Merz <me@fiji-flo.de> | 2021-02-11 12:36:08 +0100 |
---|---|---|
committer | Florian Merz <me@fiji-flo.de> | 2021-02-11 12:36:08 +0100 |
commit | 39f2114f9797eb51994966c6bb8ff1814c9a4da8 (patch) | |
tree | 66dbd9c921f56e440f8816ed29ac23682a1ac4ef /files/fr/mozilla | |
parent | 8260a606c143e6b55a467edf017a56bdcd6cba7e (diff) | |
download | translated-content-39f2114f9797eb51994966c6bb8ff1814c9a4da8.tar.gz translated-content-39f2114f9797eb51994966c6bb8ff1814c9a4da8.tar.bz2 translated-content-39f2114f9797eb51994966c6bb8ff1814c9a4da8.zip |
unslug fr: move
Diffstat (limited to 'files/fr/mozilla')
-rw-r--r-- | files/fr/mozilla/add-ons/webextensions/add_a_button_to_the_toolbar/index.html (renamed from files/fr/mozilla/add-ons/webextensions/ajouter_un_bouton_a_la_barre_d_outils/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/add-ons/webextensions/alternative_distribution_options/add-ons_for_desktop_apps/index.html | 30 | ||||
-rw-r--r-- | files/fr/mozilla/add-ons/webextensions/alternative_distribution_options/add-ons_in_the_enterprise/index.html | 166 | ||||
-rw-r--r-- | files/fr/mozilla/add-ons/webextensions/alternative_distribution_options/index.html | 68 | ||||
-rw-r--r-- | files/fr/mozilla/add-ons/webextensions/alternative_distribution_options/sideloading_add-ons/index.html | 134 | ||||
-rw-r--r-- | files/fr/mozilla/add-ons/webextensions/api/devtools/inspectedwindow/eval/index.html (renamed from files/fr/mozilla/add-ons/webextensions/api/devtools.inspectedwindow/eval/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/add-ons/webextensions/api/devtools/inspectedwindow/index.html (renamed from files/fr/mozilla/add-ons/webextensions/api/devtools.inspectedwindow/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/add-ons/webextensions/api/devtools/inspectedwindow/reload/index.html (renamed from files/fr/mozilla/add-ons/webextensions/api/devtools.inspectedwindow/reload/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/add-ons/webextensions/api/devtools/inspectedwindow/tabid/index.html (renamed from files/fr/mozilla/add-ons/webextensions/api/devtools.inspectedwindow/tabid/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/add-ons/webextensions/api/devtools/network/gethar/index.html (renamed from files/fr/mozilla/add-ons/webextensions/api/devtools.network/gethar/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/add-ons/webextensions/api/devtools/network/index.html (renamed from files/fr/mozilla/add-ons/webextensions/api/devtools.network/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/add-ons/webextensions/api/devtools/network/onnavigated/index.html (renamed from files/fr/mozilla/add-ons/webextensions/api/devtools.network/onnavigated/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/add-ons/webextensions/api/devtools/network/onrequestfinished/index.html (renamed from files/fr/mozilla/add-ons/webextensions/api/devtools.network/onrequestfinished/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/add-ons/webextensions/api/devtools/panels/create/index.html (renamed from files/fr/mozilla/add-ons/webextensions/api/devtools.panels/create/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/add-ons/webextensions/api/devtools/panels/elements/index.html (renamed from files/fr/mozilla/add-ons/webextensions/api/devtools.panels/elements/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/add-ons/webextensions/api/devtools/panels/elementspanel/createsidebarpane/index.html (renamed from files/fr/mozilla/add-ons/webextensions/api/devtools.panels/elementspanel/createsidebarpane/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/add-ons/webextensions/api/devtools/panels/elementspanel/index.html (renamed from files/fr/mozilla/add-ons/webextensions/api/devtools.panels/elementspanel/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/add-ons/webextensions/api/devtools/panels/elementspanel/onselectionchanged/index.html (renamed from files/fr/mozilla/add-ons/webextensions/api/devtools.panels/elementspanel/onselectionchanged/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/add-ons/webextensions/api/devtools/panels/extensionpanel/index.html (renamed from files/fr/mozilla/add-ons/webextensions/api/devtools.panels/extensionpanel/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/add-ons/webextensions/api/devtools/panels/extensionsidebarpane/index.html (renamed from files/fr/mozilla/add-ons/webextensions/api/devtools.panels/extensionsidebarpane/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/add-ons/webextensions/api/devtools/panels/extensionsidebarpane/onhidden/index.html (renamed from files/fr/mozilla/add-ons/webextensions/api/devtools.panels/extensionsidebarpane/onhidden/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/add-ons/webextensions/api/devtools/panels/extensionsidebarpane/onshown/index.html (renamed from files/fr/mozilla/add-ons/webextensions/api/devtools.panels/extensionsidebarpane/onshown/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/add-ons/webextensions/api/devtools/panels/extensionsidebarpane/setexpression/index.html (renamed from files/fr/mozilla/add-ons/webextensions/api/devtools.panels/extensionsidebarpane/setexpression/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/add-ons/webextensions/api/devtools/panels/extensionsidebarpane/setobject/index.html (renamed from files/fr/mozilla/add-ons/webextensions/api/devtools.panels/extensionsidebarpane/setobject/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/add-ons/webextensions/api/devtools/panels/extensionsidebarpane/setpage/index.html (renamed from files/fr/mozilla/add-ons/webextensions/api/devtools.panels/extensionsidebarpane/setpage/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/add-ons/webextensions/api/devtools/panels/index.html (renamed from files/fr/mozilla/add-ons/webextensions/api/devtools.panels/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/add-ons/webextensions/api/devtools/panels/onthemechanged/index.html (renamed from files/fr/mozilla/add-ons/webextensions/api/devtools.panels/onthemechanged/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/add-ons/webextensions/api/devtools/panels/themename/index.html (renamed from files/fr/mozilla/add-ons/webextensions/api/devtools.panels/themename/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/add-ons/webextensions/api/menus/menus.overridecontext()/index.html | 62 | ||||
-rw-r--r-- | files/fr/mozilla/add-ons/webextensions/api/proxy/onerror/index.html (renamed from files/fr/mozilla/add-ons/webextensions/api/proxy/onproxyerror/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/add-ons/webextensions/api/proxy/settings/index.html (renamed from files/fr/mozilla/add-ons/webextensions/api/browsersettings/proxyconfig/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/add-ons/webextensions/api/userscripts/apiscript/index.html | 43 | ||||
-rw-r--r-- | files/fr/mozilla/add-ons/webextensions/api/userscripts/registereduserscript/registereduserscript.unregister()/index.html | 49 | ||||
-rw-r--r-- | files/fr/mozilla/add-ons/webextensions/api/userscripts/working_with_userscripts/index.html (renamed from files/fr/mozilla/add-ons/webextensions/api/userscripts/travailler_avec_userscripts/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/add-ons/webextensions/bonnes_pratiques_pour_la_mise_a_jour_de_votre_extension/index.html | 31 | ||||
-rw-r--r-- | files/fr/mozilla/add-ons/webextensions/browser_support_for_javascript_apis/index.html (renamed from files/fr/mozilla/add-ons/webextensions/compatibilité_navigateurs_api_javascript/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/add-ons/webextensions/build_a_cross_browser_extension/index.html (renamed from files/fr/mozilla/add-ons/webextensions/construction_extension_cross_browser/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/add-ons/webextensions/choisissez_une_version_firefox_pour_le_developpement_extensions_web/index.html | 218 | ||||
-rw-r--r-- | files/fr/mozilla/add-ons/webextensions/chrome_incompatibilities/index.html (renamed from files/fr/mozilla/add-ons/webextensions/incompatibilités_chrome/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/add-ons/webextensions/comparaison_avec_le_sdk_add-on/index.html | 746 | ||||
-rw-r--r-- | files/fr/mozilla/add-ons/webextensions/compte_developpeurs/index.html | 26 | ||||
-rw-r--r-- | files/fr/mozilla/add-ons/webextensions/debugging_(before_firefox_50)/index.html (renamed from files/fr/mozilla/add-ons/webextensions/debogage_(avant_firefox_50)/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/add-ons/webextensions/demander_les_bonnes_permissions/index.html | 367 | ||||
-rw-r--r-- | files/fr/mozilla/add-ons/webextensions/demandes_de_permission/index.html | 134 | ||||
-rw-r--r-- | files/fr/mozilla/add-ons/webextensions/differences_between_api_implementations/index.html (renamed from files/fr/mozilla/add-ons/webextensions/differences_entre_les_implementations_api/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/add-ons/webextensions/examples/index.html (renamed from files/fr/mozilla/add-ons/webextensions/exemples/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/add-ons/webextensions/experience_utilisateur_bonnes_pratiques/index.html | 190 | ||||
-rw-r--r-- | files/fr/mozilla/add-ons/webextensions/extending_the_developer_tools/index.html (renamed from files/fr/mozilla/add-ons/webextensions/extension_des_outils_de_developpement/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/add-ons/webextensions/implement_a_settings_page/index.html (renamed from files/fr/mozilla/add-ons/webextensions/ajouter_une_page_de_paramètres/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/add-ons/webextensions/installation_temporaire_dans_firefox/index.html | 56 | ||||
-rw-r--r-- | files/fr/mozilla/add-ons/webextensions/interact_with_the_clipboard/index.html (renamed from files/fr/mozilla/add-ons/webextensions/interagir_avec_le_presse_papier/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/add-ons/webextensions/intercept_http_requests/index.html (renamed from files/fr/mozilla/add-ons/webextensions/intercepter_requêtes_http/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/add-ons/webextensions/manifest.json/author/index.html (renamed from files/fr/mozilla/add-ons/webextensions/manifest.json/auteur/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/add-ons/webextensions/manifest.json/background/index.html (renamed from files/fr/mozilla/add-ons/webextensions/manifest.json/arriere-plan/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/add-ons/webextensions/manifest.json/theme_experiment/index.html (renamed from files/fr/mozilla/add-ons/webextensions/manifest.json/theme_experimentation/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/add-ons/webextensions/native_manifests/index.html (renamed from files/fr/mozilla/add-ons/webextensions/manifests_native/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/add-ons/webextensions/portage_d_une_extension_firefox_heritee/index.html | 85 | ||||
-rw-r--r-- | files/fr/mozilla/add-ons/webextensions/publishing_your_webextension/index.html | 58 | ||||
-rw-r--r-- | files/fr/mozilla/add-ons/webextensions/que_signifie_le_rejet_d_une_revision_pour_les_utilisateurs/index.html | 44 | ||||
-rw-r--r-- | files/fr/mozilla/add-ons/webextensions/safely_inserting_external_content_into_a_page/index.html (renamed from files/fr/mozilla/add-ons/webextensions/inserer_en_toute_securite_du_contenu_externe_dans_une_page/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/add-ons/webextensions/securite_bonne_pratique/index.html | 63 | ||||
-rw-r--r-- | files/fr/mozilla/add-ons/webextensions/sharing_objects_with_page_scripts/index.html (renamed from files/fr/mozilla/add-ons/webextensions/partage_d_objets_avec_des_scripts_de_page/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/add-ons/webextensions/test_des_fonctionnalites_persistantes_et_de_redemarrage/index.html | 124 | ||||
-rw-r--r-- | files/fr/mozilla/add-ons/webextensions/user_interface/context_menu_items/index.html (renamed from files/fr/mozilla/add-ons/webextensions/user_interface/elements_menu_contextuel/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/add-ons/webextensions/user_interface/devtools_panels/index.html (renamed from files/fr/mozilla/add-ons/webextensions/user_interface/panneaux_devtools/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/add-ons/webextensions/user_interface/extension_pages/index.html (renamed from files/fr/mozilla/add-ons/webextensions/user_interface/pages_web_incluses/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/add-ons/webextensions/user_interface/lignes_directrices_en_matiere_accessibilite/index.html | 153 | ||||
-rw-r--r-- | files/fr/mozilla/add-ons/webextensions/user_interface/sidebars/index.html (renamed from files/fr/mozilla/add-ons/webextensions/user_interface/barres_laterales/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/add-ons/webextensions/what_next_/index.html (renamed from files/fr/mozilla/add-ons/webextensions/que_faire_ensuite/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/add-ons/webextensions/work_with_contextual_identities/index.html (renamed from files/fr/mozilla/add-ons/webextensions/travailler_avec_des_identites_contextuelles/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/add-ons/webextensions/work_with_the_cookies_api/index.html (renamed from files/fr/mozilla/add-ons/webextensions/travailler_avec_l_api_cookies/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/add-ons/webextensions/working_with_the_tabs_api/index.html (renamed from files/fr/mozilla/add-ons/webextensions/travailler_avec_l_api_tabs/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/add-ons_bonnes_pratiques_performances_extensions/index.html | 94 | ||||
-rw-r--r-- | files/fr/mozilla/developer_guide/build_instructions/index.html | 108 | ||||
-rw-r--r-- | files/fr/mozilla/developer_guide/introduction/index.html | 24 | ||||
-rw-r--r-- | files/fr/mozilla/developer_guide/so_you_just_built_firefox/index.html (renamed from files/fr/mozilla/developer_guide/vous_venez_juste_de_compiler_firefox/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/firefox/releases/1.5/adapting_xul_applications_for_firefox_1.5/index.html | 33 | ||||
-rw-r--r-- | files/fr/mozilla/firefox/releases/1.5/index.html (renamed from files/fr/mozilla/firefox/versions/1.5/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/firefox/releases/1.5/using_firefox_1.5_caching/index.html | 195 | ||||
-rw-r--r-- | files/fr/mozilla/firefox/releases/11/index.html (renamed from files/fr/mozilla/firefox/versions/11/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/firefox/releases/12/index.html (renamed from files/fr/mozilla/firefox/versions/12/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/firefox/releases/13/index.html (renamed from files/fr/mozilla/firefox/versions/13/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/firefox/releases/15/index.html (renamed from files/fr/mozilla/firefox/versions/15/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/firefox/releases/16/index.html (renamed from files/fr/mozilla/firefox/versions/16/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/firefox/releases/17/index.html (renamed from files/fr/mozilla/firefox/versions/17/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/firefox/releases/17/site_compatibility/index.html (renamed from files/fr/mozilla/firefox/versions/17/site_compatibility/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/firefox/releases/18/index.html (renamed from files/fr/mozilla/firefox/versions/18/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/firefox/releases/18/site_compatibility/index.html (renamed from files/fr/mozilla/firefox/versions/18/site_compatibility/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/firefox/releases/19/index.html (renamed from files/fr/mozilla/firefox/versions/19/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/firefox/releases/19/site_compatibility/index.html (renamed from files/fr/mozilla/firefox/versions/19/site_compatibility/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/firefox/releases/2/index.html (renamed from files/fr/mozilla/firefox/versions/2/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/firefox/releases/2/security_changes/index.html | 32 | ||||
-rw-r--r-- | files/fr/mozilla/firefox/releases/2/updating_extensions/index.html | 47 | ||||
-rw-r--r-- | files/fr/mozilla/firefox/releases/20/index.html (renamed from files/fr/mozilla/firefox/versions/20/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/firefox/releases/20/site_compatibility/index.html (renamed from files/fr/mozilla/firefox/versions/20/site_compatibility/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/firefox/releases/21/index.html (renamed from files/fr/mozilla/firefox/versions/21/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/firefox/releases/21/site_compatibility/index.html (renamed from files/fr/mozilla/firefox/versions/21/site_compatibility/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/firefox/releases/22/index.html (renamed from files/fr/mozilla/firefox/versions/22/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/firefox/releases/22/site_compatibility/index.html (renamed from files/fr/mozilla/firefox/versions/22/site_compatibility/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/firefox/releases/23/index.html (renamed from files/fr/mozilla/firefox/versions/23/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/firefox/releases/23/site_compatibility/index.html (renamed from files/fr/mozilla/firefox/versions/23/site_compatibility/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/firefox/releases/24/index.html (renamed from files/fr/mozilla/firefox/versions/24/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/firefox/releases/24/site_compatibility/index.html (renamed from files/fr/mozilla/firefox/versions/24/site_compatibility/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/firefox/releases/3.5/index.html (renamed from files/fr/mozilla/firefox/versions/3.5/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/firefox/releases/3.6/index.html (renamed from files/fr/mozilla/firefox/versions/3.6/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/firefox/releases/3/dom_improvements/index.html | 35 | ||||
-rw-r--r-- | files/fr/mozilla/firefox/releases/3/full_page_zoom/index.html | 42 | ||||
-rw-r--r-- | files/fr/mozilla/firefox/releases/3/index.html (renamed from files/fr/mozilla/firefox/versions/3/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/firefox/releases/3/notable_bugs_fixed/index.html | 35 | ||||
-rw-r--r-- | files/fr/mozilla/firefox/releases/3/site_compatibility/index.html | 80 | ||||
-rw-r--r-- | files/fr/mozilla/firefox/releases/3/svg_improvements/index.html | 65 | ||||
-rw-r--r-- | files/fr/mozilla/firefox/releases/3/updating_extensions/index.html | 219 | ||||
-rw-r--r-- | files/fr/mozilla/firefox/releases/3/updating_web_applications/index.html | 95 | ||||
-rw-r--r-- | files/fr/mozilla/firefox/releases/3/xul_improvements_in_firefox_3/index.html | 95 | ||||
-rw-r--r-- | files/fr/mozilla/firefox/releases/35/index.html (renamed from files/fr/mozilla/firefox/versions/35/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/firefox/releases/35/site_compatibility/index.html (renamed from files/fr/mozilla/firefox/versions/35/site_compatibility/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/firefox/releases/4/index.html (renamed from files/fr/mozilla/firefox/versions/4/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/firefox/releases/40/index.html (renamed from files/fr/mozilla/firefox/versions/40/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/firefox/releases/40/site_compatibility/index.html (renamed from files/fr/mozilla/firefox/versions/40/site_compatibility/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/firefox/releases/41/index.html (renamed from files/fr/mozilla/firefox/versions/41/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/firefox/releases/41/site_compatibility/index.html (renamed from files/fr/mozilla/firefox/versions/41/site_compatibility/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/firefox/releases/5/index.html (renamed from files/fr/mozilla/firefox/versions/5/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/firefox/releases/50/index.html (renamed from files/fr/mozilla/firefox/versions/50/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/firefox/releases/59/index.html (renamed from files/fr/mozilla/firefox/versions/59/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/firefox/releases/6/index.html (renamed from files/fr/mozilla/firefox/versions/6/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/firefox/releases/63/index.html (renamed from files/fr/mozilla/firefox/versions/63/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/firefox/releases/65/index.html (renamed from files/fr/mozilla/firefox/versions/65/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/firefox/releases/68/index.html (renamed from files/fr/mozilla/firefox/versions/68/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/firefox/releases/69/index.html (renamed from files/fr/mozilla/firefox/versions/69/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/firefox/releases/7/index.html (renamed from files/fr/mozilla/firefox/versions/7/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/firefox/releases/70/index.html (renamed from files/fr/mozilla/firefox/versions/70/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/firefox/releases/76/index.html (renamed from files/fr/mozilla/firefox/versions/76/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/firefox/releases/77/index.html (renamed from files/fr/mozilla/firefox/versions/77/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/firefox/releases/8/index.html (renamed from files/fr/mozilla/firefox/versions/8/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/firefox/releases/9/index.html (renamed from files/fr/mozilla/firefox/versions/9/index.html) | 0 | ||||
-rw-r--r-- | files/fr/mozilla/firefox/releases/index.html (renamed from files/fr/mozilla/firefox/versions/index.html) | 0 |
136 files changed, 1105 insertions, 2941 deletions
diff --git a/files/fr/mozilla/add-ons/webextensions/ajouter_un_bouton_a_la_barre_d_outils/index.html b/files/fr/mozilla/add-ons/webextensions/add_a_button_to_the_toolbar/index.html index 5472013ca7..5472013ca7 100644 --- a/files/fr/mozilla/add-ons/webextensions/ajouter_un_bouton_a_la_barre_d_outils/index.html +++ b/files/fr/mozilla/add-ons/webextensions/add_a_button_to_the_toolbar/index.html diff --git a/files/fr/mozilla/add-ons/webextensions/alternative_distribution_options/add-ons_for_desktop_apps/index.html b/files/fr/mozilla/add-ons/webextensions/alternative_distribution_options/add-ons_for_desktop_apps/index.html deleted file mode 100644 index 270308150e..0000000000 --- a/files/fr/mozilla/add-ons/webextensions/alternative_distribution_options/add-ons_for_desktop_apps/index.html +++ /dev/null @@ -1,30 +0,0 @@ ---- -title: Extensions pour applications de bureau -slug: >- - Mozilla/Add-ons/WebExtensions/Alternative_distribution_options/Add-ons_for_desktop_apps -tags: - - Add-ons - - Desktop - - Guide - - Installation - - WebExtensions -translation_of: Mozilla/Add-ons/WebExtensions/Distribution_options/Add-ons_for_desktop_apps ---- -<div>{{AddonSidebar()}}</div> - -<p>Si vous avez développé un module complémentaire à une application de bureau, vous pouvez installer le module complémentaire de plusieurs façons :</p> - -<ul> - <li>Dirigez l'utilisateur à installer à partir de <a href="http://addons.mozilla.org" rel="noreferrer">addons.mozilla.org</a> (AMO) en offrant un lien.</li> - <li>Chargement latéral.</li> - <li>En utilisant le registre Windows.</li> -</ul> - -<p>Parmi ces options, il est recommandé d'indiquer à l'utilisateur d'installer à partir d'AMO en proposant un lien. Les raisons de recommander cette option sont les suivantes :</p> - -<ul> - <li>Cela évite tout problème avec le processus d'installation. l'utilisateur n'obtiendra pas de messages interstitiels pendant l'installation du module complémentaire, trouvera le module complémentaire installé mais sera désactivé ou constatera que le module complémentaire n'a pas été installé.</li> - <li>Si vous mettez à jour le module complémentaire, la nouvelle version sera automatiquement installée, une fois que vous l'aurez téléchargé sur AMO.</li> -</ul> - -<p>En revanche, le chargement de fichiers à l'aide des <a href="/fr/Add-ons/WebExtensions/Alternative_methods_of_installing_add-ons/Sideloading_add-ons#Installation_using_the_standard_extension_folders">dossiers d'extension standard</a> ou du <a href="/fr/Add-ons/WebExtensions/Alternative_methods_of_installing_add-ons/Installing_add-ons_in_an_enterprise_environment#Installation_using_the_Windows_registry">registre Windows</a> nécessite que votre application de bureau installe toute mise à jour du module complémentaire. En outre, en fonction des paramètres par défaut de Firefox, le processus d'installation présentera des avertissements à l'utilisateur (message interstitiel) ou installera le module en mode silencieux, mais le désactivera. Le pire des cas est que l'installation échouera silencieusement si Firefox est configuré pour <a href="/fr/Add-ons/WebExtensions/Alternative_methods_of_installing_add-ons/Installing_add-ons_in_an_enterprise_environment#Controlling_automatic_installation">désactiver l'installation automatique</a>. Vous pouvez mettre à jour la <a href="/fr/Add-ons/WebExtensions/Alternative_methods_of_installing_add-ons/Installing_add-ons_in_an_enterprise_environment#Settings_scope_preferences_programmatically">configuration de Firefox</a> pour éviter ces problèmes, mais ce n'est pas recommandé.</p> diff --git a/files/fr/mozilla/add-ons/webextensions/alternative_distribution_options/add-ons_in_the_enterprise/index.html b/files/fr/mozilla/add-ons/webextensions/alternative_distribution_options/add-ons_in_the_enterprise/index.html deleted file mode 100644 index 4e5d88d0d7..0000000000 --- a/files/fr/mozilla/add-ons/webextensions/alternative_distribution_options/add-ons_in_the_enterprise/index.html +++ /dev/null @@ -1,166 +0,0 @@ ---- -title: Les Add-ons en entreprise -slug: >- - Mozilla/Add-ons/WebExtensions/Alternative_distribution_options/Add-ons_in_the_enterprise -tags: - - Add-ons - - Guide - - Installation -translation_of: Mozilla/Add-ons/WebExtensions/Distribution_options/Add-ons_in_the_enterprise ---- -<div>{{AddonSidebar()}}</div> - -<p>En tant qu'administrateur informatique d'entreprise, vous souhaiterez peut-être installer des modules complémentaires automatiquement pour vos utilisateurs. Cette page présente les options.</p> - -<h2 id="Extensions_signées_et_non_signées">Extensions signées et non signées</h2> - -<p>Depuis Firefox 43, tous les modules complémentaires doivent être signés avant de pouvoir être installés dans les versions standard ou bêta de Firefox. Les modules non signés peuvent être installés dans les versions<a href="/fr/Firefox/Developer_Edition"> Developer Edition</a>, <a href="/en-US/docs/Mozilla/Firefox#Firefox_Nightly">Nightly</a>, et <a href="/en-US/docs/Mozilla/Firefox/Enterprise_deployment#Extended_Support_Release_(ESR)">ESR</a> de firefox, après avoir basculé la préférence <code>xpinstall.signatures.required</code> dans <code>about:config</code>.</p> - -<p>Si vous souhaitez installer des modules complémentaires non signés, le déploiement d'une version <a href="/en-US/docs/Mozilla/Firefox/Enterprise_deployment#Extended_Support_Release_(ESR)">ESR</a> de Firefox est l'approche recommandée. Une fois cela fait, les add-ons non signés peuvent être installés en utilisant n'importe quelle méthode, y compris l'ouverture du fichier add-on à partir d'une page Web.</p> - -<p>L'approche alternative et recommandée, est d'utiliser l'option pour les add-ons non listés sur <a href="http://addons.mozilla.org" rel="noreferrer">addons.mozilla.org</a> (AMO). Cette option signifie que vous pouvez obtenir un module complémentaire signé sans qu'il soit répertorié dans le répertoire des modules complémentaires publics. Cette fonctionnalité fournit un module signé immédiatement. Ce module signé peut ensuite être installé à partir d'une page Web derrière le pare-feu, ou installé en utilisant l'une des options décrites ici.</p> - -<h2 id="Chargement_latéral">Chargement latéral</h2> - -<p>Vous pouvez charger un module complémentaire à l'aide de l'un des dossiers d'extension standard, comme décrit dans <a href="/fr/Add-ons/WebExtensions/Alternative_distribution_options/Sideloading_add-ons#Installation_à_l'aide_des_dossiers_d'extension_standard">Installation à l'aide de dossiers d'extension standard</a>.</p> - -<h2 id="Installation_à_l'aide_du_registre_Windows">Installation à l'aide du registre Windows</h2> - -<p>Cette section explique comment installer des modules complémentaires dans Firefox en utilisant le registre Windows.</p> - -<div class="warning">Avant Firefox 62, il était possible de charger des extensions décompressées en faisant pointer la clé de registre Windows sur un répertoire contenant une extension non empaquetée. -<p>À partir de Firefox 62, cela n'est plus possible et la clé doit pointer vers un fichier XPI empaqueté, comme décrit dans cette section.</p> -</div> - -<div class="note"> -<p>Il est prudent de modifier les clés de registre pendant que Firefox est en cours d'exécution.</p> -</div> - -<ol> - <li>Assurez-vous que le module complémentaire possède un ID complémentaire, en incluant ce qui suit dans son fichier manifest.json, en remplaçant <em>your-add-on-name@your-domain.com</em> with par un ID approprié pour votre module complémentaire : - - <pre>"applications": { - "gecko": { - "id": "your-add-on-name@your-domain.com" - } - }</pre> - Un identifiant de style d'adresse e-mail est recommandé.</li> - <li>Signez votre module dans AMO en utilisant l'option non listée. Pour plus de détails, voir <a href="/fr/Add-ons/Distribution">Signature et distribution de votre module complémentaire</a>.</li> - <li>Téléchargez le fichier XPI signé et assurez-vous que le nom de fichier est l'ID du module plus l'extension <code>.xpi</code>. Par exemple, <code>c:/webext/borderify@example.com.xpi</code></li> - <li>Ouvrez Regedit et ajoutez les clés comme suit : - <ul> - <li>Ajoutez à tous les utilisateurs de l'ordinateur les clés de registre suivantes : - <pre>HKEY_LOCAL_MACHINE\Software\Mozilla\Firefox\Extensions</pre> - - <p>ou</p> - - <pre>HKEY_LOCAL_MACHINE\Software\Wow6432Node\Mozilla\Firefox\Extensions</pre> - - <div class="note"> - <p dir="ltr"><code>HKEY_LOCAL_MACHINE\Software\Mozilla\Firefox\Extensions</code> n'est pas disponible lors de l'exécution de Firefox 32 bits sur une machine 64 bits, vous ne pouvez installer que pour tous les utilisateurs utilisant la clé <code>Wow6432Node</code>.</p> - </div> - </li> - <li>Pour l'utilisateur actuel, ajoutez à la clé de registre suivante : - <pre>HKEY_CURRENT_USER\Software\Mozilla\Firefox\Extensions</pre> - </li> - </ul> - </li> - <li>Créez une nouvelle valeur de chaîne. Entrée de Registre dont le nom est identique à l'ID du module complémentaire, par exemple, borderify@example.com,et une valeur égale à l'emplacement où le module complémentaire est stocké, par exemple, <code>c:/webext/borderify@example.com.xpi</code>.</li> - <li>Redémarrez Firefox. Le module complémentaire est détecté, mais l'utilisateur peut se voir présenter un interstitiel ou doit activer le module complémentaire dans le module complémentaire avant de pouvoir l'utiliser. Voir <a href="#Firefox_settings">les paramètres de Firefox</a>.)</li> -</ol> - -<p>Si le même add-on apparaît sous <code>HKEY_CURRENT_USER</code> et <code>HKEY_LOCAL_MACHINE</code>, l'instance sous <code>HKEY_CURRENT_USER</code> sera utilisée. Si le même module complémentaire apparaît dans le répertoire de profil de l'utilisateur (par exemple, s'il l'a déjà installé manuellement), cette version aura la priorité sur toutes les instances trouvées dans le Registre.</p> - -<p>Pour supprimer un module installé à l'aide du registre Windows, supprimez simplement l'entrée du Registre. Après la suppression de l'entrée du registre, Firefox détectera le changement la prochaine fois qu'il sera lancé. Il est prudent de modifier les clés de registre pendant que Firefox est en cours d'exécution.</p> - -<p>Si vous installez en utilisant le registre de Windows, Firefox ne mettra pas automatiquement à jour votre module complémentaire. Vous devrez mettre au point le module complémentaire en utilisant n'importe quel processus d'installation externe à Firefox.</p> - -<h2 id="Les_paramètres_de_Firefox">Les paramètres de Firefox</h2> - -<p>Deux paramètres affectent l'utilisation d'options d'installation alternatives. La préférence <code>extensions.autoDisableScopes</code> détermine si les modules complémentaires sont installés automatiquement ou après confirmation de l'utilisateur. La préférence <code>extensions.enabledScopes</code> est utilisée pour désactiver l'installation de la plupart des emplacements. En plus de ces options, la méthode de définition de ces préférences par programme est discutée.</p> - -<h3 id="Contrôler_l'installation_automatique">Contrôler l'installation automatique</h3> - -<p>Les téléchargements standards de Firefox sont configurés pour que les sideloads utilisant le dossier extensions standard ou le registre Windows, ne s'installent pas automatiquement. Selon la version de Firefox :</p> - -<ul> - <li>l'utilisateur a affiché un avertissement interstitiel :<br> - <img alt="An interstitial warning about the installation of the add-on" src="https://mdn.mozillademos.org/files/15209/interstitial_windows.png" style="height: 441px; width: 630px;"></li> - <li>le module complémentaire est installé mais désactivé, et l'utilisateur doit l'activer depuis le gestionnaire de modules complémentaires :<br> - <img alt="An add-on is installed but disabled " src="https://mdn.mozillademos.org/files/15207/add_on_disabled.png" style="height: 61px; width: 707px;"></li> -</ul> - -<p>L'utilisation des installations désactivées interstitielles et silencieuses varie selon les versions de Firefox, par exemple, la version 54 utilise le message interstitiel..</p> - -<p>La disponibilité de l'installation automatique est contrôlée par la préférence et le comportement <code>extensions.autoDisableScopes</code> définis par les valeurs suivantes :</p> - -<div> -<table> - <colgroup> - <col> - <col> - </colgroup> - <tbody> - <tr> - <td>Valeur</td> - <td>Installation du champ</td> - </tr> - <tr> - <td>1 (or '0b0001')</td> - <td>Le profil de l'utilisateur actuel.</td> - </tr> - <tr> - <td>2 (or '0b0010')</td> - <td>Tous les profils de l'utilisateur connecté</td> - </tr> - <tr> - <td>4 (or '0b0100')</td> - <td>Installé et détenu par Firefox.</td> - </tr> - <tr> - <td>8 (or '0b1000')</td> - <td>Installé pour tous les utilisateurs de l'ordinateur.</td> - </tr> - <tr> - <td>15 (or '0b1111')</td> - <td>La combinaison de tous les champs d'application.</td> - </tr> - </tbody> -</table> -</div> - -<p>Par défaut, <code>extensions.autoDisableScopes</code> est défini sur 15 afin que les installations automatiques soient désactivées à partir de tous les emplacements. Pour désactiver uniquement un sous-ensemble d'emplacements, définissez la préférence sur la somme des valeurs des emplacements que vous souhaitez désactiver. Par exemple, 3 désactive "Profil de l'utilisateur actuel" et "Tous les profils de l'utilisateur connecté". La définition de la valeur sur 0 désactive cette fonctionnalité et signifie que tous les modules complémentaires seront installés sans confirmation de l'utilisateur.</p> - -<h3 id="Désactivation_des_emplacements_d'installation">Désactivation des emplacements d'installation</h3> - -<p>Dans certaines circonstances, vous pouvez souhaiter que Firefox ignore tout ou partie des emplacements d'installation supplémentaires répertoriés ci-dessus. Dans ce cas, utilisez la préférence <code>extensions.enabledScopes</code>. Par défaut, cette préférence n'est pas incluse dans les téléchargements standard de Firefox, il faudra donc l'ajouter. vous pouvez ajouter la <a href="/fr/kb/about-config-editor-firefox#w_adding-changing-and-resetting-preferences">préférence manuellement</a> ou la faire par programmation en suivant les instructions de la section suivante.</p> - -<div class="note"> -<p>Il est impossible de désactiver le chargement de modules complémentaires à partir du répertoire de profil.</p> -</div> - -<h3 id="Définir_les_préférences_d'étendue_par_programme">Définir les préférences d'étendue par programme</h3> - -<p>Utilisez la logique suivante pour définir les valeurs de <code>extensions.autoDisableScopes</code> et <code>extensions.enabledScopes</code> par programme pour vous assurer que les modules complémentaires sont installés automatiquement :</p> - -<ol> - <li>Editez le fichier de <a href="/fr/Firefox/Enterprise_deployment#Configuration">configuration administratif</a>.</li> - <li>Vérifiez la présence de lignes définissant les préférences <code>extensions.autoDisableScopes</code> et/ou <code>extensions.enabledScopes</code> et remplacez-les / ajoutez-les si nécessaire.</li> - <li>Ces lignes de préférence doivent être utilisées comme ci-dessous, avec les valeurs de votre choix comme expliqué dans le haut de cette section : - <pre class="brush: js">defaultPref("extensions.autoDisableScopes", 0); -defaultPref("extensions.enabledScopes", 15); -// Or use binary value like this -defaultPref("extensions.enabledScopes", 0b1111);</pre> - </li> -</ol> - -<div class="note"> -<p>Selon <a href="http://www.favbrowser.com/how-to-create-a-new-default-firefox-experience-in-your-enterprise/">cette page</a> : <small>(en date du 28 septembre 2012)</small><br> - “Vous ne pouvez pas définir cette préférence à distance en utilisant les fichiers autoconfig.”<br> - Ce qui vous recommande de définir uniquement ces préférences dans un fichier autoconfig local.<br> - Si cette information est erronée, ajustez ou supprimez cette note.</p> -</div> - -<h2 id="Regroupement_de_modules_complémentaires_avec_un_Firefox_personnalisé">Regroupement de modules complémentaires avec un Firefox personnalisé</h2> - -<p>Vous pouvez regrouper des modules complémentaires dans un Firefox personnalisé, et ils seront installés automatiquement lorsque l'utilisateur démarre l'application pour la première fois. Voir<a href="/fr/docs/Mozilla/Developer_guide/Customizing_Firefox"> Personnalisation de Firefox</a> pour plus de détails.</p> diff --git a/files/fr/mozilla/add-ons/webextensions/alternative_distribution_options/index.html b/files/fr/mozilla/add-ons/webextensions/alternative_distribution_options/index.html deleted file mode 100644 index 1b45607060..0000000000 --- a/files/fr/mozilla/add-ons/webextensions/alternative_distribution_options/index.html +++ /dev/null @@ -1,68 +0,0 @@ ---- -title: Options de distribution -slug: Mozilla/Add-ons/WebExtensions/Alternative_distribution_options -tags: - - Add-ons - - Installation - - Landing - - WebExtensions -translation_of: Mozilla/Add-ons/WebExtensions/Distribution_options ---- -<div>{{AddonSidebar()}}</div> - -<p>Le processus standard de distribution et d'installation des extensions de navigateur se fait via Firefox en utilisant un fichier XPI signé obtenu à partir de <a href="http://addons.mozilla.org" rel="noreferrer">addons.mozilla.org</a> (AMO) (pour les add-ons listés) ou un téléchargement configuré par un développeur (pour les add-ons non listés).</p> - -<p>Nous examinons ici les exigences en matière de signature et les commentaires connexes, avant de discuter de la façon de choisir entre la distribution sur AMO ou la distribution d'une extension de navigateur vous-même. Nous examinons également les canaux disponibles sur AMO et répondons aux questions sur la propriété du code et les litiges.</p> - -<h2 id="Signature_de_votre_extension">Signature de votre extension</h2> - -<p>Les extensions de navigateur doivent être signées par Mozilla avant de pouvoir être installées dans les versions release et beta de Firefox. Les thèmes, et d'autres types d'ajouts tels que les dictionnaires d'orthographe, n'ont pas besoin d'être signés.</p> - -<p>Ce processus de signature se fait via addons.mozilla.org (AMO), que vous choisissiez de distribuer votre add-on via AMO ou de le faire vous-même.</p> - -<p>Les extensions non signées peuvent être installées dans les versions <a href="/fr/docs/Mozilla/Firefox/Developer_Edition">Developer Edition</a>, Nightly, et <a href="https://developer.mozilla.org/en-US/Firefox/Enterprise_deployment">ESR</a> de Firefox, après avoir activé la préférence <em>xpinstall.signatures.required</em> dans <code>about:config</code>.</p> - -<p>Mozilla signe les extensions de navigateur via le site Web de <a class="external external-icon" href="https://addons.mozilla.org/developers/addon/submit" rel="noopener">AMO</a>. Il y a trois façons de soumettre votre extension pour signature :</p> - -<ol> - <li>téléchargez votre add-on via le <a href="https://developer.mozilla.org/en-US/Add-ons/Distribution/Submitting_an_add-on">Developer Hub sur AMO</a>.</li> - <li>utilisez l' <a class="external external-icon" href="http://addons-server.readthedocs.io/en/latest/topics/api/signing.html" rel="noopener">API de signature addons.mozilla.org</a>.</li> - <li>utilisez le <a href="https://developer.mozilla.org/en-US/Add-ons/WebExtensions/web-ext_command_reference#web-ext_sign">signé web-ext.</a></li> -</ol> - -<p>Toutes les options de signature sont soumises à l'<a href="https://developer.mozilla.org/en-US/Add-ons/AMO/Policy/Agreement">accord de distribution du module complémentaire Firefox</a>.</p> - -<p>Si vous téléchargez votre extension via le centre de développement AMO, vous avez le choix entre l'inscription sur AMO ou l'auto-distribution. Si vous choisissez l'auto-distribution, à la fin du processus, vous téléchargez des copies signées de votre add-on.</p> - -<p>L'utilisation de l'API de signature ou du web-ext renvoie vos add-ons signés, sans qu'aucune liste de distribution ne soit créée sur AMO.</p> - -<p>Quelle que soit la méthode utilisée, tous les add-ons doivent passer une validation automatisée avant d'être signés. Ils peuvent également faire l'objet d'un examen manuel du code. Les critères d'examen appliqués aux prorogations se trouvent dans la <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/AMO/Policy/Reviews">polique complémentaire</a>.</p> - -<h2 id="Distribuer_votre_extension">Distribuer votre extension</h2> - -<p>Vous n'êtes pas tenu d'inscrire ou de distribuer votre poste par l'entremise de l'AMO. Vous devrez décider si vous voulez distribuer et inscrire votre extension par l'entremise de l'AMO ou si vous voulez la distribuer vous-même. Voici quelques points à prendre en considération :</p> - -<ul> - <li>AMO est une plateforme de distribution très populaire, avec des millions de visiteurs et d'installations mensuels.</li> - <li>AMO est intégré dans le gestionnaire de modules complémentaires Firefox, ce qui facilite l'installation des extensions publiées sur AMO.</li> - <li>Lorsqu'une extension est listée dans AMO, les mises à jour des copies installées sont gérées automatiquement par Firefox chaque fois qu'une nouvelle version est listée dans AMO.</li> - <li>L'URL où Firefox peut trouver les mises à jour doit être incluse dans la clé <a href="https://developer.mozilla.org/en-US/Add-ons/Updates">update_link</a> du manifest d'extension pour que Firefox puisse effectuer des mises à jour automatiques. Les extensions auto-distribuées qui n'ont pas d'URL de mise à jour vérifient AMO pour les mises à jour et sont mises à jour vers une version listée, si elle est disponible.</li> -</ul> - -<p>Pour plus d'informations sur la façon de soumettre un add-on pour distribution sur AMO ou auto-distribution, voir <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/Distribution/Submitting_an_add-on">Soumettre une extension.</a></p> - -<h2 id="Autres_options_de_distribution">Autres options de distribution</h2> - -<p>Ces méthodes peuvent ne pas convenir à tout le monde, par exemple, lorsqu'une extension de navigateur est fournie avec une application native ou lorsqu'une entreprise souhaite installer une extension pour toutes ses instances de Firefox. Cette section décrit les solutions de rechange.</p> - -<ul> - <li> - <p><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/Alternative_distribution_options/Sideloading_add-ons">Sideloading add-ons</a> — permet à un utilisateur d'installer une extension en utilisant un fichier XPI enregistré sur son ordinateur.</p> - </li> - <li> - <p><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/Alternative_distribution_options/Add-ons_for_desktop_apps">Add-ons for use with a desktop app</a> — cette section décrit les meilleures pratiques pour fournir une extension à utiliser avec une application de bureau.</p> - </li> - <li> - <p><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/Alternative_distribution_options/Add-ons_in_the_enterprise">Add-ons in an enterprise environment</a> — cette page traite de l'utilisation des extensions signées par rapport aux extensions non signées, des options d'installation, des paramètres Firefox affectant l'installation, et de l'inclusion des add-ons avec un paquet d'installation Firefox personnalisé.</p> - </li> -</ul> diff --git a/files/fr/mozilla/add-ons/webextensions/alternative_distribution_options/sideloading_add-ons/index.html b/files/fr/mozilla/add-ons/webextensions/alternative_distribution_options/sideloading_add-ons/index.html deleted file mode 100644 index 2271640415..0000000000 --- a/files/fr/mozilla/add-ons/webextensions/alternative_distribution_options/sideloading_add-ons/index.html +++ /dev/null @@ -1,134 +0,0 @@ ---- -title: Sideloading add-ons -slug: >- - Mozilla/Add-ons/WebExtensions/Alternative_distribution_options/Sideloading_add-ons -tags: - - Guide - - Installation - - Sideloading - - WebExtensions -translation_of: Mozilla/Add-ons/WebExtensions/Distribution_options/Sideloading_add-ons ---- -<div>{{AddonSidebar()}}</div> - -<p>Vous souhaiterez peut-être envoyer un fichier XPI à votre utilisateur par un moyen autre qu'un téléchargement sur le Web, par exemple une distribution par e-mail d'une version bêta pour les tests utilisateur. Dans ce cas, il existe deux options pratiques pour installer le module complémentaire :</p> - -<ul> - <li>À l'aide de l'option <strong>Installer le module à partir d'un fichier</strong> dans le gestionnaire de modules complémentaires.</li> - <li>Ajout du fichier à l'un des dossiers d'extension standard.</li> -</ul> - -<div class="note">Aucune mise à jour automatique ne sera effectuée pour les modules complémentaires installés à l'aide de ces méthodes. Vous devrez fournir un nouveau fichier XPI à votre utilisateur pour chaque mise à jour. Cependant, des vérifications de compatibilité automatiques sont toujours effectuées.</div> - -<h2 id="Preparation_de_votre_extension">Preparation de votre extension</h2> - -<p>Indépendamment de la méthode de chargement latéral utilisée, vous devez préparer l'extension comme suit :</p> - -<ol> - <li>Assurez-vous que le module complémentaire inclut un ID, en ajoutant ce qui suit à son fichier manifest.json, en remplaçant <em>votre your-add-on-name@your-domain.com</em> par un ID approprié dans vote mode complémentaire : - - <pre class="brush: json">"applications": { - "gecko": { - "id": "your-add-on-name@your-domain.com" - } -} -</pre> - Un identifiant de style d'adresse e-mail est recommandé.</li> - <li>Signez le module complémentaire dans <a href="http://addons.mozilla.org" rel="noreferrer">addons.mozilla.org</a> (AMO). Selon la manière dont vous souhaitez rendre votre module complémentaire disponible, vous pouvez utiliser les options non répertoriées (si vous distribuez le module complémentaire uniquement) ou répertoriées. Pour plus de détails, voir <a href="/fr/Add-ons/Distribution">Signature et distribution de votre module complémentaire</a>.</li> -</ol> - -<h2 id="Utilisation_de_l'option_Installer_le_module_à_partir_d'un_fichier">Utilisation de l'option Installer le module à partir d'un fichier</h2> - -<p>Pour utiliser <strong>Installer le module complémentaire à partir d'un fichier</strong> dans le gestionnaire de modules complémentaire, send the user the signed add-on with the following instructions:</p> - -<ol> - <li>Enregistrez le fichier complémentaire à un emplacement approprié sur votre ordinateur.</li> - <li>Dans Firefox, ouvrir le menu Firefox <img alt="Firefox browser menu button" src="https://mdn.mozillademos.org/files/15199/Firefox_menu.png" style="height: 24px; width: 32px;"> et cliquez sur <strong>Add-ons</strong>.</li> - <li>Dans les paramètres de cog, ouvrez <strong>Installer le module complémentaire à partir du fichier </strong>:<br> - <img alt="Add-on Manager utilities cog" src="https://mdn.mozillademos.org/files/15201/add-on_manager_cog.png" style="height: 188px; width: 347px;"></li> - <li>Recherchez et ouvrez le fichier à partir de l'emplacement où il a été enregistré.</li> - <li>Lorsque vous y êtes invité, cliquez sur <strong>Ajouter :</strong><br> - <img alt="Message asking user to confirm the installation of the add-on" src="https://mdn.mozillademos.org/files/15203/add_add_on_confirmation.png" style="height: 198px; width: 403px;"></li> - <li>Le module complémentaire apparaîtra désormais dans la liste des modules complémentaires installés du gestionnaire de modules complémentaires et sera prêt à être utilisé :<br> - <img alt="After installation the add-on is listed in the add-on manager" src="https://mdn.mozillademos.org/files/15205/add_on_added.png" style="height: 55px; width: 649px;"></li> -</ol> - -<h2 id="Installation_à_l'aide_des_dossiers_d'extension_standard">Installation à l'aide des dossiers d'extension standard</h2> - -<p>Cette méthode d'installation complémentaire consiste à copier le module complémentaire dans l'un des dossiers d'extension standard sur l'ordinateur de l'utilisateur. Une fois copié, la prochaine fois que Firefox sera lancé le module complémentaire sera installé. Par défaut, l'utilisateur sera invité à approuver l'installation et, si l'utilisateur l'approuve, le module complémentaire sera installé et chargé automatiquement pour les lancements ultérieurs. Si l'utilisateur possède plusieurs profils Firefox, l'approbation et l'installation auront lieu au prochain lancement de chaque profil. Pour plus d'informations sur le contrôle de l'utilisateur à approuver l'installation, voir <a href="/fr/Add-ons/WebExtensions/Alternative_methods_of_installing_add-ons/Installing_add-ons_in_an_enterprise_environment#Controlling_automatic_installation">Contrôle de l'installation automatique</a>.</p> - -<h3 id="Renommez_votre_fichier_XPI">Renommez votre fichier XPI</h3> - -<p>Pour utiliser cette méthode, votre fichier XPI doit être nommé à l'aide de l'ID d'extension ou d'application, comme indiqué dans la section <a href="/fr/Add-ons/WebExtensions/Alternative_methods_of_installing_add-ons/Sideloading_add-ons#Preparing_your_add-on">Préparation de votre module complémentaire</a>. Le fichier complémentaire signé que vous avez téléchargé à partir d'AMO s'appellera quelque chose comme borderify-1.0-an+fx.xpi (voir <a href="/fr/Add-ons/Distribution">Signature et distribution de votre module complémetaire</a> pour plus de détails), modifiez-le par exemple borderify@example.com.xpi.</p> - -<div class="note"> -<p>Si vous développez un module complémentaire pour Firefox vous pouvez utiliser un <a href="/fr/Add-ons/Setting_up_extension_development_environment#Firefox_extension_proxy_file">fichier proxy d'extensions</a> pour installer un module complémentaire sans copier les fichiers dans les dossiers d'extension standard.</p> -</div> - -<h3 id="Ajoutez_le_fichier_d'extension_XPI_dans_un_dossier_d'extensions_commun.">Ajoutez le fichier d'extension XPI dans un dossier d'extensions commun.</h3> - -<p>Dans ce qui suit {ec8030f7-c20a-464f-9b0e-13a3a9e97384} est l'identifiant de l'application de Firefox. </p> - -<p>L'installation standard de Firefox désactive l'installation automatique de modules complémentaires à partir de ces emplacements (voir <a href="/fr/Add-ons/WebExtensions/Alternative_methods_of_installing_add-ons/Installing_add-ons_in_an_enterprise_environment#Controlling_automatic_installation">Contrôle de l'installation automatique</a>). Par conséquent, le processus pour chacune des méthodes décrites ci-dessous est le suivant :</p> - -<ul> - <li>Copiez le fichier XPI renommé dans le dossier des extensions pour <a href="#Windows">Windows</a>, <a href="#OSX">OSX</a>, ou <a href="#Linux">Linux</a> selon le cas. Notez que, selon le système d'exploitation de bureau et ses paramètres, l'utilisateur peut avoir besoin d'une autorisation d'administrateur pour effectuer cette action.</li> - <li>Fermez et redémarrez Firefox.</li> - <li>Selon le système d'exploitation et la version de Firefox, l'un des événements suivants se produira: - <ul> - <li>L'installation se fera en mode silencieux et l'utilisateur devra ouvrir le gestionnaire de modules complémentaires et activer le module complémentaire :<br> - <img alt="An add-on is installed but disabled " src="https://mdn.mozillademos.org/files/15207/add_on_disabled.png" style="height: 61px; width: 707px;"><br> - Pour activer le module complémentaire, l'utilisateur devra cliquer sur <strong>Enable</strong>.</li> - <li>Un message interstitiel sera affiché :<br> - <img alt="An interstitial warning about the installation of the add-on" src="https://mdn.mozillademos.org/files/15209/interstitial_windows.png" style="height: 441px; width: 630px;"><br> - Pour installer le module complémentaire, l'utilisateur devra cocher <strong>Autoriser cette installation </strong>et cliquer sur <strong>Continue</strong>r.</li> - </ul> - </li> - <li>L'add-on est maintenant installé.</li> -</ul> - -<p>Pour plus de détails sur les installations interstitielles et silencieuses, voir <a href="/fr/Add-ons/WebExtensions/Alternative_methods_of_installing_add-ons/Installing_add-ons_in_an_enterprise_environment#Controlling_automatic_installation">Contrôle de l'installation automatique</a>.</p> - -<div class="note"> -<p>Pour désinstaller le module complémentaire, fermez Firefox et supprimez le module complémentaire de l'emplacement où il a été ajouté.</p> -</div> - -<h4 id="Windows">Windows</h4> - -<p>Pour installer le module complémentaire pour un utilisateur de l'ordinateur, copiez le fichier XPI dans <span lang="fr"><span>:</span></span></p> - -<pre>C:\Users\<user name>\AppData\Roaming\mozilla\Extensions\\{ec8030f7-c20a-464f-9b0e-13a3a9e97384}\</pre> - -<p>Si ce dossier n'existe pas, créez-le. Vous pouvez également identifier le chemin de l'utilisateur actuel avec la variable %appdata% du système.</p> - -<div class="note"> -<p>Remarque : Pour installer un module complémentaire pour tous les utilisateurs d'un ordinateur Windows, voir <a href="/fr/Add-ons/WebExtensions/Alternative_methods_of_installing_add-ons/Installing_add-ons_in_an_enterprise_environment#Installation_using_the_Windows_registry">Installation à l'aide du registre Windows</a>.</p> -</div> - -<h4 id="OSX">OSX</h4> - -<p>Pour installer un module complémentaire à utiliser par tous les profils Firefox et tous les utilisateurs, copiez le fichier XPI dans le dossier d'extension globale situé dans la bibliothèque. Si ce dossier n'existe pas, vous devrez le créer.</p> - -<pre>/Library/Application Support/mozilla/Extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}/</pre> - -<p>Pour installer un module complémentaire pour un utilisateur spécifique, copiez le fichier XPI dans la bibliothèque locale de l'utilisateur :</p> - -<pre>~/Library/Application Support/mozilla/Extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}/</pre> - -<h4 id="Linux">Linux</h4> - -<p>Pour installer un module complémentaire utilisé par tous les utilisateurs, copiez le fichier XPI dans :</p> - -<pre>/usr/lib/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}/</pre> - -<p>Ou...</p> - -<pre>/usr/lib64/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}/</pre> - -<p dir="ltr">Ou...</p> - -<pre>/usr/share/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}/</pre> - -<p>Pour installer un module complémentaire pour un utilisateur spécifique, copiez le fichier XPI dans :</p> - -<pre>~/.mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}/</pre> diff --git a/files/fr/mozilla/add-ons/webextensions/api/devtools.inspectedwindow/eval/index.html b/files/fr/mozilla/add-ons/webextensions/api/devtools/inspectedwindow/eval/index.html index f6cf7e86bb..f6cf7e86bb 100644 --- a/files/fr/mozilla/add-ons/webextensions/api/devtools.inspectedwindow/eval/index.html +++ b/files/fr/mozilla/add-ons/webextensions/api/devtools/inspectedwindow/eval/index.html diff --git a/files/fr/mozilla/add-ons/webextensions/api/devtools.inspectedwindow/index.html b/files/fr/mozilla/add-ons/webextensions/api/devtools/inspectedwindow/index.html index 2f077b4e9d..2f077b4e9d 100644 --- a/files/fr/mozilla/add-ons/webextensions/api/devtools.inspectedwindow/index.html +++ b/files/fr/mozilla/add-ons/webextensions/api/devtools/inspectedwindow/index.html diff --git a/files/fr/mozilla/add-ons/webextensions/api/devtools.inspectedwindow/reload/index.html b/files/fr/mozilla/add-ons/webextensions/api/devtools/inspectedwindow/reload/index.html index f2f7b8cdc8..f2f7b8cdc8 100644 --- a/files/fr/mozilla/add-ons/webextensions/api/devtools.inspectedwindow/reload/index.html +++ b/files/fr/mozilla/add-ons/webextensions/api/devtools/inspectedwindow/reload/index.html diff --git a/files/fr/mozilla/add-ons/webextensions/api/devtools.inspectedwindow/tabid/index.html b/files/fr/mozilla/add-ons/webextensions/api/devtools/inspectedwindow/tabid/index.html index b5b3d3b0b2..b5b3d3b0b2 100644 --- a/files/fr/mozilla/add-ons/webextensions/api/devtools.inspectedwindow/tabid/index.html +++ b/files/fr/mozilla/add-ons/webextensions/api/devtools/inspectedwindow/tabid/index.html diff --git a/files/fr/mozilla/add-ons/webextensions/api/devtools.network/gethar/index.html b/files/fr/mozilla/add-ons/webextensions/api/devtools/network/gethar/index.html index abcdf667e6..abcdf667e6 100644 --- a/files/fr/mozilla/add-ons/webextensions/api/devtools.network/gethar/index.html +++ b/files/fr/mozilla/add-ons/webextensions/api/devtools/network/gethar/index.html diff --git a/files/fr/mozilla/add-ons/webextensions/api/devtools.network/index.html b/files/fr/mozilla/add-ons/webextensions/api/devtools/network/index.html index 580a823371..580a823371 100644 --- a/files/fr/mozilla/add-ons/webextensions/api/devtools.network/index.html +++ b/files/fr/mozilla/add-ons/webextensions/api/devtools/network/index.html diff --git a/files/fr/mozilla/add-ons/webextensions/api/devtools.network/onnavigated/index.html b/files/fr/mozilla/add-ons/webextensions/api/devtools/network/onnavigated/index.html index b7f0d0af31..b7f0d0af31 100644 --- a/files/fr/mozilla/add-ons/webextensions/api/devtools.network/onnavigated/index.html +++ b/files/fr/mozilla/add-ons/webextensions/api/devtools/network/onnavigated/index.html diff --git a/files/fr/mozilla/add-ons/webextensions/api/devtools.network/onrequestfinished/index.html b/files/fr/mozilla/add-ons/webextensions/api/devtools/network/onrequestfinished/index.html index e2b4d930fc..e2b4d930fc 100644 --- a/files/fr/mozilla/add-ons/webextensions/api/devtools.network/onrequestfinished/index.html +++ b/files/fr/mozilla/add-ons/webextensions/api/devtools/network/onrequestfinished/index.html diff --git a/files/fr/mozilla/add-ons/webextensions/api/devtools.panels/create/index.html b/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/create/index.html index 60de8f3871..60de8f3871 100644 --- a/files/fr/mozilla/add-ons/webextensions/api/devtools.panels/create/index.html +++ b/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/create/index.html diff --git a/files/fr/mozilla/add-ons/webextensions/api/devtools.panels/elements/index.html b/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/elements/index.html index 18223b2718..18223b2718 100644 --- a/files/fr/mozilla/add-ons/webextensions/api/devtools.panels/elements/index.html +++ b/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/elements/index.html diff --git a/files/fr/mozilla/add-ons/webextensions/api/devtools.panels/elementspanel/createsidebarpane/index.html b/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/elementspanel/createsidebarpane/index.html index 7eee52fff5..7eee52fff5 100644 --- a/files/fr/mozilla/add-ons/webextensions/api/devtools.panels/elementspanel/createsidebarpane/index.html +++ b/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/elementspanel/createsidebarpane/index.html diff --git a/files/fr/mozilla/add-ons/webextensions/api/devtools.panels/elementspanel/index.html b/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/elementspanel/index.html index 5c2a0413c7..5c2a0413c7 100644 --- a/files/fr/mozilla/add-ons/webextensions/api/devtools.panels/elementspanel/index.html +++ b/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/elementspanel/index.html diff --git a/files/fr/mozilla/add-ons/webextensions/api/devtools.panels/elementspanel/onselectionchanged/index.html b/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/elementspanel/onselectionchanged/index.html index e753d5aba1..e753d5aba1 100644 --- a/files/fr/mozilla/add-ons/webextensions/api/devtools.panels/elementspanel/onselectionchanged/index.html +++ b/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/elementspanel/onselectionchanged/index.html diff --git a/files/fr/mozilla/add-ons/webextensions/api/devtools.panels/extensionpanel/index.html b/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/extensionpanel/index.html index e083ff02b3..e083ff02b3 100644 --- a/files/fr/mozilla/add-ons/webextensions/api/devtools.panels/extensionpanel/index.html +++ b/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/extensionpanel/index.html diff --git a/files/fr/mozilla/add-ons/webextensions/api/devtools.panels/extensionsidebarpane/index.html b/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/extensionsidebarpane/index.html index 02ee0a2073..02ee0a2073 100644 --- a/files/fr/mozilla/add-ons/webextensions/api/devtools.panels/extensionsidebarpane/index.html +++ b/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/extensionsidebarpane/index.html diff --git a/files/fr/mozilla/add-ons/webextensions/api/devtools.panels/extensionsidebarpane/onhidden/index.html b/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/extensionsidebarpane/onhidden/index.html index a1a18463e5..a1a18463e5 100644 --- a/files/fr/mozilla/add-ons/webextensions/api/devtools.panels/extensionsidebarpane/onhidden/index.html +++ b/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/extensionsidebarpane/onhidden/index.html diff --git a/files/fr/mozilla/add-ons/webextensions/api/devtools.panels/extensionsidebarpane/onshown/index.html b/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/extensionsidebarpane/onshown/index.html index 3ca3412af2..3ca3412af2 100644 --- a/files/fr/mozilla/add-ons/webextensions/api/devtools.panels/extensionsidebarpane/onshown/index.html +++ b/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/extensionsidebarpane/onshown/index.html diff --git a/files/fr/mozilla/add-ons/webextensions/api/devtools.panels/extensionsidebarpane/setexpression/index.html b/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/extensionsidebarpane/setexpression/index.html index d2c97c5f82..d2c97c5f82 100644 --- a/files/fr/mozilla/add-ons/webextensions/api/devtools.panels/extensionsidebarpane/setexpression/index.html +++ b/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/extensionsidebarpane/setexpression/index.html diff --git a/files/fr/mozilla/add-ons/webextensions/api/devtools.panels/extensionsidebarpane/setobject/index.html b/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/extensionsidebarpane/setobject/index.html index 90252a0c2f..90252a0c2f 100644 --- a/files/fr/mozilla/add-ons/webextensions/api/devtools.panels/extensionsidebarpane/setobject/index.html +++ b/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/extensionsidebarpane/setobject/index.html diff --git a/files/fr/mozilla/add-ons/webextensions/api/devtools.panels/extensionsidebarpane/setpage/index.html b/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/extensionsidebarpane/setpage/index.html index e4f98e3ff3..e4f98e3ff3 100644 --- a/files/fr/mozilla/add-ons/webextensions/api/devtools.panels/extensionsidebarpane/setpage/index.html +++ b/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/extensionsidebarpane/setpage/index.html diff --git a/files/fr/mozilla/add-ons/webextensions/api/devtools.panels/index.html b/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/index.html index 9f2c06e2a0..9f2c06e2a0 100644 --- a/files/fr/mozilla/add-ons/webextensions/api/devtools.panels/index.html +++ b/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/index.html diff --git a/files/fr/mozilla/add-ons/webextensions/api/devtools.panels/onthemechanged/index.html b/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/onthemechanged/index.html index 75c9b94ccc..75c9b94ccc 100644 --- a/files/fr/mozilla/add-ons/webextensions/api/devtools.panels/onthemechanged/index.html +++ b/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/onthemechanged/index.html diff --git a/files/fr/mozilla/add-ons/webextensions/api/devtools.panels/themename/index.html b/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/themename/index.html index abddedc962..abddedc962 100644 --- a/files/fr/mozilla/add-ons/webextensions/api/devtools.panels/themename/index.html +++ b/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/themename/index.html diff --git a/files/fr/mozilla/add-ons/webextensions/api/menus/menus.overridecontext()/index.html b/files/fr/mozilla/add-ons/webextensions/api/menus/menus.overridecontext()/index.html deleted file mode 100644 index 8d8463f069..0000000000 --- a/files/fr/mozilla/add-ons/webextensions/api/menus/menus.overridecontext()/index.html +++ /dev/null @@ -1,62 +0,0 @@ ---- -title: menus.overrideContext() -slug: Mozilla/Add-ons/WebExtensions/API/menus/menus.overrideContext() -tags: - - API - - Add-ons - - Extensions - - Méthode - - WebExtensions - - contextMenus -translation_of: Mozilla/Add-ons/WebExtensions/API/menus/menus.overrideContext() ---- -<div>{{AddonSidebar()}}</div> - -<p>Cette API permet aux extensions de masquer tous les éléments de menu par défaut de Firefox afin de fournir une interface utilisateur de menu contextuel personnalisée. Ce menu contextuel peut comprendre plusieurs éléments de menu de niveau supérieur de l'extension et éventuellement inclure des éléments de menu contextuel d'onglet ou de signet provenant d'autres extensions. Cela doit être appelé lors d'un gestionnaire d'événements DOM du menu <code>contextmenu</code>, et s'applique uniquement au menu qui s'ouvre après cet événement.</p> - -<p>Cette API ne peut être appelée que si l'addon dispose de la <a href="/fr/Add-ons/WebExtensions/manifest.json/permissions">permission</a> <code>"menus.overrideContext"</code>.</p> - -<h2 id="Syntaxe">Syntaxe</h2> - -<pre class="syntaxbox brush:js">browser.menus.overrideContext( - contextOptions // object -) -</pre> - -<h3 id="Paramètres">Paramètres</h3> - -<dl> - <dt><code>contextOptions</code></dt> - <dd><code>object</code>.Propriétés qui définissent le contexte du menu contextuel.</dd> - <dd> - <dl class="reference-values"> - <dt><code>bookmarkId</code> {{optional_inline}}</dt> - <dd><code>string</code> Requis lorsque le contexte est un <code>signet</code>. Nécessite la <a href="/fr/Add-ons/WebExtensions/manifest.json/permissions">permission </a> <code>"bookmark"</code> .</dd> - <dt><code>context</code> {{optional_inline}}</dt> - <dd><code>string</code>. pour passer outre, pour autoriser les éléments de menu d'autres extensions dans le menu. Actuellement, seuls <code>"bookmark"</code> et <code>"tab"</code> sont supportés. <code>showDefaults</code> ne peut pas être utilisé avec cette option.</dd> - <dt><code>showDefaults</code> {{optional_inline}}</dt> - <dd><code>boolean</code>. S'il faut également inclure des éléments de menu par défaut dans le menu.</dd> - <dt><code>tabId</code> {{optional_inline}}</dt> - <dd><code>string</code> Requis lorsque le contexte est <code>"tab"</code>. Nécessite la <a href="/fr/Add-ons/WebExtensions/manifest.json/permissions">permission</a> <code>"tabs"</code> .</dd> - </dl> - </dd> -</dl> - -<h2 id="Exemples">Exemples</h2> - -<p>Ouvrez le menu contextuel de l'onglet de votre interface utilisateur personnalisée, dans ce cas :</p> - -<pre class="brush:js">document.addEventListener('contextmenu', event => { - const foo = event.target.closest('.foo'); - if (foo) { - // When the context menu is opened on an element with the foo class - // set the context to "opening a tab context menu". - browser.menus.overrideContext({ - context: 'tab', - tabId: parseInt(foo.dataset.tabId) - }); - } -}, { capture: true }); -</pre> - -<p>Voir <a href="https://blog.mozilla.org/addons/2018/11/08/extensions-in-firefox-64/#cm">ce billet de blog</a> pour plus de détails.</p> diff --git a/files/fr/mozilla/add-ons/webextensions/api/proxy/onproxyerror/index.html b/files/fr/mozilla/add-ons/webextensions/api/proxy/onerror/index.html index fb5e7df4e5..fb5e7df4e5 100644 --- a/files/fr/mozilla/add-ons/webextensions/api/proxy/onproxyerror/index.html +++ b/files/fr/mozilla/add-ons/webextensions/api/proxy/onerror/index.html diff --git a/files/fr/mozilla/add-ons/webextensions/api/browsersettings/proxyconfig/index.html b/files/fr/mozilla/add-ons/webextensions/api/proxy/settings/index.html index 8ebc5822c2..8ebc5822c2 100644 --- a/files/fr/mozilla/add-ons/webextensions/api/browsersettings/proxyconfig/index.html +++ b/files/fr/mozilla/add-ons/webextensions/api/proxy/settings/index.html diff --git a/files/fr/mozilla/add-ons/webextensions/api/userscripts/apiscript/index.html b/files/fr/mozilla/add-ons/webextensions/api/userscripts/apiscript/index.html deleted file mode 100644 index 1af1fed65e..0000000000 --- a/files/fr/mozilla/add-ons/webextensions/api/userscripts/apiscript/index.html +++ /dev/null @@ -1,43 +0,0 @@ ---- -title: APIScript -slug: Mozilla/Add-ons/WebExtensions/API/userScripts/APIScript -tags: - - APIScript - - Add-ons - - Custimisation - - Extensions - - Firefox - - Reference - - WebExtensions - - userScripts -translation_of: Mozilla/Add-ons/WebExtensions/API/userScripts/APIScript ---- -<p>{{AddOnSidebar}}</p> - -<p>L'APIScript userScripts est un type spécial d'extension Content Script.</p> - -<p>Comme un script de contenu d'extension régulier :</p> - -<ul> - <li>Il s'exécute dans les processus de contenu..</li> - <li>Il a accès à la fenêtre et aux globes de documents relatifs à la page Web à laquelle il est attaché.</li> - <li>Il a accès au même sous-ensemble d'API WebExtension généralement disponibles dans un script de contenu.</li> -</ul> - -<p>Contrairement à une extension régulière Content Script :</p> - -<ul> - <li>Il doit être déclaré dans le manifeste en utilisant la propriété user_scripts.api_script.</li> -</ul> - -<pre class="brush: json">manifest.json -{ - ... - "user_scripts": { - "api_script": "apiscript.js" - } -}</pre> - -<p>Il est exécuté automatiquement sur n'importe quelle page Web correspondant à userScript enregistrée par la même extension, avant qu'un userScript correspondant ne soit exécuté.</p> - -<p>Il a accès à l'API Event browser.userScripts.onBeforeScript que l'APIScript peut utiliser pour inscrire un auditeur à appeler juste avant qu'un userScript correspondant soit exécuté, ce qui permet à l'APIScript d'exporter un ensemble de méthodes API personnalisées pour le rendre disponible à l'userScript.</p> diff --git a/files/fr/mozilla/add-ons/webextensions/api/userscripts/registereduserscript/registereduserscript.unregister()/index.html b/files/fr/mozilla/add-ons/webextensions/api/userscripts/registereduserscript/registereduserscript.unregister()/index.html deleted file mode 100644 index 0a71ce921b..0000000000 --- a/files/fr/mozilla/add-ons/webextensions/api/userscripts/registereduserscript/registereduserscript.unregister()/index.html +++ /dev/null @@ -1,49 +0,0 @@ ---- -title: unregister -slug: >- - Mozilla/Add-ons/WebExtensions/API/userScripts/RegisteredUserScript/RegisteredUserScript.unregister() -tags: - - API - - Extensions - - Reference - - RegisteredUserScript - - Type - - unregister - - userScripts -translation_of: >- - Mozilla/Add-ons/WebExtensions/API/userScripts/RegisteredUserScript/RegisteredUserScript.unregister() ---- -<p>{{AddonSidebar}}</p> - -<p>La méhode <code>unregister()</code> de l'interface {{WebExtAPIRef("userScripts.RegisteredUserScript","RegisteredUserScript")}}désenregistre le script utilisateur représenté par cette instance d'interface et précédemment enregistré via {{WebExtAPIRef("userScripts.register","userScripts.register()")}}.</p> - -<div class="blockIndicator note"> -<p><strong>Note:</strong> Les scripts utilisateur sont automatiquement désenregistrés lorsque la page d'extension correspondante (à partir de laquelle les scripts utilisateur ont été enregistrés) est déchargée, vous devez donc enregistrer un script utilisateur depuis une page d'extension qui persiste au moins aussi longtemps que vous voulez que les scripts utilisateur restent enregistrés..</p> -</div> - -<h2 id="Syntaxe">Syntaxe</h2> - -<pre class="brush: js">const registeredUserScript = await browser.userScripts.register( - userScriptOptions // object -); -… -await registeredUserScript.unregister()</pre> - -<h3 id="Paramètres">Paramètres</h3> - -<p>Aucun.</p> - -<h3 id="Valeur_retournée">Valeur retournée</h3> - -<p>Une {{JSxRef("Promise")}} qui sera résolu une fois le script utilisateur désenregistré. La promesse ne rapporte rien.</p> - -<h2 id="Compatibilité_du_navigateur">Compatibilité du navigateur</h2> - -<p>{{Compat("webextensions.api.userScripts.RegisteredUserScript.unregister")}}</p> - -<h2 id="Voir_aussi">Voir aussi</h2> - -<ul> - <li>{{WebExtAPIRef("userScripts.register","userScripts.register()")}}</li> - <li>{{WebExtAPIRef("userScripts.RegisteredUserScript","RegisteredUserScript")}}</li> -</ul> diff --git a/files/fr/mozilla/add-ons/webextensions/api/userscripts/travailler_avec_userscripts/index.html b/files/fr/mozilla/add-ons/webextensions/api/userscripts/working_with_userscripts/index.html index 8cf9fcc2b2..8cf9fcc2b2 100644 --- a/files/fr/mozilla/add-ons/webextensions/api/userscripts/travailler_avec_userscripts/index.html +++ b/files/fr/mozilla/add-ons/webextensions/api/userscripts/working_with_userscripts/index.html diff --git a/files/fr/mozilla/add-ons/webextensions/bonnes_pratiques_pour_la_mise_a_jour_de_votre_extension/index.html b/files/fr/mozilla/add-ons/webextensions/bonnes_pratiques_pour_la_mise_a_jour_de_votre_extension/index.html deleted file mode 100644 index d8bff8eccc..0000000000 --- a/files/fr/mozilla/add-ons/webextensions/bonnes_pratiques_pour_la_mise_a_jour_de_votre_extension/index.html +++ /dev/null @@ -1,31 +0,0 @@ ---- -title: Bonnes pratiques pour la mise à jour de votre extension -slug: >- - Mozilla/Add-ons/WebExtensions/bonnes_pratiques_pour_la_mise_a_jour_de_votre_extension -tags: - - Add-ons - - Extensions - - Guide - - WebExtensions -translation_of: Mozilla/Add-ons/WebExtensions/Best_practices_for_updating_your_extension ---- -<p>{{AddonSidebar}}</p> - -<p>Presque toutes les extensions doivent être mises à jour de temps en temps, que ce soit pour corriger des bugs ou ajouter de nouvelles fonctionnalités. La mise à jour de votre extension vaut la peine d'être planifiée méthodiquement, non seulement pour assurer la qualité des changements, mais aussi pour maximiser les possibilités d'engagement ou de réengagement avec votre public.</p> - -<p>Pour vous aider à fournir les mises à jour les plus productives, voici quelques conseils de la communauté des développeurs d'extensions Firefox :</p> - -<ul> - <li>Créez une feuille de route des fonctionnalités que vous souhaitez ajouter à votre extension, en n'oubliant pas de la mettre à jour en fonction des commentaires des utilisateurs. Prévoyez également la sortie de nouvelles versions de navigateurs, pour confirmer que rien ne casse votre extension et pour profiter des nouvelles fonctionnalités. Si vous voulez rendre votre feuille de route publique, ne soyez pas trop précis quant aux dates de livraison, car le non-respect des délais pourrait réduire la confiance des utilisateurs dans votre extension.</li> - <li>Effectuez des mises à jour selon un cycle régulier, mensuel ou trimestriel, à moins que vous n'ayez besoin de corriger un bogue critique. Les utilisateurs peuvent trouver des mises à jour plus fréquentes (par exemple quotidiennes ou même hebdomadaires), en particulier celles qui affectent les fonctionnalités, les fonctions, le comportement ou l'apparence de l'extension, trop perturbatrices. Le maintien d'un cycle de mise à jour régulier peut aider à maintenir l'engagement des utilisateurs.</li> - <li>En plus de tester la version actuelle de Firefox, testez votre extension dans les versions Firefox Nightly et Beta pour vous assurer qu'aucun changement ne risque d'affecter votre extension.</li> - <li>Inclure une page d'intégration qui décrit les améliorations et les changements inclus dans la mise à niveau - ne pas simplement dire "corrections de bogues et améliorations". Pour plus d'informations, voir <a href="/fr/docs/Mozilla/Add-ons/WebExtensions/onboarding_upboarding_offboarding_best_practices">Bonnes pratiques pour les utilisateurs d'embarquement, d'embarquement et de débarquement</a>.</li> - <li>Évitez de déplacer les fonctions "gratuites" derrière un mur payant, car la réaction des utilisateurs est susceptible d'être négative. (L'ajout de nouvelles fonctions payantes n'est généralement pas problématique. Cependant, l'ajout de fonctions payantes à une extension gratuite doit être manipulé avec précaution, pour éviter de donner l'impression que l'extension dans son ensemble doit maintenant être payée). Pour plus de détails, voir <a href="/fr/docs/Mozilla/Add-ons/Distribution/gagner_de_l_argent_avec_les_extensions_de_navigateur">Gagnez de l'argent avec les extensions de navigateur</a>.</li> - <li>Évitez de supprimer brusquement des fonctionnalités, pensez à prévoir une période d'obsolescence d'au moins un cycle de mise à niveau, en particulier lorsque vous n'avez pas de mesures pour l'utilisation de cette fonctionnalité. Le fait de prévoir une période d'amortissement permet aux utilisateurs de fournir une rétroaction sur les répercussions que vous n'avez peut-être pas prévues.</li> - <li>Fournir des instructions guidées pour les fonctions remplacées, telles que la conservation des anciens éléments de menu qui fournissent ensuite un message guidant l'utilisateur vers la nouvelle fonction.</li> - <li>Fournir une combinaison appropriée de corrections de bogues et de fonctionnalités nouvelles ou améliorées dans une mise à niveau. Les utilisateurs qui sont gênés par un bogue peuvent réagir négativement si vos mises à niveau ne semblent pas corriger les bogues. Cependant, si vous avez plusieurs correctifs techniques à apporter qui ont peu ou pas d'impact sur l'utilisateur, vous pouvez envisager de les inclure dans une version séparée, silencieuse (pas de page d'upboarding).</li> - <li>N'oubliez pas de mettre à jour la page de l'AMO de votre extension. Inclure vos notes de version dans la section dédiée. Mettez à jour la description pour couvrir les nouvelles fonctionnalités, remplacez ou ajoutez des captures d'écran, et pensez à modifier l'icône de votre extension pour mettre en évidence les modifications que vous avez apportées.</li> - <li>Inclure des nouvelles sur la mise à jour dans vos canaux tels que le site Web, les médias sociaux, les groupes d'utilisateurs, etc.</li> - <li>Après la publication de votre mise à jour, surveillez les évaluations et les commentaires, la rétroaction et les canaux de soutien pour vous assurer qu'il n'y a pas de réponses inattendues qui suggèrent des erreurs dans vos changements ou que les changements ne fonctionnent pas comme prévu.</li> - <li>Commencez à planifier votre prochaine mise à niveau !</li> -</ul> diff --git a/files/fr/mozilla/add-ons/webextensions/compatibilité_navigateurs_api_javascript/index.html b/files/fr/mozilla/add-ons/webextensions/browser_support_for_javascript_apis/index.html index d7d80b6988..d7d80b6988 100644 --- a/files/fr/mozilla/add-ons/webextensions/compatibilité_navigateurs_api_javascript/index.html +++ b/files/fr/mozilla/add-ons/webextensions/browser_support_for_javascript_apis/index.html diff --git a/files/fr/mozilla/add-ons/webextensions/construction_extension_cross_browser/index.html b/files/fr/mozilla/add-ons/webextensions/build_a_cross_browser_extension/index.html index 506822110d..506822110d 100644 --- a/files/fr/mozilla/add-ons/webextensions/construction_extension_cross_browser/index.html +++ b/files/fr/mozilla/add-ons/webextensions/build_a_cross_browser_extension/index.html diff --git a/files/fr/mozilla/add-ons/webextensions/choisissez_une_version_firefox_pour_le_developpement_extensions_web/index.html b/files/fr/mozilla/add-ons/webextensions/choisissez_une_version_firefox_pour_le_developpement_extensions_web/index.html deleted file mode 100644 index 69d23ee3ba..0000000000 --- a/files/fr/mozilla/add-ons/webextensions/choisissez_une_version_firefox_pour_le_developpement_extensions_web/index.html +++ /dev/null @@ -1,218 +0,0 @@ ---- -title: Choisissez une version Firefox pour le développement d'extensions web -slug: >- - Mozilla/Add-ons/WebExtensions/choisissez_une_version_firefox_pour_le_developpement_extensions_web -tags: - - Add-ons - - Développement - - Extensions - - Guide - - Outils - - Tools -translation_of: >- - Mozilla/Add-ons/WebExtensions/Choose_a_Firefox_version_for_web_extension_develop ---- -<p>{{AddonSidebar}}</p> - -<p>Firefox propose plusieurs versions qui offrent différentes capacités pour le développement d'extensions web. Cet article donne un aperçu des différences entre ces versions de Firefox et recommande comment les utiliser dans le cycle de développement.</p> - -<p>Ce tableau résume les informations sur les éditions, les fonctionnalités de développement d'extension et fournit une recommandation pour chaque édition utilisée dans le développement d'extension.</p> - -<table> - <thead> - <tr> - <th scope="col"> - <p>Edition</p> - </th> - <th scope="col"> - <p>Version</p> - </th> - <th scope="col"> - <p>Stable</p> - </th> - <th scope="col"> - <p>Outils pour le développement de l'extension</p> - </th> - <th scope="col"> - <p>Installe les extensions non signées</p> - </th> - <th scope="col"> - <p>Utilisation recommandée pour le développement de l'extension</p> - </th> - </tr> - </thead> - <tbody> - <tr> - <td> - <p><a href="https://www.mozilla.org/fr/firefox/">Release</a></p> - </td> - <td> - <p>Courant</p> - </td> - <td> - <p>Oui</p> - </td> - <td> - <p>Oui</p> - </td> - <td> - <p>Non</p> - </td> - <td> - <p>Tests de régression</p> - - <p>Tests alpha et bêta par l'utilisateur</p> - </td> - </tr> - <tr> - <td> - <p><a href="https://beta.mozilla.org">Beta</a></p> - </td> - <td> - <p>Courant+1</p> - </td> - <td> - <p>Oui</p> - </td> - <td> - <p>Oui</p> - </td> - <td> - <p>Non</p> - </td> - <td> - <p>Tests de régression</p> - - <p>Tests alpha et bêta par l'utilisateur</p> - </td> - </tr> - <tr> - <td> - <p><a href="https://www.mozilla.org/fr/firefox/channel/desktop/#developer">Developer Edition</a></p> - </td> - <td> - <p>Courant +1</p> - </td> - <td> - <p>Oui</p> - </td> - <td> - <p>Oui</p> - </td> - <td> - <p>Oui</p> - </td> - <td> - <p>Développement de l'extension</p> - </td> - </tr> - <tr> - <td> - <p><a href="https://nightly.mozfr.org/">Nightly</a></p> - </td> - <td> - <p>Courant +2</p> - </td> - <td> - <p>Non</p> - </td> - <td> - <p>Oui</p> - </td> - <td> - <p>Oui</p> - </td> - <td> - <p>Accès anticipé à la dernière API WebExtension</p> - </td> - </tr> - <tr> - <td> - <p><a href="https://www.mozilla.org/fr/firefox/organizations/">ESR</a></p> - </td> - <td> - <p>Courant - >1</p> - </td> - <td> - <p>Oui</p> - </td> - <td> - <p>Oui</p> - </td> - <td> - <p>Oui</p> - </td> - <td> - <p>Développement de la vulgarisation au sein des entreprises</p> - </td> - </tr> - </tbody> -</table> - -<h2 id="Firefox_version_and_their_web_extension_development_capabilities">Firefox version and their web extension development capabilities</h2> - -<h3 id="Finale">Finale</h3> - -<p>C'est la version de Firefox que la plupart des gens utilisent, c'est la version offerte quand quelqu'un visite la <a href="https://www.mozilla.org/fr/firefox/">page principale de téléchargement Firefox</a>.</p> - -<p>Vous chargez les extensions en cours de développement dans cette version de Firefox en utilisant <a href="/fr/docs/Outils/about:debugging">about:debugging</a> ou <a href="/fr/docs/Mozilla/Add-ons/WebExtensions/Getting_started_with_web-ext">web-ext</a> et avez accès à la <a href="/fr/docs/Outils/Boîte_à_outils_du_navigateur">fenêtre de débogage de l'addon</a>. Cependant, vous ne pouvez pas installer des extensions non signées, ce qui limite votre capacité à tester des fonctionnalités telles que le comportement de redémarrage, les invites d'autorisation et les mises à niveau.</p> - -<p>Le développement d'extensions pour Firefox pour Android est entièrement supporté.</p> - -<p>Utilisation suggérée pour le développement : Vous pouvez installer et tester une copie signée de votre extension dans la version de publication pour effectuer un test de régression final. Vous pouvez également distribuer des copies signées de votre extension à d'autres personnes pour les aider à effectuer des tests alpha ou bêta.</p> - -<p><a href="https://www.mozilla.org/fr/firefox/">Téléchargement</a></p> - -<h3 id="Béta">Béta</h3> - -<p>Cette version de Firefox est généralement utilisée par les personnes intéressées à profiter des fonctionnalités de la prochaine version de Firefox.</p> - -<p>Vous chargez les extensions en cours de développement dans cette version de Firefox en utilisant <a href="/fr/docs/Outils/about:debugging">about:debugging</a> ou <a href="/fr/docs/Mozilla/Add-ons/WebExtensions/Getting_started_with_web-ext">web-ext</a> et avez accès à la <a href="/fr/docs/Outils/Boîte_à_outils_du_navigateur">fenêtre de débogage de l'addon</a>. Cependant, vous ne pouvez pas installer des extensions non signées, ce qui limite votre capacité à tester des fonctionnalités telles que le comportement de redémarrage, les invites d'autorisation et les mises à niveau.</p> - -<p>Le développement d'extensions pour Firefox pour Android est entièrement supporté.</p> - -<p>Utilisation suggérée pour le développement : Vous pouvez installer et tester une copie signée de votre extension dans Beta pour effectuer un test de régression. De tels tests vous donneront une certaine certitude que votre extension continuera à fonctionner correctement dans la prochaine version de Firefox. Vous pouvez également distribuer des copies signées de votre extension à d'autres personnes pour les aider à effectuer des tests alpha ou bêta.</p> - -<p><a href="https://beta.mozilla.org">Téléchargement</a></p> - -<h3 id="Edition_développeur">Edition développeur</h3> - -<p>Cette version de Firefox est basée sur la version bêta de Firefox avec des fonctionnalités supplémentaires conçues pour aider au développement du Web et des extensions Web.</p> - -<p>Vous chargez les extensions en cours de développement dans cette version de Firefox en utilisant <a href="/fr/docs/Outils/about:debugging">about:debugging</a> ou <a href="/fr/docs/Mozilla/Add-ons/WebExtensions/Getting_started_with_web-ext">web-ext</a> et avez accès à la <a href="/fr/docs/Outils/Boîte_à_outils_du_navigateur">fenêtre de débogage de l'addon</a>. Vous pouvez également installer des extensions non signées, après avoir ajusté ou paramétré certaines propriétés de about:config (généralement moins de changements que nécessaire pour réaliser les mêmes tâches dans Nightly). Cela vous permet de tester des fonctionnalités telles que le comportement de redémarrage, les invites d'autorisation et les mises à niveau.</p> - -<p>Le développement d'extensions pour Firefox pour Android est entièrement supporté.</p> - -<p>Utilisation suggérée pour le développement : Utilisez Developer Edition comme votre principale plate-forme de développement et de test d'extensions web.</p> - -<p><a href="https://www.mozilla.org/fr/firefox/channel/desktop/#developer">Téléchargement</a></p> - -<h3 id="Nightly">Nightly</h3> - -<p>Cette version de Firefox fournit une version qui est mise à jour tous les soirs avec les dernières fonctionnalités de développement pour la future version de Firefox. Il est généralement utilisé par les personnes intéressées à découvrir les toutes dernières fonctionnalités et à donner leur avis lorsqu'elles rencontrent des problèmes.</p> - -<p>Vous chargez les extensions en cours de développement dans cette version de Firefox en utilisant <a href="/fr/docs/Outils/about:debugging">about:debugging</a> our <a href="/fr/docs/Mozilla/Add-ons/WebExtensions/Getting_started_with_web-ext">web-ext</a> et avez accès à la <a href="/fr/docs/Outils/Boîte_à_outils_du_navigateur">fenêtre de débogage de l'addon</a>. Vous pouvez également installer des extensions non signées, après avoir ajusté ou configuré certaines propriétés de about:config. Cela vous permet de tester des fonctionnalités telles que le comportement de redémarrage, les invites d'autorisation et les mises à niveau.</p> - -<p>Le développement d'extensions pour Firefox pour Android est entièrement supporté.</p> - -<p>Utilisation suggérée pour le développement : Nightly fournit un aperçu des futures fonctionnalités de Firefox, y compris les API WebExtension, qui sont en cours de développement. La stabilité des fonctionnalités n'est pas garantie, par conséquent, Nightly n'est pas recommandé comme plateforme de développement d'extension web principale. Vous pouvez, cependant, utiliser Nightly là où vous voulez profiter des fonctionnalités à venir ou tester pour vous donner la plus longue vue d'ensemble de la compatibilité de votre extension avec Firefox.</p> - -<p><a href="https://nightly.mozilla.org">Download</a></p> - -<h3 id="ESR">ESR</h3> - -<p>La version ESR (Extended Support Release) de Firefox offre des fonctionnalités permettant aux professionnels informatiques de configurer et de déployer Firefox dans leur organisation. Il fournit également aux entreprises une version de Firefox stable du point de vue des fonctionnalités pour une durée plus longue que celle du cycle de version normal. Ainsi, au moment d'écrire ces lignes, la version de sortie de Firefox était de 65 (avec Beta sur 66 et Nightly sur 67) la version ESR était de 60.</p> - -<p>Vous chargez les extensions en cours de développement dans cette version de Firefox en utilisant <a href="/fr/docs/Outils/about:debugging">about:debugging</a> ou <a href="/fr/docs/Mozilla/Add-ons/WebExtensions/Getting_started_with_web-ext">web-ext</a> et avez accès à la <a href="/fr/docs/Outils/Boîte_à_outils_du_navigateur">fenêtre de débogage de l'addon</a>. Vous pouvez également installer des extensions non signées, après avoir ajusté ou défini certaines propriétés de about:config (cette fonctionnalité est fournie pour que les entreprises puissent installer des extensions qu'elles veulent garder privées et ne veulent pas soumettre à add-ons.mozilla.org pour signature).</p> - -<p>Le développement d'extensions pour Firefox pour Android est entièrement supporté.</p> - -<p>Utilisation suggérée pour le développement : Utilisez ESR comme principale plate-forme de développement et de test d'extensions Web lors du développement d'extensions pour une entreprise et vous souhaitez confirmer que l'ensemble des fonctionnalités de votre extension est compatible avec la version ESR.</p> - -<p><a href="https://www.mozilla.org/fr/firefox/organizations/">Téléchargement</a></p> - -<div class="SnapLinksContainer" style="margin-left: 0px; margin-top: 0px; display: none;"> -<div class="SL_SelectionRect"> -<div class="SL_SelectionLabel"></div> -</div> -<svg class="SnapLinksHighlighter" xmlns:xmlns="http://www.w3.org/2000/svg"> <rect height="0" width="0"></rect> </svg></div> diff --git a/files/fr/mozilla/add-ons/webextensions/incompatibilités_chrome/index.html b/files/fr/mozilla/add-ons/webextensions/chrome_incompatibilities/index.html index 71d20cc62b..71d20cc62b 100644 --- a/files/fr/mozilla/add-ons/webextensions/incompatibilités_chrome/index.html +++ b/files/fr/mozilla/add-ons/webextensions/chrome_incompatibilities/index.html diff --git a/files/fr/mozilla/add-ons/webextensions/comparaison_avec_le_sdk_add-on/index.html b/files/fr/mozilla/add-ons/webextensions/comparaison_avec_le_sdk_add-on/index.html deleted file mode 100644 index 52ec132d64..0000000000 --- a/files/fr/mozilla/add-ons/webextensions/comparaison_avec_le_sdk_add-on/index.html +++ /dev/null @@ -1,746 +0,0 @@ ---- -title: Comparaison avec le SDK Add-on -slug: Mozilla/Add-ons/WebExtensions/Comparaison_avec_le_SDK_Add-on -tags: - - Addon SDK - - AddonSDK - - SDK - - WebExtensions - - porting -translation_of: Mozilla/Add-ons/WebExtensions/Comparison_with_the_Add-on_SDK ---- -<div>{{AddonSidebar}}</div> - -<p>Cet article est une comparaison technique entre les add-ons construits avec le SDK et ceux construits avec la technologie WebExtensions. Il est destiné à aider les personnes maintenant un add-on SDK à le porter vers une WebExtension.</p> - -<div class="blockIndicator warning"> -<p>La prise en charge des extensions utilisant XUL/XPCOM ou le SDK Add-on a été supprimée dans Firefox 57, publié en novembre 2017. Comme il n'y a pas de version supportée de Firefox permettant ces technologies, cette page sera supprimée d'ici décembre 2020.</p> -</div> - -<p>Si vous souhaitez porter une <a href="/fr/docs/Archive/Add-ons/Overlay_Extensions">extension de surcouche</a> ou une <a href="/fr/docs/Mozilla/Add-ons/Bootstrapped_extensions">extension <em>bootstrappée</em></a>, consultez la page de <a href="/fr/docs/Mozilla/Add-ons/WebExtensions/Comparison_with_XUL_XPCOM_extensions">comparaison des extensions XUL/XPCOM</a>.</p> - -<p>Les WebExtensions et add-ons SDK partagent les mêmes concepts et structures de base. Ces deux technologies utilisent :</p> - -<ul> - <li>Des <a href="/fr/Add-ons/WebExtensions/Comparison_with_the_Add-on_SDK#Manifest_files">fichiers de manifeste</a> qui définissent les métadonnées de l'extension et certains aspects de son comportement.</li> - <li>Des <a href="/fr/Add-ons/WebExtensions/Comparaison_avec_le_SDK_Add-on#Scripts_persistants">scripts persistants</a> qui accèdent à un ensemble d'API JavaScript privilégiées et qui restent chargés tant que l'extension est activée.</li> - <li>Des <a href="/fr/Add-ons/WebExtensions/Comparaison_avec_le_SDK_Add-on#Scripts_de_contenu">scripts de contenu</a> qui peuvent être injectés dans les pages web et qui peuvent communiquer avec les scripts persistants grâce à une API de messagerie asynchrone.</li> - <li><a href="/fr/Add-ons/WebExtensions/Comparaison_avec_le_SDK_Add-on#Éléments_d'interface_utilisateur">La possibilité d'ajouter des éléments d'interface utilisateur spécifiques</a>, tels que des boutons, au navigateur. Ces boutons peuvent ainsi donner accès à des fenêtres contextuelles définies en HTML, JavaScript et CSS.</li> - <li><a href="/fr/Add-ons/WebExtensions/Comparison_with_the_Add-on_SDK#JavaScript_APIs">Un ensemble d'API JavaScript privilégiées</a> pour interagir avec le Web ou avec le navigateur.</li> - <li><a href="/fr/Add-ons/WebExtensions/Comparaison_avec_le_SDK_Add-on#Outil_en_ligne_de_commande">Un outil en ligne de commande</a> que les développeurs peuvent utiliser afin de tester leurs extensions.</li> -</ul> - -<p>Au-delà de ces ressemblances, il existe de nombreuses différences énumérées ci-après.</p> - -<h2 id="Les_fichiers_de_manifeste">Les fichiers de manifeste</h2> - -<p>Pour ces deux technologies, on dispose d'un fichier manifeste en JSON situé dans le répertoire racine de l'extension. Dans le SDK, ce fichier est appelé <code><a href="/en-US/docs/Archive/Add-ons/Add-on_SDK/Tools/package_json">package.json</a></code> ; pour les WebExtensions, ce fichier s'intitule <code><a href="/fr/Add-ons/WebExtensions/manifest.json">manifest.json</a></code>. Les deux fichiers contiennent des métadonnées de base telles que le nom, la description et les icônes de l'extension.</p> - -<p>Cependant, <code>manifest.json</code> contient de nombreuses clés qui définissent certaines capacités et certains comportements de l'extension. Pour le SDK, certaines sont définies dans le code :</p> - -<table class="fullwidth-table standard-table"> - <thead> - <tr> - <th scope="col">Fonctionnalité</th> - <th scope="col">SDK</th> - <th scope="col">WebExtensions</th> - </tr> - </thead> - <tbody> - <tr> - <td>Scripts de contenu correspondant aux modèles d'URL</td> - <td>API <code><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/page-mod">page-mod</a></code></td> - <td>Clé de manifeste <code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/manifest.json/content_scripts">content_scripts</a></code></td> - </tr> - <tr> - <td>Boutons de la barre d'outils</td> - <td>API <code><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/ui_button_action">ui/button/action</a></code></td> - <td>Clé de manifeste <code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/manifest.json/browser_action">browser_action</a></code></td> - </tr> - <tr> - <td>Accéder aux API privilégiées</td> - <td>Fonction <code>require()</code></td> - <td>Clé de manifeste <code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/manifest.json/permissions">permissions</a></code></td> - </tr> - </tbody> -</table> - -<p>Les WebExtensions sont donc plus déclaratives et moins programmables que les add-ons construits avec le SDK.</p> - -<p>Pour le SDK, on utilisera généralement <code><a href="/fr/Add-ons/SDK/Tools/jpm#jpm_init">jpm init</a></code> afin de créer un nouveau <code>package.json</code>. La technologie WebExtensions n'a pas d'équivalent de <code>jpm init</code>, le fichier de manifeste sera probablement écrit à partir de zéro ou adapté d'un fichier existant.</p> - -<h3 id="En_savoir_plus">En savoir plus</h3> - -<ul> - <li><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/manifest.json">Le fichier <code>manifest.json</code></a></li> -</ul> - -<h2 id="Scripts_persistants">Scripts persistants</h2> - -<p>Les deux technologies utilisent des scripts persistants qui restent chargés pendant que l'extension est active. Ces scripts accèdent à des API privilégiées et peuvent communiquer avec d'autres parties de l'extension telles que les scripts de contenu.</p> - -<p>Dans le SDK, par défaut, ce script est appelé <code>index.js</code> et il <a href="/en-US/docs/Archive/Add-ons/Add-on_SDK/Guides/Module_structure_of_the_SDK#Local_Modules">peut charger d'autres scripts à l'aide du chargeur de module</a>.</p> - -<p>Avec les WebExtensions, ces scripts sont appelés <a href="/fr/Add-ons/WebExtensions/Anatomy_of_a_WebExtension#Background_scripts">scripts d'arrière-plan</a>. Vous pouvez définir un ensemble de scripts listés via la clé de manifeste <code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/manifest.json/background">background</a></code> et tous seront chargés dans le même document (une page HTML vierge cachée et générée automatiquement). Vous pouvez également définir votre propre document personnalisé à l'aide de la clé <code>background</code>.</p> - -<p>Une différence importante est que les scripts d'arrière-plan ont accès à la variable globale <code><a href="/fr/docs/Web/API/Window">window</a></code> globale qui permet d'utiliser l'ensemble des objets DOM habituellement présents dans une fenêtre. De cette façon, l'écriture des extensions se rapproche de l'écriture de pages web avec un accès direct à l'ensemble des API Web classiques (par exemple <a href="/fr/docs/Web/API/XMLHttpRequest">XMLHttpRequest</a> ou <a href="/fr/docs/Web/API/API_IndexedDB">IndexedDB</a>).</p> - -<p>On notera également que, par défaut, les extensions ont une <a href="/fr/Add-ons/WebExtensions/Content_Security_Policy">politique de sécurité de contenu (CSP)</a> qui leur est appliquée. Vous pouvez spécifier votre propre politique, mais la politique par défaut, entre autres, interdit les pratiques potentiellement dangereuses telles que l'utilisation d'<code><a href="/fr/docs/Web/JavaScript/Reference/Objets_globaux/eval">eval()</a></code>.</p> - -<h3 id="En_savoir_plus_2">En savoir plus</h3> - -<ul> - <li><a href="/fr/Add-ons/WebExtensions/Anatomy_of_a_WebExtension#Background_scripts">Scripts d'arrière-plan pour les extensions</a></li> -</ul> - -<h2 id="Scripts_de_contenus">Scripts de contenus</h2> - -<p>Pour les extensions SDK et les WebExtensions, les scripts persistants ne peuvent pas accéder directement au contenu des pages web. Au lieu de cela, les extensions peuvent ajouter des scripts de contenu aux pages web. Ces scripts :</p> - -<ul> - <li>accèdent directement au contenu web</li> - <li>n'accèdent pas aux API privilégiées</li> - <li>peuvent communiquer avec les scripts persistants avec une API de messagerie.</li> -</ul> - -<p>Pour les deux technologies, on dispose de deux façons pour ajouter des scripts de contenu : on peut rattacher un ensemble de scripts aux pages dont l'URL contient un motif donné ou on peut, via le code, ajouter un script à une page d'un onglet donné. Si ces mécanismes existent dans les deux technologies, ils sont exécutés différemment :</p> - -<table class="fullwidth-table standard-table"> - <thead> - <tr> - <th scope="col">Opération</th> - <th scope="col">SDK</th> - <th scope="col">WebExtensions</th> - </tr> - </thead> - <tbody> - <tr> - <td>Attacher des scripts à des pages dont l'URL correspond à un motif</td> - <td>API <code><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/page-mod">page-mod</a></code></td> - <td>Clé de manifeste <code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/manifest.json/content_scripts">content_scripts</a></code></td> - </tr> - <tr> - <td>Attacher des scripts à des pages hébergées dans un onglet</td> - <td><code><a href="/fr/Add-ons/SDK/High-Level_APIs/tabs#Run_scripts_in_a_tab">tab.attach()</a></code></td> - <td><code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/tabs/executeScript">tabs.executeScript()</a></code></td> - </tr> - </tbody> -</table> - -<p>Les motifs de correspondance utilisés pour les URL sont différentes :</p> - -<ul> - <li><a href="/fr/docs/Archive/Add-ons/Add-on_SDK/Low-Level_APIs/util_match-pattern">Motif de correspondance pour le SDK</a></li> - <li><a href="/fr/Add-ons/WebExtensions/match_patterns">Motif de correspondance pour les WebExtensions</a></li> -</ul> - -<p>Dans les deux technologies, on peut passer des options pour contrôler lorsque le script s'exécute et s'il sera attaché aux sous-trames. Les WebExtensions n'ont pas d'équivalent pour <code>contentScriptOptions</code> et, si on veut transmettre les options de configuration à un script de contenu, il faudra les envoyer via un message ou les stocker dans <code><a href="/fr/Add-ons/WebExtensions/API/storage/local">storage.local</a></code>.</p> - -<p>Dans les deux technologies, les scripts de contenu peuvent communiquer avec des scripts persistants grâce à une API de communication asynchrone :</p> - -<table class="fullwidth-table standard-table"> - <thead> - <tr> - <th scope="col">Opération</th> - <th scope="col">SDK</th> - <th scope="col">WebExtensions</th> - </tr> - </thead> - <tbody> - <tr> - <td>Envoi de message</td> - <td><a href="/fr/Add-ons/SDK/Guides/Content_Scripts/port#emit()"><code>port.emit()</code></a></td> - <td><code><a href="/fr/Add-ons/WebExtensions/API/runtime/sendMessage">runtime.sendMessage()</a></code> / <code><a href="/fr/Add-ons/WebExtensions/API/tabs/sendMessage">tabs.sendMessage()</a></code></td> - </tr> - <tr> - <td>Réception de message</td> - <td><code><a href="/fr/Add-ons/SDK/Guides/Content_Scripts/port#on()">port.on()</a></code></td> - <td><code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/runtime/onMessage">runtime.onMessage</a></code></td> - </tr> - </tbody> -</table> - -<ul> - <li><a href="/fr/Add-ons/SDK/Guides/Content_Scripts#Communicating_with_the_add-on">Communiquer avec des scripts persistants dans le SDK</a></li> - <li><a href="/fr/Add-ons/WebExtensions/Content_scripts#Communicating_with_background_scripts">Communiquer avec des scripts persistants dans les WebExtensions</a></li> -</ul> - -<p>Dans les deux cas, les scripts de contenus peuvent communiquer avec les scripts chargés par la page à l'aide de <code><a href="/fr/docs/Web/API/Window/postMessage">window.postMessage</a></code> et <code><a href="/fr/docs/Web/API/EventTarget/addEventListener">window.addEventListener</a></code>.</p> - -<p>Dans les deux cas, les scripts accèdent à une vue « propre » du DOM : cela signifie qu'ils ne voient pas les modifications apportées au DOM par les scripts chargés par la page.</p> - -<p>Dans le SDK, les scripts de contenu peuvent <a href="/fr/Add-ons/SDK/Guides/Content_Scripts/Interacting_with_page_scripts#Sharing_objects_with_page_scripts">partager des objets avec des scripts de page</a>, en utilisant des techniques comme <code>unsafeWindow</code> et <code><a href="/fr/docs/Mozilla/Tech/XPCOM/Language_Bindings/Components.utils.createObjectIn">createObjectIn</a></code>. Avec les WebExtensions, la <code>unsafeWindow</code> est disponible par l'intermédiaire de <code><a href="/fr/Add-ons/WebExtensions/Content_scripts#Accessing_page_script_objects_from_content_scripts">wrappedJSObject</a></code>. Toutes les fonctions d'aide à l'exportation sont également disponibles.</p> - -<h3 id="En_savoir_plus_3">En savoir plus</h3> - -<ul> - <li><a href="/fr/Add-ons/WebExtensions/Content_scripts">Scripts de contenu des WebExtensions</a></li> -</ul> - -<h2 id="Les_éléments_d'interface_utilisateur_(UI)">Les éléments d'interface utilisateur (<em>UI</em>)</h2> - -<p>Les deux technologies fournissent des API pour créer une interface utilisateur pour l'extension. Les options d'interface utilisateur pour les WebExtensions sont plus limitées.</p> - -<table class="fullwidth-table standard-table"> - <thead> - <tr> - <th scope="col">Elément d'interface</th> - <th scope="col">SDK</th> - <th scope="col">WebExtensions</th> - </tr> - </thead> - <tbody> - <tr> - <td>Bouton</td> - <td><code><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/ui_button_action">ui/button/action</a></code></td> - <td><code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/manifest.json/browser_action">browser_action</a></code> / <code><a href="/fr/Add-ons/WebExtensions/manifest.json/page_action">page_action</a></code></td> - </tr> - <tr> - <td>Interrupteur / Bouton à bascule</td> - <td><code><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/ui_button_toggle">ui/button/toggle</a></code></td> - <td><code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/manifest.json/browser_action">browser_action</a></code> / <code><a href="/fr/Add-ons/WebExtensions/manifest.json/page_action">page_action</a></code></td> - </tr> - <tr> - <td>Barre d'outils</td> - <td><code><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/ui_toolbar">ui/toolbar</a></code></td> - <td>Aucun</td> - </tr> - <tr> - <td>Barre latérale</td> - <td><code><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/ui_sidebar">ui/sidebar</a></code></td> - <td><code>sidebar_action</code></td> - </tr> - <tr> - <td>Panneau</td> - <td><code><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/panel">panel</a></code></td> - <td><code>browser_action</code> / <code>page_action</code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/Popups"> popup</a></td> - </tr> - <tr> - <td>Menu contextuel</td> - <td><code><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/context-menu">context-menu</a></code></td> - <td><code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/contextMenus">contextMenus</a></code></td> - </tr> - </tbody> -</table> - -<h3 id="Panneaux_et_fenêtres_contextuelles">Panneaux et fenêtres contextuelles</h3> - -<p>Les panneaux et les <a href="/fr/docs/Mozilla/Add-ons/WebExtensions/Popups">fenêtres contextuelles</a> sont des boites de dialogue transitoires définies à l'aide de HTML, CSS et JavaScript.</p> - -<p>Contrairement aux panneaux, les fenêtres contextuelles sont toujours attachées à un bouton (une action de navigateur ou une action de page) et ne peuvent pas être affichés par programmation : ils ne s'affichent que lorsque l'utilisateur clique sur le bouton.</p> - -<p>Aussi, contrairement aux panneaux, les scripts des fenêtres contextuelles ont accès aux mêmes API que les scripts d'arrière-plan. Ils peuvent même accéder directement à la page d'arrière-plan, via <code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/runtime/getBackgroundPage">runtime.getBackgroundPage()</a></code>.</p> - -<h2 id="Paramètres">Paramètres</h2> - -<p>Les extensions SDK et les WebExtensions permettent toutes les deux de gérer des paramètres (aussi appelées options ou préférences).</p> - -<p>Avec le fichier SDK, il est possible d'indiquer des paramètres via la clé <code>preferences</code> dans le fichier <code>package.json</code>. L'utilisateur peut voir et modifier ces préférences via l'entrée du Gestionnaire de modules de l'extension. À l'inverse, l'extension peut écouter les changements de paramètres à l'aide de l'API <code><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/simple-prefs">simple-prefs</a></code>.</p> - -<p>Dans les WebExtensions, vous devrez implémenter votre propre interface utilisateur afin de présenter les paramètres et votre propre code pour les garder en mémoire pour votre extension. Pour cela, on écrira un fichier HTML qui présente les paramètres et qui peut inclure un script permettant de les sauvegarder. Le script a accès à toutes les API des WebExtensions et on utilisera généralement l'API <code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/storage">storage</a></code> pour la mémorisation.</p> - -<p>L'URL du fichier HTML pour l'écran des paramètres doit être indiqué avec la clé <code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/manifest.json/options_ui">options_ui</a></code> du fichier <code>manifest.json</code>. La page de paramètres apparaît alors dans l'entrée de l'extension sous le Gestionnaire de modules des extensions. La page d'options peut également être ouverte via le code grâce à un appel à <code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/runtime/openOptionsPage">browser.runtime.openOptionsPage</a></code>.</p> - -<p>On notera que les WebExtensions ne permettent pas d'accéder aux préférences du navigateur (c'est-à-dire les préférences exposées dans le SDK par <code><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/preferences_service">preferences/service</a></code>). Toutefois, il est possible de modifier certains paramètres du navigateur grâce aux API <code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/privacy">privacy</a></code> et <code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/browserSettings">browserSettings</a></code>.</p> - -<h3 id="En_apprendre_plus">En apprendre plus</h3> - -<ul> - <li><a href="/fr/Add-ons/WebExtensions/Anatomy_of_a_WebExtension#Options_pages">Introduction aux pages de paramètres</a></li> - <li><a href="https://github.com/mdn/webextensions-examples/tree/master/favourite-colour">Un exemple d'extension qui a une page d'options</a></li> -</ul> - -<h2 id="Internationalisation">Internationalisation</h2> - -<p>Le SDK et les WebExtensions contiennent tous les deux des outils de localisation pour traduire le texte qui sera visible par l'utilisateur. Ces deux outils offrent des fonctionnalités similaires :</p> - -<table class="fullwidth-table standard-table"> - <thead> - <tr> - <th scope="col">Fonctionnalités</th> - <th scope="col">SDK</th> - <th scope="col">WebExtensions</th> - </tr> - </thead> - <tbody> - <tr> - <td>Chaînes dans les scripts d'arrière-plan</td> - <td>Oui</td> - <td>Oui</td> - </tr> - <tr> - <td>Chaînes dans les scripts de contenu</td> - <td>Non</td> - <td>Oui</td> - </tr> - <tr> - <td>Chaînes dans les fichiers HTML</td> - <td>Oui</td> - <td>Non</td> - </tr> - <tr> - <td>Chaînes dans les fichiers CSS</td> - <td>Non</td> - <td>Oui</td> - </tr> - <tr> - <td>Titre et descriptions</td> - <td>Oui</td> - <td>Oui</td> - </tr> - <tr> - <td>Gestion des formes plurielles</td> - <td>Oui</td> - <td>Non</td> - </tr> - <tr> - <td>Textes de substitution (<em>placeholders</em>)</td> - <td>Oui</td> - <td>Oui</td> - </tr> - </tbody> -</table> - -<p>Dans les deux systèmes, les chaînes traduites sont fournies via un ensemble de fichier : un pour chaque locale.</p> - -<p>Pour récupérer les chaînes localisées dans le code de l'extension, on peut utiliser l'API JavaScript <code><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/l10n">l10n</a></code> dans le SDK et l'API <code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/i18n">i18n</a></code> pour les WebExtensions.</p> - -<p>Les WebExtensions ne gèrent pas nativement la localisation des chaînes présentes dans les fichiers HTML : il faut le faire soi-même en utilisant JavaScript pour récupérer des chaînes localisées et pour remplacer dynamiquement le contenu HTML par la version localisée.</p> - -<h3 id="En_savoir_plus_4">En savoir plus</h3> - -<ul> - <li><a href="/fr/Add-ons/WebExtensions/Internationalization">Le guide d'internationalisation des extensions.</a></li> - <li><a href="https://github.com/mdn/webextensions-examples/tree/master/notify-link-clicks-i18n">Exemple d'extension internationalisée.</a></li> - <li><a href="https://gist.github.com/freaktechnik/4a72bc0711d9bc82cf3b075bcc292953">Exemple de script la traduction des documents HTML d'une extension WebExtensions à la façon du SDK</a></li> -</ul> - -<h2 id="Outil_en_ligne_de_commande">Outil en ligne de commande</h2> - -<p>Le SDK livré avec un outil en ligne de commande : <a href="/fr/docs/Mozilla/Add-ons/SDK/Tools/jpm">jpm</a> qu'on peut utiliser pour tester et empaqueter les extensions. Il existe un outil équivalent pour les WebExtensions : <a href="/fr/docs/Mozilla/Add-ons/WebExtensions/Getting_started_with_web-ext">web-ext</a>. Web-ext ne prend pas en charge les mêmes commandes que jpm, mais gère <code><a href="/fr/Add-ons/WebExtensions/web-ext_command_reference#web-ext_run">run</a></code>, <code><a href="/fr/Add-ons/WebExtensions/web-ext_command_reference#web-ext_build">build</a></code> et <code><a href="/fr/Add-ons/WebExtensions/web-ext_command_reference#web-ext_sign">sign</a></code>.</p> - -<p>Il est maintenant possible d'installer (et de recharger) des extensions SDK et les extensions construites avec les API WebExtension dans Firefox à partir de leur répertoire source, sans avoir besoin de les empaqueter dans un fichier XPI. Voir <a href="/fr/Add-ons/WebExtensions/installation_temporaire_dans_Firefox">l'installation temporaire dans Firefox</a>.</p> - -<h3 id="En_savoir_plus_5">En savoir plus</h3> - -<ul> - <li><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/Getting_started_with_web-ext">Tutoriel web-ext</a></li> - <li><a href="/fr/Add-ons/WebExtensions/web-ext_command_reference">Référence web-ext</a></li> - <li><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/Temporary_Installation_in_Firefox">Instalation temporaire dans Firefox</a></li> -</ul> - -<h2 id="Les_API_JavaScript">Les API JavaScript</h2> - -<p>Que ce soit pour le SDK et les WebExtensions, la puissance des extensions provient d'un ensemble d'API JavaScript dédiées. Pour la plupart des API SDK de haut niveau, il existe un équivalent WebExtensions.</p> - -<p>Une grande limitation de WebExtensions par rapport au SDK est que les modules complémentaires SDK peuvent utiliser <code>require("chrome")</code> pour accéder à la gamme complète des API XPCOM dans Firefox. Ceci n'est pas possible avec WebExtensions.</p> - -<p>Pour accéder aux API privilégiées dans le SDK, on utilise <code>require()</code> :</p> - -<pre class="brush: js">var tabs = require("sdk/tabs"); -tabs.open("https://developer.mozilla.org/");</pre> - -<p>Avec WebExtensions, la plupart des API sont déjà disponibles, sans avoir besoin de les importer :</p> - -<pre class="brush: js">browser.tabs.create({ - "url": "/" -});</pre> - -<p>Pour certaines API WebExtension, vous devez d'abord demander la permission, en utilisant la clé des <code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/manifest.json/permissions">permissions</a></code> de manifest.json. Dans l'exemple ci-dessous, l'extension doit demander l'autorisation <code>"tabs"</code> si elle souhaite accéder à l'URL de l'onglet :</p> - -<p><code><strong>manifest.json</strong></code></p> - -<pre class="brush: json">... - -"permissions": [ - "tabs" - ] - -...</pre> - -<p><strong>Script d'arrière-plan</strong></p> - -<pre class="brush: js">function logUrl(tabs) { - console.log(tabs[0].url); -} - -var querying = browser.tabs.query( - {active: true, currentWindow: true} -); - -querying.then(logUrl); -</pre> - -<h3 id="Comparaison_des_API_SDK_WebExtension">Comparaison des API SDK / WebExtension</h3> - -<p>Les tableaux de cette section répertorient chaque API du SDK et indiquent l'API WebExtension équivalente si elle existe.</p> - -<p>Le premier tableau couvre les API SDK de haut niveau, le second couvre les API bas niveau.</p> - -<h4 id="API_haut_niveau">API haut niveau</h4> - -<table class="fullwidth-table standard-table"> - <thead> - <tr> - <th scope="col">SDK</th> - <th scope="col">WebExtensions</th> - </tr> - </thead> - <tbody> - <tr> - <td><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/addon-page">addon-page</a></td> - <td><code><a href="/fr/Add-ons/WebExtensions/API/tabs/create">tabs.create()</a></code> peut être utilisé pour charger des pages packagées avec l'add-on dans des onglets de navigateur.</td> - </tr> - <tr> - <td><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/base64">base64</a></td> - <td><a href="/fr/docs/Web/API/WindowBase64"><code>window.atob()</code> et <code>btoa()</code></a></td> - </tr> - <tr> - <td><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/clipboard">clipboard</a></td> - <td><code><a href="/fr/docs/Web/API/Document/execCommand">document.execCommand</a></code> sans <code>select()</code> sur la page d'arrière-plan.</td> - </tr> - <tr> - <td><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/context-menu">context-menu</a></td> - <td><code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/contextMenus">contextMenus</a></code></td> - </tr> - <tr> - <td><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/hotkeys">hotkeys</a></td> - <td><code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/commands">commands</a></code></td> - </tr> - <tr> - <td><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/indexed-db">indexed-db</a></td> - <td><code><a href="/fr/docs/Web/API/IndexedDB_API">window.indexedDB</a></code></td> - </tr> - <tr> - <td><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/l10n">l10n</a></td> - <td><code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/i18n">i18n</a></code></td> - </tr> - <tr> - <td><a href="/fr/Add-ons/SDK/High-Level_APIs/notifications">notifications</a></td> - <td><code><a href="/fr/Add-ons/WebExtensions/API/notifications">notifications</a></code></td> - </tr> - <tr> - <td><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/page-mod">page-mod</a></td> - <td><code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/manifest.json/content_scripts">content_scripts</a></code></td> - </tr> - <tr> - <td><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/page-worker">page-worker</a></td> - <td> - <p>Le portage n'est pas terminé et est décrit dans le <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1318532">bug 1318532</a></p> - - <p>Les méthodes de contournement (qui peuvent avoir besoin de <code>webrequestBlocking</code> pour accéder à l'ensemble des pages [<a href="https://stackoverflow.com/questions/15532791/getting-around-x-frame-options-deny-in-a-chrome-extension">exemple</a>]) :</p> - - <ul> - <li>Utiliser la page d'arrière-plan</li> - <li>Charger des <em>iframes</em> distantes dans la page d'arrière-plan</li> - <li>Effectuer un appel <a href="/fr/docs/AJAX">XHR</a> pour obtenir les informations statiques de la page.</li> - </ul> - </td> - </tr> - <tr> - <td><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/panel">panel</a></td> - <td>Voir la section <a href="/fr/Add-ons/WebExtensions/Porting_from_the_Add-on_SDK#UI_elements">sur les interfaces utilisateur</a>.</td> - </tr> - <tr> - <td><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/passwords">passwords</a></td> - <td><a href="https://github.com/web-ext-experiments/logins">L'API expérimentale <code>logins</code></a></td> - </tr> - <tr> - <td><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/private-browsing">private-browsing</a></td> - <td><code><a href="/fr/Add-ons/WebExtensions/API/Tabs/Tab">Tab.incognito</a></code> et <code><a href="/fr/Add-ons/WebExtensions/API/windows/Window">Window.incognito</a></code>.</td> - </tr> - <tr> - <td><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/querystring">querystring</a></td> - <td><code><a href="/fr/docs/Web/API/URLSearchParams">window.URLSearchParams</a></code></td> - </tr> - <tr> - <td><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/request">request</a></td> - <td><code><a href="/fr/docs/Web/API/Fetch_API">window.fetch</a></code> ou <code><a href="/fr/docs/Web/API/XMLHttpRequest">window.XMLHttpRequest</a></code></td> - </tr> - <tr> - <td><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/selection">selection</a></td> - <td>Utiliser un script de contenu qui envoie la donnée sélectionnée l'add-on. Sinon, si on peut utiliser un menu contextuel sur une sélection, celle-ci sera contenue dans <code>selectionText</code> (<code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/contextMenus/OnClickData">contextMenus.OnClickData</a></code>).</td> - </tr> - <tr> - <td><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/self">self</a></td> - <td><code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/runtime/getManifest">runtime.getManifest()</a></code> et <code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/extension/getURL">extension.getURL()</a></code> pour <code>data.url()</code></td> - </tr> - <tr> - <td><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/simple-prefs">simple-prefs</a></td> - <td><code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/storage">storage</a></code> et <code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/manifest.json/options_ui">options_ui</a></code></td> - </tr> - <tr> - <td><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/simple-storage">simple-storage</a></td> - <td><code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/storage">storage</a></code></td> - </tr> - <tr> - <td><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/system">system</a></td> - <td>Partiellement couvert par <code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/runtime">runtime</a></code>.</td> - </tr> - <tr> - <td><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/tabs">tabs</a></td> - <td><code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/tabs">tabs</a></code></td> - </tr> - <tr> - <td><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/timers">timers</a></td> - <td><code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/alarms">alarms</a></code></td> - </tr> - <tr> - <td><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/ui">ui</a></td> - <td>Voir la section <a href="/fr/Add-ons/WebExtensions/Porting_from_the_Add-on_SDK#UI_elements">sur les éléments d'interface.</a></td> - </tr> - <tr> - <td><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/url">url</a></td> - <td><code><a href="/fr/docs/Web/API/Window/URL">window.URL</a></code></td> - </tr> - <tr> - <td><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/widget">widget</a></td> - <td>Aucun</td> - </tr> - <tr> - <td><a href="/fr/docs/Mozilla/Add-ons/SDK/High-Level_APIs/windows">windows</a></td> - <td><code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/windows">windows</a></code></td> - </tr> - </tbody> -</table> - -<h4 id="API_bas_niveau">API bas niveau</h4> - -<table class="fullwidth-table standard-table"> - <thead> - <tr> - <th scope="col">SDK</th> - <th scope="col">WebExtensions</th> - </tr> - </thead> - <tbody> - <tr> - <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/_loader">loader</a></td> - <td>Aucun</td> - </tr> - <tr> - <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/chrome">chrome</a></td> - <td>Aucun</td> - </tr> - <tr> - <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/console_plain-text">console/plain-text</a></td> - <td>Aucun</td> - </tr> - <tr> - <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/console_traceback">console/traceback</a></td> - <td>Aucun</td> - </tr> - <tr> - <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/content_content">content/content</a></td> - <td>Aucun</td> - </tr> - <tr> - <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/content_loader">content/loader</a></td> - <td>Aucun</td> - </tr> - <tr> - <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/content_mod">content/mod</a></td> - <td>Aucun</td> - </tr> - <tr> - <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/content_symbiont">content/symbiont</a></td> - <td>Aucun</td> - </tr> - <tr> - <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/content_worker">content/worker</a></td> - <td>Aucun</td> - </tr> - <tr> - <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/core_heritage">core/heritage</a></td> - <td>Aucun</td> - </tr> - <tr> - <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/core_namespace">core/namespace</a></td> - <td>Aucun</td> - </tr> - <tr> - <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/core_promise">core/promise</a></td> - <td><code><a href="/fr/docs/Web/JavaScript/Reference/Global_Objects/Promise">Promise</a></code></td> - </tr> - <tr> - <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/dev_panel">dev/panel</a></td> - <td><code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/devtools.panels">devtools.panels</a></code></td> - </tr> - <tr> - <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/event_core">event/core</a></td> - <td>Aucun</td> - </tr> - <tr> - <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/event_target">event/target</a></td> - <td>Aucun</td> - </tr> - <tr> - <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/frame_hidden-frame">frame/hidden-frame</a></td> - <td>Aucun</td> - </tr> - <tr> - <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/frame_utils">frame/utils</a></td> - <td>Aucun</td> - </tr> - <tr> - <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/fs_path">fs/path</a></td> - <td>Aucun</td> - </tr> - <tr> - <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/io_byte-streams">io/byte-streams</a></td> - <td>Aucun</td> - </tr> - <tr> - <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/io_file">io/file</a></td> - <td>Aucun</td> - </tr> - <tr> - <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/io_text-streams">io/text-streams</a></td> - <td>Aucun</td> - </tr> - <tr> - <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/lang_functional">lang/functional</a></td> - <td>Aucun</td> - </tr> - <tr> - <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/lang_type">lang/type</a></td> - <td>Aucun</td> - </tr> - <tr> - <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/loader_cuddlefish">loader/cuddlefish</a></td> - <td>Aucun</td> - </tr> - <tr> - <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/loader_sandbox">loader/sandbox</a></td> - <td>Aucun</td> - </tr> - <tr> - <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/net_url">net/url</a></td> - <td>Aucun</td> - </tr> - <tr> - <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/net_xhr">net/xhr</a></td> - <td><code><a href="/fr/docs/Web/API/Fetch_API">window.fetch</a></code> ou <code><a href="/fr/docs/Web/API/XMLHttpRequest">window.XMLHttpRequest</a></code></td> - </tr> - <tr> - <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/places_bookmarks">places/bookmarks</a></td> - <td><code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/bookmarks">bookmarks</a></code></td> - </tr> - <tr> - <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/places_favicon">places/favicon</a></td> - <td>Aucun</td> - </tr> - <tr> - <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/places_history">places/history</a></td> - <td><code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/history">history</a></code></td> - </tr> - <tr> - <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/platform_xpcom">platform/xpcom</a></td> - <td>Aucun</td> - </tr> - <tr> - <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/preferences_event-target">preferences/event-target</a></td> - <td>Aucun</td> - </tr> - <tr> - <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/preferences_service">preferences/service</a></td> - <td>Prise en charge partielle via les API <code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/privacy">privacy</a></code> et <code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/browserSettings">browserSettings</a></code></td> - </tr> - <tr> - <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/remote_child">remote/child</a></td> - <td>Aucun</td> - </tr> - <tr> - <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/remote_parent">remote/parent</a></td> - <td>Aucun</td> - </tr> - <tr> - <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/stylesheet_style">stylesheet/style</a></td> - <td>Aucun</td> - </tr> - <tr> - <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/stylesheet_utils">stylesheet/utils</a></td> - <td>Aucun</td> - </tr> - <tr> - <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/system_child_process">system/child_process</a></td> - <td><code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/runtime/connectNative">runtime.connectNative</a></code></td> - </tr> - <tr> - <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/system_environment">system/environment</a></td> - <td>Aucun</td> - </tr> - <tr> - <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/system_events">system/events</a></td> - <td>Aucun</td> - </tr> - <tr> - <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/system_runtime">system/runtime</a></td> - <td>Prise en charge partielle via <code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/runtime/getPlatformInfo">runtime.getPlatformInfo</a></code></td> - </tr> - <tr> - <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/system_xul-app">system/xul-app</a></td> - <td>Prise en charge partielle via <code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/runtime/getBrowserInfo">runtime.getBrowserInfo</a></code></td> - </tr> - <tr> - <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/tabs_utils">tabs/utils</a></td> - <td>Aucun</td> - </tr> - <tr> - <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/ui_button_action">ui/button/action</a></td> - <td><code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/manifest.json/browser_action">browser_action</a></code> / <code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/manifest.json/page_action">page_action</a></code></td> - </tr> - <tr> - <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/ui_button_toggle">ui/button/toggle</a></td> - <td><code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/manifest.json/browser_action">browser_action</a></code> / <code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/manifest.json/page_action">page_action</a></code></td> - </tr> - <tr> - <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/ui_frame">ui/frame</a></td> - <td>Aucun</td> - </tr> - <tr> - <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/ui_id">ui/id</a></td> - <td>Aucun</td> - </tr> - <tr> - <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/ui_sidebar">ui/sidebar</a></td> - <td><code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/sidebarAction">sidebarAction</a></code></td> - </tr> - <tr> - <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/ui_toolbar">ui/toolbar</a></td> - <td>Aucun</td> - </tr> - <tr> - <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/util_array">util/array</a></td> - <td>Aucun</td> - </tr> - <tr> - <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/util_collection">util/collection</a></td> - <td>Aucun</td> - </tr> - <tr> - <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/util_deprecate">util/deprecate</a></td> - <td>Aucun</td> - </tr> - <tr> - <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/util_list">util/list</a></td> - <td>Aucun</td> - </tr> - <tr> - <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/util_match-pattern">util/match-pattern</a></td> - <td>Aucun</td> - </tr> - <tr> - <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/util_object">util/object</a></td> - <td>Aucun</td> - </tr> - <tr> - <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/util_uuid">util/uuid</a></td> - <td>Aucun</td> - </tr> - <tr> - <td><a href="/fr/docs/Mozilla/Add-ons/SDK/Low-Level_APIs/window_utils">window/utils</a></td> - <td>Aucun</td> - </tr> - </tbody> -</table> diff --git a/files/fr/mozilla/add-ons/webextensions/compte_developpeurs/index.html b/files/fr/mozilla/add-ons/webextensions/compte_developpeurs/index.html deleted file mode 100644 index 7cd2470cf8..0000000000 --- a/files/fr/mozilla/add-ons/webextensions/compte_developpeurs/index.html +++ /dev/null @@ -1,26 +0,0 @@ ---- -title: Comptes développeurs -slug: Mozilla/Add-ons/WebExtensions/Compte_developpeurs -tags: - - Développement - - Extensions - - publications -translation_of: Mozilla/Add-ons/WebExtensions/Developer_accounts ---- -<p>{{AddonSidebar}}</p> - -<p>Les comptes développeurs pour addons.mozilla.org sont intégrés aux <a href="https://accounts.firefox.com/signup">comptes Firefox</a>, ce qui vous permet d'accéder et de gérer plusieurs services Mozilla depuis un seul compte. Vous pouvez gérer votre compte Firefox à partir de <a href="https://accounts.firefox.com/settings">accounts.firefox.com/settings</a>.</p> - -<h3 id="Définition_dun_nom_daffichage">Définition d'un nom d'affichage</h3> - -<p>Il est important de définir un nom d'affichage sur votre <a href="https://addons.mozilla.org/firefox/users/edit">profil sur addons.mozilla.org </a>pour augmenter la transparence avec les utilisateurs, les évaluateurs et la communauté.</p> - -<div class="blockIndicator note"> -<p>Le nom d'affichage de votre compte Firefox ne sera pas synchronisé avec votre profil sur addons.mozilla.org. Vous devrez définir le nom d'affichage de votre compte développeur à partir de votre profil sur addons.mozilla.org</p> -</div> - -<h3 id="Comptes_bloqués">Comptes bloqués</h3> - -<p>Afin d'empêcher les acteurs malveillants de soumettre des spams à addons.mozilla.org, nous n'accepterons pas les soumissions provenant de comptes qui utilisent une adresse e-mail temporaire jetable, ou qui ont soumis plusieurs add-ons qui violent nos <a href="/en-US/docs/Mozilla/Add-ons/AMO/Policy/Reviews">Politiques de add-on</a>.</p> - -<p>Si vous pensez que votre compte a été bloqué par erreur, veuillez envoyer un email à amo-admins [at] mozilla [dot] com et inclure un lien vers votre profil développeur.</p> diff --git a/files/fr/mozilla/add-ons/webextensions/debogage_(avant_firefox_50)/index.html b/files/fr/mozilla/add-ons/webextensions/debugging_(before_firefox_50)/index.html index ecdc2a6849..ecdc2a6849 100644 --- a/files/fr/mozilla/add-ons/webextensions/debogage_(avant_firefox_50)/index.html +++ b/files/fr/mozilla/add-ons/webextensions/debugging_(before_firefox_50)/index.html diff --git a/files/fr/mozilla/add-ons/webextensions/demander_les_bonnes_permissions/index.html b/files/fr/mozilla/add-ons/webextensions/demander_les_bonnes_permissions/index.html deleted file mode 100644 index e0c9a4ef04..0000000000 --- a/files/fr/mozilla/add-ons/webextensions/demander_les_bonnes_permissions/index.html +++ /dev/null @@ -1,367 +0,0 @@ ---- -title: Demander les bonnes permissions -slug: Mozilla/Add-ons/WebExtensions/demander_les_bonnes_permissions -tags: - - Add-ons - - Comment - - Débutant - - Extensions - - Hox-to - - Intermédiaire - - Permissions - - WebExtensions -translation_of: Mozilla/Add-ons/WebExtensions/Request_the_right_permissions ---- -<p>{{AddonSidebar}}</p> - -<p>Ou comment éviter les permissions décourageant les utilisateurs d'installer vos extensions.</p> - -<h2 id="Introduction">Introduction</h2> - -<p>Avec l'introduction de Firefox Quantum (57), la gestion des permissions lors de l'installation d'une extension a changé. Auparavant, les permissions étaient accordées silencieusement aux extensions. Cependant, les utilisateurs sont maintenant informés des permissions demandées par une extension lors de son installation, avec un message comme celui-ci:</p> - -<p><img alt="Example of the permissions messages from the Gesturefy extension" src="https://mdn.mozillademos.org/files/15736/General_permissions_message_example.png" style="height: 287px; width: 411px;"></p> - -<p>En outre, si une mise à jour d'extension nécessite des permissions supplémentaires, l'utilisateur est invité à approuver les permissions avant l'installation de la version mise à jour :</p> - -<p><img alt="Example of the message displayed when an extension update requests additional permissions" src="https://mdn.mozillademos.org/files/15737/Permissions_update.png" style="height: 336px; width: 357px;"></p> - -<p>Si l'utilisateur choisit de ne pas approuver les permissions et annule la mise à jour, la version précédente reste installée et disponible.</p> - -<p>L'affichage des messages de permission améliore le modèle de sécurité de l'extension en sensibilisant les utilisateurs à l'impact potentiel de l'installation d'une extension. Il met également Firefox en ligne avec les autres principaux navigateurs, où les utilisateurs ont été informés des demandes de permission des extensions pour un certain temps.</p> - -<p>Étant donné que les utilisateurs de Firefox n'ont pas vu les demandes de permissions au cours de l'installation auparavant, cette modification pourrait décourager certains d'entre eux d'installer votre extension, car les messages pourraient suggérer qu'elle fait quelque chose d'effrayant. Nous fournissons aux utilisateurs avec une <a href="https://support.mozilla.org/kb/permission-request-messages-explained">explication de ces messages de permissions</a> et des conseils sur <a href="https://support.mozilla.org/kb/tips-assessing-safety-extension">comment juger s'ils sont appropriés</a>. Cependant, il y a plusieurs choses que vous pouvez faire pour réduire la probabilité que les utilisateurs abandonnent l'installation de votre extension à cause de ces messages :</p> - -<ul> - <li>Assurez-vous que vous ne demandez pas de permissions inutiles.</li> - <li>Demander des permissions à l'exécution, ce qui vous permet de demander les permissionss en contexte et de proposer une option de repli si l'utilisateur ne les accorde pas.</li> - <li>Décrivez pourquoi votre extension demande ses permissions dans sa description AMO.</li> -</ul> - -<p>Conseil: Les avertissements d'autorisation ne sont pas émis <a href="/fr/Add-ons/WebExtensions/Temporary_Installation_in_Firefox">lorsque vous chargez une extension décompressée</a>. Pour plus d'informations sur l'affichage du flux d'autorisations d'exécution standard, voir <a href="/fr/Add-ons/WebExtensions/Test_permission_requests">Test de demandes de permission</a>.</p> - -<h2 id="Permissions_conseillées">Permissions conseillées</h2> - -<p>Toutes les <a href="/fr/Add-ons/WebExtensions/manifest.json/permissions">permissions</a> ne donnent pas de conseils à l'utilisateur. Les permissions qui déclenchent l'affichage d'un message et les messages qu'ils déclenchent sont :</p> - -<table class="standard-table"> - <tbody> - <tr> - <td><strong>Permission</strong></td> - <td><strong>Permissions messages</strong></td> - </tr> - <tr> - <td> - <p>Host permissions</p> - </td> - <td> - <p style="margin-bottom: 0px;">Accédez à vos données pour tous les sites Web<br> - Accédez à vos données pour les sites du domaine[named].<br> - Accédez à vos données dans # d'autres domaines<br> - Accédez à vos données pour[site nommé].<br> - Accédez à vos données sur # autres sites".</p> - </td> - </tr> - <tr> - <td>API permissions:</td> - <td></td> - </tr> - <tr> - <td style="padding: 0px, 0px;"> - <ul style="margin-bottom: 0px;"> - <li><code>bookmarks</code></li> - </ul> - </td> - <td style="padding: 0px, 0px;">Lire et modifier les marques pages</td> - </tr> - <tr> - <td style="padding: 0px, 0px;"> - <ul style="margin-bottom: 0px;"> - <li style="margin-bottom: 0px;"><code>browserSettings</code></li> - </ul> - </td> - <td style="margin-bottom: 0px; padding: 0px, 0px;">Lire et modifier les paramètres du navigateur</td> - </tr> - <tr> - <td style="padding: 0px, 0px;"> - <ul style="margin-bottom: 0px;"> - <li style="margin-bottom: 0px;"><code>browsingData</code></li> - </ul> - </td> - <td style="margin-bottom: 0px; padding: 0px, 0px;">Effacer l'historique de navigation récent, les cookies et les données associées.</td> - </tr> - <tr> - <td style="padding: 0px, 0px;"> - <ul style="margin-bottom: 0px;"> - <li><code>downloads</code></li> - </ul> - </td> - <td>Télécharger des fichiers et lire et modifier l'historique des téléchargements du navigateur.</td> - </tr> - <tr> - <td style="padding: 0px, 0px;"> - <ul style="margin-bottom: 0px;"> - <li><code>downloads.open</code></li> - </ul> - </td> - <td style="padding: 0px, 0px;">Ouvrir les fichiers téléchargés sur votre ordinateur</td> - </tr> - <tr> - <td style="padding: 0px, 0px;"> - <ul style="margin-bottom: 0px;"> - <li><code>find</code></li> - </ul> - </td> - <td style="padding: 0px, 0px;">Lire le texte de tous les onglets ouverts</td> - </tr> - <tr> - <td style="padding: 0px, 0px;"> - <ul style="margin-bottom: 0px;"> - <li><code>geolocation</code></li> - </ul> - </td> - <td style="padding: 0px, 0px;">Accédez à votre localisation</td> - </tr> - <tr> - <td> - <ul style="margin-bottom: 0px;"> - <li><code>history</code></li> - </ul> - </td> - <td style="padding: 0px, 0px;">Historique de navigation</td> - </tr> - <tr> - <td style="padding: 0px, 0px;"> - <ul style="margin-bottom: 0px;"> - <li><code>management</code></li> - </ul> - </td> - <td>Surveiller l'utilisation des extensions et gérer les thèmes</td> - </tr> - <tr> - <td style="padding: 0px, 0px;"> - <ul style="margin-bottom: 0px;"> - <li><code>nativeMessaging</code></li> - </ul> - </td> - <td>Échanger des messages avec des programmes autres que Firefox</td> - </tr> - <tr> - <td style="padding: 0px, 0px;"> - <ul style="margin-bottom: 0px;"> - <li><code>notifications</code></li> - </ul> - </td> - <td style="padding: 0px, 0px;">Afficher les notifications qui vous sont destinées</td> - </tr> - <tr> - <td> - <ul style="margin-bottom: 0px;"> - <li><code>pkcs11</code></li> - </ul> - </td> - <td>Fournir des services d'authentification cryptographique</td> - </tr> - <tr> - <td style="padding: 0px, 0px;"> - <ul style="margin-bottom: 0px;"> - <li><code>privacy</code></li> - </ul> - </td> - <td style="padding: 0px, 0px;">Lire et modifier les paramètres de confidentialité</td> - </tr> - <tr> - <td style="padding: 0px, 0px;"> - <ul style="margin-bottom: 0px;"> - <li><code>proxy</code></li> - </ul> - </td> - <td style="padding: 0px, 0px;">Contrôler les paramètres de proxy du navigateur</td> - </tr> - <tr> - <td style="padding: 0px, 0px;"> - <ul style="margin-bottom: 0px;"> - <li><code>sessions</code></li> - </ul> - </td> - <td style="padding: 0px, 0px;">Accéder aux onglets récemment fermés</td> - </tr> - <tr> - <td style="padding: 0px, 0px;"> - <ul style="margin-bottom: 0px;"> - <li><code>tabs</code></li> - </ul> - </td> - <td style="padding: 0px, 0px;">Onglets du navigateur d'accès</td> - </tr> - <tr> - <td style="padding: 0px, 0px;"> - <ul style="margin-bottom: 0px;"> - <li><code>topSites</code></li> - </ul> - </td> - <td style="padding: 0px, 0px;">Historique de navigation</td> - </tr> - <tr> - <td style="padding: 0px, 0px;"> - <ul style="margin-bottom: 0px;"> - <li><code>webNavigation</code></li> - </ul> - </td> - <td style="padding: 0px, 0px;">Accéder à l'activité du navigateur pendant la navigation</td> - </tr> - <tr> - <td>Clipboard access</td> - <td></td> - </tr> - <tr> - <td style="padding: 0px, 0px;"> - <ul style="margin-bottom: 0px;"> - <li><code>clipboardWrite</code></li> - </ul> - </td> - <td style="padding: 0px, 0px;">Saisie des données dans le presse-papiers</td> - </tr> - <tr> - <td style="padding: 0px, 0px;"> - <ul style="margin-bottom: 0px;"> - <li><code>clipboardRead</code></li> - </ul> - </td> - <td>Obtenir les données du presse-papiers</td> - </tr> - <tr> - <td><code>unlimitedStorage</code></td> - <td>Stocker un nombre illimité de données côté client</td> - </tr> - <tr> - <td>The manifest key <a href="/fr/Add-ons/WebExtensions/manifest.json/devtools_page">"devtools_page"</a></td> - <td>Étendre les outils de développement pour accéder à vos données dans des onglets ouverts.</td> - </tr> - </tbody> -</table> - -<div class="blockIndicator note"> - - -<p>Les permissions qui affichent les messages et les messages qu'ils affichent peuvent être différentes dans d'autres navigateurs. Pour plus d'informations sur l'affichage du message d'autorisation dans Chrome, voir <a href="https://developer.chrome.com/apps/permission_warnings#view_warnings" rel="noreferrer nofollow">Affichage des avertissements.</a></p> - - -</div> - -<p>Les permissions suivantes ne sont pas alertées aux utilisateurs :</p> - -<ul> - <li>API permissions - <ul> - <li><code>alarms</code></li> - <li><code>contextMenus</code></li> - <li><code>contextualIdentities</code></li> - <li><code>cookies</code></li> - <li><code>identity</code></li> - <li><code>idle</code></li> - <li><code>menus</code></li> - <li><code>storage</code></li> - <li><code>theme</code></li> - <li><code>webRequest</code></li> - <li><code>webRequestBlocking</code></li> - </ul> - </li> - <li><code>activeTab</code></li> -</ul> - -<h2 id="Évitez_les_permissions_inutiles">Évitez les permissions inutiles</h2> - -<p>Cette section examine les situations dans lesquelles vous pourriez demander plus de permissions que vos besoins d'extension et ce que vous devez faire à leur sujet.</p> - -<h3 id="Ne_demandez_que_les_permissions_que_votre_extension_utilise">Ne demandez que les permissions que votre extension utilise</h3> - -<p>Cela peut sembler évident, mais si vous créez une extension en utilisant un exemple précédent en tant que modèle ou si vous supprimez une fonctionnalité au cours du développement ou du test, vous demandez peut-être des permissions dont votre extension n'a pas besoin. En adressant ceci est un cas de faire une vérification manuelle de votre code contre les permissions (<code>"permissions"</code> et <a href="/fr/Add-ons/WebExtensions/manifest.json/optional_permissions">"optional_permissions"</a>) que vous demandez dans le manifest.json de l'extension.</p> - -<h3 id="Utilisez_activeTab_plutôt_que_tabs_et_permissions_d'hôte">Utilisez "activeTab" plutôt que "tabs" et permissions d'hôte</h3> - -<p>Prenez une extension que vous développez pour aider les utilisateurs mal-voyants. À la demande de l'utilisateur, vous allez rechercher et mettre à jour CSS dans une page Web pour remplacer les couleurs que l'utilisateur peut avoir du mal à distinguer avec des couleurs sûres. Vous avez évidemment besoin d'accéder et de mettre à jour CSS sur chaque page que votre utilisateur visite. Vous pouvez le faire en demandant la permission <code>"tabs"</code> et la permission d'hôte <code>"<all_urls>"</code>.</p> - -<pre class="brush: json">"permissions": [ - "<all_urls>", - "tabs" -]</pre> - -<p>Demander ces permissions, permet à l'utilisateur d'obtenir ce conseil :</p> - -<p><img alt='Example of the "Access your data for all websites" permission message' src="https://mdn.mozillademos.org/files/15738/All_Websites_permissions.png" style="height: 142px; width: 357px;"></p> - -<p>L'alternative est de demander <code>"activeTab"</code>. Cette permission fournit à votre extension les mêmes fonctionnalités mais uniquement pour l'onglet actif et uniquement lorsqu'elle est exécutée à partir de l'interface utilisateur de l'extension (depuis un bouton de barre d'outils, un bouton de barre de navigation, un menu contextuel ou une touche de raccourci).</p> - -<p>Fait important, <code>"activeTab"</code> n'entraîne pas l'affichage d'un message de permission lors de l'installation de l'extension.</p> - -<h3 id="Evitez_la_permission_d'hôte_<all_urls>_si_vous_pouvez">Evitez la permission d'hôte "<all_urls>" si vous pouvez</h3> - -<p>Comme indiqué dans l'exemple précédent, demander la permission d'hôte <code>"<all_urls>"</code> entraîne le message de demande d'accès Access à vos données pour tous les sites Webs. Si votre extension est conçue pour fonctionner avec un ou plusieurs sites Web ou domaines, affinez la requête. Lors de l'installation, les utilisateurs recevront des informations sur les quatre premiers sites Web ou les domaines auxquels vous demandez l'accès.</p> - -<p><img alt="Example of the permissions message when host permission for four websites as requested" src="https://mdn.mozillademos.org/files/15739/Permissions_host_four.png"></p> - -<p>Si vous demandez l'accès à plus de quatre sites Web ou domaines, le message liste les trois premiers et indique le nombre d'autres demandes.</p> - -<p><img alt="Example of the permissions message when hosts permission for 5 or more website is requested" src="https://mdn.mozillademos.org/files/15740/Permissions_host_four_plus.png" style="height: 194px; width: 357px;"></p> - -<h3 id="Evitez_la_permission_unlimitedStorage">Evitez la permission "unlimitedStorage"</h3> - -<p>Ne demandez la permission <code>"unlimitedStorage"</code> que si vous estimez que le stockage de données local de votre extension dépasse 5MB s'il ne dépasse pas ce montant, ne le demandez pas.</p> - -<p><img alt="Example of the permission message when requesting access to unlimited client-side data storage" src="https://mdn.mozillademos.org/files/15741/Permissions_unlimiteddata.png" style="height: 143px; width: 357px;"></p> - -<p>Remarque: Firefox ne limite pas actuellement la taille du stockage local, bien qu'il demande aux utilisateurs d'approuver cette demande de permission si vous le faites. Firefox peut ajouter une restriction à l'avenir. Si cela se produit, il est peu probable que la limite soit inférieure à la restriction actuelle de 5 Mo de Chrome.</p> - -<h2 id="Demander_les_permissions_à_éxécuter">Demander les permissions à éxécuter</h2> - -<p>Les utilisateurs peuvent ne pas comprendre le contexte des permissions demandées lors de l'installation. L'approche alternative consiste à demander les permissions au besoin, à l'aide de l'<a href="/fr/Add-ons/WebExtensions/API/permissions">API permissions</a>, et à fournir ainsi un contexte à l'utilisateur.</p> - -<p>Un scénario typique pour utiliser cette approche est la permission <code>"geoLocation"</code>. Supposons que vous avez écrit une extension de prise de notes qui inclut la possibilité d'ajouter une mini-carte de l'emplacement des preneurs de notes. Demander l'accès à l'emplacement pendant l'installation peut laisser l'utilisateur incertain de la raison pour laquelle l'extension doit accéder à l'emplacement, de sorte qu'ils ne l'installeront peut-être pas. Toutefois, si la permission d'utiliser l'emplacement est demandée lorsque l'utilisateur tente d'abord d'ajouter une minicarte, il comprend mieux pourquoi la permission est nécessaire et a plus de chances de l'accorder. Et s'ils choisissent de ne pas accorder la permission, l'extension peut offrir un retour en arrière gracieux — dans cet exemple, sans ajouter la minicarte — mais le résultat important de cette approche est que l'utilisateur a installé et utilisé votre extension.</p> - -<p><img alt="Example of an additional or runtime permission request message" src="https://mdn.mozillademos.org/files/15742/Permissions_optional_request.png" style="height: 155px; width: 357px;"></p> - -<p>Faire une demande de permission d'exécution est simple. Incluez les permissions que vous souhaitez demander sous la clé manifest.json <code>"<a href="/fr/Add-ons/WebExtensions/manifest.json/optional_permissions">optional_permissions</a>"</code>. Passez ensuite les autorisations que vous souhaitez accorder à {{WebExtAPIRef("permissions.request")}}, qui invite l'utilisateur à accorder les permissions. true est renvoyé si l'utilisateur accorde la requête, false si ce n'est pas le cas.</p> - -<p>Vous ne pouvez pas demander toutes les permissions disponibles aux <code>"permissions"</code> en utilisant des permissions facultatives. Vous ne pouvez pas demander les permissions d'API suivantes:</p> - -<ul> - <li><code>alarms</code></li> - <li><code>background</code></li> - <li><code>browsingData</code></li> - <li><code>contentSettings</code></li> - <li><code>contextualIdentities</code></li> - <li><code>debugger</code></li> - <li><code>downloads</code></li> - <li><code>downloads.open</code></li> - <li><code>find</code></li> - <li><code>identity</code></li> - <li><code>menus</code></li> - <li><code>nativeMessaging</code></li> - <li><code>pageCapture </code></li> - <li><code>pkcs11</code></li> - <li><code>privacy</code></li> - <li><code>proxy</code></li> - <li><code>sessions</code></li> - <li><code>storage</code></li> - <li><code>theme</code></li> -</ul> - -<p>Il y a un certain nombre de choses à noter :</p> - -<ul> - <li>Vous pouvez uniquement demander des permissions dans le gestionnaire pour une action utilisateur, par exemple à partir d'un bouton de barre d'outils (action du navigateur), d'un élément de menu contextuel ou similaire.</li> - <li>Si vous demandez plusieurs permissions à la fois, elles sont toutes accordées ou toutes refusées, l'utilisateur ne peut pas choisir d'en accorder certaines et pas d'autres</li> -</ul> - -<p>Pour plus d'informations sur les permissions facultatives, consultez <a href="/fr/Add-ons/WebExtensions/manifest.json/optional_permissions">optional_permissions</a> et l'exemple <a href="https://github.com/mdn/webextensions-examples/tree/master/permissions">permissions</a>.</p> - -<h2 id="Ajouter_des_informations_sur_les_permissions_à_vos_extensions_page_AMO">Ajouter des informations sur les permissions à vos extensions page AMO</h2> - -<p>Les messages de permissions sont plus susceptibles d'empêcher un utilisateur d'installer votre extension, car ils ne comprennent pas pourquoi les permissions sont demandées. Bien que l'utilisateur puisse obtenir des conseils généraux sur l'impact d'une permission, il peut ne pas être suffisant pour lui de comprendre pourquoi une permission est demandée dans votre extension.</p> - -<p>Pour résoudre ce problème, fournissez des informations dans la description AMO de votre extension qui explique les permissions demandées par votre extension et pourquoi.</p> - -<p>Un bon exemple de cette approche est <a href="https://addons.mozilla.org/en-US/firefox/addon/gesturefy/">Gesturefy</a>, qui offre aux utilisateurs les conseils suivants :</p> - -<p><img alt="Extract from Gesturefy's AMO description providing information on thepermissions requested by this extension" src="https://mdn.mozillademos.org/files/15743/gesturefy_permissions_explanation.png" style="height: 520px; width: 866px;"></p> diff --git a/files/fr/mozilla/add-ons/webextensions/demandes_de_permission/index.html b/files/fr/mozilla/add-ons/webextensions/demandes_de_permission/index.html deleted file mode 100644 index 815653592d..0000000000 --- a/files/fr/mozilla/add-ons/webextensions/demandes_de_permission/index.html +++ /dev/null @@ -1,134 +0,0 @@ ---- -title: Demandes de permission -slug: Mozilla/Add-ons/WebExtensions/demandes_de_permission -tags: - - Add-ons - - Extensions - - Guide - - Permissions - - Testing - - WebExtensions -translation_of: Mozilla/Add-ons/WebExtensions/Test_permission_requests ---- -<p>{{AddonSidebar}}</p> - -<p>Votre extension peut contenir deux types de demandes de permission : les demandes de temps d'installation et les demandes de permission d'exécution. Cette page explique comment vous pouvez tester la façon dont vos utilisateurs verront les demandes de ces permissions.</p> - -<h2 id="Comportement_de_l'octroi_de_la_permission_pendant_le_test"><strong>Comportement de l'octroi de la permission pendant le test</strong></h2> - -<p>Lorsque vous testez avec une extension non compressée utilisant <a href="/fr/docs/Tools/about:debugging"><kbd>about:debugging</kbd></a> ou <a href="/fr/Add-ons/WebExtensions/web-ext_command_reference">web-ext</a> et les permissions d'installation et d'exécution sont traitées comme suit :</p> - -<ul> - <li>Les demandes de permission de temps d'installation sont accordées en silence. Vous ne voyez pas les avertissements de permission que les utilisateurs verraient.</li> - <li><span class="tlid-translation translation"><span title="">L</span></span>es demandes d'autorisation d'exécution affichent la demande d'accrochecomme d'habitude. Ces permissions restent en place jusqu'à ce qu'elles soient révoquées programmatiquement par l'extension, l'extension est supprimée en utilisant <kbd>about:debugging</kbd> ou redémarrer Firefox.</li> -</ul> - -<h2 id="Observeer_ou_vérifier_des_demandes_de_permissions_lors_de_l'installation"><strong>Observeer ou vérifier des demandes de permissions lors de l'installation</strong></h2> - -<p>Vous suivez différents processus selon que vous souhaitez observer les demandes de permissions associées à une installation ou à une mise à niveau.</p> - -<h3 id="Demandes_de_permission_pour_l'installation_d'extensions"><strong>Demandes de permission pour l'installation d'extensions</strong></h3> - -<p>Pour afficher les avertissements de permission de temps d'installation que les utilisateurs voient lors de l'installation de votre extension et retester les demandes d'autorisation d'exécution, installez l'extension depuis son fichier *.xpi ou *.zip.</p> - -<p>Pour ce faire, vous devez utiliser un fichier *.xpi ou *.zip non signé :</p> - -<ul> - <li>donnez un identifiant à votre extension à l'aide de la clé d'<a href="/fr/docs/applications">applications</a> application.</li> - <li>exécuter les versions <a href="https://nightly.mozilla.org/"> Nightly</a> ou<a href="https://www.mozilla.org/firefox/developer/"> Developer Edition</a> de Firefox.</li> - <li>Définissez la préférence <kbd>about:config</kbd> <code>xpinstall</code><code>.signatures.required</code> à <code>false</code>.</li> -</ul> - -<p>Installez ensuite l'extension à l'aide de l'option <strong>Installer Add-on à partir du fichier</strong> dans le gestionnaire de modules complémentaires (<kbd>about:addons</kbd>). Au fur et à mesure que l'extension s'installe, la demande d'octroi des permissions s'affiche lors de l'installation, comme ceci :</p> - -<p><img alt="Example of the doorhanger displayed when installing an extension through about:addons" src="https://mdn.mozillademos.org/files/16538/installing_unpackaged_extension.png" style="height: 256px; width: 378px;"></p> - -<p>Notez que le message d'avertissement concerne une extension non signée ; ce message ne s'affiche pas pendant l'installation depuis <a href="http://addons.mozilla.org">addons.mozilla.org</a>.</p> - -<h3 id="Demande_de_permission_pour_la_mise_à_niveau_de_l'extension"><strong>Demande de permission pour la mise à niveau de l'extension</strong></h3> - -<div class="blockIndicator note"> -<p>Pour plus de détails sur la façon de fournir des mises à jour d'extension Web lorsque vous hébergez vous-même votre extension, voir <a href="/fr/Add-ons/Updates">Mises à jour</a>.</p> -</div> - -<p>Pour afficher les avertissements d'autorisation de temps d'installation que les utilisateurs voient lorsque votre extension est mise à niveau par Firefox et retester les demandes d'autorisation d'exécution, vous installez l'extension depuis son fichier.xpi posté sur un serveur HTTP ou HTTPS.</p> - -<p>Vous pouvez utiliser un serveur HTTP (tel qu'un simple <a href="/fr/docs/Apprendre/Common_questions/configurer_un_serveur_de_test_local">serveur localhost python</a>) ou un serveur HTTPS. Cependant, votre serveur HTTPS doit avoir un certificat vérifiable, que Firefox peut accepter automatiquement ; vous ne pouvez pas utiliser un certificat auto-signé. Si vous voulez tester à partir d'un serveur HTTPS mais n'en avez pas, les pages GitHub sont une option que vous pouvez utiliser.</p> - -<p>Pour effectuer le test, vous devrez :</p> - -<ul> - <li>déterminer l'adresse du serveur HTTP ou HTTPS où vous pouvez héberger les fichiers.</li> - <li>utilisez la clé des <a href="/fr/docs/applications">applications</a> manifest.json pour : - <ul> - <li>donnez un identifiant à votre poste, si vous ne l'avez pas déjà fait.</li> - <li>définir l'URL de mise à jour où vous hébergerez votre <a href="/fr/Add-ons/Updates">manifest de mise à jour</a>. Par exemple : - <pre class="brush: json">… -"applications": { - "gecko": { - "strict_min_version": "54.0a1", - "update_url": "<a href="https://your-account.github.io/webextensions/upgrade.json">https://your-account.github.io/webextensions/upgrade.json</a>", - "id": "<a href="mailto:test@your-address.com">test@your-address.com</a>" - } -}, -…</pre> - </li> - </ul> - </li> - <li>si nécessaire, <a href="/fr/Add-ons/WebExtensions/Package_your_extension_">créez un paquet</a> contenant votre extension originale.</li> - <li>mettre à jour votre extension et ajouter les détails des nouvelles permissions requises au fichier manifest.json, sans oublier de mettre à jour le numéro de version. Créez un paquet contenant votre extension mise à jour. - <div class="blockIndicator warning">Si les paquets ont été générés avec des extensions.zip, changez-les en.xpi, sinon votre navigateur pourrait essayer de télécharger plutôt que d'installer l'extension.</div> - </li> -</ul> - -<ul> - <li>Créer la <a href="/fr/Add-ons/Updates">mise à jour du manifest</a> avec les détails des deux versions d'extension, qui devrait être similaire à celui-ci : - - <pre class="brush: json">{ - "addons": { - "test@your-address.com": { - "updates": [ - { "version": "n.0", "update_link": "https://your-account.github.io/webextensions/your-extension-1.0.xpi" }, - { "version": "n+1.0", "update_link": "https://your-account.github.io/webextensions/your-extension-2.0.xpi" } - ] - } - } -}</pre> - </li> - <li>télécharger les deux paquets d'extension et les mises à jour manifestes sur votre serveur HTTP ou HTTPS.</li> - <li>exécuter les versions <a href="https://nightly.mozilla.org/">Nightly</a> ou<a href="https://www.mozilla.org/firefox/developer/"> Developer Edition</a> de Firefox.</li> - <li>dans <kbd>about:config</kbd> : - <ul> - <li>Définissez la préférence <code>xpinstall.signatures.required</code> à <code>false</code>.</li> - <li>Si vous utilisez <a href="https://nightly.mozilla.org/">Nightly</a> et hébergez votre mise à jour sur un serveur HTTP, créez et définissez les préférences <code>extensions.checkUpdateSecurity</code> et <code>extensions.install.requireSecureOrigin</code> à <code>false</code>. Pour faire ceci : - <ul> - <li>entrez le nom de la préférence dans la zone de recherche.</li> - <li>cliquez sur<strong> Ajouter</strong>.<br> - <img alt="Create a new about:config item in Nightly" src="https://mdn.mozillademos.org/files/16541/preference_create_2.png"></li> - <li>basculez la préférence pour la mettre à false.<br> - <img alt="Toggle the boolean value of a about:config item in Nightly" src="https://mdn.mozillademos.org/files/16542/preference_toggle_2.png" style="height: 147px; width: 987px;"></li> - </ul> - </li> - </ul> - </li> - <li>ouvrez le lien vers le premier fichier XPI pour l'installer.</li> - <li>Ouvrez <kbd>about:addons</kbd>, cliquez sur l'icône cranter et cliquez sur <strong>Check for Updates</strong>.</li> - <li>vous obtiendrez un message d'avertissement de permission, similaire à celui ci-dessous, détaillant les permissions supplémentaires demandées :<br> - <img alt="Example of the doorhanger displayed when testing permission requests for an extension upgrade" src="https://mdn.mozillademos.org/files/16545/upgrade_install_2.png" style="height: 215px; width: 376px;"></li> -</ul> - -<div class="blockIndicator note"> -<p>Si la mise à niveau n'a pas lieu, recherchez dans les logs <code>addons.update-checker</code> de la <a href="/en-US/docs/Tools/Browser_Console">console du navigateur</a>. Toute erreur rencontrée au cours du processus de mise à niveau sera signalée dans le journal de logs.</p> -</div> - -<h2 id="Re-tester_les_permissions_d'éxécution_octroyées"><strong>Re-tester les permissions d'éxécution octroyées</strong></h2> - -<p>Pour tester à nouveau les permissions d'exécution de votre extension et son comportement post-installation, vous avez deux choix :</p> - -<ul> - <li>supprimez l'extension en utilisant <kbd>about:debugging</kbd> et réinstallez-la, ou redémarrez Firefox.<br> - <img alt="Highlights the location of the remove option for a web extension in about:debugging" src="https://mdn.mozillademos.org/files/16563/reload_to_retest.png" style="height: 403px; width: 1229px;"></li> - <li>si vous utilisez <a href="https://nightly.mozilla.org/">Nightly</a> ou<a href="https://www.mozilla.org/firefox/developer/"> Developer Edition</a>, utilisez l'extension web des <a href="https://github.com/rpl/dev-webext-permissions-manager">extensions permission Manager</a> pour supprimer les permissions.</li> -</ul> - -<p>Vous pouvez ensuite réexécuter l'extension et toutes les demandes de permissions d'exécution seront affichées comme si l'extension était exécutée pour la première fois.</p> diff --git a/files/fr/mozilla/add-ons/webextensions/differences_entre_les_implementations_api/index.html b/files/fr/mozilla/add-ons/webextensions/differences_between_api_implementations/index.html index 60656f891e..60656f891e 100644 --- a/files/fr/mozilla/add-ons/webextensions/differences_entre_les_implementations_api/index.html +++ b/files/fr/mozilla/add-ons/webextensions/differences_between_api_implementations/index.html diff --git a/files/fr/mozilla/add-ons/webextensions/exemples/index.html b/files/fr/mozilla/add-ons/webextensions/examples/index.html index 7a96c1adae..7a96c1adae 100644 --- a/files/fr/mozilla/add-ons/webextensions/exemples/index.html +++ b/files/fr/mozilla/add-ons/webextensions/examples/index.html diff --git a/files/fr/mozilla/add-ons/webextensions/experience_utilisateur_bonnes_pratiques/index.html b/files/fr/mozilla/add-ons/webextensions/experience_utilisateur_bonnes_pratiques/index.html deleted file mode 100644 index bab0b4a22a..0000000000 --- a/files/fr/mozilla/add-ons/webextensions/experience_utilisateur_bonnes_pratiques/index.html +++ /dev/null @@ -1,190 +0,0 @@ ---- -title: Expérience utilisateur bonnes pratiques -slug: Mozilla/Add-ons/WebExtensions/Experience_utilisateur_bonnes_pratiques -tags: - - Add-ons - - Extensions - - Guide - - UI - - UX -translation_of: Mozilla/Add-ons/WebExtensions/User_experience_best_practices ---- -<div>{{AddonSidebar()}}</div> - -<p>Vous voudrez vous assurer que vos utilisateurs ont une excellente expérience en utilisant votre extension—quand vous le ferez, les bonnes critiques et évaluations suivront sur <a href="https://addons.mozilla.org">addons.mozilla.org</a> (AMO).</p> - -<p dir="ltr">Si vous êtes nouveau sur le sujet de rendre un logiciel utilisable. un bon point de départ pour démarrer est l'<a href="https://en.wikipedia.org/wiki/Heuristic_evaluation#Nielsen">Heuristique d'usabilité</a> de Jakob Nielsen. Nous vous recommandons, que vous soyez nouveau pour le développement d'extension ou pour un professionnel expérimenté, en utilisant les Heuristiques de Nielsen comme une liste de contrôle du <a href="#Test_test_and_then_test_again">test de votre expérience utilisateur (UX)</a>.</p> - -<p>Nous présentons ici les six étapes à suivre pour créer des fonctionnalités Firefox et UX spécifiques afin que vous puissiez créer une extension qui séduise, informe, enchante et fidélise vos utilisateurs.</p> - -<p>En plus des étapes décrites ici, votre extension doit suivre les règles d'<a href="https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/AMO/Policy/Reviews">Add-on Policies</a>, qui incluent la transparence avec les utilisateurs sur la sécurité, la confidentialité et le contrôle de l'utilisateur.</p> - -<h2 id="1._Gardez_le_cap">1. Gardez le cap</h2> - -<p dir="ltr">Les meilleures extensions Firefox offrent aux utilisateurs une nouvelle fonctionnalité ou capacité qui répond à un besoin, qu'il soit plus intelligent, plus efficace ou plus agréable de navigation. Idéalement, votre extension permet à l'utilisateur d'économiser du temps, de l'argent ou de la frustration.</p> - -<p>Une extension est meilleure lorsqu'elle est centrée autour d'un cas d'utilisation principal et qu'elle s'adresse à ce cas d'utilisation aussi bien que possible pour le public cible :</p> - -<ul> - <li>Il doit ajouter une fonction ou un ensemble de fonctions étroitement liées au navigateur, modifier une fonction du navigateur ou modifier des pages Web.</li> - <li>Déterminez si vous y êtes parvenu en demandant si vous pouvez facilement communiquer les caractéristiques et le but de la prolongation en trois phrases (courtes) ou moins.</li> -</ul> - -<h2 id="2._Donner_aux_utilisateurs_ce_dont_ils_ont_besoin_là_où_ils_en_ont_besoin">2. Donner aux utilisateurs ce dont ils ont besoin, là où ils en ont besoin</h2> - -<p dir="ltr">Choisir la bonne façon, ou la combinaison de plusieurs façons, de rendre la fonctionnalité de votre extension disponible pour l'utilisateur peut avoir un effet significatif sur la convivialité. Poser quelques questions simples sur les fonctionnalités de votre poste peut vous guider rapidement vers les bons choix :</p> - -<h3 dir="ltr" id="Est-ce_que_mon_extension_fonctionne_sur_la_plupart_des_sites_et_pages_web">Est-ce que mon extension fonctionne sur la plupart des sites et pages web ?</h3> - -<p dir="ltr">Si votre extension fournit à l'utilisateur des fonctionnalités qu'il peut utiliser sur presque tous les sites Web ou pages, donnez-lui accès à partir d'un <strong><a href="https://developer.mozilla.org/en-US/Add-ons/WebExtensions/user_interface/Browser_action">bouton de la barre d'outils</a> </strong><strong>en utilisant <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/browserAction">l'action du navigateur.</a></strong></p> - -<ul dir="ltr"> - <li>Cela peut inclure l'accès à votre éditeur d'images ou l'ouverture d'une page de votre site Web.</li> -</ul> - -<p dir="ltr"><img alt="" src="https://mdn.mozillademos.org/files/12966/browser-action.png" style="display: block; height: 387px; margin-left: auto; margin-right: auto; width: 782px;"></p> - -<p dir="ltr">Lorsque vous voulez donner l'accès à l'utilisateur à plusieurs fonctions, vous pouvez ajouter <a href="/en-US/Add-ons/WebExtensions/Popups">popup</a> au bouton (un popup apparaît comme un crochet de porte qui s'ouvre lorsque l'utilisateur sélectionne le bouton d'action du navigateur).</p> - -<h3 dir="ltr" id="Est-ce_que_mon_extension_ne_fonctionne_que_pour_certains_sites_et_pages_web">Est-ce que mon extension ne fonctionne que pour certains sites et pages web ?</h3> - -<p dir="ltr"> </p> - -<p dir="ltr">Si votre extension fournit à l'utilisateur des fonctionnalités qu'il peut utiliser sur presque tous les sites Web ou pages, donnez-lui accès à partir d'un <strong><a href="https://developer.mozilla.org/en-US/Add-ons/WebExtensions/user_interface/Browser_action">bouton de la barre d'outils</a> </strong><strong>en utilisant <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/browserAction">l'action du navigateur.</a></strong></p> - -<ul dir="ltr"> - <li>Cela peut inclure l'accès à votre éditeur d'images ou l'ouverture d'une page de votre site Web.</li> -</ul> - -<p dir="ltr"> </p> - -<p dir="ltr"><img alt="" src="https://mdn.mozillademos.org/files/12960/page-action.png" style="display: block; height: 262px; margin-left: auto; margin-right: auto; width: 850px;"></p> - -<p dir="ltr">Lorsque vous souhaitez donner accès à plusieurs fonctions à l'utilisateur, vous pouvez ajouter une fenêtre contextuelle au bouton.</p> - -<h3 dir="ltr" id="Mon_extension_doit-elle_afficher_des_informations_ou_proposer_des_actions_en_parallèle_avec_des_pages_web">Mon extension doit-elle afficher des informations ou proposer des actions en parallèle avec des pages web ?</h3> - -<p dir="ltr">Si votre extension contient des informations ou des actions auxquelles un utilisateur souhaite accéder immédiatement lorsqu'il consulte une page Web, <strong>utilisez une <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface/Sidebars">barre latérale</a></strong>.</p> - -<ul dir="ltr"> - <li>Il peut s'agir de notes que l'utilisateur peut faire sur le contenu d'une page ou d'une fonction offrant diverses substitutions de polices pour améliorer la lisibilité.</li> -</ul> - -<p dir="ltr"><img alt="" src="https://mdn.mozillademos.org/files/14825/bookmarks-sidebar.png" style="display: block; height: 761px; margin-left: auto; margin-right: auto; width: 728px;"></p> - -<h3 dir="ltr" id="Mon_extension_offre-t-elle_des_fonctionnalités_spécifiques_au_contenu_de_la_page_ou_à_d'autres_fonctions_du_navigateur">Mon extension offre-t-elle des fonctionnalités spécifiques au contenu de la page ou à d'autres fonctions du navigateur ?</h3> - -<p dir="ltr">Si votre extension offre des fonctionnalités auxquelles l'utilisateur peut vouloir accéder en contexte, <strong>ajoutez-les à un <a href="/en-US/Add-ons/WebExtensions/user_interface/Context_menu_items">menu contextuel</a></strong> approprié.</p> - -<ul dir="ltr"> - <li>Cela peut inclure l'accès à un éditeur d'image dans le menu contextuel de l'image ou des fonctions de copie étendues dans le menu contextuel pour le contenu de la page sélectionnée.</li> -</ul> - -<p dir="ltr"><img alt="Example of content menu items added by a WebExtension, from the context-menu-demo example" src="https://mdn.mozillademos.org/files/15051/context_menu_example.png" style="display: block; height: 587px; margin-left: auto; margin-right: auto; width: 573px;"></p> - -<h3 dir="ltr" id="Est-ce_que_mon_poste_possède_des_paramètres_que_l'utilisateur_peut_régler">Est-ce que mon poste possède des paramètres que l'utilisateur peut régler ?</h3> - -<p dir="ltr">Si votre extension permet à l'utilisateur de modifier et d'enregistrer les paramètres qui affectent le comportement de l'extension, utilisez une <strong><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface/Options_pages">page d'options</a> pour fournir un lien Préférences standard vers les paramètres </strong>du gestionnaire des extensions</p> - -<p dir="ltr"><img alt="Typical preferences button, to access an extension's settings, from the Add-on Manager" src="https://mdn.mozillademos.org/files/15271/add-on-manager-preferences-button.png" style="display: block; height: 80px; margin-left: auto; margin-right: auto; width: 732px;"></p> - -<div class="note"> -<p dir="ltr">Dans le système d'exploitation Windows, le bouton "Préférences" est appelé "Options".</p> -</div> - -<h3 dir="ltr" id="Est-ce_que_mon_extension_a_besoin_de_collecter_beaucoup_d'informations_ou_d'afficher_du_contenu_en_plus_des_onglets_actuels">Est-ce que mon extension a besoin de collecter beaucoup d'informations ou d'afficher du contenu en plus des onglets actuels ?</h3> - -<p dir="ltr">Lorsque votre extension a besoin de rassembler ou d'afficher des quantités importantes d'informations (plus qu'il n'est nécessaire pour une <a href="/en-US/docs/Web/API/Window/alert">alerte</a> ou qu'un formatage supplémentaire serait avantageux) <strong>utilisez <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface/Bundled_web_pages">pages webs groupées</a> pour fournir des formulaires et un contenu similaire.</strong></p> - -<p dir="ltr"><img alt="Example of a simple bundled page displayed as a detached panel." src="https://mdn.mozillademos.org/files/15073/bundled_page_as_panel.png" style="display: block; height: 445px; margin-left: auto; margin-right: auto; width: 680px;"></p> - -<h3 dir="ltr" id="Est-ce_que_mon_extension_essaie_d'aider_l'utilisateur_à_trouver_des_pages_web_ou_du_contenu">Est-ce que mon extension essaie d'aider l'utilisateur à trouver des pages web ou du contenu ?</h3> - -<p dir="ltr">Si votre extension inclut une fonctionnalité permettant de localiser des pages Web ou du contenu, par exemple en proposant une recherche spécifique à un site, utilisez les <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface/Omnibox">suggessions de la barre d'adresse</a> pour fournir ces recommandations.</p> - -<p dir="ltr"><img alt="Example showing the result of the firefox_code_search WebExtension's customization of the address bar suggestions." src="https://mdn.mozillademos.org/files/15075/omnibox_example_full.png" style="display: block; height: 325px; margin-left: auto; margin-right: auto; width: 679px;"></p> - -<h3 dir="ltr" id="Mon_extension_offre-t-elle_des_outils_pour_les_développeurs">Mon extension offre-t-elle des outils pour les développeurs ?</h3> - -<p dir="ltr">Si vous fournissez des outils pour les développeurs, ajoutez-les aux outils de développement Firefox en utilisant les <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface/devtools_panels">panneaux des outils de développement</a>.</p> - -<h2 dir="ltr" id="3._Tenir_l'utilisateur_informé">3. Tenir l'utilisateur informé</h2> - -<p dir="ltr">S'assurer que l'utilisateur sait ce qui va se passer, ce qui se passe et ce qui s'est passé dans votre extension est un élément essentiel pour établir la confiance et assurer un utilisateur heureux.</p> - -<h3 dir="ltr" id="Dites_à_l'utilisateur_ce_qui_va_se_passer_avant_qu'il_ne_se_produise.">Dites à l'utilisateur ce qui va se passer, avant qu'il ne se produise.</h3> - -<p dir="ltr">Les utilisateurs doivent comprendre ce qui se passe lorsqu'ils cliquent sur un bouton :</p> - -<ul dir="ltr"> - <li>Fournissez une étiquette de bouton significative et descriptive.</li> - <li>Fournissez des infobulles qui décrivent l'action que le bouton va effectuer..</li> - <li>Ne mettez <strong>pas</strong> le nom de l'extension seul dans l'infobulle, à moins qu'il ne soit descriptif de l'action que le bouton va effectuer..</li> - <li><strong>N'</strong>utilisez <strong>pas</strong> l'infobulle pour d'autres types d'informations telles que des statistiques détaillées sur votre extension. Gardez le contenu de l'infobulle simple et concentrez-vous sur ce qui se passera lorsque l'utilisateur clique sur le bouton.</li> -</ul> - -<h3 dir="ltr" id="Si_quelque_chose_est_vraiment_important_et_que_l'utilisateur_n'en_est_pas_conscient_informez-le.">Si quelque chose est <em>vraiment</em> important et que l'utilisateur n'en est pas conscient, informez-le.</h3> - -<p>Si votre extension a terminé une tâche d'arrière-plan critique et de longue durée, utilisez les <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface/Notifications">notifications</a> natives du système d'exploitation pour mettre à jour l'utilisateur lorsque la tâche est terminée. Ceci peut être utile lorsque l'utilisateur ne se concentre pas sur l'extension ou le navigateur, une fois la tâche terminée.</p> - -<p>Toutefois, utilisez les avis avec parcimonie. S'il suffit que l'utilisateur découvre qu'un processus est terminé lorsqu'il revient au navigateur ou à l'extension, <strong>n'</strong>utilisez pas de notifications.</p> - -<p dir="ltr"><img alt="" src="https://mdn.mozillademos.org/files/14043/notify-shadowed.png" style="display: block; height: 334px; margin-left: auto; margin-right: auto; width: 700px;"></p> - -<h3 dir="ltr" id="Utiliser_les_badges_browserAction_avec_parcimonie">Utiliser les badges browserAction avec parcimonie</h3> - -<p>Pour informer les utilisateurs des événements importants, vous pouvez <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/browserAction/setBadgeText">ajouter un badge</a> au dessus de l'icône de la barre <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/browserAction">browserAction</a>. Faites-le avec parcimonie - n'utilisez pas de badges pour fournir des mises à jour régulières ou persistantes de l'état.</p> - -<p>Lorsqu'il s'agit de <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/browserAction/setBadgeBackgroundColor">coloriser un badge</a>, il est recommandé d'utiliser l'une des quatre couleurs pour les notifications de gravité différente :</p> - -<ul> - <li>Décontracté : bleu</li> - <li>Succès : vert</li> - <li>Attention : jaune</li> - <li>Erreur : rouge</li> -</ul> - -<div class="note"> -<p dir="ltr">L'utilisation des couleurs Firefox est suggérée, pour plus de détails voir <a href="http://design.firefox.com/photon/visuals/color.html">Firefox Colors</a>. Cependant, pour des raisons de compatibilité avec <a href="https://developer.chrome.com/extensions/browserAction#icon">Chrome</a> et Opera, nous prenons en charge toutes les couleurs que vous souhaitez utiliser.</p> -</div> - -<h2 dir="ltr" id="4._Soyez_Firefoxy_dans_l'apparence_et_la_convivialité">4. Soyez Firefoxy dans l'apparence et la convivialité</h2> - -<p>Vos utilisateurs ont choisi Firefox pour une raison, peut-être pour plusieurs raisons, alors faites correspondre l'apparence de votre extension à celle de Firefox en utilisant le <a href="http://design.firefox.com/photon">Firefox Photon Design System</a>.</p> - -<p>En suivant Photon, vous vous assurerez que votre extension s'intègre à l'expérience Firefox et la rendra plus facile à utiliser pour les utilisateurs.</p> - -<h2 dir="ltr" id="5._Grande_expérience_d'intégration">5. Grande expérience d'intégration</h2> - -<p dir="ltr">Les premières minutes après l'installation de votre extension peuvent être cruciales pour son succès. Votre nouvel utilisateur doit savoir par où commencer et comment utiliser les fonctions de l'extension de votre navigateur.</p> - -<p dir="ltr">Fournir une page d'accueil qui donne aux utilisateurs les informations essentielles dont ils ont besoin pour commencer. Rédigez des informations brèves et précises et proposez des options de configuration simples, le cas échéant. Pour plus d'informations sur la création d'une page d'embarquement, voir <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/onboarding_upboarding_offboarding_best_practices">Bonnes pratiques pour les utilisateurs d'embarquement, d'embarquement, et de débarquement</a>.</p> - -<p dir="ltr">Si l'utilisateur saute la page d'embarquement, assurez-vous que votre poste est prêt à être utilisé immédiatement après l'installation. Il devrait être optimisé pour son cas d'utilisation principal et fonctionner comme prévu pour la plupart des utilisateurs sans avoir besoin de personnalisation.</p> - -<h2 dir="ltr" id="6._Testez_testez_puis_testez_à_nouveau">6. Testez, testez, puis testez à nouveau</h2> - -<p>Le test est une partie essentielle de la création d'un UX exceptionnel pour votre extension. Il y a deux aspects clés du test de votre UX:</p> - -<ol> - <li>Effectuez des tests sur plusieurs appareils et plates-formes pour vous assurer que votre extension fonctionne et qu'elle fonctionne correctement dans le plus grand nombre d'endroits possible. Cela inclut la prise en compte de facteurs tels que la taille de l'écran et la résolution de l'utilisateur —simplement parce que votre extension est bonne et facile à utiliser sur votre écran de bureau ne signifie pas qu'elle fonctionne aussi bien sur un écran d'ordinateur portable, ou, effectivement, vice et versa.</li> - <li>Testez avec autant d'utilisateurs que possible. Ne supposez pas que vous connaissez votre auditoire, car les antécédents et l'expérience des gens peuvent faire une énorme différence dans la façon dont ils interagissent avec votre extension. Ainsi, permettre les tests utilisateur dans le cadre du développement de votre extension.</li> -</ol> - -<p dir="ltr">Conseils de test :</p> - -<ul> - <li>Dans AMO, vous avez la possibilité d'<a href="/fr/Add-ons/Distribution/Submitting_an_add-on#Listing_on_AMO">identifier votre extension comme expérimentale</a> ou publier une <a href="/fr/Add-ons/Distribution#Beta_versions">version beta ou une autre version non finale</a>. - - <ul> - <li>Si vous marquez votre extension comme expérimentale, elle est listée dans AMO, mais avec un profil plus bas. Lorsque l'extension est prête pour un public plus large, vous pouvez désactiver le drapeau expérimental dans AMO.</li> - <li>Si vous avez une extension publiée, vous pouvez utiliser le canal Développement pour proposer une version alpha ou bêta à tester. Vous devrez diriger vos testeurs vers le canal de développement de la liste de votre extension ou indiquer à vos testeurs le lien à utiliser pour installer votre extension.<br> - <img alt="The development channel section of an extension's listing page, offering access to alpha and beta versions for testing." src="https://mdn.mozillademos.org/files/15273/extensions-development-channel.png" style="display: block; height: 262px; margin-left: auto; margin-right: auto; width: 751px;"><br> - Lorsque vous êtes satisfait de votre mise à jour, vous pouvez la publier comme la nouvelle version de votre extension.</li> - </ul> - </li> - <li>Si vous souhaitez distribuer votre extension à des utilisateurs extérieurs à AMO, vous trouverez les instructions pour le faire, ainsi que les instructions d'installation que vous devez fournir aux utilisateurs, dans l'article sur les <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Alternative_distribution_options/Sideloading_add-ons">extensions de chargement latéral.</a> N'oubliez pas que, contrairement à la distribution par l'entremise d'AMO, vous devrez envoyer aux utilisateurs toute version mise à jour de votre extension à mesure que vous apporterez des améliorations.</li> - <li>Utilisez le <a href="https://developer.mozilla.org/en-US/docs/Tools/Responsive_Design_Mode">mode design réactif</a> pour tester le comportement de votre extension sur d'autres tailles d'écran et types d'appareils.</li> -</ul> - -<p><strong>Créer une grande extension est un processus itératif. Bien que nous ayons décrit les six étapes ici, vous y reviendrez probablement au fur et à mesure que vous apprendrez ce qui fonctionne et ce qui ne fonctionne pas grâce aux commentaires des utilisateurs, aux tests et au temps. </strong></p> diff --git a/files/fr/mozilla/add-ons/webextensions/extension_des_outils_de_developpement/index.html b/files/fr/mozilla/add-ons/webextensions/extending_the_developer_tools/index.html index 8b5695b9e3..8b5695b9e3 100644 --- a/files/fr/mozilla/add-ons/webextensions/extension_des_outils_de_developpement/index.html +++ b/files/fr/mozilla/add-ons/webextensions/extending_the_developer_tools/index.html diff --git a/files/fr/mozilla/add-ons/webextensions/ajouter_une_page_de_paramètres/index.html b/files/fr/mozilla/add-ons/webextensions/implement_a_settings_page/index.html index 9635785e5d..9635785e5d 100644 --- a/files/fr/mozilla/add-ons/webextensions/ajouter_une_page_de_paramètres/index.html +++ b/files/fr/mozilla/add-ons/webextensions/implement_a_settings_page/index.html diff --git a/files/fr/mozilla/add-ons/webextensions/installation_temporaire_dans_firefox/index.html b/files/fr/mozilla/add-ons/webextensions/installation_temporaire_dans_firefox/index.html deleted file mode 100644 index 26f97b3cac..0000000000 --- a/files/fr/mozilla/add-ons/webextensions/installation_temporaire_dans_firefox/index.html +++ /dev/null @@ -1,56 +0,0 @@ ---- -title: Installation temporaire dans Firefox -slug: Mozilla/Add-ons/WebExtensions/installation_temporaire_dans_Firefox -tags: - - WebExtensions -translation_of: Mozilla/Add-ons/WebExtensions/Temporary_Installation_in_Firefox ---- -<div>{{AddonSidebar}}</div> - -<p>Cet article décrit comment une extension<em> </em>développée peut être temporairement installée dans Firefox pour la tester et la déboguer. L'extension restera installée jusqu'à ce que vous redémarriez Firefox. Vous pouvez utiliser cette méthode avec tout type d'extension ne nécessitant pas de redémarrage, y compris les <a href="/fr/docs/Mozilla/Add-ons/Bootstrapped_extensions">extensions bootstrap</a> et les <a href="/fr/docs/Mozilla/Add-ons/SDK">extensions utilisant le SDK des Add-ons</a>.</p> - -<p>Notez que les utilisateurs <em>ne devraient pas</em> utiliser cette méthode pour installer des extensions dans Firefox. Les utilisateurs installeront des extensions en téléchargeant et en ouvrant des extensions packagées qui ont été signées par Mozilla. Pour savoir comment un développeur d'extension peut faire packager et signer son extension, consultez <a href="/fr/docs/Mozilla/Add-ons/WebExtensions/Publishing_your_WebExtension">Publier votre extension</a>.</p> - -<p>Pour installer une extension temporairement :</p> - -<ul> - <li>Ouvrez Firefox</li> - <li>Entrez "about:debugging" dans la barre de l'URL</li> - <li>Cliquez sur "Charger un module temporaire"</li> - <li>Ouvrez le répertoire de l'extension et sélectionnez n'importe quel fichier à l'intérieur de l'extension.</li> -</ul> - -<p>L'extension sera installée et restera installée jusqu'à ce que vous redémarriez Firefox.</p> - -<p>{{EmbedYouTube("cer9EUKegG4")}}</p> - -<h2 id="Recharger_une_extension_temporaire">Recharger une extension temporaire</h2> - -<p>À partir de Firefox 48, il y a un nouveau bouton appelé "Recharger" à côté du nom de l'extension dans about:debugging :</p> - -<p><img alt="" src="https://mdn.mozillademos.org/files/13462/reload.png" style="display: block; height: 544px; margin-left: auto; margin-right: auto; width: 848px;">Il fait ce qu'il dit :</p> - -<ul> - <li>Recharger les scripts persistants, tels que les <a href="/fr/Add-ons/WebExtensions/Anatomy_of_a_WebExtension#Background_scripts">scripts de fond d'écran</a></li> - <li>Analyser le fichier <code>manifest.json</code> de nouveau, pour prendre en compte les changements de <code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/manifest.json/permissions">permissions</a></code>, <code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/manifest.json/content_scripts">content_scripts</a></code>, <code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/manifest.json/browser_action">browser_action</a></code> ou d'autres clefs.</li> -</ul> - -<p>{{EmbedYouTube("NuajE60jfGY")}}</p> - -<div class="note"> -<p>Notez que dans Firefox 48 uniquement, "Recharger" ne met pas à jour le nom et la description de l'extension qui sont affichés dans about:debugging et about:addons. Ceci a été corrigé dans Firefox 49.</p> -</div> - -<h2 id="Utilisation_de_la_ligne_de_commande">Utilisation de la ligne de commande</h2> - -<p>Si vous utilisez déjà la ligne de commande pour le développement, consultez l'outil <a href="/fr/Add-ons/WebExtensions/Getting_started_with_web-ext">web-ext</a>. Il automatise temporairement l'installation et recharge automatiquement votre extension quand le code source a changé.</p> - -<h2 id="Détection_d'installation_temporaire">Détection d'installation temporaire</h2> - -<p>Votre extension peut détecter si elle a été installée depuis about:debugging au lieu d'avoir été téléchargée comme une extension packagée et signée depuis <a href="https://addons.mozilla.org">addons.mozilla.org</a>. Écoutez l'événement {{WebExtAPIRef("runtime.onInstalled")}} et vérifiez la valeur de <code>details.temporary</code>.</p> - -<h2 id="Limitations">Limitations</h2> - -<p>L'installation temporaire d'une extension n'imite pas complètement le comportement d'une extension signée. Par exemple, si l'extension fait des demandes d'autorisation de temps d'installation, celles-ci ne sont pas affichées dans le cadre du processus d'installation temporaire. De plus, des fonctions, comme le stockage local, persistent même si l'extension est supprimée et que le navigateur redémarre.</p> - -<p>Pour plus d'informations sur la façon de traiter ces situations, voir les <a href="/fr/Add-ons/WebExtensions/Test_permission_requests">demandes de permissions</a> et <a href="/fr/Add-ons/WebExtensions/Testing_persistent_and_restart_features">Test des fonctionnalités persistantes et de redémarrage</a>.</p> diff --git a/files/fr/mozilla/add-ons/webextensions/interagir_avec_le_presse_papier/index.html b/files/fr/mozilla/add-ons/webextensions/interact_with_the_clipboard/index.html index fe7b69e3a3..fe7b69e3a3 100644 --- a/files/fr/mozilla/add-ons/webextensions/interagir_avec_le_presse_papier/index.html +++ b/files/fr/mozilla/add-ons/webextensions/interact_with_the_clipboard/index.html diff --git a/files/fr/mozilla/add-ons/webextensions/intercepter_requêtes_http/index.html b/files/fr/mozilla/add-ons/webextensions/intercept_http_requests/index.html index f534b57be1..f534b57be1 100644 --- a/files/fr/mozilla/add-ons/webextensions/intercepter_requêtes_http/index.html +++ b/files/fr/mozilla/add-ons/webextensions/intercept_http_requests/index.html diff --git a/files/fr/mozilla/add-ons/webextensions/manifest.json/auteur/index.html b/files/fr/mozilla/add-ons/webextensions/manifest.json/author/index.html index a00c7dab33..a00c7dab33 100644 --- a/files/fr/mozilla/add-ons/webextensions/manifest.json/auteur/index.html +++ b/files/fr/mozilla/add-ons/webextensions/manifest.json/author/index.html diff --git a/files/fr/mozilla/add-ons/webextensions/manifest.json/arriere-plan/index.html b/files/fr/mozilla/add-ons/webextensions/manifest.json/background/index.html index 4181a9e841..4181a9e841 100644 --- a/files/fr/mozilla/add-ons/webextensions/manifest.json/arriere-plan/index.html +++ b/files/fr/mozilla/add-ons/webextensions/manifest.json/background/index.html diff --git a/files/fr/mozilla/add-ons/webextensions/manifest.json/theme_experimentation/index.html b/files/fr/mozilla/add-ons/webextensions/manifest.json/theme_experiment/index.html index f33a6478c4..f33a6478c4 100644 --- a/files/fr/mozilla/add-ons/webextensions/manifest.json/theme_experimentation/index.html +++ b/files/fr/mozilla/add-ons/webextensions/manifest.json/theme_experiment/index.html diff --git a/files/fr/mozilla/add-ons/webextensions/manifests_native/index.html b/files/fr/mozilla/add-ons/webextensions/native_manifests/index.html index c9c68b6304..c9c68b6304 100644 --- a/files/fr/mozilla/add-ons/webextensions/manifests_native/index.html +++ b/files/fr/mozilla/add-ons/webextensions/native_manifests/index.html diff --git a/files/fr/mozilla/add-ons/webextensions/portage_d_une_extension_firefox_heritee/index.html b/files/fr/mozilla/add-ons/webextensions/portage_d_une_extension_firefox_heritee/index.html deleted file mode 100644 index 5227fba14b..0000000000 --- a/files/fr/mozilla/add-ons/webextensions/portage_d_une_extension_firefox_heritee/index.html +++ /dev/null @@ -1,85 +0,0 @@ ---- -title: Portage d'une extension Firefox héritée -slug: Mozilla/Add-ons/WebExtensions/Portage_d_une_extension_Firefox_heritee -tags: - - WebExtensions -translation_of: Mozilla/Add-ons/WebExtensions/Porting_a_legacy_Firefox_add-on ---- -<div>{{AddonSidebar}}</div> - -<p>Si vous avez développé une extension Firefox en utilisant une technologie héritée en utilisant XUL/XPCOM ou le kit d'extensions, cette page vous aidera à migrer votre extension pour utiliser les API WebExtensions. La norme pour créer des extensions pour Firefox consiste à utiliser les API <a class="external text" href="/fr/Add-ons/WebExtensions" rel="nofollow">WebExtensions</a>. Ce sera le seul type d'extension pris en charge par Firefox d'ici la fin du mois de novembre 2017 avec la sortie de <a class="external text" href="https://wiki.mozilla.org/RapidRelease/Calendar" rel="nofollow">Firefox 57</a>.</p> - -<div class="blockIndicator warning"> -<p>La prise en charge des extensions utilisant XUL/XPCOM ou le SDK Add-on a été supprimée dans Firefox 57, publié en novembre 2017. Comme il n'y a pas de version supportée de Firefox permettant ces technologies, cette page sera supprimée d'ici décembre 2020.</p> -</div> - -<h2 id="Démarrage_rapide">Démarrage rapide</h2> - -<ol> - <li>Obtenez une idée des principales choses que vous devrez modifier dans votre extension : - <ul> - <li>Familiarisez-vous avec le <a href="/fr/Add-ons/WebExtensions/Anatomy_of_a_WebExtension">format et la structure WebExtension</a>, et <a href="/fr/Add-ons/WebExtensions/Your_first_WebExtension">créez un exemple basique</a>.</li> - <li>Si votre extension est basé sur XUL et XPCOM, qu'il s'agisse d'une <a href="https://developer.mozilla.org/fr/Add-ons/Overlay_Extensions">extension de superposition</a> ou d'une <a href="https://developer.mozilla.org/fr/Add-ons/Bootstrapped_extensions">extension bootstrap</a>, consultez la <a href="/fr/Add-ons/WebExtensions/Comparison_with_XUL_XPCOM_extensions">comparaison avec les extensions XUL/XPCOM</a> pour savoir comment les WebExtensions peuvent correspondre aux API existantes que vous utilisez.</li> - <li> - <p>Si votre extension est basée sur le SDK d'extensions, consultez la <a href="/fr/Add-ons/WebExtensions/Comparison_with_the_Add-on_SDK">comparaison avec le SDK d'extensions</a> pour savoir comment les WebExtensions peuvent correspondre aux SDK API existantes que vous utilisez.</p> - </li> - </ul> - </li> - <li>Réécrivez le code de votre extension. Voir ci-dessous les chemins de migration pour différents types d'extensions. A partir de Firefox 51, vous pouvez intégrer une extension construite à l'aide d'API WebExtension dans une extension bootstrap ou une extension SDK, et peut donc porter une extension héritée une pièce à la fois et avoir une extension fonctionnelle à chaque étape. Consultez <a href="/fr/Add-ons/WebExtensions/Embedded_WebExtensions">Embedded WebExtensions</a>.</li> - <li>Lorsque vous êtes prêt à soumettre la version WebExtension de votre extension à AMO... attendez une minute... êtes-vous vraiment prêt ? En raison du modèle de permissions d'extensions, vous ne pouvez pas revenir de WebExtensions à l'utilisation d'un format d'extension hérité. Donc tester <em>bien</em>, car il s'agit d'un aller simple permanent. Consultez également l'exemple hybride ci-dessous. Si vous n'êtes pas prêt, vous pouvez intégrer votre WebExtension dans un conteneur d'extension existant, ce qui vous permet de tester votre migration d'extension mais encore de revenir si nécessaire en cas d'urgence.</li> - <li>Lorsque vous êtes vraiment prêt à soumettre la version WebExtension de votre extension à AMO, connectez d'abord votre ancienne ID d'extension au nouveau fichier manifest.json de WebExtension. Votre extension doit avoir le même ID que les versions précédentes. Copiez la valeur dans le champ "id" de votre fichier package.json dans le champ id dans la section des <a href="/fr/Add-ons/WebExtensions/manifest.json/applications">applications</a> du fichier manifest.json WebExtension. Ensuite, vous pouvez soumettre votre mise à jour de l'extension à AMO comme vous le feriez normalement.</li> -</ol> - -<div class="note"> -<p>Notez qu'il s'agit d'une conversion unidirectionnelle: vous <strong>ne pouvez pas</strong> mettre à jour une WebExtension pour utiliser une technologie héritée. Cela signifie que vous devez être sûr que vous êtes prêt à vous engager aux WebExtensions avant de soumettre la mise à jour de l'extension à AMO.</p> -</div> - -<h2 id="Chemin_de_migration">Chemin de migration</h2> - -<h3 id="SDK_Extensions"><br> - SDK Extensions</h3> - -<p>Voici le tableau de comparaison montrant les <a href="/fr/Add-ons/WebExtensions/Comparison_with_the_Add-on_SDK">APIs SDK et leurs homologues de format WebExtensions</a>. Si vous ne voyez pas les API dont vous avez besoin pour utiliser les APIs WebExtensions, consultez ci-dessous pour savoir comment demander des API et aussi comment les implémenter.</p> - -<h3 id="XULXPCOM_Extensions">XUL/XPCOM Extensions</h3> - -<p>Voici le tableau de comparaison montrant les <a href="/fr/Add-ons/WebExtensions/Comparison_with_XUL_XPCOM_extensions">APIs XUL/XPCOM et leurs homologues de format WebExtensions</a>. Si vous ne voyez pas les API dont vous avez besoin pour utiliser les APIs WebExtension, consultez ci-dessous pour savoir comment demander des API et aussi comment les implémenter.</p> - -<h2 id="Vous_ne_trouvez_pas_les_APIs_WebExtensions_dont_vous_avez_besoin">Vous ne trouvez pas les APIs WebExtensions dont vous avez besoin ?</h2> - -<p><strong>Développez les APIs WebExtension pour Firefox</strong> - Si vous êtes expérimenté avec l'infrastructure Mozilla et souhaitez développer des API WebExtensions directement pour Firefox, voici une liste d' <a href="https://mzl.la/2dVs5Ys">APIs approuvées</a> que vous pouvez commencer à contribuer.</p> - -<p><strong>Expérimentez avec les nouvelles APIs WebExtension</strong> - Si vous souhaitez créer un prototype et un bricolage avec les API WebExtensions sans avoir à créer Firefox, les <a href="http://webextensions-experiments.readthedocs.io/en/latest/index.html">Expériences WebExtensions</a> sont pour vous !</p> - -<p><strong>Demandez une nouvelle API WebExtensions </strong>- Si vous souhaitez demander une nouvelle API WebExtensions, lisez <a class="external text" href="https://wiki.mozilla.org/WebExtensions/NewAPIs" rel="nofollow">cette page.</a></p> - -<h2 id="Outils">Outils</h2> - -<ul> - <li><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/Getting_started_with_web-ext">web-ext</a> st un outil de ligne de commande conçu pour accélérer diverses parties du processus de développement d'extension, rendant le développement plus rapide et plus facile.</li> - <li><a href="https://compatibility-lookup.services.mozilla.com/">Lookup tool</a> pour vérifier votre type d'extension et obtenir des recommandations sur les ressources de portage</li> - <li><a href="https://github.com/mi-g/weh">WebExtensions Helper</a> accélère le développement de l'extension du navigateur en fournissant des utilitaires pour les extensions basées sur WebExtensions (Firefox, Chrome, Opera and Edge)</li> - <li><a href="https://github.com/yeoman/generator-chrome-extension">Chrome Extension generator </a>crée tout ce dont vous avez besoin pour commencer avec le développement de l'extension. Vous pouvez choisir l'interface utilisateur du navigateur (Browser,Page Action, Omnibox) et sélectionner les permissions dont vous avez besoin.</li> - <li><a href="http://extensionizr.com/">Extensionizr</a> est un assistant qui vous aide à créer une extension simple</li> - <li><a href="https://github.com/mahemoff/chrome-boilerplate">Chrome Boilerplate</a> est un code de référence pour Chrome WebExtension<span class="col-11 mr-2 text-gray-dark">.</span></li> - <li><a href="https://github.com/sitepoint/ChromeSkel_a">Skeleton Chrome Extension</a> est une extension bootstrap et un modèle</li> -</ul> - -<h2 id="Documentation">Documentation</h2> - -<ul> - <li><a href="https://wiki.mozilla.org/Add-ons/developer/communication">Page du projet WebExtensions</a> sur le wiki de Mozilla</li> - <li><a href="/fr/Add-ons/WebExtensions">Guide pratique</a> couvrant les cas communs de développement d'extension, comme <a href="/fr/Add-ons/WebExtensions/Intercept_HTTP_requests">intercepter des requêtes web</a> et <a href="/fr/Add-ons/WebExtensions/Add_a_button_to_the_toolbar">ajouter un bouton à la barre d'outils</a></li> - <li><a href="/fr/Add-ons/WebExtensions/Comparison_with_the_Add-on_SDK">Comparaison avec the Add-on SDK</a></li> - <li><a href="/fr/Add-ons/WebExtensions/Comparison_with_XUL_XPCOM_extensions">Comparaison avec XUL/XPCOM extensions</a></li> - <li><a href="/fr/Add-ons/WebExtensions/Browser_support_for_JavaScript_APIs">Tableau de compatibilité du navigateur</a> pour toutes les APIs WebExtensions</li> - <li><a href="/fr/Add-ons/WebExtensions/Examples">Examples d'extensions</a></li> -</ul> - -<h2 id="Contact">Contact</h2> - -<ul> - <li> - <p>Vous pouvez utiliser les liens <a href="/fr/Add-ons#Contact_us">ici</a> pour obtenir de l'aide, vous tenir à jour avec les nouvelles des add-ons, et nous donner des commentaires.</p> - </li> -</ul> diff --git a/files/fr/mozilla/add-ons/webextensions/publishing_your_webextension/index.html b/files/fr/mozilla/add-ons/webextensions/publishing_your_webextension/index.html deleted file mode 100644 index 8f50b00eaf..0000000000 --- a/files/fr/mozilla/add-ons/webextensions/publishing_your_webextension/index.html +++ /dev/null @@ -1,58 +0,0 @@ ---- -title: Publier votre extension -slug: Mozilla/Add-ons/WebExtensions/Publishing_your_WebExtension -tags: - - WebExtensions -translation_of: Mozilla/Add-ons/WebExtensions/Package_your_extension_ ---- -<div>{{AddonSidebar}}</div> - -<div class="pull-aside"> -<div class="moreinfo"> -<p>Les extensions packagées dans Firefox sont appelées "fichiers XPI", qui sont des fichiers ZIP avec une extension différente.</p> - -<p>Vous n'avez pas besoin d'utiliser l'extension XPI lors du téléchargement vers AMO.</p> -</div> -</div> - -<p><span class="seoSummary">Pendant le développement, votre extension sera constituée d'un répertoire contenant un fichier manifest.json et les autres fichiers dont elle a besoin : scripts, icônes, documents HTML, etc. Vous devez les zipper dans un seul fichier pour les télécharger vers AMO.</span></p> - -<p>La façon la plus pratique de compiler votre extension est d'utiliser la <a href="/fr/Add-ons/WebExtensions/web-ext_command_reference#web-ext_build">build web-ext</a>. Cet outil exclut automatiquement les fichiers qui sont généralement indésirables dans les paquets, comme les fichiers <code>.git</code> . Sinon, suivez les instructions ci-dessous pour le système d'exploitation.</p> - -<div class="note"> -<p><strong>Astuce</strong>. Le fichier ZIP doit être un fichier ZIP des fichiers de l'extension elle-même, et non du répertoire qui les contient.</p> -</div> - -<h3 id="Windows">Windows</h3> - -<ol> - <li>Ouvrez le répertoire contenant les fichiers de votre extension.</li> - <li>Sélectionnez tous les fichiers et répertoires nécessaires pour implémenter votre extension, excluez les fichiers qui ne sont pas nécessaires pour exécuter l'extension, tels que <code>.git</code>, les sources graphiques et les fichiers similaires.</li> - <li>Ouvrez le menu contextuel et cliquez sur <strong>Envoyer</strong> dans le <strong>dossier compressé (zipped)</strong>.</li> -</ol> - -<p><img alt="Illustration of how to use the send to compress folder feature in File Explorer to create a web extension package." src="https://mdn.mozillademos.org/files/16565/creating_package_windows.png"></p> - -<h3 id="macOS">macOS</h3> - -<ol> - <li>Ouvrez le répertoire contenant les fichiers de votre extension.</li> - <li>Sélectionnez tous les fichiers et répertoires nécessaires pour implémenter votre extension, excluez les fichiers qui ne sont pas nécessaires pour exécuter l'extension, tels que <code>.git</code>, les sources graphiques et les fichiers similaires.</li> - <li>Ouvrez le menu contextuel et cliquez <strong>Compress <em>n</em> éléments</strong>.</li> -</ol> - -<p><img alt="Illustration of how to use the compress feature in Finder to create a web extinction package." src="https://mdn.mozillademos.org/files/16564/creating_package_mac.png" style="height: 437px; width: 768px;"></p> - -<div class="pull-aside"> -<div class="moreinfo">Voir <a href="http://www.info-zip.org/mans/zip.html">http://www.info-zip.org/mans/zip.html</a>.</div> -</div> - -<h3 id="Linux_macOS_Terminal">Linux / macOS Terminal</h3> - -<ol> - <li>Ouvrir un Terminal.</li> - <li>Ouvrez le répertoire contenant les fichiers de votre extension, en utilisant la commande<br> - <code>cd path/to/<em>my-extension</em>/</code></li> - <li>ZIPez le contenu du répertoire en vous souvenant d'exclure les fichiers qui ne sont pas nécessaires à l'exécution de l'extension, tels que <code>.git</code>, les sources graphiques, et les fichiers similaires - en utilisant la commande<br> - <code>zip -r -FS ../<em>my-extension</em>.zip * --exclude *.git*</code></li> -</ol> diff --git a/files/fr/mozilla/add-ons/webextensions/que_signifie_le_rejet_d_une_revision_pour_les_utilisateurs/index.html b/files/fr/mozilla/add-ons/webextensions/que_signifie_le_rejet_d_une_revision_pour_les_utilisateurs/index.html deleted file mode 100644 index df7532390b..0000000000 --- a/files/fr/mozilla/add-ons/webextensions/que_signifie_le_rejet_d_une_revision_pour_les_utilisateurs/index.html +++ /dev/null @@ -1,44 +0,0 @@ ---- -title: Que signifie le rejet d'une révision pour les utilisateurs ? -slug: >- - Mozilla/Add-ons/WebExtensions/que_signifie_le_rejet_d_une_revision_pour_les_utilisateurs -tags: - - Add-ons - - Extensions - - Guide - - Review - - WebExtensions - - publication -translation_of: Mozilla/Add-ons/WebExtensions/What_does_review_rejection_mean_to_users ---- -<p>{{AddonSidebar}}</p> - -<p><span class="seoSummary">Cet article explique comment les utilisateurs et les personnes à la recherche de votre extension sont affectés si vous obtenez un rejet du processus de révision Mozilla.</span></p> - -<h2 id="Aperçu_de_lexamen">Aperçu de l'examen</h2> - -<p>Toute extension que vous soumettez à <a href="http://addons.mozilla.org">addons.mozilla.org</a> (AMO) fait l'objet de deux évaluations. Il y a une validation machine de votre extension dans le cadre du flux de soumission, et un examen humain qui a lieu après la publication de votre extension.</p> - -<p>La validation de la machine vous indique immédiatement si quelque chose doit être corrigé pour permettre la publication de votre extension. L'examen humain a lieu après la publication et peut avoir lieu à tout moment. Au début de cet examen, l'examinateur peut demander des éclaircissements au sujet de votre prolongation. Le résultat de l'examen pourrait être le rejet de la dernière version de votre extension, et le rejet des versions antérieures non révisées si elles contiennent également des problèmes.</p> - -<p>Pour plus d'informations sur ces processus, voir <a href="/en-US/docs/Mozilla/Add-ons/Distribution/Submitting_an_add-on">Soumission d'un add-on</a> et de la <a href="/fr/docs/Mozilla/Add-ons/AMO/Règles/Reviews">politiques Add-on</a>.</p> - -<h2 id="Incidence_du_rejet_de_lexamen">Incidence du rejet de l'examen</h2> - -<p>Si votre prolongation est rejetée par l'examen humain :</p> - -<ul> - <li>Vous recevez un courriel expliquant la raison du rejet et les mesures que vous devez prendre pour corriger les problèmes identifiés.</li> - <li>Si une version antérieure de votre extension est publique, celle-ci devient celle vue par les visiteurs d'AMO.</li> - <li>S'il n'y a pas de version publique de votre poste à afficher, l'inscription de votre poste sur AMO est suspendue. Cela signifie que votre extension n'apparaît plus dans aucune liste sur AMO et ne sera plus retournée dans les résultats des recherches effectuées par les visiteurs AMO. Si quelqu'un suit un lien externe vers votre liste d'extensions, il arrivera à une page 404.</li> -</ul> - -<p>Les personnes qui ont installé votre extension ne remarqueront aucun changement suite au rejet de la révision ; elles pourront continuer à utiliser votre extension comme d'habitude.</p> - -<h2 id="Liste_de_blocage">Liste de blocage</h2> - -<p>La liste de blocage est un mécanisme qui permet à Mozilla d'empêcher l'utilisation d'une extension dans Firefox (un bloc dur) ou de demander aux utilisateurs de confirmer qu'ils souhaitent exécuter l'extension (un bloc mou).</p> - -<p>Si vous ne répondez pas à la rétroaction d'examen et ne corrigez pas rapidement les problèmes, votre prolongation pourrait être considérée pour l'inscription sur la liste de blocage, particulièrement si les problèmes identifiés ont trait à des vulnérabilités critiques en matière de sécurité, de stabilité ou de rendement. Cependant, si votre extension est délibérément malveillante ou abusive, elle peut être bloquée sans notification.</p> - -<p>Pour plus d'informations sur la liste de blocage, voir <a href="https://wiki.mozilla.org/Blocklisting">Liste de blocage</a> dans le wiki Mozilla.</p> diff --git a/files/fr/mozilla/add-ons/webextensions/inserer_en_toute_securite_du_contenu_externe_dans_une_page/index.html b/files/fr/mozilla/add-ons/webextensions/safely_inserting_external_content_into_a_page/index.html index 2365874169..2365874169 100644 --- a/files/fr/mozilla/add-ons/webextensions/inserer_en_toute_securite_du_contenu_externe_dans_une_page/index.html +++ b/files/fr/mozilla/add-ons/webextensions/safely_inserting_external_content_into_a_page/index.html diff --git a/files/fr/mozilla/add-ons/webextensions/securite_bonne_pratique/index.html b/files/fr/mozilla/add-ons/webextensions/securite_bonne_pratique/index.html deleted file mode 100644 index 05a6a7a699..0000000000 --- a/files/fr/mozilla/add-ons/webextensions/securite_bonne_pratique/index.html +++ /dev/null @@ -1,63 +0,0 @@ ---- -title: Bonnes pratiques de sécurité -slug: Mozilla/Add-ons/WebExtensions/securite_bonne_pratique -tags: - - Débutant - - Extensions - - Intermédiaire - - Sécurité - - WebExtensions - - revue -translation_of: Mozilla/Add-ons/WebExtensions/Security_best_practices ---- -<div>{{AddonSidebar}}</div> - -<p>Voici une liste des meilleures pratiques à suivre pour protéger les utilisateurs de votre extension. Si vous ne suivez pas ces bonnes pratiques, votre extension risque d'échouer les avis sur <a href="https://addons.mozilla.org">addons.mozilla.org</a>, Si vous ne suivez pas ces bonnes pratiques, votre extension risque d'échouer les avis survous empêchant ainsi de distribuer votre module ou de le bloquer à l'installation dans Firefox.</p> - -<ul> - <li><strong>Ne pas injecter ou incorporer des scripts distants</strong><br> - Si vous identifiez un service que vous souhaitez utiliser dans votre extension, n'injectez pas le script du service à partir d'une source distante. Une telle approche est risquée, car le code pourrait être modifié sans que vous le sachiez — et, surtout, sans la connaissance et le consentement de l'utilisateur des extensions — compromettant la sécurité de votre extension. Vous devriez donc ajouter une copie du script dans le code de votre extension.</li> - <li><strong>Assurez-vous d'insérer le contenu distant en toute sécurité</strong><br> - Assurez-vous de suivre les bonnes pratiques lorsque votre extension utilise du contenu distant : - <ul> - <li>insérez des chaînes à l'aide de méthodes de manipulation DOM natives sécurisées : <a href="/fr/docs/Web/API/Document/createElement">document.createElement</a>, <a href="/fr/docs/Web/API/Element/setAttribute">Element.setAtttribute</a>, et <a href="/fr/docs/Web/API/Node/textContent">Node.textContent</a>.</li> - <li>utilisez les fonctions <code>attr()</code> et <code>text()</code> pour insérer des chaînes.</li> - <li>assainir le contenu HTML avec <a href="https://github.com/cure53/DOMPurify">DOMPurify</a>.</li> - <li>utiliser des commandes de moteur de modèle qui échappent à tout code HTML avant de l'insérer.</li> - </ul> - - <p>Pour plus d'informations, voir <a href="/fr/Add-ons/WebExtensions/Safely_inserting_external_content_into_a_page">Insérer du contenu externe en toute sécurité dans une page</a>.</p> - </li> - <li><strong>Utiliser XHR pour Google Analytics</strong><br> - Si vous souhaitez ajouter Google Analytics à votre extension, n'insérez pas le code JavaScript Google Analytics. Il est plutôt recommandé d'utiliser l'API REST Google Analytics dans un appel XHR, par exemple: - <pre class="brush: js">let request = new XMLHttpRequest(); -let message = - "v=1&tid=" + GA_TRACKING_ID + "&cid= " + GA_CLIENT_ID + "&aip=1" + - "&ds=add-on&t=event&ec=AAA&ea=" + aType; - -request.open("POST", "https://www.google-analytics.com/collect", true); -request.send(message);</pre> - Vous pouvez trouver plus d'informations dans l'article de blog <a href="https://blog.mozilla.org/addons/2016/05/31/using-google-analytics-in-extensions/">Utilisation de Google Analytics dans les Extensions</a>.</li> - <li><strong>Utiliser la stratégie de sécurité du contenu de l'extension standard (CSP)</strong><br> - La stratégie standard limite les sources à partir desquelles votre extension peut charger les ressources <a href="/fr/docs/Web/HTML/Element/script"><code><script></code></a> et <a href="/fr/docs/Web/HTML/Element/object"><code><object></code></a>, et interdit les pratiques potentiellement dangereuses, telles que l'utilisation de <a href="/fr/docs/Web/JavaScript/Reference/Global_Objects/eval">eval()</a>. Bien que la clé manifest.json <a href="/fr/Add-ons/WebExtensions/manifest.json/content_security_policy">content_security_policy</a> vous permette de modifier la stratégie de sécurité du contenu de votre extension, cette opération n'est pas recommandée car elle empêche les extensions d'exécuter involontairement du contenu malveillant. Si votre CSP modifié autorise l'injection de script à distance, votre extension sera rejetée par AMO pendant la révision.<br> - Pour plus d'informations, voir <a href="/fr/Add-ons/WebExtensions/Content_Security_Policy#Default_content_security_policy">Stratégie de sécurité du contenu par défaut</a>.</li> - <li><strong>Partagez des objets avec JavaScript sur la page avec soin</strong><br> - Firefox fournit <code>wrappedJSObject</code> afin qu'un script de contenu puisse accéder aux objets JavaScript créés par les scripts de page. Le danger ici est qu'une page Web malveillante puisse, par exemple, modifier les fonctions des objets JavaScript pour exécuter son propre code.<br> - Pour plus d'informations, voir <a href="/fr/Add-ons/WebExtensions/Sharing_objects_with_page_scripts">Accès aux objets de script de page à partir de scripts de contenu</a>.</li> - <li><strong>Utilisez <code>window.eval()</code> dans les scripts de contenu avec prudence</strong><br> - Vous devez être très prudent lorsque vous exécutez du code dans le contexte d'une page. Une page Web malveillante pourrait tenter d'exécuter du code en exploitant l'utilisation de <code>window.eval()</code>. Il peut le faire, par exemple, en redéfinissant les objets que votre code pourrait vouloir évaluer.<br> - Pour plus d'informations, voir <a href="/fr/docs/Web/JavaScript/Reference/Global_Objects/eval#Don't_use_eval_needlessly!">Ne pas utiliser eval inutilement !</a></li> - <li><strong>Créez votre interface utilisateur avec des composants d'extension</strong><br> - Créez l'interface utilisateur de votre extension à l'aide des <a href="/fr/Add-ons/WebExtensions/user_interface">fonctions intégrées de l'interface utilisateur d'extension</a>, telles que les pages groupées, pageAction et les fenêtres contextuelles sur pageAction et browserAction. N'ajoutez pas d'éléments d'interface utilisateur, tels que des boutons ou des barres d'outils, directement aux pages Web. Si vous le faites, les scripts sur la page Web pourraient compromettre votre extension. Voir <a href="https://www.grepular.com/Keybase_Browser_Extension_Insecure">extension du navigateur Keybase Insecure</a> pour un exemple des problèmes potentiels.<br> - Si les composants de l'interface utilisateur standard ne suffisent pas, utilisez des iframes avec des <a href="/fr/docs/Web/HTTP/Basics_of_HTTP/Data_URIs">URL de données</a> pour éviter les empreintes digitales ou ajoutez des iframes au code d'extension afin qu'une page ne puisse pas interagir avec le contenu de votre interface utilisateur, comme les boutons.</li> - <li><strong>Ajouter eslint-plugin-no-unsanitized à ESLint</strong><br> - Si vous utilisez ESLint pour vérifier votre code d'extension, pensez à ajouter eslint-plugin-no-unsanitized. Ce plug-in de règles ESLint signale les instances où du code non-initié provenant d'API ou d'entrées utilisateur peut provoquer des problèmes.</li> - <li><strong>Ne pas injecter les chemins moz-extension directement</strong><br> - Lorsque les liens, les inclusions ou les images injectés incluent des chemins vers <code>moz-extension://{hash}</code> le script de suivi d'une page peut utiliser cette information pour <a href="https://en.wikipedia.org/wiki/Device_fingerprint">identifier</a> l'utilisateur, car le hachage (UUID) est unique à l'installation de l'extension et, par conséquent, l'utilisateur.<br> - La meilleure façon d'éviter ce problème est de suivre les conseils généraux concernant l'injection de contenu. Cependant, si vous pensez que l'injection de contenu est votre seule approche pratique, assurez-vous que les chemins moz-extension sont incorporés dans un iframe en utilisant une <a href="/fr/docs/Web/HTTP/Basics_of_HTTP/Data_URIs">URL de données</a> ou l'attribut <a href="/fr/docs/Web/HTML/Element/iframe#attr-srcdoc">srcdoc</a>.</li> - <li><strong>S'assurer que les bibliothèques tierces sont à jour</strong><br> - tierces réputées seront mises à jour lorsque des problèmes seront détectés. L'utilisation de bibliothèques tierces périmées (et potentiellement non sécurisées) est fortement déconseillée et, lorsqu'un risque important est identifié, l'AMO peut agir pour bloquer les extensions en utilisant le code obsolète.<br> - Par conséquent, utilisez toujours la dernière version des bibliothèques tierces lorsque vous créez votre extension. Ensuite, prenez connaissance des mises à jour de ces bibliothèques et soyez prêt à mettre à jour votre extension pour vous assurer qu'elle utilise une version à jour de la bibliothèque.</li> - <li><strong>Ne pas modifier les bibliothèques tierces</strong><br> - Les modifications apportées à une bibliothèque tierce sont un indicateur significatif qu'un développeur essaie de cacher du code malveillant dans un code généralement connu et approuvé. AMO va donc essayer de détecter les modifications apportées aux bibliothèques tierces et peut désactiver les extensions lorsqu'il trouve des modifications.</li> -</ul> diff --git a/files/fr/mozilla/add-ons/webextensions/partage_d_objets_avec_des_scripts_de_page/index.html b/files/fr/mozilla/add-ons/webextensions/sharing_objects_with_page_scripts/index.html index 81ac2d7584..81ac2d7584 100644 --- a/files/fr/mozilla/add-ons/webextensions/partage_d_objets_avec_des_scripts_de_page/index.html +++ b/files/fr/mozilla/add-ons/webextensions/sharing_objects_with_page_scripts/index.html diff --git a/files/fr/mozilla/add-ons/webextensions/test_des_fonctionnalites_persistantes_et_de_redemarrage/index.html b/files/fr/mozilla/add-ons/webextensions/test_des_fonctionnalites_persistantes_et_de_redemarrage/index.html deleted file mode 100644 index 92e16e408d..0000000000 --- a/files/fr/mozilla/add-ons/webextensions/test_des_fonctionnalites_persistantes_et_de_redemarrage/index.html +++ /dev/null @@ -1,124 +0,0 @@ ---- -title: Test des fonctionnalités persistantes et de redémarrage -slug: >- - Mozilla/Add-ons/WebExtensions/test_des_fonctionnalites_persistantes_et_de_redemarrage -tags: - - Comment - - Débutant - - Développement - - Intermédiaire - - WebExtensions - - add-on - - test - - web-ext -translation_of: Mozilla/Add-ons/WebExtensions/Testing_persistent_and_restart_features ---- -<p>{{AddonSidebar}}</p> - -<p>Lors du test de votre extension, vous pouvez remarquer que certaines fonctionnalités se réinitialisent ou cessent de fonctionner lorsque vous chargez une version mise à jour ou après le redémarrage de Firefox. Par exemple, vous pouvez utiliser le stockage local et remarquer que les données précédemment sauvegardées disparaissent lorsque vous rechargez votre extension. Alternativement, vous pouvez tester votre extension à travers un redémarrage de Firefox, mais notez que votre extension ne reste pas chargée.</p> - -<p>Cet article explique pourquoi vous voyez ces comportements. Il vous montre ensuite ce qu'il faut faire pour vous assurer que les fonctions persistent lorsque vous rechargez votre extension et comment configurer pour tester le comportement de redémarrage.</p> - -<p>Avant de regarder comment Firefox traite l'extension que vous testez; Il y a quelques fonctionnalités de Firefox et des extensions dont vous devez être conscient : l'ID du module complémentaire et les profils Firefox.</p> - -<h2 id="Qu'est-ce_qu'un_ID_complémentaire">Qu'est-ce qu'un ID complémentaire ?</h2> - -<p>L'ID de module complémentaire est utilisé pour identifier de manière unique chaque extension et à son tour, cet ID est utilisé pour lier une extension à certaines fonctionnalités des API WebExtension. Ces fonctionnalités sont:</p> - -<ul> - <li>{{WebExtAPIRef("storage.managed")}} — identifie les données comme appartenant à l'extension par son ID add-on.</li> - <li>{{WebExtAPIRef("storage.sync")}} — identifie les données comme appartenant à l'extension par son ID complémentaire.</li> - <li>{{WebExtAPIRef("identity.getRedirectURL")}} — l'URL de redirection inclut l'ID complémentaire de l'extension.</li> - <li><a href="/fr/Add-ons/WebExtensions/Native_messaging">Native messaging </a>— l'application native identifie les extensions qui peuvent communiquer avec elles par leur ID complémentaire.</li> - <li>{{WebExtAPIRef("pkcs11")}} — le module PKCS #11 identifie les extensions qui peuvent communiquer avec lui par leur ID complémentaire.</li> - <li>{{WebExtAPIRef("runtime.onMessageExternal")}} — une extension envoie des messages à un autre poste en utilisant son ID complémentaire comme adresse.</li> - <li>{{WebExtAPIRef("runtime.onConnectExternal")}} — une extension demande une connexion avec une extension par l'ID d'extension de l'autre extension.</li> - <li>{{WebExtAPIRef("browserAction")}} — la position sauvegardée du bouton est identifiée comme appartenant à l'extension en fonction de son ID add-on.</li> -</ul> - -<p>Une extension peut se voir attribuer un ID complémentaire en utilisant la clé <code>"applications"</code> du fichier manifest.json.</p> - -<pre class="brush: json">"applications": { - "gecko": { - "id": "addon@example.com", - } - }</pre> - -<p>Si l'extension n'a pas d'ID de module défini avec la clé <code>"applications"</code> , il reçoit un ID de module complémentaire via l'un des éléments suivants:</p> - -<ul> - <li>Si l'extension est soumise à l'AMO et signée, elle reçoit un identifiant lorsqu'elle est signée.</li> - <li>Si l'extension est chargée à l'aide de Load Temporary Add-on dans about:debugging un ID complémentaire temporaire lui est affecté.<br> - <img alt="Example of a temporarily loaded extension showing its various IDs" src="https://mdn.mozillademos.org/files/15774/Temporary_extensions.png" style="height: 289px; width: 837px;"></li> -</ul> - -<p>Vous remarquerez un ID supplémentaire dans l'image ci-dessus, l'UUID interne. C'est un identifiant unique donné à l'extension lors de l'installation. Il est utilisé pour définir l'emplacement de stockage des ressources incluses dans l'extension et identifier les données d'un poste dans <a href="/fr/docs/Web/API/Window/localStorage">window.localStorage</a> ou <a href="/fr/docs/Web/API/IndexedDB_API">indexedDB</a>. Cependant, vous n'avez pas besoin de connaître sa valeur. Son utilisation dans <code>window.localStorage</code> ou <code>indexedDB</code> est transparente et pour accéder aux ressources incluses dans l'extension, vous utilisez {{WebExtAPIRef("runtime.getURL")}}, qui renvoie le chemin d'accès aux ressources. De plus, étant donné qu'il est unique à chaque installation, il ne fournit pas d'ID pouvant être utilisé à d'autres fins.</p> - -<h2 id="Qu'est-ce_qu'un_profil_Firefox">Qu'est-ce qu'un profil Firefox?</h2> - -<p>Les données qui définissent la manière dont l'utilisateur a configuré Firefox, ainsi que les informations générées lors de la navigation sur le Web, telles que l'historique et les cookies, sont stockées dans un dossier spécial, appelé <a href="https://support.mozilla.org/fr/kb/profils-ou-firefox-conserve-donnees-utilisateur">profile</a>. En plus des cookies, le profil contient du stockage local et d'autres contenus liés au profil.</p> - -<h2 id="Comportement_d'extension_dans_Firefox">Comportement d'extension dans Firefox</h2> - -<p>Lorsque vous développez une extension, en supposant que vous n'avez pas défini d'ID complémentaire à l'aide de la clé <code>"applications"</code>, le comportement par défaut dans Firefox est le suivant :</p> - -<ul> - <li>lorsque vous utilisez la fonction Load Temporary Add-on dans environ: le débogage de votre extension se voit attribuer un nouvel ID de module complémentaire chaque fois que vous le chargez.</li> - <li>Lorsque vous utilisez Web-ext, en plus d'obtenir un nouvel ID complémentaire chaque fois que vous lancez une extension, il est également lancé dans un nouveau profil.</li> - <li>lorsqu'une extension temporairement chargée est déchargée, le stockage local, tel que celui utilisé par <code>storage.local</code>, <code>window.localStorage</code>, et <code>indexedDB</code>, est supprimé.</li> - <li>Lorsque vous arrêtez Firefox, les extensions temporairement chargées sont déchargées et ne sont donc pas disponibles lorsque Firefox redémarre. Cela inclut les extensions chargées avec Load Temporary Add-on dans about:debugging et web-ext.</li> -</ul> - -<p>Les conséquences de ce comportement, lors du rechargement d'une extension, sont les suivantes :</p> - -<ul> - <li>toutes les données dans le stockage local ou de synchronisation sont perdues.</li> - <li>toute URL de redirection devient invalide.</li> - <li>l'extension ne pourra plus communiquer avec des applications natives ou un module PKCS #11.</li> - <li>il ne sera plus possible d'envoyer des messages ou de créer des connexions entre les extensions.</li> - <li>vous ne pouvez pas tester le comportement de l'extension si Firefox est arrêté et redémarré.</li> - <li>Les positions de <code>browserAction</code> ne sont pas reportées</li> -</ul> - -<h2 id="Que_dois-je_faire_pour_m'assurer_de_pouvoir_tester_mon_extension">Que dois-je faire pour m'assurer de pouvoir tester mon extension ?</h2> - -<p>Pour que votre extension se comporte comme une extension signée pendant les tests de développement, utilisez les techniques suivantes :</p> - -<ul> - <li>pour vous assurer qu'une extension peut utiliser des fonctionnalités dépendantes de l'ID complémentaire entre les rechargements, telles que le stockage local ou la communication d'application native : - <ul> - <li>définir un ID de module complémentaire à l'aide de la clé <code>"applications"</code> dans le fichier manifest.json de l'extension.</li> - <li>lorsque vous utilisez web-ext, assurez-vous d'utiliser le même profil.</li> - </ul> - </li> - <li>pour vous assurer d'utiliser le même profil pour plusieurs tests d'une extension lors de l'utilisation de web-ext : - <ul> - <li>en option, utilisez <a href="https://support.mozilla.org/fr/kb/utiliser-gestionnaire-profils-creer-supprimer-profils">Profile Manager</a> pour créer un nouveau profil Firefox.</li> - <li>rouvez le chemin vers votre nouveau profil ou le profil Firefox par défaut en suivant les instructions dans <a href="https://support.mozilla.org/fr/kb/profils-ou-firefox-conserve-donnees-utilisateur#w_trouver-votre-profil-sans-ouvrir-firefox">Comment trouver mon profil ?</a></li> - <li>ajoutez le chemin du profil Firefox à la commande <code>web-ext run</code> comme ceci :<br> - <code>web-ext run --firefox-profile [A PATH TO A FIREFOX PROFILE] --keep-profile-changes</code></li> - </ul> - </li> - <li>pour préserver les données <code>storage.local</code>, l'accès à <code>window.localStorage</code> ou les données <code>indexedDB</code> lors de la suppression d'un add-on temporaire (par exemple entre deux redémarrages du navigateur) : - <ul> - <li>allez à about:config et réglez <code>extensions.webextensions.keepStorageOnUninstall</code> et <code>extensions.webextensions.keepUuidOnUninstall</code> à <code>true</code>.</li> - </ul> - </li> - <li>pour tester le comportement de redémarrage : - <ul> - <li>définir un ID de module complémentaire à l'aide de la clé <code>"applications"</code> dans le fichier manifest.json de l'extension.</li> - <li>installez les éditions <a href="https://www.mozilla.org/firefox/nightly/all/">Nightly</a> ou <a href="https://www.mozilla.org/firefox/developer/">Developer</a> de Firefox. Remarque : Vous pouvez également utiliser les versions <a href="https://wiki.mozilla.org/Add-ons/Extension_Signing#Unbranded_Builds">unbranded Beta et Release builds</a>.</li> - <li>allez à about:config et définissez <code>xpinstall.signatures.required</code> à <code>false</code>.</li> - <li>Compressez votre extension dans un fichier ZIP <a href="/fr/Add-ons/WebExtensions/web-ext_command_reference#web-ext_build">using web-ext</a> ou en <a href="/fr/Add-ons/WebExtensions/Publishing_your_WebExtension#1._Zip_up_your_extension's_files">compressant manuellement</a>.</li> - <li>installez votre extension en utilisant Install Add-on From File dans le gestionnaire de modules complémentaires (about:addons).<br> - Remarque: N'oubliez pas que vous devrez recharger votre extension chaque fois que vous la modifiez.<br> - Remarque: Si vous ne définissez pas l'ID du module complémentaire, lorsque vous chargez l'extension, vous obtenez une erreur comme celle-ci : - <p><img alt="Example of the message displayed when an add-on ID cannot be found for an extension" src="https://mdn.mozillademos.org/files/15775/ID_failure.png" style="height: 163px; width: 429px;"></p> - - <p>avec une erreur correspondante dans la console du navigateur .</p> - - <p><img alt="Example of the message displayed in the browser console when an add-on ID cannot be found for an extension" src="https://mdn.mozillademos.org/files/15776/ID_failure_console.png" style="height: 116px; width: 1167px;"></p> - </li> - </ul> - </li> -</ul> diff --git a/files/fr/mozilla/add-ons/webextensions/user_interface/elements_menu_contextuel/index.html b/files/fr/mozilla/add-ons/webextensions/user_interface/context_menu_items/index.html index b2cf42a214..b2cf42a214 100644 --- a/files/fr/mozilla/add-ons/webextensions/user_interface/elements_menu_contextuel/index.html +++ b/files/fr/mozilla/add-ons/webextensions/user_interface/context_menu_items/index.html diff --git a/files/fr/mozilla/add-ons/webextensions/user_interface/panneaux_devtools/index.html b/files/fr/mozilla/add-ons/webextensions/user_interface/devtools_panels/index.html index e487250175..e487250175 100644 --- a/files/fr/mozilla/add-ons/webextensions/user_interface/panneaux_devtools/index.html +++ b/files/fr/mozilla/add-ons/webextensions/user_interface/devtools_panels/index.html diff --git a/files/fr/mozilla/add-ons/webextensions/user_interface/pages_web_incluses/index.html b/files/fr/mozilla/add-ons/webextensions/user_interface/extension_pages/index.html index d12b031f08..d12b031f08 100644 --- a/files/fr/mozilla/add-ons/webextensions/user_interface/pages_web_incluses/index.html +++ b/files/fr/mozilla/add-ons/webextensions/user_interface/extension_pages/index.html diff --git a/files/fr/mozilla/add-ons/webextensions/user_interface/lignes_directrices_en_matiere_accessibilite/index.html b/files/fr/mozilla/add-ons/webextensions/user_interface/lignes_directrices_en_matiere_accessibilite/index.html deleted file mode 100644 index e974f0871b..0000000000 --- a/files/fr/mozilla/add-ons/webextensions/user_interface/lignes_directrices_en_matiere_accessibilite/index.html +++ /dev/null @@ -1,153 +0,0 @@ ---- -title: Lignes directrices en matière d'accessibilité -slug: >- - Mozilla/Add-ons/WebExtensions/user_interface/lignes_directrices_en_matiere_accessibilite -tags: - - Développement - - Extensions - - UI - - UX - - WebExtensions - - interface utilisateur -translation_of: Mozilla/Add-ons/WebExtensions/user_interface/Accessibility_guidelines ---- -<p>{{AddonSidebar()}}</p> - -<p>En ce qui concerne l'accessibilité, les extensions devraient suivre les mêmes lignes directrices que les sites Web. Cependant, les extensions ont des caractéristiques uniques qui méritent d'être prises en considération lors de la conception pour l'accessibilité. Voici une ventilation des fonctions d'extension et comment elles devraient être utilisées pour rendre une extension accessible.</p> - -<p>Vous trouverez plus d'information sur la conception et l'accessibilité dans la section <a href="https://design.firefox.com/photon/">Photon Design System</a> et <a href="/en-US/docs/Mozilla/Accessibility">Accessibilité et Mozilla</a> section de MDN.</p> - -<table class="standard-table"> - <thead> - <tr> - <th scope="col">Fonction d'interface utilisateur</th> - <th scope="col"> Lignes directrices</th> - </tr> - </thead> - <tbody> - <tr> - <td> - <p><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/manifest.json/commands">Raccourcis clavier (commands)</a></p> - </td> - <td> - <p>Les raccourcis clavier permettent d'activer facilement les fonctions d'extension.</p> - - <p>Pour améliorer l'accessibilité, ajoutez des raccourcis clavier pour :</p> - - <ul> - <li>éléments de l'interface utilisateur de l'extension, tels que les boutons de la barre d'outils et de la barre d'adresse.</li> - <li>toutes les fonctionnalités d'une extension, cependant, lorsque cela n'est pas pratique, fournissent des raccourcis pour les fonctionnalités d'extension couramment utilisées. </li> - </ul> - - <div class="blockIndicator note"> - <p>Les utilisateurs peuvent modifier les raccourcis clavier d'une extension en fonction de leurs besoins. Cependant, les utilisateurs ne peuvent pas ajouter de raccourcis, c'est pourquoi il est préférable d'en ajouter autant que possible.</p> - </div> - </td> - </tr> - <tr> - <td> - <p><a href="/Add-ons/WebExtensions/user_interface/Browser_action">Bouton de la barre d'outils (action du navigateur)</a></p> - </td> - <td> - <p>Pour tenir compte du thème actif, fournissez des <a href="/fr/docs/Mozilla/Add-ons/WebExtensions/manifest.json/browser_action#theme_icons">icônes de boutons de la barre d'outils pour les thèmes avec du texte clair et foncé</a>.</p> - - <p>Suivez les directives du Photon Design System sur l'<a href="https://design.firefox.com/photon/visuals/iconography.html">Iconographie</a>. Utilisez différentes images pour transmettre l'état, par exemple basculé ou actif. N'utilisez pas d'icônes colorées ou de changements de couleur pour indiquer les changements d'état, car ils peuvent ne pas être visibles pour tous les utilisateurs.</p> - - <p>Incluez toujours un titre de texte pour que les détails des boutons puissent être lus par un lecteur d'écran. Le titre du bouton doit être mis à jour pour refléter :</p> - - <ul> - <li>l'état de l'extension.</li> - <li>le contenu des badges texte affichés sur le bouton.</li> - </ul> - - <p>Ajoutez un raccourci à l'action du bouton, en utilisant l'option spéciale de raccourci spécial <code>_execute_browser_action</code>.</p> - </td> - </tr> - <tr> - <td> - <p><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/user_interface/Popups">Bouton de la barre d'outils avec une fenêtre contextuelle</a></p> - </td> - <td> - <p>Le balisage dans la fenêtre contextuelle doit suivre les <a href="/fr/docs/Accessibilité">lignes directrices standard d'accessibilité au web</a>.</p> - </td> - </tr> - <tr> - <td> - <p><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/user_interface/Page_actions">Bouton de la barre d'adresse (action page)</a></p> - </td> - <td> - <p>Les mêmes directives que les boutons de la barre d'outils doivent être suivies.</p> - - <p>Ajoutez un raccourci à l'action du bouton, en utilisant l'option de raccourci <code>_execute_page_action</code>.</p> - </td> - </tr> - <tr> - <td> - <p><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/user_interface/Popups">Bouton de la bare d'adresse avec un popup</a></p> - </td> - <td> - <p>Le balisage dans la fenêtre contextuelle devrait suivre les <a href="/fr/docs/Accessibilité">lignes directrices standard d'accessibilité du web</a>.</p> - </td> - </tr> - <tr> - <td> - <p><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/user_interface/elements_menu_contextuel">Elément du menu contextuel</a></p> - </td> - <td> - <p>Les éléments de menu contextuel offrent aux utilisateurs un moyen accessible de découvrir les fonctions d'extension associées aux éléments d'une page Web. Par conséquent, dans la mesure du possible, ajoutez des fonctions d'extension à leurs menus contextuels pertinents.</p> - </td> - </tr> - <tr> - <td> - <p><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/user_interface/barres_laterales">Barre latérale</a></p> - </td> - <td> - <p>Le balisage dans la barre latérale doit être conforme aux <a href="/fr/docs/Accessibilité">lignes directrices standard d'accessibilité du web</a>.</p> - - <p>Ajoutez un raccourci clavier pour ouvrir une barre latérale, en utilisant l'option de raccourci spécial <code>_execute_sidebar_action</code>.</p> - </td> - </tr> - <tr> - <td> - <p><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/user_interface/Options_pages">Options page</a></p> - </td> - <td> - <p>Le balisage de la page des options doit suivre les <a href="/fr/docs/Accessibilité">lignes directrices standard d'accessibilité du Web</a>.</p> - </td> - </tr> - <tr> - <td> - <p><a href="/Add-ons/WebExtensions/user_interface/Extension_pages">Extension page</a></p> - </td> - <td> - <p>Le balisage de la page d'extension doit suivre les <a href="/fr/docs/Accessibilité">lignes directrices standard d'accessibilité du Web</a>.</p> - </td> - </tr> - <tr> - <td> - <p><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/user_interface/Notifications">Notification</a></p> - </td> - <td> - <p>Fournir des notifications pour les événements qui se produisent en arrière-plan ou qui ne sont pas autrement notifiés dans l'interface utilisateur. Soyez économe en notifications, mais veillez à ne pas les minimiser au détriment de l'accessibilité.</p> - </td> - </tr> - <tr> - <td> - <p><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/user_interface/Omnibox">Suggestion de la barre d'adresse</a></p> - </td> - <td> - <p>Ajoutez des suggestions selon le guide, il n'y a pas d'autres considérations d'accessibilité pour les extensions.</p> - </td> - </tr> - <tr> - <td> - <p><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/user_interface/panneaux_devtools">Panneau d'outils de développement</a></p> - </td> - <td> - <p>Le balisage dans la barre latérale doit être conforme aux <a href="/fr/docs/Accessibilité">conforme aux directives d'accessibilité du Web standard</a>.</p> - - <p>Il est recommandé d'offrir un raccourci clavier pour ouvrir un panneau devtools.</p> - </td> - </tr> - </tbody> -</table> diff --git a/files/fr/mozilla/add-ons/webextensions/user_interface/barres_laterales/index.html b/files/fr/mozilla/add-ons/webextensions/user_interface/sidebars/index.html index 5d9e2cab05..5d9e2cab05 100644 --- a/files/fr/mozilla/add-ons/webextensions/user_interface/barres_laterales/index.html +++ b/files/fr/mozilla/add-ons/webextensions/user_interface/sidebars/index.html diff --git a/files/fr/mozilla/add-ons/webextensions/que_faire_ensuite/index.html b/files/fr/mozilla/add-ons/webextensions/what_next_/index.html index aabc4dccba..aabc4dccba 100644 --- a/files/fr/mozilla/add-ons/webextensions/que_faire_ensuite/index.html +++ b/files/fr/mozilla/add-ons/webextensions/what_next_/index.html diff --git a/files/fr/mozilla/add-ons/webextensions/travailler_avec_des_identites_contextuelles/index.html b/files/fr/mozilla/add-ons/webextensions/work_with_contextual_identities/index.html index 7acabb6773..7acabb6773 100644 --- a/files/fr/mozilla/add-ons/webextensions/travailler_avec_des_identites_contextuelles/index.html +++ b/files/fr/mozilla/add-ons/webextensions/work_with_contextual_identities/index.html diff --git a/files/fr/mozilla/add-ons/webextensions/travailler_avec_l_api_cookies/index.html b/files/fr/mozilla/add-ons/webextensions/work_with_the_cookies_api/index.html index c13965f88e..c13965f88e 100644 --- a/files/fr/mozilla/add-ons/webextensions/travailler_avec_l_api_cookies/index.html +++ b/files/fr/mozilla/add-ons/webextensions/work_with_the_cookies_api/index.html diff --git a/files/fr/mozilla/add-ons/webextensions/travailler_avec_l_api_tabs/index.html b/files/fr/mozilla/add-ons/webextensions/working_with_the_tabs_api/index.html index 049a8e5683..049a8e5683 100644 --- a/files/fr/mozilla/add-ons/webextensions/travailler_avec_l_api_tabs/index.html +++ b/files/fr/mozilla/add-ons/webextensions/working_with_the_tabs_api/index.html diff --git a/files/fr/mozilla/add-ons_bonnes_pratiques_performances_extensions/index.html b/files/fr/mozilla/add-ons_bonnes_pratiques_performances_extensions/index.html deleted file mode 100644 index e1d91724fb..0000000000 --- a/files/fr/mozilla/add-ons_bonnes_pratiques_performances_extensions/index.html +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: Add-ons bonnes pratiques performances extensions -slug: Mozilla/Add-ons_bonnes_pratiques_performances_extensions ---- -<p>Un des grands avantages de Firefox est son extrême extensibilité. Les extensions peuvent presque tout faire. Cela présente un inconvénient: les extensions mal écrites ont un impact majeur sur l'expérience de navigation, incluant les performances de Firefox lui-même. Cet article vous offre quelques bonnes pratiques et suggestions qui pourront non seulement augmenter les performances et la vitesse de votre extension, mais aussi celles de Firefox.</p> - -<h2 id="Améliorer_les_performances_au_chargement"><strong>Améliorer les performances au chargement</strong></h2> - -<p>Les extensions sont chargées et démarrés à chaque fois qu'une nouvelle fenêtre du navigateur est ouverte. Cela signifie qu'à chaque fois qu'une fenêtre s'ouvre, votre extension peut avoir un impact sur le temps que mettra l'utilisateur à voir le contenu qu'il essaye de visualiser. Il y a plusieurs choses que vous pouvez faire pour réduire la durée que votre extension ajoutera à l'apparition du contenu désiré par l'utilisateur.</p> - -<h3 id="Chargez_uniquement_ce_dont_vous_avez_besoin_quand_vous_en_avez_besoin"><strong>Chargez uniquement ce dont vous avez besoin, quand vous en avez besoin</strong></h3> - -<p>Ne chargez pas des choses au démarrage qui ne seront nécessaire que si l'utilisateur clique sur un bouton, ou si une préférence donnée est activé quand elle ne l'est pas. Si votre extension présente des fonctionnalités accessibles uniquement si l'utilisateur est identifié auprès d'un service, ne chargez pas de ressources pour ces fonctionnalités tant que l'utilisateur n'est pas identifié.</p> - -<h3 id="Utilisez_les_modules_de_code_JavaScript">Utilisez les modules de code JavaScript</h3> - -<p>Vous pouvez créer vos propres <a href="/en-US/docs/Mozilla/JavaScript_code_modules/Using" title="/en-US/docs/Mozilla/JavaScript_code_modules/Using">JavaScript code modules</a> incorporants les fonctionnalités qui ne sont requises que dans des circonstances particulières. Cela permet de charger à la volé des morceaux de votre extension, au lieu de tout charger d'un coup.</p> - -<p>While JavaScript modules can be extremely useful, and provide significant performance benefits, they should be used wisely. Loading modules incurs a small cost, so breaking code up to an unnecessary degree can be counter-productive. Code should be modularized to the extend that doing so increases clarity, and loading of large or expensive chunks of code fragments can be significantly deferred.</p> - -<h3 id="Defer_everything_that_you_can">Defer everything that you can</h3> - -<p>Most extensions have a load event listener in the main overlay that runs their startup functions. Do as little as possible here. The browser window is blocked while your add-on's load handler runs, so the more it does, the slower Firefox will appear to the user.</p> - -<p>If there is <em>anything</em> that can be done even a fraction of a second later, you can use an {{ interface("nsITimer") }} or the {{ domxref("window.setTimeout()") }} method to schedule that work for later. Even a short delay can have a big impact.</p> - -<h2 id="Astuces_de_performances_générales">Astuces de performances générales</h2> - -<h3 id="Evitez_de_créer_des_fuites_de_mémoires">Evitez de créer des fuites de mémoires</h3> - -<p>Memory leaks require the garbage collector and the cycle collector to work harder, which can significantly degrade performance.</p> - -<p>Zombie compartments are a particular kind of memory leak that you can detect with minimal effort. See the<a href="/en/Zombie_compartments" title="en/Zombie_compartments"> </a><a href="/en/Zombie_compartments" title="en/Zombie_compartments">Zombie compartments page</a>, especially the <a href="/en/Zombie_compartments#Proactive_checking_of_add-ons" title="en/Zombie_compartments#Proactive_checking_of_add-ons">Proactive checking of add-ons</a> section.</p> - -<p>See <a href="/en/Extensions/Common_causes_of_memory_leaks_in_extensions" title="en/Extensions/Common_causes_of_zombie_compartments_in_extensions">Common causes of memory leaks in extensions</a> for ways to avoid zombie compartments and other kinds of leaks.</p> - -<p>As well as looking for these specific kinds of leaks, it's worth exercising your extension's functionality and checking the contents of about:memory for any excessive memory usage. For example, <a class="link-https" href="https://bugzilla.mozilla.org/show_bug.cgi?id=719601" title="https://bugzilla.mozilla.org/show_bug.cgi?id=719601">bug 719601</a> featured a "System Principal" JavaScript compartment containing 100s of MBs of memory, which is <em>much</em> larger than usual.</p> - -<h3 id="Evitez_d'écrire_des_CSS_lents">Evitez d'écrire des CSS lents</h3> - -<ul> - <li>Lire le guide <a href="/en/CSS/Writing_Efficient_CSS" title="en/CSS/Writing_Efficient_CSS">"writing efficient CSS"</a>.</li> - <li>Remember that any selector in your rule which might match many different nodes is a source of inefficiency during either selector matching or dynamic update processing. This is especially bad for the latter if the selector can dynamically start or stop matching. Avoid unqualified ":hover" like the plague.</li> -</ul> - -<h3 id="Avoid_DOM_mutation_event_listeners">Avoid DOM mutation event listeners</h3> - -<p>DOM mutation event listeners are extremely expensive and, once added to a document even briefly, significantly harm its performance. As mutation events are officially deprecated, and <a href="/en-US/Add-ons/Overlay_Extensions/XUL_School/Appendix_F:_Monitoring_DOM_changes">there are many alternatives</a>, they should be avoided at all costs.</p> - -<h3 id="Lazily_load_services">Lazily load services</h3> - -<p>The <a href="/en/JavaScript_code_modules/XPCOMUtils.jsm#Methods" title="en/JavaScript_code_modules/XPCOMUtils.jsm#Methods">XPCOMUtils JavaScript module</a> provides two methods for lazily loading things:</p> - -<ul> - <li><code>defineLazyGetter()</code> défini une fonction sur un objet spécifié qui agit comme un getter la première fois qu'il sera utilisé. <a class="external" href="http://mxr.mozilla.org/mozilla-central/search?string=defineLazyGetter">See examples</a>.</li> - <li><code>defineLazyServiceGetter()</code> défini une fonction sur un objet spécifié qui agit comme un getter pour un service. The service isn't obtained until the first time it's used. {{ LXRSearch("ident", "string", "defineLazyServiceGetter", "Look through the source") }} for examples.</li> -</ul> - -<p>Beaucoup de services commun sont dàja en cache dans <a href="/en-US/JavaScript_code_modules/Services.jsm">Services.jsm</a>.</p> - -<h3 id="Utilisez_les_ES_asynchrones">Utilisez les E/S asynchrones</h3> - -<p>Ne jamais faire E/S synchrone dans le thread principal.</p> - -<p>N'importe quelle sorte d'E/S dans le thread principal, qu'elle soit sur un disque ou sur le réseau, peuvent provoquez de sérieux problème de ralentissement de l'interface utilisateur.</p> - -<ul> - <li>Ne jamais utiliser de XMLHttpRequests synchrone.</li> - <li><a href="/en-US/JavaScript_code_modules/NetUtil.jsm">NetUtils.jsm</a> fournis des helpers pour la lecture et la copies de fichier asynchrone.</li> - <li>Ne jamais accèder à une base de donnée SQLite de manière synchrone. Utilisez l'<a href="/en-US/Storage#Asynchronously">asynchronous API</a> à la place.</li> - <li>Effectuer des opérations séquentielles, asynchrone peuvent être grandement simplifier en utilisant<a href="/en-US/Add-ons/Techniques/Promises"> Promises</a>.</li> -</ul> - -<h3 id="Evitez_les_évenements_de_mouvement_de_la_souris">Evitez les évenements de mouvement de la souris</h3> - -<p>Evitez d'utiliser les évenements de mouvement de la souris, tel que mouseover, mouseout, mouseenter, mouseexit, et plus spécialement mousemove. Ces évenements se déclenchent à haute fréquence, par conséquent leurs écouteurs d'évenements peuvent facilement provoquer une surcharge CPU.</p> - -<p>Quand ces évenements ne peuvent être évités, computation during the listeners should be kept to a minimum and real work throttled. Ces évenements doivent être ajoutés sur des éléments les plus spécifiques possible, et supprimé immédiatement lorsqu'il ne sont plus nécessaires.</p> - -<h3 id="Evitez_les_images_animées">Evitez les images animées</h3> - -<p>Animated images are much more expensive than generally expected, especially when used in XUL {{ XULElem("tree") }} elements..</p> - -<h3 id="Considérez_l'utilisation_des_Chrome_Workers">Considérez l'utilisation des Chrome Workers</h3> - -<p>Vous pouvez utiliser {{ domxref("ChromeWorker") }} pour executer de longues tâches ou du traitement de données.</p> - -<h2 id="Voir_aussi">Voir aussi</h2> - -<ul> - <li><a href="/en/Performance/Measuring_add-on_startup_performance" title="en/Measuring Add-on Startup Performance">Measuring Add-on Startup Performance</a></li> - <li><a class="external" href="http://blog.mozilla.com/addons/2010/06/14/improve-extension-startup-performance/" title="http://blog.mozilla.com/addons/2010/06/14/improve-extension-startup-performance/">How to Improve Extension Startup Performance</a></li> - <li><a href="/en-US/docs/Performance">General information about measuring and improving performance in Mozilla code</a></li> -</ul> diff --git a/files/fr/mozilla/developer_guide/build_instructions/index.html b/files/fr/mozilla/developer_guide/build_instructions/index.html new file mode 100644 index 0000000000..958b486d2a --- /dev/null +++ b/files/fr/mozilla/developer_guide/build_instructions/index.html @@ -0,0 +1,108 @@ +--- +title: Compilation et installation +slug: Compilation_et_installation +tags: + - Documentation_sur_la_compilation + - Développement_de_Mozilla +translation_of: Mozilla/Developer_guide/Build_Instructions +translation_of_original: Build_and_Install +--- +<div class="warning"> +<p>Se réferer à la page suivante pour la compilation de Thunderbird (utilisation de l'outil Mach recommandée) : <a href="/fr/docs/Simple_Thunderbird_build">Simple Thunderbird build</a></p> +</div> + +<div class="note"> +<p>Ne commencez pas à compiler sans <a href='\"fr/Configuration_des_options_de_compilation\"'>configurer vos options de compilation</a> au préalable !</p> +</div> + +<h3 id="Compilation" name="Compilation">Compilation</h3> + +<p>Vous devez utiliser GNU make pour récupérer et compiler Mozilla. Aucun autre programme « make » n'est acceptable. Sous Windows, Mac OS X et Linux, utilisez « make » pour lancer GNU make ; sur la plupart des systèmes UNIX non-GNU, utilisez « gmake ».</p> + +<p>Une fois les sources récupérées, assurez-vous de configurer une application comme décrit sur la page <a href="fr/Configuration_des_options_de_compilation">Configuration des options de compilation</a>.</p> + +<p>Pour Windows, Mac OS X et GNU/Linux, assurez-vous d'être dans le répertoire principal des sources (le répertoire « mozilla »), avant d'invoquer la commande make :</p> + +<pre class="eval">$ make -f client.mk build +</pre> + +<p>Note pour Mac OS X : le chemin vers le répertoire des sources créé à la décompression du tarball des sources ne doit pas contenir d'espaces !</p> + +<p>Pour la plupart des UNIX non-GNU, la commande est :</p> + +<pre class="eval">$ gmake -f client.mk build +</pre> + +<p>Si vous désirez configurer et compiler manuellement, placez-vous (cd) dans votre répertoire objdir, lancez configure, et ensuite make/gmake. Configure récupèrera cependant toujours les options spécifiées dans votre fichier .mozconfig.</p> + +<h3 id="Lancement_de_votre_nouvelle_application" name="Lancement_de_votre_nouvelle_application">Lancement de votre nouvelle application</h3> + +<p>Il est possible d'exécuter votre nouvelle application directement depuis le répertoire dans lequel elle a été compilée. Cependant, le répertoire de compilation peut contenir des liens symboliques vers l'arbre de compilation ; vous devez passer par l'étape d'installation/packaging pour produire une application<em>standalone</em> qui peut être partagée ou déplacée.</p> + +<h4 id="Windows_et_Linux" name="Windows_et_Linux">Windows et Linux</h4> + +<p>Sur les systèmes de compilation non-Macintosh, l'application finale peut être trouvée dans<em>objdir</em> /dist/bin. Sur les plateformes POSIX (BSD, GNU/Linux, Solaris), vous devrez exécuter le fichier « mozilla » ou « firefox », pas le binaire « mozilla-bin » ou « firefox-bin ».</p> + +<h4 id="Mac_OS_X" name="Mac_OS_X">Mac OS X</h4> + +<p>Sous Macintosh, le système de compilation produit un bundle d'application dans<em>objdir</em> /dist/<em>AppName</em> .app, par exemple<em>objdir</em> /dist/Minefield.app.</p> + +<p><strong>Veuillez noter</strong> que lorsque vous compilez avec --enable-debug, l'application est placée dans<em>objdir</em> /dist/<em>AppName</em> Debug.app, par exemple.<em>objdir</em> /dist/MinefieldDebug.app.</p> + +<p>Vous pouvez exécuter l'application soit en ouvrant le bundle à partir du Finder, soit depuis la ligne de commande à l'aide de</p> + +<pre class="eval">$ objdir/dist/AppName[Debug].app/Contents/MacOS/appname +</pre> + +<p>par exemple :</p> + +<pre class="eval">$ objdir/dist/MinefieldDebug.app/Contents/MacOS/firefox +</pre> + +<h5 id="Construction_d.27un_.dmg_pour_une_compilation_XULRunner" name="Construction_d.27un_.dmg_pour_une_compilation_XULRunner">Construction d'un .dmg pour une compilation XULRunner</h5> + +<p>Ces instructions concernent la construction d'un fichier .dmg depuis une compilation Mac OS X Universal binary.</p> + +<ol> + <li>Effectuez une compilation Universal Binary</li> + <li>Créez les fichiers source chown_root.c et chown_revert.c depuis <a class="external" href="http://mxr.mozilla.org/seamonkey/source/build/macosx/permissions/chown_revert.c">mxr:chown_root.c</a> et <a class="external" href="http://mxr.mozilla.org/seamonkey/source/build/macosx/permissions/chown_revert.c">mxr:chown_revert.c</a></li> + <li>Utilisez gcc pour compiler ces fichiers quelque part : <code>gcc -o chown_root chown_root.c</code> et <code>gcc -o chown_revert chown_revert.c</code></li> + <li>Rendez-vous dans «objdir»/«arch»/xulrunner/installer et entrez <code>make CHOWN_ROOT=«chemin_absolu_vers_votre_root_chown» CHOWN_REVERT=«chemin_absolu_vers_votre_binaire_inverse_chown» </code></li> +</ol> + +<p>Ceci devrait vous construire un binaire dans «arch»/dist.</p> + +<h3 id="Installation_de_votre_application" name="Installation_de_votre_application">Installation de votre application</h3> + +<p>Sur les plateformes POSIX, vous pouvez installer votre application dans le système en lançant<em>gmake install</em> . Cependant, ce n'est pas recommandé et il est préférable de suivre les instructions suivantes pour créer un tarball, et de décompresser ensuite ce tarball.</p> + +<h4 id="Pour_le_tronc_.28Firefox_3.29" name="Pour_le_tronc_.28Firefox_3.29">Pour le tronc (Firefox 3)</h4> + +<p>Pour les compilations du tronc, vous pouvez simplement exécuter make package dans votre répertoire objet pour créer une compilation empaquetée. Ceci créera un fichier zip ou tar.gz dans objdir/dist que vous pourrez ensuite décompresser n'importe où. Pour compiler un installeur Windows, utilisez simplement make installer dans votre répertoire objet.</p> + +<h4 id="Pour_la_branche_1.8__.28Firefox_2.29" name="Pour_la_branche_1.8__.28Firefox_2.29">Pour la branche 1.8 (Firefox 2)</h4> + +<p>Pour la plupart des applications, préparez un tarball/zip de votre application en faisant dans un répertoire spécifique à l'application :</p> + +<ul> + <li>Firefox : $ make -C objdir/browser/installer</li> + <li>Thunderbird : $ make -C objdir/mail/installer</li> + <li>SeaMonkey : $ make -C objdir/xpinstall/packager</li> +</ul> + +<p>Pour créer un installeur Windows, lancez make avec le target « installer » dans le répertoire évoqué plus haut:</p> + +<ul> + <li>Firefox : $ make -C objdir/browser/installer installer</li> + <li>Thunderbird : $ make -C objdir/mail/installer installer</li> + <li>SeaMonkey : $ make -C objdir/xpinstall/packager installer</li> +</ul> + +<p>{{ Note("Pour réaliser l\'installeur fortement compressé utilisé par Firefox et Thunderbird avec un système de compilation basé sur Cygwin, vous devrez installer quelques programmes additionnels :") }}</p> + +<ul> + <li><a class="external" href="http://www.7-zip.org/">7-zip</a></li> + <li><a class="external" href="http://upx.sourceforge.net/">UPX</a> (pour les utilisateurs de Windows : ce programme est disponible dans l'installation de <a class="external" href="http://cygwin.com/">Cygwin</a>, vous pouvez l'installer à partir de là (catégorie Utils). N'utilisez pas la version DOS, elle ne fonctionnera pas)</li> +</ul> + +<p>Ces deux utilitaires doivent être accessibles depuis le PATH. De plus, la variable MOZ_INSTALLER_USE_7ZIP doit être définie dans votre environnement. Si vous utilisez le système de compilation MozillaBuild, 7-Zip et UPX seront installés automatiquement.</p> diff --git a/files/fr/mozilla/developer_guide/introduction/index.html b/files/fr/mozilla/developer_guide/introduction/index.html new file mode 100644 index 0000000000..a8a6f99467 --- /dev/null +++ b/files/fr/mozilla/developer_guide/introduction/index.html @@ -0,0 +1,24 @@ +--- +title: Introduction (alternative) +slug: Introduction_(alternative) +translation_of: Mozilla/Developer_guide/Introduction +translation_of_original: Introduction_(alternate) +--- +<p>Bien que Firefox soit largement écrit en C++, il existe de très nombreuses manière de contribuer sans connaître C++.</p> +<h2 id="FirefoxThunderbirdetc.">Firefox/Thunderbird/etc.</h2> +<p>Malgré que Firefox (et les autres produits Mozilla qui sont construits depuis la base de code Mozilla) sont écrits en C++, il y a de nombreux composants écrits dans d'autres languages :</p> +<ul> + <li>La façade, et beaucoup de fonctions sont écrites en HTML, CSS et JavaScript.</li> + <li>Le système de compilation est écrit en Make, shell et des éléments de Perl et Python.</li> + <li>Certains composants et librairies tierces (comme jemalloc par exemple) sont écrits en C, et non pas en C++.</li> + <li>De nombreux outils (comme les structures de tests) que nous utilisons sont écrits en Python et dans d'autres languages de haut niveau. Il y a de nombreuses choses que nous souhaiterions faire dans ce cadre mais qu'il est difficile de faire passer avant les fonctionnalités. Toutefois, nous aimerions réellement réaliser ces choses.</li> +</ul> +<p>Pour trouver du travail sur ces bogues, suivez le <a href="/fr/Introduction" title="fr/Introduction">guide principal</a>. Presque toutes les étapes sont identiques, y compris comment trouver des bogues adaptés pour commencer et le système d'encadrement.</p> +<h2 id="Sites_Web">Sites Web</h2> +<p>Mozilla possède plus d'une centaine d'outils et de sites, qui sont presque tous open-source. Nous avons un guide pour <a class="link-https" href="https://blog.mozilla.com/webdev/get-involved/" title="https://blog.mozilla.com/webdev/get-involved/">débuter avec les sites Web majeurs de Mozilla</a>, ainsi qu'une <a class="link-https" href="https://wiki.mozilla.org/Webdev:WhoWorksOnWhat" title="https://wiki.mozilla.org/Webdev:WhoWorksOnWhat">liste presque à jour des projets de développement Web</a> dans lesquels Mozilla est impliqué, et nous souhaitons améliorer cette liste bientôt. Utilisez cette liste pour trouver un projet qui vous intéresse, et savoir comment vous y impliquer.</p> +<h2 id="Projets_Github">Projets Github</h2> +<p>La <a class="link-https" href="https://github.com/mozilla" title="https://github.com/mozilla">page github de Mozilla</a> compte plus de 100 projets auxquels vous pouvez contribuer. Ces projets sont développés en utilisant les pratiques courantes de GitHub, donc faites votre branche et au boulot. Nous attendons vos demandes d'intégration ! Parmis ces projets, il y a beaucoup de projets à forte visibilité comme <a class="link-https" href="https://github.com/mozilla/jetpack" title="https://github.com/mozilla/jetpack">Jetpack</a>, <a class="link-https" href="https://github.com/mozilla/chromeless" title="https://github.com/mozilla/chromeless">Chromeless</a>, <a class="link-https" href="https://github.com/mozilla/f1" title="https://github.com/mozilla/f1">F1</a> et <a class="link-https" href="https://github.com/mozilla" title="https://github.com/mozilla">de nombreux autres</a><span class="external">.</span></p> +<h2 id="Dépôts_Mercurial_de_Mozilla">Dépôts Mercurial de Mozilla</h2> +<p>De nombreux projets Mozilla ont leur propre dépôt à <a class="link-https" href="https://hg.mozilla.org/" title="https://hg.mozilla.org/">hg.mozilla.org</a>. Cela montre la hiérarchie entre les projets de Mozilla, ainsi que ceux qui sont maintenus (tous ne le sont pas). Parmis eux, il y a des zones critiques de Mozilla comme <a class="link-https" href="https://hg.mozilla.org/automation" title="https://hg.mozilla.org/automation">QA</a>, <a class="link-https" href="https://hg.mozilla.org/build" title="https://hg.mozilla.org/build">RelEng</a>, la <a class="link-https" href="https://hg.mozilla.org/l10n" title="https://hg.mozilla.org/l10n">localisation</a>, <a class="link-https" href="https://hg.mozilla.org/webtools" title="https://hg.mozilla.org/webtools">webtools</a>, les <a class="link-https" href="https://hg.mozilla.org/users/" title="https://hg.mozilla.org/users/">dépôts des développeurs majeurs</a>, et <a class="link-https" href="https://hg.mozilla.org" title="https://hg.mozilla.org/">plus</a>.</p> +<h2 id="D'autres_manières_de_s'engager">D'autres manières de s'engager</h2> +<p>Il existe beaucoup d'autres manières de contribuer à la mission de Mozilla sans programmer. Si vous souhaitez vous diriger vers le design, l'aide, la traduction, les tests ou d'autres types de contributions, rendez vous sur la <a class="link-https" href="https://www.mozilla.org/contribute/areas.html" title="https://www.mozilla.org/contribute/areas.html">page dédiées au volontariat</a>.</p> diff --git a/files/fr/mozilla/developer_guide/vous_venez_juste_de_compiler_firefox/index.html b/files/fr/mozilla/developer_guide/so_you_just_built_firefox/index.html index 31e260de0a..31e260de0a 100644 --- a/files/fr/mozilla/developer_guide/vous_venez_juste_de_compiler_firefox/index.html +++ b/files/fr/mozilla/developer_guide/so_you_just_built_firefox/index.html diff --git a/files/fr/mozilla/firefox/releases/1.5/adapting_xul_applications_for_firefox_1.5/index.html b/files/fr/mozilla/firefox/releases/1.5/adapting_xul_applications_for_firefox_1.5/index.html new file mode 100644 index 0000000000..8702ac2824 --- /dev/null +++ b/files/fr/mozilla/firefox/releases/1.5/adapting_xul_applications_for_firefox_1.5/index.html @@ -0,0 +1,33 @@ +--- +title: Adaptation des applications XUL pour Firefox 1.5 +slug: Adaptation_des_applications_XUL_pour_Firefox_1.5 +tags: + - Extensions + - XUL +translation_of: Mozilla/Firefox/Releases/1.5/Adapting_XUL_Applications_for_Firefox_1.5 +--- +<div>{{FirefoxSidebar}}</div><p> </p> + +<p>Cette page contient une liste des modifications de <a href="fr/Firefox_1.5">Firefox 1.5</a> qui concernent les développeurs XUL.</p> + +<h3 id="Modifications_sp.C3.A9cifiques" name="Modifications_sp.C3.A9cifiques">Modifications spécifiques</h3> + +<ul> + <li><a href="fr/Modifications_de_l'API_Tree">Modifications de l'API Tree </a></li> + <li><a href="fr/Caract%c3%a8res_internationaux_dans_du_JavaScript_XUL">Caractères internationaux dans du JavaScript XUL </a> (seules les extensions contenant des caractères non-ASCII sont affectées)</li> + <li><a href="fr/Changements_dans_XMLHttpRequest_pour_Gecko_1.8">Modifications avec XMLHttpRequest</a></li> + <li><a href="fr/Modifications_XUL_pour_Firefox_1.5">Modifications XUL pour Firefox 1.5 </a></li> + <li><a href="fr/XPCNativeWrapper">XPCNativeWrapper</a> sont activés par défaut et leurs comportements diffèrent légèrement par rapport à 1.0.x</li> + <li>Une méthode plus simple <a href="fr/Enregistrement_chrome">d'enregistrement chrome</a> rend obsolète contents.rdf</li> + <li>Pour les menus contextuels avec overlay : la fonction <code>gContextMenu.linkURL()</code> a été renommée en <code>gContextMenu.getLinkURL()</code> et <code>linkURL</code> est maintenant une propriété. Pour l'utiliser de manière rétrocompatible :<br> + url = 'getLinkURL' in gContextMenu ? gContextMenu.getLinkURL() : gContextMenu.linkURL();</li> +</ul> + +<h3 id="Autres_informations" name="Autres_informations">Autres informations</h3> + +<ul> + <li><a href="fr/Utilisation_de_nsIXULAppInfo">Comment tester la version d'une application en utilisant nsIXULAppInfo</a></li> + <li><a class="external" href="http://kb.mozillazine.org/Dev_:_Extensions_:_Cross-Version_Compatibility_Techniques">MozillaZine</a></li> +</ul> + +<p>{{ languages( { "en": "en/Adapting_XUL_Applications_for_Firefox_1.5", "it": "it/Adattare_le_applicazioni_XUL_a_Firefox_1.5", "ja": "ja/Adapting_XUL_Applications_for_Firefox_1.5", "pl": "pl/Dostosowanie_aplikacji_XUL_do_Firefoksa_1.5" } ) }}</p> diff --git a/files/fr/mozilla/firefox/versions/1.5/index.html b/files/fr/mozilla/firefox/releases/1.5/index.html index 84f17d122f..84f17d122f 100644 --- a/files/fr/mozilla/firefox/versions/1.5/index.html +++ b/files/fr/mozilla/firefox/releases/1.5/index.html diff --git a/files/fr/mozilla/firefox/releases/1.5/using_firefox_1.5_caching/index.html b/files/fr/mozilla/firefox/releases/1.5/using_firefox_1.5_caching/index.html new file mode 100644 index 0000000000..b88ec3bfcd --- /dev/null +++ b/files/fr/mozilla/firefox/releases/1.5/using_firefox_1.5_caching/index.html @@ -0,0 +1,195 @@ +--- +title: Utilisation du cache de Firefox 1.5 +slug: Utilisation_du_cache_de_Firefox_1.5 +tags: + - DOM + - Développement_Web + - Extensions + - HTML + - JavaScript +translation_of: Mozilla/Firefox/Releases/1.5/Using_Firefox_1.5_caching +--- +<div>{{FirefoxSidebar}}</div><p> </p> + +<h3 id="Introduction" name="Introduction">Introduction</h3> + +<p><a href="/fr/Firefox_1.5_pour_les_développeurs" title="fr/Firefox_1.5_pour_les_développeurs">Firefox 1.5</a> met en mémoire cache des pages Web entières, avec leurs états JavaScript, pour une même session de navigation. Revenir ou avancer entre des pages déjà visitées ne nécessite aucun chargement de page et les états JavaScript sont préservés. Cette fonctionnalité parfois appelée <strong>bfcache</strong> (pour « Back-Forward Cache ») rend la navigation très rapide. Ce cache est préservé en mémoire jusqu'à ce que l'utilisateur ferme le navigateur.</p> + +<p>Il existe des cas où Firefox ne met pas en cache les pages. Vous trouverez ci-dessous certaines raisons classiques de programmation faisant qu'une page n'est pas mise en cache :</p> + +<ul> + <li>La page utilise un gestionnaire <code>unload</code></li> + <li>La page définit « cache-control: no-store »</li> + <li>La page définit « cache-control: no-cache » et le site est sécurisé par HTTPS</li> + <li>La page n'est pas complètement chargée quand l'utilisateur la quitte pour en charger une autre</li> + <li>La page de niveau supérieur de la page contient des cadres qui ne peuvent pas être mis en cache</li> + <li>La page est dans un cadre et l'utilisateur charge une nouvelle page dans ce cadre (dans ce cas, lorsque l'utilisateur navigue vers une autre page, le dernier contenu chargé dans les cadres est celui mis en cache)</li> +</ul> + +<p>Cette nouvelle fonctionnalité de mise en cache modifie le comportement du chargement des pages, et les webmestres peuvent désirer :</p> + +<ul> + <li>savoir qu'une page a été accédée (lorsqu'elle est chargée depuis le cache de l'utilisateur)</li> + <li>définir le comportement d'une page lorsque l'utilisateur la quitte (tout en lui permettant d'être mise en cache)</li> +</ul> + +<p>Le navigateur offre aux webmestres deux nouveaux évènements pour cela.</p> + +<h3 id="Nouveaux_.C3.A9v.C3.A8nements_du_navigateur" name="Nouveaux_.C3.A9v.C3.A8nements_du_navigateur">Nouveaux évènements du navigateur</h3> + +<p>Si vous utilisez ces nouveaux évènements, vos pages continueront à s'afficher correctement dans les autres navigateurs (nous avons testé des versions antérieures de Firefox, Internet Explorer, Opera et Safari), et elles utiliseront ces nouvelles fonctionnalités de mise en cache lors de leur chargement dans Firefox 1.5.</p> + +<p>Le comportement standard des pages Web est :</p> + +<ol> + <li>L'utilisateur accède à une page.</li> + <li>Au cours du chargement de la page, les scripts contenus dans la page (<em>inline</em>) s'exécutent.</li> + <li>Dès que la page est chargée, le gestionnaire <code>onload</code> est invoqué.</li> +</ol> + +<p>Certaines pages comprennent une quatrième étape. Ce sont celles qui utilisent un gestionnaire <code>unload</code> se déclenchant lorsque l'utilisateur quitte la page pour en charger une autre. Si un gestionnaire <code>unload</code> est présent, la page ne sera pas mise en cache.</p> + +<p>Lorsqu'un utilisateur navigue vers une page mise en cache, les scripts en-ligne et le gestionnaire <code>onload</code> ne sont pas exécutés (étape 2 et 3) puisque dans la plupart des cas les effets de ces scripts ont été préservés.</p> + +<p>Si la page contient des scripts ou d'autres actions déclenchées au chargement qui doivent continuer à s'exécuter lorsque l'utilisateur affiche la page, ou si vous voulez savoir si un utilisateur a consulté une page en cache, utilisez le nouvel évènement <code>pageshow</code>.</p> + +<p>Si vous avez des actions devant s'exécuter lorsque l'utilisateur quitte une page, mais désirez profiter de la nouvelle fonctionnalité de mise en cache, donc sans pouvoir employer le gestionnaire <code>unload</code>, utilisez le nouvel évènement <code>pagehide</code>.</p> + +<h4 id="L.27.C3.A9v.C3.A8nement_pageshow" name="L.27.C3.A9v.C3.A8nement_pageshow">L'évènement pageshow</h4> + +<p>Cet évènement fonctionne comme l'évènement <code>load</code>, sauf qu'il se déclenche à chaque fois que la page est chargée (tandis que l'évènement <code>load</code> ne se déclenche pas avec Firefox 1.5 pour une page chargée depuis le cache). La première fois qu'une page se charge, l'évènement <code>pageshow</code> se déclenche juste après l'évènement <code>load</code>. L'évènement <code>pageshow</code> utilise une propriété booléenne <code>persisted</code> définie à <code>false</code> lors du chargement initial. Elle est définie à <code>true</code> s'il ne s'agit pas du chargement initial de la page (en d'autres termes, elle est définie à <code>true</code> pour une page chargée depuis le cache).</p> + +<p>Définissez tous vos scripts JavaScript que vous voulez voir exécutés à chaque fois qu'une page se charge grâce à l'évènement <code>pageshow</code>.</p> + +<p>Si vous appelez des fonctions JavaScript comme faisant partie de l'évènement <code>pageshow</code>, vous pouvez vous assurer qu'elles soient appelées lorsque la page est chargée dans d'autres navigateurs que Firefox 1.5 en appelant l'évènement <code>pageshow</code> depuis l'évènement <code>load</code>, comme indiqué dans l'exemple plus bas dans cet article.</p> + +<h4 id="L.27.C3.A9v.C3.A8nement_pagehide" name="L.27.C3.A9v.C3.A8nement_pagehide">L'évènement pagehide</h4> + +<p>Si vous désirez définir un comportement se produisant lorsque l'utilisateur quitte la page, mais ne voulez pas utiliser l'évènement <code>unload</code> (ce qui empêcherait la page d'être mise en cache), vous pouvez utiliser le nouvel évènement <code>pagehide</code>. Comme <code>pageshow</code>, l'évènement <code>pagehide</code> utilise une propriété booléenne appelée <code>persisted</code>. Cette propriété est définie à <code>true</code> si la page est mise en cache par le navigateur. Lorsque cette propriété est définie à <code>false</code>, le gestionnaire <code>unload</code>, s'il existe, se déclenche immédiatement après l'évènement <code>pagehide</code>.</p> + +<p>Firefox 1.5 essaie de simuler les évènements de chargement dans le même ordre de déroulement que lorsque la page est chargée initialement. Les cadres sont traités de la même façon que le document principal. Si la page contient des cadres, cela signifie que lorsque la page mise en cache est chargée :</p> + +<ul> + <li>les évènements <code>pageshow</code> de chaque cadre se déclenchent avant l'évènement <code>pageshow</code> du document principal.</li> + <li>lorsque l'utilisateur quitte la page mise en cache, l'évènement <code>pagehide</code> de chaque cadre se déclenche avant l'évènement <code>pagehide</code> du document principal.</li> + <li>pour la navigation se déroulant à l'intérieur d'un seul cadre, les évènements se déclenchent uniquement dans le cadre affecté.</li> +</ul> + +<h3 id="Exemple_de_code" name="Exemple_de_code">Exemple de code</h3> + +<p>L'exemple ci-dessous illustre une page utilisant à la fois les évènements <code>load</code> et <code>pageshow</code>. La page se comporte de la façon suivante :</p> + +<ul> + <li>Dans les autres navigateurs que Firefox 1.5, voici ce qui se produit à chaque chargement de la page : l'évènement <code>load</code> déclenche la fonction <code>onLoad</code>, qui appelle la fonction <code>onPageShow</code> (ainsi qu'une autre fonction).</li> +</ul> + +<ul> + <li>Dans Firefox 1.5, la première fois que la page est chargée, l'évènement <code>load</code> s'opère de la même façon que dans les autres navigateurs. De plus l'évènement <code>pageshow</code> se déclenche, et comme <code>persisted</code> est égal à <code>false</code>, rien d'autre ne se produit.</li> +</ul> + +<ul> + <li>Dans Firefox 1.5, lorsque la page est chargée depuis le cache, seul l'évènement <code>pageshow</code> se déclenche. Comme <code>persisted</code> est égal à <code>true</code>, seules les actions JavaScript de la fonction <code>onPageShow</code> sont effectuées.</li> +</ul> + +<p>Dans cet exemple :</p> + +<ul> + <li>La page calcule et affiche la date et l'heure courantes à chaque chargement de la page. Ce calcul prend en compte les secondes et millisecondes afin que la fonctionnalité puisse être testée facilement.</li> + <li>Le curseur est placé dans le champ Nom du formulaire au premier chargement de la page. Dans Firefox 1.5, lorsque l'utilisateur revient sur la page, le curseur reste dans le champ dans lequel il se trouvait lorsqu'il l'a quittée. Dans les autres navigateurs, le curseur retourne dans le champ Nom.</li> +</ul> + +<pre><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" + "http://www.w3.org/TR/html4/loose.dtd"> +<HTML> +<head> +<title>Commande : Exemple de Firefox 1.5</title> +<style type="text/css"> +body, p { + font-family: Verdana, sans-serif; + font-size: 12px; + } +</style> +<script type="text/javascript"> +function onLoad() { + loadOnlyFirst(); + onPageShow(); +} + +function onPageShow() { +// calcule la date et l'heure courantes + var currentTime = new Date(); + var year = currentTime.getFullYear(); + var month = currentTime.getMonth()+1; + var day = currentTime.getDate(); + var hour = currentTime.getHours(); + var min = currentTime.getMinutes(); + var sec = currentTime.getSeconds(); + var mil = currentTime.getMilliseconds(); + var displayTime = (day + "/" + month + "/" + year + " " + + hour + ":" + min + ":" + sec + ":" + mil); + document.getElementById("timefield").value = displayTime; +} + +function loadOnlyFirst() { + document.zipForm.name.focus(); +} +</script> +</head> +<body onload="onLoad();" onpageshow="if (event.persisted) onPageShow();"> +<h2>Commande</h2> + +<form name="zipForm" action="http://www.example.com/formresult.html" method="get"> +<label for="timefield">Date et heure :</label> +<input type="text" id="timefield"><br> +<label for="name">Nom :</label> +<input type="text" id="name"><br> +<label for="address">Adresse e-mail :</label> +<input type="text" id="address"><br> +<label for="order">Numéro de commande :</label> +<input type="text" id="order"><br> +<input type="submit" name="submit" value="Soumettre la requête"> +</form> +</body> +</html> +</pre> + +<p>En revanche, si la page ci-dessus n'avait pas écouté l'évènement <code>pageshow</code> et gérait tous les calculs au sein de l'évènement <code>load</code> (et était codée à la place comme dans l'exemple de code ci-dessous), la position du curseur et l'heure auraient été mis en cache par Firefox 1.5 lorsque l'utilisateur aurait quitté la page. Lors de son retour, ce seraient la date et l'heure mises en cache qui auraient été affichées.</p> + +<pre><script> +function onLoad() { + loadOnlyFirst(); + +// calcule la date et l'heure courante + var currentTime = new Date(); + var year = currentTime.getFullYear(); + var month = currentTime.getMonth()+1; + var day = currentTime.getDate(); + var hour = currentTime.getHours(); + var min = currentTime.getMinutes(); + var sec = currentTime.getSeconds(); + var mil = currentTime.getMilliseconds(); + var displayTime = (day + "/" + month + "/" + year + " " + + hour + ":" + min + ":" + sec + ":" + mil); + document.getElementById("timefield").value = displayTime; +} + +function loadOnlyFirst() { + document.zipForm.name.focus(); +} +</script> +</head> + +<body onload="onLoad();"> +</pre> + +<h3 id="D.C3.A9veloppement_d.27extensions_pour_Firefox" name="D.C3.A9veloppement_d.27extensions_pour_Firefox">Développement d'extensions pour Firefox</h3> + +<p>Les <a href="/fr/Construire_une_extension" title="fr/Construire_une_extension">extensions</a> pour Firefox 1.5 doivent prendre en compte cette fonctionnalité de mise en cache. Si vous développez une extension pour Firefox et que vous désirez qu'elle soit compatible à la fois avec la 1.5 et les versions antérieures, assurez-vous qu'elle écoute l'évènement <code>load</code> pour les déclencheurs qui peuvent être mis en cache et écoute l'évènement <code>pageshow</code> pour les déclencheurs qui ne doivent pas être mis en cache.</p> + +<p>Par exemple, la Barre d'outils Google pour Firefox doit écouter l'évènement <code>load</code> pour la fonction de liens automatiques et l'évènement <code>pageshow</code> pour la fonction PageRank afin d'être compatible à la fois avec la version 1.5 et les versions antérieures.</p> + +<p><span class="comment">Catégories</span></p> + +<p><span class="comment">Interwiki</span></p> + +<p>{{ languages( { "de": "de/Benutzen_des_Zwischenspeichers_in_Firefox_1.5_(caching)", "en": "en/Using_Firefox_1.5_caching", "it": "it/Usare_il_caching_di_Firefox_1.5", "ja": "ja/Using_Firefox_1.5_caching" } ) }}</p> diff --git a/files/fr/mozilla/firefox/versions/11/index.html b/files/fr/mozilla/firefox/releases/11/index.html index bc1d161fbd..bc1d161fbd 100644 --- a/files/fr/mozilla/firefox/versions/11/index.html +++ b/files/fr/mozilla/firefox/releases/11/index.html diff --git a/files/fr/mozilla/firefox/versions/12/index.html b/files/fr/mozilla/firefox/releases/12/index.html index dbb7811cb7..dbb7811cb7 100644 --- a/files/fr/mozilla/firefox/versions/12/index.html +++ b/files/fr/mozilla/firefox/releases/12/index.html diff --git a/files/fr/mozilla/firefox/versions/13/index.html b/files/fr/mozilla/firefox/releases/13/index.html index df1af7aca1..df1af7aca1 100644 --- a/files/fr/mozilla/firefox/versions/13/index.html +++ b/files/fr/mozilla/firefox/releases/13/index.html diff --git a/files/fr/mozilla/firefox/versions/15/index.html b/files/fr/mozilla/firefox/releases/15/index.html index e4ed3d90ea..e4ed3d90ea 100644 --- a/files/fr/mozilla/firefox/versions/15/index.html +++ b/files/fr/mozilla/firefox/releases/15/index.html diff --git a/files/fr/mozilla/firefox/versions/16/index.html b/files/fr/mozilla/firefox/releases/16/index.html index 0d9335ab6b..0d9335ab6b 100644 --- a/files/fr/mozilla/firefox/versions/16/index.html +++ b/files/fr/mozilla/firefox/releases/16/index.html diff --git a/files/fr/mozilla/firefox/versions/17/index.html b/files/fr/mozilla/firefox/releases/17/index.html index b8c77bfa66..b8c77bfa66 100644 --- a/files/fr/mozilla/firefox/versions/17/index.html +++ b/files/fr/mozilla/firefox/releases/17/index.html diff --git a/files/fr/mozilla/firefox/versions/17/site_compatibility/index.html b/files/fr/mozilla/firefox/releases/17/site_compatibility/index.html index 5f4d2359da..5f4d2359da 100644 --- a/files/fr/mozilla/firefox/versions/17/site_compatibility/index.html +++ b/files/fr/mozilla/firefox/releases/17/site_compatibility/index.html diff --git a/files/fr/mozilla/firefox/versions/18/index.html b/files/fr/mozilla/firefox/releases/18/index.html index 7ed2e61e84..7ed2e61e84 100644 --- a/files/fr/mozilla/firefox/versions/18/index.html +++ b/files/fr/mozilla/firefox/releases/18/index.html diff --git a/files/fr/mozilla/firefox/versions/18/site_compatibility/index.html b/files/fr/mozilla/firefox/releases/18/site_compatibility/index.html index 40090de357..40090de357 100644 --- a/files/fr/mozilla/firefox/versions/18/site_compatibility/index.html +++ b/files/fr/mozilla/firefox/releases/18/site_compatibility/index.html diff --git a/files/fr/mozilla/firefox/versions/19/index.html b/files/fr/mozilla/firefox/releases/19/index.html index 8ece44bb72..8ece44bb72 100644 --- a/files/fr/mozilla/firefox/versions/19/index.html +++ b/files/fr/mozilla/firefox/releases/19/index.html diff --git a/files/fr/mozilla/firefox/versions/19/site_compatibility/index.html b/files/fr/mozilla/firefox/releases/19/site_compatibility/index.html index bf8fd61a81..bf8fd61a81 100644 --- a/files/fr/mozilla/firefox/versions/19/site_compatibility/index.html +++ b/files/fr/mozilla/firefox/releases/19/site_compatibility/index.html diff --git a/files/fr/mozilla/firefox/versions/2/index.html b/files/fr/mozilla/firefox/releases/2/index.html index c0027bed2d..c0027bed2d 100644 --- a/files/fr/mozilla/firefox/versions/2/index.html +++ b/files/fr/mozilla/firefox/releases/2/index.html diff --git a/files/fr/mozilla/firefox/releases/2/security_changes/index.html b/files/fr/mozilla/firefox/releases/2/security_changes/index.html new file mode 100644 index 0000000000..02a1c4e215 --- /dev/null +++ b/files/fr/mozilla/firefox/releases/2/security_changes/index.html @@ -0,0 +1,32 @@ +--- +title: La sécurité dans Firefox 2 +slug: La_sécurité_dans_Firefox_2 +tags: + - Sécurité +translation_of: Mozilla/Firefox/Releases/2/Security_changes +--- +<div>{{FirefoxSidebar}}</div><p>Cet article aborde les changements concernant la sécurité dans Firefox 2.</p> + +<h3 id="Chiffrements_faibles_d.C3.A9sactiv.C3.A9s_par_d.C3.A9faut" name="Chiffrements_faibles_d.C3.A9sactiv.C3.A9s_par_d.C3.A9faut">Chiffrements faibles désactivés par défaut</h3> + +<p><a href="fr/Firefox_2">Firefox 2</a> désactive par défaut le support de SSLv2 et les suites de chiffrement faible (celles ayant des longueurs de clefs inférieures à 64 bits) en faveur de SSLv3. Ce choix améliore la sécurité.</p> + +<p>Les méthodes privilégiées de chiffrage sont <code>TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA</code> et <code>TLS_RSA_WITH_3DES_EDE_CBC_SHA</code>. Certains serveurs y font référence en tant que <code>SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA</code> et <code>SSL_RSA_WITH_3DES_EDE_CBC_SHA</code>.</p> + +<p>Si le support de SSLv2 doit être activé, vous devrez définir avec la valeur <code>true</code> la préférence utilisateur <code>security.ssl2.*</code> dans about:config.</p> + +<h3 id="Nouvelles_fonctionnalit.C3.A9s" name="Nouvelles_fonctionnalit.C3.A9s">Nouvelles fonctionnalités</h3> + +<ul> + <li>Firefox 2 supporte la <a class="external" href="http://fr.wikipedia.org/wiki/Cryptographie_sur_les_courbes_elliptiques">cryptographie sur courbes elliptiques</a> (ECC) dans TLS. Le support est pour l'instant limité aux courbes de 256, 384 et 521 (oui, 521 !) bits.</li> + <li>Firefox 2 supporte l'extension d'identification de nom de serveur TLS pour faciliter les connexions sécurisées sur des serveurs hébergeant plusieurs serveurs virtuels sous la même adresse réseau, suivant la <a class="external" href="http://tools.ietf.org/html/rfc3546" title="http://tools.ietf.org/html/rfc3546">RFC 3546</a>.</li> + <li>Lorsque Firefox 2 effectue une requête <a class="external" href="http://fr.wikipedia.org/wiki/OCSP">OSCP</a> pour valider un certificat d'un serveur Web, il utilise désormais le proxy configuré pour le trafic HTTP normal.</li> +</ul> + +<h3 id="D.C3.A9termination_du_chiffrement_disponible" name="D.C3.A9termination_du_chiffrement_disponible">Détermination du chiffrement disponible</h3> + +<p>Comme toujours, vous pouvez vérifier le chiffrement supporté — celui qui a été activé ou désactivé — en cherchant « ssl » ou « tls » dans about:config.</p> + +<div class="noinclude"> </div> + +<p>{{ languages( { "en": "en/Security_in_Firefox_2", "pl": "pl/Bezpiecze\u0144stwo_w_Firefoksie_2", "zh-tw": "zh_tw/Firefox_2_\u7684\u5b89\u5168\u529f\u80fd" } ) }}</p> diff --git a/files/fr/mozilla/firefox/releases/2/updating_extensions/index.html b/files/fr/mozilla/firefox/releases/2/updating_extensions/index.html new file mode 100644 index 0000000000..2835b6b46a --- /dev/null +++ b/files/fr/mozilla/firefox/releases/2/updating_extensions/index.html @@ -0,0 +1,47 @@ +--- +title: Mise à jour des extensions pour Firefox 2 +slug: Mise_à_jour_des_extensions_pour_Firefox_2 +translation_of: Mozilla/Firefox/Releases/2/Updating_extensions +--- +<div>{{FirefoxSidebar}}</div><p> </p> + +<p>Cet article s'adresse aux développeurs qui souhaitent mettre à jour leur extension pour qu'elle fonctionne correctement avec Firefox 2.</p> + +<h2 id=".C3.89tape_1_:_Mise_.C3.A0_jour_du_manifeste_d.27installation" name=".C3.89tape_1_:_Mise_.C3.A0_jour_du_manifeste_d.27installation">Étape 1 : Mise à jour du manifeste d'installation</h2> + +<p>La première étape - pour de nombreuses extensions, la seule nécessaire - est de mettre à jour le fichier du <a href="fr/Manifestes_d'installation">manifeste d'installation</a>, install.rdf, pour annoncer la compatibilité avec Firefox 2.</p> + +<p>Trouvez la ligne indiquant la plus récente version de Firefox compatible. Pour Firefox 1.5, elle serait :</p> + +<pre class="eval"> <span class="nowiki"><em:maxVersion>1.5.0.*</em:maxVersion></span> +</pre> + +<p>Et remplacez-la par celle-ci :</p> + +<pre class="eval"> <span class="nowiki"><em:maxVersion>2.0.0.*</em:maxVersion></span> +</pre> + +<p>Réinstallez ensuite votre extension.</p> + +<h2 id=".C3.89tape_2_:_Mise_.C3.A0_jour_des_calques_XUL" name=".C3.89tape_2_:_Mise_.C3.A0_jour_des_calques_XUL">Étape 2 : Mise à jour des calques XUL</h2> + +<p>Firefox 2 apporte des changements au thème par défaut, et certains éléments de l'interface utilisateur ont été modifiés ou déplacés. Cela peut affecter votre extension, selon les actions de vos calques XUL.</p> + +<p>Référez-vous à l'article <a href="fr/Changements_dans_les_th%c3%a8mes_graphiques_pour_Firefox_2">Changements dans les thèmes graphiques pour Firefox 2</a> pour déterminer les modifications qui pourraient avoir un effet sur votre extension.</p> + +<h2 id=".C3.89tape_3_:_Test" name=".C3.89tape_3_:_Test">Étape 3 : Test</h2> + +<p>Assurez-vous de tester en profondeur votre extension sous Firefox 2 avant de la publier. Vous ne désirez sûrement pas que votre extension soit la cause d'un déferlement de rapports de bogues avec la toute dernière version de Firefox...</p> + +<h2 id=".C3.89tape_4_:_Publication" name=".C3.89tape_4_:_Publication">Étape 4 : Publication</h2> + +<p>Mettez à jour la description de votre extension sur <a class="external" href="http://addons.mozilla.org" rel="freelink">http://addons.mozilla.org</a>, pour vous assurez que les utilisateurs la retrouveront.</p> + +<p>De plus, si le manifeste d'installation contient une <code><a href="fr/Manifestes_d'installation#updateURL">URL de mise à jour</a></code>, vérifiez qu'elle est valide pour que Firefox puisse automatiquement trouver les nouvelles versions de votre extension. De cette manière, Firefox proposera de l'installer automatiquement au premier lancement de l'extension après le passage à Firefox 2.</p> + +<p><br> + <span class="comment">Lien Interwiki</span></p> + +<div class="noinclude"> </div> + +<p>{{ languages( { "en": "en/Updating_extensions_for_Firefox_2", "ja": "ja/Updating_extensions_for_Firefox_2", "ko": "ko/Updating_extensions_for_Firefox_2", "pl": "pl/Aktualizacja_rozszerze\u0144_do_Firefoksa_2" } ) }}</p> diff --git a/files/fr/mozilla/firefox/versions/20/index.html b/files/fr/mozilla/firefox/releases/20/index.html index d9bf6ebdd7..d9bf6ebdd7 100644 --- a/files/fr/mozilla/firefox/versions/20/index.html +++ b/files/fr/mozilla/firefox/releases/20/index.html diff --git a/files/fr/mozilla/firefox/versions/20/site_compatibility/index.html b/files/fr/mozilla/firefox/releases/20/site_compatibility/index.html index b126ee10ba..b126ee10ba 100644 --- a/files/fr/mozilla/firefox/versions/20/site_compatibility/index.html +++ b/files/fr/mozilla/firefox/releases/20/site_compatibility/index.html diff --git a/files/fr/mozilla/firefox/versions/21/index.html b/files/fr/mozilla/firefox/releases/21/index.html index 5b31107b63..5b31107b63 100644 --- a/files/fr/mozilla/firefox/versions/21/index.html +++ b/files/fr/mozilla/firefox/releases/21/index.html diff --git a/files/fr/mozilla/firefox/versions/21/site_compatibility/index.html b/files/fr/mozilla/firefox/releases/21/site_compatibility/index.html index 0baf393fc3..0baf393fc3 100644 --- a/files/fr/mozilla/firefox/versions/21/site_compatibility/index.html +++ b/files/fr/mozilla/firefox/releases/21/site_compatibility/index.html diff --git a/files/fr/mozilla/firefox/versions/22/index.html b/files/fr/mozilla/firefox/releases/22/index.html index d772c8108d..d772c8108d 100644 --- a/files/fr/mozilla/firefox/versions/22/index.html +++ b/files/fr/mozilla/firefox/releases/22/index.html diff --git a/files/fr/mozilla/firefox/versions/22/site_compatibility/index.html b/files/fr/mozilla/firefox/releases/22/site_compatibility/index.html index d58f2a06c8..d58f2a06c8 100644 --- a/files/fr/mozilla/firefox/versions/22/site_compatibility/index.html +++ b/files/fr/mozilla/firefox/releases/22/site_compatibility/index.html diff --git a/files/fr/mozilla/firefox/versions/23/index.html b/files/fr/mozilla/firefox/releases/23/index.html index 6d9da9604c..6d9da9604c 100644 --- a/files/fr/mozilla/firefox/versions/23/index.html +++ b/files/fr/mozilla/firefox/releases/23/index.html diff --git a/files/fr/mozilla/firefox/versions/23/site_compatibility/index.html b/files/fr/mozilla/firefox/releases/23/site_compatibility/index.html index ee40cc83d3..ee40cc83d3 100644 --- a/files/fr/mozilla/firefox/versions/23/site_compatibility/index.html +++ b/files/fr/mozilla/firefox/releases/23/site_compatibility/index.html diff --git a/files/fr/mozilla/firefox/versions/24/index.html b/files/fr/mozilla/firefox/releases/24/index.html index 7aa78478c5..7aa78478c5 100644 --- a/files/fr/mozilla/firefox/versions/24/index.html +++ b/files/fr/mozilla/firefox/releases/24/index.html diff --git a/files/fr/mozilla/firefox/versions/24/site_compatibility/index.html b/files/fr/mozilla/firefox/releases/24/site_compatibility/index.html index 7cacf2fae5..7cacf2fae5 100644 --- a/files/fr/mozilla/firefox/versions/24/site_compatibility/index.html +++ b/files/fr/mozilla/firefox/releases/24/site_compatibility/index.html diff --git a/files/fr/mozilla/firefox/versions/3.5/index.html b/files/fr/mozilla/firefox/releases/3.5/index.html index 375c8488d7..375c8488d7 100644 --- a/files/fr/mozilla/firefox/versions/3.5/index.html +++ b/files/fr/mozilla/firefox/releases/3.5/index.html diff --git a/files/fr/mozilla/firefox/versions/3.6/index.html b/files/fr/mozilla/firefox/releases/3.6/index.html index 6e27affe9d..6e27affe9d 100644 --- a/files/fr/mozilla/firefox/versions/3.6/index.html +++ b/files/fr/mozilla/firefox/releases/3.6/index.html diff --git a/files/fr/mozilla/firefox/releases/3/dom_improvements/index.html b/files/fr/mozilla/firefox/releases/3/dom_improvements/index.html new file mode 100644 index 0000000000..38f958218c --- /dev/null +++ b/files/fr/mozilla/firefox/releases/3/dom_improvements/index.html @@ -0,0 +1,35 @@ +--- +title: Améliorations DOM dans Firefox 3 +slug: Améliorations_DOM_dans_Firefox_3 +tags: + - DOM + - Firefox 3 +translation_of: Mozilla/Firefox/Releases/3/DOM_improvements +--- +<div>{{FirefoxSidebar}}</div><p>{{ Fx_minversion_header(3) }}</p> + +<p>Firefox 3 offre un certain nombre d'améliorations dans sa gestion du <a href="fr/DOM">modèle objet de document</a> (DOM), en particulier en ce qui concerne la gestion de ses extensions ajoutées par d'autres navigateurs. Cet article reprend une liste de ces améliorations ainsi que des liens vers une documentation plus détaillée.</p> + +<ul> + <li>Les extensions DOM d'Internet Explorer <code><a href="fr/DOM/element.clientTop">clientTop</a></code> et <code><a href="fr/DOM/element.clientLeft">clientLeft</a></code> sont à présent supportées.</li> + <li>La propriété <code><a href="fr/DOM/window.fullScreen">window.fullScreen</a></code> est à présent toujours correcte quel que soit l'endroit de sa lecture, même depuis le contenu. Auparavant, elle renvoyait <code>false</code> de manière incorrecte ({{ Bug(127013) }}).</li> + <li>Les extensions DOM <code><a href="fr/DOM/element.getClientRects">getClientRects</a></code> et <code><a href="fr/DOM/element.getBoundingClientRect">getBoundingClientRect</a></code> sont à présent supportées (voir le {{ Bug(174397) }}).</li> + <li>L'extension DOM d'Internet Explorer <code><a href="fr/DOM/document.elementFromPoint">elementFromPoint</a></code> est à présent supportée ({{ Bug(199692) }}).</li> + <li>Les extensions DOM d'Internet Explorer <code><a href="fr/DOM/element.oncut">oncut</a></code>, <code><a href="fr/DOM/element.oncopy">oncopy</a></code> et <code><a href="fr/DOM/element.onpaste">onpaste</a></code> sont à présent supportées ({{ Bug(280959) }}).</li> + <li>Des accesseurs réservés au code privilégié ont été ajoutés pour <code>Node.nodePrincipal</code>, <code>Node.baseURIObject</code> et <code><a href="fr/DOM/document.documentURIObject">document.documentURIObject</a></code>. Le code chrome ne doit accéder à ces propriétés (ou les modifier) que sur des objets de contenu enveloppés (par exemple avec le <code>wrappedJSObject</code> d'un <code><a href="fr/XPCNativeWrapper">XPCNativeWrapper</a></code>), consultez le {{ Bug(324464) }} pour plus de détails.</li> + <li>La méthode DOM <code><a href="fr/DOM/document.getElementsByClassName">getElementsByClassName()</a></code> de Web Applications 1.0 (HTML5) est à présent gérée.</li> + <li>La méthode DOM <code><a href="fr/DOM/window.postMessage">window.postMessage</a></code> de Web Applications 1.0 (HTML5) est également gérée. Celle-ci autorise une certaine forme limitée et volontaire de communication côté client entre des fenêtres qui ne sont pas forcément dans le même domaine.</li> + <li>La valeur <code>charCode</code> de l'évènement <code>keypress</code> est transformée en un caractère ASCII si la touche Accélérateur est pressée. Autrement, <code>charCode</code> est le caractère non modifié (à part son état <kbd>Shift</kbd> — mise en majuscules). Consultez <a href="fr/L'%c3%a9v%c3%a8nement_Keypress_dans_Gecko">L'évènement Keypress dans Gecko</a>.</li> +</ul> + +<h3 id="Voir_.C3.A9galement" name="Voir_.C3.A9galement">Voir également</h3> + +<ul> + <li><a href="fr/Firefox_3_pour_les_d%c3%a9veloppeurs">Firefox 3 pour les développeurs</a></li> + <li><a href="fr/Am%c3%a9liorations_CSS_dans_Firefox_3">Améliorations CSS dans Firefox 3</a></li> + <li><a href="fr/DOM">DOM</a></li> +</ul> + +<div class="noinclude"> </div> + +<p>{{ languages( { "en": "en/DOM_improvements_in_Firefox_3", "es": "es/Mejoras_DOM_en_Firefox_3", "ja": "ja/DOM_improvements_in_Firefox_3", "pl": "pl/Poprawki_DOM_w_Firefoksie_3" } ) }}</p> diff --git a/files/fr/mozilla/firefox/releases/3/full_page_zoom/index.html b/files/fr/mozilla/firefox/releases/3/full_page_zoom/index.html new file mode 100644 index 0000000000..88e46ac3f4 --- /dev/null +++ b/files/fr/mozilla/firefox/releases/3/full_page_zoom/index.html @@ -0,0 +1,42 @@ +--- +title: Zoom pleine page +slug: Zoom_pleine_page +translation_of: Mozilla/Firefox/Releases/3/Full_page_zoom +--- +<div>{{FirefoxSidebar}}</div><p>{{ Fx_minversion_header(3) }} {{ Gecko_minversion_header(1.9) }}</p> + +<p>Le zoom pleine page (ou fullZoom) est une nouvelle fonctionnalité qui sera probablement disponible dans <a href="fr/Firefox_3_pour_les_d%c3%a9veloppeurs">Firefox 3</a>. Elle peut être utilisée dans les compilations courantes du tronc depuis la version 1.9a7. Bien qu'il n'y ait actuellement aucune interface utilisateur visible, il est possible d'utiliser JavaScript et l'interface <a href="fr/XPCOM">XPCOM</a> <a class="external" href="http://www.xulplanet.com/references/xpcomref/ifaces/nsIMarkupDocumentViewer.html">nsIMarkupDocumentViewer</a>.</p> + +<h3 id="Exemple_.28xul:browser.29" name="Exemple_.28xul:browser.29">Exemple (xul:browser)</h3> + +<p>L'exemple qui suit montre l'utilisation du zoom pour la fenêtre de navigation ayant actuellement le focus. C'est l'utilisation typique pour une extension Firefox.</p> + +<pre>var zoom = 1.5; +var docViewer = getBrowser().mCurrentBrowser.markupDocumentViewer; +docViewer.fullZoom = zoom; +</pre> + +<h3 id="Exemple_.28xul:iframe.29" name="Exemple_.28xul:iframe.29">Exemple (xul:iframe)</h3> + +<p>Il est également possible d'utiliser la fonction fullZoom pour un xul:iframe. Cependant, comme un iframe n'a pas de propriété <code>markupDocumentViewer</code>, il faut d'abord obtenir cette valeur :</p> + +<pre>var zoom = 1.5; +var iframe = document.getElementById("authorFrame"); +var contViewer = iframe.docShell.contentViewer; +var docViewer = contViewer.QueryInterface(Components.interfaces.nsIMarkupDocumentViewer); +docViewer.fullZoom = zoom; +</pre> + +<h3 id="R.C3.A9f.C3.A9rences" name="R.C3.A9f.C3.A9rences">Références</h3> + +<ul> + <li>Extension Page zoom par Ted Mielczarek <a class="external" href="http://ted.mielczarek.org/code/mozilla/fullpagezoom.xpi">fullpagezoom.xpi</a> pour les dernières nightlies de Firefox 3.</li> + <li>Le <a class="link-https" href="https://bugzilla.mozilla.org/show_bug.cgi?id=4821">bug</a> concernant fullZoom sur bugzilla.</li> + <li>Documentation de l'interface <a class="external" href="http://www.xulplanet.com/references/xpcomref/ifaces/nsIMarkupDocumentViewer.html">nsIMarkupDocumentViewer</a> (ne mentionne pas fullZoom pour l'instant).</li> +</ul> + +<p> </p> + +<div class="noinclude"> </div> + +<p>{{ languages( { "en": "en/Full_page_zoom", "es": "es/Zoom_a_p\u00e1gina_completa", "ja": "ja/Full_page_zoom" } ) }}</p> diff --git a/files/fr/mozilla/firefox/versions/3/index.html b/files/fr/mozilla/firefox/releases/3/index.html index 79519fa181..79519fa181 100644 --- a/files/fr/mozilla/firefox/versions/3/index.html +++ b/files/fr/mozilla/firefox/releases/3/index.html diff --git a/files/fr/mozilla/firefox/releases/3/notable_bugs_fixed/index.html b/files/fr/mozilla/firefox/releases/3/notable_bugs_fixed/index.html new file mode 100644 index 0000000000..8c21490a17 --- /dev/null +++ b/files/fr/mozilla/firefox/releases/3/notable_bugs_fixed/index.html @@ -0,0 +1,35 @@ +--- +title: Bugs importants corrigés dans Firefox 3 +slug: Bugs_importants_corrigés_dans_Firefox_3 +translation_of: Mozilla/Firefox/Releases/3/Notable_bugs_fixed +--- +<div>{{FirefoxSidebar}}</div><p>Cet article fait la liste des corrections importantes faisant partie de Firefox 3 qui ne sont pas nécessairement évidentes à trouver dans la documentation.</p> + +<ul> + <li>Si une erreur se produit à l'analyse d'un overlay, l'overlay n'est pas appliqué. Les erreurs d'analyse apparaissent dans la console d'erreurs. ({{ Bug(355755) }})</li> + <li>Des <code><menupopup></code> peuvent être placés dans une liaison XBL et être attachés à un élément de menu ou apparenté. ({{ Bug(345896) }})</li> + <li>La propriété <code>dlgType</code> des éléments <code>button</code> fonctionne correctement. ({{ Bug(308591) }})</li> + <li>Le paramètre <code>canBubble</code> de {{ Domxref("event.initEvent") }} fonctionne correctement et des évènements peuvent être déclenchés sans se propager. ({{ Bug(330190) }})</li> + <li>L'évènement <code>DOMAttrModified</code> gère les attributs avec espace de noms correctement. ({{ Bug(247095) }})</li> + <li>Les instructions de traitement XML, comme <code><?xml-stylesheet ?></code>, sont maintenant ajoutés au DOM des documents XUL. Cela signifie que {{ Domxref("document.firstChild") }} n'est pas forcément l'élément racine, utilisez plutôt {{ Domxref("document.documentElement") }}. Par ailleurs, les instructions de traitement <code><?xml-stylesheet ?></code> et <code><?xul-overlay ?></code> n'ont maintenant plus d'effet en dehors du prologue du document. ({{ Bug(319654) }})</li> + <li>Les fonctions <code>getElementsByAttributeNS()</code> ont été ajoutées aux éléments et documents XUL. ({{ Bug(239976) }})</li> + <li>Les gestionnaires d'évènements sont conservés lorsque des éléments sont déplacés dans ou retirés d'un document XUL. ({{ Bug(286619) }})</li> + <li>Les évènements de mutation sont déclenchés aussi pour les documents non affichés. ({{ Bug(201238) }})</li> + <li>Divers problèmes dans l'ordre d'affichage des éléments ont été corrigés. ({{ Bug(317375) }})</li> + <li><code><a href="fr/DOM/element.getElementsByTagName">getElementsByTagName()</a></code> a été corrigé pour fonctionner correctement sur les sous-arbres dont des éléments ont des préfixes d'espaces de noms dans leur nom de balise ({{ Bug(206053) }}).</li> + <li>Les évènements <code>DOMNodeInserted</code> et <code>DOMNodeRemoved</code> s'appliquent à présent aux bons nœuds ({{ Bug(367164) }}).</li> + <li><code>\d</code>, un des caractères spéciaux dans les expressions rationnelles, a été corrigé pour correspondre uniquement aux chiffres de base de l'alphabet latin (équivalent à <code>{{ mediawiki.external('0-9') }}</code>). ({{ Bug(378738) }})</li> + <li>La catégorie image-sniffing-services permet aux décodeurs d'images implémentés comme des extensions de décoder correctement des images envoyées avec des types MIME incorrects. ({{ Bug(391667) }})</li> +</ul> + +<h3 id="Voir_.C3.A9galement" name="Voir_.C3.A9galement">Voir également</h3> + +<ul> + <li><a href="fr/Firefox_3_pour_les_d%c3%a9veloppeurs">Firefox 3 pour les développeurs</a></li> +</ul> + +<p> </p> + +<div class="noinclude"> </div> + +<p>{{ languages( { "en": "en/Notable_bugs_fixed_in_Firefox_3", "es": "es/Bugs_importantes_solucionados_en_Firefox_3", "ja": "ja/Notable_bugs_fixed_in_Firefox_3", "pl": "pl/Istotne_b\u0142\u0119dy_poprawione_w_Firefoksie_3" } ) }}</p> diff --git a/files/fr/mozilla/firefox/releases/3/site_compatibility/index.html b/files/fr/mozilla/firefox/releases/3/site_compatibility/index.html new file mode 100644 index 0000000000..aacc05c730 --- /dev/null +++ b/files/fr/mozilla/firefox/releases/3/site_compatibility/index.html @@ -0,0 +1,80 @@ +--- +title: Changements dans Gecko 1.9 affectant les sites Web +slug: Changements_dans_Gecko_1.9_affectant_les_sites_Web +tags: + - Développement_Web + - Gecko +translation_of: Mozilla/Firefox/Releases/3/Site_compatibility +--- +<div>{{FirefoxSidebar}}</div> + +<p>Cette page essaie de donner un aperçu des changements entre <a href="fr/Gecko">Gecko</a> 1.8 et Gecko 1.9 qui pourraient éventuellement affecter le comportement ou le rendu des sites Web.</p> + +<p>Consultez également <a href="fr/Firefox_3_pour_les_d%c3%a9veloppeurs">Firefox 3 pour les développeurs</a>.</p> + +<h2 id=".C3.89v.C3.A8nements" name=".C3.89v.C3.A8nements">Évènements</h2> + +<h3 id="Gestionnaires_d.27.C3.A9v.C3.A8nements_capturants_load" name="Gestionnaires_d.27.C3.A9v.C3.A8nements_capturants_load">Gestionnaires d'évènements capturants <code>load</code></h3> + +<p>Dans Gecko 1.8, il n'était pas possible de définir des gestionnaires d'évènements <code>load</code> capturants sur les images. Dans Gecko 1.9, cela devient possible avec la résolution du {{ Bug(234455) }}. Cela peut cependant causer des problèmes sur les sites Web qui ont incorrectement défini leurs gestionnaires d'évènements sur l'évènement <code>load</code>. Consultez la discussion dans le {{ Bug(335251) }}. Pour résoudre ce problème, les pages en question ne doivent pas définir de gestionnaires d'évènements capturants pour l'évènement <code>load</code>.</p> + +<p>Par exemple, ceci :</p> + +<pre class="eval">window.addEventListener('load', votreFonction, true); +</pre> + +<p>devrait être remplacé par ceci :</p> + +<pre class="eval">window.addEventListener('load', votreFonction, false); +</pre> + +<p>Pour une explication du fonctionnement de la capture des évènements, consultez <a class="external" href="http://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-flow-capture">DOM Level 2 Event capture</a> (en)</p> + +<h3 id="preventBubble_a_.C3.A9t.C3.A9_supprim.C3.A9e" name="preventBubble_a_.C3.A9t.C3.A9_supprim.C3.A9e"><code>preventBubble</code> a été supprimée</h3> + +<p>Dans Gecko 1.8, la méthode <code>preventBubble</code> existait sur les évènements pour les empêcher de se propager plus haut. Dans Gecko 1.9, cette méthode a été supprimée. À la place, utilisez la méthode standard <a href="fr/DOM/event.stopPropagation">stopPropagation()</a>, qui fonctionne également dans Gecko 1.8. Ce changement a été produit par le patch pour le {{ Bug(330494) }}. Consultez également le {{ Bug(105280) }}.</p> + +<h3 id="Quelques_autres_anciennes_API_d.27.C3.A9v.C3.A8nements_ne_sont_plus_support.C3.A9es" name="Quelques_autres_anciennes_API_d.27.C3.A9v.C3.A8nements_ne_sont_plus_support.C3.A9es">Quelques autres anciennes API d'évènements ne sont plus supportées</h3> + +<p><a href="fr/DOM/window.captureEvents">window.captureEvents</a>, <a href="fr/DOM/window.releaseEvents">window.releaseEvents</a> et <code>window.routeEvent</code> ne sont plus supportées ({{ Obsolete_inline() }}) dans Gecko 1.9.</p> + +<h2 id="DOM" name="DOM">DOM</h2> + +<h3 id="L.27exception_WRONG_DOCUMENT_ERR_se_d.C3.A9clenche_lorsque_l.27on_essaie_d.27utiliser_un_n.C5.93ud_d.27un_document_diff.C3.A9rent" name="L.27exception_WRONG_DOCUMENT_ERR_se_d.C3.A9clenche_lorsque_l.27on_essaie_d.27utiliser_un_n.C5.93ud_d.27un_document_diff.C3.A9rent">L'exception <code>WRONG_DOCUMENT_ERR</code> se déclenche lorsque l'on essaie d'utiliser un nœud d'un document différent</h3> + +<p></p><p>Les nœuds provenant de documents externes doivent être clonés à l'aide de <a href="/fr/docs/Web/API/Document/importNode" title="La méthode Document importNode() crée une nouvelle copie du Node ou DocumentFragment spécifié à partir d'un autre document, afin qu'il puisse être inséré dans le document actuel. Il n'est pas encore inclus dans l'arbre des documents; Pour ce faire, vous devez appeler une méthode telle que appendChild () ou insertBefore ()."><code>document.importNode()</code></a> (ou adoptés avec + <a href="/fr/docs/Web/API/Document/adoptNode" title="Adopte un noeud. Le noeud (et son sous-arbre) est supprimé du document dans lequel il se trouve (le cas échéant) et son ownerDocument (document propriétaire) est remplacé par le document en cours. Le noeud peut ensuite être inséré dans le document en cours."><code>document.adoptNode()</code></a>) avant de pouvoir être insérés dans le document courant. Pour en savoir plus sur les problèmes + de <a href="/fr/docs/Web/API/Node/ownerDocument" title="La propriété en lecture seule Node.ownerDocument renvoie l'objet document de niveau supérieur pour ce nœud."><code>Node.ownerDocument</code></a>, consultez la <a class="external" href="http://www.w3.org/DOM/faq.html#ownerdoc" rel="noopener">FAQ DOM du W3C</a> (en anglais).</p> + + <p>Gecko n'obligeait pas à utiliser <a href="/fr/docs/Web/API/Document/importNode" title="La méthode Document importNode() crée une nouvelle copie du Node ou DocumentFragment spécifié à partir d'un autre document, afin qu'il puisse être inséré dans le document actuel. Il n'est pas encore inclus dans l'arbre des documents; Pour ce faire, vous devez appeler une méthode telle que appendChild () ou insertBefore ()."><code>document.importNode()</code></a> et <a href="/fr/docs/Web/API/Document/adoptNode" title="Adopte un noeud. Le noeud (et son sous-arbre) est supprimé du document dans lequel il se trouve (le cas échéant) et son ownerDocument (document propriétaire) est remplacé par le document en cours. Le noeud peut ensuite être inséré dans le document en cours."><code>document.adoptNode()</code></a> avant sa version 1.9. Depuis les versions 1.9 + alphas, si un nœud n'est pas adopté ou importé avant d'être utilisé dans un autre document, l'exception + <code>WRONG_DOCUMENT_ERR</code> est déclenchée (<code>NS_ERROR_DOM_WRONG_DOCUMENT_ERR</code>). implémentation dans le <a class="external" href="https://bugzilla.mozilla.org/show_bug.cgi?id=47903" rel="noopener" title="FIXED: WRONG_DOCUMENT_ERR not being thrown">bug 47903</a>.</p><p></p> + + +<h2 id="Ranges" name="Ranges">Ranges</h2> + +<h3 id="intersectsNode_a_.C3.A9t.C3.A9_supprim.C3.A9e" name="intersectsNode_a_.C3.A9t.C3.A9_supprim.C3.A9e"><code>intersectsNode</code> a été supprimée</h3> + +<p>Dans Gecko 1.8, la fonction <code>intersectsNode</code> pouvait être utilisée pour vérifier si un nœud faisait partie d'un range. Cependant, les valeurs renvoyées par cette fonction étaient trompeuses et rarement utiles. Elle a donc été retirée de Gecko 1.9. Utilisez à la place la fonction standard et plus précise <a href="fr/DOM/range.compareBoundaryPoints">compareBoundaryPoints</a>. Cette fonction a été retirée par le patch du {{ Bug(358073) }}.</p> + +<p>Consultez la documentation de <a href="fr/DOM/range.intersectsNode">intersectsNode</a> pour savoir comment utiliser <code>compareBoundaryPoints</code> à la place.</p> + +<h3 id="compareNode_a_.C3.A9t.C3.A9_supprim.C3.A9e" name="compareNode_a_.C3.A9t.C3.A9_supprim.C3.A9e"><code>compareNode</code> a été supprimée</h3> + +<p>Dans Gecko 1.8, la fonction <code>compareNode</code> pouvait être utilisée pour tester l'intersection d'un nœud avec un range. Cependant, les valeurs renvoyées par cette fonction étaient trompeuses et rarement utiles. Elle a donc été retirée de Gecko 1.9. Utilisez à la place la fonction standard et plus précise <a href="fr/DOM/range.compareBoundaryPoints">compareBoundaryPoints</a>. Cette fonction a été retirée par le patch du {{ Bug(358073) }}.</p> + +<p>Consultez la documentation de <a href="fr/DOM/range.compareNode">compareNode</a> pour savoir comment utiliser <code>compareBoundaryPoints</code> à la place.</p> + +<h2 id="HTML" name="HTML">HTML</h2> + +<h3 id="Correction_de_nombreux_bogues_dans_le_code_de_.3Cobject.3E" name="Correction_de_nombreux_bogues_dans_le_code_de_.3Cobject.3E">Correction de nombreux bogues dans le code de <code><object></code></h3> + +<ul> + <li>Les éléments <code>object</code> et <code>embed</code> n'ont plus besoin d'attribut <code>type</code> pour être rendus.</li> + <li>La modification de l'attribut <code>src</code> (de <code><embed></code>) ou de l'attribut <code>data</code> (de <code><object></code>) via JavaScript fonctionne maintenant correctement.</li> + <li>L'en-tête <code>Content-Type</code> envoyé par le serveur (s'il existe) est maintenant prioritaire par rapport à l'attribut <code>type</code> d'une balise <code><object></code> comme défini dans la spécification HTML (ceci n'est pas le cas pour <code>embed</code>).</li> +</ul> + +<div class="noinclude"> </div> + +<p>{{ languages( { "en": "en/Gecko_1.9_Changes_affecting_websites", "ja": "ja/Gecko_1.9_Changes_affecting_websites", "ko": "ko/Gecko_1.9_Changes_affecting_websites", "pl": "pl/Zmiany_w_Gecko_1.9_wp\u0142ywaj\u0105ce_na_wy\u015bwietlanie_stron", "pt": "pt/Mudan\u00e7as_no_Gecko_1.9_que_afetam_websites" } ) }}</p> diff --git a/files/fr/mozilla/firefox/releases/3/svg_improvements/index.html b/files/fr/mozilla/firefox/releases/3/svg_improvements/index.html new file mode 100644 index 0000000000..c46f799cea --- /dev/null +++ b/files/fr/mozilla/firefox/releases/3/svg_improvements/index.html @@ -0,0 +1,65 @@ +--- +title: Améliorations SVG dans Firefox 3 +slug: Améliorations_SVG_dans_Firefox_3 +tags: + - Firefox 3 + - SVG +translation_of: Mozilla/Firefox/Releases/3/SVG_improvements +--- +<div>{{FirefoxSidebar}}</div><p>{{ Fx_minversion_header(3) }}</p> + +<p>Firefox 3 offre un support <a href="fr/SVG">SVG</a> amélioré par rapport aux versions précédentes de Firefox. Ces fonctionnalités sont documentés ailleurs, et cet article fournit une liste pratique permettant de déterminer lesquelles ont été ajoutées dans Firefox 3.</p> + +<ul> + <li>support de l'élément <a class="external" href="http://www.w3.org/TR/SVG11/extend.html#ForeignObjectElement">foreignObject</a> ({{ Bug(326966) }}, <a class="external" href="http://weblogs.mozillazine.org/roc/archives/2006/06/the_future_is_now.html">voir aussi</a>)</li> + <li>support de l'élément <code>pattern</code> (<a class="external" href="http://www.w3.org/TR/SVG11/pservers.html#PatternElement">spécification</a>)</li> + <li>support de l'élément <code>mask</code> (<a class="external" href="http://www.w3.org/TR/SVG11/masking.html#MaskElement">spécification</a>)</li> + <li>support de tous les filtres SVG 1.1 (<a class="external" href="http://www.w3.org/TR/SVG11/filters.html">spécification</a>) + <ul> + <li><code>filter</code></li> + <li><code>feDistantLight</code></li> + <li><code>fePointLight</code></li> + <li><code>feSpotLight</code></li> + <li><code>feBlend</code></li> + <li><code>feColorMatrix</code></li> + <li><code>feConvolveMatrix</code></li> + <li><code>feComponentTransfer</code>, <code>feFuncR</code>, <code>feFuncG</code>, <code>feFuncB</code>, <code>feFuncA</code></li> + <li><code>feComposite</code></li> + <li><code>feConvolveMatrix</code></li> + <li><code>feDiffuseLighting</code></li> + <li><code>feDisplacementMap</code></li> + <li><code>feDistantLight</code></li> + <li><code>feFlood</code></li> + <li><code>feGaussianBlur</code></li> + <li><code>feImage</code></li> + <li><code>feMerge</code>, <code>feMergeNode</code></li> + <li><code>feMorphology</code></li> + <li><code>feOffset</code></li> + <li><code>fePointLight</code></li> + <li><code>feSpecularLighting</code></li> + <li><code>feTurbulence</code></li> + <li><code>feTile</code></li> + </ul> + </li> + <li>L'élément <code><a></code> géré dans SVG comportent plusieurs bogues résolus : consultez {{ Bug(267664) }}, {{ Bug(268135) }}, {{ Bug(316248) }}, {{ Bug(317270) }} et {{ Bug(320724) }}.</li> + <li>Les méthodes DOM SVG <code>getNumberOfChars()</code>, <code>getComputedTextLength()</code>, <code>getSubStringLength()</code>, <code>getStartPositionOfChar()</code>, <code>getEndPositionOfChar()</code>, <code>getRotationOfChar()</code>, et <code>getCharNumAtPosition()</code> ont été implentées.</li> + <li>support de l'attribut <code>xml:space</code> (<a class="external" href="http://www.w3.org/TR/SVG/text.html#WhiteSpace">spécification</a>)</li> + <li>Les transitions <code>fill</code>/<code>stroke</code> sont à présent supportées (<a class="external" href="http://www.w3.org/TR/SVG/painting.html#SpecifyingPaint">spécification</a>)</li> + <li>Les unités <code>em</code> et <code>ex</code> sont à présent supportées pour l'indication de longueurs ({{ Bug(305859) }}).</li> +</ul> + +<h3 id="Voir_.C3.A9galement" name="Voir_.C3.A9galement">Voir également</h3> + +<ul> + <li><a href="fr/SVG">SVG</a></li> + <li><a href="fr/SVG_dans_Firefox">SVG dans Firefox</a></li> + <li><a href="fr/Firefox_3_pour_les_d%c3%a9veloppeurs">Firefox 3 pour les développeurs</a></li> +</ul> + +<p> </p> + +<p> </p> + +<div class="noinclude"> </div> + +<p>{{ languages( { "en": "en/SVG_improvements_in_Firefox_3", "es": "es/Mejoras_SVG_en_Firefox_3", "ja": "ja/SVG_improvements_in_Firefox_3", "pl": "pl/Poprawki_SVG_w_Firefoksie_3" } ) }}</p> diff --git a/files/fr/mozilla/firefox/releases/3/updating_extensions/index.html b/files/fr/mozilla/firefox/releases/3/updating_extensions/index.html new file mode 100644 index 0000000000..9b5be44197 --- /dev/null +++ b/files/fr/mozilla/firefox/releases/3/updating_extensions/index.html @@ -0,0 +1,219 @@ +--- +title: Mise à jour des extensions pour Firefox 3 +slug: Mise_à_jour_des_extensions_pour_Firefox_3 +tags: + - Firefox 3 +translation_of: Mozilla/Firefox/Releases/3/Updating_extensions +--- +<div><section class="Quick_links" id="Quick_Links"> + <ol> + <li class="toggle"> + <details> + <summary>Notes de versions pour développeurs</summary> + <ol> + <li><a href="/fr/docs/Mozilla/Firefox/Releases">Notes de versions pour développeurs</a></li> + </ol> + </details> + </li> + <li class="toggle"> + <details> + <summary>Modules complémentaires</summary> + <ol> + <li><a href="/fr/Add-ons/WebExtensions">WebExtensions</a></li> + <li><a href="/fr/Add-ons/Themes">Thèmes</a></li> + </ol> + </details> + </li> + <li class="toggle"> + <details> + <summary>Fonctionnement interne de Firefox</summary> + <ol> + <li><a href="/fr/docs/Mozilla/">Le projet Mozilla</a></li> + <li><a href="/fr/docs/Mozilla/Gecko">Gecko</a></li> + <li><a href="/fr/docs/Mozilla/Firefox/Headless_mode">Mode « headless »</a></li> + <li><a href="/fr/docs/Mozilla/JavaScript_code_modules">Modules de code Javascript</a></li> + <li><a href="/fr/docs/Mozilla/js-ctypes">JS-ctypes</a></li> + <li><a href="/fr/docs/Mozilla/MathML_Project">Le projet MathML</a></li> + <li><a href="/fr/docs/Mozilla/MFBT">MFBT</a></li> + <li><a href="/fr/docs/Mozilla/Projects">Les projets Mozilla</a></li> + <li><a href="/fr/docs/Mozilla/Preferences">Le système de préférences</a></li> + <li><a href="/fr/docs/Mozilla/WebIDL_bindings">Connexions WebIDL</a></li> + <li><a href="/fr/docs/Mozilla/Tech/XPCOM">XPCOM</a></li> + <li><a href="/fr/docs/Mozilla/Tech/XUL">XUL</a></li> + </ol> + </details> + </li> + <li class="toggle"> + <details> + <summary>Développer et contribuer</summary> + <ol> + <li><a href="/fr/docs/Mozilla/Developer_guide/Build_Instructions">Instructions de compilation</a></li> + <li><a href="/fr/docs/Mozilla/Developer_guide/Build_Instructions/Configuring_Build_Options">Configuration des options de compilation</a></li> + <li><a href="/fr/docs/Mozilla/Developer_guide/Build_Instructions/How_Mozilla_s_build_system_works">Fonctionnement de la compilation</a></li> + <li><a href="/fr/docs/Mozilla/Developer_guide/Source_Code/Mercurial">Code source de Mozilla</a></li> + <li><a href="/fr/docs/Mozilla/Localization">Localisation</a></li> + <li><a href="/fr/docs/Mozilla/Mercurial">Mercurial</a></li> + <li><a href="/fr/docs/Mozilla/QA">Assurance qualité</a></li> + <li><a href="/fr/docs/Mozilla/Using_Mozilla_code_in_other_projects">Utilisation de code Mozilla dans d'autres projets</a></li> + </ol> + </details> + </li> + </ol> +</section></div> + +<p> Cet article fournit des informations qui seront utiles pour les développeurs désirant mettre à jour leurs extensions pour qu'elles fonctionnent correctement avec Firefox 3.</p> + +<p>Avant d'aller plus loin, voici une indication utile : si la seule modification dont votre extension a besoin est une mise à jour du champ <code>maxVersion</code> dans son manifeste d'installation, et que celle-ci est hébergée sur <a class="link-https" href="https://addons.mozilla.org">addons.mozilla.org</a>, il n'est pas vraiment nécessaire de renvoyer une nouvelle version de votre extension ! Utilisez simplement le Developer Control Panel sur AMO pour ajuster la valeur de <code>maxVersion</code>. Cela vous évitera également la revérification de votre extension.</p> + +<h3 id="Premi.C3.A8re_.C3.A9tape__mise_.C3.A0_jour_du_manifeste_d.27installation" name="Premi.C3.A8re_.C3.A9tape_:_mise_.C3.A0_jour_du_manifeste_d.27installation">Première étape : mise à jour du manifeste d'installation</h3> + +<p>La première étape — et pour la plupart des extensions la seule qui sera nécessaire — est de mettre à jour le fichier de <a href="/fr/Manifestes_d'installation" title="fr/Manifestes_d'installation">manifeste d'installation</a>, <code>install.rdf</code>, pour indiquer sa compatibilité avec Firefox 3.</p> + +<p>Trouvez simplement la ligne indiquant la version maximale compatible de Firefox (qui, pour Firefox 2, ressemblait probablement à ceci) :</p> + +<pre class="eval"> <span class="nowiki"><em:maxVersion>2.0.*</em:maxVersion></span> +</pre> + +<p>Modifiez-la pour indiquer la compatibilité avec Firefox 3 :</p> + +<pre class="eval"> <span class="nowiki"><em:maxVersion>3.0.*</em:maxVersion></span> +</pre> + +<p>Et réinstallez ensuite votre extension.</p> + +<p>Notez que Firefox 3 n'a plus besoin d'un « .0 » supplémentaire dans son numéro de version, donc au lieu d'utiliser « 3.0.0.* », il ne faut plus indiquer que « 3.0.* ».</p> + +<div class="blockIndicator note"><strong>Note :</strong> Notez qu'à ce point, il faut s'attendre à d'autres changements dans Firefox 3. Ceux-ci peuvent poser des problèmes à certaines extensions, il faut donc éviter de publier une extension avec la valeur <code>3.0.0.*</code> pour <code>maxVersion</code> avant que la RC de Firefox 3 soit disponible. Durant la pariode beta de Firefox 3, il convient d'utiliser <code>3.0b5</code> comme valeur de <code>maxVersion</code>.</div> + +<p>Il y a eu (et il y aura encore) un certain nombre de changements dans les API qui poseront probablement des problèmes à certaines. Nous sommes encore en train d'établir une liste complète de ces changements.</p> + +<div class="blockIndicator note"><strong>Note :</strong> Si votre extension utilise toujours un script <code><a href='\"fr/Install.js\"'>Install.js</a></code> plutôt qu'un <a href="\"fr/Manifestes_d\'installation\"">manifeste d'installation</a>, il vous faudra faire la transition vers un manifeste d'installation maintenant. Firefox 3 ne gère plus les scripts <code>install.js</code> dans les fichiers XPI.</div> + +<h4 id="Ajout_de_localisations_au_manifeste_d.27installation" name="Ajout_de_localisations_au_manifeste_d.27installation">Ajout de localisations au manifeste d'installation</h4> + +<p>Firefox 3 permet d'utiliser de nouvelles propriétés dans le manifeste d'installation pour spécifier des descriptions localisées. Les anciennes méthodes continuent à fonctionner, mais la nouvelle permet à Firefox de charger les localisations même lorsque le module complémentaire est désactivé ou sur le point d'être installé. Consultez <a href="/fr/Localisation_des_descriptions_d'extensions" title="fr/Localisation_des_descriptions_d'extensions">Localisation des descriptions d'extensions</a> pour plus de détails.</p> + +<h3 id="Deuxi.C3.A8me_.C3.A9tape__s.27assurer_de_fournir_des_mises_.C3.A0_jour_s.C3.A9curis.C3.A9es" name="Deuxi.C3.A8me_.C3.A9tape_:_s.27assurer_de_fournir_des_mises_.C3.A0_jour_s.C3.A9curis.C3.A9es">Deuxième étape : s'assurer de fournir des mises à jour sécurisées</h3> + +<p>Si vous hébergez des modules complémentaires vous-mêmes et pas sur un fournisseur d'hébergement sécurisé comme <a class="link-https" href="https://addons.mozilla.org">addons.mozilla.org</a>, vous devrez fournir une méthode sécurisée de mise à jour pour vos modules. Pour ce faire, il faudrait soit héberger vos mises à jour sur un site SSL, ou utiliser des clés cryptographiques pour signer les informations de mise à jour. Consultez <a href="/fr/Versions_d'une_extension,_mise_à_jour_et_compatibilité#Mises_.C3.A0_jour_s.C3.A9curis.C3.A9es" title="fr/Versions_d'une_extension,_mise_à_jour_et_compatibilité#Mises_.C3.A0_jour_s.C3.A9curis.C3.A9es">Mises à jour sécurisées</a> pour plus d'informations.</p> + +<h3 id="Troisi.C3.A8me_.C3.A9tape__s.27occuper_des_changements_d.27API" name="Troisi.C3.A8me_.C3.A9tape_:_s.27occuper_des_changements_d.27API">Troisième étape : s'occuper des changements d'API</h3> + +<p>Plusieurs API ont changé de manière significative. Les changements les plus importants, qui affecteront probablement un grand nombre d'extensions, sont les suivants :</p> + +<h4 id="DOM" name="DOM">DOM</h4> + +<p>Les nœuds provenant de documents externes doivent être clonés à l'aide de <a href="/fr/docs/Web/API/Document/importNode" title="La méthode Document importNode() crée une nouvelle copie du Node ou DocumentFragment spécifié à partir d'un autre document, afin qu'il puisse être inséré dans le document actuel. Il n'est pas encore inclus dans l'arbre des documents; Pour ce faire, vous devez appeler une méthode telle que appendChild () ou insertBefore ()."><code>document.importNode()</code></a> (ou adoptés avec + <a href="/fr/docs/Web/API/Document/adoptNode" title="Adopte un noeud. Le noeud (et son sous-arbre) est supprimé du document dans lequel il se trouve (le cas échéant) et son ownerDocument (document propriétaire) est remplacé par le document en cours. Le noeud peut ensuite être inséré dans le document en cours."><code>document.adoptNode()</code></a>) avant de pouvoir être insérés dans le document courant. Pour en savoir plus sur les problèmes + de <a href="/fr/docs/Web/API/Node/ownerDocument" title="La propriété en lecture seule Node.ownerDocument renvoie l'objet document de niveau supérieur pour ce nœud."><code>Node.ownerDocument</code></a>, consultez la <a class="external" href="http://www.w3.org/DOM/faq.html#ownerdoc" rel="noopener">FAQ DOM du W3C</a> (en anglais).</p> + + <p>Gecko n'obligeait pas à utiliser <a href="/fr/docs/Web/API/Document/importNode" title="La méthode Document importNode() crée une nouvelle copie du Node ou DocumentFragment spécifié à partir d'un autre document, afin qu'il puisse être inséré dans le document actuel. Il n'est pas encore inclus dans l'arbre des documents; Pour ce faire, vous devez appeler une méthode telle que appendChild () ou insertBefore ()."><code>document.importNode()</code></a> et <a href="/fr/docs/Web/API/Document/adoptNode" title="Adopte un noeud. Le noeud (et son sous-arbre) est supprimé du document dans lequel il se trouve (le cas échéant) et son ownerDocument (document propriétaire) est remplacé par le document en cours. Le noeud peut ensuite être inséré dans le document en cours."><code>document.adoptNode()</code></a> avant sa version 1.9. Depuis les versions 1.9 + alphas, si un nœud n'est pas adopté ou importé avant d'être utilisé dans un autre document, l'exception + <code>WRONG_DOCUMENT_ERR</code> est déclenchée (<code>NS_ERROR_DOM_WRONG_DOCUMENT_ERR</code>). implémentation dans le <a class="external" href="https://bugzilla.mozilla.org/show_bug.cgi?id=47903" rel="noopener" title="FIXED: WRONG_DOCUMENT_ERR not being thrown">bug 47903</a>.</p> + + +<h4 id="Marque-pages_et_historique" name="Marque-pages_et_historique">Marque-pages et historique</h4> + +<p>Si votre extension accède aux marque-pages ou à des données de l'historique d'une manière ou d'une autre, elle devra être substantiellement modifiée pour être compatible avec Firefox 3. Les anciennes API pour accéder à ces informations ont été remplacées par la nouvelle architecture <a href="/fr/Places" title="fr/Places">Places</a>. Consultez le <a href="/fr/Guide_de_migration_vers_Places" title="fr/Guide_de_migration_vers_Places">Guide de migration vers Places</a> pour des détails sur la mise à jour de vos extensions existantes en utilisant l'API Places.</p> + +<h4 id="Gestionnaire_de_t.C3.A9l.C3.A9chargement" name="Gestionnaire_de_t.C3.A9l.C3.A9chargement">Gestionnaire de téléchargement</h4> + +<p>L'API du gestionnaire de téléchargement a légèrement changé suite à la transition d'un stockage de données RDF vers l'API <a href="/fr/Storage" title="fr/Storage">Storage</a>. La transition devrait être très facile à faire. En outre, l'API permettant d'examiner la progression des téléchargements a été modifiée pour permettre l'existence de plusieurs écouteurs sur le gestionnaire de téléchargement. Consultez <code><a href="/fr/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIDownloadManager" title="">nsIDownloadManager</a></code>, <code><a href="/fr/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIDownloadProgressListener" title="">nsIDownloadProgressListener</a></code> et <a href="/fr/Surveillance_de_téléchargements" title="fr/Surveillance_de_téléchargements">Surveillance de téléchargements</a> pour plus d'informations.</p> + +<h4 id="Gestionnaire_de_mots_de_passe" name="Gestionnaire_de_mots_de_passe">Gestionnaire de mots de passe</h4> + +<p>Si votre extension accède à des informations d'identification à l'aide du Gestionnaire de mots de passe, elle devra être adaptée pour utiliser la nouvelle API du gestionnaire d'identification.</p> + +<ul> + <li>L'article <a href="/fr/Utilisation_de_nsILoginManager" title="fr/Utilisation_de_nsILoginManager">Utilisation de nsILoginManager</a> fournit des exemples, dont une démonstration d'écriture d'extension fonctionnant à la fois avec le Gestionnaire de mots de passe et le Gestionnaire d'identification, afin qu'elle fonctionne tant avec Firefox que dans les versions précédentes.</li> + <li><code><a href="/fr/NsILoginInfo" title="fr/NsILoginInfo">nsILoginInfo</a></code></li> + <li><code><a href="/fr/NsILoginManager" title="fr/NsILoginManager">nsILoginManager</a></code></li> +</ul> + +<p>Il est également possible de ne pas utiliser le stockage du gestionnaire de mots de passe intégré si vous désirez fournir votre propre implémentation de stockage de mots de passe dans vos extensions. Consultez <a href="/fr/Création_d'un_module_de_stockage_du_gestionnaire_d'identification" title="fr/Création_d'un_module_de_stockage_du_gestionnaire_d'identification">Création d'un module de stockage du gestionnaire d'identification</a> pour plus de détails.</p> + +<h4 id="Popups_.28menus.2C_menus_contextuels.2C_bulles_d.27information_et_panneaux.29" name="Popups_.28menus.2C_menus_contextuels.2C_bulles_d.27information_et_panneaux.29">Popups (menus, menus contextuels, bulles d'information et panneaux)</h4> + +<p>Le système de popups XUL a été modifié de manière importante dans Firefox 3. Celui-ci gère les menus principaux, les menus contextuels et les panneaux d'information. Un guide d'<a href="/fr/XUL/Guide_des_popups" title="fr/XUL/Guide_des_popups">utilisation des popups</a> a été créé pour expliquer en détail le fonctionnement du système. Une chose à noter est l'obsolescence de <code>popup.<span id="m-showPopup"><code><a href="https://developer.mozilla.org/fr/docs/Mozilla/Tech/XUL/Méthodes/showPopup">showPopup</a></code></span></code> en faveur des nouvelles méthodes <code>popup.<span id="m-openPopup"><code><a href="https://developer.mozilla.org/fr/docs/Mozilla/Tech/XUL/Méthodes/openPopup">openPopup</a></code></span></code> et <code>popup.<span id="m-openPopupAtScreen"><code><a href="https://developer.mozilla.org/fr/docs/Mozilla/Tech/XUL/Méthodes/openPopupAtScreen">openPopupAtScreen</a></code></span></code>.</p> + +<h4 id="Compl.C3.A9ment_automatique" name="Compl.C3.A9ment_automatique">Complément automatique</h4> + +<p>La méthode <code><a href="/fr/NsIAutoCompleteController#handleEnter.28.29" title="fr/NsIAutoCompleteController#handleEnter.28.29">handleEnter()</a></code> de l'interface <code><a href="/fr/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIAutoCompleteController" title="">nsIAutoCompleteController</a></code> a été modifiée pour accepter un paramètre indiquant si le texte a été sélectionné depuis le popup de complément automatique ou par l'appui sur la touche Entrée par l'utilisateur après avoir saisi le texte.</p> + +<h4 id="DOMParser" name="DOMParser">DOMParser</h4> + +<ul> + <li>Lorsqu'un objet <code>DOMParser</code> est instancié, il hérite du principal du code appelant et des valeurs <code>documentURI</code> et <code>baseURI</code> de la fenêtre dont le constructeur venait.</li> + <li>Si l'appelant a des privilèges UniversalXPConnect, il peut fournir des paramètres à <code>new DOMParser()</code>. Si moins de trois paramètres sont fournis, les paramètres restants prendront la valeur <code>null</code> par défaut. + <ul> + <li>Le premier paramètre est le principal à utiliser ; il remplace le principal par défaut normalement hérité.</li> + <li>Le second paramètre est la valeur <code>documentURI</code> à utiliser.</li> + <li>Le troisième paramètre est la valeur <code>baseURI</code> à utiliser.</li> + </ul> + </li> + <li>Si vous initialisez un <code>DOMParser</code> à l'aide d'un contrat, comme en appelant <code>createInstance()</code>, et que vous n'appelez pas la méthode <code>init()</code> de <code>DOMParser</code>, toute tentative de démarrer une opération d'analyse créera et initialisera automatiquement le <code>DOMParser</code> avec un principal à null et des pointeurs <code>null</code> pour <code>documentURI</code> et <code>baseURI</code>.</li> +</ul> + +<h4 id="Interfaces_supprim.C3.A9es" name="Interfaces_supprim.C3.A9es">Interfaces supprimées</h4> + +<p>Les interfaces suivantes ont été retirées de Gecko 1.9, sur lequel se base Firefox 3. Si votre extension utilise l'une ou l'autre d'entre-elles, vous devrez mettre à jour votre code :</p> + +<ul> + <li><code>nsIDOMPaintListener</code></li> + <li><code>nsIDOMScrollListener</code></li> + <li><code>nsIDOMMutationListener</code></li> + <li><code>nsIDOMPageTransitionListener</code></li> + <li><code>nsICloseAllWindows</code> (voir le <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=386200" title='FIXED: SeaMonkey only: no "view cert button" in untrusted cert error dialog'>bug 386200</a>)</li> +</ul> + +<h3 id="Quatri.C3.A8me_.C3.A9tape__v.C3.A9rifier_les_changements_chrome_appropri.C3.A9s" name="Quatri.C3.A8me_.C3.A9tape_:_v.C3.A9rifier_les_changements_chrome_appropri.C3.A9s">Quatrième étape : vérifier les changements chrome appropriés</h3> + +<p>Un changement mineur dans le chrome pourrait nécessiter des changements dans votre code. Un nouveau <code>vbox</code> a été ajouté, appelé « browser-bottombox », qui comprend la Barre de recherche et la Barre d'état en bas de la fenêtre de navigation. Bien que ceci n'affecte pas l'apparence de l'affichage, votre extension peut être affectée si elle utilise des overlays chrome relatifs à ces éléments.</p> + +<p>Par exemple, si vous faisiez précédemment un overlay chrome avant la Barre d'état, comme ceci :</p> + +<pre><window id="main-window"> + <something insertbefore="status-bar" /> +</window> +</pre> + +<p>Vous devrez à présent le faire comme ceci :</p> + +<pre><vbox id="browser-bottombox"> + <something insertbefore="status-bar" /> +</vbox> +</pre> + +<p>Ou utilisez la technique suivante pour que votre overlay fonctionne tant avec Firefox 2 que Firefox 3 :</p> + +<pre><window id="main-window"> + <vbox id="browser-bottombox" insertbefore="status-bar"> + <something insertbefore="status-bar" /> + <vbox> +</window> +</pre> + +<div class="blockIndicator note"><strong>Note :</strong> Ce changement s'applique à partir de Firefox 3 beta 4 et des nightlies précédentes.</div> + +<h3 id="Autres_changements" name="Autres_changements">Autres changements</h3> + +<p><em>Ajoutez ici les changements simples que vous avez dû faire à vos extensions pour qu'elles fonctionnent avec Firefox 3.</em></p> + +<ul> + <li><code><a class="external" rel="freelink">chrome://browser/base/utilityOverlay.js</a></code> n'est plus géré pour des raisons de sécurité. Si vous l'utilisiez auparavant, vous devriez passer à <code><a class="external" rel="freelink">chrome://browser/content/utilityOverlay.js</a></code>.</li> + <li>Les implémentations de <code><a href="/fr/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIAboutModule" title="">nsIAboutModule</a></code> doivent à présent supporter la méthode <code>getURIFlags</code>. Consultez <a href="https://dxr.mozilla.org/mozilla-central/source/netwerk/protocol/about/public/nsIAboutModule.idl" rel="custom">nsIAboutModule.idl</a> pour la documentation. Ceci affecte les extensions qui fournissent de nouvelles URI <code>about:</code>. (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=337746" title='FIXED: [FIX]Move "safe about" hardcoding out of security manager'>bug 337746</a>)</li> + <li>L'élément <code><a href="/fr/docs/Mozilla/Tech/XUL/tabbrowser" title="tabbrowser">tabbrowser</a></code> ne fait plus partie du « toolkit » (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=339964" title="FIXED: move tabbrowser.xml out of mozilla/toolkit and into mozilla/browser">bug 339964</a>). Cela signifie qu'il n'est plus disponible pour les applications XUL et extensions. Il continue cependant à être utilisé dans la fenêtre principale de Firefox (browser.xul).</li> + <li>Les changements dans les <a href="/fr/Proxys_nsISupports" title="fr/Proxys_nsISupports">proxys nsISupports</a> et éventuellement aux interfaces liées aux threads doivent être documentés.</li> + <li>Si vous utilisez des instructions de traitement XML comme <code><?xml-stylesheet ?></code> dans vos fichiers XUL, tenez compte des changements effectués dans le <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=319654" title="FIXED: Processing instructions in XUL are not added to the content model">bug 319654</a> : + <ol> + <li>Les instructions de traitement XML sont à présent ajoutées au DOM des documents XUL. Cela signifie que <a href="/fr/docs/Web/API/Document/firstChild" title="Cette documentation n'a pas encore été rédigée, vous pouvez aider en contribuant !"><code>document.firstChild</code></a> n'est plus forcément l'élément racine. Si vous avez besoin de l'élément racine dans votre script, utilisez plutôt <a href="/fr/docs/Web/API/Document/documentElement" title="Document.documentElementrenvoie l'Element qui est l'élément racine du document (par exemple, l'élément <html> pour les documents HTML)."><code>document.documentElement</code></a>.</li> + <li>Les instructions de traitement <code><?xml-stylesheet ?></code> et <code><?xul-overlay ?></code> n'ont plus d'effet en dehors du prologue du document.</li> + </ol> + </li> + <li><code>window.addEventListener("load", myFunc, true)</code> n'est pas déclenché au chargement de contenu web (chargement de page dans le navigateur). Ceci est causé par le <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=296639" title="FIXED: Split windows into an inner and outer object">bug 296639</a> qui modifie la manière dont les fenêtres internes et externes communiquent. Une correction simple est d'utiliser <code>gBrowser.addEventListener("load", myFunc, true)</code> comme décrit dans <a href="/fr/Extraits_de_code/Onglets_de_navigation#D.C3.A9tection_du_chargement_d.27une_page" title="fr/Extraits_de_code/Onglets_de_navigation#D.C3.A9tection_du_chargement_d.27une_page">les exemples de code</a> et qui fonctionnera dans Firefox 2 également.</li> + <li><code>content.window.getSelection()</code> fournit un objet (qui peut être converti en une chaîne avec <code>toString()</code>), contrairement à l'ancienne <code>content.document.getSelection()</code>, à présent dépréciée, qui renvoie une chaîne.</li> + <li><code>event.preventBubble()</code> avait été dépréciée dans Firefox 2 et a été retirée de Firefox 3. Utilisez <a href="/fr/DOM/event.stopPropagation" title="fr/DOM/event.stopPropagation"><code>event.stopPropagation()</code></a>, qui fonctionne également dans Firefox 2.</li> + <li>Les timers initialisés par<code>setTimeout()</code> sont à présent bloqués par les fenêtres modales suite à la correction du <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=52209" title="FIXED: JS timers can fire while a modal dialog is open">bug 52209</a>. Vous pouvez utiliser <code>nsITimer</code> à la place.</li> + <li>Si votre extension doit permettre à une source non sûre (par exemple un site web) d'accéder au chrome de l'extension, vous devrez utiliser le nouveau paramètre <a href="/fr/Enregistrement_chrome#contentaccessible" title="fr/Enregistrement_chrome#contentaccessible"><code>contentaccessible</code></a>.</li> + <li>FireFox 3.6 est sensible aux accents dans les pages XUL ! Il faut donc soigneusement enlever toute ponctuation, même dans les commentaires.</li> +</ul> diff --git a/files/fr/mozilla/firefox/releases/3/updating_web_applications/index.html b/files/fr/mozilla/firefox/releases/3/updating_web_applications/index.html new file mode 100644 index 0000000000..993a2db147 --- /dev/null +++ b/files/fr/mozilla/firefox/releases/3/updating_web_applications/index.html @@ -0,0 +1,95 @@ +--- +title: Mise à jour des applications Web pour Firefox 3 +slug: Mise_à_jour_des_applications_Web_pour_Firefox_3 +tags: + - Firefox 3 +translation_of: Mozilla/Firefox/Releases/3/Updating_web_applications +--- +<div>{{FirefoxSidebar}}</div> + +<p>{{ Fx_minversion_header(3) }} Un certain nombre de changements présents dans Firefox 3 pourraient affecter votre site ou application Web. Vous pourriez en outre tirer parti de plusieurs de ses nouvelles fonctionnalités. Cet article servira de point de départ au fur et à mesure de la mise à jour de votre contenu pour bénéficier au maximum des possibilités de Firefox 3.</p> + +<h3 id="Changements_dans_le_DOM" name="Changements_dans_le_DOM">Changements dans le DOM</h3> + +<p></p><p>Les nœuds provenant de documents externes doivent être clonés à l'aide de <a href="/fr/docs/Web/API/Document/importNode" title="La méthode Document importNode() crée une nouvelle copie du Node ou DocumentFragment spécifié à partir d'un autre document, afin qu'il puisse être inséré dans le document actuel. Il n'est pas encore inclus dans l'arbre des documents; Pour ce faire, vous devez appeler une méthode telle que appendChild () ou insertBefore ()."><code>document.importNode()</code></a> (ou adoptés avec + <a href="/fr/docs/Web/API/Document/adoptNode" title="Adopte un noeud. Le noeud (et son sous-arbre) est supprimé du document dans lequel il se trouve (le cas échéant) et son ownerDocument (document propriétaire) est remplacé par le document en cours. Le noeud peut ensuite être inséré dans le document en cours."><code>document.adoptNode()</code></a>) avant de pouvoir être insérés dans le document courant. Pour en savoir plus sur les problèmes + de <a href="/fr/docs/Web/API/Node/ownerDocument" title="La propriété en lecture seule Node.ownerDocument renvoie l'objet document de niveau supérieur pour ce nœud."><code>Node.ownerDocument</code></a>, consultez la <a class="external" href="http://www.w3.org/DOM/faq.html#ownerdoc" rel="noopener">FAQ DOM du W3C</a> (en anglais).</p> + + <p>Gecko n'obligeait pas à utiliser <a href="/fr/docs/Web/API/Document/importNode" title="La méthode Document importNode() crée une nouvelle copie du Node ou DocumentFragment spécifié à partir d'un autre document, afin qu'il puisse être inséré dans le document actuel. Il n'est pas encore inclus dans l'arbre des documents; Pour ce faire, vous devez appeler une méthode telle que appendChild () ou insertBefore ()."><code>document.importNode()</code></a> et <a href="/fr/docs/Web/API/Document/adoptNode" title="Adopte un noeud. Le noeud (et son sous-arbre) est supprimé du document dans lequel il se trouve (le cas échéant) et son ownerDocument (document propriétaire) est remplacé par le document en cours. Le noeud peut ensuite être inséré dans le document en cours."><code>document.adoptNode()</code></a> avant sa version 1.9. Depuis les versions 1.9 + alphas, si un nœud n'est pas adopté ou importé avant d'être utilisé dans un autre document, l'exception + <code>WRONG_DOCUMENT_ERR</code> est déclenchée (<code>NS_ERROR_DOM_WRONG_DOCUMENT_ERR</code>). implémentation dans le <a class="external" href="https://bugzilla.mozilla.org/show_bug.cgi?id=47903" rel="noopener" title="FIXED: WRONG_DOCUMENT_ERR not being thrown">bug 47903</a>.</p><p></p> + + +<h3 id="Changements_li.C3.A9s_.C3.A0_HTML" name="Changements_li.C3.A9s_.C3.A0_HTML">Changements liés à HTML</h3> + +<h4 id="Changements_dans_l.27h.C3.A9ritage_des_jeux_de_caract.C3.A8res" name="Changements_dans_l.27h.C3.A9ritage_des_jeux_de_caract.C3.A8res">Changements dans l'héritage des jeux de caractères</h4> + +<p>Firefox 3 corrige un bug de sécurité dans les éléments <code>frame</code> et <code>iframe</code> qui leur permettait d'hériter du jeu de caractères de leur parent. Cela pouvait poser des problèmes dans certains cas. À présent, les cadres ne peuvent hériter du jeu de caractère de leur parent que si tant le cadre que le parent sont chargés depuis le même serveur. Si vous avez des pages qui dépendent du fait que les cadres chargés depuis d'autres serveurs hériteront du même jeu de caractères, leurs balisage HTML devra être mis à jour pour indiquer leur jeu de caractères plus précisément.</p> + +<h4 id="Changements_concernant_l.27.C3.A9l.C3.A9ment_SCRIPT" name="Changements_concernant_l.27.C3.A9l.C3.A9ment_SCRIPT">Changements concernant l'élément SCRIPT</h4> + +<p>L'élément <span class="nowiki"><script></span> dans les documents HTML servis en mode <code>text/html</code> doit à présent être obligatoirement accompagné d'une balise fermante <span class="nowiki"></script></span>, même si aucun contenu n'est fourni entre les deux balises. Dans les versions précédentes de Firefox, il était possible de faire ceci :</p> + +<pre class="eval"><script ... /> +</pre> + +<p>Le balisage doit à présent respecter les spécifications HTML (si c'est effectivement du HTML), il devient donc obligatoire de placer une balise de fermeture séparément, comme ceci :</p> + +<pre class="eval"><script ...></script> +</pre> + +<p>Ce changement améliore tant la compatibilité que la sécurité.</p> + +<h3 id="Changements_li.C3.A9s_.C3.A0_CSS" name="Changements_li.C3.A9s_.C3.A0_CSS">Changements liés à CSS</h3> + +<h4 id="Changements_concernant_les_tailles_de_police_bas.C3.A9es_sur_les_unit.C3.A9s_em_et_ex" name="Changements_concernant_les_tailles_de_police_bas.C3.A9es_sur_les_unit.C3.A9s_em_et_ex">Changements concernant les tailles de police basées sur les unités em et ex</h4> + +<p>Les valeurs de taille de police (<code>font-size</code>) utilisant les unités em et ex étaient auparavant affectées selon la taille de police minimale spécifiée par l'utilisateur : si une police était affichée plus grande à cause de la taille de police minimale, les unités em et ex pour les tailles de police étaient adaptées en fonction. Ce comportement était incohérent avec la manière dont les tailles de police en pourcentage fonctionnaient.</p> + +<p>Les valeurs de <code>font-size</code> sont à présent basées sur une « taille de police désirée » qui n'est pas affectée par la taille minimale de police de l'utilisateur. Autrement dit, les tailles de police sont toujours calculées selon l'intention du concepteur du site et ne sont ajustées selon la taille de police minimale qu'après coup.</p> + +<p>Consultez le {{ Bug(322943) }} pour une démonstration (doit être visionnée avec une taille de police minimale supérieure ou égale à 6 pour voir la différence : les deux cascades de boîtes se comportent différemment dans Firefox 2, car la taille de police basée sur des unités em est décalée par la taille de police minimale).</p> + +<h3 id="Changements_concernant_la_s.C3.A9curit.C3.A9" name="Changements_concernant_la_s.C3.A9curit.C3.A9">Changements concernant la sécurité</h3> + +<h4 id="Acc.C3.A8s_au_chrome" name="Acc.C3.A8s_au_chrome">Accès au chrome</h4> + +<p>Dans les versions précédentes de Firefox, toute page web pouvait charger des scripts ou des images depuis le chrome à l'aide du protocole <a class="external" rel="freelink">chrome://</a>. Cela permettait entre autres à des sites de détecter la présence de certains modules complémentaires — ce qui pourrait être utilisé pour compromettre la sécurité d'un utilisateur en contournant des modules ajoutant des fonctionnalités de sécurité au navigateur.</p> + +<p>Firefox 3 ne permet plus au contenu web que d'accéder aux éléments dans les espaces <a class="external" rel="freelink">chrome://browser/</a> et <a class="external" rel="freelink">chrome://toolkit/</a>. Ces fichiers sont prévus pour être accessibles au contenu web. Tous les autres contenus chrome y sont par contre à présent inaccessibles.</p> + +<p>Une possibilité existe cependant pour les extensions désirant rendre le contenu accessible aux pages web. Ces extensions peuvent spécifier un paramètre spécial dans leur fichier chrome.manifest comme ceci :</p> + +<pre class="eval">content mypackage location/ contentaccessible=yes +</pre> + +<p>Cette manipulation ne devrait pas être nécessaire la plupart du temps, mais elle existe toutefois pour les rares cas où elle reste indispensable. Notez qu'il n'est pas exclu que Firefox avertisse l'utilisateur de cette utilisation du paramètre <code>contentaccessible</code>, étant donné qu'il constitue un risque potentiel de sécurité.</p> + +<div class="note"><strong>Note :</strong> Firefox 2 ne gérant pas le paramètre contentaccessible (la ligne le contenant sera entièrement ignorée), si vous voulez que votre module reste compatible avec Firefox 2 et Firefox 3, ajoutez plutôt quelque chose comme ceci : + +<pre class="eval">content mypackage location/ +content mypackage location/ contentaccessible=yes +</pre> +</div> + +<h4 id="Champs_d.27envoi_de_fichiers_.28upload.29" name="Champs_d.27envoi_de_fichiers_.28upload.29">Champs d'envoi de fichiers (upload)</h4> + +<p>Dans les versions précédentes de Firefox, un certain nombre de cas existaient où le chemin entier du fichier envoyé par l'utilisateur était lisible par une application web. Pour des raisons de confidentialité, ce n'est plus possible dans Firefox 3 ; à présent seul le nom du fichier lui-même est visible par l'application web.</p> + +<h3 id="Changements_dans_JavaScript" name="Changements_dans_JavaScript">Changements dans JavaScript</h3> + +<p>Firefox 3 intègre <a href="fr/Nouveaut%c3%a9s_dans_JavaScript_1.8">JavaScript 1.8</a>. Un changement important qui pourrait nécessiter une mise à jour de vos sites ou applications Web est que l'objet obsolète et non standard <code>Script</code> n'est plus géré. Il ne s'agit pas de la balise <code><span class="nowiki"><script></span></code> mais d'un objet JavaScript qui n'avait jamais été standardisé. Il est finalement peu probable que vous l'ayez jamais utilisé, et vous n'aurez sans doute aucun problème.</p> + +<h3 id="Voir_.C3.A9galement" name="Voir_.C3.A9galement">Voir également</h3> + +<ul> + <li><a href="fr/Firefox_3_pour_les_d%c3%a9veloppeurs">Firefox 3 pour les développeurs</a></li> + <li><a href="fr/Nouveaut%c3%a9s_dans_JavaScript_1.8">Nouveautés dans JavaScript 1.8</a></li> + <li><a href="fr/Mise_%c3%a0_jour_des_extensions_pour_Firefox_3">Mise à jour des extensions pour Firefox 3</a></li> +</ul> + +<p> </p> + +<div class="noinclude"> </div> + +<p>{{ languages( { "en": "en/Updating_web_applications_for_Firefox_3", "es": "es/Actualizar_aplicaciones_web_para_Firefox_3", "ja": "ja/Updating_web_applications_for_Firefox_3", "pl": "pl/Aktualizacja_aplikacji_internetowych_dla_Firefoksa_3" } ) }}</p> diff --git a/files/fr/mozilla/firefox/releases/3/xul_improvements_in_firefox_3/index.html b/files/fr/mozilla/firefox/releases/3/xul_improvements_in_firefox_3/index.html new file mode 100644 index 0000000000..c509160ae5 --- /dev/null +++ b/files/fr/mozilla/firefox/releases/3/xul_improvements_in_firefox_3/index.html @@ -0,0 +1,95 @@ +--- +title: Améliorations XUL dans Firefox 3 +slug: Améliorations_XUL_dans_Firefox_3 +tags: + - Firefox 3 + - XUL +translation_of: Mozilla/Firefox/Releases/3/XUL_improvements_in_Firefox_3 +--- +<div>{{FirefoxSidebar}}</div><p>{{ Fx_minversion_header(3) }}</p> + +<p>Firefox 3 fournit un certain nombre de nouveaux éléments <a href="/fr/XUL" title="fr/XUL">XUL</a>, ainsi que des améliorations sur des éléments existants. Bien que ces éléments soient documentés ailleurs, cet article offre une liste pratique des améliorations ainsi que des liens vers la documentation détaillée.</p> + +<h3 id="Nouveaux_.C3.A9l.C3.A9ments" name="Nouveaux_.C3.A9l.C3.A9ments">Nouveaux éléments</h3> + +<ul> + <li><a href="/fr/Tutoriel_XUL/Les_contrôles_numériques" title="fr/Tutoriel_XUL/Les_contrôles_numériques">Contrôles numériques</a> : + + <ul> + <li>Le nouvel élément <code><a href="/fr/XUL/scale" title="fr/XUL/scale"><scale></a></code> permet de créer des échelles glissantes permettant à l'utilisateur de sélectionner une valeur dans un intervalle donné. Ce contrôle serait typiquement utilisé, par exemple, pour créer un contrôle de volume. {{ interwiki('wikimo', 'XUL:Slider_Tag', 'Plus d\'informations sur scale') }} <a href="/fr/XUL/scale" title="fr/XUL/scale">Référence de <code>scale</code></a> ({{ Bug(290255) }})</li> + <li>Une nouvelle valeur <code>'number'</code> pour l'attribut <code>type</code> des élément <code>textbox</code> crée une boîte de texte dans laquelle seuls des nombres peuvent être entrés. De plus, des boutons fléchés apparaissent sur le côté permettant de se déplacer parmi les valeurs. {{ interwiki('wikimo', 'XUL:Specs:NumberBox', 'Plus d\'informations sur les boîtes de texte numériques') }} ({{ Bug(345510) }})</li> + <li>Un élément <code><a href="/fr/XUL/spinbuttons" title="fr/XUL/spinbuttons"><spinbuttons></a></code> a été ajouté, qui peut être utilisé pour créer des contrôles à l'aide de liaisons XBL. ({{ Bug(155053) }})</li> + <li>Deux contrôles, <code><a href="/fr/XUL/datepicker" title="fr/XUL/datepicker"><datepicker></a></code> et <code><a href="/fr/XUL/timepicker" title="fr/XUL/timepicker"><timepicker></a></code>, peuvent être utilisés pour permettre l'entrée de dates et d'heures. Le sélecteur de tdate est disponible en plusieurs styles selon l'attribut <code>type</code>, et permet des entrées via des boîtes de texte ou un calendrier. {{ interwiki('wikimo', 'XUL:Specs:DateTimePickers', 'Plus d\'informations sur les sélecteurs de date') }} <a href="/fr/XUL/datepicker" title="fr/XUL/datepicker">Référence sur <code>datepicker</code></a></li> + </ul> + </li> + <li>Un <a href="/fr/XUL/Guide_des_popups" title="fr/XUL/Guide_des_popups">guide</a> a été créé pour décrire les nouvelles fonctionnalités disponibles pour les menus et les popups. + <ul> + <li>Un élément <code><a href="/fr/XUL/dropmarker" title="fr/XUL/dropmarker"><dropmarker></a></code> a été ajouté, qui peut être utile pour créer des contrôles semblables à des menus à l'aide de liaisons XBL. ({{ Bug(348614) }})</li> + <li>Le nouvel élément <code><a href="/fr/XUL/panel" title="fr/XUL/panel"><panel></a></code> est destiné aux popups qui ne sont pas des menus. Il peut supporter n'importe quel type de contenu. L'élément <menupopup> devrait être utilisé pour des menus. Les menus fournissent la navigation par le clavier et l'ouverture/fermeture des sous-menus.</li> + </ul> + </li> +</ul> + +<h3 id="Am.C3.A9liorations_des_arbres" name="Am.C3.A9liorations_des_arbres">Améliorations des arbres</h3> + +<ul> + <li>Il est possible à présent faire défiler des arbres horizontalement. Une barre de défilement horizontal apparaitra si toutes les colonnes n'entrent pas dans la largeur disponible. Cela se produira si la somme des largeurs de colonnes spécifiées est plus grande que l'espace disponible. ({{ Bug(212789) }})</li> + <li>Un nouveau style de sélection permet de sélectionner les cellules individuellement plutôt que des lignes entières. On peut l'utiliser en définissant l'attribut <code>seltype</code> d'un arbre à la valeur <code>'cell'</code>. ({{ Bug(296040) }})</li> + <li>Des cellules individuelles d'un arbre peuvent être modifiées. Un double-clic sur une cellule éditable affichera un champ texte dans lequel l'utilisateur pourra modifier le contenu de la cellule. {{ interwiki('wikimo', 'XUL:Tree', 'Plus de détails') }} ({{ Bug(201499) }})</li> + <li>Les éléments <treecol> supportent maintenant un attribut <code>overflow</code> qui peut être défini à <code>true</code> pour permettre au texte des cellules d'un colonne de déborder dans les cellules vides voisines si le texte est trop grand pour s'afficher dans une seule cellule.</li> +</ul> + +<h3 id="Am.C3.A9liorations_des_menus" name="Am.C3.A9liorations_des_menus">Améliorations des menus</h3> + +<ul> + <li>L'attribut <code>image</code> est utilisé de manière consistante pour définir des images</li> + <li>Les <code>menulist</code> déclenchent l'évènement <code>select</code> lorsqu'un élément est sélectionné</li> + <li>Les propriétés <code>inputField</code> et <code>editable</code> ont été ajoutées à l'élément <code>menulist</code></li> + <li>Les éléments <code><menu></code>, <code><menuitem></code> et <code><menuseparator></code> disposent d'une propriété en lecture seule <code>selected</code> indiquant si l'élément est sélectionné dans une <menulist></li> + <li>Les éléments <code><menu></code>, <code><menuitem></code> et <code><menuseparator></code> disposent d'une propriété en lecture seule <code>control</code> qui renvoie l'élément <menulist> parent</li> + <li>Les éléments <code><menu></code>, <code><menuitem></code> et <code><menuseparator></code> disposent de propriétés <code>accessKey</code>, <code>disabled</code>, <code>crop</code>, <code>image</code> et <code>label</code> permettant de modifier l'attribut correspondant</li> + <li>L'élément <menu> dispose à présent de méthodes pour ajouter, insérer et supprimer des éléments de menu (menuitems). ({{ Bug(372552) }})</li> + <li>Une propriété <code>editor</code> permet d'obtenir le <a href="/fr/NsIEditor" title="fr/NsIEditor">nsIEditor</a> interne pour le champ texte d'un élément <code>menulist</code> modifiable.({{ Bug(312867) }})</li> + <li>Les menus peuvent être rendus translucides sur les plateformes qui le permettent. ({{ Bug(70798) }})</li> +</ul> + +<h3 id="Am.C3.A9liorations_des_bo.C3.AEtes_de_texte" name="Am.C3.A9liorations_des_bo.C3.AEtes_de_texte">Améliorations des boîtes de texte</h3> + +<ul> + <li>En définissant l'attribut <code>spellcheck</code> d'une boîte de texte à <code>'true'</code>, la correction orthographique sera activée pour cette boîte de texte. ({{ Bug(346787) }})</li> + <li>L'élément <code><textbox></code> dispose d'une méthode <code>reset()</code> pour réinitialiser la valeur de la boîte de texte à sa valeur par défaut. La propriété <code>defaultValue</code> peut être utilisée pour retrouver et modifier cette valeur par défaut. ({{ Bug(312867) }})</li> + <li>Une propriété <code>editor</code> permet d'obtenir le <a href="/fr/NsIEditor" title="fr/NsIEditor">nsIEditor</a> internet pour le champ texte. ({{ Bug(312867) }})</li> + <li>textbox dispose d'un attribut <code>newlines</code> spécifiant comment les retours à la ligne dans les textes collés seront traités. ({{ Bug(253481) }}) Les valeurs possibles sont : + <ul> + <li><code>pasteintact</code> — tout coller tel quel</li> + <li><code>pastetofirst</code> — (valeur par défaut) coller uniquement ce qui précède le premier retour à la ligne</li> + <li><code>replacewithspaces</code> — remplacer les retours à la ligne par des espaces</li> + <li><code>replacewithcommas</code> — remplacer les retours à la ligne par des virgules</li> + <li><code>strip</code> — retirer tous les retours à la ligne</li> + <li><code>stripsurroundingwhitespace</code> — retirer tous les retours à la ligne et les blancs qui les entourent</li> + </ul> + </li> +</ul> + +<h3 id="Autres_am.C3.A9liorations" name="Autres_am.C3.A9liorations">Autres améliorations</h3> + +<ul> + <li>L'attribut <code>type</code> d'un élément <code><button></code> peut être défini à <code>'repeat'</code> pour créer des boutons qui se déclenchent régulièrement tant que le bouton est enfoncé. ({{ Bug(331055) }})</li> + <li>L'attribut <code><a href="/fr/XUL/Attributs/buttondisabledaccept" title="fr/XUL/Attributs/buttondisabledaccept">buttondisabledaccept</a></code> peut être utilisé sur l'élément <code><dialog></code> pour que le bouton OK soit initialement désactivé. ({{ Bug(247849) }})</li> + <li>L'élément <code><titlebar></code> dispose d'un attribut <code>allowevents</code> permettant de passer des évènements aux enfants de la barre de titre. ({{ Bug(361425) }})</li> + <li>L'élément <code><splitter></code> dispose d'une valeur supplémentaire <code>'both'</code> pour l'attribut <code>collapse</code> indiquant que le séparateur peut coller les éléments sur les deux côtés lorsqu'il est déplacé. L'attribut <code>substate</code> sera défini soit à <code>before</code>, soit à <code>after</code> lorsque l'un des deux est collé. ({{ Bug(337955) }})</li> + <li>L'élément <code><richlistbox></code> permet les sélections multiples. Définissez l'attribut <code>seltype</code> à <code>'multiple'</code> pour activer cette fonctionnalité.</li> + <li>L'élément <code><radio></code> dispose d'un attribut <code>group</code> permettant de définir l'id de l'élément <code><radiogroup></code> auquel appartient le bouton radio. Cela permet aux boutons radio d'être placés d'une autre manière que de les inclure tous à l'intérieur d'un radiogroup.</li> + <li>Menus, panels et tooltips supportent deux nouvelles méthodes, <code><a href="/fr/XUL/Méthodes/openPopup" title="fr/XUL/Méthodes/openPopup">openPopup()</a></code> et <code><a href="/fr/XUL/Méthodes/openPopupAtScreen" title="fr/XUL/Méthodes/openPopupAtScreen">openPopupAtScreen()</a></code>. Ces méthodes devraient être utilisées à la place de <code>showPopup</code> qui était source de confusion à l'utilisation.</li> + <li>La gestion de l'élément <code><key></code> a été améliorée pour les utilisateurs de claviers non-Latins. Voir <a href="/fr/Évènement_keypress_dans_Gecko" title="fr/Évènement_keypress_dans_Gecko">Évènement keypress dans Gecko</a>.</li> + <li>Sous Mac OS X, les attributs <a href="/fr/XUL/Attributs/activetitlebarcolor" title="fr/XUL/Attributs/activetitlebarcolor">activetitlebarcolor</a> et <a href="/fr/XUL/Attributs/inactivetitlebarcolor" title="fr/XUL/Attributs/inactivetitlebarcolor">inactivetitlebarcolor</a> des éléments racine (<code><window></code>, <code><dialog></code>, <code><prefwindow></code> et <code><wizard></code>) sont disponibles pour personnaliser la couleur de la barre de titre des fenêtres.</li> +</ul> + +<h3 id="Voir_.C3.A9galement" name="Voir_.C3.A9galement">Voir également</h3> + +<ul> + <li><a href="/fr/XUL" title="fr/XUL">XUL</a></li> + <li><a href="/fr/Firefox_3_pour_les_développeurs" title="fr/Firefox_3_pour_les_développeurs">Firefox 3 pour les développeurs</a></li> +</ul> + +<p>{{ languages( { "en": "en/XUL_improvements_in_Firefox_3", "es": "es/Mejoras_XUL_en_Firefox_3", "ja": "ja/XUL_improvements_in_Firefox_3", "pl": "pl/Poprawki_XUL_w_Firefoksie_3" } ) }}</p> diff --git a/files/fr/mozilla/firefox/versions/35/index.html b/files/fr/mozilla/firefox/releases/35/index.html index 12ed5c06b2..12ed5c06b2 100644 --- a/files/fr/mozilla/firefox/versions/35/index.html +++ b/files/fr/mozilla/firefox/releases/35/index.html diff --git a/files/fr/mozilla/firefox/versions/35/site_compatibility/index.html b/files/fr/mozilla/firefox/releases/35/site_compatibility/index.html index 326b53a4b0..326b53a4b0 100644 --- a/files/fr/mozilla/firefox/versions/35/site_compatibility/index.html +++ b/files/fr/mozilla/firefox/releases/35/site_compatibility/index.html diff --git a/files/fr/mozilla/firefox/versions/4/index.html b/files/fr/mozilla/firefox/releases/4/index.html index 050e4cfe06..050e4cfe06 100644 --- a/files/fr/mozilla/firefox/versions/4/index.html +++ b/files/fr/mozilla/firefox/releases/4/index.html diff --git a/files/fr/mozilla/firefox/versions/40/index.html b/files/fr/mozilla/firefox/releases/40/index.html index 82eb7fa6a7..82eb7fa6a7 100644 --- a/files/fr/mozilla/firefox/versions/40/index.html +++ b/files/fr/mozilla/firefox/releases/40/index.html diff --git a/files/fr/mozilla/firefox/versions/40/site_compatibility/index.html b/files/fr/mozilla/firefox/releases/40/site_compatibility/index.html index cbe82d4b21..cbe82d4b21 100644 --- a/files/fr/mozilla/firefox/versions/40/site_compatibility/index.html +++ b/files/fr/mozilla/firefox/releases/40/site_compatibility/index.html diff --git a/files/fr/mozilla/firefox/versions/41/index.html b/files/fr/mozilla/firefox/releases/41/index.html index 8ad0302211..8ad0302211 100644 --- a/files/fr/mozilla/firefox/versions/41/index.html +++ b/files/fr/mozilla/firefox/releases/41/index.html diff --git a/files/fr/mozilla/firefox/versions/41/site_compatibility/index.html b/files/fr/mozilla/firefox/releases/41/site_compatibility/index.html index 2c89135474..2c89135474 100644 --- a/files/fr/mozilla/firefox/versions/41/site_compatibility/index.html +++ b/files/fr/mozilla/firefox/releases/41/site_compatibility/index.html diff --git a/files/fr/mozilla/firefox/versions/5/index.html b/files/fr/mozilla/firefox/releases/5/index.html index 18020bc53e..18020bc53e 100644 --- a/files/fr/mozilla/firefox/versions/5/index.html +++ b/files/fr/mozilla/firefox/releases/5/index.html diff --git a/files/fr/mozilla/firefox/versions/50/index.html b/files/fr/mozilla/firefox/releases/50/index.html index 557addb508..557addb508 100644 --- a/files/fr/mozilla/firefox/versions/50/index.html +++ b/files/fr/mozilla/firefox/releases/50/index.html diff --git a/files/fr/mozilla/firefox/versions/59/index.html b/files/fr/mozilla/firefox/releases/59/index.html index 715432166e..715432166e 100644 --- a/files/fr/mozilla/firefox/versions/59/index.html +++ b/files/fr/mozilla/firefox/releases/59/index.html diff --git a/files/fr/mozilla/firefox/versions/6/index.html b/files/fr/mozilla/firefox/releases/6/index.html index 2ee16dc40b..2ee16dc40b 100644 --- a/files/fr/mozilla/firefox/versions/6/index.html +++ b/files/fr/mozilla/firefox/releases/6/index.html diff --git a/files/fr/mozilla/firefox/versions/63/index.html b/files/fr/mozilla/firefox/releases/63/index.html index 06ad714a2a..06ad714a2a 100644 --- a/files/fr/mozilla/firefox/versions/63/index.html +++ b/files/fr/mozilla/firefox/releases/63/index.html diff --git a/files/fr/mozilla/firefox/versions/65/index.html b/files/fr/mozilla/firefox/releases/65/index.html index 98979a74b9..98979a74b9 100644 --- a/files/fr/mozilla/firefox/versions/65/index.html +++ b/files/fr/mozilla/firefox/releases/65/index.html diff --git a/files/fr/mozilla/firefox/versions/68/index.html b/files/fr/mozilla/firefox/releases/68/index.html index 037d582ad8..037d582ad8 100644 --- a/files/fr/mozilla/firefox/versions/68/index.html +++ b/files/fr/mozilla/firefox/releases/68/index.html diff --git a/files/fr/mozilla/firefox/versions/69/index.html b/files/fr/mozilla/firefox/releases/69/index.html index 5a5ad086a5..5a5ad086a5 100644 --- a/files/fr/mozilla/firefox/versions/69/index.html +++ b/files/fr/mozilla/firefox/releases/69/index.html diff --git a/files/fr/mozilla/firefox/versions/7/index.html b/files/fr/mozilla/firefox/releases/7/index.html index 16936f3f8d..16936f3f8d 100644 --- a/files/fr/mozilla/firefox/versions/7/index.html +++ b/files/fr/mozilla/firefox/releases/7/index.html diff --git a/files/fr/mozilla/firefox/versions/70/index.html b/files/fr/mozilla/firefox/releases/70/index.html index e104829d70..e104829d70 100644 --- a/files/fr/mozilla/firefox/versions/70/index.html +++ b/files/fr/mozilla/firefox/releases/70/index.html diff --git a/files/fr/mozilla/firefox/versions/76/index.html b/files/fr/mozilla/firefox/releases/76/index.html index efa1538412..efa1538412 100644 --- a/files/fr/mozilla/firefox/versions/76/index.html +++ b/files/fr/mozilla/firefox/releases/76/index.html diff --git a/files/fr/mozilla/firefox/versions/77/index.html b/files/fr/mozilla/firefox/releases/77/index.html index 073ca22e4b..073ca22e4b 100644 --- a/files/fr/mozilla/firefox/versions/77/index.html +++ b/files/fr/mozilla/firefox/releases/77/index.html diff --git a/files/fr/mozilla/firefox/versions/8/index.html b/files/fr/mozilla/firefox/releases/8/index.html index b1e7b31fa7..b1e7b31fa7 100644 --- a/files/fr/mozilla/firefox/versions/8/index.html +++ b/files/fr/mozilla/firefox/releases/8/index.html diff --git a/files/fr/mozilla/firefox/versions/9/index.html b/files/fr/mozilla/firefox/releases/9/index.html index 3ee33465b7..3ee33465b7 100644 --- a/files/fr/mozilla/firefox/versions/9/index.html +++ b/files/fr/mozilla/firefox/releases/9/index.html diff --git a/files/fr/mozilla/firefox/versions/index.html b/files/fr/mozilla/firefox/releases/index.html index 711c761192..711c761192 100644 --- a/files/fr/mozilla/firefox/versions/index.html +++ b/files/fr/mozilla/firefox/releases/index.html |