Cómo solucionar problemas relacionados con las pruebas de origen de Chrome

Cómo abordar problemas comunes con los tokens de prueba en metaetiquetas, encabezados y secuencias de comandos

Verificado

Para solucionar problemas relacionados con una prueba de origen, soluciona cada uno de los siguientes problemas con los vínculos proporcionados.




















Pruébalo.

Las demostraciones a continuación muestran cada una de las maneras de proporcionar un token de prueba de origen y acceder a una función de prueba:

Cómo usar las Herramientas para desarrolladores de Chrome para verificar los tokens

A partir de Chrome 93, Herramientas para desarrolladores brinda información sobre la prueba de origen en el panel de la Aplicación para el marco seleccionado.

Información de las pruebas de origen de las Herramientas para desarrolladores de Chrome en el panel Application.

Expande el marco superior para inspeccionar los tokens de prueba de origen disponibles para un submarco. Por ejemplo, para la página de demostración en ot-iframe.glitch.me, puedes ver que la página del iframe proporciona un token.

Panel de aplicaciones de las Herramientas para desarrolladores de Chrome que muestra tokens de prueba de origen para la página en iframe.

  • Estado del token: Indica si la página tiene un token válido. Ten en cuenta que, para algunas pruebas de origen, puede haber otros factores, como las restricciones geográficas, que significan que la función de la prueba de origen no está disponible, a pesar de la presencia de un token válido. Los códigos de estado de las Herramientas para desarrolladores de Chrome explican el significado de cada uno de los códigos para las pruebas de origen.
  • Origen: Es el origen web registrado para el token.
  • Vencimiento: La fecha y hora de vencimiento máxima (más reciente) posible para el token, que normalmente coincidirá con la finalización de la prueba. No es la misma que la fecha de validez del token que aparece en Mis registros, que muestra durante cuánto tiempo es válido el token y se puede extender.
  • Restricción de uso: Límites de uso que se pueden establecer para algunas pruebas.
  • Terceros: Indica si la coincidencia con terceros está habilitada para el token. Esta opción está disponible para algunas pruebas de origen, en las que es necesario acceder a una función de prueba en varios sitios desde secuencias de comandos de terceros.
  • Hacer coincidir subdominios: indica si la coincidencia de subdominios está habilitada para el token. Esto permite probar una función de prueba de origen en varios subdominios de un origen, sin necesidad de un token diferente para cada subdominio.

Las Herramientas para desarrolladores de Chrome mostrarán una advertencia junto al nombre de la prueba si esta no está disponible para el usuario actual, si el token venció o si hay otras restricciones.

Información de las pruebas de origen de las Herramientas para desarrolladores de Chrome en el panel Application que muestra un token vencido

Códigos de estado de las Herramientas para desarrolladores de Chrome

  • Vencido: El token pasó su fecha de vencimiento. Deberás renovar el token para generar uno nuevo con una fecha de vencimiento nueva.
    Código fuente

  • FeatureDisabled: La prueba está inhabilitada para su uso.
    Código fuente

  • FeatureDisabledForUser: Este token se designó como inhabilitado para el usuario actual mediante una restricción de uso alternativa. Consulta la sección "Exclusiones de subconjuntos de usuarios" del documento de diseño.
    Código fuente 1
    Código fuente 2

  • No seguro: El origen de la solicitud no es seguro, y la prueba no está habilitada para orígenes inseguros. Como se explica en el código de validación de tokens de prueba de origen: “En el caso de los tokens de terceros, tanto el origen actual como el origen de la secuencia de comandos deben ser seguros. Debido a la coincidencia de subdominios, es posible que el origen del token no sea una coincidencia exacta de uno de los orígenes de la secuencia de comandos proporcionados, y el resultado no indica qué origen específico coincidió. Esto significa que no es una búsqueda directa para encontrar el origen adecuado de la secuencia de comandos. Para evitar tener que volver a realizar todas las comparaciones de orígenes, hay atajos que dependen de la cantidad de orígenes de secuencias de comandos que se proporcionaron. Debe haber al menos un token de terceros; de lo contrario, el token de terceros no se validará correctamente”.
    Código fuente

  • InvalidSignature: El token tiene una firma no válida o con errores de formato.
    Código fuente

  • Error de formato: El token tiene un formato incorrecto y no se pudo analizar.
    Código fuente

  • NotSupported: La prueba de origen definida por el token no es compatible con el “incorporador” de Chromium: un navegador como Chrome o Edge, WebView o algún otro usuario-agente.
    Código fuente

  • Listo: El token tiene el formato correcto, no venció, coincide con una función de prueba de origen y se solicita desde un origen esperado.
    Código fuente

  • TokenDisabled: El token se marcó como inhabilitado y no se puede usar.
    Código fuente

  • TrialNotAllowed: La prueba de origen no está disponible para el usuario actual.
    Código fuente

  • UnknownTrial: El token especifica un nombre de función que no coincide con ninguna prueba conocida.
    Código fuente

  • WrongOrigin: El origen de la solicitud no coincide con el origen especificado en el token. Esto puede incluir el esquema, el nombre de host o el puerto. Este estado también se mostrará si se proporciona un token de terceros en un encabezado HTTP, una metaetiqueta o una secuencia de comandos intercalada, en lugar de un archivo JavaScript externo.
    Código fuente

  • WrongVersion: La versión del token es incorrecta. Por el momento, solo se admiten las versiones 2 y 3 de los tokens.
    Código fuente


No funciona. 🤔

Si la prueba de origen no funciona como se esperaba, asegúrate de cumplir con las siguientes condiciones.

Estás haciendo pruebas en Chrome, no en Chromium ni en otro navegador

Las pruebas de origen de Chrome están diseñadas para funcionar con los usuarios de Chrome. No confíes en los tokens de prueba de origen de Chrome para habilitar las funciones de prueba en otros navegadores, como Chromium y otros navegadores basados en Chromium. Esto se debe a que las pruebas de origen de Chrome son específicas de las funciones que están disponibles en Chrome para la experimentación.

Las pruebas de origen también están disponibles para Firefox y Microsoft Edge. La inscripción en una prueba de origen de Firefox o Edge no habilitará una función en Chrome.

La prueba de origen está habilitada para las versiones de Chrome que acceden a tu sitio

El acceso a las pruebas se limita a versiones específicas de Chrome. En algunos casos, esto puede significar que una función de prueba solo está disponible para los canales de Chrome preestablecidos: Canary, para desarrolladores y beta.

Puedes verificar la disponibilidad de las versiones en la página de registro de la prueba:

Página de pruebas de origen de Chrome
para conjuntos propios y SameParty con la disponibilidad de Chrome destacada

Puedes consultar la versión de Chrome que estás usando en chrome://version.

La configuración de Chrome no inhabilitó la prueba de origen

Si un usuario informa que una función no está funcionando para él, comprueba que la función no esté inhabilitada en la configuración de Chrome. Por ejemplo, las funciones de Privacy Sandbox se pueden inhabilitar desde la página chrome://settings/privacySandbox.

Las palabras clave y la sintaxis son correctas

Asegúrate de usar palabras clave y sintaxis apropiadas para los tokens de prueba de origen.

Para el uso propio, se puede proporcionar un token en una metaetiqueta origin-trial:

<meta http-equiv="origin-trial" content="Aj4DysCv3VjknU3...">

Como alternativa, se puede proporcionar un token en un encabezado de respuesta Origin-Trial. A continuación, se muestra un ejemplo en el que se usa Express en Node.js:

app.use(function(req, res, next) {
  res.setHeader('Origin-Trial', 'Aj4DysCv3VjknU3...')
  next();
});

Los tokens también se pueden proporcionar mediante JavaScript:

function addTrialToken(tokenContents) {
  const tokenElement = document.createElement('meta');
  tokenElement.httpEquiv = 'origin-trial';
  tokenElement.content = tokenContents;
  document.head.appendChild(tokenElement);
}

El origen del token propio coincide con el origen de la página.

Asegúrate de que el valor de Origen web seleccionado cuando te registres en una prueba coincida con el origen de la página que tiene la metaetiqueta o el encabezado que proporciona el token.

Por ejemplo, si seleccionaste https://example.com como Origen web, haz lo siguiente:

Página de pruebas de origen de Chrome que muestra https://example.com seleccionado como origen web

Podrías obtener un valor de token como el siguiente:

Página de pruebas de origen de Chrome
que muestra el valor del token.

Verifica que este valor coincida con el token que se usó en la página para la que estás solucionando problemas.

Para obtener un token proporcionado en una metaetiqueta, verifica el código HTML:

  <meta http-equiv="origin-trial" content="Aj4DysCv3VjknU3...">

Para un token proporcionado en un encabezado, puedes verificar el valor del token en el panel Network de Chrome DevTools en Encabezados de respuesta:

El panel Network de las Herramientas para desarrolladores de Chrome muestra el encabezado de respuesta de las pruebas de origen.

El token propio se entrega desde el origen que lo usa

Si quieres habilitar el acceso a una función de prueba de origen para el código incluido en una página publicada desde tu origen, proporciona un token de prueba en una metaetiqueta, un encabezado o JavaScript desde el mismo origen.

El origen registrado para un token debe coincidir con el origen que lo entrega.

El origen del token de terceros coincide con el origen de la secuencia de comandos

Puedes registrarte para participar en una prueba de origen para secuencias de comandos que se insertan en otros orígenes.

Por ejemplo, si quieres que las secuencias de comandos que se publican desde javascript-library.example participen en una prueba de origen, debes registrar un token con coincidencia de terceros para javascript-library.example.

Página de registro de las pruebas de origen de Chrome que muestra las coincidencias de terceros seleccionadas.

El valor de origen de un token de terceros debe coincidir con el origen de la secuencia de comandos que lo inserta.

La secuencia de comandos de terceros usa un token de terceros

No puedes permitir que una secuencia de comandos de terceros participe en una prueba de origen en tu sitio simplemente registrando un token para el origen y no para la secuencia de comandos.

Las secuencias de comandos de terceros deben usar tokens con la coincidencia de terceros habilitada, insertados a través de la propia secuencia de comandos (no incluidos en una metaetiqueta ni en el encabezado de tu sitio) con un código como el siguiente:

function addTrialToken(tokenContents) {
  const tokenElement = document.createElement('meta');
  tokenElement.httpEquiv = 'origin-trial';
  tokenElement.content = tokenContents;
  document.head.appendChild(tokenElement);
}

El token de terceros se proporciona a través de una secuencia de comandos externa, no de una metaetiqueta, un encabezado HTTP ni una secuencia de comandos intercalada.

Los tokens de terceros se validan según el origen de la secuencia de comandos que los insertó, pero las secuencias de comandos intercaladas y las etiquetas <meta> en el lenguaje de marcado estático no tienen un origen (es decir, una URL de origen).

Esto significa que se debe proporcionar un token de terceros a través de una secuencia de comandos externa, no en una etiqueta <meta> ni una secuencia de comandos intercalada. No importa si la secuencia de comandos externa que inserta el token proviene del mismo origen que la página que la contiene, o de un origen diferente, siempre que el origen de la secuencia de comandos coincida con un origen registrado para la prueba.

Puedes ver una demostración de esto en ot-iframe-3p.glitch.me.

Se admite el acceso a la función de prueba de origen para el método que se usa para proporcionar un token de prueba

Algunos tipos de acceso a las funciones de prueba de origen requieren que proporciones un token de prueba de una manera específica. Por ejemplo, la única forma de habilitar el acceso a la prueba de origen para los service workers y los trabajadores compartidos es proporcionar un token en un encabezado Origin-Trial.

La coincidencia de subdominios está habilitada para un token usado en un subdominio.

Si una función de prueba de origen no funciona en algunas páginas de tu sitio, verifica que los tokens estén configurados correctamente para los subdominios que los entregan.

Cuando te registras para una prueba de origen, tienes la opción de elegir hacer coincidir todos los subdominios del origen:

Página de registro de las pruebas de origen de Chrome
que muestra las coincidencias de subdominios seleccionadas

También puedes hacer coincidir subdominios para tokens de terceros:

Página de registro de las pruebas de origen de Chrome
que muestra las coincidencias de terceros y de subdominios seleccionadas

No se emitirán los tokens de subdominio para los orígenes de la lista de sufijos públicos. Por ejemplo, no puedes registrar un origen como https://appspot.com o https://github.io, aunque puedes registrarte para dominios dentro de ese origen, como https://example.appspot.com o https://example.github.io.

El token sigue siendo válido

Los tokens son válidos durante seis semanas después de crearse. Más allá de eso, debes enviar comentarios para ampliar la fecha de validez. En la Guía de pruebas de origen para desarrolladores web, se explica cómo asegurarte de que tu token sea válido para una prueba de origen completa.

Puedes verificar si hay tokens activos en la página Mis registros de las pruebas de origen de Chrome:

Pruebas de origen de Chrome
La página Mis registros muestra la fecha Válida hasta la fecha

Las Herramientas para desarrolladores de Chrome muestran el estado Success si el token aún es válido:

Información de las pruebas de origen de las Herramientas para desarrolladores de Chrome en el panel Application, en la que se destaca Status: Success.

Si tu token venció, las Herramientas para desarrolladores mostrarán el estado Expired y la página Mis registros mostrará la sección Tokens vencidos.

Las pruebas de origen de Chrome
muestran la página Mis registros con tokens vencidos.

La prueba de origen no finalizó

Puedes consultar la fecha de finalización de una prueba de origen en la página de registro:

Página Pruebas de origen de Chrome
para conjuntos propios y SameParty. Se destacan los detalles de Prueba disponible.

Para las pruebas finalizadas, Herramientas para desarrolladores mostrará algo como lo siguiente:

Información de las pruebas de origen de las Herramientas para desarrolladores de Chrome en el panel Application que muestra ValidTokenNotProvided y Status Expiration

Recibirás correos electrónicos automáticos cuando se requieran comentarios o cuando un token esté a punto de vencer, pero no cuando finalice la prueba.

La prueba de origen está disponible para el usuario actual

Algunas pruebas de origen no están disponibles para ciertos usuarios, incluso si se proporciona un token válido.

Si no hay una prueba disponible para el usuario actual, las Herramientas para desarrolladores de Chrome mostrarán una advertencia TrialNotAllowed:

Información de las pruebas de origen de las Herramientas para desarrolladores de Chrome en el panel de la app que muestra la advertencia de TestingNotAllowed.

Se proporcionará información sobre las restricciones de uso y la disponibilidad para cada prueba de origen.

Al igual que con cualquier función de plataforma web, debes usar la detección de funciones para confirmar que se admite una función de prueba de origen antes de usarla.

No se superaron las restricciones de uso de la prueba de origen

De forma predeterminada, se habilitará una función de prueba de origen en todas las páginas que tengan un token válido para la prueba.

Sin embargo, salvo en casos excepcionales, el uso de la prueba de origen se limita a un máximo del 0.5% de todas las cargas de páginas de Chrome. Si el uso total de todos los usuarios de Chrome supera esa cantidad, se inhabilitará la función de prueba de origen. Las Herramientas para desarrolladores mostrarán el estado del token como inhabilitado.

No hay límites de uso para las pruebas de baja, ya que no presentan funciones nuevas y, por lo tanto, no representan el riesgo de que una proporción significativa de la Web dependa de una función de prueba.

Algunas pruebas también ofrecen una opción para limitar el uso, lo que significa que se inhabilitarán las funciones de la prueba de origen para algunos usuarios. Esta opción está disponible en la página de registro de una prueba de origen que la ofrece:

Página de registro de las pruebas de origen de Chrome que muestra las restricciones de uso

Si notas que el acceso de los usuarios a una función de prueba de origen es más bajo de lo esperado, asegúrate de que esté seleccionada la opción “Límite estándar”.

Los iframes proporcionan sus propios tokens

Para permitir el acceso a una función de prueba de origen, un iframe debe proporcionar un token en una metaetiqueta, un encabezado HTTP o de forma programática. Los iframes no heredan el acceso a las funciones habilitadas para las páginas que las contienen.

ot-iframe.glitch.me demuestra el acceso a una función de prueba de origen desde un iframe. ot-iframe-3p.glitch.me proporciona varios ejemplos de iframes de origen cruzado.

Las políticas de permisos están configuradas correctamente

Algunas funciones de prueba de origen pueden verse afectadas por un encabezado Permissions-Policy (antes conocido como encabezado Feature-Policy). Puedes comprobar esto en Intent de experimento para la función de prueba o en la documentación para desarrolladores de la función en web.dev o developer.chrome.com/blog.

Asegúrate de que la función a la que intentas acceder no esté bloqueada por una directiva Permissions-Policy. Puedes verificar los encabezados de respuesta en el panel Network de Chrome DevTools y ver la lista completa de funciones permitidas en el panel Application.

Panel de la aplicación de las Herramientas para desarrolladores de Chrome que muestra la función que permite la política de permisos

¿Qué pasa con los trabajadores?

Las funciones de pruebas de origen pueden estar disponibles para service workers, compartidos y dedicados. Sin embargo, la única forma de habilitar el acceso de los service workers y los trabajadores compartidos es proporcionar un token en un encabezado Origin-Trial.

Los trabajadores dedicados heredan el acceso a las funciones habilitadas por sus documentos superiores.

El token se proporciona antes de acceder a la función

Asegúrate de proporcionar un token de prueba de origen antes de que se acceda a una función de prueba. Por ejemplo, si una página proporciona un token a través de JavaScript, asegúrate de que el código para proporcionar el token se ejecute antes que el código que intenta acceder a la función de prueba.

Demostraciones de la prueba de origen

Más información