1 pontos por GN⁺ 2 시간 전 | 1 comentários | Compartilhar no WhatsApp
  • 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 INSTALLER do 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

 
GN⁺ 2 시간 전
Comentários do Lobste.rs
  • Seria bom se também implementassem WebUSB

    • Se isso permitir gravar microcontroladores como o ESP, então 95~100% dos meus casos de uso de WebUSB estariam resolvidos
    • Alguém já implementou isso como uma extensão do Firefox: https://github.com/ArcaneNibble/awawausb
  • 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

    Dispositivos que oferecem interfaces seriais frequentemente expõem capacidades poderosas de baixo nível com pouca ou nenhuma autenticação. Expor esse tipo de capacidade à web sem salvaguardas suficientes representa uma ameaça séria para esses dispositivos

    • O único tipo de dispositivo com suporte serial que um usuário iniciante provavelmente teria em casa que me vem à cabeça é um mouse. Se a atualização de firmware não for assinada, até daria para subir malware, mas não parece um alvo muito útil para um atacante
      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

    • Não concordo. É um recurso útil demais, e fico feliz por não precisar mais mudar para o Chrome só para usar isso
    • A web já evoluiu para uma plataforma de aplicações há uns 20 anos
  • 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

    • O grupo de trabalho do SVG tentou colocar sockets brutos no SVG? Fico me perguntando o que estava acontecendo. Você lembra qual era a justificativa para isso?