Novidades das extensões do Chrome

Confira esta página com frequência para saber sobre mudanças nas extensões do Chrome, na documentação de extensões, na política relacionada ou em outras mudanças. Você vai encontrar outros avisos publicados no grupo de extensões do Google. A programação do Chrome lista as datas de lançamento da versão estável e da versão Beta.

Chrome 132: nova propriedade congelada na API Tabs

A partir do Chrome 132, a propriedade frozen na API Tabs indica se uma guia foi congelada pelo navegador. As mensagens enviadas para guias congeladas são colocadas na fila e processadas quando a guia é descongelada.

A API Prompt nas extensões do Chrome

Postado em

A API Prompt para extensões agora está disponível em um teste de origem. Assim, você pode criar extensões do Chrome que usam o Gemini Nano, nosso modelo de linguagem mais eficiente, no navegador.

Participe do teste de origem da API Prompt, executado no Chrome 131 a 136, e compartilhe seu feedback. Sua opinião pode afetar diretamente a criação e implementação de versões futuras dessa API e de todas as APIs de IA integradas.

Postagem do blog: O que está acontecendo nas extensões do Chrome em outubro de 2024

Postado em

É hora de mais um resumo do que está acontecendo nas extensões do Chrome: temos atualizações interessantes sobre integração de IA, novas APIs, eventos e vídeos. Leia mais sobre isso na edição de outubro do O que está acontecendo nas extensões do Chrome.

Participar do Desafio de IA integrado

Postado em

O Chrome lançou o Desafio de IA integrada: você é convidado a criar aplicativos da Web e extensões do Chrome inovadores usando modelos e APIs de IA integrados do Chrome e tem a chance de ganhar prêmios que totalizam US $65.000.

Inscreva-se e saiba mais no site do desafio de IA integrada. Mal podemos esperar para ver o que você vai criar ao injetar a Web com IA!

Chrome 130: action.onUserSettingsChanged

Postado em

A partir do Chrome 130, o evento action.onUserSettingsChanged está disponível. Isso segue uma proposta no grupo da comunidade da WebExtensions. Agradecemos à Microsoft pela contribuição para o Chromium.

Chrome 130: StorageArea.getKeys()

Postado em

A partir do Chrome 130, o método getKeys() está disponível na interface StorageArea usada pela API chrome.storage. Isso segue uma proposta no grupo da comunidade da WebExtensions.

Chrome 128: correspondência de cabeçalho de resposta na solicitação de rede declarativa

Postado em

A partir do Chrome 128, estamos adicionando suporte para correspondência de cabeçalho de resposta na API Declarative Net Request. Essa foi uma solicitação comum, principalmente para corresponder ao cabeçalho Content-Type. Projetamos uma API adequada com o grupo da comunidade da WebExtensions.

Atualizamos nossa referência da API para incluir os novos campos responseHeaders e excludedResponseHeaders. Você pode usar esses métodos para verificar a existência e o valor de um determinado cabeçalho.

Como parte dessa atualização, adicionamos uma nova seção de avaliação de regras à nossa documentação, que explica como as regras são combinadas. No caso da correspondência de cabeçalhos, as regras só podem ser executadas depois que os cabeçalhos de resposta forem recebidos. Por isso, elas são aplicadas em um estágio posterior em relação a outras regras. Isso significa que a solicitação chega ao servidor antes de ser bloqueada ou redirecionada.

Vídeo: o que são scripts de conteúdo?

Postado em

Saiba mais sobre scripts de conteúdo nas extensões do Chrome, incluindo como registrar CSS e JavaScript para execução em uma página específica. Confira o vídeo completo.

Atualizações importantes na política

Postado em

A equipe da Chrome Web Store publicou uma série de atualizações na página Políticas do programa para desenvolvedores, que incentivam o desenvolvimento de produtos de alta qualidade, evitam comportamentos enganosos e garantem o consentimento informado do usuário. Rebecca Soares, gerente de políticas da Chrome Web Store, resumiu todas as atualizações na postagem do blog "Extensões do Chrome: atualizações importantes na política".

Postagem do blog: novidades nas extensões do Chrome em julho de 2024

Postado em

Nos últimos três meses, lançamos várias atualizações e novos recursos importantes, incluindo o início da desativação do Manifest V2. Confira a edição de julho da Novidades nas extensões do Chrome.

Vídeo: O que é um código hospedado remotamente?

Publicado em

Patrick, da equipe de extensões do Chrome, explica o conceito de código hospedado remotamente (RHC, na sigla em inglês) nas extensões do Chrome. Saiba por que o RHC não é mais permitido, como detectá-lo e o que fazer se a extensão precisar ser atualizada. Confira o vídeo completo.

Chrome 127: nova API action.openPopup

Postado em

A partir do Chrome 127, a API action.openPopup está disponível para todas as extensões. Antes, ele só estava disponível no Canary ou para extensões instaladas por uma política.

Vídeo: entrevista com a equipe de confiabilidade e segurança

Postado em

A equipe de DevRel das extensões do Chrome conversou com a equipe de confiança e segurança que lidera a revisão na Chrome Web Store para responder às suas perguntas. Confira o vídeo completo.

Postagem do blog: início da descontinuação do Manifest V2

Postado em

A partir de 3 de junho, nos canais Beta, Dev e Canary do Chrome, se os usuários ainda tiverem extensões do Manifest V2 instaladas, alguns vão começar a receber um banner de aviso ao acessar a página de gerenciamento de extensões (chrome://extensions), informando que algumas extensões (Manifest V2) instaladas não serão mais compatíveis em breve. Leia mais no anúncio oficial.

Atualizações na interface do painel lateral

Postado em

Recentemente, fizemos algumas mudanças na interface do painel lateral, incluindo a adição de um ícone de alfinete e a remoção do ícone do painel lateral global. Leia mais na PSA e confira nossa documentação e amostras atualizadas.

Postagem do blog: extensões do Chrome no Google I/O 2024

Postado em

Mais um Google I/O passou e cobrimos todas as atualizações de extensões incríveis! Acesse o YouTube para assistir ao vídeo completo e ler nossa postagem do blog para conferir alguns destaques.

Pular a análise de mudanças qualificadas na solicitação de rede declarativa

Postado em

A Chrome Web Store agora permite que você pule a análise de mudanças qualificadas ao usar a API Declarative Net Request. Saiba mais sobre a qualificação e como ativar a documentação da Chrome Web Store.

deployPercentage disponível na API da Chrome Web Store

Postado em

Recentemente, atualizamos a documentação da API Chrome Web Store para incluir informações sobre deployPercentage, que permite atribuir uma porcentagem de uma implantação de lançamento parcial. Saiba mais sobre deployPercentage.

Chrome 126: testes de origem em extensões

Postado em

O Chrome 126 apresenta um novo campo manifest.json, trial_tokens, que permite ativar os 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 está acontecendo nas extensões do Chrome (abril de 2024)

Postado em

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

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

Postado em

Reverta a extensão para a versão publicada anteriormente na Chrome Web Store sem uma nova análise. 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 está disponível no ChromeOS para descobrir e recuperar imagens de scanners de documentos anexados.

Chrome 124: suporte a WebGPU em service workers

Postado em

Desde o Chrome 124, os service workers oferecem suporte à WebGPU. Para começar rapidamente, confira a amostra de extensão da 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, na sigla em inglês). Um bloco CIDR é uma coleção de endereços IP que compartilham um prefixo de rede e o mesmo número de bits. Antes, um desenvolvedor que precisava filtrar vários endereços IP precisava configurar uma regra de filtro para cada um dos endereços no intervalo de bloqueio. Agora, quando uma extensão chama 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 contida em qualquer um dos blocos CIDR especificados em uma matriz.

Chrome Web Store: atualizações nos requisitos de comprimento do nome da 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 manifest.json. Antes, o limite para o inglês era de 45 caracteres, e não havia restrição ao campo "name" em outras localidades.

A intenção original era permitir diferenças culturais e linguísticas que não podem ser capturadas com o mesmo número de caracteres. Infelizmente, algumas pessoas abusaram desse recurso para enviar spam na loja. Como resultado, estamos lançando um novo limite universal, um aumento para 75 caracteres. Esse limite abrange quase todas as extensões na Play Store. Por isso, provavelmente não será necessário fazer nada como resultado dessa mudança. Se você tentar fazer o upload de uma extensão com um nome mais longo que o limite máximo, o upload será bloqueado pela loja.

Postagem do blog: a jornada da eyeo para testar a suspensão de service workers

Postado em

Nesta postagem da equipe do eyeo's Extension Engine, abordamos o problema de testar workers de serviço de extensão. No Manifest V2, as extensões eram executadas em uma página em segundo plano, que estavam ativas durante todo o ciclo de vida da extensão. O Manifest V3 usa service workers. Por design, os service workers economizam recursos desativando-se quando não são necessários. Isso apresenta alguns desafios de teste. Esta postagem explica como a eyeo lidou com esses desafios.

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

Postado em

Os alarmes definidos usando a API chrome.alarms não são mais atrasados quando um dispositivo entra no modo de suspensão. Quando o dispositivo é ativado, o alarme é acionado uma vez, não importa quantos alarmes foram perdidos. Por exemplo, digamos que um alarme esteja configurado para ser acionado uma vez por hora e que o dispositivo em que ele está esteja em suspensão de 12h55 às 2h05. Nesse caso, apenas o alarme de 2h aciona o evento onAlarm. Ele será acionado o mais próximo possível das 2h e imediatamente quando um dispositivo for ativado se estiver inativo.

Essa mudança alinha o Chrome ao comportamento acordado no grupo da comunidade das extensões da Web.

Postagem do blog: mudanças no comportamento do bfcache com portas de mensagens de extensão

Postado em

O cache de avanço e retorno (bfcache) é uma otimização do navegador que permite a navegação instantânea para frente e para trás. A partir do Chrome 123, quando uma página com uma porta de extensão aberta é armazenada no bfcache, o canal de mensagens é 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 um exemplo de código, consulte Mudanças no comportamento do BFCache com portas de mensagem de extensão.

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

Postado em

Concluímos a implementação do suporte a promessas para todos os métodos assíncronos da API de extensão. Isso foi feito para modernizar os métodos da API, melhorando a ergonomia do processamento de operações assíncronas. Alguns métodos (por exemplo, desktopCapture.chooseDesktopMedia()) continuam oferecendo suporte apenas a callbacks porque as plataformas atuais não são compatíveis com promessas. Para compatibilidade com versões anteriores, os 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 nas extensões. As atualizações em tempo real fornecem um caminho de comunicação instantânea dos seus servidores diretamente para as instalações da extensão. Além disso, temos novas orientações para usar chrome.gcm e Web Push.

Nova orientação e exemplo: como testar o encerramento de um service worker

Postado em

Acabamos de publicar um guia sobre como testar a interrupção do service worker com o Puppeteer. O exemplo que acompanha demonstra isso no Puppeteer e no Selenium.

Exemplo atualizado para mensagens nativas

Postado em

Acabamos de publicar um exemplo atualizado de mensagens nativas. Essa API permite que a extensão seja iniciada e se comunique com outro aplicativo. Agradecemos ao colaborador do GitHub Shubham-Rasal pelo trabalho.

Chrome 121: nova propriedade "lastAccessed" em tabs.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 a época.

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

Postado em

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

Isso está sendo feito para permitir o uso de um único arquivo de manifesto em extensões em vários navegadores, de acordo com uma proposta no grupo da comunidade.

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

Publicado 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: Resumo da transição para o Manifest V3

Postado em

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

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 para extensões

Postado em

O Chrome 120 Beta foi lançado recentemente. Para conferir 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. Esta versão também marca um marco importante, porque remove os dois últimos itens (userScripts e gerenciador de arquivos no ChromeOS) da lista de lacunas críticas da plataforma.

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

Publicado em

As políticas de privacidade no Painel de controle do desenvolvedor agora são adicionadas no nível do item. Isso permite que você forneça uma política de privacidade diferente para cada item. Leia mais sobre essa mudança na nossa PSA.

Vídeo: uma conversa com Matt Frisbie

Publicada em

Acabamos de publicar um novo vídeo no canal do YouTube "Chrome for Developers" com o especialista em desenvolvimento do Google e autor Matt Frisbie. Assista aqui.

Novas orientações 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, orientações gerais e um tutorial sobre testes completos.

Postagem do blog: O que está acontecendo nas extensões do Chrome (em inglês) — outubro de 2023

Publicado em

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

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

Publicado em

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, estamos aumentando o número total de conjuntos de regras estáticas permitidos de 50 para 100. Esse recurso está disponível no Canary.

Orientações aprimoradas sobre o código hospedado remotamente

Publicado em

Um requisito do Manifest V3 é que as extensões não possam mais usar código hospedado remotamente. Embora isso tenha sido parte do nosso guia de migração desde o início, achamos que vale a pena melhorar as orientações sobre esse problema. Agora, essa página oferece mais informações, descrevendo o que ainda é possível no Manifest V3 e fornecendo mais informações sobre estratégias de upgrade.

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

Chrome 118: o padrão de isUrlFilterCaseSensitive agora é "false"

Postado em

A partir do Chrome 118, a propriedade isUrlFilterCaseSensitive na API chrome.declarativeNetRequest foi alterada para false por padrão. Se você quiser manter o comportamento antigo, defina explicitamente isUrlFilterCaseSensitive como true nas regras declarativeNetRequest.

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

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

Postado em

Publicamos um novo guia sobre como as APIs de cookies e armazenamento da 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 da plataforma da Web, além de detalhes sobre como elas funcionam em extensões.

Agora é possível pesquisar exemplos de extensões

Postado em

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

Esta nova página de exemplo foi criada por um participante do Google Summer of Code, Xuezhou Dai, que também contribuiu com vários novos exemplos. Leia sobre as experiências deles no verão passado na postagem do nosso blog.

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

Chrome 118: mudanças na abertura de arquivos: URLs de esquema

Postado em

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

Chrome 117: proteção de URL expandida em navegações de API de extensão

Publicado em

Anteriormente, a navegação acionada por chamadas de API de extensão para tabs.update(), tabs.create() e windows.create() emitia um erro para alguns URLs chrome://. Além disso, a chamada de tabs.update() com um URL do JavaScript era proibida. 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 nas orientações para a API declarativeNetRequest

Publicada em

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

Usar sua conta do Google Analytics com a Chrome Web Store

Publicada em

A Chrome Web Store oferece integração com o Google Analytics, que permite conferir as estatísticas da sua listagem na Chrome Web Store, além da visualização oferecida no Painel de controle do desenvolvedor. Para saber mais, consulte Como usar sua conta do Google Analytics com a Chrome Web Store.

Chrome 115: o DevTools avança por scripts de conteúdo por padrão

Postado em

Os scripts de conteúdo injetados agora 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 alerta se ele estiver ativado e oferece a opção de remover o script da lista de ignorados. Para desativar esse comportamento, abra as Ferramentas do desenvolvedor, acesse Configurações e Lista de ignorados. Para saber mais, consulte Novidades no DevTools.

Chrome 116 Beta: mais do que podemos colocar aqui

Postado em

O Chrome 116 é uma versão importante para extensões. Agora é possível abrir painéis laterais de forma programática. Um novo método permite saber se há um documento fora da tela ativo. Os service workers receberam várias melhorias. Há tantas melhorias na versão 116 que escrevemos uma postagem no blog para falar sobre elas. O Chrome 116 está na versão Beta desde 19 de julho.

Postagem do blog: O que está acontecendo nas 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 principais novos recursos do ano, incluindo a API Side Panel, melhorias no service worker e documentos fora da tela. Você também vai saber o que estamos preparando para este trimestre. O artigo lista muito mais, com links para todos.

Novas orientações e exemplo: aprenda a usar o Google Analytics 4 na sua extensão do Chrome

Postado em

Publicamos novas orientações e amostras do Google Analytics e da geolocalização:

Chrome 115: especificação de vários motivos em chrome.offscreen.createDocument()

Postado em

Agora é possível especificar vários tipos enumerados reason ao chamar chrome.offscreen.createDocument(). Use essa opção quando um documento fora da tela for usado para vários fins diferentes. O navegador usa os motivos fornecidos para determinar a duração 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 local que pode ser usado para testar atualizações de extensões do Chrome durante o desenvolvimento local, incluindo permissões. A ferramenta mostra o fluxo de atualização do usuário, incluindo a manutenção de uma extensão desativada até que o usuário conceda as permissões recém-solicitadas. Essa ferramenta é especialmente útil para simular as mudanças de permissão solicitadas ao atualizar uma extensão do Manifest V2 para o Manifest 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 ao lado do conteúdo que estão navegando. Para saber mais, acesse a referência da API do painel lateral. Além disso, adicionamos muitos exemplos de painel lateral ao nosso repositório de exemplos do GitHub. 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 revisadas para oferecer mais orientações sobre a criação de extensões de painel lateral de alta qualidade.

Seu feedback é importante para criar essa API. Compartilhe suas ideias e solicitações de recursos no chromium-groups. Fique de olho nas novas atualizações enquanto continuamos aprimorando 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:

Agradecemos especialmente ao colaborador do GitHub @daidr por esses exemplos.

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

Postado em

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

Como 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 de uma guia, janela ou tela no Manifest 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 de storage.local

Postado em

Aumentamos a cota da propriedade storage.local para aproximadamente 10 MB. Isso foi concordado no grupo da comunidade das extensões da Web. Isso alinha storage.local a storage.session, que foi alterado no Chrome 112.

Tutorial e ajuda sobre o novo worker de serviço de extensão

Postado em

Os service workers são parte integrante das extensões do Chrome. Acabamos de publicar um tutorial explicando os princípios básicos de registro, depuração e interação com os service workers. Também adicionamos um novo guia de service workers explicando conceitos importantes com 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 funcionalidade mínima se concentram em oferecer benefícios aos usuários e enriquecer a experiência de navegação. A orientação para anúncios de afiliados é sobre conscientizar os usuários sobre extensões que usam links ou códigos de afiliados para monetização e dar a eles algum controle exigindo uma ação antes da inclusão.

Novas instruções para o Extension Manifest Converter

Postado em

Reescrita do README do Ext2EEConverter para facilitar a visualização do que você precisa fazer após a execução da 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 que correspondem às da lista de verificação do guia de migração. O conversor não faz tudo, mas elimina muitas tarefas que não exigem uma decisã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.

O Google Analytics 4 agora está disponível no Painel do desenvolvedor

Postado em

O Painel de controle do desenvolvedor da Chrome Web Store agora oferece suporte ao Google Analytics 4 (GA4). Simplificamos a configuração do Google Analytics e simplificamos o gerenciamento de acesso para editores de grupo. Se você já usou o Universal Analytics para acompanhar a atividade da ficha da loja, tome as medidas necessárias até 1º de julho de 2023 para continuar recebendo dados sobre ela. Para mais informações, consulte a postagem no Grupo do Google sobre extensões do Chromium.

A API File Handling chega ao ChromeOS

Postado em

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

Para ativar o processamento de arquivos:

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

Esperamos lançar esse recurso no Chrome 115 no final de junho. Fique de olho aqui para receber atualizações.

Novos exemplos: declarações dinâmicas e injeção programática

Postado em

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

Novos exemplos: casos de uso de solicitações de rede declarativas

Postado em

Três novos exemplos estão disponíveis para demonstrar a API Declarative Net Request. Cada um demonstra a implementação de um único caso de uso. O primeiro mostra como bloquear cookies. Os dois restantes demonstram o bloqueio e o redirecionamento de URLs.

Chrome 112: aumento da cota de storage.session

Postado em

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

Chrome 109: documentos fora da tela

Publicado 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 em segundo plano para workers de serviço de extensão, oferecendo suporte a recursos e APIs relacionados ao DOM. Para mais informações, leia a postagem do blog.

Chrome 110: uma extensão está ativada

Postado em

O método chrome.action.isEnabled() verifica de forma programática se uma extensão foi ativada para uma guia específica. Isso evita que você mantenha o estado ativado das guias. Esse novo método recebe um ID de guia e uma referência a um callback e retorna um booleano. Ele tem uma limitação: as guias criadas usando chrome.declarativeContent sempre retornam "false".

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

Chrome 110: mudança no tempo limite de inatividade do service worker

Postado em

Antes, um service worker de extensão geralmente era encerrado após cinco minutos. Mudamos esse comportamento para que se pareça mais com a vida útil do service worker na Web. Um worker de serviço 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 Tempo de vida mais longo dos workers de serviço de extensão.

Postagem: pausa na descontinuação 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 mais informações, leia a atualização no Grupo do Google chromium-extensions.

Chrome 110: como definir as cores dos selos

Publicada em

O namespace chrome.action tem dois novos métodos para dar 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 do texto do selo do ícone da barra de ferramentas. Quando usados com setBadgeBackgroundColor e getBadgeBackgroundColor, esses novos métodos permitem que você aplique a consistência de design e 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 essas informações.

Atualização da documentação: problemas conhecidos ao migrar para o Manifesto V3

Postado em

Preparamos uma lista dos principais recursos em desenvolvimento e bugs abertos. O objetivo desta página é ajudar os desenvolvedores a entender melhor o estado atual da plataforma e quais recursos eles podem usar para se preparar para o futuro.

Chrome Web Store: remoção do upload de imagens de "grande bloco de promoção"

Postado em

A Chrome Web Store removeu a interface de upload "grande bloco de promoção" da guia "Detalhes do app" no painel de controle 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 extensões do Chromium 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 acessar recursos acessíveis na Web, de acordo com crbug.com/1219825#c11.

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

Postado em

Antes, o Manifest V3 que chamava APIs assíncronas podia fornecer um argumento final inválido, e o Chrome não gerava um erro. Com essa correção, o Chrome agora vai informar corretamente o erro e informar que não há uma assinatura correspondente. Recomendamos que os desenvolvedores verifiquem as extensões no Canary para encontrar erros, caso usem acidentalmente uma assinatura incorreta para uma chamada de API que será interrompida por essa correção de bug.

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

Publicada 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 e consolida as informações mais úteis. 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 vem com uma pequena mudança na superfície para identity.getAuthToken(), em que o retorno assíncrono definido para uma chamada baseada em promessas terá "token" e "grantedScopes" como parâmetros em um único objeto, em vez da versão de callback que os recebe como argumentos separados para o callback.

Chrome 104: nova API de ícones favoritos 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 do Manifest V2. Consulte a documentação da API Favicon para mais informações.

Atualização dos documentos: divulgação de desenvolvedor/empreendedor

Publicada em

Adicionamos a identificação de desenvolvedor de comerciante/não comerciante, que informa aos desenvolvedores como declarar o status de comerciante/não comerciante de forma precisa.

Chrome 103: o Wasm no Manifest V3 requer wasm-unsafe-eval

Postado em

O Chrome não concede mais script-src: wasm-unsafe-eval às extensões por padrão. As extensões que usam o WebAssembly agora precisam adicionar explicitamente essa diretiva e o 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 Manifesto V3 em chrome://extensions/shortcuts, as atualizações agora são aplicadas imediatamente. Antes, a extensão precisava ser recarregada antes que a mudança entrasse em vigor.

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

Postado em

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

Chrome 102: novo campo de manifesto "optional_host_permissions"

Publicada em

As extensões do Manifest V3 agora podem especificar a chave optional_host_permissions em manifest.json. Isso permite que as extensões do Manifest V3 declarem padrões de correspondência opcionais para hosts, assim como as extensões do Manifest V2 podem usar a chave optional_permissions.

Chrome 102: propriedade injectImmediately em scripting.executeScript()

Publicada em

chrome.scripting.executeScript() agora aceita uma propriedade injectImmediately opcional no argumento injection. Se presente e definido como verdadeiro, o script será injetado no alvo assim que 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 a página continua sendo carregada enquanto a chamada de API é feita.

Chrome 102: suporte à API Omnibox no Manifest V3

Publicado em

A API Omnibox agora pode ser usada em extensões baseadas em service worker. Anteriormente, alguns métodos dessa API eram invocados devido a dependências internas de recursos do DOM.

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

Publicada 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 storage.session no armazenamento em memória .

Atualização dos documentos: descoberta de itens da Chrome Web Store

Publicada em

Descoberta na Chrome Web Store mostra uma visão geral de como os usuários encontram itens na Chrome Web Store e como nossos editores selecionam itens para destaque.

Chrome 101: condições de domínio declarativeNetRequest aprimoradas

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 "request" e "initiator". As propriedades de condição relevantes são initiatorDomains, excludedInitiatorDomains, requestDomains e excludedRequestDomains. Consulte também esta discussão sobre extensões do Chromium.

Chrome 100: foi resolvido um problema com scripting.executeScript() em 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 nativa mantém o service worker ativo

Publicada em

A conexão com um host de mensagens nativo usando chrome.runtime.connectNative() em um service worker de extensão precisa manter o service worker ativo enquanto a porta estiver aberta.

Chrome 100: 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

Publicado 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

Publicada em

Os scripts de conteúdo agora 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 de scripts de conteúdo para mais detalhes.

Chrome 99: suporte a service workers de extensão para esquemas file: no Canary

Postado em

As extensões do Manifest V2 e V3 baseadas em workers de serviço 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 a opção "Permitir acesso a URLs de arquivo" para a extensão na página chrome://extensions.

Chrome 99: suporte a promessas para 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 de documentos: documentação de avaliação da Chrome Web Store

Postado em

Adicionamos uma nova página de referência que oferece 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 é feita.

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

Publicado 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: atualizações de solução de problemas de violação

Postado em

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

Chrome 96: o suporte a promessas foi expandido para mais 27 APIs

Postado em

Esta versão contém muito 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. Abra as seções a seguir para mais detalhes.

APIs Extensions

Várias APIs agora oferecem suporte a promessas no Manifest V3.

Além disso, as APIs que usam o protótipo ChromeSetting agora também oferecem suporte a promessas. As APIs a seguir sã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, desregistro e recebimento de uma lista de scripts de conteúdo no momento da execução. Antes, os scripts de conteúdo só podiam ser declarados estaticamente no manifest.json de uma extensão ou injetados programaticamente no momento de execução com chrome.scripting.executeScript().

Atualização dos documentos: cronograma de suporte do Manifest V2

Postado em

O cronograma de transição do Manifest V2 para o V3 foi anunciado nesta postagem do blog, e uma página de 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 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: suporte a promessas para a API Storage

Publicado em

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

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

Publicado em

A postagem do blog sobre a 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 na regra estática de solicitação de rede declarativa

Publicada em

O chrome.declarativeNetRequest agora oferece suporte à especificação de até 50 conjuntos de regras estáticas (MAX_NUMBER_OF_STATIC_RULESETS) e à 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 do Manifest V2 e do Manifest V3 agora podem ativar o isolamento de origem cruzada. Esse recurso limita quais recursos de origem cruzada podem carregar as páginas de uma extensão e permite o uso de recursos de baixo nível da plataforma da Web, como SharedArrayBuffer. A ativação será obrigatória a partir do Chrome 95.

Atualização da política: políticas do programa para desenvolvedores atualizadas

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. Essa 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 Manifest V3

Postado em

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

Postagem do blog: introdução ao chrome.scripting

Postado em

A API chrome.scripting é uma nova API do Manifest V3 focada em scripting. Nesta postagem, vamos analisar as motivações por trás dessa mudança e conferir os novos recursos. Leia a postagem.

Chrome 92: suporte a worker de serviço de módulo

Postado em

O Chrome agora oferece suporte a módulos JavaScript em workers de serviço. Para especificar um módulo no manifesto:

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

Isso carrega o script do worker como um módulo ES, o 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 pelo chrome.scripting.insertCSS(). Ele substitui chrome.tabs.removeCSS().

Chrome 90: retorno de promessas de scripting.executeScript()

Publicada 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 vai aguardar a resoluçã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 em chrome.tabs permitem que as extensões leiam e manipulem grupos de guias. Requer o Manifesto V3.

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

Postado em

As definições de recursos acessíveis na Web no Manifest V3 foram alteradas 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: Extension Manifest Converter

Publicada em

A equipe de extensões do Chrome disponibilizou o "Extension Manifest Converter" como código aberto, uma ferramenta Python que automatiza alguns aspectos mecânicos da conversão de extensões para o Manifest V3. Consulte a postagem do blog de anúncio e baixe o app no GitHub.

Chrome 88: disponibilidade geral do Manifest V3

Postado em

O Manifest V3 é uma atualização importante da plataforma de extensões. Consulte Visão geral do Manifest V3 para conferir 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 atuais para o Manifest V3 o mais rápido possível.