Volver al Blog
Plataforma

Coherencia y privacidad de Worker y OffscreenCanvas

Diseña y revisa flujos de Worker y OffscreenCanvas con límites claros de ciclo de vida, renderizado, accesibilidad y privacidad.

BotBrowser Team

Documentación

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.

BotBrowser ofrece protección basada en perfiles para superficies documentadas de lectura de Canvas en un flujo autorizado. No sustituye la seguridad origin-clean ni la responsabilidad de accesibilidad, y no garantiza el mismo planificador o los mismos píxeles del Worker en todos los hosts. Los Workers permiten mover JavaScript fuera del hilo principal. OffscreenCanvas permite que el dibujo compatible se ejecute sin un elemento canvas visible en ese hilo. Juntos pueden mejorar la respuesta, pero añaden otro límite de ciclo de vida y renderizado que debe revisarse.

La página envía el trabajo de dibujo a un Worker, que renderiza con OffscreenCanvas y devuelve el resultado mientras la página conserva un estado accesible.

Separa las responsabilidades

La página controla la interacción, el estado visible, el contenido alternativo y la cancelación. Un Worker dedicado controla el cálculo asignado. OffscreenCanvas es una superficie que puede transferirse al Worker cuando el navegador lo admite. Transferirla cambia la propiedad; no promete los mismos píxeles en todos los navegadores, sistemas operativos, backends gráficos o conjuntos de fuentes.

Define entradas, mensajes, resultado esperado, errores, cancelación y limpieza. Un Worker no es un límite de seguridad: el código del mismo origen conserva sus permisos y los datos enviados deben limitarse a lo necesario.

Prueba un recorrido completo y visible

Una página vacía solo demuestra que se inició un script. Prueba el recorrido compatible: crea el Worker, transfiere o crea la superficie, envía datos sintéticos representativos, espera un mensaje de listo o error, muestra el resultado y termina el Worker normalmente. Mantén un estado de texto u otra alternativa accesible alineada con la salida visual.

Fija la versión de la aplicación y del navegador, la familia de perfil, el viewport, la escala, la ruta y la política de almacenamiento al comparar entornos. Describe el resultado visible en lenguaje normal, por ejemplo: «el gráfico se puede leer y el resumen está disponible».

Entiende la transferencia y el ciclo de vida

HTMLCanvasElement.transferControlToOffscreen() transfiere el control de un canvas a un OffscreenCanvas. El elemento original ya no puede controlarlo. El Worker recibe el objeto mediante un mensaje cuya lista de transferencia lo incluye. Trata la entrega como unidireccional y define qué ocurre ante una inicialización repetida.

Un Worker puede fallar antes de dibujar, durante un mensaje o al cerrarse. Gestiona error, messageerror, los mensajes de error de la aplicación y la cancelación. Libera referencias y termina el Worker al finalizar. Los mensajes enviados después de terminar deben producir un fallo comprensible, no perderse en silencio.

Mantén alineados el renderizado y la accesibilidad

Los píxeles de Canvas no sustituyen texto, datos tabulares, interacción de teclado ni un estado anunciado. Ofrece un nombre, resumen o vista de datos accesible y actualízalo cuando el Worker informe de un nuevo estado. Si OffscreenCanvas no está disponible, usa una alternativa documentada: canvas normal en el hilo principal, imagen o tabla.

El renderizado puede variar por implementación del navegador, escala, fuentes, color y backend gráfico. Define la aceptación por capacidades compatibles y resultados visibles. No prometas identidad bit a bit entre hosts salvo que el producto la admita y la compruebe.

Privacidad y límites de origen

Los Workers no eliminan las reglas de origen. Imágenes o medios de otro origen pueden hacer que un canvas deje de ser origin-clean, y el navegador restringirá la lectura de píxeles. Explica ese límite en lugar de intentar rodearlo. No envíes píxeles sin procesar, datos de cuenta ni identificadores estables al Worker salvo necesidad justificada.

BotBrowser ofrece protección determinista basada en perfiles para superficies documentadas de lectura de Canvas. Puede ayudar a que un perfil compatible produzca un resultado reproducible en un flujo autorizado, pero no sustituye el modelo de seguridad origin-clean, no resuelve la accesibilidad ni garantiza el mismo planificador o renderizado del Worker en todos los hosts. Un perfil de BotBrowser tampoco promete anonimato o aceptación por un sitio.

Usa filas separadas para versión, plataforma, modo headless o headed, ruta gráfica, soporte de Worker, soporte de OffscreenCanvas, alternativa, almacenamiento y resultado visible. Repite la fila aceptada tras actualizar el navegador, el perfil, la imagen del host, los gráficos o la aplicación.

Si una fila difiere, clasifica primero el resultado: capacidad ausente, error de aplicación, variación dentro del límite documentado o alternativa incompleta. Conserva el paquete aceptado mientras la persona responsable repite el recorrido y registra la decisión.

  • Define mensajes, cancelación, errores y limpieza del Worker.
  • Prueba la transferencia de propiedad y la alternativa no compatible.
  • Sincroniza la salida visual con el estado accesible.
  • Trata origin-clean como un límite de seguridad del navegador.
  • Separa la capacidad de BotBrowser de la responsabilidad de la aplicación.
  • Registra navegador, perfil, host, ruta gráfica y resultado visible.

Practical checklist

Fuentes públicas: WHATWG HTML Canvas, MDN Web Workers API, MDN OffscreenCanvas y protección Canvas de BotBrowser.

Lectura relacionada: Coherencia entre realms del navegador y privacidad y Propósito y privacidad de Canvas API.

Sources

WHATWG HTML Canvas: https://html.spec.whatwg.org/multipage/canvas.html

MDN Web Workers API: https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API

MDN OffscreenCanvas: https://developer.mozilla.org/en-US/docs/Web/API/OffscreenCanvas

Protección Canvas de BotBrowser: https://botbrowser.io/docs/fingerprint/canvas/

#Web Worker#OffscreenCanvas#Coherencia Del Navegador#Privacidad#Canvas

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.