HeadlessChrome101: Hoe Jit-Browser Chrome omzet in een volledige multifunctionele browser–Server-Browserlaag
Dit is een uitleg in eenvoudige taal over wat Jit-Browser doet met headless Chrome, hoe het de eigen Jit-TR-runtime gebruikt en wat er nog nodig is om dit een eersteklas browserfunctie te maken in plaats van slechts een ander script.
Van een eenvoudige screenshot-tool naar Jit-Browser
We begonnen met een kleine opdrachtregeltool: getpage https://example.com page.png. Het startte Chrome in een Docker-container, nam een screenshot van de weergegeven example.com van de pagina en stopte.
Nuttig bewijs van concept. Elke oproep was een koude start. Het wist niets over vertaling, sessies of status. Het was gewoon een headless camera.
Jit-Browser is de volgende stap. Het gebruikt nog steeds echte Chrome, maar nu:
- Het logt wat er binnen de pagina gebeurt.
- Het injecteert het Jit-TR-script als een vertaallaag.
- Het kan eenvoudige stromen volgen zoals cookie-banners of dropdowns.
- Het legt de volledig vertaalde HTML vast, niet alleen een screenshot.
Deze pagina legt die pijplijn uit zodat je kunt zien dat we niet zomaar wat zeggen. We laten zien hoe een browser-niveau meertalige laag daadwerkelijk kan werken.
De Jit-Browser pijplijn in 6 stappen
Op hoog niveau volgt elke vastlegging dezelfde volgorde.
-
Start echte Chrome (headless) binnen Docker.
We gebruiken Puppeteer (pptr.dev) om dezelfde engine te starten die normale browsers aandrijft, maar zonder een zichtbaar venster. Geen aangepaste parser, geen nep-rendering. -
Pas cookies of inlogstatus toe (indien geconfigureerd).
Voor demo's die een ingelogde sessie nodig hebben, herhalen we je cookies. Geen brute force, geen wachtwoord raden, geen accounts schrapen die we niet controleren. -
Laad de doelpagina precies zoals een gebruiker.
HTML, CSS, JavaScript, lettertypen, afbeeldingen. We wachten opnetworkidle2(https://pptr.dev/api/puppeteer.page.waitfornetworkidle) zodat trage bundels en lettertypen kunnen worden geladen. -
Injecteer de Jit-TR-snippet als een laag.
We voegen een script-tag toe die naar onze patentaanvraag runtime-code verwijst – bijvoorbeeld:. De Jit-TR-runtime-module doorloopt de blootgestelde DOM (document.head en document.body), stuurt de geëxtraheerde payload terug naar onze (of een andere) server om te worden verwerkt, ontvangt de resultaten (vertaling, verbetering of nieuwe informatie), herschrijft zichtbare tekst en voegt nieuwe lagen van betekenis toe bovenop het origineel. De enige beperkingen die bestaan zijn eenvoudig: scripts kunnen worden uitgebreid, maar nieuwe instructies kunnen nooit interfereren met de eigen scripts van de site. Dit wordt typisch geïmplementeerd door gebruik te maken vanMutationObserverinstanties om te kijken naar relevante wijzigingen in de DOM, updates toe te passen in kleine, gerichte patches en te voorkomen dat bestaande applicatielogica of gebeurtenishandlers worden aangeraakt. -
Voer optionele stromen uit: cookies, klikken en scrollen.
Echte pagina's hebben vaak een of twee acties nodig: het sluiten van een cookie-banner, het openen van een menu, scrollen om meer aanbiedingen te laden. Jit-Browser kan een eenvoudig stroomscript uitvoeren zodat die elementen zichtbaar zijn voordat ze worden vastgelegd. -
Leg de uitgebreide output vast.
We slaan op:- De volledig gewijzigde HTML voor hosting of audit.
- Een timingtrace om potentiële knelpunten te identificeren.
Dat is de kern van onze HeadlessChrome101. Het is het mentale model voor hoe een browser nieuwe of bestaande gegevens kan behandelen als een ingebouwde laag binnen elke browser.
Waarom dit niet gewoon een speelgoedscript is
Jit-Browser is belangrijk omdat het bewijst dat een browser-niveau laag kan worden gebouwd met dezelfde onderdelen die browserleveranciers elke dag al gebruiken, en dat deze laag veilig een volledige client-server interactie met elke externe service kan hosten, inclusief onze eigen Jit-TR-runtime. Het is ook het punt waarop we SEO-bewuste verbeteringen toevoegen zoals rel="alternate" hreflang="..." links en verrijkte sitemap.xml invoeren. In de praktijk betekent dit dat we uitgebreide informatie kunnen blootstellen binnen niet-storende HTML-regio's zoals elementen aan de linker- of rechterkant van de bestaande pagina, of door gebruik te maken van JavaScript-modals die taalkeuzes en SmartSearch toevoegen zonder de oorspronkelijke lay-out of scripts te verstoren.
-
Echte Chrome-engine.
Alles draait op Chrome zelf - gewoon zonder het zichtbare venster. Als het werkt in Chrome voor je bezoekers, werkt het in Jit-Browser. -
Content Security Policy bewust.
De meeste sites vergrendelen scripts met CSP. In headless modus kunnen we Chrome'ssetBypassCSP(true)(https://pptr.dev/api/puppeteer.page.setbypasscsp) om Jit-TR in de capture-omgeving te injecteren. We vereisen niet dat productie-sites hun beveiligingsbeleid verzwakken. -
Volledige timing en logging.
We loggen opstarttijden, laadtijden van pagina's, Jit-TR-opstart, flow-stappen en capture. Je kunt zien waar de milliseconden naartoe gaan en wat Jit-TR daadwerkelijk op de pagina doet. -
Scheiding van script en laag.
Vandaag de dag kan Jit-TR "gewoon een script" zijn dat je aan een site toevoegt. In Jit-Browser behandelen we het als een stabiele laag die altijd draait. Dat komt heel dicht in de buurt van hoe een browserleverancier het native zou kunnen integreren.
Wat de Jit-TR API al oplost
Het moeilijke is niet headless Chrome. Het moeilijke is om live, rommelige webpagina's betrouwbaar om te zetten in veilige meertalige versies. Onze eigen runtime doet api.jit-tr.com dat werk al.
Vandaag de dag behandelt de API-runtime:
-
Taalselectie.
Het leest parameters zoalsjittr=ES-419, normaliseert randgevallen en logt de gekozen taal, bijvoorbeeld:[Jit-TR] Taal gekozen → ES-419. -
DOM-extractie, vertaling en semantische herschrijvingen.
De runtime doorloopt de echte Chrome DOM, extraheert alleen zichtbare tekst, bouwt een gestructureerde vertaalpayload en schrijft de resultaten terug in de pagina. Alle moeilijke randgevallen zijn automatisch: emoji-sequenties, HTML-entiteiten, interpunctie- en spatieregels, gemengde taalstrings en van links naar rechts / van rechts naar links schakelen. Het herschrijft ook taal-specifieke scriptblokken — inclusiefen andere gestructureerde datatags — en zorgt ervoor dat elke taal correcte, onafhankelijke, gecachte metadata heeft voor zoekmachines en AI-systemen. -
Klanten gedrag.
Het rendert taalvlaggen, respecteert onveilige roots en speelt zo veilig mogelijk met single-page apps en frameworks.
Dit draait allemaal al op Jit-TR-sites vandaag. Jit-Browser hergebruikt het eenvoudig in een gecontroleerde headless omgeving.
Wat nog nodig is voor een native browserfunctie
Wat nog nodig is voor een native browserfunctie
Om Jit-Browser om te zetten in een ingebouwde browserfunctie, heeft niemand een wonder nodig - alleen de mogelijkheid om een kleine, goed gedefinieerde set wijzigingen aan te brengen die browserengines al begrijpen.
Om Jit-Browser om te zetten in een ingebouwde browserfunctie. Dit is geen wonder, gewoon een kleine set wijzigingen die browsers al begrijpen.
-
Een native hook in de engine.
Vandaag de dag simuleren we dit door een script van headless Chrome te injecteren. Een echte integratie zou Jit-TR een speciale vertaalruimte geven zodat het DOM-tekst op het juiste punt in de renderpipeline kan lezen en schrijven. -
Een standaard manier om taalintentie uit te drukken.
We gebruiken al?jittr=LANGen cookies. Een browserniveau-oplossing zou de taalinstellingen van de browser en gebruikerskeuzes zoals "vertaal deze site altijd naar ES-419" kunnen respecteren. -
Een duidelijk veiligheids- en privacykader.
De regels voor welke tekst het apparaat mag verlaten, hoe lang het gecached kan worden en hoe sites of gebruikers zich kunnen afmelden, moeten duidelijk en gedocumenteerd zijn. Een native implementatie binnen de browser kan eigenlijk veiliger zijn dan ad-hoc scripts.
Voorbeeld: HarmonyOS in ES-419
Hier is een concreet voorbeeld van de pipeline in actie.
We roepen aan:
getpageJtrBrowser \
"https://www.harmonyos.com/" \
"jittr=ES-419" \
null \
"ES-419/index.php"
Jit-Browser:
- Start headless Chrome binnen Docker.
- Laadt
https://www.harmonyos.com/. - Injecteert de Jit-TR snippet met de ES-419 parameter.
- Laat Jit-TR de zichtbare Chinese tekst naar het Spaans (Latijns-Amerika) vertalen.
- Slaat het resultaat op als
ES-419/index.php.
De HarmonyOS-site hoeft niet te veranderen. Vanuit het perspectief van de gebruiker lijkt het alsof de site gewoon hun taal ondersteunt.
Waarom deze pagina bestaat
HeadlessChrome101 is een samenvatting die laat zien:
- We gebruiken echte browserengines en echte CSP-regels.
- We hebben al een werkende, eigen vertaalruntime.
- De resterende kloof naar een native browserfunctie is klein en goed gedefinieerd.
Als je browsers, besturingssystemen of grote platforms bouwt en een universele meertalige laag wilt die je beveiligingsmodel respecteert, zijn we klaar om te praten. De code bestaat. Het gedrag is meetbaar. De volgende stap is partnerschap.