Anuncian soporte de Web Serial en Firefox
(hacks.mozilla.org)- A partir de Firefox 151 para escritorio, la API de Web Serial permite que las apps web se comuniquen con dispositivos seriales compatibles sin necesidad de software nativo
- Web Serial es una API para leer y escribir en dispositivos seriales con JavaScript, lo que permite conectarse directamente a microcontroladores, impresoras 3D, medidores de energía y más
- En el flujo de trabajo de Adafruit, Web Serial permite transferir firmware para instalar CircuitPython y desplegar fácilmente código del dispositivo con el archivo
code.py - Firefox reduce los riesgos de seguridad y privacidad en el acceso a dispositivos mediante autorización explícita del usuario, permisos por sitio y por puerto, y add-on gating
- Mozilla impulsa la estandarización de Web Serial, actualmente en WICG, hacia WHATWG, y solicita pruebas y retroalimentación sobre flujos de trabajo reales con hardware
API de Web Serial y alcance del soporte
- A partir de Firefox 151 para escritorio, Firefox admite la API de Web Serial para que las aplicaciones web puedan comunicarse con dispositivos compatibles sin software nativo
- La API de Web Serial es una API web que permite a los sitios leer y escribir en dispositivos seriales con JavaScript
- Los dispositivos objetivo incluyen microcontroladores, placas de desarrollo, impresoras 3D, medidores de energía y otro hardware con conexión serial
- Entre los dispositivos compatibles con serial se incluyen placas basadas en ESP de Espressif, Raspberry Pi Picos, impresoras 3D y dispositivos LEGO
- Aunque las computadoras modernas normalmente no tienen puertos seriales, los dispositivos conectados por USB o emparejados por Bluetooth pueden anunciarse ante el sistema operativo como dispositivos con capacidad serial para aparecer como un puerto serial
- Los dispositivos compatibles con Web Serial son usados por aficionados al desarrollo, hackers de hardware, educadores, makers y desarrolladores en automatización del hogar, prototipado de hardware, impresión 3D y más
Flujo de trabajo de Adafruit y CircuitPython
- Adafruit es una de las organizaciones más representativas que muestran el uso de Web Serial en hardware de código abierto y educación STEM
- Adafruit usa Web Serial para transferir firmware e instalar rápidamente CircuitPython en sus dispositivos
- Después de la instalación, si se nombra el archivo como
code.py, en la mayoría de los dispositivos el código puede desplegarse arrastrando y soltando el archivo en el dispositivo USB - Los programas en Python pueden interoperar con una página web mediante Web Serial usando entrada y salida simple basada en texto
- Se puede usar la herramienta Adafruit Web Serial Tool, la cual es distinta al método
OPEN INSTALLERdel sitio de CircuitPython - El proyecto de ejemplo de CircuitPython con Web Serial usa Web Serial desde una página web local para enviar mensajes a un dispositivo que ejecuta el archivo de CircuitPython
- Mozilla colaboró con Adafruit para probar la implementación de Firefox con flujos de trabajo reales de hardware que esta comunidad usa con frecuencia
- El ingeniero de Mozilla Alex Franchuk creó Page Playground, que combina Web Serial con dispositivos electrónicos
Medición de energía y automatización del hogar
- Florian Quèze, de Mozilla, experimentó con varios proyectos para medir el consumo eléctrico y creó una demo que lee por Web Serial los datos de energía de medidores USB comerciales y los muestra en Firefox
- Ese código puede exportar los datos a Firefox Profiler, lo que facilita visualizar y compartir los datos de energía
- Los recursos relacionados incluyen la página, el repositorio de GitHub y los datos de Firefox Profiler que registran el uso de energía de una lámpara con tres modos de brillo
- Entre los medidores USB probados están AVHzY C3 USB, Joy-IT TC66C y YZXStudio USB ZY1280
- Home Assistant es un popular proyecto de código abierto para automatización del hogar, y ESPHome ofrece firmware compatible con Home Assistant para ESP32 económicos y dispositivos similares
- El firmware de ESPHome puede instalarse y configurarse mediante Web Serial con solo unos clics
Seguridad y privacidad
- Cuando la plataforma web puede leer y escribir en dispositivos de hardware, aumentan las preocupaciones de seguridad y privacidad
- En Web Serial, los sitios no pueden ver ni acceder a puertos seriales hasta que el usuario lo autorice explícitamente
- La autorización de puertos se otorga por sitio y por puerto
- La API de Web Serial requiere que el sitio invoque
navigator.serial.requestPort(), y el usuario puede elegir qué puerto autorizar o negar todo acceso - El sitio no recibe una lista de dispositivos conectados y, aparte del puerto elegido por el usuario, no se entrega información útil para fingerprinting
- Firefox usa add-on gating, adoptado desde su implementación de la API de Web MIDI, para que el usuario entienda cuándo y por qué un sitio solicita acceso al puerto serial
- El add-on gating informa con más detalle que otros avisos de permisos web sobre qué es exactamente lo que el usuario está autorizando
- El aviso de add-on gating aparece antes del selector de puertos cuando un sitio solicita acceso por primera vez
- En organizaciones que usan Firefox Enterprise Policies, Web Serial está deshabilitado de forma predeterminada
- Los administradores pueden permitir o bloquear explícitamente la función Web Serial en toda la organización mediante la política DefaultSerialGuardSetting
Estandarización y retroalimentación
- Web Serial sigue en etapa de Web Incubator Community Group (WICG), pero Mozilla considera que, por su alcance y el tiempo que lleva en incubación, ya tiene una ruta hacia la estandarización
- Mozilla está impulsando la estandarización de la API de Web Serial en WHATWG mediante una nueva propuesta de Workstream
- Mozilla planea colaborar con socios del ecosistema y organismos de estandarización para dar forma al enfoque de acceso web a dispositivos periféricos
- Si tienes un flujo de trabajo basado en dispositivos con Web Serial, puedes probarlo en Firefox
- Puedes compartir tu proyecto, hacer preguntas o dejar comentarios en Mozilla Connect
- Para problemas técnicos, se puede consultar support.mozilla.org o enviar un error en Bugzilla
1 comentarios
Opiniones en Lobste.rs
Estaría bien que también implementaran WebUSB
Me pregunto cómo piensan proteger a la gente crédula, especialmente a quienes no saben qué es un puerto serial. La postura sobre estándares de Mozilla también menciona algo de esto
Los teclados con funciones de macros sí me preocupan un poco más. Aun así, Chrome ya ha tenido esta función durante años sin grandes problemas, así que no lo veo como una preocupación grave. Especialmente ahora que cada vez más periféricos empiezan a usar esto para configuración, la utilidad supera por mucho al riesgo
Esto no tiene sentido. Es difícil expresar lo demente que es agregar acceso a puertos seriales a un visor de páginas web
Ah, claro. Justo lo que le faltaba a los sitios web. Estoy esperando WebRawSockets. Medio en broma, pero cuando participé hace tiempo, el grupo de trabajo de SVG realmente intentó agregar sockets sin procesar a SVG