Participe do teste de descontinuação para armazenamento de terceiros não particionado, service workers e APIs de comunicação

A partir do Chrome 115, as APIs de armazenamento, service workers e comunicação são particionadas em contextos de terceiros. Além de serem isoladas pela política de mesma origem, as APIs afetadas usadas em contextos de terceiros também são separadas pelo site do contexto de nível superior.

Os sites que não tiveram tempo de implementar compatibilidade com o particionamento de armazenamento de terceiros podem participar de um teste de descontinuação para cancelar a partição temporariamente (continuar o isolamento pela política de mesma origem, mas remover o isolamento por site de nível superior) e restaurar o comportamento anterior de armazenamento, service workers e APIs de comunicação no conteúdo incorporado no site.

Além de um teste de descontinuação geral de desparticionamento, é possível participar de um teste de descontinuação focado apenas para window.sessionStorage. Esse teste está disponível devido à necessidade de alguns sites migrarem o fluxo signInWithRedirect do Firebase. Para mais informações sobre essa migração, consulte Práticas recomendadas para usar o signInWithRedirect em navegadores que bloqueiam o acesso ao armazenamento de terceiros.

Para dar aos desenvolvedores mais tempo para se adaptarem à nova implementação do particionamento de armazenamento, os testes de descontinuação vão ficar disponíveis até o lançamento do Chrome 127, programado para 23 de julho de 2024. O teste de descontinuação expira em 3 de setembro de 2024 para usuários com as versões 111 a 126 do Chrome.

Testes de descontinuação disponíveis

A partir do Chrome 115, dois testes de descontinuação estão disponíveis:

  1. DisableThirdPartyStoragePartitioning: permite que um site de nível superior cancele a partição (remova temporariamente o isolamento por site de nível superior) no armazenamento, nos service workers e nas APIs de comunicação em conteúdo de terceiros incorporado nas páginas dele.
  2. DisableThirdPartySessionStoragePartitioningAfterGeneralPartitioning: permite que um site cancele a partição de sessionStorage nas navegações.

Confira abaixo uma visão geral desse teste e o que esperar dele. Se você tiver feedback para compartilhar ou enfrentar problemas durante este teste, entre em contato no repositório do GitHub do teste de descontinuação do armazenamento particionado.

DisableThirdPartyStoragePartitioning

Caso você registre o site de nível superior no teste de descontinuação do DisableThirdPartyStoragePartitioning, as seguintes APIs permanecerão não particionadas em contextos de terceiros: APIs Storage (como localStorage, sessionStorage, IndexedDB, Cota e outras), APIs Communication (como BroadcastChannel, SharedWorkers e WebLocks) e API ServiceWorker.

Exemplo:

Diagrama de particionamento de armazenamento

Para uma explicação mais detalhada, confira a explicação do projeto.

DisableThirdPartySessionStoragePartitioningAfterGeneralPartitioning

Se você se inscrever no teste de descontinuação do DisableThirdPartySessionStoragePartitioningAfterGeneralPartitioning, navegar em uma guia para uma origem registrada fará com que todos os iframes entre sites dessa mesma origem permaneçam não particionados apenas por Window.sessionStorage e apenas durante o ciclo de vida dessa guia específica. Enquanto o teste de descontinuação de DisableThirdPartyStoragePartitioning afeta todos os contextos de terceiros incorporados na origem registrada, o teste de descontinuação de DisableThirdPartySessionStoragePartitioningAfterGeneralPartitioning registra uma determinada origem para receber acesso não particionado quando incorporado em contextos de terceiros.

Exemplo:

Diagrama de particionamento de armazenamento após a pareamento geral.

O que isso significa para os desenvolvedores Web?

Os sites precisam auditar o uso de armazenamento não particionado, service worker e APIs de comunicação em contextos de terceiros e, se necessário, preparar-se para o particionamento de terceiros antes que esses testes de descontinuação expirem. A intenção é expirar esses testes de descontinuação com o lançamento do Chrome 127 em 3 de setembro de 2024.

Para instruir o navegador a cancelar a partição do armazenamento em conteúdo de terceiros incorporado nas páginas, os sites de nível superior precisam se registrar em um ou ambos os testes de descontinuação e adicionar os tokens de teste correspondentes aos cabeçalhos de resposta HTTP. Confira o exemplo detalhado abaixo.

Cada teste de descontinuação está disponível para Windows, Mac, Linux, Chrome OS e Android.

Participar dos testes de descontinuação

Confira a seguir uma breve visão geral sobre como participar de um ou de ambos os testes de descontinuação. Para instruções mais detalhadas, acesse Introdução aos testes de origem.

  1. Inicie o Chrome 115 (ou mais recente) e verifique se a sinalização ThirdPartyStoragePartitioning está ativada.
  2. Verifique se o comportamento do conteúdo de terceiros incorporado no site de nível superior é corrompido pelo particionamento de armazenamento. Caso contrário, não será necessário participar dos testes de descontinuação.
  3. Inscreva-se no teste de descontinuação e receba um token para seus domínios acessando o seguinte:
    1. Para que um site de nível superior cancele a partição de armazenamento, service workers e APIs de comunicação no conteúdo incorporado de terceiros: DisableThirdPartyStoragePartitioning
    2. Para que um site de nível superior cancele a partição de sessionStorage nas navegação: DisableThirdPartySessionStoragePartitioningAfterGeneralPartitioning
  4. Adicione um token de teste de origem à sua página:
    1. Para o teste de DisableThirdPartySessionStoragePartitioningAfterGeneralPartitioning, você pode adicionar um Origin-Trial: <DEPRECATION TRIAL TOKEN> ao cabeçalho de resposta HTTP do site de nível superior, em que <DEPRECATION TRIAL TOKEN> contém o token que você recebeu ao se registrar no teste de descontinuação. Também é possível fazer isso via HTML ` mesma tag.
    2. Para o teste DisableThirdPartyStoragePartitioning, o token precisa ser fornecido por uma tag HTML <meta> injetada via JavaScript. O método de cabeçalho HTTP não é compatível.
  5. Carregue seu site no Chrome 115 (ou mais recente) com ThirdPartyStoragePartitioning ainda ativado e verifique se todos os problemas relacionados ao particionamento foram minimizados corretamente.
  6. Para deixar de participar do teste de descontinuação, basta remover o token adicionado na etapa 2.

O teste de descontinuação de DisableThirdPartyStoragePartitioning é compatível com o recurso de testes de origem de terceiros, mas o script de terceiros que injeta o token precisa ser avaliado no frame de nível superior antes que o iframe de terceiros que não terá particionamento aplicado seja carregado. O teste de descontinuação de DisableThirdPartySessionStoragePartitioningAfterGeneralPartitioning não é compatível com testes de origem de terceiros, já que o inscrito precisa ter sido o site de nível superior em algum momento do ciclo de vida da guia especificada. O guia para solução de problemas de testes de origem do Chrome fornece uma lista de verificação completa para garantir que seu token esteja configurado corretamente.

Compartilhar feedback

Envie feedback ou problemas que você encontrar para o repositório do GitHub de teste de descontinuação do armazenamento particionado.