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:
- ot-meta.glitch.me: Es el token en una metaetiqueta
origin-trial
. - ot-header.glitch.me: Token en un encabezado de respuesta
Origin-Trial
- ot-3p.glitch.me: Token inyectado por una secuencia de comandos de terceros
- ot-iframe.glitch.me: Se accede a la función de prueba de origen desde un iframe.
- ot-iframe-3p.glitch.me: ejemplos de iframe de origen cruzado
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.
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.
- 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.
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 fuenteFeatureDisabled: La prueba está inhabilitada para su uso.
Código fuenteFeatureDisabledForUser: 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 2No 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 fuenteInvalidSignature: El token tiene una firma no válida o con errores de formato.
Código fuenteError 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 fuenteListo: 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 fuenteTokenDisabled: El token se marcó como inhabilitado y no se puede usar.
Código fuenteTrialNotAllowed: La prueba de origen no está disponible para el usuario actual.
Código fuenteUnknownTrial: El token especifica un nombre de función que no coincide con ninguna prueba conocida.
Código fuenteWrongOrigin: 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 fuenteWrongVersion: 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:
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:
Podrías obtener un valor de token como el siguiente:
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 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
.
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:
También puedes hacer coincidir subdominios para tokens de terceros:
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:
Las Herramientas para desarrolladores de Chrome muestran el estado Success
si el token aún es válido:
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.
La prueba de origen no finalizó
Puedes consultar la fecha de finalización de una prueba de origen en la página de registro:
Para las pruebas finalizadas, Herramientas para desarrolladores mostrará algo como lo siguiente:
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
:
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:
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.
¿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
- Token en una metaetiqueta
- Token en un encabezado
- Se accede a la función en un iframe
- Token insertado por una secuencia de comandos de terceros
- ot-iframe-3p.glitch.me: ejemplos de iframe de origen cruzado
Más información
- Comienza a usar las pruebas de origen de Chrome
- Pruebas de origen de terceros
- Guía de pruebas de origen para desarrolladores web
- Explicación de la prueba de origen
- Cómo ejecutar una prueba de origen
- Proceso para el lanzamiento de nuevas funciones en Chromium
- Intento de explicación: Desmitificación del proceso de envío de Blink
- Usa pruebas de origen en Microsoft Edge
- Pruebas de origen para Firefox