Participa en la prueba de origen para obtener acceso al almacenamiento sin cookies a través de la API de Storage Access

Helen Cho
Helen Cho
Ari Chivukula
Ari Chivukula

Chrome 115 introdujo cambios en las APIs de almacenamiento, service workers y comunicación mediante la partición en contextos de terceros. Además de estar aisladas por la política del mismo origen, las APIs afectadas que se usan en contextos de terceros también están aisladas por el sitio del contexto de nivel superior.

Los sitios que no tuvieron tiempo para implementar la compatibilidad con la partición de almacenamiento de terceros pueden participar en una prueba de baja para desvincular temporalmente (continuar el aislamiento según la política del mismo origen, pero quitar el aislamiento por el sitio de nivel superior) y restablecer el comportamiento anterior del almacenamiento, los service workers y las APIs de comunicación en el contenido incorporado en su sitio. Esta prueba de baja vencerá con el lanzamiento de Chrome 127 el 3 de septiembre de 2024. Ten en cuenta que esto es independiente de la prueba de baja para el acceso a las cookies de terceros: solo es para el acceso al almacenamiento.

Como solución a largo plazo para abordar ciertos casos de uso interrumpidos por la partición de almacenamiento de terceros sin cookies, Chrome propone la capacidad de que los terceros soliciten acceso de almacenamiento o comunicación (ya sea con cookies o sin cookies) a través de la API de Storage Access (envío a partir de Chrome 117), que ya permite a los terceros solicitar acceso con cookies.

A partir de Chrome 120, esta propuesta estará disponible para experimentar con una prueba de origen. Los desarrolladores deben participar en esta prueba de origen para evaluar cómo la solución propuesta aborda sus casos de uso y asegurarse de estar preparados antes de que finalice la prueba de baja.

Detalles de la prueba de origen

A partir de Chrome 120, Chrome admitirá una prueba de origen, StorageAccessAPIBeyondCookies, para habilitar la extensión propuesta de la API de Storage Access (retrocompatible) que permite el acceso al almacenamiento no particionado (con cookies y sin ellas) en un contexto de terceros.

Mecánica

La API se puede usar de la siguiente manera (JavaScript que se ejecuta en un 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', ...);

Si solo quieres acceso a una API específica en lugar de acceso a all, puedes pasar los nombres de los controladores de API que necesitas. Por ejemplo, puedes pasar {sessionStorage: true} para obtener acceso solo al almacenamiento de sesiones o {indexedDB: true, locks:true} para obtener acceso a IndexedDB y Web Locks.

Además de llamar a esta extensión adicional, el acceso al almacenamiento sin cookies coincidiría con los requisitos actuales para el acceso de cookies a través de la API de Storage Access. Por ejemplo, en Chrome, no se muestra ningún mensaje cuando los orígenes se encuentran en el mismo conjunto de sitios web relacionados (RWS, el nuevo nombre de los conjuntos propios). Los orígenes que no forman parte del mismo RWS estarán sujetos a los requisitos de solicitudes de la API de Storage Access en Chrome.

Duración

La prueba de origen estará disponible desde Chrome 120 hasta Chrome 125 (o después del 6 de agosto de 2024 en cualquier evento importante).

Alcance

Solo el almacenamiento DOM (almacenamiento local y de sesión), la base de datos indexada y los bloqueos web están disponibles en Chrome 120.

En Chrome 121, se agregaron el almacenamiento en caché, el sistema de archivos privados de origen, la cuota, el almacenamiento de BLOB y el canal de transmisión.

En Chrome 123, se agregaron los trabajadores compartidos y el control sobre la inclusión de cookies.

Los trabajadores dedicados heredan el acceso a las cookies no particionadas si se llamó a requestStorageAccess antes de que se creara el trabajador a partir de Chrome 120 (esto no requiere el uso del identificador de la API de Storage Access).

Participación

  1. Evalúa cómo usas el almacenamiento de cookies y sin cookies en un contexto de terceros. Los casos de uso de ejemplo pueden ayudarte a comprender si esta propuesta se ajusta a tus necesidades.
  2. Inicia Chrome 120 (o una versión posterior) y asegúrate de que la marca test-third-party-cookie-phaseout esté habilitada.
  3. Si quieres probar la función de forma local sin configurar primero un token de prueba de origen, puedes habilitar #enable-experimental-web-platform-features en tu navegador.
    1. Una vez que haya terminado la prueba local, puede register en la prueba de origen StorageAccessAPIBeyondCookies y obtener un token para sus dominios. Para obtener instrucciones más detalladas, visita Comienza a usar las pruebas de origen. La guía para solucionar problemas relacionados con las pruebas de origen de Chrome proporciona una lista de tareas completa para garantizar que tu token esté configurado correctamente.
    2. Incorpora ese token de prueba de origen en el iframe que necesitas para usar el controlador de la API de Storage Access. Puedes hacerlo mediante un encabezado HTTP, una metaetiqueta HTML o de manera programática. Ten en cuenta que el token debe estar incrustado por cualquier marco que desee usar esta API; su incorporación en el marco superior no habilitará la API en los marcos secundarios.
  4. Llama a document.requestStorageAccess(...) para obtener el controlador de la API de Storage Access en el iframe entre sitios. Consulta la documentación de la API de Storage Access para conocer los requisitos que se deben cumplir para que esta llamada se realice correctamente.
  5. Migra el almacenamiento relacionado en tu iframe para usar el controlador de la API de Storage Access si está disponible. Por ejemplo, las llamadas a window.sessionStorage.setItem(...) se convierten en handle.sessionStorage.setItem(...).
  6. Abre tu sitio web y verifica que el controlador de acceso al almacenamiento funcione según lo previsto.
  7. Para dejar de participar en la prueba de origen, quita el token que agregaste en el paso 3.
  8. Envía comentarios o informa cualquier problema que encuentres al repositorio de GitHub de almacenamiento sin cookies de la API de Storage Access.

Demostración: Usa la API de Storage Access para acceder al almacenamiento local sin particionar

La siguiente demostración muestra cómo acceder a canales de transmisión no particionados desde un iframe de terceros con la API de Storage Access:

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

La demostración requiere Chrome 121 o versiones posteriores con la marca test-third-party-cookie-phaseout habilitada.

Recursos adicionales