From 34d315396ca29d7ef51ecc27eeeeeb275e9b0ba9 Mon Sep 17 00:00:00 2001
From: SphinxKnight {{ Gecko_minversion_header(1.9) }} Le zoom pleine page (ou fullZoom) est une nouvelle fonctionnalité qui sera probablement disponible dans Firefox 3. 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 XPCOM nsIMarkupDocumentViewer. Le zoom pleine page (ou fullZoom) est une nouvelle fonctionnalité qui sera probablement disponible dans Firefox 3. 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 XPCOM nsIMarkupDocumentViewer. 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. Il est également possible d'utiliser la fonction fullZoom pour un xul:iframe. Cependant, comme un iframe n'a pas de propriété Pour les développeurs qui désirent prendre connaissance de toutes les nouvelles fonctionnalités de Firefox 3, c'est ici qu'il convient de commencer. Cet article fournit la liste des nouveaux articles couvrant les fonctionnalités qui ont été ajoutées à Firefox 3. Même s'il ne couvre pas nécessairement chaque petite modification, il vous aidera à découvrir les améliorations majeures. {{Firefox_for_developers('2')}} Consultez également Firefox 3 pour les développeurs. Dans Gecko 1.8, il n'était pas possible de définir des gestionnaires d'évènements Pour une explication du fonctionnement de la capture des évènements, consultez DOM Level 2 Event capture (en) Pour une explication du fonctionnement de la capture des évènements, consultez DOM Level 2 Event capture (en) Dans Gecko 1.8, la méthode window.captureEvents, window.releaseEvents et Les nœuds provenant de documents externes doivent être clonés à l'aide de Les nœuds provenant de documents externes doivent être clonés à l'aide de Gecko n'obligeait pas à utiliser Gecko n'obligeait pas à utiliser charCode
de l'évènement keypress
est transformée en un caractère ASCII si la touche Accélérateur est pressée. Autrement, charCode
est le caractère non modifié (à part son état Shift — mise en majuscules). Consultez L'évènement Keypress dans Gecko.Voir également
+Voir également
-Exemple (xul:browser)
+Exemple (xul:browser)
Exemple (xul:iframe)
+Exemple (xul:iframe)
markupDocumentViewer
, il faut d'abord obtenir cette valeur :Références
+Références
-
diff --git a/files/fr/mozilla/firefox/releases/3/index.html b/files/fr/mozilla/firefox/releases/3/index.html
index 34f5693241..1d7560ed58 100644
--- a/files/fr/mozilla/firefox/releases/3/index.html
+++ b/files/fr/mozilla/firefox/releases/3/index.html
@@ -9,216 +9,216 @@ original_slug: Mozilla/Firefox/Versions/3
---
Nouvelles fonctionnalités pour les développeurs dans Firefox 3
+Nouvelles fonctionnalités pour les développeurs dans Firefox 3
-Pour les développeurs de sites et d'applications Web
+Pour les développeurs de sites et d'applications Web
-
-
-
navigator.registerProtocolHandler()
.
-
-
transform()
et setTransform()
sur les éléments canvas.
-
-
-
activeElement
et hasFocus
de HTML 5 sont gérés.
-
-
-
-
-
-
-
-Pour les développeurs XUL et d'extensions
+Pour les développeurs XUL et d'extensions
-Améliorations et modifications notables
+Améliorations et modifications notables
-
-
-
-
-
-
-
-
data:
depuis du code chrome pour intégrer des liaisons XBL directement au lieu de devoir les placer dans des fichiers XML séparés.
-
-
-
-Nouveaux composants et fonctionnalités
+Nouveaux composants et fonctionnalités
-
-
-
-
-
-
-
-
-
nsIJSON
nsIJSON
-
-
-
-Bugs corrigés
+Bugs corrigés
-
-Nouvelles fonctionnalités pour les utilisateurs
+Nouvelles fonctionnalités pour les utilisateurs
-Expérience utilisateur
+Expérience utilisateur
-Sécurité et vie privée
+Sécurité et vie privée
-Performances
+Performances
-Voir également
+Voir également
Voir également
+Voir également
Évènements
+Évènements
-Gestionnaires d'évènements capturants
+load
Gestionnaires d'évènements capturants
load
load
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 load
. 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 load
.window.addEventListener('load', votreFonction, false);
-
+preventBubble
a été suppriméepreventBubble
a été suppriméepreventBubble
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 stopPropagation(), qui fonctionne également dans Gecko 1.8. Ce changement a été produit par le patch pour le {{ Bug(330494) }}. Consultez également le {{ Bug(105280) }}.Quelques autres anciennes API d'évènements ne sont plus supportées
+Quelques autres anciennes API d'évènements ne sont plus supportées
window.routeEvent
ne sont plus supportées ({{ Obsolete_inline() }}) dans Gecko 1.9.DOM
+DOM
-L'exception
+WRONG_DOCUMENT_ERR
se déclenche lorsque l'on essaie d'utiliser un nœud d'un document différentL'exception
-WRONG_DOCUMENT_ERR
se déclenche lorsque l'on essaie d'utiliser un nœud d'un document différentdocument.importNode()
(ou adoptés avec
- document.adoptNode()
) avant de pouvoir être insérés dans le document courant. Pour en savoir plus sur les problèmes
- de Node.ownerDocument
, consultez la FAQ DOM du W3C (en anglais).document.importNode()
(ou adoptés avec
+ document.adoptNode()
) avant de pouvoir être insérés dans le document courant. Pour en savoir plus sur les problèmes
+ de Node.ownerDocument
, consultez la FAQ DOM du W3C (en anglais).document.importNode()
et document.adoptNode()
avant sa version 1.9. Depuis les versions 1.9
+ document.importNode()
et document.adoptNode()
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
- WRONG_DOCUMENT_ERR
est déclenchée (NS_ERROR_DOM_WRONG_DOCUMENT_ERR
). implémentation dans le bug 47903.WRONG_DOCUMENT_ERR
est déclenchée (NS_ERROR_DOM_WRONG_DOCUMENT_ERR
). implémentation dans le bug 47903.
intersectsNode
a été suppriméeintersectsNode
a été suppriméeDans Gecko 1.8, la fonction intersectsNode
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 compareBoundaryPoints. Cette fonction a été retirée par le patch du {{ Bug(358073) }}.
Consultez la documentation de intersectsNode pour savoir comment utiliser compareBoundaryPoints
à la place.
compareNode
a été suppriméecompareNode
a été suppriméeDans Gecko 1.8, la fonction compareNode
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 compareBoundaryPoints. Cette fonction a été retirée par le patch du {{ Bug(358073) }}.
Consultez la documentation de compareNode pour savoir comment utiliser compareBoundaryPoints
à la place.
<object>
<object>
object
et embed
n'ont plus besoin d'attribut type
pour être rendus.Firefox 3 offre un support SVG 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.
pattern
(spécification)mask
(spécification)pattern
(spécification)mask
(spécification)filter
feDistantLight
<a>
géré dans SVG comportent plusieurs bogues résolus : consultez {{ Bug(267664) }}, {{ Bug(268135) }}, {{ Bug(316248) }}, {{ Bug(317270) }} et {{ Bug(320724) }}.getNumberOfChars()
, getComputedTextLength()
, getSubStringLength()
, getStartPositionOfChar()
, getEndPositionOfChar()
, getRotationOfChar()
, et getCharNumAtPosition()
ont été implentées.xml:space
(spécification)fill
/stroke
sont à présent supportées (spécification)xml:space
(spécification)fill
/stroke
sont à présent supportées (spécification)em
et ex
sont à présent supportées pour l'indication de longueurs ({{ Bug(305859) }}).Notes de versions pour développeurs
-Modules complémentaires
-Fonctionnement interne de Firefox
Développer et contribuer
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.
Avant d'aller plus loin, voici une indication utile : si la seule modification dont votre extension a besoin est une mise à jour du champ maxVersion
dans son manifeste d'installation, et que celle-ci est hébergée sur addons.mozilla.org, 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 maxVersion
. Cela vous évitera également la revérification de votre extension.
La première étape — et pour la plupart des extensions la seule qui sera nécessaire — est de mettre à jour le fichier de manifeste d'installation, install.rdf
, pour indiquer sa compatibilité avec Firefox 3.
La première étape — et pour la plupart des extensions la seule qui sera nécessaire — est de mettre à jour le fichier de manifeste d'installation, install.rdf
, pour indiquer sa compatibilité avec Firefox 3.
Trouvez simplement la ligne indiquant la version maximale compatible de Firefox (qui, pour Firefox 2, ressemblait probablement à ceci) :
-<em:maxVersion>2.0.*</em:maxVersion> +<em:maxVersion>2.0.*</em:maxVersion>Modifiez-la pour indiquer la compatibilité avec Firefox 3 :
-<em:maxVersion>3.0.*</em:maxVersion> +<em:maxVersion>3.0.*</em:maxVersion>Et réinstallez ensuite votre extension.
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.* ».
-Note : 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+3.0.0.*
pourmaxVersion
avant que la RC de Firefox 3 soit disponible. Durant la pariode beta de Firefox 3, il convient d'utiliser3.0b5
comme valeur demaxVersion
.+Note : 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
+3.0.0.*
pourmaxVersion
avant que la RC de Firefox 3 soit disponible. Durant la pariode beta de Firefox 3, il convient d'utiliser3.0b5
comme valeur demaxVersion
.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.
-Note : Si votre extension utilise toujours un script+Install.js
plutôt qu'un manifeste d'installation, il vous faudra faire la transition vers un manifeste d'installation maintenant. Firefox 3 ne gère plus les scriptsinstall.js
dans les fichiers XPI.+-Note : Si votre extension utilise toujours un script
+Install.js
plutôt qu'un manifeste d'installation, il vous faudra faire la transition vers un manifeste d'installation maintenant. Firefox 3 ne gère plus les scriptsinstall.js
dans les fichiers XPI.Ajout de localisations au manifeste d'installation
+Ajout de localisations au manifeste d'installation
-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 Localisation des descriptions d'extensions pour plus de détails.
+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 Localisation des descriptions d'extensions pour plus de détails.
-Deuxième étape : s'assurer de fournir des mises à jour sécurisées
+Deuxième étape : s'assurer de fournir des mises à jour sécurisées
-Si vous hébergez des modules complémentaires vous-mêmes et pas sur un fournisseur d'hébergement sécurisé comme addons.mozilla.org, 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 Mises à jour sécurisées pour plus d'informations.
+Si vous hébergez des modules complémentaires vous-mêmes et pas sur un fournisseur d'hébergement sécurisé comme addons.mozilla.org, 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 Mises à jour sécurisées pour plus d'informations.
-Troisième étape : s'occuper des changements d'API
+Troisième étape : s'occuper des changements d'API
Plusieurs API ont changé de manière significative. Les changements les plus importants, qui affecteront probablement un grand nombre d'extensions, sont les suivants :
-DOM
+DOM
-Les nœuds provenant de documents externes doivent être clonés à l'aide de
+document.importNode()
(ou adoptés avec -document.adoptNode()
) avant de pouvoir être insérés dans le document courant. Pour en savoir plus sur les problèmes - deNode.ownerDocument
, consultez la FAQ DOM du W3C (en anglais).Les nœuds provenant de documents externes doivent être clonés à l'aide de
-document.importNode()
(ou adoptés avec +document.adoptNode()
) avant de pouvoir être insérés dans le document courant. Pour en savoir plus sur les problèmes + deNode.ownerDocument
, consultez la FAQ DOM du W3C (en anglais).Gecko n'obligeait pas à utiliser
document.importNode()
etdocument.adoptNode()
avant sa version 1.9. Depuis les versions 1.9 +Gecko n'obligeait pas à utiliser
+document.importNode()
etdocument.adoptNode()
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 -WRONG_DOCUMENT_ERR
est déclenchée (NS_ERROR_DOM_WRONG_DOCUMENT_ERR
). implémentation dans le bug 47903.WRONG_DOCUMENT_ERR
est déclenchée (NS_ERROR_DOM_WRONG_DOCUMENT_ERR
). implémentation dans le bug 47903. -Marque-pages et historique
+Marque-pages et historique
-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 Places. Consultez le Guide de migration vers Places pour des détails sur la mise à jour de vos extensions existantes en utilisant l'API Places.
+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 Places. Consultez le Guide de migration vers Places pour des détails sur la mise à jour de vos extensions existantes en utilisant l'API Places.
-Gestionnaire de téléchargement
+Gestionnaire de téléchargement
-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 Storage. 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
+nsIDownloadManager
,nsIDownloadProgressListener
et Surveillance de téléchargements pour plus d'informations.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 Storage. 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
-nsIDownloadManager
,nsIDownloadProgressListener
et Surveillance de téléchargements pour plus d'informations.Gestionnaire de mots de passe
+Gestionnaire de mots de passe
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.
nsILoginInfo
nsILoginManager
nsILoginInfo
nsILoginManager
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 Création d'un module de stockage du gestionnaire d'identification pour plus de détails.
+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 Création d'un module de stockage du gestionnaire d'identification pour plus de détails.
-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'utilisation des popups a été créé pour expliquer en détail le fonctionnement du système. Une chose à noter est l'obsolescence de popup.
en faveur des nouvelles méthodes showPopup
popup.
et openPopup
popup.
.openPopupAtScreen
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'utilisation des popups a été créé pour expliquer en détail le fonctionnement du système. Une chose à noter est l'obsolescence de popup.
en faveur des nouvelles méthodes showPopup
popup.
et openPopup
popup.
.openPopupAtScreen
La méthode handleEnter()
de l'interface nsIAutoCompleteController
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.
La méthode handleEnter()
de l'interface nsIAutoCompleteController
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.
DOMParser
est instancié, il hérite du principal du code appelant et des valeurs documentURI
et baseURI
de la fenêtre dont le constructeur venait.DOMParser
à l'aide d'un contrat, comme en appelant createInstance()
, et que vous n'appelez pas la méthode init()
de DOMParser
, toute tentative de démarrer une opération d'analyse créera et initialisera automatiquement le DOMParser
avec un principal à null et des pointeurs null
pour documentURI
et baseURI
.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 :
@@ -167,7 +169,7 @@ original_slug: Mise_à_jour_des_extensions_pour_Firefox_3nsICloseAllWindows
(voir le bug 386200)Un changement mineur dans le chrome pourrait nécessiter des changements dans votre code. Un nouveau vbox
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.
Note : Ce changement s'applique à partir de Firefox 3 beta 4 et des nightlies précédentes.
+Ajoutez ici les changements simples que vous avez dû faire à vos extensions pour qu'elles fonctionnent avec Firefox 3.
chrome://browser/base/utilityOverlay.js
n'est plus géré pour des raisons de sécurité. Si vous l'utilisiez auparavant, vous devriez passer à chrome://browser/content/utilityOverlay.js
.nsIAboutModule
doivent à présent supporter la méthode getURIFlags
. Consultez nsIAboutModule.idl pour la documentation. Ceci affecte les extensions qui fournissent de nouvelles URI about:
. (bug 337746)tabbrowser
ne fait plus partie du « toolkit » (bug 339964). 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).<?xml-stylesheet ?>
dans vos fichiers XUL, tenez compte des changements effectués dans le bug 319654 :
+ chrome://browser/base/utilityOverlay.js
n'est plus géré pour des raisons de sécurité. Si vous l'utilisiez auparavant, vous devriez passer à chrome://browser/content/utilityOverlay.js
.nsIAboutModule
doivent à présent supporter la méthode getURIFlags
. Consultez nsIAboutModule.idl pour la documentation. Ceci affecte les extensions qui fournissent de nouvelles URI about:
. (bug 337746)tabbrowser
ne fait plus partie du « toolkit » (bug 339964). 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).<?xml-stylesheet ?>
dans vos fichiers XUL, tenez compte des changements effectués dans le bug 319654 :
document.firstChild
n'est plus forcément l'élément racine. Si vous avez besoin de l'élément racine dans votre script, utilisez plutôt document.documentElement
.document.firstChild
n'est plus forcément l'élément racine. Si vous avez besoin de l'élément racine dans votre script, utilisez plutôt document.documentElement
.<?xml-stylesheet ?>
et <?xul-overlay ?>
n'ont plus d'effet en dehors du prologue du document.window.addEventListener("load", myFunc, true)
n'est pas déclenché au chargement de contenu web (chargement de page dans le navigateur). Ceci est causé par le bug 296639 qui modifie la manière dont les fenêtres internes et externes communiquent. Une correction simple est d'utiliser gBrowser.addEventListener("load", myFunc, true)
comme décrit dans les exemples de code et qui fonctionnera dans Firefox 2 également.window.addEventListener("load", myFunc, true)
n'est pas déclenché au chargement de contenu web (chargement de page dans le navigateur). Ceci est causé par le bug 296639 qui modifie la manière dont les fenêtres internes et externes communiquent. Une correction simple est d'utiliser gBrowser.addEventListener("load", myFunc, true)
comme décrit dans les exemples de code et qui fonctionnera dans Firefox 2 également.content.window.getSelection()
fournit un objet (qui peut être converti en une chaîne avec toString()
), contrairement à l'ancienne content.document.getSelection()
, à présent dépréciée, qui renvoie une chaîne.event.preventBubble()
avait été dépréciée dans Firefox 2 et a été retirée de Firefox 3. Utilisez event.stopPropagation()
, qui fonctionne également dans Firefox 2.setTimeout()
sont à présent bloqués par les fenêtres modales suite à la correction du bug 52209. Vous pouvez utiliser nsITimer
à la place.contentaccessible
.event.preventBubble()
avait été dépréciée dans Firefox 2 et a été retirée de Firefox 3. Utilisez event.stopPropagation()
, qui fonctionne également dans Firefox 2.setTimeout()
sont à présent bloqués par les fenêtres modales suite à la correction du bug 52209. Vous pouvez utiliser nsITimer
à la place.contentaccessible
.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.
-Les nœuds provenant de documents externes doivent être clonés à l'aide de document.importNode()
(ou adoptés avec
- document.adoptNode()
) avant de pouvoir être insérés dans le document courant. Pour en savoir plus sur les problèmes
- de Node.ownerDocument
, consultez la FAQ DOM du W3C (en anglais).
Les nœuds provenant de documents externes doivent être clonés à l'aide de document.importNode()
(ou adoptés avec
+ document.adoptNode()
) avant de pouvoir être insérés dans le document courant. Pour en savoir plus sur les problèmes
+ de Node.ownerDocument
, consultez la FAQ DOM du W3C (en anglais).
Gecko n'obligeait pas à utiliser document.importNode()
et document.adoptNode()
avant sa version 1.9. Depuis les versions 1.9
+
Gecko n'obligeait pas à utiliser document.importNode()
et document.adoptNode()
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
- WRONG_DOCUMENT_ERR
est déclenchée (NS_ERROR_DOM_WRONG_DOCUMENT_ERR
). implémentation dans le bug 47903.
WRONG_DOCUMENT_ERR
est déclenchée (NS_ERROR_DOM_WRONG_DOCUMENT_ERR
). implémentation dans le bug 47903.
-Firefox 3 corrige un bug de sécurité dans les éléments frame
et iframe
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.
L'élément <script> dans les documents HTML servis en mode text/html
doit à présent être obligatoirement accompagné d'une balise fermante </script>, 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 :
L'élément <script> dans les documents HTML servis en mode text/html
doit à présent être obligatoirement accompagné d'une balise fermante </script>, 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 :
<script ... />@@ -41,9 +41,9 @@ original_slug: Mise_à_jour_des_applications_Web_pour_Firefox_3
Ce changement améliore tant la compatibilité que la sécurité.
-Les valeurs de taille de police (font-size
) 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.
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).
-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 chrome://. 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.
+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 chrome://. 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.
-Firefox 3 ne permet plus au contenu web que d'accéder aux éléments dans les espaces chrome://browser/ et chrome://toolkit/. Ces fichiers sont prévus pour être accessibles au contenu web. Tous les autres contenus chrome y sont par contre à présent inaccessibles.
+Firefox 3 ne permet plus au contenu web que d'accéder aux éléments dans les espaces chrome://browser/ et chrome://toolkit/. Ces fichiers sont prévus pour être accessibles au contenu web. Tous les autres contenus chrome y sont par contre à présent inaccessibles.
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 :
@@ -66,22 +66,23 @@ original_slug: Mise_à_jour_des_applications_Web_pour_Firefox_3Cette 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 contentaccessible
, étant donné qu'il constitue un risque potentiel de sécurité.
Note : 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 :
content mypackage location/ content mypackage location/ contentaccessible=yes
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.
-Firefox 3 intègre JavaScript 1.8. 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 Script
n'est plus géré. Il ne s'agit pas de la balise <script>
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.
Firefox 3 intègre JavaScript 1.8. 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 Script
n'est plus géré. Il ne s'agit pas de la balise <script>
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.
Firefox 3 fournit un certain nombre de nouveaux éléments XUL, 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.
+Firefox 3 fournit un certain nombre de nouveaux éléments XUL, 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.
-<scale>
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') }} Référence de scale
({{ Bug(290255) }})<scale>
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') }} Référence de scale
({{ Bug(290255) }})'number'
pour l'attribut type
des élément textbox
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) }})<spinbuttons>
a été ajouté, qui peut être utilisé pour créer des contrôles à l'aide de liaisons XBL. ({{ Bug(155053) }})<datepicker>
et <timepicker>
, 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 type
, 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') }} Référence sur datepicker
<spinbuttons>
a été ajouté, qui peut être utilisé pour créer des contrôles à l'aide de liaisons XBL. ({{ Bug(155053) }})<datepicker>
et <timepicker>
, 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 type
, 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') }} Référence sur datepicker
<dropmarker>
a été ajouté, qui peut être utile pour créer des contrôles semblables à des menus à l'aide de liaisons XBL. ({{ Bug(348614) }})<panel>
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.<dropmarker>
a été ajouté, qui peut être utile pour créer des contrôles semblables à des menus à l'aide de liaisons XBL. ({{ Bug(348614) }})<panel>
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.overflow
qui peut être défini à true
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.image
est utilisé de manière consistante pour définir des images<menu>
, <menuitem>
et <menuseparator>
disposent d'une propriété en lecture seule control
qui renvoie l'élément <menulist> parent<menu>
, <menuitem>
et <menuseparator>
disposent de propriétés accessKey
, disabled
, crop
, image
et label
permettant de modifier l'attribut correspondanteditor
permet d'obtenir le nsIEditor interne pour le champ texte d'un élément menulist
modifiable.({{ Bug(312867) }})editor
permet d'obtenir le nsIEditor interne pour le champ texte d'un élément menulist
modifiable.({{ Bug(312867) }})spellcheck
d'une boîte de texte à 'true'
, la correction orthographique sera activée pour cette boîte de texte. ({{ Bug(346787) }})<textbox>
dispose d'une méthode reset()
pour réinitialiser la valeur de la boîte de texte à sa valeur par défaut. La propriété defaultValue
peut être utilisée pour retrouver et modifier cette valeur par défaut. ({{ Bug(312867) }})editor
permet d'obtenir le nsIEditor internet pour le champ texte. ({{ Bug(312867) }})editor
permet d'obtenir le nsIEditor internet pour le champ texte. ({{ Bug(312867) }})newlines
spécifiant comment les retours à la ligne dans les textes collés seront traités. ({{ Bug(253481) }}) Les valeurs possibles sont :
pasteintact
— tout coller tel queltype
d'un élément <button>
peut être défini à 'repeat'
pour créer des boutons qui se déclenchent régulièrement tant que le bouton est enfoncé. ({{ Bug(331055) }})buttondisabledaccept
peut être utilisé sur l'élément <dialog>
pour que le bouton OK soit initialement désactivé. ({{ Bug(247849) }})buttondisabledaccept
peut être utilisé sur l'élément <dialog>
pour que le bouton OK soit initialement désactivé. ({{ Bug(247849) }})<titlebar>
dispose d'un attribut allowevents
permettant de passer des évènements aux enfants de la barre de titre. ({{ Bug(361425) }})<splitter>
dispose d'une valeur supplémentaire 'both'
pour l'attribut collapse
indiquant que le séparateur peut coller les éléments sur les deux côtés lorsqu'il est déplacé. L'attribut substate
sera défini soit à before
, soit à after
lorsque l'un des deux est collé. ({{ Bug(337955) }})<richlistbox>
permet les sélections multiples. Définissez l'attribut seltype
à 'multiple'
pour activer cette fonctionnalité.<radio>
dispose d'un attribut group
permettant de définir l'id de l'élément <radiogroup>
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.openPopup()
et openPopupAtScreen()
. Ces méthodes devraient être utilisées à la place de showPopup
qui était source de confusion à l'utilisation.<key>
a été améliorée pour les utilisateurs de claviers non-Latins. Voir Évènement keypress dans Gecko.<window>
, <dialog>
, <prefwindow>
et <wizard>
) sont disponibles pour personnaliser la couleur de la barre de titre des fenêtres.openPopup()
et openPopupAtScreen()
. Ces méthodes devraient être utilisées à la place de showPopup
qui était source de confusion à l'utilisation.<key>
a été améliorée pour les utilisateurs de claviers non-Latins. Voir Évènement keypress dans Gecko.<window>
, <dialog>
, <prefwindow>
et <wizard>
) sont disponibles pour personnaliser la couleur de la barre de titre des fenêtres.{{ 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" } ) }}
-- cgit v1.2.3-54-g00ecf