O que está acontecendo nas extensões do Chrome?

Amy Steam
Amy Steam

Até agora, 2023 foi um ano movimentado no mundo das extensões do Chrome. Seu feedback valioso nos permitiu melhorar a plataforma de extensão e nossa documentação. Também continuamos colaborando com outros fornecedores de navegadores no WebExtensions Community Group para que as APIs de extensão funcionem de maneira mais consistente em todos os navegadores.

Nesta postagem, vamos compartilhar algumas mudanças nas quais a equipe de extensões do Chrome trabalhou durante o primeiro semestre deste ano e quais recursos serão lançados no final deste trimestre. Vamos começar!

Novos recursos e APIs de extensões

Nesta seção, quero destacar alguns lançamentos de API significativos, analisar brevemente outras melhorias de API e compartilhar as próximas versões da API.

Destaques

Documentos fora da tela

A API Offscreen foi apresentada no Chrome 109. Ele permite que as extensões do Manifest V3 lidem com casos de uso que precisam de interação com o DOM ou a janela, o que não pode ser executado no service worker de extensão. Além disso, o Chrome 114 apresentou dois outros motivos fora da tela: 'WORKERS', para instâncias em que o documento precisa gerar um worker, e 'LOCAL_STORAGE', para ajudar a migrar dados do window.localStorage para a API chrome.storage.

A partir do Chrome 115, é possível apresentar vários motivos ao criar um documento fora da tela. Isso permite que você execute duas tarefas relacionadas no mesmo documento.

Nova API Side Panel 🎉

Antes, a única maneira de criar barras laterais em extensões era injetando um novo elemento com scripts de conteúdo em todas as páginas. A API Side Panel foi iniciada no Chrome 114. Agora você pode desenvolver uma experiência de barra lateral complementar para os usuários de maneira muito mais direta. Leia mais sobre como a API Side Panel permite criar uma experiência melhor para o usuário.

Uma extensão de dicionário que mostra a definição de uma palavra selecionada
Extensão de dicionário do painel lateral. Consulte o código no repositório chrome-extensions-samples.

Service Workers mais robustos

Todos os eventos de extensão agora reiniciam o timer de inatividade do service worker. No Chrome 110, o ciclo de vida máximo de cinco minutos foi removido para os service workers de extensões. Além disso, as mensagens para aplicativos nativos e mensagens na extensão reiniciam o timer de inatividade. Leia mais sobre isso no artigo O ciclo de vida do service worker de extensão.

Mais lançamentos de API

  • API Action: a partir do Chrome 110, você pode personalizar o texto do selo com setBadgeTextColor() e getBadgeTextColor(). Além disso, o isEnabled() permite verificar se a ação está ativada na guia atual.
  • API Commands: o bug em que os atalhos de extensão, declarados no manifesto em "commands._execute_action", não persistiam durante a conversão para MV3, foi corrigido no Chrome 111.
  • API Downloads: a interface de downloads padrão no Chrome foi movida de uma estante na parte de baixo para o lado direito da omnibox. Para desativar esse comportamento, use downloads.setUiOptions(), que substitui setShelfEnabled().
  • API History: o chrome.history.getVisits() e o chrome.history.search() também retornam dados de outros dispositivos que foram sincronizados com o banco de dados do histórico local. Isso pode resultar em mais entradas no histórico e contagens de visitas mais altas. O isLocal foi adicionado ao VisitItem no Chrome 115 (que deve ficar estável ainda este mês) para poder filtrar apenas por visitas locais.
  • API Identity: a janela de autenticação agora aparece como um pop-up, em vez de ocupar uma janela inteira do aplicativo. Para garantir mais controle durante o processo de redirecionamentos JavaScript, adicionamos duas novas opções: abortOnLoadForNonInteractive e timeoutMsForNonInteractive.
  • API Storage: no Chrome 112, o tamanho do armazenamento do chrome.session aumentou para 10 MB. O tamanho do armazenamento de chrome.local foi alterado para corresponder ao Chrome 114.

Em breve...

As próximas versões do Chrome vão apresentar muitos recursos para facilitar a migração das extensões para o Manifesto V3. Para ver uma lista das próximas alterações relacionadas à migração do MV3, confira nossa página de problemas conhecidos. Além disso, planejamos adicionar os seguintes recursos:

  • API DeclarativeNetRequest: o valor padrão da propriedade isUrlFilterCaseSensitive vai mudar para false. Consulte a linha de execução WECG.
  • A API File Handling permite que as extensões do ChromeOS abram arquivos com tipos MIME e extensões de arquivo especificados. No momento, esse recurso está por trás de uma sinalização.
  • API Runtime: estamos lançando runtime.getContexts() para substituir extension.getViews(), que foi descontinuado. Assim, as extensões poderão determinar se uma página da extensão, como o painel lateral ou um documento fora da tela, está aberta. Confira a proposta do WECG.
  • Service workers: estamos adicionando keep-alives fortes às APIs do Chrome que exibem uma solicitação do usuário: permissions.request(), desktopCapture.chooseDesktopMedia(), identity.launchWebAuthFlow() e management.uninstall().
  • API Side Panel: estamos lançando o sidepanel.open(), que vai abrir o painel lateral da extensão de forma programática em resposta a um gesto do usuário, como um clique no menu de contexto.
  • API TabCapture: adicionamos a capacidade de chamar getMediaStreamId() do service worker de extensão e receber um MediaStream de um ID de stream em um documento fora da tela. Consulte Gravação de áudio e captura de tela para exemplos.

Fique de olho na página O que há de novo nas extensões para saber mais sobre esses comunicados assim que eles forem disponibilizados no Chrome Beta.

Upgrades de documentação e mais orientações sobre o Manifest V3

Também estamos trabalhando muito para melhorar a experiência de aprendizado dos desenvolvedores. Agradecemos a todos que se dedicaram a fazer perguntas sobre o chromium-group e informar problemas de documentação em developer.chrome.com.

Destaques

  • A nova seção Migração do MV3 oferece maneiras práticas de converter extensões do Manifest V2 para o Manifesto V3.
  • O guia Workers de serviço de extensão fornece informações detalhadas sobre os tópicos dos service workers de extensão. Isso inclui como eles são registrados e atualizados, a aparência do ciclo de vida, como as importações funcionam e muito mais.
  • O tutorial Gerenciar eventos com service workers ensina os conceitos básicos dos service workers de extensão. Ele cria uma extensão omnibox que oferece acesso rápido a páginas de referência da API de extensão.

Mais atualizações

Em breve...

  • Como migrar código hospedado remotamente para o Manifesto V3.
  • Como executar testes automatizados para extensões do Chrome.
  • Melhoria nas orientações sobre solicitações de rede declarativas.
  • Melhorias na explicação do script de conteúdo.

💡 Você sabia?

Antes de encerrar, queremos compartilhar alguns insights e ferramentas úteis:

  • O Chrome começou a trabalhar no suporte ao WebHID. Você pode testar a API a partir do Chrome 115, mas saiba que esse trabalho ainda está em andamento.
  • O Puppeteer agora é compatível com testes no modo headless usando --headless=new . Leia mais sobre isso na postagem do blog Upgrade para o modo headless do Chrome (em inglês).
  • Com a Ferramenta de teste de atualização de extensões, você pode verificar quais avisos são acionados quando as permissões mudam no manifesto. Dessa forma, use o processo de atualização como um usuário. Isso é importante porque algumas permissões podem desativar a extensão até que o usuário conceda o acesso novamente.

Vamos nos conectar. 🙌

Neste ano, a equipe de extensão teve a satisfação de conhecer os desenvolvedores de extensões pessoalmente durante os eventos do Google I/O Connect. Estamos trabalhando na criação de novos espaços para se conectar com você, como grupos de discussão e eventos de encontro.

Enquanto isso, continue fazendo perguntas nos chromium-groups, considere participar do WECG e relate quaisquer problemas de documentação no repositório do GitHub do developer.chrome.com.

Agradecemos novamente por fazer parte da comunidade de desenvolvedores de extensões.