Firefox 41 note de version pour les développeurs
Pour tester les dernières fonctionnalités pour les développeur·euse·s de Firefox, installez Firefox Developer Edition (angl.) Firefox 41 a été publié le 22 septembre 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 :
- Faire une capture d'écran d'un nœud DOM (angl.)
- Copier au format HAR/enregistrer au format HAR (angl.)
- Bouton « Ajouter une règle » dans la vue Règles (angl.)
- Afficher le code source dans un onglet (angl.) (Désactivé par défaut)
- Plus d'options pour copier les règles CSS (angl.)
- Copier l'image en tant qu'URL de données dans la vue Règles (angl.)
- Ajout d'une commande à GCLI pour afficher les informations CSP.
Tous les bogues des outils de développement corrigés entre Firefox 40 et Firefox 41 (angl.) : notez que bon nombre de ces bogues, en particulier ceux liés aux outils de performance, ont été reportés vers Firefox 40.
CSS
-
La prise en charge de la mise en page des scripts verticaux a été activée par défaut (bogue Firefox 1138384 (angl.)). Cela signifie que les propriétés CSS suivantes sont désormais disponibles :
- Choisir la direction de l'écriture :
writing-mode. - Contrôler l'orientation des caractères :
text-orientation. - Équivalents indépendants de la direction de
widthetheight:block-sizeetinline-size. - Équivalents indépendants de la direction de
min-widthetmin-height:min-block-sizeetmin-inline-size. - Équivalents indépendants de la direction de
max-widthetmax-height:max-block-sizeetmax-block-size. - Équivalents indépendants de la direction de
margin-top,margin-right,margin-bottometmargin-left:margin-block-start,margin-block-end,margin-inline-startetmargin-inline-end. - Équivalents indépendants de la direction de
padding-top,padding-right,padding-bottometpadding-left:padding-block-start,padding-block-end,padding-inline-startetpadding-inline-end. - Équivalents indépendants de la direction de
border-top,border-right,border-bottometborder-leftet ces versions longues pour la largeur, le style et la couleur :border-block-start,border-block-start-width,border-block-start-style,border-block-start-color,border-block-end,border-block-end-width,border-block-end-style,border-block-end-color,border-inline-start,border-inline-start-width,border-inline-start-style,border-inline-start-color,border-inline-end,border-inline-end-width,border-inline-end-styleetborder-inline-end-color. - Équivalents indépendants de la direction de
top,right,bottometleft:offset-block-start,offset-block-end,offset-inline-startetoffset-inline-end.
- Choisir la direction de l'écriture :
-
Prise en charge de la propriété
transform-origindans SVG et mise en œuvre de la propriététransform-box(bogue Firefox 923193 (angl.)).
HTML
<a>sans attributhrefn'est plus classé comme contenu interactif. Cliquer dessus à l'intérieur de<label>active le contenu étiqueté (bogue Firefox 1167816 (angl.)).- Les icônes SVG sont désormais prises en charge pour les icônes de site, c'est-à-dire les favicons et les icônes de raccourci (bogue Firefox 366324 (angl.)).
- L'attribut
crossoriginest désormais pris en charge pour<link rel='preconnect'>(bogue Firefox 1174152 (angl.)). - L'élément
<picture>ne réagit pas aux changements de taille/zone d'affichage (bogue Firefox 1135812 (angl.)).
JavaScript
Date.prototypeest désormais un objet ordinaire, et non plus une instance deDate(bogue Firefox 861219 (angl.)).Date.prototype.toStringest désormais une méthode générique (bogue Firefox 861219 (angl.)).Symbol.speciesa été ajouté (bogue Firefox 1131043 (angl.)).- Les accesseurs
Map[Symbol.species]etSet[Symbol.species]ont été ajoutés (bogue Firefox 1131043 (angl.)). - La prise en charge des expressions
letnon standard a été supprimée (bogue Firefox 1023609 (angl.)). - Les paramètres déstructurés avec affectation de valeur par défaut sont désormais pris en charge (bogue Firefox 1018628 (angl.)).
- Conformément à ES2015, les accolades sont désormais requises pour les définitions de méthodes. La syntaxe sans elles échoue dorénavant (bogue Firefox 1150855 (angl.)).
- Les définitions de méthodes (sauf pour les méthodes génératrices) ne sont plus constructibles (bogue Firefox 1059908 (angl.) et bogue Firefox 1166950 (angl.)).
- Dans le cadre de la conformité à la spécification ES2015, les modèles de destructuration entre parenthèses, comme
([a, b]) = [1, 2]ou({a, b}) = { a: 1, b: 2 }, sont désormais considérés comme invalides et déclenchent uneSyntaxError. Voir le billet de blog de Jeff Walden (angl.) pour plus de détails. - La syntaxe
new.targeta été ajoutée (bogue Firefox 1141865 (angl.)).
Interfaces/APIs/DOM
L'API HTML Editing
- La gestion des commandes couper, copier et coller a été repensée et permet désormais la copie et la coupe programmatiques depuis JS pour le contenu Web :
- Avec la commande
'paste'comme argument,Document.queryCommandSupported()retourne désormaisfalsesi les privilèges sont insuffisants pour effectuer réellement l'action (bogue Firefox 1161721 (angl.)). - Avec la commande
'cut'ou'copy'comme argument,Document.queryCommandSupported()retourne désormaistruesi elle est appelée dans le contexte d'un code initié par l'utilisateur·ice ou privilégié (bogue Firefox 1162952 (angl.)). - Avec la commande
'cut'ou'copy'comme argument,Document.execCommand()fonctionne désormais, mais uniquement dans le contexte d'un code initié par l'utilisateur·ice ou privilégié (bogue Firefox 1012662 (angl.)). - Au lieu de lever une exception,
Document.execCommand()lorsque la commande n'est pas prise en charge ou activée (bogue Firefox 1027560 (angl.)).
- Avec la commande
Évènements
- La méthode non standard
initCloseEvent()de l'évènementCloseEventet la possibilité de créer unCloseEventen utilisant la méthodedocument.createEvent('CloseEvent')ont été supprimées ; utilisez le constructeur standard,CloseEvent()à la place (bogue Firefox 1161950 (angl.)). - Sur Desktop,
PointerEventest désormais activé par défaut dans Nightly ; il n'est pas activé dans Developer Edition, Beta ou Release et ne l'est pas pour au moins certaines versions (bogue Firefox 1166347 (angl.)). - La version non préfixée de
MouseEvent.movementXetMouseEvent.movementYa été ajoutée ; les versions préfixées sont obsolètes et sont supprimées à un moment donné dans le futur (bogue Firefox 1164981 (angl.)).
Web Crypto
SubtleCrypto.importKey()etSubtleCrypto.exportKey()prennent désormais en charge les clésECDH(bogue Firefox 1050175 (angl.)).
Canvas API
HTMLCanvasElement.captureStream()etCanvasCaptureMediaStreamont été ajoutés et permettent de diffuser l'affichage d'un<canvas>en temps réel (bogue Firefox 1032848 (angl.)).MediaStream.idretourne désormais l'identifiant unique d'un flux (bogue Firefox 1089798 (angl.)).- La valeur initiale de
CanvasRenderingContext2D.filterest désormais correctement définie surnone(bogue Firefox 1163124 (angl.)).
Service Workers
-
Amélioration de notre implémentation expérimentale de Service Worker :
ServiceWorkerGlobalScope.skipWaiting()a été implémenté (bogue Firefox 1131352 (angl.)).Clients.claim()a été ajouté (bogue Firefox 1130684 (angl.)).- Les autres évènements fonctionnels des Service Workers ont été rendus héritables de
ExtendableEvent, leur donnant accès à la méthodewaitUntil()(bogue Firefox 1160527 (angl.)).
-
Les interfaces
CacheStorageetCachesont désormais prises en charge (bogue Firefox 1110144 (angl.)).
WebGL
- L'attribut de contexte WebGL
failIfMajorPerformanceCaveata été ajouté et peut être défini lors de la création d'un contexte WebGL avecHTMLCanvasElement.getContext()pour indiquer si la création d'un contexte doit échouer si les performances du système sont faibles (bogue Firefox 1164970 (angl.)).
WebRTC
- Firefox ne propose plus de serveur STUN par défaut à utiliser si aucun n'est défini lors de la construction d'une nouvelle
RTCPeerConnection. Vous devez en fournir un pour établir avec succès une connexion WebRTC.
Divers
- Sur OS X et Windows,
Navigator.onLinechange désormais en fonction de la connectivité réseau (il renvoyait toujourstrue, sauf si le mode "Travailler hors ligne" était sélectionné) auparavant (bogue Firefox 654579 (angl.)). MessagePortetMessageChannelsont désormais disponibles dans les Web workers, et sont activés par défaut dans tous les contextes (bogue Firefox 952139 (angl.)) et (bogue Firefox 911972 (angl.)).- L'API User Timing est désormais disponible dans les Web workers (bogue Firefox 1155761 (angl.)).
- L'API Notifications est désormais disponible dans les Web workers (bogue Firefox 916893 (angl.)).
DOMRequestetDOMCursorsont désormais disponibles dans les Web workers (bogue Firefox 1167650 (angl.)).- L'API CSS Font Loading a été complètement implémentée et est désormais activée par défaut (bogue Firefox 1149381 (angl.)).
- Les shared workers ne peuvent plus être partagés entre des documents privés (c'est-à-dire naviguant dans une fenêtre privée) et non privés (voir bogue Firefox 1177621 (angl.)).
- La propriété
URL.searchParamsest désormais en lecture seule (bogue Firefox 1174731 (angl.)). - La propriété
HTMLAnchorElement.hashne décode plus le fragment URL (bogue Firefox 1093611 (angl.)).
MathML
Nouvelle gestion des polices par défaut et de secours
Les formules mathématiques nécessitent des polices spéciales. Jusqu'à présent, ces polices étaient codées en dur dans la feuille de style de l'agent utilisateur mathml.css (qui définit la famille de polices sur la balise <math>) et dans l'option de préférence font.mathfont-family (qui définit les polices de secours à utiliser pour les opérateurs extensibles et grands). Firefox 41 introduit un langage interne x-math qui est automatiquement défini sur la balise <math> ainsi que les options de préférence correspondantes (par exemple, font.name.serif.x-math). La feuille de style de l'agent utilisateur définit désormais la famille de polices sur serif pour la balise <math> et l'option de préférence font.mathfont-family est remplacée par font.name.serif.x-math. Toutes les plateformes utilisent désormais essentiellement la même liste de polices de secours, avec "Latin Modern Math" comme première. Les polices par défaut/de secours peuvent être configurées à partir du menu de préférences de polices par langue standard. Pour plus de détails, voir bogue Firefox 947654 (angl.) et bogue Firefox 1160456 (angl.).
SVG
- Les icônes de site (favicons, icônes de raccourci) prennent désormais en charge le format SVG (bogue Firefox 366324 (angl.)).
Audio/Vidéo
- La préférence
media.autoplay.enableds'applique désormais également aux invocations non fiables deHTMLMediaElement.play(), c'est-à-dire aux appels provenant de scripts non activés par l'utilisateur·ice (bogue Firefox 659285 (angl.)).
Réseau
- L'en-tête
X-Content-Durationn'est plus pris en charge (bogue Firefox 1160695 (angl.)). - Les versions brouillon du protocole HTTP/2 ne sont plus prises en charge (bogue Firefox 1132357 (angl.)).
Sécurité
- La directive CSP 1.1
manifest-srcest désormais prise en charge (bogue Firefox 1089255 (angl.)). - Les versions précédentes de Firefox s'attendaient incorrectement à ce que la valeur de la directive de référent Content Security Policy
origin-when-cross-originsoit orthographiéeorigin-when-crossorigin. Cela a été corrigé pour inclure le tiret manquant.
Changements pour les développeur·euse·s de Mozilla et d'extensions
>XUL
Pas de changement.
Modules de code JavaScript
Pas de changement.
XPCOM
>Interfaces
Pas de changement.
Autres
- Une nouvelle API interne, uniquement disponible dans le contexte chrome, permet de rendre le composant racine d'une fenêtre dans un
<canvas>:CanvasRenderingContext2D.drawWidgetAsOnScreen(). Cette API utilise le système d'exploitation pour capturer le widget à l'écran. Pour plus de détails, voir bogue Firefox 1167477 (angl.).