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

Soluciona problemas comunes con tokens de prueba en metaetiquetas, encabezados y secuencias de comandos.

Lista de tareas

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

¡Pruébalo!

En las siguientes demostraciones, se muestra cada una de las maneras de proporcionar un token de prueba de origen y acceder a una función de prueba:

Usa las Herramientas para desarrolladores de Chrome para verificar los tokens

A partir de Chrome 93, las Herramientas para desarrolladores proporcionan información sobre las pruebas de origen en la Panel de la aplicación para el marco seleccionado.

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

Expande el marco superior a fin de 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 iframe proporciona un token.

Herramientas para desarrolladores de Chrome 
  Panel de la aplicación que muestra los tokens de prueba de origen de la página en iframe.

  • Estado del token: Indica si la página tiene un token válido. Ten en cuenta que, en el caso de algunas pruebas de origen, otros factores, como las restricciones geográficas, esto significa que el atributo de prueba de origen no está disponible, a pesar de la presencia de un token válido. Códigos de estado de las Herramientas para desarrolladores de Chrome se explica el significado de cada uno de los códigos para las pruebas de origen.
  • Origin: Es el origen web registrado para el token.
  • Fecha y hora de vencimiento: la fecha y hora de vencimiento máximas posibles para el token, que normalmente se coincida con el final de la prueba. No es la misma que la fecha Válida hasta el del token que se muestra. en Mis registros , que muestra durante cuánto tiempo es válido el token en la actualidad. se puede extender.
  • Restricción de uso: Límites de uso, que se pueden configurar para algunas pruebas.
  • De terceros: Si las coincidencias de terceros esté habilitado para el token. Esta opción está disponible para algunas pruebas de origen, en las que una función de prueba necesita en varios sitios desde secuencias de comandos de terceros.
  • Coincidencia de subdominios: Indica si la coincidencia de subdominios. esté habilitado para el token. Esto permite que una función de prueba de origen se pruebe en varias subdominios de un origen, sin la 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, que el token haya vencido o si hay otras restricciones.

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

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

  • Vencido: El token pasó su fecha de vencimiento. El token se deberá renovar para generar un nuevo token con una nueva fecha de vencimiento.
    Código fuente

  • FeatureDisabled: la prueba está inhabilitada para usarla.
    Código fuente

  • FeatureDisabledForUser: este token se designó como inhabilitado para el usuario actual mediante un restricción de uso alternativa. Consulte el artículo "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 no seguros. Como se explica en el código del validador de tokens de prueba de origen: 'Para los tokens de terceros, tanto el origen actual como el origen de la secuencia de comandos deben ser seguros. Debido a coincidencia de subdominio, es posible que el origen del token no sea una coincidencia exacta para una de las secuencias de comandos proporcionadas orígenes, y el resultado no indica con qué origen específico coincidió. Esto significa que no es para encontrar el origen adecuado de la secuencia de comandos. Para evitar tener que volver a hacer todas las comparaciones de origen, Hay atajos que dependen de la cantidad de orígenes de secuencias de comandos que se proporcionen. Debe haber al menos uno o el token de terceros no se validaría 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 que define el token no se admite en Chromium. "Incorporador": Un navegador como Chrome o Edge, un WebView o algún otro usuario-agente
    Código fuente

  • Éxito: El token tiene el formato correcto, no está vencido, coincide con una función de prueba de origen y está solicitada 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 incluyen el esquema, el nombre de host o el puerto. Este estado también se mostrará si un token de terceros se proporciona en un encabezado HTTP, una metaetiqueta o una secuencia de comandos integrada, en lugar de un archivo JavaScript externo.
    Código fuente

  • WrongVersion: Versión del token incorrecta. Por el momento, solo se admiten las versiones 2 y 3 del token.
    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 realizando pruebas en Chrome, no en Chromium ni en otro navegador

Las pruebas de origen de Chrome están diseñadas para funcionar para los usuarios de Chrome. No depender de los tokens de prueba de origen de Chrome para habilitar funciones de prueba en otros navegadores, incluidos Chromium y otros navegadores basados en Chromium. Esto se debe a que las pruebas de origen de Chrome son específicas para las funciones disponibles en Chrome para para realizar experimentos.

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 implicar una prueba solo está disponible en canales de Chrome preestablecidos: Canary, para desarrolladores y beta.

Puedes consultar la disponibilidad de las versiones en la página de registro. para la prueba:

Pruebas de origen de Chrome
de Conjuntos propios y SameParty con disponibilidad de Chrome destacado

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 individual informa que una función no funciona, comprueba que no lo esté. inhabilitado en la configuración de Chrome. Por ejemplo, Privacy Sandbox las funciones se pueden inhabilitar en la página chrome://settings/privacySandbox.

Las palabras clave y la sintaxis son correctas

Asegúrate de usar la sintaxis y las palabras clave adecuadas para los tokens de prueba de origen.

Para 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. Aquí hay un ejemplo en el que se usa Express en Node.js:

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

También se pueden proporcionar tokens 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 registras en una prueba coincida con el origen de la que contiene la metaetiqueta o el encabezado que proporciona el token.

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

Pruebas de origen de Chrome 
página que muestra https://example.com seleccionada como Origen web

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

Pruebas de origen de Chrome 
página que muestra el valor del token.

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

Para ver 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 desde el Panel Network de Herramientas para desarrolladores de Chrome en Encabezados de respuesta:

Herramientas para desarrolladores de Chrome 
Panel de red que muestra el encabezado de respuesta de las pruebas de origen.

El token propio se entrega desde el origen que lo usa

Para habilitar el acceso a una función de prueba de origen para el código incluido en una página que se entrega desde tu origen, Proporciona un token de prueba en una metaetiqueta, un encabezado o a través de JavaScript del 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 deseas que las secuencias de comandos que se entregan desde javascript-library.example participen en una prueba de origen, debes registrar un token con coincidencias de terceros para javascript-library.example.

Pruebas de origen de Chrome 
página de registro que muestra 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 para registrar un token para el origen y no para la secuencia de comandos.

Las secuencias de comandos de terceros deben usar tokens que tengan habilitada la coincidencia con terceros, los cuales se insertan a través de la secuencia de comandos. (no se incluye en una metaetiqueta ni en un encabezado del sitio) mediante 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 una metaetiqueta, un encabezado HTTP ni una secuencia de comandos integrada.

Los tokens de terceros se validan con respecto al origen de la secuencia de comandos que los inyectó, pero intercalados. Las secuencias de comandos 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 mediante una secuencia de comandos externa, no en una etiqueta <meta>. o secuencia de comandos integrada. No importa si la secuencia de comandos externa que inyecta el token proviene del el mismo origen que la página que la contiene u otro origen, siempre que el origen de la secuencia de comandos coincida un origen registrado para la prueba.

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

El acceso a la función de prueba de origen es compatible con 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 service workers y trabajadores compartidos es proporciona un token en un encabezado Origin-Trial.

La coincidencia de subdominios está habilitada para un token que se usa en un subdominio

Si una función de prueba de origen no funciona en algunas páginas del sitio, comprueba lo siguiente: que los tokens estén configurados correctamente para los subdominios que los ofrecen.

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

Pruebas de origen de Chrome 
página de registro que muestra la coincidencia de subdominio seleccionada

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

Pruebas de origen de Chrome 
página de registro que muestra la coincidencia de terceros y de subdominio seleccionada

No se emitirán los tokens de subdominio para los orígenes en la lista pública de sufijos. 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 a partir de su creación. Más allá de eso, debes enviar comentarios para para extender la fecha Válida hasta la fecha. En la guía sobre pruebas de origen para desarrolladores web, se explica cómo asegurarse el token es válido durante toda una prueba de origen.

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

Pruebas de origen de Chrome 
En la página My Registrations se muestra Valid hasta la fecha

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

Herramientas para desarrolladores de Chrome 
la información de las pruebas de origen en el panel Application, donde se destaca Estado: finalizado.

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

Pruebas de origen de Chrome 
Se muestran los tokens vencidos en la página My Registrations.

La prueba de origen aún no ha finalizado

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

Pruebas de origen de Chrome
de Conjuntos propios y Se destacan los detalles de SameParty con versión de prueba disponible.

Para las pruebas que ya finalizaron, las Herramientas para desarrolladores mostrarán algo como lo siguiente:

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

Recibirás correos electrónicos automáticos cuando sea necesario enviar comentarios o cuando un token esté a punto de caducar. no cuando termina 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 una prueba no está disponible para el usuario actual, las Herramientas para desarrolladores de Chrome mostrarán una advertencia de TrialNotAllowed:

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

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 la plataforma web, debes usar la detección de funciones para confirmar que una función de prueba de origen es compatible 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. La función de prueba de origen se inhabilitará si el uso total de todos los usuarios de Chrome supera esa cantidad. 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 nuevos atributos y, por lo tanto, no plantean el riesgo de hacer una proporción significativa de la Web depende de una función de prueba.

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

Pruebas de origen de Chrome 
página de registro que muestra las restricciones de uso.

Si notas que el acceso de los usuarios a la función de prueba de origen es más bajo de lo esperado, asegúrate de que el '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, una etiqueta encabezado, o de manera programática. Los iframes no heredan el acceso a las funciones habilitadas para las páginas que los contienen.

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

Las políticas de permisos están configuradas correctamente

Algunas funciones de prueba de origen pueden verse afectadas por una Permissions-Policy encabezado (antes conocido como encabezado Feature-Policy). Puedes comprobarlo en la Intención de experimentar de 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 Permissions-Policy. directiva. Puedes verificar los encabezados de respuesta en el panel de red de Herramientas para desarrolladores de Chrome y ver la una lista completa de las funciones permitidas en el panel de la aplicación.

Herramientas para desarrolladores de Chrome 
  Panel Application, que muestra la función de política de permisos permitida.

¿Qué pasa con los trabajadores?

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

Los trabajadores exclusivos heredan el acceso a las funciones habilitadas en su documento superior.

El token se proporciona antes de acceder a las funciones

Asegúrate de proporcionar un token de prueba de origen antes de acceder 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 proporcione el token se ejecuta antes que el código que intenta acceder a la función de prueba.

Demostraciones de pruebas de origen

Más información