BT

Diffuser les Connaissances et l'Innovation dans le Développement Logiciel d'Entreprise

Contribuez

Sujets

Sélectionner votre région

Accueil InfoQ Actualités Firefox 31 disponible avec de nouvelles fonctionnalités ECMAScript 6

Firefox 31 disponible avec de nouvelles fonctionnalités ECMAScript 6

Mozilla a récemment publié Firefox 31 qui contient de nouvelles implémentations d'ECMAScript 6, un détecteur de sites malveillants et de nouvelles fonctionnalités pour les développeurs de jeux.

ECMAScript 6 est la nouvelle version du standard ECMAScript, nom de code "Harmony" ou "ES.next." Dans l'article Firefox 31 pour les développeurs, l'équipe Mozilla décrit les grandes lignes des mises à jour ECMAScript 6 :

  • Une nouvelle fonction sur les Array : Array.prototype.fill() permet de remplir un tableau avec une valeur fixe d'un index de départ à un de fin.
  • Une nouvelle fonction pour Math : Math.clz32() retourne le nombre de bits à zéro dans les représentations binaires 32-bit d'un nombre.
  • Une nouvelle fonction pour les String : String.prototype.normalize() est disponible dans Firefox pour ordinateur et retourne la Normalization Unicode de la string (si ce n'est pas une string, elle est d'abord convertie en string).
  • Une nouvelle méthode pour les Object : Object.setPrototypeOf() permet d'attribuer le prototype (la propriété interne [[Prototype]]) d'un objet à un autre objet ou de passer null.
  • De nouvelles constantes sur Number : Number.MAX_SAFE_INTEGER représente le plus grand entier représentable correctement en JavaScript (ndt : 2^53 -1) et Number.MIN_SAFE_INTEGER représente le plus petit entier représentable correctement (ndt : -(2^53 -1)).

Une liste complète des fonctionnalités déjà supportées par Firefox est disponible ici.

Au delà des améliorations autour de JavaScript, la nouvelle version de Firefox 31 apporte aussi des nouveautés du côté des outils de développement comme les warning Javascript par défaut dans la Web Console, la "copie en cURL" dans le moniteur réseau qui "copie la requête dans le presse papier sous forme de commande cURL, que vous pouvez aller exécuter en ligne de commande" et "l'option de rendre persistant les logs du moniteur réseau".

Mozilla développe ce dernier point dans Firefox 31 pour les développeurs Developers [en] :

Par défaut, le moniteur réseau montre la liste de toutes les requêtes effectuées lors du chargement de la page. Chacune étant affichée sur sa propre ligne.

Cette liste est vidée à chaque navigation vers une nouvelle page ou raffraîchissement de page. À partir de Firefox 31, vous pouvez empêcher ce comportement en cochant "Activer les logs persistants" dans la configuration.

Firefox 31 embarque aussi son système de détection de code malveillant. Une présentation haut niveau de cette fonctionnalité est disponible sur le MozillaWiki :

Le user-agent effectue une vérification locale lorsqu'un fichier binaire est téléchargé. S'il n'y a pas de résultat trouvé localement, le user-agent peut effectuer une recherche distante sur Windows uniquement.

Lorsqu'un fichier binaire est téléchargé, le user-agent extrait plusieurs méta-données du fichier, dont :

  • L'URL cible de téléchargement du fichier, son referrer et toutes les URL de la chaîne de redirection
  • Le SHA-256 du contenu du fichier
  • Toute information de certificat obtenu par les API Windows Authenticode
  • La taille du fichier en bytes
  • Le nom recommandé du fichier téléchargé

À partir de ces méta-données, le user-agent effectue une vérification locale auprès d'une liste de blocage. Si le téléchargement est supporté, il vérifie une liste d'autorisation. Si le binaire est signé, la signature est vérifiée dans la liste d'autorisation.

Si une occurrence est trouvée dans la liste bloquée, le user-agent refuse la sauvegarde du fichier sur le disque. Si une occurrence est trouvée dans la liste autorisée, il peut traiter le téléchargement comme fiable et sauter l'étape de vérification en ligne. S'il n'y a pas de résultats et que le binaire n'est pas signé, le user-agent envoie une requête distante au service de réputation d'applications.

Cette fonctionnalité de détection de Firefox 31 n'est pas passée inaperçue dans la communauté des développeurs. Sur l'article Slashdot Firefox 31 publié, un utilisateur anonyme commente "le logiciel de blocage de téléchargements malveillants" est une invasion sévère de la vie privée. Il fonctionne en envoyant presque toutes les URL de téléchargement à Google".

Sur Hacker News, des ressentis similaires remontent dans les discussions sur Firefox 31.

L'utilisateur TheCraiggers commente :

Les conséquences sur la vie privée de cet ajout m'inquiètent. D'autant plus que cette fonctionnalité est invisible, Et que la seule possibilité de désactivation est d'aller dans about:config, que la plupart des gens ne connaîssent même pas. Je ne serai même pas au courant si je n'avais pas lu moi-même le changelog.

Il est important de noter que Sid Stamm, Directeur principal de l'ingénierie sécurité et de la vie privée chez Mozilla, a publié un article intitulé Améliorer la détection de logiciels malveillants dans Firefox à propos de cette fonctionnalité le 23 juillet, et que toutes les instructions nécessaires à la désactivation sont disponibles sur le MozillaWiki ici.

Stamm a indiqué à InfoQ :

À chaque fois que Safe Browsing envoie des donneés à Google, ces informations concernant des pages de phishing ou des fichiers malicieux ne sont utilisées que pour marquer de telles activités malicieuses et ne sont utilisées nulle part ailleurs chez Google. Après 2 semaines, toute information associée comme votre adresse IP est effacée et seule l'URL est conservée.

Au delà des considérations de vie privée, selon l'équipe Mozilla Hack, cette version 31 apporte de "nouvelles fonctionnalités pour aider les développeurs de jeux HTML5 à coder et debugger des jeux avancés" comme décrit dans l'article Ressources pour les développeurs de jeux HTML5.

Parmi les nombreuses améliorations des Outils de développement Firefox, on trouve des mises à jour du debugger JavaScript, de l'éditeur de styles, de l'inspecteur de pages, du Scratchpad, du Profiler, du moniteur réseau et de la console web.

D'autres améliorations notables sont également incluses comme le debugger pour Canvas. L'équipe Moillza Hack explique ainsi :

Le debugger Canvas permet de suivre tous les appels au contexte du canvas qui sont effectués pour générer une frame. Un code couleur pour chaque type d'appel est utilisé en fonction de s'il s'agit de dessin ou de l'utilisation d'un programme de shader.

Le debugger ne sert pas qu'à debugger les jeux à base de WebGL mais aussi ceux basés sur un Canvas 2D.

Deux problèmes communs qui ont été rapportés via l'utilisation du debugger Canvas concernent des animations générées avec setInterval au lieu de requestAnimationFrame et l'inspection d'éléments canvas dans une iFrame.

Pour plus d'information concernant le debugger Canvas, les développeurs peuvent lire Introduction au debugger Canvas des Outils de développement Firefox. Pour une liste complète des changements de Firefox 31, les utilisateurs et développeurs peuvent regarder les notes de publication ici.

Les lecteurs d'InfoQ peuvent contribuer à Firefox de différentes manières et ils sont les bienvenus sur le projet. Toutes les possibilités sont disponibles sur le Réseau Développeur Mozilla où de nombreux tutoriels sont également à disposition.

Evaluer cet article

Pertinence
Style

Contenu Éducatif

BT