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:
- ot-meta.glitch.me: Token en una metaetiqueta
origin-trial
- ot-header.glitch.me: Es el token en un encabezado de respuesta
Origin-Trial
. - ot-3p.glitch.me: Token insertado por una secuencia de comandos de terceros
- ot-iframe.glitch.me: función de prueba de origen a la que se accede en un iframe
- ot-iframe-3p.glitch.me: Ejemplos de iframe de origen cruzado
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.
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.
- 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.
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 fuenteFeatureDisabled: la prueba está inhabilitada para usarla.
Código fuenteFeatureDisabledForUser: 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 2No 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 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 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 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 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 fuenteWrongVersion: 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:
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:
Podrías obtener un valor del token como el siguiente:
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:
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
.
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:
También puedes hacer coincidir los subdominios de los tokens de terceros:
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:
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 tu
Se mostrará la sección Tokens vencidos en Mi página de registros.
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:
Para las pruebas que ya finalizaron, las Herramientas para desarrolladores mostrarán algo como lo siguiente:
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
:
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:
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.
¿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
- 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 con 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
- Ejecuta una prueba de origen
- Proceso para lanzar nuevas funciones en Chromium
- Intención de explicar: cómo derribar los mitos del proceso de envío de Blink
- Usa pruebas de origen en Microsoft Edge
- Pruebas de origen para Firefox