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

Em julho, lançamos uma nova série de blogs para manter você informado sobre os desenvolvimentos das extensões. Graças ao seu feedback e à nossa colaboração contínua com outros fornecedores de navegadores no grupo da comunidade do WebExtensions, continuamos aprimorando as APIs de extensão e trabalhando para melhorar a consistência entre os navegadores.

Esta é a edição de outubro. Neste post, vamos analisar algumas das mudanças que a equipe de extensões do Chrome fez nos últimos meses, além de alguns novos recursos que serão lançados ainda este ano. Vamos começar!

Novas APIs e recursos de extensão

Nesta seção, compartilhamos alguns lançamentos de APIs importantes, analisamos brevemente outras melhorias de API e compartilhamos as próximas versões. No momento, todos os lançamentos estão disponíveis na versão Beta mais recente. Consulte a programação de lançamentos do Chromium para mais detalhes.

Destaques

Problemas conhecidos resolvidos

A equipe de extensões está trabalhando ativamente para resolver os problemas de estabilidade do Manifest V3. O Chrome 116 lançou muitas melhorias que nos ajudaram a fazer progressos significativos para fechar a lacuna de recursos entre o Manifest V2 e o V3. No Chrome 120, vamos concluir o tratamento de todas as nossas lacunas prioritárias da plataforma e fechar todos os bugs críticos documentados na página de problemas conhecidos. No momento, todos os recursos estão disponíveis no Chrome 120 Canary, exceto o suporte a fileHandler para ChromeOS Lacros e a API userScripts, que será lançada no final deste mês. Confira a página de problemas conhecidos atualizada para mais detalhes.

Melhoria na estabilidade do Service Worker

Os problemas de estabilidade relacionados ao service worker foram resolvidos. No Chrome 116, adicionamos keep-alives fortes às APIs de extensão que mostram uma solicitação do usuário e melhoramos o suporte a WebSockets. Confira o tutorial Usar WebSockets em extensões. A partir do Chrome 118, um worker de serviço vai permanecer ativo durante uma sessão ativa da API Debugger.

Confira nossas orientações atualizadas sobre o Service Worker para mais detalhes. Se os usuários ainda encontrarem problemas de estabilidade relacionados a workers de serviço nas versões do Chrome após a 119, entre em contato conosco.

Mais segurança

Antes, a navegação para alguns URLs chrome:// usando tabs.update(), tabs.create e windows.create() emitia um erro ou travava o Chrome. Além disso, o tabs.update() não conseguiu abrir um URL do JavaScript. No Chrome 117, ampliamos o número de URLs chrome:// com suporte, e o bloqueio de URL do Javascript agora também se aplica a todos os métodos da API de extensão.

No Chrome 117, os usuários vão receber notificações proativas na página "Extensões do Chrome" se uma extensão instalada não estiver mais disponível na Chrome Web Store. Isso pode acontecer se o desenvolvedor despublicar a extensão, se ela for removida por violações de políticas ou se for identificada como malware. Para saber mais, consulte Como a Verificação de segurança foi adicionada à página chrome://extensions.

No Chrome 118, as extensões não poderão navegar para URLs file:// usando as APIs chrome.tabs e chrome.windows, a menos que a opção "Permitir acesso a URLs de arquivo" esteja ativada na página de detalhes da extensão. Consulte a discussão sobre o WECG.

Mais lançamentos de APIs

  • API Runtime:a partir do Chrome 116, é possível usar runtime.getContexts() para recuperar informações sobre contextos ativos. Por exemplo, é possível verificar se há um documento fora da tela ativo.
  • API Side Panel No Chrome 116, é possível usar sidepanel.open() para 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: foi adicionada a capacidade de chamar getMediaStreamId() do service worker da extensão e receber um objeto MediaStream de um ID de stream em um documento fora da tela no Chrome 116. Consulte Gravação de áudio e captura de tela para conferir exemplos.
  • API DeclarativeNetRequest:o valor padrão da propriedade isUrlFilterCaseSensitive foi alterado para false no Chrome 118.

Em breve...

Planejamos resolver todos os itens restantes na página de problemas conhecidos com o lançamento do Chrome 120. Além disso, planejamos adicionar os seguintes recursos:

  • A API UserScripts permite que os administradores de scripts do usuário coordenem como e quando injetar uma coleção de scripts do usuário em páginas da Web. Consulte a proposta da WECG para mais detalhes.
  • Com a API ReadingList, os desenvolvedores podem criar, ler, atualizar e excluir metadados localizados no painel "Lista de leitura" do painel lateral. Assista o anúncio em Novidades nas extensões do Chrome.
  • Após o feedback no grupo da comunidade das extensões da Web, aumentamos significativamente o limite de conjuntos de regras estáticas ativados, de 10 para 50. Além disso, aumentamos o número total de conjuntos de regras estáticas permitidos de 50 para 100. Esse recurso está disponível na versão Canary.
  • A API File Handling vai estar disponível para extensões do ChromeOS a partir do ChromeOS 120, que 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.
  • As extensões poderão usar a API Push da Web por meio de self.registration.pushManager.subscribe() sem mostrar uma notificação visível ao usuário, definindo userVisibleOnly como false. Isso vai tornar as notificações push uma alternativa mais simples aos WebSockets em service workers (MV3) para comunicação assíncrona entre cliente e servidor. Consulte o bug do Chromium e a discussão do WECG para mais detalhes.

Fique de olho na página Novidades nas extensões para conferir os anúncios assim que esses recursos estiverem disponíveis no Chrome Beta.

Atualizações da documentação

Também melhoramos e adicionamos à nossa documentação. Continue a fazer perguntas no chromium-group e relatar problemas de documentação.

Destaques

Mais atualizações

Em breve...

  • Referência e tutorial da API User Scripts.
  • Tutorial e exemplos do Firebase.
  • Referência da API ReadingList.

Redesign da Chrome Web Store 🌈

Captura de tela da página inicial da Chrome Web Store..
Nova página inicial da Chrome Web Store

No início deste mês, anunciamos uma prévia da Chrome Web Store reformulada, como sugerimos no Google I/O. Confira https://chromewebstore.google.com/. Confira algumas mudanças importantes:

  • Aumentamos a lista de categorias de 11 para 17 em três grupos de categorias.
  • Melhoramos o preenchimento automático na pesquisa.
  • As capturas de tela agora são exibidas com uma qualidade muito maior. Se ainda não fez isso, faça upload de capturas de tela de 1280 x 800.
  • As respostas às perguntas na guia "Suporte" agora mostram quebras de linha.
  • Ao responder a avaliações de usuários e perguntas de suporte, sua resposta agora vai incluir um selo "Desenvolvedor" ao lado do seu nome.
  • Para fornecer aos usuários um link direto para a página de avaliações, adicione "/reviews" ao final do URL do item da loja. Por exemplo: https://chromewebstore.google.com/detail/_EXTENSION_ID_/reviews.

Agradecemos as contribuições até agora no grupo chromium-google. Participe da discussão ou envie seu feedback diretamente para a equipe do CWS usando o item de menu Enviar feedback:

Enviar feedback na página da Chrome Web Store
Como enviar feedback na página da Chrome Web Store

Além disso, você pode enviar um formulário de autoindicação para aparecer na coleção "Escolha dos editores". Fique de olho nas próximas melhorias no Painel de controle do desenvolvedor.

💡 Você sabia?

  • Há um novo vídeo sobre como depurar extensões do Chrome. Ele aborda muitos tópicos que você já conhece, mas também compartilha alguns truques úteis para usar o DevTools em extensões.
  • Agora, você precisa fornecer uma Política de Privacidade para cada extensão. Antes, só era possível adicionar uma Política de Privacidade por conta de desenvolvedor, mas isso era inconveniente se você tivesse várias extensões em uma conta. Essa nova interface está disponível na guia "Privacidade" do seu item no Painel de controle do desenvolvedor. Isso significa que as políticas de privacidade no nível da conta não são mais compatíveis.
    Captura de tela da caixa da Política de Privacidade
    Captura de tela da caixa da Política de Privacidade

Estamos entrando em contato 🙌

Continuamos a entrar em contato com a comunidade de desenvolvedores de extensões por meio de conversas individuais, lançamento de novos programas e participação em seminários. Confira alguns destaques:

  • O programa Google Developer Experts para extensões foi lançado em agosto. Temos mais de uma dúzia de novos GDEs com foco em extensões do Chrome de todo o mundo que nos fornecem ótimos feedbacks. É um momento muito empolgante para o programa.
  • Participamos da TPAC (conferência anual do W3C) como parte do Grupo da comunidade de extensões da Web e nos reunimos com representantes do Firefox e do Safari com vários membros da comunidade. Fizemos progressos significativos em vários tópicos, incluindo a criação de APIs de extensão mais consistentes, o trabalho em uma especificação e a criação de um novo conjunto de testes com base nos testes da plataforma da Web. Leia as atas completas no repositório da WECG (em inglês).
  • Na semana passada, a equipe da extensão participou da Ad-Filtering Dev Summit em Amsterdã. Ela conheceu vários de vocês em uma conversa informal que organizou antes da semana do evento e no horário de atendimento aberto na sexta-feira.
    Equipe de extensões na Conferência de Desenvolvedores sobre filtragem de anúncios
    Equipe de extensões na Conferência de desenvolvedores de filtragem de anúncios

Mesmo que você não tenha participado de nenhum desses eventos, ainda pode se envolver fazendo perguntas no grupo do Google chromium-extensions, seguindo as discussões dos parceiros do navegador no WECG e informando problemas de documentação.

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