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, workers de serviço e comunicação particionando 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 a compatibilidade com o particionamento de armazenamento de terceiros podem participar de um teste de descontinuação para remover a partição temporariamente (continuar o isolamento com a mesma política de origem, mas remover o isolamento por site de nível superior) e restaurar o comportamento anterior de armazenamento, workers de serviço e APIs de comunicação no conteúdo incorporado. Esse teste de descontinuação vai expirar com o lançamento do Chrome 127 em 3 de setembro de 2024. Esse teste é separado do teste de descontinuação do acesso a cookies de terceiros, apenas para acesso ao armazenamento.

Como uma solução de longo prazo para resolver determinados casos de uso interrompidos pelo particionamento de armazenamento de terceiros sem cookies, o Chrome está propondo a capacidade de terceiros solicitar acesso de armazenamento/comunicação (cookies e não cookies) pela API Storage Access (envio a partir do Chrome 117), que já permite que terceiros solicitem acesso a cookies.

A partir do Chrome 120, essa proposta vai estar disponível para experimentação em um teste de origem. Os desenvolvedores precisam participar desse teste de origem para avaliar como a solução proposta atende aos 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 apenas o acesso a uma API específica em vez de all, transmita apenas os nomes 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 aos bloqueios da Web.

Além de chamar essa extensão extra, o acesso ao armazenamento sem cookies corresponde aos requisitos atuais de acesso a cookies pela API Storage Access. Por exemplo, no Chrome, nenhum aviso é mostrado quando as origens estão no mesmo conjunto de sites relacionados (RWS, o novo nome para os conjuntos próprios). 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 estar 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. Avalie 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. Inicie o Chrome versão 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, register 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 tem uma lista de verificação completa para garantir que seu token esteja configurado corretamente.
    2. Incorpore esse token de teste de origem no iframe em que você precisa usar o identificador da API Storage Access usando um cabeçalho HTTP, uma metatag HTML ou programaticamente. 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 acessar 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 seu 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 relate problemas no repositório do GitHub da API Storage Access sem cookies.

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

A demonstração a seguir mostra como acessar canais de transmissão não particionados 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