Firefox 20 note de version pour les développeurs
Firefox 20 est sorti le 2 avril 2013. Cette page résume les principaux changements dans Firefox 20 qui sont utiles aux développeur·euse·s.
Changements pour les développeur·euse·s Web
>HTML
- Prise en charge de l'attribut
downloadsur les éléments<a>et<area>a été ajouté (bogue Firefox 676619 (angl.)). - La valeur
autopour l'attribut universeldira été implémenté (bogue Firefox 548206 (angl.)). - L'attribut global
contextmenufonctionne désormais sur Firefox pour Android (bogue Firefox 736321 (angl.)).
JavaScript
- Prise en charge de la méthode
WeakMap.prototype.clear(), récemment ajoutée au brouillon d'Harmony (EcmaScript 6), a été ajouté (bogue Firefox 814562 (angl.)). - Prise en charge de la méthode
Math.imul(), une fonction de multiplication 32 bits de type C. Bien qu'elle soit proposée pour Harmony (EcmaScript 6), elle n'a pas encore été acceptée et reste non standard (bogue Firefox 808148 (angl.)). - Les applications Web utilisant le déplacement de texte grâce à Kinetic 3.x fonctionnent, même en utilisant le backend Cairo Canvas. (bogue Firefox 835064 (angl.))
- L'instruction
for each...ina été dépréciée et ne doit plus être utilisée. Pensez à utiliser la nouvelle instructionfor...of(bogue Firefox 804834 (angl.)). - Prise en charge de
Map.prototype.keys(),Map.prototype.values(), etMap.prototype.entries()a été ajoutée (bogue Firefox 817368 (angl.)).
CSS
- Les boîtes flexibles CSS sont désormais disponibles par défaut dans les versions préliminaires (hors Bêta). Elles peuvent être activées dans les versions finales et bêta en définissant la préférence
layout.css.flexbox.enableddans about:config àtrue. - La propriété
mask-typea été ajoutée (bogue Firefox 793617 (angl.)). - Prise en charge expérimentale de la pseudo-classe
:scopea été ajoutée. Activé par défaut dans Aurora et Nightly, il peut être activé dans les versions finales et bêta en définissant la préférencelayout.css.scope-pseudo.enableddans about:config àtrue(bogue Firefox 648722 (angl.)).
DOM
HTMLMediaElementsupporte désormaisplaybackRate(en lecture et écriture), avec correction de hauteur. La correction de hauteur peut être contrôlé à l'aide de la propriétémozPreservesPitch(bogue Firefox 495040 (angl.)).- CSSOM : Le support des nouvelles interfaces
CSSGroupingRuleetCSSConditionRulea été ajouté (bogue Firefox 814907 (angl.)). - CSSOM : Sur la constante
CSSRule,CSSRule.MOZ_KEYFRAME_RULEetCSSRule.MOZ_KEYFRAMES_RULEont été dé-préfixés pourCSSRule.KEYFRAME_RULEetCSSRule.KEYFRAMES_RULE. La version préfixée est temporairement maintenue, pour aider les sites web à la transition de leur code (bogue Firefox 816431 (angl.)). - CSSOM : Il est désormais possible de définir la valeur de
conditionTextpourCSSMediaRule(bogue Firefox 815021 (angl.)). - Les méthodes
parseFromStreametparseFromBufferdeDOMParserne sont plus disponibles à partir de contenu web (bogue Firefox 816410 (angl.)). - La méthode
serializeToStreamdeXMLSerializern'est plus disponible à partir de contenu web (bogue Firefox 816410 (angl.)). - Les interfaces
TextDecoderetTextEncodersont désormais disponibles dans Workers (bogue Firefox 795542 (angl.)). - Le support de la méthode
CSS.supports()a été ajouté (bogue Firefox 779917 (angl.)). - Le support pour UndoManager a été ajouté (bogue Firefox 617532 (angl.)).
- L'interface
CaretPositiona été implémentée dans la méthode CSSOMdocument.caretPositionFromPoint(). - L'argument index des méthodes
HTMLTableRowElement.insertCell()etHTMLTableElement.insertRow()est désormais optionnel conformément à la spécification HTML. Navigator.getUserMedia, toujours préfixé en tant queNavigator.mozGetUserMedia, est maintenant activé par défaut.- Le troisième argument optionnel
transferdeWindow.postMessageest désormais pris en charge. Il permet de transférer une séquence d'objets transférables vers la destination (bogue Firefox 822094 (angl.)). - La méthode non standard
Window.sizeToContent()limite désormais la taille minimale : la fenêtre ne peut plus être forcée à des tailles trop petites, empêchant l'utilisateur·ice d'interagir avec elle (bogue Firefox 764240 (angl.)). - Les modes de fusion, tels que
overlay,color-burn,hue, etc., ont été ajoutés à la propriétéCanvasRenderingContext2D.globalCompositeOperationde Canvas (bogue Firefox 748433 (angl.)). - La version préfixée de
Window.indexedDB—window.mozIndexedDB— a été réintroduite dans Gecko, afin que le mauvais code préfixé inter-navigateurs (commevar indexedDB = window.indexedDB || window.webkitIndexedDB …) ne casse pas dans Firefox. Une meilleure approche estwindow.indexedDB = window.indexedDB || window.webkitIndexedDB …(voir bogue Firefox 770844 (angl.)).
SVG
- L'implémentation des propriétés
contentScriptTypeetcontentStyleTypea été supprimée deSVGSVGElementavec la suppression de SVG2 (bogue Firefox 819731 (angl.)).
MathML
- Pour aider les auteur·ice·s MathML dans le débogage des erreurs « invalid-markup » dans leurs documents, les erreurs d'analyse MathML (comme avoir trop / pas assez d'éléments enfants) et les avertissements au sujet des attributs obsolètes ou fausses valeurs d'attributs sont maintenant signalées à la console d'erreur.
- L'attribut
scriptminsizeaccepte désormais des valeurs sans unité et les valeurs en pourcent. Elles sont interprétées comme des multiples de la valeur par défaut (8pt). - Des valeurs sans unité sont désormais permis pour les attributs
mathsizeetfontsize, ils multiplient la valeur par défaut.
Changements pour les développeur·euse·s Mozilla et d'extensions
- ECMAScript pour XML (E4X) est désormais complètement désactivé pour tous les scripts chrome et contenu. Il était auparavant désactivé pour le contenu dans Firefox 17 et a été entièrement supprimé pour Firefox 21. Utilisez DOMParser/DOMSerializer ou un algorithme JXON non natif à la place.
- L'interface
nsIDOMParserJSn'existe plus (bogue Firefox 816410 (angl.)). VoirnsIDOMParserpour des alternatives. - Préférences de contenu : L'interface
nsIContentPrefServiceest désormais obsolète et l'API asynchrone de stockagensIContentPrefService2a été implémentée. - Les interfaces
nsIProfileetnsIProfileChangeStatusont été supprimées, ainsi que d'autres codes prenant en charge l'ancien système de gestion de profil de Firefox. Vous ne les utilisiez probablement pas, mais si c'était le cas, vous devez cesser de le faire. Cela empêche les parties obsolètes du système de gestion de profil de bloquer le processus de fermeture. - L'interface
nsIEventSourcen'existe plus (bogue Firefox 819639 (angl.)).