O Chrome propôs uma nova experiência que permite que os usuários escolham como os cookies de terceiros são processados durante a navegação. Sites e serviços podem precisar detectar se os cookies de terceiros estão disponíveis em um determinado contexto. O Chrome tem dois métodos principais para detectar o acesso a cookies de terceiros para conteúdo incorporado: usar o método JavaScript hasStorageAccess e observar os cabeçalhos Sec-Fetch-Storage-Access.
O Sandbox de privacidade introduziu APIs que podem conceder a frames específicos acesso a cookies de terceiros se determinadas condições forem atendidas. Portanto, é importante detectar o acesso a cookies não particionados por incorporação.
Detectar o acesso a cookies de terceiros em iframes
Quando o conteúdo de um iframe é hospedado em um site diferente daquele exibido na barra de endereço do usuário, ele é considerado cross-site e pode ter cookies de terceiros restritos. O iframe pode detectar se tem acesso a cookies de terceiros chamando await document.hasStorageAccess(). Esse método retorna true ou false, dependendo se o frame tem ou não acesso a cookies não particionados.
Se o iframe usar a API Storage Access (SAA) para acessar cookies não particionados entre sites (usando a SAA sozinha ou com conjuntos de sites relacionados), você poderá verificar a permissão storage-access para determinar se o frame pode ou não acessar cookies não particionados.
Detectar o acesso a cookies de terceiros em solicitações HTTP
No Chrome 133 e versões mais recentes, o cabeçalho Sec-Fetch-Storage-Access é enviado com solicitações com credenciais para informar ao servidor se o contexto de chamada tem acesso a cookies não particionados. Esse cabeçalho contém um destes três valores:
- none: a incorporação não tem acesso a cookies não particionados
- inactive: a incorporação tem permissão para acessar cookies não particionados, mas não a ativou
- active: a incorporação tem acesso a cookies não particionados
Condições que concedem acesso a cookies não particionados
O acesso a cookies de terceiros não particionados pode ser concedido de várias maneiras para oferecer suporte a casos em que esses cookies oferecem a funcionalidade necessária. Os métodos a seguir resultam no acesso a cookies não particionados. Em vários casos, requestStorageAccess() ou requestStorageAccessFor() precisam ser chamados antes que o acesso seja concedido.
| Método | Exemplo | É necessário chamar requestStorageAccess? | 
|---|---|---|
| Prompt da API Storage Access | O usuário é solicitado a permitir o acesso ao armazenamento e seleciona "Permitir". | Sim | 
| Gerenciamento de credenciais federadas | O usuário faz login com um provedor de identidade federado (IdP). O frame do IdP solicita acesso ao armazenamento. | Sim | 
| Conjuntos de sites relacionados | A incorporação e o incorporador pertencem ao mesmo RWS. | Sim | 
| 3PCs ativados nas configurações do usuário | O usuário escolhe permitir 3PCs para toda a navegação ou apenas para uma origem específica. | Não | 
| Exceções baseadas em heurísticas | O Chrome detecta um padrão heurístico e concede acesso automático a cookies não particionados. Não é necessário chamar requestStorageAccess(). | Não | 
| Exceções temporárias (por exemplo, período de carência) | O site ou serviço se inscreveu em uma exceção temporária do Chrome durante a transição para uma solução mais durável. | Não | 
| Políticas empresariais | O administrador do Chrome Enterprise de uma empresa escolheu permitir 3PCs em parte ou em todo o tráfego. | Não |