Lightpanda
Arquitectura de Lightpanda: estado por conexión y dominios de protocolo
Sigue la propiedad de navegador, sesión, página y destino, separando observaciones opcionales de compatibilidad web completa.
Qué aprenderás
- Registra propiedad de Browser, Session y destino.
- Una conexión no admite contextos simultáneos ilimitados.
- Formato de observación y política de carga son independientes.
Antes de empezar
- HTTP, JSON y ciclos de navegador básicos
- Muestra propia con salida esperada explícita
Explica el límite de implementación y verifica la tarea propuesta o el modelo independiente de bytes.
Conclusiones clave
- Registra propiedad de Browser, Session y destino.
- Una conexión no admite contextos simultáneos ilimitados.
- Formato de observación y política de carga son independientes.
Sigue propietarios, no nombres de API conocidos
Browser.zig posee un entorno JavaScript, cliente HTTP, sesión opcional y reservas de memoria relacionadas con páginas. Sus comentarios describen una sesión por Browser. También mantiene permisos, caché de selectores, sustituciones de viewport y un renderizador de capturas creado bajo demanda. Estos propietarios explican qué sobrevive a la navegación y qué se libera al terminar.
El generador de identificadores de frame pertenece a Browser, no a Session, para evitar reutilizar inmediatamente destinos al crear contextos sucesivos en una conexión CDP. Incrementa con aritmética modular. Esta elección aborda unicidad durante ciclos de vida; no proporciona identidad criptográfica ni un token de autorización.
Target impone límites concretos
createBrowserContext devuelve un error si ya existe un contexto activo en esa conexión. createTarget rechaza igualmente un destino ya cargado, y getBrowserContexts devuelve el contexto actual o una lista vacía. Estas ramas importan más para diseñar concurrencia que compartir nombres de métodos con el protocolo de Chrome.
Algunas opciones de contexto generan advertencias de funcionalidad no implementada, mientras la opción de proxy modifica el cliente HTTP del navegador. Una respuesta correcta no prueba que todas las opciones enviadas surtieran efecto. Prueba las opciones de aislamiento y limpieza necesarias y deja clara la propiedad de conexiones en cargas concurrentes.
Observación y recursos se controlan aparte
LP implementa Markdown y árboles semánticos; estos admiten poda, selección de elementos interactivos y profundidad máxima. Imágenes, marcos, workers y hojas externas tienen controles de carga separados. Cambiar el formato observado no demuestra que se cargaran todos los recursos necesarios para el resultado.
La estructura base LoadResources inicia esos cuatro indicadores en false, aunque código específico del modo puede modificarlos. Informa modo y configuración efectiva en los experimentos, sin extender un valor predeterminado a toda invocación. El diagrama es un mapa editorial de propiedad, no una topología medida de hilos ni una prueba de aislamiento completo.
Pasos de implementación
- 1
Dibuja propietarios de una conexión CDP.
- 2
Prueba creación y liberación antes de añadir concurrencia.
- 3
Registra carga efectiva y opciones de observación.
Ejemplo para copiar
Conexión CDP
Browser: entorno JS, cliente HTTP e IDs de frame
sesión y contexto actuales
destino de página actual
Observaciones LP y carga de recursos se configuran aparte.Preguntas frecuentes
¿Una conexión crea contextos simultáneos ilimitados?
No. El manejador Target inspeccionado rechaza explícitamente un segundo contexto activo.
¿Markdown implica cargar todos los recursos?
No. Representación y política de recursos son independientes; comprueba los valores efectivos del modo elegido.
Fuentes
- README.mdFuente verificada 2026-09-08
- LICENSEFuente verificada 2026-09-08
- DockerfileFuente verificada 2026-09-08
- build.zig.zonFuente verificada 2026-09-08
- src/Config.zigFuente verificada 2026-09-08
- src/browser/Browser.zigFuente verificada 2026-09-08
- src/server/cdp/domains/target.zigFuente verificada 2026-09-08
- src/server/cdp/domains/page.zigFuente verificada 2026-09-08
- src/server/cdp/domains/lp.zigFuente verificada 2026-09-08
- src/server/cdp/SafeString.zigFuente verificada 2026-09-08
- src/network/RobotsGate.zigFuente verificada 2026-09-08
- src/telemetry/telemetry.zigFuente verificada 2026-09-08