Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

Firefox 10 note de version pour les développeurs

Firefox 10 est sorti le 31 janvier 2012. Cet article fournit des informations sur les nouvelles fonctionnalités et les principaux bugs corrigés dans cette version, ainsi que des liens vers une documentation plus détaillée pour les développeur·euse·s web et les développeur·euse·s de modules complémentaires.

Note : Firefox 10 est la première version de ce navigateur à avoir deux chiffres. Cela peut poser des problèmes avec certains scripts de détection de l'UA. Assurez-vous de les vérifier, ainsi que ceux contenus dans les logiciels tiers que vous intégrez dans vos pages, comme les bibliothèques. Pour plus d'informations à ce sujet, consultez l'article Firefox passe à deux chiffres sur hacks.mozilla.org (angl.).

Changements pour les développeur·euse·s web

HTML

  • Le nouvel élément HTML5 <bdi>, isolation bidirectionnelle, permettant l'isolation de parties de texte avec une direction différente, a été implémenté. C'est particulièrement utile lors de l'affichage de texte avec une direction inconnue, provenant par exemple d'une base de données, au milieu d'un texte avec une direction connue et potentiellement différente.
  • Vous pouvez maintenant définir un fragment « haut » pour l'attribut href afin de créer un lien vers le haut de la page. Cela fonctionnait auparavant, puis a disparu pendant un certain temps, et maintenant c'est de retour, pour être compatible avec la spécification HTML5. Par exemple : <a href="#top">Retour en haut de la page</a>.

JavaScript

  • La méthode WeakMap.set() retourne maintenant undefined, au lieu de retourner elle-même.
  • Un bogue a été introduit dans la gestion des expressions régulières dans Firefox 7 ; il a été corrigé. Voir le bogue Firefox 683838 (angl.) si vous voulez les détails sanglants.
  • Vous ne pouvez plus utiliser la syntaxe ECMAScript pour XML (E4X) obsolète en mode strict ECMAScript 5 (c'est-à-dire après "use strict;").

DOM

Évènements DOM3

  • La méthode DOM Event Event.stopImmediatePropagation a été implémentée.
  • Les évènements de souris mouseenter et mouseleave ont été implémentés.

DOM4

  • L'attribut Document.xmlVersion (qui était uniquement accessible en lecture et non modifiable) a été supprimé, car il est obsolète dans la spécification DOM4. L'article consacré à Document.xmlVersion suggère maintenant une manière de détecter si le document est HTML ou XML sans utiliser cette propriété.
  • L'attribut document.xmlStandalone a été supprimé, car il est obsolète dans la spécification DOM4.
  • L'attribut Document.xmlEncoding a été supprimé, car il est obsolète dans la spécification DOM4.
  • L'attribut text.isElementContentWhiteSpace a été supprimé, car il est obsolète dans la spécification DOM4.
  • La méthode text.replaceWholeText a été supprimée, car elle est obsolète dans la spécification DOM4.
  • La méthode Node.isSameNode a été supprimée, car elle est obsolète dans la spécification DOM4. Au lieu de node1.isSameNode(node2), vous pouvez utiliser l'opérateur ===, comme ceci : node1 === node2.

L'API Page Visibility

  • L'API Page Visibility a été implémentée (préfixée) : document.mozHidden, document.mozVisibilityState sont disponibles et l'évènement mozvisibilitychanged est envoyé lorsque l'état est modifié.

L'API Full Screen

  • La prise en charge de Document.fullscreenEnabled a été ajoutée.
  • La nouvelle propriété :-moz-full-screen-ancestor a été ajoutée. Cela vous permet de faire correspondre les éléments qui sont des ancêtres d'un élément en mode plein écran.

L'API Battery

  • La prise en charge expérimentale de navigator.mozBattery a été ajoutée (peut être activée en définissant la préférence dom.battery.enabled sur true et sera activée par défaut à partir de Firefox 11).

Canvas

  • La méthode createPattern() lève désormais une exception si un canevas source de taille nulle est défini.
  • Si vous utilisez une valeur non finie pour l'un des paramètres numériques de putImageData(), l'appel est désormais ignoré silencieusement au lieu de lancer une exception, conformément à la spécification.

WebGL

Web Workers

  • L'attribut XMLHttpRequest.responseType et XMLHttpRequest.response sont désormais disponibles depuis l'intérieur des Workers.
  • Le constructeur Worker() accepte désormais les URL de données.

IndexedDB

De grands progrès ont été réalisés pour mettre à jour IndexedDB selon la dernière spécification provisoire. Cet effort se poursuivra dans Firefox 11.

Autres

  • Lorsque le type MIME approprié est passé, image/svg+xml, le DOMParser crée désormais un SVGDocument lorsqu'il reçoit une chaîne de caractères contenant du SVG.
  • Par le passé, lorsque Element.setAttribute() analysait des entiers, il signalait une erreur si l'entier contenait des caractères non numériques (par exemple « 42toto »). Maintenant, il tronque correctement cela en tant que nombre 42, conformément à la spécification.
  • La touche ESC ne déclenche plus incorrectement le gestionnaire onkeydown.
  • L'interface NameList n'est plus implémentée ; elle avait auparavant une implémentation sans moyen d'y accéder réellement.
  • La méthode document.createProcessingInstruction() fonctionne désormais sur les documents HTML ainsi que sur les documents XML. Les nœuds ProcessingInstruction ne sont toujours pris en charge que sur les documents XML, mais comme les nœuds peuvent être déplacés entre les documents, il est utile de pouvoir les créer également sur les documents HTML.
  • Le responseType "moz-json" de XMLHttpRequest introduit dans Firefox 9 a été mis à jour selon le dernier projet de spécification et n'a plus de préfixe. Voir la note dans le bogue Firefox 707142 (angl.).

CSS

  • Les transformations 3D en CSS sont désormais prises en charge. Cela inclut la prise en charge des propriétés transform-style, perspective, perspective-origin et backface-visibility, ainsi que des fonctions de transformation 3D dans les propriétés transform et <transform-function>. Voir Utilisation des transformations CSS pour plus de détails.
  • Deux nouvelles valeurs pour la propriété CSS unicode-bidi ont été ajoutées : -moz-isolation et -moz-plaintext. La valeur -moz-isolation isole, du point de vue de la direction, l'élément de son environnement, lui permettant d'avoir une direction différente. Un élément avec unicode-bidi:-moz-isolation se comporte comme un élément <bdi>. La valeur -moz-plaintext indique au navigateur d'utiliser Unicode euristique pour déterminer la direction et non la propriété CSS direction.
  • Les propriétés CSS linear-gradient() et repeating-linear-gradient() ont été mises à jour pour prendre en charge la nouvelle syntaxe to et l'algorithme de coin magique. Cela permet de donner une couleur précise sur le coin d'une boîte remplie de dégradé.
  • La gestion de la propriété text-overflow dans les cas où la boîte déborde des deux côtés alors que la propriété text-overflow est définie pour déborder d'un seul côté a été corrigée.
  • La gestion de la propriété position sur les éléments à l'intérieur des éléments <table> positionnés a été corrigée. Ce changement affecte la mise en page des pages ; cependant, nous respectons désormais la spécification CSS et les autres navigateurs, donc cela doit être facile à corriger.
  • La fusion des marges autour des éléments <table> a été corrigée pour correspondre à la spécification CSS. Auparavant, les marges des éléments de table ne se fusionnaient pas avec les autres éléments adjacents, ce qui entraînait une mise en page incorrecte. Ce changement affecte la mise en page des pages ; cependant, nous respectons désormais la spécification CSS et les autres navigateurs, donc cela doit être facile à corriger.

SVG

  • L'élément <mask> a été mis à jour pour prendre en charge à la fois sRGB et linearRGB, et utilise désormais sRGB par défaut, conformément à la dernière révision de la spécification SVG 1.1.

Réseau

  • L'en-tête HTTP Accept-Charset n'est plus envoyé dans les requêtes HTTP. En son absence, les serveurs doivent répondre en envoyant UTF-8.

Outils de développement

Changements pour les développeur·euse·s Mozilla et d'extensions

Pour un aperçu des problèmes susceptibles de survenir lors de la mise à jour de vos extensions pour prendre en charge Firefox 10, consultez Mise à jour des extensions pour Firefox 10.

Note : L'ancien type de données PRBool (angl.) a été retiré ! Partout dans la documentation où il est mentionné, le type standard C++ bool est désormais utilisé. La documentation sera mise à jour à l'avenir, mais pour l'instant, gardez cela à l'esprit.

Manifestes

  • La prise en charge de <em:strictCompatibility> a été ajoutée au manifeste d'installation. Elle permet aux auteur·ice·s d'extensions de choisir de vérifier la version maximale de leur extension. Si elle est définie sur true, l'extension est désactivée si la version de l'application est supérieure à <em:maxVersion>. Par défaut, Firefox 10 considère les extensions comme compatibles, quelle que soit leur version maximale définie. Ce drapeau remplace cette préférence. Vous devez le définir si votre extension effectue des actions susceptibles d'être perturbées par les mises à jour de Firefox, mais pas si votre extension contient un composant binaire, car ces extensions sont toujours strictement vérifiées (rappelez-vous que les composants binaires doivent toujours être recompilés pour chaque version majeure de Firefox).
  • Si vous souhaitez revenir à l'ancien comportement — c'est-à-dire à la vérification stricte de la compatibilité pour toutes les extensions, quelle que soit la valeur du drapeau strictCompatibility dans leurs manifestes, vous pouvez définir la préférence extensions.strictCompatibility sur true.

XUL

XPConnect

  • Plusieurs nouvelles propriétés et méthodes ont été ajoutées à Components.utils, permettant d'accéder à diverses informations liées au débogage.

Changements d'interface

  • Les interfaces mozISpellCheckingEngine et nsIEditorSpellCheck ont été mises à jour pour permettre aux modules complémentaires sans redémarrage d'ajouter des dictionnaires au correcteur orthographique.
  • L'attribut nsIBrowserHistory.lastPageVisited a été supprimé.
  • L'interface nsIDocumentViewer a été fusionnée avec nsIContentViewer.
  • L'interface nsIURIFixup dispose d'un nouveau drapeau, FIXUP_FLAG_USE_UTF8, qui permet de lui indiquer d'utiliser UTF-8 au lieu du jeu de caractères de la plateforme lors des conversions.

Changements d'extension

  • La nouvelle variable NPNVdocumentOrigin a été ajoutée ; elle retourne l'origine du document et est plus sécurisée que window.location.

Changements du système de compilation

  • L'option de compilation --disable-rdf, qui rendait en réalité impossible une compilation réussie, a été supprimée. Des travaux sont en cours pour pouvoir supprimer entièrement la prise en charge de RDF, mais pour l'instant, XUL en a encore besoin pour fonctionner. Voir le bogue Firefox 559505 (angl.) pour suivre les progrès sur la suppression des derniers vestiges de RDF.
  • L'option de compilation --disable-smil a été supprimée.