Origin Trials y funciones experimentales de la web
Evalúa Origin Trials con alcance explícito, detección, alternativas y rollback.
BotBrowser Team
Quieres la documentación estructurada de Plataforma?
Este artículo forma parte de la biblioteca editorial. Para pasos de configuración, material de referencia y actualizaciones continuas, entra en la sección de docs.
Un Origin Trial es una inscripción limitada, no soporte universal. Registra origen, token, canal, expiración, tarea, alternativa y rollback. No infieras identidad ni dispositivo de una API experimental.
Alcance de inscripción
Consulta la guía de Chrome y la documentación MDN. Un token de un origen no demuestra otro subdominio, iframe o navegador; una página https://app.example no inscribe automáticamente otro embed.
Detección en ejecución
Comprueba el método antes de usarlo. Separa token ausente, permiso denegado, política bloqueada, rechazo y confirmación visible. Conserva una alternativa accesible y no analices user-agent.
Tabla de decisión
| Observación | Decisión | Resultado |
|---|---|---|
| Token y método válidos | intentar una vez | anunciar progreso |
| Token ausente o expirado | alternativa | conservar tarea |
| Permiso denegado | explicar y ofrecer alternativa | mantener control |
| Llamada rechazada | clasificar y detener reintentos | mostrar recuperación |
| Promesa resuelta | verificar aplicación | confirmar visualmente |
Fixture de fallo
async function fixture() {
const host = document.createElement('div');
host.innerHTML = '<p id="status"></p><button id="fallback" hidden>Usar alternativa</button>';
document.body.append(host);
try {
const ok = typeof navigator.share === 'function';
const state = ok
? await navigator
.share({ title: 'Ensayo sintético', url: '/fixture' })
.then(() => 'completed')
.catch(() => 'failed')
: 'missing';
host.querySelector('#status').textContent = state === 'completed' ? 'Completado' : 'Usar alternativa';
host.querySelector('#fallback').hidden = state === 'completed';
return state;
} finally {
host.remove();
}
}
Estados de la inscripción Mantén separados los estados sin inscripción, disponible, denegado, fallido y completado. Un token ausente o vencido debe elegir la ruta estable sin reintentos ocultos.
Contexto y gesto del usuario Si la función requiere un gesto, incluye ese gesto en el fixture. Para un iframe, registra origen principal, allowlist y política de permisos como parte de la evidencia.
Despliegue y mantenimiento
Compara ruta estable y experimental con la misma tarea sintética. Revise expiración, permisos, iframe, accesibilidad, foco y copy de alternativa. Retira el token al terminar y conserva solo un recibo breve.
BotBrowser
BotBrowser puede proporcionar contextos controlados para journeys autorizados y comprobaciones repetibles de alternativas. No emite tokens, concede permisos, certifica experimentos ni prueba finalización del servicio. Consulta su documentación de aislamiento.
BotBrowser admite una configuración de origin controlada para estas pruebas, pero no garantiza la activación del token, el permiso ni la finalización de la aplicación.
Revisión del experimento como cambio de producto
Revisión del experimento
La revisión debe identificar tarea, ruta estable, ruta experimental, responsable del token y fecha de retirada sin depender de un panel privado.
Evidencia separada
Un método disponible o una promesa resuelta solo describe al navegador. Registra por separado la confirmación visible de la aplicación o el recibo de un servicio sintético.
Permisos y accesibilidad
Prueba rechazo y cancelación como rutas normales. La alternativa debe tener nombre accesible, foco de teclado, anuncio de estado y conservar los datos introducidos.
Cambios reversibles
Conserva la ruta estable antes de cambiar token o canal. El rollback debe desactivar la inscripción sin borrar la alternativa ni los datos de la tarea.
Registro de soporte
Guarda función, categoría de origen, etiqueta del responsable, expiración, canal, estado de detección, resultado visible, resultado de la alternativa y limpieza. Nunca guardes el token.
Inscripción observable Registra una etiqueta de configuración o manifiesto que identifique el experimento sin revelar el valor del token.
La ausencia de esa etiqueta significa que la página no está inscrita; no deduzcas la inscripción porque exista un constructor.
Límites del origen Prueba por separado la página superior, el iframe y el host local que el producto admite.
Un token para app.example no demuestra que admin.example o un embed de cliente estén autorizados.
Resultado de la aplicación
El navegador puede resolver una promesa aunque el servicio receptor no esté disponible.
Espera una confirmación visible, un estado idempotente o un recibo del servicio antes de declarar completada la tarea.
Comparación de canales
Mantén constantes la compilación de la aplicación y el alcance del token al comparar canales del navegador.
Compara la misma tarea, alternativa, orden de foco y limpieza; una diferencia de versión solo es una pista.
Fixture compacto
Un caso para token ausente, uno para expiración, uno para permiso denegado y uno para rechazo cubren los límites principales.
Añade otro caso solo cuando represente un recorrido de usuario compatible y tenga un resultado observable.
Retirada
Antes de retirar el experimento, elimina el token de la configuración y confirma que la ruta estable permanece disponible.
Conserva un recibo sintético breve durante el periodo de soporte y expira los artefactos según la política normal.
Lee también la guía de fallbacks de APIs y la guía WPT.
Fuentes
Artículos Relacionados
Lleva BotBrowser de la investigación a producción
Usa estas guías para entender el modelo y después avanzar hacia validación multiplataforma, contextos aislados y despliegue de navegador preparado para escalar.