Novidades do Chrome 120 para extensões

O Chrome 120 já está disponível na versão Beta e inclui muitas atualizações interessantes para desenvolvedores de extensões do Chrome.

Tem sido um ano movimentado para a equipe de Extensões do Chrome. Com o lançamento Beta do Chrome 120 de ontem, a plataforma de extensões fez mais um grande avanço. Para ter uma visão geral do que aconteceu este ano, confira as atualizações trimestrais de julho e outubro. Continue lendo para saber as novidades do Chrome 120 para extensões.

Eliminação das lacunas na plataforma

Com o lançamento do Chrome 120, vamos diminuir as lacunas restantes na plataforma listadas na página de problemas conhecidos do Manifest V3. A nova API userScript, bem como o suporte para gerenciamento de arquivos no ChromeOS, são os dois itens restantes na lista que agora podemos riscar. Junto com as mudanças descritas na atualização trimestral anterior, estamos muito felizes com o estado atual da plataforma de extensões do Chrome e com o que conquistamos no ano passado.

Nova API userScripts

O suporte ao script de usuário chegou! Os scripts do usuário são, em geral, snippets de código relativamente pequenos que as extensões podem injetar nas páginas da Web para modificar a aparência ou o comportamento delas. Eles podem ser criados diretamente pelo usuário ou descobertos em vários repositórios de scripts de usuário diferentes na Web. A partir do Chrome 120, as extensões Manifest V3 podem gerenciar a coleção de scripts do usuário e determinar quando e como injetá-los em páginas da Web.

Há uma diferença significativa entre o suporte a script de usuário no Manifesto V2 e no Manifesto V3. Como os scripts de usuário são avançados e exigem alta confiança no autor, a equipe do Chrome decidiu que os usuários precisam ativar o modo de desenvolvedor antes de executar um script de usuário.

Página "Extensões"
Página de extensões (chrome://extensions)

Nosso novo exemplo de userScript (link em inglês) demonstra uma abordagem simples para detectar se o modo de desenvolvedor está ativado e oferece um fluxo de integração simples.

Exemplo de fluxo de integração para scripts de usuário.
Integrar usuários quando o modo de desenvolvedor estiver desativado.

Para começar, consulte a documentação ou o exemplo oficial (em inglês).

Limites mais altos de regras de DNR estáticos

Aumentamos significativamente o limite de conjuntos de regras estáticos ativados de 10 para 50. Além disso, aumentamos o número total de conjuntos de regras estáticos permitidos de 50 para 100. Isso é uma resposta ao feedback que recebemos no grupo da comunidade de extensões da Web.

Nova API ReadingList

O Chrome lançou a Lista de leitura em 2021. No ano passado, a equipe do Chrome facilitou ainda mais o acesso à lista de leitura pelo painel lateral. Com o Chrome 120, as extensões do Chrome podem criar, ler, atualizar e excluir entradas da lista de leitura. Para saber mais, confira os documentos da API e nosso novo exemplo.

Lista de leitura do Chrome mostrando páginas de documentos da extensão.
Painel lateral da Lista de leitura no Chrome.

Processamento de arquivos no ChromeOS

O processamento de arquivos permite que as extensões abram arquivos com tipos MIME e extensões de arquivo especificados de maneira semelhante ao processamento de arquivos da plataforma da Web. Confira Gerenciamento de arquivos no ChromeOS para saber mais sobre como usá-lo.

Captura de tela do arquivo aberto com a caixa de diálogo da extensão no ChromeOS
Abra arquivos em uma extensão no ChromeOS.

Disparar um alarme em 30 segundos

Essa é uma atualização pequena, mas aborda uma lacuna importante no ciclo de vida do service worker. Devido à natureza orientada a eventos dos service workers, a maneira recomendada de disparar um evento no futuro é usar chrome.alarms. A Alarms API garante que o evento seja disparado mesmo que o service worker seja desligado nesse meio tempo.

Mas há um problema. Antes do Chrome 120, o período mais curto para acionar um alarme era de um minuto. No entanto, os service workers são encerrados após 30 segundos de inatividade. Não havia uma forma simples de programar um alarme para disparar em 45 segundos porque, ao usar o setTimeout() para definir um evento em 45 segundos, o service worker poderia ser desligado antes que o evento fosse disparado.

A partir do Chrome 120, você pode disparar um evento nos seguintes apps:

await chrome.alarms.create('demo-default-alarm', {
   periodInMinutes: 0.45
 });

Resumo

Estamos muito entusiasmados com o progresso que a plataforma de extensão fez no ano passado. O Chrome 120 é outro grande passo com os limites crescentes de DNR e suporte a scripts de usuário.