Firefox 36 note de version pour les développeurs
Firefox 36 a été publié le 24 février 2015. Cet article répertorie les principaux changements utiles non seulement pour les développeur·euse·s web, mais aussi pour les développeur·euse·s Firefox et Gecko ainsi que pour les développeur·euse·s d'extensions.
Changements pour les développeur·euse·s web
>Outils de développement
Points forts :
- Les sources d'évaluation apparaissent désormais dans le débogueur (angl.)
- Processus simplifié pour se connecter à Firefox pour Android (angl.)
- Le surligneur du modèle de boîte fonctionne sur les cibles distantes
- Option "Inverser l'arborescence des appels" dans le profileur (angl.)
- Inspecter les promesses DOM dans la console (angl.)
- Commandes "Coller" supplémentaires dans l'inspecteur (angl.)
Tous les bogues des outils de développement corrigés entre Firefox 35 et Firefox 36 (angl.).
CSS
- La propriété
will-changea été activée par défaut (bogue Firefox 961871 (angl.)). - La propriété
white-spacefonctionne désormais sur les éléments HTML<textarea>(bogue Firefox 82711 (angl.)). - Le descripteur
unicode-rangeest désormais pris en charge par@font-face(bogue Firefox 475891 (angl.)), mais n'est pas activé par défaut. - Les propriétés
text-decoration-color,text-decoration-lineettext-decoration-stylesont désormais non préfixées (bogue Firefox 825004 (angl.)). Les versions préfixées restent disponibles pendant un certain temps pour faciliter la transition (bogue Firefox 1097922 (angl.)). - La propriété
text-decorationest désormais une propriété raccourcie (bogue Firefox 1039488 (angl.)). - Les propriétés
object-fitetobject-positionsont désormais prises en charge (bogue Firefox 624647 (angl.)) - La valeur
contentsde la propriétédisplaya été implémentée expérimentalement. Elle est désactivée par défaut (bogue Firefox 907396 (angl.)). - En mode Quirks, le bogue
:activeet:hovertremblant a été modifié pour être appliqué moins souvent : il est maintenant utilisé uniquement sur les liens, uniquement s'il n'y a pas de pseudo-élément ou d'autre pseudo-classe dans l'élément et s'il ne fait pas partie d'un élément de pseudo-classe (bogue Firefox 783213 (angl.)). - La propriété
isolationa été implémentée (bogue Firefox 1077872 (angl.)). - Les
<gradient>CSS s'appliquent désormais sur les couleurs multipliées en amont, conformément à la spécification et aux autres navigateurs, et éliminent les couleurs grises inattendues apparaissant dans celles-ci (bogue Firefox 591600 (angl.)). - La syntaxe de l'indice d'interpolation a été ajoutée à
<gradient>(bogue Firefox 1074056 (angl.)). - La propriété
scroll-behaviora été implémentée (bogue Firefox 1010538 (angl.)).
HTML
- La prise en charge de
<meta name="referrer">a été ajoutée (bogue Firefox 704320 (angl.)). - Dans Firefox, les filtres définis dans l'attribut
acceptde<input>sont toujours sélectionnés par défaut, sauf s'il y a une valeur inconnue, c'est-à-dire un type MIME inconnu ou une valeur mal formatée dans l'attributaccept. Les filtres définis étaient auparavant sélectionnés par défaut uniquement pour les valeursimage/*,video/*etaudio/*(bogue Firefox 826185 (angl.)).
JavaScript
-
Le type de données
Symbolde ECMAScript 2015 (angl.) a été activé par défaut (était disponible dans le canal Nightly depuis la version 33) (bogue Firefox 1066322 (angl.)) : -
L'ancienne chaîne de caractère de remplacement
"@@iterator"a été remplacée par le véritable symbole bien connu ES2015Symbol.iteratorpour la clé de propriété de l'interface itérable (bogue Firefox 918828 (angl.)). -
L'opération abstraite interne à la spécification
ToNumber(string)prend désormais en charge les littéraux binaires (0b) et octaux (0o), ce qui constitue un changement potentiellement incompatible avec ES5 (bogue Firefox 1079120 (angl.)).Number("0b11")retourne désormais3, et nonNaN."0o11" == 9retourne désormaistrue, et nonfalse.
-
La déclaration
constest désormais limitée au bloc et nécessite un initialiseur (bogue Firefox 611388 (angl.)). Elle ne peut plus non plus être redéclarée (bogue Firefox 1095439 (angl.)).{const a=1}; a;génère désormais uneReferenceErroret ne retourne plus1en raison de la portée du bloc.const a;génère désormais uneSyntaxError(« missing = in const declaration ») : un initialiseur est requis.const a = 1; a = 2;génère également uneSyntaxError(« invalid assignment to const a »).
-
La méthode ES2016
Array.prototype.includesa été implémentée, mais pour l'instant, elle n'est activée que dans les versions Nightly (bogue Firefox 1069063 (angl.)). -
L'opérateur
deletedéclenche désormais la « zone temporelle morte » lorsqu'il est utilisé avecletetconst(bogue Firefox 1074571 (angl.)). -
Les blocs et expressions
letnon standard sont obsolètes et affichent désormais un avertissement dans la console. Ne les utilisez plus, ils seront supprimés à l'avenir. -
Le constructeur
WeakMapgère désormais l'argument itérable optionnel (bogue Firefox 1092537 (angl.)).
Interfaces/APIs/DOM
-
La méthode
CanvasRenderingContext2D.resetTransform()de l'API Canvas a été implémentée (bogue Firefox 1099148 (angl.)). -
ECDSA est désormais pris en charge dans l'API Web Crypto (bogue Firefox 1034854 (angl.)).
-
Notre implémentation expérimentale de WebGL 2.0 progresse !
- L'interface
WebGLQueryest disponible (bogue Firefox 1048719 (angl.)). - La méthode
WebGL2RenderingContext.invalidateFrameBuffer()a été implémentée (bogue Firefox 1076456 (angl.)).
- L'interface
-
L'interface
MediaDevices, contenant la version basée surPromisedegetUserMedia(), a été ajoutée. Elle est disponible avecNavigator.mediaDevices(bogue Firefox 1033885 (angl.)). -
La méthode
Navigator.requestMediaKeySystemAccess()liée à l'EME, ainsi que l'interfaceMediaKeySystemAccess, est désormais prise en charge (bogue Firefox 1095257 (angl.)). -
L'évènement
keyschangeest désormais envoyé lorsqu'un CDM lié à l'EME modifie les clés dans une session (bogue Firefox 1081755 (angl.)). -
Les valeurs par défaut des options pour
MutationObserver.observe()ont été mises à jour pour correspondre à la dernière spécification (bogue Firefox 973638 (angl.)). -
La prise en charge expérimentale des dispositifs de réalité virtuelle est disponible derrière la préférence
dom.vr.enabled, désactivée par défaut (bogue Firefox 1036604 (angl.)). -
La fonction associée à
RTCPeerConnection.onsignalingstatechangereçoit désormais un évènement en paramètre, conformément à la spécification (bogue Firefox 1075133 (angl.)). -
L'implémentation expérimentale des animations Web progresse : la méthode
AnimationPlayer.play()etAnimationPlayer.pause()sont désormais prises en charge (bogue Firefox 1070745 (angl.)), ainsi queAnimationPlayer.playState(bogue Firefox 1037321 (angl.)). -
L'interface non standard
DOMRequestdispose désormais d'une méthodeDOMRequest.then()(bogue Firefox 839838 (angl.)). -
Les méthodes de contrôle du comportement de défilement de CSSOM View,
Element.scroll(),Element.scrollTo(),Element.scrollBy(), etElement.scrollIntoView(), ont été implémentées ou étendues (bogue Firefox 1045754 (angl.) et bogue Firefox 1087559 (angl.)). -
L'affectation à
Element.innerHTMLsur unSVGElementcrée désormais des éléments dans l'espace de noms SVG (bogue Firefox 886390 (angl.)). -
La méthode
nsIWebBrowserPersist.saveURI()nécessite désormais 8 arguments, dans un ordre incompatible avec les versions précédentes. -
La prise en charge des Media Source Extensions (MSE) est activée par défaut dans les versions non build (Nightly et Developer Edition uniquement) (bogue Firefox 1000686 (angl.)). Elle reste désactivée dans les versions Beta et Release.
MathML
Pas de changement.
SVG
Pas de changement.
Audio/Vidéo
Pas de changement.
Réseau
- La prise en charge de SPDY/3 a été supprimée ; la prise en charge de SPDY/3.1 est toujours disponible (bogue Firefox 1097944 (angl.)).
Sécurité
- RC4 est désormais considéré comme non sécurisé et tous les indicateurs de l'interface utilisateur réagissent en conséquence ; SSLv3 a été désactivé par défaut dans Firefox 34, mais l'interface utilisateur a été modifiée pour aider l'utilisateur·ice à mieux comprendre ce qui se passe (bogue Firefox 1093595 (angl.)).
- De plus, RC4 n'est plus proposé lors de la poignée de main initiale de TLS (bogue Firefox 1088915 (angl.)).
- La directive
form-actionde CSP 1.1 est désormais prise en charge (bogue Firefox 529697 (angl.)). - Dans les préférences de Firefox, le composant de sélection Ne pas suivre est à nouveau un interrupteur marche/arrêt (bogue Firefox 1071747 (angl.)).
Changements pour les développeur·euse·s de Mozilla et d'extensions
>SDK d'extension
Points forts
-
Le module
sdk/test/httpd(angl.) a été supprimé, utilisez plutôt le module npm addon-httpd (angl.). -
Ajout de badges aux boutons
sdk/ui(angl.) (bogue Firefox 994280 (angl.)). -
Implémentation de la fonction globale
requirepour accéder aux modules sdk n'importe où (bogue Firefox 1070927 (angl.)), en utilisant :jsconst { require } = Cu.import( "resource://gre/modules/commonjs/toolkit/require.js", {}, );
Détails
Instantanés GitHub faits entre Firefox 35 et Firefox 36 (angl.).
Modules de code JavaScript
PromiseUtils.resolveOrTimeoutest implémenté (bogue Firefox 1080466 (angl.)).PromiseUtils.defer(un remplacement dePromise.defer()) est implémenté (bogue Firefox 1093021 (angl.)).
Interfaces
nsIContentPolicy
De nouvelles constantes ont été ajoutées à nsIContentPolicy pour permettre aux internes de Gecko et au code des extensions de mieux différencier les différents types de requêtes. Celles-ci sont :
TYPE_FETCH-
Indique une requête de chargement de contenu initiée par la méthode
fetch(). TYPE_IMAGESET-
Indique une requête de chargement d'un
<img>(avec l'attributsrcsetou l'élément<picture>).
XUL
Pas de changement.
Autre
- L'option de ligne de commande
-remotede Firefox a été supprimée (bogue Firefox 1080319 (angl.)).