Anunciado o suporte a Web Serial no Firefox
(hacks.mozilla.org)- A partir do Firefox 151 para desktop, a Web Serial API é compatível, permitindo que apps web se comuniquem com dispositivos seriais compatíveis sem software nativo
- Web Serial é uma API para ler e gravar em dispositivos seriais com JavaScript, permitindo conexão direta com microcontroladores, impressoras 3D, medidores de energia e outros
- No fluxo de trabalho da Adafruit, o Web Serial envia firmware para instalar o CircuitPython e facilita a distribuição do código do dispositivo por meio do arquivo
code.py - O Firefox reduz os riscos de segurança e privacidade no acesso a dispositivos com permissão explícita do usuário, permissões por site e por porta, e add-on gating
- A Mozilla está promovendo a padronização do Web Serial, atualmente em estágio WICG, no WHATWG, e solicita testes e feedback sobre fluxos de trabalho com hardware real
Web Serial API e escopo de suporte
- A partir do Firefox 151 for Desktop, a Web Serial API é compatível, permitindo que aplicações web se comuniquem com dispositivos compatíveis sem software nativo
- A Web Serial API é uma API web que permite que sites leiam e gravem em dispositivos seriais com JavaScript
- Os dispositivos-alvo incluem microcontroladores, placas de desenvolvimento, impressoras 3D, medidores de energia e outros hardwares com conexão serial
- Entre os dispositivos compatíveis com serial estão placas baseadas em Espressif ESP, Raspberry Pi Picos, impressoras 3D e dispositivos LEGO
- Computadores modernos geralmente não têm porta serial, mas dispositivos conectados via USB ou pareados por Bluetooth podem se anunciar ao sistema operacional como dispositivos seriais
- Dispositivos compatíveis com Web Serial são usados por hobbistas, hackers de hardware, educadores, makers e desenvolvedores em automação residencial, prototipagem de hardware, impressão 3D e mais
Fluxo de trabalho da Adafruit e CircuitPython
- A Adafruit é uma das organizações mais representativas no uso de Web Serial em hardware open source e educação STEM
- A Adafruit usa Web Serial para enviar firmware e instalar rapidamente o CircuitPython em seus dispositivos
- Após a instalação, se o arquivo for nomeado como
code.py, na maioria dos dispositivos é possível distribuir o código arrastando o arquivo para o dispositivo USB - Programas em Python podem interoperar com páginas web via Web Serial usando entrada e saída simples baseadas em texto
- É possível usar o Adafruit Web Serial Tool, distinto do método
OPEN INSTALLERdo site do CircuitPython - O example CircuitPython Web Serial project usa Web Serial em uma web page local para enviar mensagens a um dispositivo executando um arquivo CircuitPython
- A Mozilla trabalhou com a Adafruit para testar a implementação do Firefox em fluxos de trabalho reais de hardware comumente usados nessa comunidade
- O engenheiro da Mozilla Alex Franchuk criou o Page Playground, que combina Web Serial com dispositivos eletrônicos
Medição de energia e automação residencial
- Florian Quèze, da Mozilla, experimentou vários projetos para medir consumo de energia e criou uma demo que lê dados de energia de medidores USB comerciais via Web Serial e os exibe no Firefox
- O código pode exportar os dados para o Firefox Profiler, facilitando visualizar e compartilhar os dados de energia
- Os recursos relacionados incluem a page, o GitHub repo e dados do Firefox Profiler que registram o uso de energia de uma luz com três modos de brilho
- Entre os medidores USB testados estão AVHzY C3 USB, Joy-IT TC66C e YZXStudio USB ZY1280
- O Home Assistant é um popular projeto open source de automação residencial, e o ESPHome fornece firmware compatível com Home Assistant para ESP32s baratos e dispositivos similares
- O firmware do ESPHome pode ser instalado e configurado via Web Serial com apenas alguns cliques
Segurança e privacidade
- Quando a plataforma web pode ler e gravar em dispositivos de hardware, as preocupações com segurança e privacidade aumentam
- No Web Serial, sites não podem ver nem acessar portas seriais até que o usuário permita explicitamente
- A permissão de portas é concedida por site e por porta
- A Web Serial API exige que o site chame
navigator.serial.requestPort(), e o usuário pode escolher a porta à qual deseja conceder acesso ou negar todo acesso - O site não recebe uma lista dos dispositivos conectados, e nenhuma informação útil para fingerprinting é fornecida além da porta escolhida pelo usuário
- O Firefox usa add-on gating, introduzido na implementação da Web MIDI API, para que o usuário entenda quando e por que um site está pedindo acesso à porta serial
- O add-on gating informa com mais detalhes do que outros prompts de permissão da web exatamente o que o usuário está autorizando
- O prompt de add-on gating é exibido antes do prompt de seleção de porta quando o site solicita acesso pela primeira vez
- Em organizações que usam Firefox Enterprise Policies, o Web Serial fica desativado por padrão
- Administradores podem permitir ou bloquear explicitamente o recurso Web Serial em toda a organização com a configuração de política DefaultSerialGuardSetting
Padronização e feedback
- O Web Serial ainda está no estágio Web Incubator Community Group (WICG), mas a Mozilla entende que, dado o escopo e o longo período de incubação, existe um caminho para padronização
- A Mozilla está promovendo a padronização da Web Serial API no WHATWG por meio de uma nova proposta de Workstream
- A Mozilla pretende colaborar com parceiros do ecossistema e órgãos de padronização para moldar a forma como a web acessa periféricos
- Se você tiver um fluxo de trabalho baseado em dispositivos com Web Serial, pode testá-lo no Firefox
- É possível compartilhar o projeto, fazer perguntas ou deixar feedback no Mozilla Connect
- Para problemas técnicos, consulte o support.mozilla.org ou envie um bug no Bugzilla
1 comentários
Comentários do Lobste.rs
Seria bom se também implementassem WebUSB
Fico curioso sobre como pretendem proteger pessoas fáceis de enganar, especialmente quem não sabe o que é uma porta serial. A posição sobre padrões da Mozilla também fala disso
Teclados com função de macro me preocupam um pouco mais. Ainda assim, o Chrome já tem esse recurso há anos sem grandes problemas, então não vejo isso como uma preocupação grave. Especialmente agora que periféricos estão usando cada vez mais isso para configuração, a utilidade supera em muito o risco
Isso não faz sentido. É difícil expressar o quão insano é adicionar acesso à porta serial a um visualizador de páginas web
Ah, claro. Era exatamente isso que estava faltando em sites. Agora só falta o WebRawSockets. Estou meio brincando, mas quando eu participava disso antigamente, o grupo de trabalho do SVG realmente tentou adicionar sockets brutos ao SVG