Firefox 10, basé sur Gecko 10.0, est sorti le 31 janvier 2012. Cet article fournit des informations sur les nouvelles fonctionnalités et les principaux bugs corrigés, ainsi que des liens vers une documentation plus détaillée pour les développeurs web et d'extensions.
Note importante : Firefox 10 est la première version avec deux chiffres. Cela peut entraîner des problèmes avec certains scripts UA-renifleur. N'oubliez pas de les vérifier, et ceux énoncés dans la 3e partie du logiciel que vous incorporez dans vos pages, comme les bibliothèques. Pour plus d'informations à ce sujet, regardez l'article Firefox goes 2-digit sur hack.mozilla.org.
Changements pour les développeurs Web
HTML
- Le nouvel élément HTML5
<bdi>
, d'isolement bi-directionnel, permettant d'isoler certaines parties de texte avec un sens d'écriture différent, a été implémenté. C'est surtout utile pour afficher du texte avec une directivité inconnue provenant d'une base de données, par exemple, dans le milieu de texte avec une connue, et éventuellement, une différente. - Vous pouvez désormais spécifier un fragment de "top" pour l'attribut
href
pour créer un lien vers le haut de la page. Cette habitude de travail a disparu pendant un certain temps et est à présent de retour, pour la compatibilité avec la spécification HTML5. Par exemple :<a href="#top">Retour en haut de la page</a>
.
JavaScript
- La méthode
WeakMap.set()
retourne désormaisundefined
, au lieu de lui-même. - Un bug a été introduit dans le traitement des expressions régulières dans Firefox 7, il a été corrigé. Voir le bug 683838.
- Vous ne pouvez plus utiliser E4X en mode strict de l'ECMAScript 5.
DOM
Evènements DOM3
- La méthode
event.stopImmediatePropagation
a été implémentée. - Les évènements pour la souris
mouseenter
etmouseleave
ont été implémentés.
DOM4
- L'attribut
document.xmlVersion
(qui n'était pas réglable) a été supprimé comme il a été retiré de la spécification DOM4. L'article dedocument.xmlVersion
propose désormais un moyen de détecter si le document est HTML ou XML sans utiliser cette propriété. - L'attribut
document.xmlStandalone
a été supprimé comme il a été retiré de la spécification DOM4. - L'attribut
document.xmlEncoding
a été supprimé comme il a été retiré de la spécification DOM4. - L'attribut
text.isElementContentWhiteSpace
a été supprimé comme il a été retiré de la spécification DOM4. - La méthode
text.replaceWholeText
a été supprimé comme il a été retiré de la spécification DOM4. - La méthode
node.isSameNode
a été supprimé comme il a été retiré de la spécification DOM4. Au lieu denode1.isSameNode(node2)
, vous pouvez simplement utiliser l'opérateur===
, comme ceci :node1 === node2
.
API Page Visibility
- L'API Page Visibility a été implémentée (prefixée):
document.mozHidden
etdocument.mozVisibilityState
sont disponibles et l'évènementmozvisibilitychanged
est envoyé quand l'état est modifié.
API Full Screen
- Le support de
document.mozFullScreenEnabled
a été ajouté. - La nouvelle propriété
:-moz-full-screen-ancestor
a été ajoutée. Elle vous permet de faire correspondre les éléments qui sont les ancêtres d'un élément en plein écran.
API Battery
- Le support expérimental de
window.navigator.mozBattery
a été ajouté (peut-être activé en réglant la préférencedom.battery.enabled
àtrue
et sera activé par défaut à partir de Firefox 11).
Canvas
- La méthode
createPattern()
renvoie désormais une exception si la source d'un canvas spécifié a une taille nulle. - Si vous utilisez une valeur non-finie pour l'un des paramètres numériques de
putImageData()
, l'appel est désormais silencieusement ignoré au lieu de renvoyer une exception, conformément à la spécification.
WebGL
- Firefox 10 supporte à présent l'extension
OES_standard_derivatives
. - De nouvelles préférences ont été ajoutées pour aider le code de test de WebGL pour une compatibilitée avec les appareils sur l'intégralité de votre plate-forme de développement.
Web Workers
- Les attributs
XMLHttpRequest.responseType
etXMLHttpRequest.response
sont désormais disponibles à partir de l'intérieur d'un Workers. - Le constructeur
Worker()
accepte à présent les données des URIs.
IndexedDB
D'importants progrès ont été réalisés pour mettre à jour IndexedDB à la dernière version de la spécification. Cet effort sera poursuivi dans Firefox 11.
- Les méthodes
IDBIndex.count()
etIDBObjectStore.count()
ont été ajoutées. - La méthode
IDBCursor.advance()
a été ajoutée. - Quand vous rencontrez un paramètre facultatif inconnu dans
IDBObjectStore.createIndex()
ouIDBDatabase.createObjectStore()
, Gecko ne déclenche plus d'exception mais l'ignore tout simplement. - Lors de l'appel de
IDBTransaction.abort()
, toutes les attentes deIDBRequest
ont leurerrorCode
mis surABORT_ERROR
. - Les méthodes
IDBObjectStore.delete()
etIDBCursor.delete()
définissent à présent l'attributresult
pour retournéIDBRequest
surundefined
. - La méthode
IDBDatabase.setVersion()
a été supprimée car elle a été retirée dans la dernière version de la spécification. La version de la base de données est donnée par la méthodeIDBFactory.open()
qui a été mise à jour et le rappel deonupgradeneeded
permet d'avoir le schéma de la base de données pour une mise à niveau. La version a été modifiée à partir deDOMString
versunsigned long long
. L'interfaceIDBVersionChangeRequest
a été retirée et remplacée par la nouvelle interfaceIDBOpenDBRequest
. - La méthode
IDBFactory.deleteDatabase()
a été ajoutée.
Autres
- Quand le bon type de MIME est transmis,
image/svg+xml
, leDOMParser
créé désormais unSVGDocument
lorsqu'il est administre une chaîne avec SVG. - Dans le passé, quand
element.setAttribute()
analysait les entiers, il signalait une erreur si l'entier comprenait des caractères non-numériques (par exemple "42foo"). A présent, il tronque correctement que le nombre 42, conformément à la spécification. - La touche ESC ne donne plus de résultats incorrects dans le gestionnaire
window.oninput
ayant été mal appelé. - L'interface
NameList
n'est plus implémentée, il y a déjà eu une implémentation mais sans aucun moyen d'accès. - La méthode
document.createProcessingInstruction()
fonctionne désormais sur les documents HTML ainsi que sur les documents XML. Les noeuds deProcessingInstruction
sont toujours supportés mais uniquement sur les documents XML, mais comme les noeuds peuvent être déplacés entre les documents, il est aussi utile d'être capable de les créer sur les documents HTML. XMLHttpRequest
responseType
"moz-json
" introduit dans Firefox 9 a été mis à jour suivant la dernière version de la spécification et n'est plus préfixé (voir bug 707142#c13).
CSS
- Les transformations CSS 3D sont à présent supportés. Cela inclut le support des propriétés
transform-style
,perspective
,perspective-origin
etbackface-visibility
, ainsi que la fonction de transformation 3D dans les propriétéstransform
ettransform-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 d'isolement-moz-isolation
, à partir de la directionnalité d'un point, l'élément à partir de son environnement, le laisse avoir une directivité différente. Un élément avecunicode-bidi:-moz-isolation
se comporte comme un élément<bdi>
.-moz-plaintext
indique au navigateur d'utiliser l'heuristique navigation avec Unicode pour déterminer la direction et pas la propriété CSSdirection
. - Les propriétés CSS
linear-gradient
etrepeating-linear-gradient
ont été mises à jour pour supporter la nouvelle syntaxeto
et l'algorithme magic corner. Cela permet de donner une couleur précise sur le coin d'une boîte remplie de dégradé. - La manipulation de la propriété
text-overflow
dans le cas où les dépassements sont des deux côtés de la boîte alors que la propriététext-overflow
est définie pour déborder sur un seul a été corrigé. - La manipulation de la propriété
position
sur les éléments positionnés à l'intérieur des éléments<table>
a été corrigée. Ce changement affectera la présentation des pages, mais maintenant nous allons respecter la spécification CSS et les autres navigateurs, ce qui devrait faciliter la correction. - La fusion des marges autour des éléments
<table>
a été corrigée conformément à la spécification CSS. Auparavant, les marges des éléments de tableau ne se sont effondrées en même temps avec d'autres éléments adjacents, conduisant à une disposition incorrecte. Ce changement affectera la présentation des pages, mais maintenant nous allons respecter la spécification CSS et les autres navigateurs, ce qui devrait faciliter la correction.
SVG
- L'élément
<mask>
a été mis à jour pour supporter à la fois sRGB et linearRGB, et 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ée dans les requêtes HTTP. En son absence, les serveurs doivent répondre en envoyant UTF-8.
Outils de développement
- L'objet
console
a deux nouvelles méthodes :console.time()
etconsole.timeEnd()
, qui peuvent être utilisées pour régler la minuterie sur une page. - Le nouvel Examinateur de pages a été ajouté, offrant un excellent moyen d'examiner et de manipuler le code HTML et CSS.
Changements pour les développeurs de Mozilla et de modules complémentaires
Pour un aperçu des modifications à apporter pour rendre vos extensions compatibles avec Firefox 10, voir Updating add-ons for Firefox 10.
Note : L'ancien type de données
PRBool
a été retiré ! Partout dans la documentation qui fait référence à ce dernier utilise désormais à la place le type bool
de la norme C++. La documentation sera mise à jour dans le futur, mais pour l'instant, il faut le garder en tête.Manifestes
- Le support de
<em:strictCompatibility>
a été ajouté à l'installation des manifestes. Il permet aux auteurs d'add-ons d'activer la vérification de la version maximale de leur extension. Sitrue
est défini, l'extension sera désactivée si la version de l'application est supérieure à<em:maxVersion>
. Par défaut les extensions sont compatibles avec Firefox 10, quelle que soit leur version maximale spécifiée. Cet indicateur remplace la préférence. Vous devez configurer cette option si votre extension fait des choses qui risquent d'être brisées par les mises à jour de Firefox, mais pas si votre module a un composant binaire, puisque ces modules sont toujours strictement vérifiés (rappelez-vous que les composants binaires doivent toujours être recompilés pour chaque version majeure de Firefox). - Si vous souhaitez revenir à l'ancien comportement -- qui est, la vérification stricte de la compatibilité de toutes les extensions, quelle que soit la valeur de l'indicateur
strictCompatibility
dans leurs manifestes, vous pouvez définir la préférenceextensions.strictCompatibility
àtrue
.
XUL
- Les modules amorcés utilisant un fichier chrome.manifest ont désormais le manifeste automatiquement enregistré. Voir l'article Ajout de l'interface utilisateur avec un chrome.manifest pour plus de détails.
XPConnect
- Plusieurs nouvelles propriétés et méthodes ont été ajoutées à
Components.utils
, accordant l'accès à un assortiment d'informations relatives au débogage.
Changements dans les interfaces
- Les interfaces
mozISpellCheckingEngine
etnsIEditorSpellCheck
ont été mises à jour pour permettre le redémarrage de moins de modules pour ajouter des dictionnaires pour le correcteur orthographique. - L'attribut
nsIBrowserHistory.lastPageVisited
a été retiré. - L'interface
nsIDocumentViewer
a été intégrée dansnsIContentViewer
. - L'interface
nsIURIFixup
a un nouvel indicateur,FIXUP_FLAG_USE_UTF8
, qui vous permet de lui dire d'utiliser UTF-8 au lieu de la plate-forme de jeu de caractères, lors de conversions.
Changement pour les plug-ins
- La nouvelle variable
NPNVdocumentOrigin
a été ajoutée, elle renvoie à l'origine du document, et est plus sûre quewindow.location
.
Changements dans le système de compilation
- L'option de compilation
--disable-rdf
, qui fait qu'il est impossible de réussir à compiler, a été supprimée. Les travaux se poursuivent sur la possibilité de supprimer entièrement le support de RDF, mais actuellement XUL nécessite encore qu'il soit fonctionnel. Consultez le bug 559505 pour les progrès de la suppression des dernières traces de RDF. - L'option de compilation
--disable-smil
a été supprimée.
Voir également
- Firefox 9 pour les développeurs
- Firefox 8 pour les développeurs
- Firefox 7 pour les développeurs
- Firefox 6 pour les développeurs
- Firefox 5 pour les développeurs
- Firefox 4 pour les développeurs
- Firefox 3.6 pour les développeurs
- Firefox 3.5 pour les développeurs
- Firefox 3 pour les développeurs
- Firefox 2 pour les développeurs
- Firefox 1.5 pour les développeurs