El soporte de una función no es su calidad
La presencia de una API del navegador es solo el inicio de un recorrido fiable, accesible y respetuoso con la privacidad.
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.
Una tabla de soporte indica que una versión debería exponer una función. No garantiza que la llamada funcione en este origen, que se conceda el permiso ni que la persona termine la tarea. BotBrowser puede repetir un recorrido autorizado en un contexto controlado, pero no concede permisos ni certifica el resultado de la aplicación. La calidad es la distancia entre la capacidad declarada y un resultado fiable y comprensible.
Tres capas de evidencia
Lee MDN Browser Compatibility Data, sus notas, flags, contexto seguro y soporte parcial, junto con el contrato de MDN Web APIs y la especificación correspondiente. La detección en tiempo de ejecución solo responde qué puede intentar esta página ahora. No identifica a nadie ni demuestra que terminó una operación de aplicación.
Para cada API opcional registra contexto, detección, permiso, excepción, señal visible de éxito y fallo, y responsable de la alternativa. Que exista un método en navigator significa “se puede intentar”, no “se completó”.
Tabla de decisión de calidad
| Observación | Decisión | Comprobación |
|---|---|---|
| Método y contexto presentes | Intentar una vez tras la intención | Mantener progreso y cancelación visibles |
| Método ausente o bloqueado | Usar la alternativa equivalente | Conservar datos y teclado |
| Permiso denegado | Explicar y ofrecer alternativa | No solicitar en bucle |
| Rechazo o timeout | Clasificar el fallo acotado | No llamarlo falta de soporte |
| Llamada resuelta | Verificar la aplicación | Confirmar solo el resultado visible |
Fixture de fallo determinista
Prueba estados ausente, denegado, rechazado y demorado en una página sintética. Sustituye solo la API propia y comprueba el control visible:
async function shareWithFallback() {
const host = document.createElement('div');
host.innerHTML = '<p id="status" role="status"></p><button id="fallback" hidden>Copiar enlace</button>';
document.body.append(host);
const status = host.querySelector('#status');
const fallback = host.querySelector('#fallback');
if (typeof navigator.share !== 'function') {
fallback.hidden = false;
status.textContent = 'Usa la alternativa disponible';
host.remove();
return 'missing';
}
try {
await navigator.share({ title: 'Elemento sintético', url: '/fixture' });
status.textContent = 'Solicitud aceptada; verifica el resultado';
return 'accepted';
} catch (error) {
fallback.hidden = false;
status.textContent =
error?.name === 'NotAllowedError' ? 'Compartir fue cancelado' : 'Usa la alternativa disponible';
return 'fallback';
} finally {
console.assert(status.textContent.length > 0);
host.remove();
}
}
El fixture demuestra la rama y la limpieza, no la compatibilidad universal, el estado de una cuenta ni una transacción. Fija timeout y reintentos, y no recojas propiedades ajenas para forzar la ruta principal.
Mejora progresiva y BotBrowser
Mantén utilizable la tarea con un enlace copiable, un campo normal o un control de teclado. Conserva borradores, mueve el foco al estado y explica diferencias de resultado. Revisa los datos cuando cambien versiones, permisos, origen o políticas.
BotBrowser ofrece contextos controlados para recorridos autorizados y comprobaciones sintéticas repetibles. No garantiza una API en todo origen, no concede permisos, no vuelve seguro un contexto inseguro y no sustituye el diseño accesible ni la alternativa de la aplicación. Una prueba sintética aprobada tampoco prueba un registro del servidor o una transacción. Registra página, versión, contexto, fixture y resultado visible, y conserva separadas las evidencias de navegador, permiso y servidor.
BotBrowser capability and limitation
Consulta eventos WebDriver BiDi y Credential Management para ejemplos relacionados.
Operational checklist
Define la tarea, el resultado mínimo, la ruta primaria y la alternativa. Registra contexto, permiso, estado visible y responsable; usa los datos de compatibilidad para planificar, no para prometer. Separa ausente, rechazado, fallido, aceptado y completado. Usa datos sintéticos, reintentos acotados y limpieza en finally; comprueba contexto seguro, foco, teclado y mensajes accesibles. Conserva solo estado normalizado, revisión de fuente y siguiente acción. Distingue siempre el evento del navegador, el permiso y la confirmación del servidor.
Designing a useful support contract.
Define acción, resultado mínimo, alternativa y límite de éxito antes de elegir la matriz. Registra fuente, contexto, permiso, fixture, responsable y revisión, sin perfiles ni volcados privados.
Permission and policy states.
El permiso depende de la persona y de la política. Prueba rechazo, revocación, iframe y resultados tardíos, conserva el borrador y evita solicitudes repetidas.
Measuring visible outcomes without surveillance.
Registra estados acotados, versión declarada y control visible; no recojas listas de navigator, fuentes, renderizador, cuenta o ubicación.
Release review and incident triage.
Compara entradas sintéticas y separa API, contexto, permiso, navegador y servidor antes de cambiar la matriz o el texto de alternativa.
Quality contract maintenance.
Cuando cambien origen, iframe, política o accesibilidad, actualiza el registro y una fixture, y confirma el responsable de la alternativa.
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.