La petite chronique du web #1
Le web a toujours été un média en constante évolution. Les standards se raffinent et s’enrichissent en même temps que les navigateurs les implémentent. Avec des navigateurs qui se mettent à jour toutes les 6 semaines il faut rester à l’affût pour savoir ce que sont les nouveautés qui arrivent. Tous les trimestres, on se fait un petit tour d’horizon pour rester à jour. Alors, que s’est-il passé au 1er trimestre 2019 ? (et un peu fin 2018)
Edge
On en a déjà parlé dans un article précédent, Edge va changer de moteur de rendu. On en reparlera quand Edge 19 sera là.
En attendant, Edge 18 est sorti le 13 novembre 2018 et parmi les éléments notables à retenir on trouvera :
- Le support du format d’image WebP (via une extension système, ce qui peut créer des effets de bord un peu problématiques)
- Le contrôle de l’autoplay par les utilisateurs pour les médias embarqués dans une page web. Puisque l’utilisateur a le contrôle sur cette fonctionnalité, Microsoft a fourni quelques bonnes pratiques à suivre par les développeurs web pour ne pas avoir de mauvaises surprises.
- Le support complet de l’API Web Authentication.
Chrome
De son côté Chrome a sorti deux versions : Chrome 72 le 29 janvier et Chrome 73 le 12 mars. Les points clés de ces mises à jour sont les suivants:
- De manière générale, Chrome 72 s’est beaucoup focalisé sur les questions de sécurité, mais sans changement majeur en dehors de l’activation de la User Activation API V2 et du retrait du support du HTTP Public Key Pinning.
- On notera aussi quelques compléments notables sur certaines API : le support de l’API Intl.ListFormat, un fix de l’API Cache.addAll() pour mieux suivre la spécification et le support de l’API MediaDevices.getDisplayMedia()
- Chrome 73 est un peu plus funky avec quelques nouveautés à suivre de près, en particulier l’implémentation de l’API Constructable Stylesheet Objects. Un nouveau brouillon de spécification poussé par Google pour permettre de créer programmatiquement un objet feuille de style sans avoir à utiliser de balise <script> ou <link>.
- On notera également l’arrivée de “SXG” (Signed HTTP Exchange) qui doit permettre de décorréler la source d’un contenu du serveur qui l’héberge réellement. Attention tout de même, il y a des discussions assez tendues sur la sécurité du modèle proposé dans ce draft.
- Dernier point à retenir pour ce trimestre, pas mal de raffinement avec des implémentations tests de nouvelles API pour les PWA (Auto Picture-in-Picture, Badge API) et surtout, enfin, le support des PWA sur les environnements de bureau.
Firefox
Firefox aussi a sorti deux versions au premier trimestre : Firefox 65 le 29 janvier et Firefox 66 le 19 mars. On retiendra les points suivants :
- Mise à disposition d’un installeur MSI pour un meilleur déploiement en entreprise sous Windows (32 et 64-bit) avec un certain nombre de paramètres d’administration. Grâce à ça, Firefox devient enfin une vraie solution d’entreprise.
- Support du codec AV1 pour la vidéo sous Windows
- Ajout du support du format d’image WebP. On n’attend plus que l’implémentation dans Safari pour que ce format d’image soit pleinement interopérable (modulo les réserves sur Edge vues ci-avant)
- Pas mal d’améliorations dans les outils développeurs, en particulier l’inspecteur FlexBox. Combiné avec l’onglet des modifications des styles, Firefox devient le navigateur de choix pour débugger du layout CSS.
- Comme Edge 18, Firefox 66 ajoute le contrôle de l’autoplay par les utilisateurs.
- Support de la norme CSS Scroll Anchoring, qui permet de contrôler finement des points d’ancrage dans le défilement. Très pratique pour être sûr que même en scrollant l’utilisateur s’arrêtera toujours « au bon endroit » visuellement parlant.
- Un point super important pour les développeurs, les devtools ne sont plus bloqués quand le débogueur est sur un point d’arrêt \o/
- Enfin, un gros travail de fond sur les performances a été fait. D’une part pour améliorer les performances et la gestion du stockage d’information des extensions Web ; d’autre part avec Firefox lui-même qui a doublé le nombre de processus qu’il peut utiliser sans impact sur la mémoire consommée.
Safari
Safari étant mis à jour avec Mac OS et iOS, pas de nouvelle version de Safari à commenter. Cependant, pour les testeurs, nous avons eu droit à un train de Safari Technology Preview : 73 le 9 janvier, 74 le 23 janvier, 75 le 6 février, 76 le 20 février, 77 le 6 mars et 78 le 20 mars. Quelques points d’attention sont à noter :
- Beaucoup de travail sur les outils développeur et l’inspecteur web en particulier.
- Ajout du support de l’API Web Authentication.
- L’API Web SQL non-standard a été désactivée par défaut (STP 74).
- Un gros travail est fait autour de la solution d’Apple de protection de la vie privée sur le web : Intelligent Tracking Prevention 2.1. On notera en particulier, la gestion de l’expiration des cookies assez agressive et la suppression de l’en-tête HTTP Do Not Track. (STP 75)
- Enfin le support de Pointer Events arrive ! (STP 78)
On y reviendra lors de la prochaine sortie majeure de Safari, vraisemblablement au mois de septembre prochain.
Standards et spécifications
Au-delà des implémentations spécifiques, des avancées plus globales sont faites sur le front des standards eux-mêmes.
Tous les navigateurs ont annoncé en octobre dernier l’abandon du support de TLS 1.0 et 1.1 en 2020. TLS 1.0 n’est déjà plus compatible PCI depuis juin 2018 donc ce n’est pas un problème et toutes les infrastructures devraient déjà avoir migré. S’il vous reste encore des infrastructures sous TLS 1.1, c’est le moment ou jamais d’entamer les migrations vers TLS 1.2 (et Chrome 72 va émettre des warning dans la console pour vous le rappeler). Pas d’excès de zèle non plus, c’est trop tôt pour TLS 1.3 puisque Safari et Edge ne l’ont pas encore déployé, mais ça arrive donc tenez-vous prêts.
Enfin, de son coté, le TC39 (l’instance de standardisation de JavaScript) vient de lancer un site qui permet de suivre l’avancée du travail sur la spécification JavaScript : tc39.github.io, une excellente source d’information si vous voulez savoir comment évolue JavaScript.