HeadlessChrome101: Com Jit-Browser es converteix Chrome en un navegador complet de múltiples funcions - capa de navegador-servidor
Aquesta és una guia en llenguatge senzill sobre el que fa Jit-Browser amb Chrome sense cap capçalera, com utilitza el runtime propietari Jit-TR i què es necessita encara per fer d'això una característica de navegador de primera classe en comptes d'un altre script.
D'una eina senzilla de captura de pantalla a Jit-Browser
Vam començar amb una petita eina de línia de comandes: getpage https://example.com page.png. Va iniciar Chrome en un contenidor Docker, va fer una captura de pantalla de l'exemple.com renderitzat des de la pàgina i va sortir.
Prova de concepte útil. Cada trucada era un inici en fred. No sabia res sobre traducció, sessions o estat. Era només una càmera sense capçalera.
Jit-Browser és el següent pas. Encara utilitza Chrome real, però ara:
- Registra el que passa dins de la pàgina.
- Injecta el script Jit-TR com a capa de traducció.
- Pot seguir fluxos senzills com pancartes de galetes o menús desplegables.
- Captura el HTML totalment traduït, no només una captura de pantalla.
Aquesta pàgina explica aquest pipeline perquè puguis veure que no estem parlant a l'atzar. Estem mostrant com una capa multilingüe a nivell de navegador pot funcionar realment.
El pipeline de Jit-Browser en 6 passos
A un nivell alt, cada captura segueix la mateixa seqüència.
-
Llança Chrome real (sense capçalera) dins de Docker.
Utilitzem Puppeteer (pptr.dev) per iniciar el mateix motor que alimenta els navegadors normals, però sense una finestra visible. Sense parser personalitzat, sense renderització falsa. -
Aplica galetes o estat de connexió (si està configurat).
Per a demostracions que necessiten una sessió iniciada, reproduïm les teves galetes. Sense força bruta, sense endevinació de contrasenyes, sense raspallament de comptes que no controlem. -
Carrega la pàgina objectiu exactament com un usuari.
HTML, CSS, JavaScript, fonts, imatges. Esperem pernetworkidle2(https://pptr.dev/api/puppeteer.page.waitfornetworkidle) perquè els paquets lents i les fonts puguin acabar de carregar. -
Injecta el fragment Jit-TR com a capa.
Afegim una etiqueta de script que apunta al nostre codi de runtime pendent de patent - per exemple:. El mòdul de runtime Jit-TR recorre el DOM exposat (document.head i document.body), envia la càrrega extreta de tornada al nostre (o qualsevol) servidor per ser processada, rep els resultats (traducció, millora o nova informació), reescriu el text visible i afegeix noves capes de significat sobre l'original. Les úniques restriccions que existeixen són simples: els scripts poden ser augmentats, però noves instruccions mai poden interferir amb els propis scripts del lloc. Això es implementa normalment mitjançant l'ús deMutationObserverinstàncies per observar canvis rellevants en el DOM, aplicar actualitzacions en petits pegats dirigits i evitar tocar qualsevol lògica d'aplicació existent o controladors d'esdeveniments. -
Executa fluxos opcionals: galetes, clics i desplaçaments.
Les pàgines reals sovint necessiten una o dues accions: tancar una pancarta de galetes, obrir un menú, desplaçar-se per carregar més ofertes. Jit-Browser pot executar un script de flux senzill perquè aquests elements siguin visibles abans de la captura. -
Captura la sortida augmentada.
Guardem:- L'HTML totalment modificat per allotjament o auditoria.
- Una traça de temps per identificar possibles colls d'ampolla.
Això és el nucli del nostre HeadlessChrome101. És el model mental de com un navegador podria tractar dades noves o existents com una capa integrada dins de qualsevol navegador.
Per què això no és només un script de joguina
Jit-Browser importa perquè demostra que es pot construir una capa a nivell de navegador amb les mateixes peces que els venedors de navegadors ja utilitzen cada dia, i que aquesta capa pot allotjar de manera segura una interacció completa client-servidor amb qualsevol servei extern, incloent el nostre propi runtime Jit-TR. També és el punt on afegim millores conscients del SEO com ara rel="alternatiu" hreflang="..." enllaços i enriquit sitemap.xml entrades. En la pràctica, això significa que podem exposar informació augmentada dins de regions HTML no disruptives com ara elements a l'esquerra o a la dreta de la pàgina existent, o mitjançant l'ús de modals JavaScript que s'adhereixen a les opcions d'idioma i SmartSearch sense interferir amb el disseny o scripts originals.
-
Motor de Chrome real.
Tot funciona en Chrome mateix - només sense la finestra visible. Si funciona en Chrome per als teus visitants, funciona en Jit-Browser. -
Conscient de la política de seguretat de contingut.
La majoria dels llocs bloquegen scripts amb CSP. En mode sense capçalera podem utilitzarsetBypassCSP(true)(https://pptr.dev/api/puppeteer.page.setbypasscsp) per injectar Jit-TR dins l'entorn de captura. No requerim que cap lloc de producció debiliti les seves polítiques de seguretat. -
Temps i registre complets.
Registrem els temps d'inici, els temps de càrrega de pàgines, l'inici de Jit-TR, els passos del flux i la captura. Podeu veure on van els mil·lisegons i què fa realment Jit-TR a la pàgina. -
Separació de script i capa.
Avui, Jit-TR pot ser "només un script" que afegiu a un lloc. A Jit-Browser ho tractem com una capa estable que sempre s'executa. Això és molt similar a com un venedor de navegadors podria integrar-ho de manera nativa.
Què resol ja l'API de Jit-TR
La part difícil no és Chrome sense cap cap. La part difícil és convertir de manera fiable pàgines web en viu i desordenades en versions segures multilingües. El nostre runtime propietari a api.jit-tr.com ja fa aquesta feina.
Avui, el runtime de l'API gestiona:
-
Selecció de llengua.
Llegeix paràmetres comjittr=ES-419, normalitza casos límit i registra la llengua escollida, per exemple:[Jit-TR] Llengua escollida → ES-419. -
Extracció de DOM, traducció i reescriptures semàntiques.
El runtime recorre el DOM real de Chrome, extreu només text visible, construeix una càrrega de traducció estructurada i escriu els resultats de nou a la pàgina. Tots els casos límit difícils són automàtics: seqüències d'emoji, entitats HTML, regles de puntuació i espaiat, cadenes de llengües mixtes i canvi de d'Esquerra a Dreta / Dreta a Esquerra. També reescriu blocs de script específics de llengua — incloenti altres etiquetes de dades estructurades — assegurant que cada llengua tingui metadades correctes, independents i emmagatzemades en caché per a motors de cerca i sistemes d'IA. -
Comportament del client.
Renderitza banderes de llengua, respecta arrels insegures i actua tan segurament com sigui possible amb aplicacions de pàgina única i marcs.
Tot això ja funciona en llocs de Jit-TR avui. Jit-Browser simplement ho reutilitza en un entorn sense cap control.
Què es necessita encara per a una característica nativa del navegador
Què es necessita encara per a una característica nativa del navegador
Per convertir Jit-Browser en una característica integrada del navegador, ningú necessita un miracle - només la capacitat de col·locar un petit conjunt de canvis ben definits que els motors de navegadors ja entenen.
Per convertir Jit-Browser en una característica integrada del navegador. Això no és un miracle, només un petit conjunt de canvis que els navegadors ja entenen.
-
Un ganxo natiu en el motor.
Avui ho simulem injectant un script de Chrome sense cap. Una integració real donaria a Jit-TR un espai de traducció dedicat perquè pugui llegir i escriure text del DOM al punt adequat del pipeline de renderització. -
Una manera estàndard d'expressar la intenció lingüística.
Ja fem servir?jittr=LANGi cookies. Una solució a nivell de navegador podria respectar les configuracions de llengua del navegador i les eleccions de l'usuari com "sempre traduir aquest lloc a ES-419". -
Un marc clar de seguretat i privadesa.
Les regles sobre quin text pot sortir del dispositiu, quant de temps pot ser emmagatzemat en caché, i com els llocs o usuaris poden optar per no participar haurien de ser clares i documentades. Una implementació nativa dins del navegador pot ser realment més segura que scripts ad-hoc.
Exemple: HarmonyOS en ES-419
Aquí hi ha un exemple concret del pipeline en acció.
Fem una crida:
getpageJtrBrowser \
"https://www.harmonyos.com/" \
"jittr=ES-419" \
null \
"ES-419/index.php"
Jit-Browser:
- Llança Chrome sense cap dins de Docker.
- Carrega
https://www.harmonyos.com/. - Injecta el fragment de Jit-TR amb el paràmetre ES-419.
- Deixa que Jit-TR tradueixi el text xinès visible a espanyol (Amèrica Llatina).
- Desa el resultat com
ES-419/index.php.
El lloc de HarmonyOS no necessita canviar. Des de la perspectiva de l'usuari, sembla que el lloc simplement suporta la seva llengua.
Per què existeix aquesta pàgina
HeadlessChrome101 és un resum que mostra:
- Estem utilitzant motors de navegadors reals i regles de CSP reals.
- Ja tenim un runtime de traducció propietari que funciona.
- El buit restant per a una característica nativa del navegador és petit i ben definit.
Si construeixes navegadors, sistemes operatius o grans plataformes i vols una capa multilingüe universal que respecti el teu model de seguretat, estem preparats per parlar. El codi existeix. El comportament és mesurable. El següent pas és la col·laboració.