HeadlessChrome101: Como Jit-Browser Convierte Chrome Nun Navegador Multi-Función Completo–Capas de Navegador-Servidor
Esta é unha guía en linguaxe sinxela sobre o que fai Jit-Browser con Chrome sen cabeza, como usa o tempo de execución propietario Jit-TR e o que aínda se necesita para converter isto nunha característica de navegador de primeira clase en vez de só outro script.
Dunha simple ferramenta de captura de pantalla a Jit-Browser
Comezamos cunha pequena ferramenta de liña de comandos: getpage https://example.com page.png. Lanzou Chrome nun contedor Docker, tomou unha captura de pantalla do exemplo.com renderizado desde a páxina e saíu.
Proba de concepto útil. Cada chamada era un inicio en frío. Non sabía nada sobre tradución, sesións ou estado. Era só unha cámara sen cabeza.
Jit-Browser é o seguinte paso. Aínda usa Chrome real, pero agora:
- Registra o que acontece dentro da páxina.
- Inxecta o script Jit-TR como unha capa de tradución.
- Pode seguir fluxos sinxelos como pancartas de cookies ou menús desplegables.
- Captura o HTML completamente traducido, non só unha captura de pantalla.
Esta páxina explica ese pipeline para que poidas ver que non estamos a falar sen sentido. Estamos a mostrar como unha capa multilingüe a nivel de navegador pode realmente funcionar.
O pipeline de Jit-Browser en 6 pasos
A un alto nivel, cada captura segue a mesma secuencia.
-
Lanza Chrome real (sen cabeza) dentro de Docker.
Usamos Puppeteer (pptr.dev) para iniciar o mesmo motor que alimenta os navegadores normais, pero sen unha ventá visible. Sen parser personalizado, sen renderizado falso. -
Aplica cookies ou estado de inicio de sesión (se está configurado).
Para demostracións que necesitan unha sesión iniciada, reproducimos as túas cookies. Sen forza bruta, sen adiviñación de contrasinais, sen raspado de contas que non controlamos. -
Carga a páxina de destino exactamente como un usuario.
HTML, CSS, JavaScript, fontes, imaxes. Agardamos pornetworkidle2(https://pptr.dev/api/puppeteer.page.waitfornetworkidle) para que os paquetes lentos e as fontes poidan rematar de cargarse. -
Inxecta o fragmento Jit-TR como unha capa.
Engadimos unha etiqueta de script que apunta ao noso código de tempo de execución en espera de patente – por exemplo:. O módulo de tempo de execución Jit-TR percorre o DOM exposto (document.head e document.body), envía a carga extraída de volta ao noso (ou calquera) servidor para ser procesada, recibe os resultados (tradución, mellora ou nova información), reescribe o texto visible e engade novas capas de significado sobre o orixinal. As únicas restricións que existen son sinxelas: os scripts poden ser aumentados, pero novas instrucións nunca poden interferir cos propios scripts do sitio. Isto normalmente implícase usandoMutationObserverinstancias para observar cambios relevantes no DOM, aplicar actualizacións en pequenos parches dirixidos e evitar tocar calquera lógica de aplicación existente ou controladores de eventos. -
Executa fluxos opcionais: cookies, clics e desprazamentos.
As páxinas reais a miúdo necesitan unha ou dúas accións: pechar unha pancarta de cookies, abrir un menú, desprazarse para cargar máis ofertas. Jit-Browser pode executar un script de fluxo sinxelo para que eses elementos sexan visibles antes da captura. -
Captura a saída aumentada.
Gardamos:- O HTML completamente modificado para aloxamento ou auditoría.
- Un rastrexo de tempo para identificar posibles cuellos de botella.
Ese é o núcleo do noso HeadlessChrome101. É o modelo mental de como un navegador podería tratar novos ou existentes datos como unha capa integrada dentro de calquera navegador.
Por que isto non é só un script de xoguete
Jit-Browser importa porque demostra que unha capa a nivel de navegador pode ser construída cos mesmos elementos que os provedores de navegadores xa usan todos os días, e que esta capa pode aloxar de forma segura unha interacción completa cliente-servidor con calquera servizo externo, incluíndo o noso propio tempo de execución Jit-TR. Tamén é o punto onde engadimos melloras conscientes de SEO como rel="alternate" hreflang="..." enlaces e enriquecidos sitemap.xml entradas. Na práctica, isto significa que podemos expoñer información aumentada dentro de rexións HTML non disruptivas como elementos á esquerda ou á dereita da páxina existente, ou usando modais de JavaScript que engaden opcións de idioma e SmartSearch sen interferir co deseño ou scripts orixinais.
-
Motor de Chrome real.
Todo funciona en Chrome en si - só sen a ventá visible. Se funciona en Chrome para os teus visitantes, funciona en Jit-Browser. -
Consciente da Política de Seguridade de Contido.
A maioría dos sitios bloquean scripts con CSP. En modo sen cabeza podemos usarsetBypassCSP(true)(https://pptr.dev/api/puppeteer.page.setbypasscsp) para inxectar Jit-TR dentro do ambiente de captura. Non requerimos que ningún sitio de produción debilite as súas políticas de seguridade. -
Tempos e rexistros completos.
Rexistramos os tempos de lanzamento, os tempos de carga da páxina, o inicio de Jit-TR, os pasos do fluxo e a captura. Podes ver onde van os milisegundos e que é o que realmente fai Jit-TR na páxina. -
Separación de script e capa.
Hoxe, Jit-TR pode ser "simplemente un script" que engades a un sitio. En Jit-Browser tratámolo como unha capa estable que sempre se executa. Iso está moi preto de como un proveedor de navegador podería integralo de forma nativa.
O que a API de Jit-TR xa resolve
A parte difícil non é Chrome sen cabeza. A parte difícil é converter de forma fiable páxinas web en vivo e desordenadas en versións seguras multilingües. O noso runtime propietario en api.jit-tr.com xa fai ese traballo.
Hoxe, o runtime da API manexa:
-
Selección de idioma.
Lémbra parámetros comojittr=ES-419, normaliza casos extremos e rexistra o idioma elixido, por exemplo:[Jit-TR] Idioma elixido → ES-419. -
Extracción de DOM, tradución e reescrituras semánticas.
O runtime percorre o DOM real de Chrome, extrae só texto visible, constrúe unha carga útil de tradución estruturada e escribe os resultados de volta na páxina. Todos os casos extremos difíciles son automáticos: secuencias de emoji, entidades HTML, regras de puntuación e espaciado, cadeas de idiomas mistos e conmutación de esquerda a dereita / dereita a esquerda. Tamén reescribe bloques de script específicos do idioma — incluíndoe outras etiquetas de datos estruturados — asegurando que cada idioma ten metadatos correctos, independentes e en caché para motores de busca e sistemas de IA. -
Comportamento do cliente.
Renderiza bandeiras de idioma, respecta raíces non seguras e actúa de forma tan segura como sexa posible con aplicacións de páxina única e marcos.
Todo isto xa se executa en sitios Jit-TR hoxe. Jit-Browser simplemente reutiliza isto nun ambiente sen cabeza controlado.
O que aínda se necesita para unha característica nativa do navegador
O que aínda se necesita para unha característica nativa do navegador
Para converter Jit-Browser nunha característica integrada do navegador, ninguén necesita un milagre - só a capacidade de colocar un pequeno conxunto de cambios ben definidos que os motores de navegador xa entenden.
Para converter Jit=-Browser nunha característica integrada do navegador. Isto non é un milagre, só un pequeno conxunto de cambios que os navegadores xa entenden.
-
Un gancho nativo no motor.
Hoxe simulamos isto inxectando un script desde Chrome sen cabeza. Una integración real daría a Jit-TR un espazo de tradución dedicado para que poida ler e escribir texto do DOM no punto correcto na tubaxe de renderizado. -
Unha forma estándar de expresar a intención lingüística.
Xa usamos?jittr=LANGe cookies. Unha solución a nivel de navegador podería respectar as configuracións de idioma do navegador e as eleccións do usuario como "traducir sempre este sitio a ES-419". -
Un marco claro de seguridade e privacidade.
As regras sobre que texto pode saír do dispositivo, canto tempo pode ser almacenado en caché e como os sitios ou usuarios poden optar por non participar deberían ser claras e documentadas. Unha implementación nativa dentro do navegador pode ser realmente máis segura que scripts ad-hoc.
Exemplo: HarmonyOS en ES-419
Aquí hai un exemplo concreto do pipeline en acción.
Chamamos:
getpageJtrBrowser \
"https://www.harmonyos.com/" \
"jittr=ES-419" \
null \
"ES-419/index.php"
Jit-Browser:
- Lanza Chrome sen cabeza dentro de Docker.
- Carga
https://www.harmonyos.com/. - Inxecta o fragmento de Jit-TR co parámetro ES-419.
- Deixa que Jit-TR traduza o texto visible en chinés ao español (América Latina).
- Garda o resultado como
ES-419/index.php.
O sitio de HarmonyOS non necesita cambiar. Desde a perspectiva do usuario, parece que o sitio simplemente soporta o seu idioma.
Por que existe esta páxina
HeadlessChrome101 é un resumo que mostra:
- Estamos usando motores de navegador reais e regras CSP reais.
- Xa temos un runtime de tradución propietario que funciona.
- A brecha restante para unha característica nativa do navegador é pequena e ben definida.
Se construídes navegadores, sistemas operativos ou grandes plataformas e queredes unha capa multilingüe universal que respecte o voso modelo de seguridade, estamos listos para falar. O código existe. O comportamento é medible. O seguinte paso é a asociación.