1 points par GN⁺ 2 시간 전 | 1 commentaires | Partager sur WhatsApp
  • À partir de Firefox 151 sur desktop, l’API Web Serial est prise en charge, permettant aux applications web de communiquer avec des appareils série compatibles sans logiciel natif
  • Web Serial est une API permettant de lire et d’écrire sur des appareils série en JavaScript, avec connexion directe possible à des microcontrôleurs, imprimantes 3D, wattmètres, etc.
  • Dans le workflow Adafruit, Web Serial permet de transférer le firmware pour installer CircuitPython, puis de déployer facilement le code de l’appareil via le fichier code.py
  • Firefox réduit les risques de sécurité et de confidentialité liés à l’accès aux appareils grâce à l’autorisation explicite de l’utilisateur, aux permissions par site et par port, ainsi qu’au add-on gating
  • Mozilla fait avancer Web Serial, actuellement au stade WICG, vers une standardisation au WHATWG, et demande des tests sur de vrais workflows matériels ainsi que des retours

API Web Serial et périmètre de prise en charge

  • À partir de Firefox 151 for Desktop, l’API Web Serial est prise en charge afin que les applications web puissent communiquer avec des appareils compatibles sans logiciel natif
  • La Web Serial API est une API web qui permet à un site de lire et d’écrire sur des appareils série en JavaScript
  • Les appareils visés incluent des microcontrôleurs, cartes de développement, imprimantes 3D, wattmètres et autres matériels connectés en série
  • Parmi les appareils compatibles série figurent les cartes basées sur les ESP d’Espressif, les Raspberry Pi Pico, les imprimantes 3D et les appareils LEGO
  • Les ordinateurs récents n’ont généralement pas de port série, mais les appareils connectés en USB ou appairés en Bluetooth peuvent se présenter au système d’exploitation comme des périphériques série
  • Les appareils compatibles Web Serial sont utilisés par les bidouilleurs, hackers hardware, éducateurs, makers et développeurs pour l’automatisation domestique, le prototypage matériel, l’impression 3D, etc.

Workflow Adafruit et CircuitPython

  • Adafruit est l’une des organisations emblématiques montrant l’usage de Web Serial dans le matériel open source et l’enseignement STEM
  • Adafruit permet d’installer rapidement CircuitPython sur ses appareils en transférant le firmware via Web Serial
  • Après l’installation, en nommant le fichier code.py, il est possible sur la plupart des appareils de déployer le code par simple glisser-déposer vers le périphérique USB
  • Les programmes Python peuvent interagir avec une page web via Web Serial au moyen d’entrées/sorties textuelles simples
  • Il est possible d’utiliser l’Adafruit Web Serial Tool, à distinguer de la méthode OPEN INSTALLER du site CircuitPython
  • L’example CircuitPython Web Serial project utilise Web Serial depuis une page web locale pour envoyer des messages à un appareil exécutant un fichier CircuitPython
  • Mozilla a collaboré avec Adafruit pour tester son implémentation Firefox sur des workflows matériels réels couramment utilisés dans cette communauté
  • L’ingénieur Mozilla Alex Franchuk a créé Page Playground, qui combine Web Serial et appareils électroniques

Mesure de puissance et automatisation domestique

  • Florian Quèze de Mozilla a expérimenté plusieurs projets de mesure de la consommation électrique et créé une démo qui lit, via Web Serial, les données de puissance de wattmètres USB du commerce pour les afficher dans Firefox
  • Le code peut exporter les données vers Firefox Profiler, ce qui facilite la visualisation et le partage des données de puissance
  • Les ressources associées comprennent la page, le dépôt GitHub et des données Firefox Profiler enregistrant la consommation d’un éclairage avec trois niveaux de luminosité
  • Parmi les wattmètres USB testés figurent l’AVHzY C3 USB, le Joy-IT TC66C et le YZXStudio USB ZY1280
  • Home Assistant est un projet open source populaire pour l’automatisation domestique, et ESPHome fournit un firmware compatible Home Assistant pour les ESP32 bon marché et appareils similaires
  • Le firmware ESPHome peut être installé et configuré via Web Serial en quelques clics

Sécurité et confidentialité

  • Permettre à la plateforme web de lire et d’écrire sur des appareils matériels accroît les préoccupations de sécurité et de confidentialité
  • Avec Web Serial, un site ne peut ni voir ni accéder aux ports série tant que l’utilisateur ne l’a pas explicitement autorisé
  • L’autorisation des ports se fait par site et par port
  • L’API Web Serial impose qu’un site appelle navigator.serial.requestPort(), puis l’utilisateur peut choisir le port auquel accorder l’accès ou tout refuser
  • Le site ne reçoit pas la liste des appareils connectés, et aucun renseignement utile de fingerprinting n’est fourni en dehors du port sélectionné par l’utilisateur
  • Firefox utilise l’add-on gating introduit dans son implémentation de la Web MIDI API afin que l’utilisateur comprenne quand et pourquoi un site demande l’accès à un port série
  • L’add-on gating informe plus précisément l’utilisateur sur ce qu’il autorise que les autres invites de permission web
  • L’invite d’add-on gating s’affiche avant l’invite de sélection du port lorsque le site demande l’accès pour la première fois
  • Dans les organisations utilisant Firefox Enterprise Policies, Web Serial est désactivé par défaut
  • Les administrateurs peuvent explicitement autoriser ou bloquer Web Serial à l’échelle de l’organisation via le paramètre de politique DefaultSerialGuardSetting

Standardisation et retours

  • Web Serial est encore au stade du Web Incubator Community Group (WICG), mais Mozilla estime qu’au vu de son périmètre et de la durée de son incubation, une voie de standardisation existe
  • Mozilla pousse actuellement à la standardisation de l’API Web Serial au WHATWG via une nouvelle proposition de Workstream
  • Mozilla prévoit de collaborer avec les partenaires de l’écosystème et les organismes de standardisation pour façonner l’approche d’accès web aux périphériques
  • Si vous avez un workflow Web Serial basé sur un appareil, vous pouvez le tester dans Firefox
  • Vous pouvez partager votre projet, poser des questions ou laisser vos retours sur Mozilla Connect
  • En cas de problème technique, consultez support.mozilla.org ou signalez un bug sur Bugzilla

1 commentaires

 
GN⁺ 2 시간 전
Commentaires sur Lobste.rs
  • Ce serait bien qu’ils implémentent aussi WebUSB

    • Si cela permet le flashage de microcontrôleurs comme les ESP, alors 95 à 100 % de mes cas d’usage de WebUSB seraient couverts
    • Quelqu’un en a déjà fait une extension Firefox : https://github.com/ArcaneNibble/awawausb
  • Je me demande comment ils comptent protéger les gens crédules, surtout ceux qui ne savent pas ce qu’est un port série. La position sur les standards de Mozilla dit aussi ceci

    Les appareils offrant une interface série exposent souvent de puissantes capacités bas niveau avec peu ou pas d’authentification. Exposer ce type de capacités au web sans protections suffisantes représente une menace importante pour l’appareil concerné

    • Le seul type d’appareil avec support série qu’un utilisateur débutant pourrait posséder et qui me vient à l’esprit, c’est une souris. Si les mises à jour de firmware ne sont pas signées, un malware pourrait peut-être y être injecté, mais ça ne me semble pas être une cible très utile pour un attaquant
      Les claviers avec fonctions macro m’inquiètent un peu plus. Cela dit, Chrome a cette fonctionnalité depuis des années sans problème majeur, donc je n’y vois pas une inquiétude sérieuse. Surtout maintenant que les périphériques l’utilisent de plus en plus pour la configuration, l’utilité dépasse largement le risque
  • C’est absurde. Il est difficile d’exprimer à quel point c’est insensé d’ajouter l’accès au port série à un afficheur de pages web

    • Je ne suis pas d’accord. C’est une fonctionnalité bien trop utile, et je suis content de ne plus devoir passer sur Chrome juste pour ça
    • Le web est déjà devenu une plateforme applicative il y a environ 20 ans
  • Ah oui, bien sûr. C’est exactement ce qu’il manquait aux sites web. J’attends maintenant WebRawSockets. C’est à moitié une blague, mais quand j’y participais autrefois, le groupe de travail SVG essayait réellement d’ajouter des sockets brutes à SVG

    • Le groupe de travail SVG a essayé de mettre des sockets brutes dans SVG ? Je me demande bien ce qui se passait. Tu te souviens de la raison ?