Developpez.com

Le Club des Développeurs et IT Pro

Firefox 52, disponible en téléchargement, s'accompagne de l'activation par défaut de WebAssembly,

Ainsi que du support des grilles de mise en page

Le 2017-03-08 11:33:26, par Stéphane le calme, Chroniqueur Actualités
Mozilla a rendu disponible la version 52 de son navigateur Firefox. Cette version marque le début du support de WebAssembly pour les navigateurs, qui est activé par défaut sur Firefox. Une nouveauté logique étant donné que la WebAssembly Community Group, qui représente les quatre navigateurs Chrome, Edge, Firefox et WebKit, avait affirmé être parvenue à un consensus sur le fait que la conception de la première API WebAssembly et le format binaire sont complets. « Ceci marque la fin de la Browser Preview et indique que les navigateurs peuvent commencer à livrer WebAssembly par défaut », avait précisé la WebAssembly CG.

WebAssembly permettra aux applications complexes de fonctionner de façon optimale sur navigateur – telles que les jeux vidéo immersifs en 3D, le design informatisé, l’édition d’image et de vidéo et la visualisation scientifique. À ce propos, des démonstrations ont été mises en ligne l'année dernière, désormais il s’agit de passer à une implémentation concrète. Les développeurs pourront utiliser WebAssembly pour accélérer les applications web existantes.


Comme Chrome, Firefox affiche désormais un message sur les pages HTTP qui proposent de se connecter avec un identifiant et un mot de passe. L’utilisateur est alerté que les données peuvent être compromises parce qu’il ne s’agit pas d’une page sécurisée (HTTPS).

Jusqu'à maintenant, Firefox affichait un cadenas barré dans la barre d’adresse lorsque vous vous trouviez sur une page n'utilisant pas SSL/TLS et qui contenait un champ de mot de passe. En cliquant dessus, il était possible de lire un message d'information expliquant la raison de cette mention. Désormais, ce message sera affiché directement au sein du formulaire.


Dans le même temps, les cookies sécurisés sont désormais gérés de manière stricte. Ainsi, un site HTTP ne pourra plus gérer un cookie ayant le même nom qu'un cookie sécurisé depuis le même domaine.

Cette version facilite également la connexion aux hotspots Wi-Fi. Si vous avez déjà eu des soucis pour vous connecter au réseau Wi-Fi d’un hôtel par exemple, c’est sûrement parce que vous deviez vous connecter à un portail captif. Ces portails captifs sont souvent problématiques, car la page de connexion est difficile à trouver si le système d’exploitation ne le détecte pas. Très souvent, vous essayez de vous rendre sur une page Web et tombez sur une page d’erreur.

Avec cette nouvelle version, Firefox détecte désormais automatiquement les portails captifs et vous notifie du besoin de vous connecter. En plus, après que Firefox a détecté un portail captif, le navigateur remplace les pages d’erreurs liées aux certificats par un message vous incitant à vous connecter.

Dans cette version, Firefox a amélioré la sécurité et les performances en désactivant tous les plugins (sauf Flash) utilisant l’API Netscape Plugin (NPAPI). Plus tard dans l’année, Mozilla améliorera encore Firefox afin que le contenu Flash ne soit activé qu’avec le consentement de l’utilisateur.

Firefox apporte aussi le support du module CSS Grid layout (grilles de mise en page), qui est un module de la spécification CSS permettant de créer des mises en page en divisant l'espace d'affichage en régions utilisables par une application ou en définissant des relations de taille, position et d'empilement entre les éléments HTML.

Comme les tableaux, la grille permet d'aligner des éléments sous forme de colonnes et de lignes, mais à la différence des tableaux, la grille n'a pas de structure de contenu. Grâce à ce module, il est possible de créer de nombreuses mises en page qui n'auraient pas été possibles avec les tableaux. Ainsi, les éléments fils d'un conteneur en grille peuvent être positionnés afin qu'ils se chevauchent ou qu'ils se comportent comme des éléments positionnés.


Pour le moment, seul Firefox prend le module en charge.

Voici un exemple d’utilisation :

Code HTML :
1
2
3
4
5
6
7
8
<div class="wrapper"> 
  <div class="box a">a</div> 
  <div class="box b">b</div> 
  <div class="box c">c</div> 
  <div class="box d">d</div> 
  <div class="box e">e</div> 
  <div class="box f">f</div> 
</div>
Code CSS :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
.wrapper {  
  display: grid;  
  grid-template-columns: 100px 100px 100px;  
  grid-gap: 10px;  
  background-color: #fff;  
  color: #444;  
}  
  
.box {  
  background-color: #444;  
  color: #fff;  
  border-radius: 5px;  
  padding: 20px;  
  font-size: 150%;  
}

Notons également côté développeur l’amélioration de l’outil d’analyse du responsive design, les fonctions asynchrones d'ECMAScript 2017 (async) et l'opérateur await.

Télécharger Firefox pour Windows, Mac et Linux
Notes de version de Firefox pour Windows, Mac et Linux
Télécharger Firefox pour Android
Notes de version de Firefox pour Android

Source : Mozilla
  Discussion forum
9 commentaires
  • laerne
    Membre éprouvé
    Envoyé par Ahrimanox
    Au final assez proche d'une VM si ce n'est la même chose !
    La VM, c'est firefox.
  • Volgaan
    Membre confirmé
    Attention : si j'ai bien compris, WebAssembly n'est qu'une autre manière de représenter du code JS, dans un format plus "machine friendly". Ce n'est pas un nouveau langage avec de nouvelles possibilités, on ne peut rien faire de plus ou de moins qu'avec JS
  • Aiekick
    Membre extrêmement actif
    webassembly ?? une vm quoi ?
  • Ahrimanox
    Membre à l'essai
    Si j'ai bien compris ce sera juste un langage coté-client plus bas niveau que le JS standardisé pour certains navigateurs (cf. le Texte).
    Genre tu pourras le générer à partir de compil. de sources d'autres langages (genre C/C++, etc..) pour avoir un code assembleur standardisé.
    Ensuite les navigateurs le parseront pour l'exécuter.

    Au final assez proche d'une VM si ce n'est la même chose !
  • Zefling
    Expert confirmé
    Envoyé par eclesia
    Mais ca va permettre a ceux comme moi de ne plus utiliser JS/HTML du tout, plus que les API standards.

    On va pouvoir faire des applis avec du bytecode webassembly et un canvas webgl pour le rendue. (Comme la librairie Zebra/ZebKit mais sans JS)
    Il y aura bien 3grammes de JS car une page web est encore basé sur HTML mais on va bien finir par virer tout ces vieilleries
    Tu faisais de l'AS3 avant ? En tout cas, j'ai bien peur que l’accessibilité en prenne un coup avec des interfaces « canvas ».
  • hotcryx
    Membre extrêmement actif
    Envoyé par eclesia

    Il y aura bien 3grammes de JS car une page web est encore basé sur HTML mais on va bien finir par virer tout ces vieilleries
    Pour le remplacer par du C, C++ !
    "Vieillerie" JS qui fait bien son boulot
  • Uther
    Expert éminent sénior
    Si tu veux des langages modernes, Rust est déjà capable de générer du WebAssembly.
  • eclesia
    Rédacteur
    Envoyé par Volgaan
    Attention : si j'ai bien compris, WebAssembly n'est qu'une autre manière de représenter du code JS, dans un format plus "machine friendly". Ce n'est pas un nouveau langage avec de nouvelles possibilités, on ne peut rien faire de plus ou de moins qu'avec JS
    Mais ca va permettre a ceux comme moi de ne plus utiliser JS/HTML du tout, plus que les API standards.

    On va pouvoir faire des applis avec du bytecode webassembly et un canvas webgl pour le rendue. (Comme la librairie Zebra/ZebKit mais sans JS)
    Il y aura bien 3grammes de JS car une page web est encore basé sur HTML mais on va bien finir par virer tout ces vieilleries
  • eclesia
    Rédacteur
    Envoyé par Zefling
    Tu fais de l'AS3 avant ? En tout cas, j'ai bien peur que l’accessibilité en prenne un coup avec des interfaces « canvas ».
    Je suis developpeur back, pas front donc le coté accessibilité d'une page web angular/gwt/haxe c'était déjà pas tres humain alors je ne pense pas qu'on y perd beaucoup.

    Bref, je dis que c'est une bonne chose d'avoir enfin une alternative réaliste à Flash/Applet Java, le JS aillant lamentablement échoué à les remplacer même après 10 ans.