Firefox 6 note de version pour les développeurs
Firefox 6, basé sur Gecko 6.0, est sorti le 16 août 2011. Cet article fournit des informations à propos des changements qui affectent les développeur·euse·s dans cette version.
Changements pour les développeur·euse·s web
>HTML
- L'élément HTML5
<progress>, qui vous permet de créer une barre de progression, est maintenant supporté. - L'analyse syntaxique de l'élément HTML5
<track>, qui définit les pistes de texte pour les éléments multimédias, est désormais supporté. Cet élément doit apparaître dans les DOM, si son comportement n'est pas encore implémenté. - L'élément
<iframe>est désormais correctement coupé par son conteneur lorsque les coins du conteneur ont été arrondis à l'aide de la propriétéborder-radius. - Les champs
<input>des éléments<form>ne sont plus supportés par la propriété XULmaxwidth(angl.), cela n'a jamais été volontaire, et est contraire à la spécification HTML. Vous devez plutôt utiliser l'attributsizepour définir la largeur maximum de champs de saisie. - Les propriétés
fillStyleetstrokeStyledeCanvasRenderingContext2d(<canvas>) utilisées pour ignorer les déchets inclus après la définition d'une couleur valide, maintenant c'est traité comme une erreur. Par exemple, « rouge bleu » est une couleur utilisée pour être traitée comme du « rouge », alors qu'elle aurait dû être ignorée. - La largeur et la hauteur des éléments
<canvas>peuvent être correctement mis à 0px ; avant, lorsque vous essayez de le faire, elles se fixaient à 300px. - La prise en charge de l'attribut HTML des données personnalisées (
data-*) a été ajoutée. La propriété DOMdatasetpermet d'y accéder. - Quand un élément
<textarea>reçoit le focus, le point d'insertion de texte est désormais placé, par défaut, au début du texte plutôt qu'à la fin. Le comportement de Firefox est ainsi conforme avec les autres navigateurs.
CSS
-moz-text-decoration-color-
Cette nouvelle propriété vous permet de définir la couleur utilisée par les décorations du texte, comme le soulignement, le surlignement et le texte barré.
-moz-text-decoration-line-
Cette nouvelle propriété vous permet de définir le type de décorations du texte ajoutée à un élément.
-moz-text-decoration-style-
Cette nouvelle propriété vous permet de définir le style de décorations du texte, comme le soulignement, le surlignement et le texte barré. Les styles incluent les simples lignes, les lignes doubles, les lignes ondulées, les lignes pointillées, etc.
-moz-hyphens-
Cette nouvelle propriété vous permet de contrôler la façon dont la césure des mots lors de retours à la ligne est gérée.
-moz-orient-
Une nouvelle propriété (pour l'instant spécifique à Mozilla) qui vous permet de contrôler l'orientation verticale ou horizontale de certains éléments (en particulier
<progress>). ::-moz-progress-bar-
Un pseudo-élément spécifique à Mozilla qui vous permet de définir le style de la zone d'un élément
<progress>représentant la fraction d'une tâche.
Autres changements
- La propriété
@-moz-documenta une nouvelle fonctionregexp(), qui vous permet d'adapter l'URL du document à une expression régulière. - La propriété CSS
azimuthn'est plus supportée, comme nous avons enlevé le peu de code que nous avions pour le groupe médiaaural. Il n'a jamais été implémenté de manière significative, donc il est plus logique de supprimer cette implémentation vieillissante pour le moment, au lieu d'essayer de le rafistoler. - Avant, la pseudo-classe
:hovern'était pas appliquée aux sélecteurs de classe quand on était en mode quirks, par exemple,.une-classe:hoverne fonctionne pas. Cette bizarrerie a été enlevée. - La pseudo-classe
:indeterminatepeut être appliquée à l'élément<progress>. Cela n'est pas un standard, mais nous espérons que ce soit adopté par les autres navigateurs, car c'est utile. - La valeur
-moz-win-exclude-glassa été ajoutée à la propriété CSS-moz-appearanceafin d'exclure des zones opaques dans les effets d'Aero Glass sur les systèmes Windows. - Le bogue Firefox 658949 (angl.) change la façon dont le symbole dièse (#) est traité dans les données URI qui peut briser les feuilles de style CSS qui contiennent un tel symbole.
DOM
- Utilisation de media queries à partir de code
-
Vous pouvez désormais tester le résultat d'une chaîne de caractères media query en programmant la méthode
window.matchMedia()et l'interfaceMediaQueryList. - Évènements tactiles
-
Firefox 6 ajout le support du standard W3C sur les évènements tactiles, cela facilite l'interprétation d'une ou plusieurs touches à la fois sur les surfaces tactiles comme les écrans tactiles et pavés tactiles.
- Évènements server-sent
-
Les évènements server-sent permettent à une application Web de demander à un serveur pour envoyer des évènements comme n'importe quel évènement DOM localement créé.
navigator.securityPolicy, qui a depuis longtemps retourné une chaîne de caractères vide, a simplement été supprimé.BlobBuilderest maintenant implémenté, même si pour l'instant il est préfixé (vous devez utiliserMozBlobBuilder).Document.heightetDocument.widthont été supprimées. bogue Firefox 585877 (angl.)- Les propriétés
entitiesetnotationsde l'objetDocumentType, qui n'ont jamais été implémentées et retournent toujoursnull, ont été retirées, car elles ont également été enlevées de la spécification. - L'interface
DOMConfigurationet la propriétédocument.domConfigqu'elle utilisait ont été supprimées, elles n'ont jamais été supportées et ont depuis été retirées de la spécification DOM. - L'évènement
hashchangecomprend désormais les champsnewURLetoldURL. - La méthode
abort()de l'interfaceFileReaderretourne maintenant une exception si aucun fichier n'est en cours de lecture lorsqu'elle est utilisée. - La méthode
window.postMessage()utilise maintenant l'algorithme de clonage structuré pour vous permettre de transmettre d'une fenêtre à une autre des objets JavaScript au lieu de chaînes de caractères. - L'API
window.historyutilise désormais l'algorithme de clonage structuré pour sérialiser des objets que vous passez avec les méthodespushState()etreplaceState(), ce qui vous permet d'utiliser des objets plus complexes (y compris ceux qui contiennent des références de graphes cycliques). - Vous pouvez désormais détecter lorsqu'une impression a été lancée et a été achevée grâce aux nouveaux évènements
beforeprintetafterprint. - La propriété
document.strictErrorCheckinga été supprimée, car elle n'a jamais été implémentée et a été retiré de la spécification DOM. - La propriété standard
event.defaultPreventedest maintenant supportée, vous devez utiliser à la place la méthode non-standardgetPreventDefault()pour détecter sievent.preventDefault()a été appelée sur l'évènement. - La propriété
window.topest désormais en lecture seule. - Les vues DOM, que nous n'avons jamais documentées, ont été supprimées. Il s'agissait d'un détail d'implémentation qui compliquait inutilement les choses, nous l'avons donc supprimé. Si vous remarquez ce changement, c'est probablement que vous faites quelque chose de travers.
- La fonction
EventTargetde la méthodeaddEventListener()est désormais facultative, car ça l'est dans WebKit (et aussi dans la dernière version de la spécification). - La propriété
mozResponseArrayBufferde l'objetXMLHttpRequesta été remplacé par les propriétésresponseTypeetresponse. - La propriété
dataseta été ajoutée à l'interfaceHTMLElementpermettant d'accéder aux attributs globauxdata-*global attributes d'un élément. - L'interface
CustomEventa été implémentée. (voir bogue Firefox 427537 (angl.)) - Pour des raisons de sécurité, les URIs
data:etjavascript:n'héritent plus de l'environnent de sécurité de la page active lorsque l'utilisateur·ice les saisit dans la barre d'adresse, mais un nouvel environment de sécurité vide est créé. Par exemple, le script chargé en entrant l'URIjavascript:dans la barre d'adresse n'a plus accès aux méthodes DOM et similaires. Ces URIs continuent à travailler comme avant lorsqu'elles sont utilisées par le script.
JavaScript
- Auparavant, il était possible d'utiliser l'opérateur
newavec plusieurs fonctions intégrées (eval(),parseInt(),Date.parse(), …) alors que cela n'aurait pas dû être autorisé, selon la spécification. Ce comportement n'est désormais plus pris en charge. L'utilisation de l'opérateurnewde cette manière n'a jamais été officiellement prise en charge et n'était pas très répandue ; il est donc peu probable que ce changement vous concerne. - ECMAScript 2015
WeakMapa été ajouté en tant que prototype.
SVG
- L'attribut
pathLengthest désormais supporté. - Les modèles SVG, les dégradés et les filtres fonctionnent désormais correctement lorsqu'ils sont chargés à partir de
data:URLs.
MathML
- L'implémentation de
<mstyle>a été corrigée.
Accessibilité (ARIA)
- Un évènement de changement d'état est à présent correctement envoyé lors d'un changement de la valeur de
aria-busy. - Un évènement de changement d'attribut est à présent correctement envoyé lorsque survient
aria-sort.
Réseau
- WebSockets
-
Pour Firefox 6, WebSockets a été mis à jour à la version 07 du protocole. De plus, l'objet
WebSocketa été renommé enMozWebSocketpour l'empêcher d'être utilisé de façon incorrecte pour détecter la disponibilité des WebSockets sans préfixe.
- L'analyse de l'en-tête
Content-Dispositiona été fixée afin d'interpréter correctement les antislashs des caractères ASCII. Auparavant, il été remplacé par le caractère underscore (« _ »). - La valeur du champ du chemin de l'en-tête
Set-Cookieest désormais correctement interprétée lors de l'utilisation de guillemets, auparavant, ils étaient considérés comme faisant partie de la chaîne de caractères du chemin d'accès à la place d'être des délimiteurs. Ce changement peut affecter la compatibilité avec certains sites web, les auteur·ice·s doivent vérifier leur code. - L'en-tête de la requête
Upgrade(angl.) est désormais supporté, vous pouvez demander la mise à niveau d'un canal vers un autre protocole HTTP en appelantnsIHttpChannelInternal.HTTPUpgrade().
Autres changements
- Le support des micro-résumés a été enlevé, ils n'ont jamais été très utilisés, n'étaient pas très détectable et continuer leur support été d'apporter des améliorations à Places (favoris et historique) à l'architecture difficile.
- WebGL supporte maintenant l'extension
OES_texture_float(angl.). - Le nouvel outil Ardoise offre un endroit pratique pour expérimenter du code JavaScript.
- La méthode
console.trace()a été ajoutée à l'API Console (voir le bogue Firefox 585956 (angl.)).
Changements pour les développeur·euse·s de Mozilla et de modules complémentaires
Pour des conseils utiles sur la mise à jour des extensions pour Firefox 6, voir Mise à jour des modules complémentaires pour Firefox 6.
Note : Firefox 6 requiert que les composants binaires soient recompilés, comme pour toutes les versions majeures de Firefox. Pour plus de détails, voir Interfaces Binaires (angl.).
Modules de code JavaScript
FileUtils.jsm
- La méthode
openSafeFileOutputStream()ouvre maintenant les fichiers avec l'indicateur de comportement (angl.)DEFER_OPENau lieu d'essayer de les ouvrir immédiatement.
XPCOMUtils.jsm
- La nouvelle méthode
importRelative()vous permet de charger un module de code JavaScript depuis un chemin relatif au chemin d'un autre module de code JavaScript. Cela rend plus facile la construction de modules qui dépendent les uns des autres.
XPCOM
nsCOMArray<T>(angl.) dispose désormais d'une méthodeRemoveObjectsAt()(angl.) pour enlever plusieurs objets à la fois à partir d'un tableau.
Utilisation du DOM depuis le chrome
- Utilisation de l'API DOM File dans du code chrome (angl.)
-
Bien que vous avez toujours pu utiliser l'API DOM File à partir du code chrome, le constructeur
Filesupporte désormais la spécification d'un chemin d'accès local lorsqu'il est utilisé depuis le chrome. De plus, vous pouvez également définir le fichier pour accéder à l'aide de l'API DOM File en utilisant un objetnsIFile.
Changements dans les interfaces
nsINavHistoryQueryOptionsprend désormais en charge le tri par ordre de fréquence à l'aide des nouvelles constantesSORT_BY_FRECENCY_ASCENDINGetSORT_BY_FRECENCY_DESCENDING.nsIFilePickera un nouvel attributnsIFilePicker.addToRecentDocs, qui vous permet d'indiquer que le fichier sélectionné doit être ajoutée à la liste « documents récents » de l'utilisateur·ice, s'il·elle y en a une. Cet attribut n'a aucun effet en mode navigation privée.- Les méthodes de
nsINavBookmarkObserveravec les paramètres ID d'un élément exigent désormais un GUID. nsIPrefBranch.clearUserPref()ne génère plus d'exception si la préférence définie n'existe pas ou n'a pas de valeur définie par l'utilisateur·ice. Désormais, elle ne fait rien.- L'interface
nsIMemoryReporterprend désormais en charge l'indication du type de mémoire qui est décrite (correspondance, pile, ou autre). - L'attribut
stateDatadensISHEntryretourne désormaisnsIStructuredCloneContainer. nsIURIa un nouvel attributnsIURI.ref, qui retourne la partie de référence (la partie après le « # ») de l'URI. Il y a également de nouvelles méthodesnsIURI.cloneIgnoringRef()qui clonensIURIsans l'élément ref etnsIURI.equalsExceptRef()qui se compare à un autrensIURIen ignorant l'élément ref.
Nouvelles interfaces
mozIAsyncFavicons-
Un nouveau service qui vous permet d'accéder au service favicon de façon asynchrone.
nsIEventSource-
Détails à venir.
nsIGSettingsCollection-
Détails à venir.
nsIGSettingsService-
Détails à venir.
nsIHttpUpgradeListener-
L'interface de rappel pour le traitement des demandes de mise à niveau HTTP avec la méthode
nsIHttpChannelInternal.HTTPUpgrade(). nsIStructuredCloneContainer-
Un conteneur pour les objets qui ont été sérialisé à l'aide de l'algorithme de clonage structuré.
nsITelemetry-
Implémentation du support de la télémétrie permettant d'enregistrer des données de télémétrie pour être utilisé pour présenter des histogrammes à des fins de suivi des performances. Voir bogue Firefox 649502 (angl.) et bogue Firefox 585196 (angl.).
nsITimedChannelnsIWebSocketListenernsIWebSocketProtocol
Interfaces supprimées
Les interfaces suivantes ont été supprimées, car elles n'étaient plus indispensables :
nsIDOMDocumentEvent(voir bogue Firefox 655517 (angl.))nsIDOMDocumentTraversal(voir bogue Firefox 655514 (angl.))nsIDOMDocumentRange(voir bogue Firefox 655513 (angl.))IWeaveCrypto(voir bogue Firefox 651596 (angl.))nsIDOM3DocumentEvent(voir bogue Firefox 481863 (angl.))nsIDOMAbstractViewnsILiveTitleNotificationSubjectnsIPlugin(voir bogue Firefox 637253 (angl.))nsIPluginInstance(voir bogue Firefox 637253 (angl.))nsIHTMLEditRules(voir bogue Firefox 633750 (angl.))nsIXSLTProcessorObsolete(voir bogue Firefox 649534 (angl.))
Autres changements
- Utilisation des préférences à partir du code d'application (angl.)
-
Une nouvelle API statique est disponible pour accéder facilement aux préférences, ce n'est disponible que pour le code d'application et ne peut pas être utilisé par les modules complémentaires.