Participar do teste de origem para acesso ao armazenamento sem cookies usando a API Storage Access

Helen Cho
Helen Cho
Ari Chivukula
Ari Chivukula

O Chrome 115 introduziu mudanças nas APIs de armazenamento, service workers e comunicação com o particionamento 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 isoladas pelo site do contexto de nível superior.

Os sites que não tiveram tempo para implementar suporte ao 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 do armazenamento, dos service workers e das APIs de comunicação no conteúdo incorporado no site. Esse teste de descontinuação vai expirar com o lançamento do Chrome 127 em 3 de setembro de 2024. Esse teste é diferente do teste de descontinuação do acesso a cookies de terceiros e serve apenas para o acesso ao armazenamento.

Como uma solução de longo prazo para lidar com determinados casos de uso interrompidos pelo particionamento de armazenamento de terceiros sem cookies, o Chrome propôs a possibilidade de terceiros solicitarem acesso de armazenamento/comunicação (com ou sem cookies) usando a API Storage Access (frete a partir do Chrome 117), que já permite que terceiros solicitem acesso a cookies.

A partir do Chrome 120, essa proposta poderá ser testada em um teste de origem. Os desenvolvedores precisam participar desse teste de origem para avaliar como a solução proposta aborda os casos de uso e garantir que estejam preparados antes do fim do teste de descontinuação.

Detalhes do teste de origem

A partir do Chrome 120, o Chrome vai oferecer suporte ao teste de origem, StorageAccessAPIBeyondCookies, para ativar a extensão proposta da API Storage Access (compatível com versões anteriores) e permitir o acesso a armazenamento não particionado (cookies e não cookies) em um contexto de terceiros.

Mecânica

A API pode ser usada da seguinte maneira (JavaScript em execução em um iframe incorporado):

// Request a new storage handle via rSA (this should prompt the user)
const handle = await document.requestStorageAccess({all: true});
// Write some 1P context sessionStorage
handle.sessionStorage.setItem('userid', '1234');
// Write some 1P context localStorage
handle.localStorage.setItem('preference', 'A');
// Open or create an indexedDB that is shared with the 1P context
const messageDB = handle.indexedDB.open('messages');
// Use locks shared with the 1P context
await handle.locks.request('example', ...);

Se você quiser acesso específico à API em vez de acesso a all, transmita os nomes apenas dos identificadores de API necessários. Por exemplo, é possível transmitir {sessionStorage: true} para ter acesso apenas ao armazenamento de sessão ou {indexedDB: true, locks:true} para ter acesso ao IndexedDB e Web Locks.

Além de chamar essa extensão extra, o acesso ao armazenamento sem cookies atenderia aos requisitos atuais de acesso a cookies pela API Storage Access. Por exemplo, no Chrome, nenhuma solicitação é mostrada quando as origens estão no mesmo conjunto de sites relacionados (RWS, o novo nome dos conjuntos primários). As origens que não fazem parte da mesma RWS estão sujeitas aos requisitos de solicitação da API Storage Access no Chrome.

Duração

O teste de origem vai ficar disponível do Chrome 120 até o Chrome 125 (ou após 6 de agosto de 2024 em qualquer marco).

Escopo

Somente o armazenamento DOM (armazenamento local e de sessão), banco de dados indexado e bloqueios da Web estão disponíveis no Chrome 120.

O armazenamento em cache, o sistema de arquivos particular de origem, a cota, o armazenamento de blobs e o canal de transmissão foram adicionados no Chrome 121.

Os workers compartilhados e o controle sobre a inclusão de cookies foram adicionados no Chrome 123.

Os workers dedicados herdam o acesso a cookies não particionados se requestStorageAccess for chamado antes da criação do worker a partir do Chrome 120. Isso não exige o uso do identificador da API Storage Access.

Participar

  1. Avaliar como você usa o armazenamento de cookies e sem cookies em um contexto de terceiros. Os exemplos de casos de uso podem ajudar a entender se essa proposta atende às suas necessidades.
  2. Abra o Chrome 120 (ou mais recente) e verifique se a flag test-third-party-cookie-phaseout está ativada.
  3. Se você quiser testar o recurso localmente sem configurar um token de teste de origem, ative #enable-experimental-web-platform-features no navegador.
    1. Depois de concluir os testes localmente, registre-se no teste de origem StorageAccessAPIBeyondCookies e receba um token para seus domínios. Para instruções mais detalhadas, acesse Começar a usar os testes de origem. O guia para resolver problemas de testes de origem do Chrome oferece uma lista de verificação completa para garantir que seu token esteja configurado corretamente.
    2. Incorpore esse token de teste de origem ao iframe que você quer usar com o gerenciador da API Storage Access, usando um cabeçalho HTTP, uma metatag HTML ou de maneira programática. O token precisa ser incorporado por qualquer frame que queira usar essa API. Incorporá-lo no frame pai não ativará a API em frames filhos.
  4. Chame document.requestStorageAccess(...) para conseguir o identificador da API Storage Access no iframe entre sites. Consulte a documentação da API Storage Access para saber os requisitos para que essa chamada seja bem-sucedida.
  5. Migre o armazenamento relacionado no iframe para usar o identificador da API Storage Access, se disponível. Por exemplo, as chamadas para window.sessionStorage.setItem(...) se tornam handle.sessionStorage.setItem(...).
  6. Abra o site e verifique se o identificador de acesso ao armazenamento está funcionando conforme o esperado.
  7. Para interromper a participação no teste de origem, remova o token adicionado na etapa 3.
  8. Envie feedback ou informe problemas encontrados ao repositório do GitHub sobre o armazenamento da API Storage Access sem cookies.

Demonstração: Como usar a API Storage Access para acessar armazenamento local não particionado

A demonstração a seguir mostra como acessar canais de transmissão não particionados a partir de um iframe de terceiros usando a API Storage Access:

https://saa-beyond-cookies.glitch.me/

A demonstração exige o Chrome 121 ou mais recente com a flag test-third-party-cookie-phaseout ativada.

Outros recursos