Firefox 7 pour les développeurs
Firefox 7, basé sur Gecko 7.0, est sorti le 27 september 2011. Cet article fournit des informations à propos des changements qui affectent les développeurs dans cette version.
Changements pour les développeurs Web
>HTML
- La propriété
profiledeHTMLHeadElementa été supprimée, cette propriété est obsolète depuis Gecko 2.0. - Les propriétés
xetydeHTMLImageElementont été supprimées. - Le paramètre
beforede la méthodeadd()deHTMLSelectElementest désormais optionnel. - L'attribut
backgroundde l'élément<body>n'est plus résolu en tant qu'URI, ce qui est conforme à la spécification HTML courante. - L'attribut
labelde l'élément<option>reflète désormais la valeur du contenu texte de l'élément si l'attribut n'est pas spécifié.
Canvas
- Dans le cadre du projet Azure, le Backend Azure Direct2D a été implémenté et améliore considérablement les performances des canvas 2D.
- La spécification de valeurs invalides lors de l'appel de
setTransform(),bezierCurveTo()ouarcTo()ne renvoie plus d'exception, ces appels sont à présent ignorés silencieusement. - La méthode
isPointInPath()considère maintenant correctement la matrice de transformation lors de la comparaison du point spécifié au tracé en cours. - L'appel de
strokeRect()avec une largeur et une hauteur de zéro n'a désormais plus aucun effet. - L'appel de
drawImage()avec une largeur ou hauteur<canvas>de zéro lance désormaisINVALID_STATE_ERR. - L'appel de
drawImage()avec des coordonnées non-finies ne renvoie plus d'exception. - La méthode
toDataURL()accepte désormais un second paramètre pour contrôler la qualité JPEG. - Le support des opérations non-standards
clearetoverdeglobalCompositeOperationa été enlevé. - Les ombres sont désormais uniquement dessinées pour les opérations de composition de
source-over. - Vous pouvez désormais configurer la règle de remplissage utilisé par la toile en définissant l'attribute
mozFillRuleau contexte. - Le support des attributs expérimentaux
mozDash,mozDashOffset,mozCurrentTransformetmozCurrentTransformInversea été ajouté. - Le support des méthodes non-standards
mozDrawText(),mozMeasureText(),mozPathText()etmozTextAlongPath()a été retiré.
CSS
text-overflowest désormais supporté.- La propriété
-moz-orienta été corrigée pour que les éléments<progress>qui sont orientés verticalement aient des dimensions par défaut appropriées.
MathML
- XLink href a été rétabli et l'attribut
hrefde MathML3 est maintenant supporté. Les développeurs sont encouragés à passer à la dernière syntaxe. - Le support de l'attribut
voffsetsur les éléments<mpadded>a été ajouté et le comportement de l'attributlspacea été fixé. - L'élément de premier niveau
<math>accepte maintenant tous les atributs de l'élément<mstyle>. - Le support des polices Asana Math a été ajouté.
- L'épaisseur des lignes
mediumdes barres de fraction des éléments<mfrac>a été corrigé pour correspondre à l'épaisseur par défaut. - Les noms des espaces négatifs sont maintenant supportés.
DOM
- Les méthodes non-standards
getAsBinary(),getAsDataURL()etgetAsText()de l'interfaceFileont été supprimées ainsi que les propriétés non-standardsfileNameetfileSize. - L'interface
FormDatane signale plus le nom du fichier comme une chaîne vide lors de l'envoi l'en-tête HTTPContent-Dispositionsi les données ont été définies à l'aide deBlob. Cela corrige les erreurs qui avaient lieu sur certains serveurs. - L'attribut
element.dirrenvoie désormais toujours son résultat en minuscules, comme l'exige la spécification HTML. - la méthode
readAsArrayBuffer()deFileReaderest maintenant implémentée. document.createEntityReferencea été retiré. Elle n'a jamais été correctement implémentée et n'est pas intégrée dans la plupart des autres navigateurs.document.normalizeDocumenta été retiré. UtilisezNode.normalizeà la place.DOMTokenList.itemrenvoie désormaisundefinedsiindexest en dehors des limites, auparavant il renvoyénull.Node.getFeaturea été supprimé.- Les interfaces
HTMLInsElementetHTMLDelElementont été retirées, depuis que les éléments<ins>et<del>utilisent l'interfaceHTMLModElement. - Dans le but d'être conforme à la prochaine spécification DOM4 où
Attrn'hérite plus deNode(il l'a fait dans les DOM Core 1, 2 and 3), beaucoup de propriétés et méthodes deNodesur l'interfaceAttrsont maintenant des rapports d'alertes que nous nous efforçons de retirer dans une version ultérieure. - Ajout du support des propriétés
window.ondeviceorientationetwindow.ondevicemotionsur les objetswindow. window.resizeTo,window.resizeBy,window.moveToetwindow.moveByne s'appliquent plus à la fenêtre principale.
JavaScript
- La propriété
Function.aritya été enlevée, utilisezFunction.lengthà la place.
WebSockets
- la préférence
network.websocket.max-connectionsest utilisée pour déterminer le nombre maximum de connexions à WebSocket qui peuvent être ouvertes en même temps. La valeur par défaut est 200. - La version 8 du protocole WebSocket (comme spécifié par IETF draft 10) est maintenant utilisé à la place de la version 7 du protocole utilisé par Firefox 6.
- L'API WebSocket est maintenant disponible sur Firefox Mobile.
Console API
- Les messages enregistrés avec
console.logalors que la console web n'est pas ouverte sont toujours enregistrés, bien qu'ils ne s'affichent pas lorsque la console web est ouverte.
Web timing
- Première implémentation de la spécification Navigation Timing qui fournit des données pouvant être utilisées pour mesurer les performances d'un site.
XML
- En plus de la précédente prise en charge de
text/xsl, les feuilles de style XSLT peuvent désormais utiliser les médias Internet officiels (MIME) de typeapplication/xslt+xml(dans la feuille de style d'instruction de traitement ou le champ d'en-tête HTTP Link).
Changements pour les développeurs de Mozilla et de modules complémentaires
Ces changements affectent les développeurs d'extensions ainsi que les développeurs qui travaillent sur ou avec le code de Mozilla lui-même. Les developpeurs d'extensions doivent voir Updating extensions for Firefox 7 pour plus d'informations.
Note : Firefox 7 requiert que les composants binaires soient recompilés, comme pour toutes les versions majeures de Firefox. Pour plus de détails, voir Interfaces Binaires.
Modules de code JavaScript
FileUtils.jsm
- la nouvelle méthode
openFileOutputStream()ouvre un flux de sortie du fichier, la variante non-sécurisée, pour écrire dedans.
AddonManager.jsm
- Le gestionnaire de modules complémentaires a de nouvelles méthodes pour gérer les listes d'extensions qui ont changé durant le démarrage des applications :
AddonManager.addStarupChange(),AddonManager.removeStartupChange()etAddonManager.getStartupChanges(). - .
XUL
- Les éléments
<tree>peuvent désormais conserver l'état des triangles d'affichage si les nœuds référencés par lesdatasourcesont tous des ID uniques spécifiés par les attributs "id". - Les éléments
<panel>peuvent désormais être configurés pour permettre à l'utilisateur de les faire glisser en cliquant n'importe où sur leur arrière-plan avec le nouvel attributbackdrag.
XPCOM
- La nouvelle méthode
Components.utils.schedulePreciseGC()vous permet de programmer un cycle approfondi de collection de garbage de se produire à un moment donné lorsqu'aucun code JavaScript n'est exécuté, un rappel est exécuté une fois la collecte terminée. - La méthode
Components.utils.unload()vous permet de décharger les modules de code JavaScript déjà chargés en appelantComponents.utils.load().
Rapporteur de mémoire
Ajout du support pour le multi-reporters, c'est le rapporteur de mémoire qui rassemble des données sur demande et effectue un rappel pour chaque résultat généré. Voir nsIMemoryMultiReporter et nsIMemoryMultiReporterCallback pour les interfaces nécessaires, ainsi que les méthodes nsIMemoryReporterManager.registerMultiReporter() et nsIMemoryReporterManager.unregisterMultiReporter().
Changements de l'expérience utilisateur
- Les options des extensions peuvent désormais être être affichées à l'intérieur du gestionnaire de modules complémentaires.
- La destination des téléchargements est désormais gardée en mémoire sur une base site par site. Ces données peuvent être accessibles par DownloadLastDir.jsm.
Changements dans le système de compilation
- L'API d'intégration d'ActiveX n'est plus compilée et son support a été retiré du système de compilation. Des interfaces ont également été supprimées, voir Interfaces supprimées.
- Vous n'avez plus besoin de préciser
-Zc:wchar_t-lors de la compilation sous Windows. Pour plus de détails, voir la documentation sur la compilation.
Changements dans les interfaces
nsISocketTransportoffre désormais un nouveau drapeau de connexion :DISABLE_IPV6, cela entraîne des tentatives de connexion uniquement aux adresses IPv4, en ignorant toutes les adresses IPv6 disponibles. De plus,nsIDNSServiceoffre désormais un nouveau drapeau de résolution :RESOLVE_DISABLE_IPV6, ce qui entraîne un résolution des noms de domaine en ne tenant compte que des hôtes IPv4 et en ignorant toutes les adresses IPv6 disponibles. Ces changements permettent d'implémenter la stratégie "happy eyeballs" pour améliorer le temps de réponse lors d'une tentative de connexion sur les hôtes qui supportent à la fois IPv4 et IPv6 (en particulier ceux qui ont brisé la connectivité IPv6).inIDOMUtilsa deux nouvelles méthodes,inIDOMUtils.getChildrenForNode()qui renvoie une liste des nœuds enfants d'un noeud etinIDOMUtils.getUsedFontFaces()qui renvoie la liste des police de caractères utilisées dans une gamme.- L'interface
nsIMarkupDocumentViewer_MOZILLA_2_0_BRANCHa été intégrée dans l'interfacensIMarkupDocumentViewer. - L'interface
nsIDOMWindow2a été intégrée dans l'interfacensIDOMWindow. - L'interface
nsIDOMWindow_2_0_BRANCHa été intégrée dans l'interfacensIDOMWindowInternal. - Les méthodes
nsINavHistoryObserveravec des paramètres d'URI exigent désormais un GUID. - L'interface
nsISHistory_2_0_BRANCHa été intégrée dans l'interfacensISHistory. nsITelemetrya une nouvelle méthode,nsITelemetry.getHistogramById()qui retourne un histogramme par son ID, et un nouvel attributcanRecordqui, lorsqu'il est défini surfalsedésactive l'enregistrement des statistiques de télémétrie. Les statistiques de télémétrie ne sont plus enregistrées lorsque l'on est en mode de navigation privée. (voir bug Firefox 661574 et bug Firefox 661573) Les histogrammes de télémétrie définis avecnsITelemetry.newHistogram()ne seront pas rapportés dans le ping de télémétrie.- L'interface
nsIMemoryReportera été sensiblement modifiée, si vous l'utilisez, vous devez faire quelques ajustements à votre code. - Les en-têtes
nsIXMLHttpRequestfixées parnsIXMLHttpRequest.setRequestHeader()sont envoyées à la demande lorsque l'on suit une redirection. Auparavant, ces en-têtes n'auraient pas été envoyées. nsIDocShella un nouvel attributallowWindowControl. Si il esttrue, le contenu du docshell est autorisé à contrôler la fenêtre (c'est-à-dire la déplacer ou la redimensionner).- L'interface
nsIThreadInternal2a été intégrée dans l'interfacensIThreadInternal.
Nouvelles interfaces
nsIDOMFontFace-
Décrit une seule police de caractères.
nsIDOMFontFaceList-
Décrit une liste de polices de caractères, chacune représentée par
nsIDOMFontFace.
Interfaces supprimées
Les interfaces suivantes ont été supprimées car elles n'étaient plus indispensables :
nsIDOM3AttrnsIDOM3NodensIDOM3TypeInfonsIDOM3TextnsIDOMDocumentStylensIDOMNSDocumentnsIDOMNSFeatureFactorynsIDOMNSHTMLDocumentnsIDOMNSHTMLFormElementnsIDOMNSHTMLHRElementnsIDOMNSHTMLTextAreaElement
Les interfaces suivantes ont été supprimées dans le cadre du retrait de l'API ActiveX :
DITestScriptHelperDWebBrowserEventsDWebBrowserEvents2IDispatchIMozControlBridgeIMozPluginHostCtrlIWebBrowserIWebBrowser2IWebBrowserAppIXMLDocumentIXMLElementIXMLElementCollectionIXMLErrornsIActiveXSecurityPolicynsIDispatchSupportnsIMozAxPluginnsIScriptEventHandlernsIScriptEventManager
Autres changements
- La structure de la fenêtre de la bibliothèque (
places.xul) a été nettoyée. Cela pourrait casser les extensions et les thèmes - L'apparence de la fenêtre d'aperçu avant impression a été modernisé et les auteurs de thèmes sont invités à avoir le même style en utilisant les pseudo-éléments CSS
::-moz-page,::-moz-page-sequenceet::-moz-scrolled-page-sequence