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 no armazenamento, nos service workers e nas APIs de comunicação ao particionar 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 de implementar a compatibilidade com o particionamento de armazenamento de terceiros podem participar de um teste de descontinuação para descontinuar temporariamente (continuar o isolamento pela política de mesma origem, mas remover o isolamento pelo site de nível superior) e restaurar o comportamento anterior de armazenamento, service workers e APIs de comunicação no conteúdo incorporado do site. Esse teste de descontinuação está programado para expirar com o lançamento do Chrome 127 em 3 de setembro de 2024. Esse recurso é 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 lidar com determinados casos de uso interrompidos pelo particionamento de armazenamento de terceiros sem cookies, o Chrome está propondo a possibilidade de terceiros solicitarem acesso de armazenamento/comunicação (cookies e não cookies) usando a 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 estará disponível para testes em um teste de origem. Os desenvolvedores precisam participar desse teste 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 terá suporte a um teste de origem, StorageAccessAPIBeyondCookies, para permitir a extensão proposta da API Storage Access (compatível com versões anteriores) para permitir o acesso ao armazenamento não particionado (cookies e não cookies) em um contexto de terceiros.

Mecânica

A API pode ser usada da seguinte forma (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 acesso específico à API, em vez de acesso a all, transmita apenas os nomes dos identificadores de API necessários. Por exemplo, você pode transmitir {sessionStorage: true} apenas para ter acesso 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, o acesso ao armazenamento sem cookies corresponderia 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 dos conjuntos primários). Origens que não fazem parte do mesmo RWS estão sujeitas aos requisitos de solicitação da API Storage Access no Chrome.

Duração

O teste de origem 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), o banco de dados indexado e os bloqueios de Web estão disponíveis no Chrome 120.

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

No Chrome 123, foram adicionados equipes compartilhadas e controle sobre a inclusão de cookies.

Os trabalhadores 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 gerenciador 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 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 seu navegador.
    1. Depois de concluir os testes locais, register do teste de origem StorageAccessAPIBeyondCookies e receba um token para seus domínios. Para instruções mais detalhadas, acesse Primeiros passos com testes de origem. O guia para resolver problemas de testes de origem do Chrome contém uma lista de verificação completa para garantir que seu token esteja configurado corretamente.
    2. Incorpore esse token de teste de origem ao iframe em que você precisa usar o identificador da API Storage Access, utilizando um cabeçalho HTTP, uma metatag HTML ou de forma programática. Observe que o token deve ser incorporado por qualquer frame que queira usar essa API. Incorporar-o no frame pai não ativará a API em frames filhos.
  4. Chame document.requestStorageAccess(...) para usar o identificador da API Storage Access no iframe entre sites. Consulte a documentação da API Storage Access para saber os requisitos para realizar essa chamada.
  5. Migre o armazenamento relacionado no seu iframe para usar o identificador da API Storage Access, se ele estiver disponível. Por exemplo, as chamadas para window.sessionStorage.setItem(...) se tornam handle.sessionStorage.setItem(...).
  6. Abra o site e verifique se o gerenciador 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 encontrados no repositório do GitHub para não cookies da API Storage Access (em inglês).

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 em um iframe de terceiros usando a API Storage Access:

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

A demonstração requer o Chrome 121 ou versões mais recentes com a flag test-third-party-cookie-phaseout ativada.

Outros recursos