HeadlessChrome101: Как Jit-Browser превръща Chrome в пълен многофункционален браузър–сървър-браузър слой
Това е обяснение на прост език за това какво прави Jit-Browser с headless Chrome, как използва собствената Jit-TR среда за изпълнение и какво все още е необходимо, за да направим това функция на браузъра от първокласен клас, а не просто още един скрипт.
От прост инструмент за екранни снимки до Jit-Browser
Започнахме с малък инструмент за команден ред: getpage https://example.com page.png. Той стартира Chrome в контейнер Docker, направи екранна снимка на рендерирания example.com от страницата и излезе.
Полезен доказателствен концепт. Всяко извикване беше студен старт. Той не знаеше нищо за превод, сесии или състояние. Беше просто headless камера.
Jit-Browser е следващата стъпка. Все още използва истински Chrome, но сега:
- Той записва какво се случва вътре в страницата.
- Той инжектира Jit-TR скрипта като слой за превод.
- Може да следва прости потоци като банери с бисквитки или падащи менюта.
- Улавя напълно преведения HTML, а не просто екранна снимка.
Тази страница обяснява този поток, за да можете да видите, че не си играем. Показваме как многоезичен слой на ниво браузър може наистина да работи.
Потокът на Jit-Browser в 6 стъпки
На високо ниво, всяко улавяне следва същата последователност.
-
Стартирайте истински Chrome (headless) в Docker.
Използваме Puppeteer (pptr.dev), за да стартираме същия двигател, който захранва нормалните браузъри, но без видим прозорец. Няма персонализиран парсер, няма фалшиво рендериране. -
Приложете бисквитки или състояние на вход (ако е конфигурирано).
За демонстрации, които изискват влязла сесия, възпроизвеждаме вашите бисквитки. Няма груба сила, няма познаване на пароли, няма скрейпинг на акаунти, които не контролираме. -
Заредете целевата страница точно като потребител.
HTML, CSS, JavaScript, шрифтове, изображения. Чакаме заnetworkidle2(https://pptr.dev/api/puppeteer.page.waitfornetworkidle), за да могат бавните пакети и шрифтове да завършат зареждането. -
Инжектирайте Jit-TR фрагмента като слой.
Добавяме таг за скрипт, сочещ към нашия патентован код за изпълнение – например:. Jit-TR модулът за изпълнение обхожда експонирания DOM (document.head и document.body), изпраща извлеченото съдържание обратно на нашия (или на всеки) сървър за обработка, получава резултатите (превод, подобрение или нова информация), пренаписва видимия текст и добавя нови слоеве на значение върху оригинала. Единствените ограничения, които съществуват, са прости: скриптовете могат да бъдат разширявани, но новите инструкции никога не могат да пречат на собствените скриптове на сайта. Това обикновено се реализира чрез използване наMutationObserverинстанции, за да наблюдават за съответни промени в DOM, прилагат актуализации в малки, целеви пачове и избягват да докосват всяка съществуваща логика на приложението или обработчици на събития. -
Изпълнете опционални потоци: бисквитки, кликвания и превъртане.
Истинските страници често изискват едно или две действия: затваряне на банер с бисквитки, отваряне на меню, превъртане за зареждане на повече оферти. Jit-Browser може да изпълни прост скрипт за поток, така че тези елементи да са видими преди улавяне. -
Уловете разширения изход.
Запазваме:- Напълно модифицирания HTML за хостинг или одит.
- Трасировка на времето, за да идентифицираме потенциални тесни места.
Това е същността на нашия HeadlessChrome101. Това е умственият модел за това как браузърът може да третира нови или съществуващи данни като вграден слой вътре в който и да е браузър.
Защо това не е просто играчка скрипт
Jit-Browser е важен, защото доказва, че слой на ниво браузър може да бъде построен с същите елементи, които доставчиците на браузъри вече използват всеки ден, и че този слой може безопасно да хоства пълна клиент-сървър интеракция с всяка външна услуга, включително нашата собствена Jit-TR среда за изпълнение. Това е също точката, в която добавяме подобрения, осведомени за SEO, като rel="alternate" hreflang="..." връзки и обогатени sitemap.xml записи. На практика това означава, че можем да изложим разширена информация вътре в недразнещи HTML региони като елементи отляво или отдясно на съществуващата страница, или чрез използване на JavaScript модали, които предлагат избор на език и SmartSearch, без да пречат на оригиналния дизайн или скриптове.
-
Истинският Chrome двигател.
Всичко работи на самия Chrome - просто без видимия прозорец. Ако работи в Chrome за вашите посетители, работи и в Jit-Browser. -
Съзнателен за политиката за сигурност на съдържанието.
Повечето сайтове заключват скриптовете с CSP. В headless режим можем да използваме Chrome'ssetBypassCSP(true)(https://pptr.dev/api/puppeteer.page.setbypasscsp) за инжектиране на Jit-TR в средата за улавяне. Не изискваме производствени сайтове да отслабват своите политики за сигурност. -
Пълно време и логване.
Логваме времето за стартиране, времето за зареждане на страницата, стартиране на Jit-TR, стъпки на потока и улавяне. Можете да видите къде отиват милисекундите и какво всъщност прави Jit-TR на страницата. -
Разделение на скрипт и слой.
Днес Jit-TR може да бъде "просто скрипт", който добавяте към сайт. В Jit-Browser го третираме като стабилен слой, който винаги работи. Това е много близо до начина, по който доставчик на браузър може да го интегрира нативно.
Какво вече решава Jit-TR API
Трудната част не е безглавият Chrome. Трудната част е надеждното превръщане на живи, неорганизирани уеб страници в безопасни многоезични версии. Нашият собствен рънтайм на api.jit-tr.com вече върши тази работа.
Днес рънтаймът на API обработва:
-
Избор на език.
Чете параметри катоjittr=ES-419, нормализира краен случай и логва избрания език, например:[Jit-TR] Избран език → ES-419. -
Извличане на DOM, превод и семантични пренаписвания.
Рънтаймът обхожда реалния DOM на Chrome, извлича само видимия текст, изгражда структурирано натоварване за превод и записва резултатите обратно в страницата. Всички трудни краен случаи са автоматични: последователности от емоджита, HTML ентитети, правила за пунктуация и интервали, низове на смесени езици и превключване от ляво на дясно / от дясно на ляво. Той също така пренаписва езиково специфични блокове от скриптове — включителнои други тагове за структурирани данни — осигурявайки, че всеки език има правилни, независими, кеширани метаданни за търсачки и AI системи. -
Поведение на клиента.
Той визуализира езикови флагове, уважава небезопасни корени и играе възможно най-безопасно с приложения с една страница и рамки.
Всичко това вече работи на сайтове с Jit-TR днес. Jit-Browser просто го използва отново в контролирана безглавна среда.
Какво все още е необходимо за нативна функция на браузъра
Какво все още е необходимо за нативна функция на браузъра
За да превърнем Jit-Browser в вградена функция на браузъра, никой не се нуждае от чудо - просто способността да се постави малък, добре дефиниран набор от промени, които браузърните двигатели вече разбират.
За да превърнем Jit=-Browser в вградена функция на браузъра. Това не е чудо, просто малък набор от промени, които браузърите вече разбират.
-
Нативен хук в двигателя.
Днес симулираме това, като инжектираме скрипт от безглавия Chrome. Истинската интеграция би дала на Jit-TR специално място за превод, за да може да чете и пише текст в DOM в правилния момент в рендеринг веригата. -
Стандартен начин за изразяване на езиково намерение.
Вече използваме?jittr=LANGи бисквитки. Решение на ниво браузър може да уважава езиковите настройки на браузъра и избора на потребителя, като "винаги превеждайте този сайт на ES-419". -
Ясна рамка за безопасност и конфиденциалност.
Правилата за това какъв текст може да напусне устройството, колко дълго може да бъде кеширан и как сайтовете или потребителите могат да се откажат, трябва да бъдат ясни и документирани. Нативната реализация в браузъра може всъщност да бъде по-безопасна от ad-hoc скриптове.
Пример: HarmonyOS в ES-419
Ето конкретен пример за работата на веригата.
Ние наричаме:
getpageJtrBrowser \
"https://www.harmonyos.com/" \
"jittr=ES-419" \
null \
"ES-419/index.php"
Jit-Browser:
- Стартира безглавия Chrome в Docker.
- Зарежда
https://www.harmonyos.com/. - Инжектира фрагмента на Jit-TR с параметъра ES-419.
- Позволява на Jit-TR да преведе видимия китайски текст на испански (Латинска Америка).
- Запазва резултата като
ES-419/index.php.
Сайтът HarmonyOS не трябва да се променя. От гледна точка на потребителя, изглежда, че сайтът просто поддържа техния език.
Защо съществува тази страница
HeadlessChrome101 е резюме, което показва:
- Използваме реални браузърни двигатели и реални CSP правила.
- Вече имаме работещ, собствен рънтайм за превод.
- Останалата разлика до нативна функция на браузъра е малка и добре дефинирана.
Ако изграждате браузъри, операционни системи или големи платформи и искате универсален многоезичен слой, който да уважава вашия модел на сигурност, ние сме готови да говорим. Кодът съществува. Поведението е измеримо. Следващата стъпка е партньорство.