Novidades das extensões do Chrome

Acesse esta página com frequência para saber mais sobre as mudanças nas extensões do Chrome, na documentação de extensões, nas políticas relacionadas ou em outras mudanças. Confira outros avisos postados no Grupo do Google de extensões. A programação do Chrome lista as datas de lançamento estáveis e Beta.

Chrome 126: testes de origem em extensões

Postado em

O Chrome 126 apresenta um novo campo manifest.json, trial_tokens, que permite ativar testes de origem e de descontinuação em todas as plataformas de extensão. Leia o guia para mais informações.

Postagem do blog: O que vai acontecer nas extensões do Chrome (abril de 2024)

Postado em

Publicamos uma nova edição do artigo O que está acontecendo nas extensões do Chrome. A postagem discute o que a equipe de extensão tem trabalhado nos últimos meses. Isso inclui: reversão de versões na Chrome Web Store, melhoria no suporte ao Firebase Auth e mais lançamentos e atualizações de APIs.

Reversões de versão no Painel de controle do desenvolvedor da Chrome Web Store

Postado em

Reverta sua extensão para a versão publicada anteriormente na Chrome Web Store, sem revisão adicional. Leia a postagem do blog e a documentação para mais informações.

Chrome 124: API documentScan avançada

Postado em

Uma API documentScan avançada já está disponível no ChromeOS para descobrir e extrair imagens de scanners de documentos anexados.

Chrome 124: suporte para WebGPU em service workers

Postado em

Desde o Chrome 124, os service workers são compatíveis com a WebGPU. Para um início rápido, confira a amostra de extensão WebGPU.

Chrome 123: a API Events oferece suporte à filtragem por blocos CIDR

Postado em

A API Events agora oferece suporte à filtragem por blocos de roteamento entre domínios sem classe (CIDR). Um bloco CIDR é uma coleção de endereços IP que compartilham um prefixo de rede e o mesmo número de bits. Anteriormente, um desenvolvedor precisava filtrar vários endereços IP necessários para configurar uma regra de filtro para cada um dos endereços no intervalo de blocos. Agora, quando uma extensão chamar addListener(), uma regra transmitida significa que o manipulador de eventos só será chamado quando a parte do host de um URL for um endereço IP e estiver contido em qualquer um dos blocos CIDR especificados em uma matriz.

Chrome Web Store: atualizações nos requisitos de tamanho de nome de extensão

Postado em

Na Chrome Web Store, agora há um limite universal de 75 caracteres para o campo "name" de uma extensão no manifesto.json. Anteriormente, o limite para o inglês era de 45 caracteres, e não havia restrição ao campo "name" em outras localidades.

Originalmente, o objetivo era permitir diferenças culturais e de idioma que podem não ser capturadas no mesmo número de caracteres. Infelizmente, esse recurso foi usado indevidamente por um pequeno número de desenvolvedores para enviar spam na loja. Como resultado, introduzimos um novo limite universal, um aumento para 75 caracteres. Esse limite cobre quase todas as extensões na loja atualmente. Por isso, provavelmente você não precisará fazer nada como resultado dessa mudança. Se você tentar fazer upload de uma extensão com um nome maior do que o limite máximo, o upload será bloqueado pelo armazenamento.

Postagem do blog: Jornada da Eyeo para testar a suspensão do service worker

Postado em

Nesta postagem da equipe do Extension Engine da eyeo, exploramos o problema dos testes dos service workers de extensão. No Manifest V2, as extensões ficavam em uma página em segundo plano, que estavam ativadas durante todo o ciclo de vida da extensão. O Manifest V3 usa service workers, e eles, por padrão, economizam recursos desativando quando não são necessários. Isso apresenta alguns desafios de teste. Nesta postagem, explicamos como a Eyeo enfrentou esses desafios.

Chrome 123: os alarmes agora são executados quando o dispositivo está em suspensão

Postado em

Os alarmes definidos usando a API chrome.alarms não são mais atrasados quando um dispositivo entra em suspensão. Quando o dispositivo for ativado, o alarme será disparado uma vez, independente de quantos alarmes tiverem sido perdidos. Por exemplo, digamos que um alarme esteja definido para disparar uma vez por hora e o dispositivo em que ele está suspenso esteja em suspensão das 0h55 às 2h05, então apenas o alarme das 2h aciona o evento onAlarm. Ele será disparado o mais próximo possível das 2h e imediatamente quando um dispositivo for ativado, se estiver em modo de suspensão.

Essa mudança une o Chrome ao comportamento acordado no Grupo da comunidade de extensões da Web.

Postagem do blog: Mudanças no comportamento do bfcache com portas de mensagem de extensão

Postado em

O cache de avanço e retorno (bfcache) é uma otimização de navegador que permite a navegação instantânea de retorno e avanço. A partir do Chrome 123, quando uma página com uma porta de extensão aberta é armazenada no bfcache, o canal de mensagem é fechado, o que significa que nenhuma mensagem será enviada para essa página. Consequentemente, os scripts de extensão precisam detectar eventos de ciclo de vida, como onDisconnect, e configurar uma nova conexão quando a página for restaurada do BFCache.

Para mais informações e exemplos de código, consulte Mudanças no comportamento do BFCache com portas de mensagem de extensão.

Chrome 122: promessa de suporte em APIs de extensão assíncronas

Postado em

Terminamos de implementar o suporte a promessas para todos os métodos de API de extensão assíncrona. Isso foi feito para modernizar os métodos de API, melhorando a ergonomia da lidar com operações assíncronas. Alguns métodos (por exemplo, desktopCapture.chooseDesktopMedia()) continuam a oferecer suporte apenas a callbacks porque as superfícies atuais não são compatíveis com promessas. Para compatibilidade com versões anteriores, callbacks ainda são aceitos. Se você encontrar uma promessa que falha, registre um bug.

Novas orientações para comunicação em tempo real

Postado em

Acabamos de publicar guias sobre opções em tempo real para extensões. As atualizações em tempo real fornecem um caminho de comunicação instantâneo dos servidores diretamente para as instalações da extensão. Além disso, temos novas orientações para o uso do chrome.gcm, o envio da Web.

Novas orientações e exemplo: como testar o encerramento do service worker

Postado em

Acabamos de publicar um guia sobre como testar o encerramento do service worker com o Puppeteer. O exemplo complementar (link em inglês) demonstra isso no Puppeteer e no Selenium.

Exemplo atualizado para mensagens nativas

Postado em

Acabamos de publicar um exemplo atualizado para mensagens nativas. Essa API permite que sua extensão seja iniciada e se comunique com outro aplicativo. Agradecemos ao colaborador do GitHub Shubham-Rasal (em inglês) pelo trabalho.

Chrome 121: nova propriedade lastAccessed nas guias.Tab

Postado em

Uma nova propriedade chamada lastAccessed foi adicionada ao objeto tabs.Tab. Essa propriedade indica quando a guia foi ativada pela última vez. O valor retornado está em milissegundos desde o período.

Chrome 121: as chaves de "segundo plano" sem suporte agora emitem um aviso

Postado em

Na mudança do Manifest V2 para o Manifest V3, os filhos da chave de manifesto "background" foram alterados para acomodar a substituição de scripts em segundo plano por service workers de extensão. Antes, adicionar as chaves do Manifesto V2 "scripts", "page" ou "persistent" à chave "background" de uma extensão do Manifesto V3 geraria um erro. A presença dessas chaves agora aciona um aviso.

O objetivo é permitir o uso de um único arquivo de manifesto em extensões de vários navegadores, de acordo com uma proposta no grupo da comunidade.

Chrome 120: granularidade mínima do alarme reduzida para 30 segundos

Postado em

A partir do Chrome 120, as extensões do Manifest V3 podem usar a API chrome.alarms com atrasos ou períodos de 30 segundos, em vez de exigir valores de 60 segundos ou mais.

Postagem do blog: Retomando a transição para o Manifest V3

Postado em

O cronograma de suporte do Manifest V2 foi atualizado. Confira mais detalhes na postagem do blog de novembro de 2023.

Postagem do blog: Melhorias no suporte à filtragem de conteúdo no Manifest V3

Postado em

Saiba como melhoramos a API declarativeNetRequest na nossa nova postagem do blog.

Postagem do blog: Novidades do Chrome 120 nas extensões

Postado em

O Chrome 120 Beta foi lançado recentemente. Para ver um resumo das atualizações importantes relevantes para desenvolvedores de extensões, leia nossa nova postagem do blog: Novidades do Chrome 120 para extensões. Essa versão também marca um marco importante, porque remove os dois itens finais (userScripts, gerenciador de arquivos no ChromeOS) da lista de lacunas críticas da plataforma.

PSA: mudança no tratamento de URLs da Política de Privacidade no Painel de controle do desenvolvedor

Postado em

As políticas de privacidade no Painel de controle do desenvolvedor agora são adicionadas no nível do item. Assim, é possível fornecer uma Política de Privacidade diferente para cada item. Saiba mais sobre essa mudança no nosso PSA (em inglês).

Vídeo: um chat com Matt Frisbie

Postado em

Acabamos de publicar um novo vídeo no canal do YouTube Chrome for Developers, que vai conversar com o especialista do Google Developers e autor Matt Frisbie. Assista aqui.

Nova orientação sobre o teste de extensões

Postado em

Acabamos de publicar novas orientações sobre como criar testes automatizados para extensões, incluindo como criar testes de unidade, além de orientações gerais e um tutorial sobre testes completos.

Postagem do blog: O que está acontecendo com as extensões do Chrome – outubro de 2023

Postado em

Acabamos de publicar a segunda edição de O que está acontecendo nas extensões do Chrome. A publicação mostra no que a equipe de extensão tem trabalhado nos últimos meses, incluindo a resolução de problemas de estabilidade dos service workers e o progresso de como solucionar todas as lacunas da plataforma MV3. Também compartilhamos lançamentos interessantes de APIs, como a API Reading List e a API User Scripts.

Aumento dos limites de conjuntos de regras estáticas na API Declarative Net Request.

Postado em

Depois do feedback no grupo da comunidade de extensões da Web, estamos aumentando significativamente o limite de conjuntos de regras estáticos ativados de 10 para 50. Além disso, vamos aumentar o número total de conjuntos de regras estáticos permitidos de 50 para 100. No momento, isso está disponível no Canary.

Melhorias nas orientações sobre código hospedado remotamente

Postado em

Um requisito do Manifest V3 é que as extensões não possam mais usar códigos hospedados remotamente. Embora isso faça parte do nosso guia de migração desde o início, achamos que valia a pena melhorar as orientações sobre esse problema. Essa página agora fornece mais informações, descrevendo o que ainda é possível no Manifesto V3 e fornecendo mais informações sobre estratégias de upgrade.

Há um complemento relacionado à Solução de problemas de violações da Chrome Web Store. Uma nova seção descreve motivos comuns para a rejeição de extensões com código hospedado remotamente.

Chrome 118: isUrlFilterCaseSensitive agora é definido como "false" por padrão

Postado em

A partir do Chrome 118, a propriedade isUrlFilterCaseSensitive na API chrome.declarativeNetRequest foi modificada para o padrão como false. Para manter o comportamento antigo, defina isUrlFilterCaseSensitive explicitamente como true nas regras declarativeNetRequest.

Veja a seguir as discussões no grupo da comunidade de extensões da Web. O Firefox e o Safari já implementaram uma mudança semelhante.

Documentação sobre cookies e APIs de armazenamento na Web

Postado em

Publicamos um novo guia sobre como os cookies e as APIs de armazenamento na Web funcionam nas extensões do Chrome. Ele inclui detalhes sobre as mudanças no particionamento de cookies e armazenamento no Sandbox de privacidade, um projeto em andamento para descontinuar cookies de terceiros com a criação de uma série de novas APIs de plataforma da Web, além de detalhes sobre como elas funcionam em extensões.

Agora é possível pesquisar as amostras de extensões

Postado em

Recentemente, criamos uma página em que você pode pesquisar exemplos de extensões do Chrome. A página de pesquisa tem várias opções. Uma caixa de pesquisa permite buscar texto em títulos de amostra. Você pode restringir a pesquisa por permissão ou API de extensão. Um filtro adicional permite restringir a pesquisa a amostras de API ou funcionais (caso de uso).

Esta nova página de amostra foi criada por um participante do Google Summer of Code, Xuezhou Dai, que também contribuiu com várias novas amostras. Leia sobre essa experiência na postagem no nosso blog.

Como antes, nossos exemplos de código ainda estão disponíveis no GitHub para clonagem ou bifurcação.

Chrome 118: alterações na abertura de arquivos: esquemas de URLs

Postado em

A partir do Chrome 118, as extensões precisarão ativar a configuração "Permitir o acesso a URLs de arquivo" na página chrome://extensions para abrir URLs de esquema file:// usando as APIs Tabs ou Windows. É possível verificar programaticamente esse acesso chamando chrome.extension.isAllowedFileSchemeAccess(). O Firefox já restringe os URLs dos arquivos, e o Safari é compatível com essa mudança. Para mais informações, leia a postagem no Grupo do Google de extensões.

Chrome 117: proteções de URL expandidas nas navegações da API de extensão

Postado em

Anteriormente, a navegação acionada por chamadas de API de extensão para tabs.update(), tabs.create() e windows.create() gerava um erro para alguns URLs chrome://. Além disso, chamar tabs.update() com um URL JavaScript era proibido. Na versão 117, essas proteções em URLs JavaScript foram expandidas para o método tabs.create(), e vários outros URLs chrome:// foram adicionados à lista de URLs proibidos que se aplica a todos os métodos mencionados anteriormente.

Melhorias na orientação para a API declarativeNetRequest.

Postado em

A API chrome.declarativeNetRequest bloqueia ou modifica solicitações de rede especificando regras declarativas. Isso permite que as extensões modifiquem solicitações de rede sem interceptar e visualizar o conteúdo, oferecendo mais privacidade aos usuários. Também é difícil de usar. Com isso em mente, reescrevemos a orientação de uma forma que achamos mais clara sobre como implementar conjuntos de regras declarativos. Leia a nova seção no link acima.

Como usar sua conta do Google Analytics com a Chrome Web Store

Postado em

A Chrome Web Store oferece integração com o Google Analytics, o que permite que você veja análises da sua página de detalhes na Chrome Web Store, além da visualização oferecida no Painel de controle do desenvolvedor. Para mais informações, leia Como usar sua conta do Google Analytics com a Chrome Web Store.

Chrome 115: DevTools sobre scripts de conteúdo por padrão

Postado em

Agora, os scripts de conteúdo injetados estão na lista de ignorados do DevTools por padrão. Isso não afeta os pontos de interrupção, mas significa que os scripts de conteúdo serão ignorados durante a depuração e as exceções desses scripts serão ignoradas. Quando um script de conteúdo está aberto na guia Origens, um banner avisa se isso está ativado e oferece uma opção para remover o script de conteúdo da lista de ignorados. Para desativar esse comportamento, abra o DevTools, acesse Configurações e Lista de ignorados. Para saber mais, consulte Novidades no DevTools.

Chrome 116 Beta: mais do que podemos encaixar aqui

Postado em

O Chrome 116 é uma grande versão para extensões. Agora é possível abrir painéis laterais de maneira programática. Um novo método permite que você saiba se há um documento fora da tela ativo. Os service workers receberam várias melhorias. Há melhorias suficientes no 116, por isso escrevemos uma postagem de blog a respeito. O Chrome 116 está na versão Beta desde 19 de julho.

Postagem do blog: O que está acontecendo com as extensões do Chrome

Postado em

Acabamos de publicar uma visão geral das mudanças e melhorias nas extensões deste ano. A postagem discute os grandes recursos novos do ano, incluindo a API Side Panel, melhorias de service worker e documentos fora da tela. Você também poderá dar uma olhada no que estamos fazendo para este trimestre. O artigo traz muito mais informações, com links para todas elas.

Novas orientações e exemplos: saiba como usar o Google Analytics 4 na sua extensão do Chrome

Postado em

Publicamos novos exemplos e orientações do Google Analytics e de geolocalização:

Chrome 115: especificar vários motivos em chrome.offscreen.createDocument()

Postado em

Agora você pode especificar vários tipos enumerados reason ao chamar chrome.offscreen.createDocument(). Use quando um documento fora da tela for usado para vários fins. O navegador usa os motivos fornecidos para determinar a vida útil do documento fora da tela.

Nova ferramenta: ferramenta de teste de atualização de extensão

Postado em

Acabamos de lançar a Ferramenta de teste de atualização de extensões, um servidor de atualização de extensões local que pode ser usado para testar atualizações de extensões do Chrome durante o desenvolvimento local, incluindo concessões de permissões. A ferramenta mostra o fluxo de atualização do usuário, incluindo manter uma extensão desativada até que o usuário conceda as novas permissões solicitadas. Essa ferramenta é particularmente útil para simular as mudanças de permissão solicitadas ao atualizar uma extensão do Manifesto V2 para o Manifesto V3.

Chrome 114: nova API Side Panel

Postado em

Apresentamos a nova API Side Panel, uma plataforma complementar que permite aos usuários acessar ferramentas junto com o conteúdo em que estão navegando. Para saber mais, acesse a referência da API Side Panel. Além disso, adicionamos muitas amostras de painéis laterais ao nosso repositório de exemplos do GitHub (link em inglês). Também compartilhamos mais informações sobre os painéis laterais na nova postagem do blog Como projetar uma experiência do usuário superior com a nova API Side Panel. Nossa política de diretrizes de qualidade e as práticas recomendadas também foram analisadas para fornecer mais orientações sobre a criação de extensões de painel lateral de alta qualidade.

Seu feedback é importante para a criação dessa API. Compartilhe suas ideias e solicitações de recursos na página chromium-groups. Fique de olho nas novas atualizações à medida que melhoramos a API Side Panel.

Novas amostras: WASM em extensões

Postado em

Há duas novas amostras disponíveis que demonstram como usar o WASM em uma extensão:

Agradecimentos especiais ao colaborador do GitHub @daidr por essas amostras.

Orientações sobre a migração do Manifest V3 atualizadas

Postado em

Atualizamos a seção Problemas conhecidos da nossa orientação sobre a migração do Manifest V3 com uma lista atualizada de lacunas na plataforma de extensões que pretendemos eliminar antes de anunciar um novo cronograma de descontinuação do Manifest V2.

Gravar áudio e vídeo com o Manifest V3

Postado em

Acabamos de publicar um novo artigo chamado Gravação de áudio e captura de tela, que aborda a gravação de áudio ou vídeo em uma guia, janela ou tela no Manifesto V3. Este artigo descreve várias abordagens de gravação que envolvem a API chrome.tabCapture e a função getDisplayMedia().

Chrome 114: aumento da cota storage.local

Postado em

Aumentamos a cota da propriedade storage.local para aproximadamente 10 MB. Isso foi concordado no grupo da comunidade de extensões da Web. Isso deixa o storage.local alinhado com o storage.session, que foi mudado no Chrome 112.

Tutorial e ajuda do novo service worker de extensão

Postado em

Os service workers são parte integrante das extensões do Chrome. Acabamos de publicar um tutorial explicando os conceitos básicos de registro, depuração e interação com service workers. Também adicionamos um novo guia do service worker que explica conceitos importantes em mais detalhes. Vamos expandir essa seção nos próximos meses.

Mais dicas de solução de problemas para violações da Web Store

Postado em

Para ajudar na publicação na Chrome Web Store, adicionamos novas orientações em duas áreas. As orientações para a funcionalidade mínima se concentram em oferecer benefícios aos usuários e enriquecer a experiência de navegação. A orientação para os anúncios afiliados é informar aos usuários sobre as extensões que usam links ou códigos de afiliados para monetização e dar a eles um pouco de controle exigindo uma ação do usuário antes da inclusão.

Novas instruções para o Conversor de manifesto de extensão

Postado em

Revisamos o README do Conversor de manifesto de extensão para facilitar a visualização do que você precisa fazer depois de executar a ferramenta. O conversor ajuda a migrar extensões criadas no Manifest V2 para o Manifest V3. O novo README descreve o que a ferramenta faz usando palavras parecidas com as da lista de verificação do guia de migração. O conversor não faz tudo, mas elimina muitas tarefas que não exigem avaliação humana.

Chrome 113: novos motivos para documentos fora da tela

Postado em

Adicionamos dois novos tipos de motivo à API Offscreen Documents. Use LOCAL_STORAGE para acessar a API localStorage da plataforma da Web. Use WORKER ao criar workers da Web.

Google Analytics 4 agora no Painel de controle do desenvolvedor

Postado em

O Painel de controle do desenvolvedor da Chrome Web Store agora é compatível com o Google Analytics 4 (GA4). Simplificamos a configuração do Google Analytics e simplificamos o gerenciamento de acesso para editores de grupos. Se você já usou o Google Universal Analytics para rastrear a atividade da página "Detalhes do app", precisa fazer mudanças até 1o de julho de 2023 para continuar recebendo dados sobre essa página. Para ver mais informações, consulte a postagem no Grupo do Google de extensões do Chromium.

A API File Handling chegou ao ChromeOS

Postado em

A API File Handler está disponível para experimentos no ChromeOS no Canary nas versões 112 e 113. Ela permite que as extensões no ChromeOS abram arquivos com tipos MIME e extensões de arquivo especificados. Para implementar a manipulação de arquivos, adicione um conjunto de regras ao manifest.json. Esse recurso funciona da mesma forma que os Progressive Web Apps. Para mais informações, consulte o artigo em outras partes do site.

Para ativar o gerenciamento de arquivos:

  • A partir da versão 112, inicie o Chrome usando a flag --enable-features=ExtensionWebFileHandlers, começando pela versão 112
  • A partir da versão 113, cole os://flags/#extension-web-file-handlers na omnibox do Chrome e selecione "Ativado" no menu suspenso.

Esperamos lançar esse recurso no Chrome 115 no final de junho. Fique de olho nas atualizações deste espaço.

Novas amostras: declarações dinâmicas e injeção programática

Postado em

Criamos um novo exemplo para a API chrome.scripting. Ele demonstra declarações dinâmicas, em que um script de conteúdo é registrado no tempo de execução, e uma injeção programática, em que um script é executado em uma guia que já está aberta.

Novas amostras: casos de uso de solicitação de rede declarativa

Postado em

Três novas amostras estão disponíveis para demonstrar a API declarativa Net Request. Cada um demonstra a implementação de um único caso de uso. A primeira mostra como bloquear cookies. Os dois restantes demonstram o bloqueio e o redirecionamento de URLs.

Chrome 112: aumento da cota "storage.session"

Postado em

No Chrome 112, a cota para a propriedade storage.session aumentou para aproximadamente 10 MB. Isso foi acordado no grupo da comunidade de extensões da Web: https://github.com/w3c/webextensions/issues/350 (em inglês)

Chrome 109: documentos fora da tela

Postado em

Os documentos fora da tela agora estão disponíveis nas extensões do Manifest V3. Eles ajudam na transição de páginas de segundo plano para service workers de extensão fornecendo suporte para APIs e recursos relacionados ao DOM. Para mais informações, leia a postagem do blog (em inglês).

Chrome 110: é uma extensão ativada

Postado em

O método chrome.action.isEnabled() verifica programaticamente se uma extensão foi ativada para uma guia específica. Isso evita que você mantenha o estado ativado das suas guias. Esse novo método usa um ID de guia e uma referência a um retorno de chamada e retorna um booleano. Há uma limitação: guias criadas usando chrome.declarativeContent sempre retornam "false".

Recentemente, o namespace chrome.action recebeu novos métodos para controlar a aparência de selos de extensão. Para mais informações, consulte Como definir as cores dos selos.

Chrome 110: alteração no tempo limite de inatividade do service worker

Postado em

Antes, um service worker de extensão era encerrado com frequência na marca de cinco minutos. Mudamos esse comportamento para se parecer mais com o ciclo de vida do service worker na Web. Um service worker de extensão será encerrado após 30 segundos de inatividade ou se uma única atividade levar mais de cinco minutos para ser processada. Para mais informações, consulte Ciclos de vida mais longos do service worker de extensão.

Postagem: Pausar a desativação gradual do Manifest V2

Postado em

Os cronogramas de descontinuação do Manifest V2 estão em revisão, e os experimentos programados para o início de 2023 foram adiados. Para ver mais informações, leia a atualização no Grupo do Google chromium-extensions.

Chrome 110: como definir as cores do selo

Postado em

O namespace chrome.action tem dois novos métodos para oferecer mais controle sobre os selos de extensão de aparência. Os métodos setBadgeTextColor() e getBadgeTextColor() permitem que uma extensão mude e consulte a cor de texto do selo do ícone da barra de ferramentas. Quando usados com setBadgeBackgroundColor e getBadgeBackgroundColor, esses novos métodos permitem que você aplique o design e a consistência da marca.

Postagem do blog: Mais detalhes sobre a transição para o Manifest V3

Postado em

Esclarecemos o cronograma de descontinuação do Manifest V2. O cronograma de suporte do Manifest V2 também foi atualizado para refletir essa informação.

Atualização do Documentos: problemas conhecidos na migração para o Manifest V3

Postado em

Reunimos uma lista dos principais recursos em desenvolvimento e bugs abertos. Nosso objetivo com esta página é ajudar os desenvolvedores a entender melhor o estado atual da plataforma e quais recursos eles podem segmentar enquanto se preparam para o futuro.

Chrome Web Store: upload da imagem do "bloco de promoção grande" removido

Postado em

A Chrome Web Store removeu a interface de upload do "bloco promocional grande" da guia "Detalhes do app" no painel do desenvolvedor. Essa mudança não afeta a experiência do usuário final porque essas imagens não foram usadas na interface do consumidor. Consulte esta postagem sobre chromium-extensions para mais detalhes.

Chrome 106: permitir que páginas em URLs file:// acessem recursos acessíveis na Web

Postado em

Origens opacas, como iframes em sandbox e importação dinâmica, também precisam conseguir acessar recursos acessíveis pela Web, de acordo com crbug.com/1219825#c11 (link em inglês).

Chrome 106: correção do bug que permitia argumentos finais incorretos em algumas funções de API assíncronas.

Postado em

Antes, o Manifest V3 chamava APIs assíncronas, fornecendo um argumento final inválido e o Chrome não gerava erros. Com essa correção, o Chrome vai mostrar erros e informar que não havia assinatura correspondente. Os desenvolvedores são incentivados a verificar se há erros nas extensões no Canary caso eles tenham usado acidentalmente uma assinatura incorreta para uma chamada de API que será corrompida por essa correção de bug.

Postagem do blog: reformulação das análises da Chrome Web Store

Postado em

A Chrome Web Store tem uma experiência de análise de itens reformulada para o Painel de controle do desenvolvedor da Chrome Web Store. O novo painel é mais fácil de entender rapidamente e consolida as informações mais úteis logo no início. Leia a postagem do blog para mais informações.

Chrome 105: promessas para a API Identity

Postado em

As funções na API Identity agora são compatíveis com chamadas baseadas em promessas. Isso traz uma pequena mudança na superfície para identity.getAuthToken(), em que o retorno assíncrono definido para uma chamada baseada em promessa terá "token" e "grantedScopes" como parâmetros em um único objeto, ao contrário da versão de callback que os recebe como argumentos separados para o callback.

Chrome 104: nova API favicons para o Manifest V3

Postado em

As extensões do Manifest V3 agora podem acessar favicons usando um novo padrão de URL: chrome-extension://<id>/_favicon/, em que é o ID da sua extensão. Isso substitui a API chrome://favicons da plataforma Manifest V2. Consulte os documentos da API Favicon para mais informações.

Atualização dos Documentos: divulgação do comerciante desenvolvedor/não comerciante

Postado em

Foi adicionada a identificação do desenvolvedor como comerciante/não comerciante, que informa aos desenvolvedores como declarar com precisão o status de comerciante/não comerciante.

Chrome 103: Wasm no Manifest V3 exige Wasm-unsafe-eval

Postado em

Por padrão, o Chrome não concede mais a extensão script-src: wasm-unsafe-eval. As extensões que usam o WebAssembly agora precisam adicionar explicitamente essa diretiva e esse valor a extension_pages nas declarações content_security_policy.

Chrome 103: a alteração dos atalhos do MV3 entra em vigor imediatamente

Postado em

Ao mudar o atalho de teclado de uma extensão do Manifest V3 em chrome://extensions/shortcuts, as atualizações agora serão aplicadas imediatamente. Anteriormente, a extensão precisaria ser recarregada para que a alteração entrasse em vigor.

Chrome 102: scripts de conteúdo dinâmico no mundo principal

Postado em

Scripts de conteúdo registrados dinamicamente agora podem especificar o mundo em que os recursos serão injetados. Consulte scripting.registerContentScripts() para ver mais detalhes.

Chrome 102: novo campo de manifesto "optional_host_permissions"

Postado em

As extensões do Manifest V3 agora podem especificar a chave optional_host_permissions no manifest.json. Isso permite que as extensões do Manifest V3 declarem padrões de correspondência opcionais para hosts da mesma forma que as extensões do Manifesto V2 podem usar a chave optional_permissions.

Chrome 102: propriedade injectInstantly em scripting.executeScript()

Postado em

chrome.scripting.executeScript() agora aceita uma propriedade injectImmediately opcional no argumento injection. Se presente e definido como verdadeiro, o script injetará no destino o mais rápido possível, em vez de esperar por document_idle. Isso não garante que o script será injetado antes do carregamento da página, já que o carregamento da página continua enquanto a chamada de API está sendo feita.

Chrome 102: suporte à API omnibox no Manifesto V3

Postado em

A API omnibox agora pode ser usada em extensões baseadas em service workers. Antes, alguns dos métodos dessa API geravam invocação devido a dependências internas nos recursos do DOM.

Chrome 102: wasm-unsafe-eval permitido na CSP do Manifest V3

Postado em

As extensões do Manifest V3 agora podem incluir wasm-unsafe-eval nas declarações content_security_policy. Essa mudança permite que as extensões do Manifest V3 usem o WebAssembly.

Chrome 102: nova API storage.session

Postado em

As extensões do Manifest V3 agora podem usar no armazenamento de memória storage.session .

Atualização dos Documentos: descoberta de itens na Chrome Web Store

Postado em

O recurso Discovery na Chrome Web Store oferece uma visão geral de como os usuários encontram itens na Chrome Web Store e como nossos editores selecionam os itens para serem exibidos.

Chrome 101: melhorias nas condições do domínio declarativeNetRequest

Postado em

As condições da regra declarativeNetRequest foram atualizadas para permitir que as extensões segmentem melhor as solicitações com base nos domínios de "solicitação" e "iniciador" da solicitação. As propriedades de condição relevantes são initiatorDomains, excludedInitiatorDomains, requestDomains e excludedRequestDomains. Consulte também esta linha de execução do chromium-extensions.

Chrome 100: problema resolvido com scripting.executeScript() nas guias recém-criadas

Correção de um problema antigo em que a chamada de scripting.executeScript() em uma guia ou janela recém-criada podia falhar

Chrome 100: a porta de mensagens nativas mantém o service worker ativo

Postado em

A conexão a um host de mensagens nativas usando chrome.runtime.connectNative() no service worker de uma extensão precisa manter o service worker ativo, desde que a porta esteja aberta.

Chrome 100: a omnibox.setDefaultSuggestion() oferece suporte a promessas e callbacks

Postado em

O método omnibox.setDefaultSuggestion() agora retorna uma promessa ou aceita um callback para permitir que os desenvolvedores determinem quando a sugestão foi definida corretamente.

Chrome 100: suporte a i18n.getMessage() em service workers de extensão

Postado em

A API chrome.i18n.getMessage() agora tem suporte em contextos de service worker de extensão.

Chrome 99: match_origin_as_fallback no Canary

Postado em

Agora, os scripts de conteúdo podem especificar a chave match_origin_as_fallback para injetar em frames relacionados a um frame correspondente, incluindo frames com URLs about:, data:, blob: e filesystem:. Consulte a documentação dos scripts de conteúdo para mais detalhes.

Chrome 99: suporte a service worker de extensão para arquivo: esquemas no Canary

Postado em

As extensões Manifest V2 e Manifest V3 baseadas em service worker agora podem usar a API Fetch para solicitar URLs de esquema file:. O acesso a URLs de esquema file: ainda exige que o usuário ative "Permitir acesso a URLs de arquivos" para a extensão na página chrome://extensions.

Chrome 99: promessa de suporte a APIs de mensagens no Canary

Postado em

O suporte a promessas foi adicionado a tabs.sendMessage, runtime.sendMessage e runtime.sendNativeMessage para extensões criadas para o Manifest V3.

Atualização do Documentos: documentação de análise da Chrome Web Store

Postado em

Adicionamos uma nova página de referência que fornece uma visão geral do processo de análise da Chrome Web Store e explica como a aplicação da Política do programa para desenvolvedores é tratada.

Chrome 98: scripting.executeScript() e scripting.insertCSS() aceitam vários arquivos

Postado em

Os métodos executeScript() e insertCSS() da API Scripting agora aceitam vários arquivos. Antes, esses métodos exigiam uma matriz com uma única entrada de arquivo.

Atualização do Documentos Google: atualizações da solução de problemas de revisão de violações

Postado em

A página Solução de problemas de violações da Chrome Web Store foi atualizada para fornecer aos desenvolvedores orientações mais detalhadas sobre motivos comuns de rejeição.

Chrome 96: suporte da promessa ampliado para mais 27 APIs

Postado em

Esta versão contém significativamente mais atualizações de promessas do que qualquer versão anterior. As atualizações incluem APIs de extensões gerais e específicas do ChromeOS. Expanda as seções a seguir para mais detalhes.

APIs Extensions

Várias APIs agora são compatíveis com promessas no Manifest V3.

Além disso, as APIs que usam o protótipo ChromeSetting agora também são compatíveis com promessas. As seguintes APIs serão afetadas por essa mudança.

APIs do ChromeOS

Chrome 96: scripts de conteúdo dinâmico

Postado em

A API chrome.scripting agora oferece suporte a registro, atualização, cancelamento de registro e acesso a uma lista de scripts de conteúdo durante a execução. Antes, os scripts de conteúdo só podiam ser declarados estaticamente no manifesto.json de uma extensão ou injetados programaticamente no momento da execução com chrome.scripting.executeScript().

Atualização do Documentos: cronograma do suporte ao Manifest V2

Postado em

O cronograma de transição do Manifesto V2 para a V3 foi anunciado nesta postagem do blog, e uma página do cronograma mais detalhada foi publicada.

Chrome 96: permissão declarativeNetRequestWithHostAccess

Postado em

A nova permissão declarativeNetRequestWithHostAccess permite que as extensões usem a API chrome.declarativeNetRequest em sites para os quais a extensão tem permissões de host. Isso também permite que as extensões do Manifest V2 que usam webRequest, webRequestBlocking e a permissão de host específica do site migrem para a API chrome.declarativeNetRequest sem exigir que o usuário aprove novas permissões.

Chrome 95: injetar scripts diretamente nas páginas

Postado em

O método executeScript() da API chrome.scripting agora pode injetar scripts diretamente no mundo principal de uma página. Antes, as extensões só podiam injetar diretamente no mundo isolado da extensão. Para mais informações sobre mundos isolados, consulte a documentação sobre scripts de conteúdo.

Chrome 95: promessa de suporte para a API Storage

Postado em

Os métodos na versão Manifest V3 da API chrome.storage agora retornam promessas.

Atualização da política: aplicação da verificação em duas etapas

Postado em

A postagem do blog de atualização da política publicada em 29 de junho de 2021 foi atualizada para corrigir o cronograma de implantação da verificação em duas etapas.

Chrome 94: mudanças declarativas nos conjuntos de regras estáticas de solicitação de rede

Postado em

O chrome.declarativeNetRequest agora permite a especificação de até 50 conjuntos de regras estáticos (MAX_NUMBER_OF_STATIC_RULESETS) e a ativação de até 10 conjuntos de regras (MAX_NUMBER_OF_ENABLED_STATIC_RULESETS) por vez.

Chrome 93: suporte ao isolamento de origem cruzada

Postado em

As extensões Manifest V2 e Manifest V3 agora podem ativar o isolamento de origem cruzada. Ele limita quais recursos de origem cruzada podem carregar as páginas de uma extensão e permite o uso de recursos de plataforma da Web de baixo nível, como SharedArrayBuffer. A ativação será necessária a partir do Chrome 95.

Atualização da política: atualizações nas políticas do programa para desenvolvedores

Postado em

As Políticas do programa para desenvolvedores da Chrome Web Store foram atualizadas com esclarecimentos sobre as táticas de instalação enganosas, spam e políticas de conteúdo repetitivo. Esta atualização também inclui um novo requisito de verificação em duas etapas para publicar na Chrome Web Store. Leia a postagem do blog para mais informações.

Postagem do blog: ações de extensão no Manifesto V3

Postado em

As extensões do Chrome tinham as APIs chrome.browserAction e chrome.pageActions por anos, mas o Manifest V3 substituiu as duas por uma API chrome.actions genérica. Esta postagem explora a história dessas APIs e o que mudou no Manifesto V3. Leia a postagem.

Postagem do blog: apresentando o chrome.scripting

Postado em

A API chrome.scripting é uma nova API Manifest V3 focada em scripts. Nesta postagem, nos aprofundamos nas motivações dessa mudança e aprofundamos seus novos recursos. Leia a postagem.

Chrome 92: suporte ao service worker do módulo

Postado em

O Chrome agora oferece suporte a módulos JavaScript em service workers. Para especificar um módulo no seu manifesto:

"background": {
  "service_worker": "script.js",
  "type": "module"
}

Isso carrega o script do worker como um módulo ES, que permite usar a palavra-chave import no script do worker para importar outros módulos.

Chrome 91: chrome.action.getUserSettings()

Postado em

O novo método chrome.action.getUserSettings() permite que as extensões determinem se o usuário fixou a extensão na barra de ferramentas principal.

Chrome 90: chrome.scripting.removeCSS()

Postado em

O novo método chrome.scripting.removeCSS() permite que as extensões removam o CSS que foi inserido anteriormente via chrome.scripting.insertCSS(). Ele substitui chrome.tabs.removeCSS().

Chrome 90: retornar promessas de scripting.executeScript()

Postado em

chrome.scripting.executeScript() agora oferece suporte a promessas de retorno. Se o valor resultante da execução do script for uma promessa, o Chrome aguardará a liquidação da promessa e retornará o valor resultante.

Chrome 90: os resultados de chrome.scripting.executeScript() incluem frameId

Postado em

Os resultados retornados de chrome.scripting.executeScript() agora incluem o frameId. A propriedade frameId indica o frame de origem do resultado, permitindo que as extensões associem facilmente os resultados aos frames individuais ao injetar em vários frames.

Chrome 89: nova API para gerenciar grupos de guias

Postado em

A nova API chrome.tabGroups e os novos recursos no chrome.tabs permitem que as extensões leiam e manipulem grupos de guias. Exige o Manifest V3.

Chrome 89: permissões personalizáveis para recursos acessíveis pela Web

Postado em

As definições de recursos acessíveis na Web no Manifesto V3 mudaram para permitir que as extensões restrinjam o acesso a recursos com base na origem ou no ID da extensão do solicitante.

Postagem do blog: Conversor de manifesto de extensão

Postado em

A equipe de Extensões do Chrome abriu o código do "Conversor de manifesto de extensão", uma ferramenta Python que automatiza alguns dos aspectos mecânicos da conversão de extensões no Manifesto V3. Veja a postagem do blog com o anúncio e faça o download no GitHub (em inglês).

Chrome 88: Manifest V3 disponível para todos os usuários

Postado em

O Manifest V3 é uma atualização importante da plataforma de extensões. Consulte a Visão geral do Manifest V3 para ver um resumo dos recursos novos e alterados. As extensões podem continuar usando o Manifest V2 por enquanto, mas isso será descontinuado em breve. Recomendamos que você use o Manifest V3 para todas as novas extensões e comece a migrar as extensões existentes para o Manifesto V3 o mais rápido possível.