HeadlessChrome101: Jak Jit-Browser przekształca Chrome w pełnoprawną przeglądarkę wielofunkcyjną – warstwa przeglądarki-serwera
To jest przewodnik w prostym języku, który opisuje, co Jit-Browser robi z headless Chrome, jak wykorzystuje własny czas wykonania Jit-TR i co jeszcze jest potrzebne, aby uczynić to funkcją przeglądarki pierwszej klasy, a nie tylko kolejnym skryptem.
Od prostego narzędzia do zrzutów ekranu do Jit-Browser
Zaczęliśmy od małego narzędzia wiersza poleceń: getpage https://example.com page.png. Uruchomiło to Chrome w kontenerze Docker, zrobiło zrzut ekranu renderowanej strony example.com i zakończyło działanie.
Przydatny dowód koncepcji. Każde wywołanie było zimnym startem. Nie wiedziało nic o tłumaczeniu, sesjach ani stanie. Było po prostu headless kamerą.
Jit-Browser to następny krok. Nadal używa prawdziwego Chrome, ale teraz:
- Rejestruje, co się dzieje wewnątrz strony.
- Wstrzykuje skrypt Jit-TR jako warstwę tłumaczenia.
- Może śledzić proste przepływy, takie jak banery cookie lub rozwijane menu.
- Przechwytuje w pełni przetłumaczony HTML, a nie tylko zrzut ekranu.
Ta strona wyjaśnia ten proces, abyś mógł zobaczyć, że nie machamy rękami. Pokazujemy, jak warstwa wielojęzyczna na poziomie przeglądarki może faktycznie działać.
Proces Jit-Browser w 6 krokach
Na wysokim poziomie każde przechwycenie podąża za tą samą sekwencją.
-
Uruchom prawdziwe Chrome (headless) w Dockerze.
Używamy Puppeteer (pptr.dev), aby uruchomić ten sam silnik, który napędza normalne przeglądarki, ale bez widocznego okna. Żadnego niestandardowego parsera, żadnego fałszywego renderowania. -
Zastosuj pliki cookie lub stan logowania (jeśli skonfigurowano).
Dla demonstracji, które potrzebują sesji zalogowanej, odtwarzamy twoje pliki cookie. Żadnej brutalnej siły, żadnego zgadywania haseł, żadnego skanowania kont, których nie kontrolujemy. -
Załaduj docelową stronę dokładnie jak użytkownik.
HTML, CSS, JavaScript, czcionki, obrazy. Czekamy nanetworkidle2(https://pptr.dev/api/puppeteer.page.waitfornetworkidle), aby wolne pakiety i czcionki mogły zakończyć ładowanie. -
Wstrzyknij fragment Jit-TR jako warstwę.
Dodajemy tag skryptu wskazujący na nasz kod czasu wykonania w trakcie oczekiwania na patent – na przykład:. Moduł czasu wykonania Jit-TR przeszukuje ujawniony DOM (document.head i document.body), wysyła wyodrębniony ładunek z powrotem do naszego (lub dowolnego) serwera do przetworzenia, otrzymuje wyniki (tłumaczenie, ulepszenie lub nowe informacje), przepisuje widoczny tekst i dodaje nowe warstwy znaczenia na szczycie oryginalnego. Jedynymi istniejącymi ograniczeniami są proste: skrypty mogą być rozszerzane, ale nowe instrukcje nigdy nie mogą kolidować z własnymi skryptami witryny. Zwykle realizuje się to za pomocąMutationObserverinstancji, aby obserwować istotne zmiany w DOM, stosować aktualizacje w małych, ukierunkowanych łatkach i unikać dotykania jakiejkolwiek istniejącej logiki aplikacji lub obsługi zdarzeń. -
Uruchom opcjonalne przepływy: pliki cookie, kliknięcia i przewijanie.
Prawdziwe strony często potrzebują jednego lub dwóch działań: zamknięcia banera cookie, otwarcia menu, przewinięcia, aby załadować więcej ofert. Jit-Browser może uruchomić prosty skrypt przepływu, aby te elementy były widoczne przed przechwyceniem. -
Przechwyć rozszerzone wyjście.
Zapisujemy:- W pełni zmodyfikowany HTML do hostowania lub audytu.
- Ślad czasowy, aby zidentyfikować potencjalne wąskie gardła.
To jest sedno naszego HeadlessChrome101. To mentalny model, jak przeglądarka mogłaby traktować nowe lub istniejące dane jako wbudowaną warstwę wewnątrz dowolnej przeglądarki.
Dlaczego to nie jest tylko zabawkowy skrypt
Jit-Browser ma znaczenie, ponieważ udowadnia, że warstwa na poziomie przeglądarki może być zbudowana z tych samych elementów, które dostawcy przeglądarek używają na co dzień, i że ta warstwa może bezpiecznie hostować pełną interakcję klient-serwer z dowolną zewnętrzną usługą, w tym naszym własnym czasem wykonania Jit-TR. To także punkt, w którym dodajemy ulepszenia świadome SEO, takie jak rel="alternate" hreflang="..." linki i wzbogacone sitemap.xml pozycje. W praktyce oznacza to, że możemy ujawniać rozszerzone informacje wewnątrz niezakłócających regionów HTML, takich jak elementy po lewej lub prawej stronie istniejącej strony, lub używając modali JavaScript, które dodają wybory językowe i SmartSearch bez zakłócania oryginalnego układu lub skryptów.
-
Prawdziwy silnik Chrome.
Wszystko działa na samym Chrome - po prostu bez widocznego okna. Jeśli działa w Chrome dla twoich odwiedzających, działa w Jit-Browser. -
Świadome polityki bezpieczeństwa treści.
Większość stron blokuje skrypty za pomocą CSP. W trybie headless możemy używaćsetBypassCSP(true)(https://pptr.dev/api/puppeteer.page.setbypasscsp) do wstrzykiwania Jit-TR wewnątrz środowiska przechwytywania. Nie wymagamy, aby jakiekolwiek strony produkcyjne osłabiały swoje polityki bezpieczeństwa. -
Pełne pomiary i logowanie.
Logujemy czasy uruchamiania, czasy ładowania stron, uruchamianie Jit-TR, kroki przepływu i przechwytywanie. Możesz zobaczyć, gdzie idą milisekundy i co Jit-TR faktycznie robi na stronie. -
Separacja skryptu i warstwy.
Dziś Jit-TR może być "tylko skryptem", który dodajesz do strony. W Jit-Browser traktujemy to jak stabilną warstwę, która zawsze działa. To bardzo bliskie temu, jak dostawca przeglądarki mógłby to wbudować natywnie.
Co już rozwiązuje API Jit-TR
Trudna część to nie headless Chrome. Trudna część to niezawodne przekształcanie żywych, chaotycznych stron internetowych w bezpieczne, wielojęzyczne wersje. Nasze zastrzeżone środowisko wykonawcze w api.jit-tr.com już wykonuje tę pracę.
Dziś środowisko wykonawcze obsługuje:
-
Wybór języka.
Odczytuje parametry takie jakjittr=ES-419, normalizuje przypadki brzegowe i loguje wybrany język, na przykład:[Jit-TR] Wybrany język → ES-419. -
Ekstrakcja DOM, tłumaczenie i semantyczne przeróbki.
Środowisko wykonawcze przechodzi przez rzeczywisty DOM Chrome, ekstraktuje tylko widoczny tekst, buduje strukturalny ładunek tłumaczenia i zapisuje wyniki z powrotem na stronie. Wszystkie trudne przypadki brzegowe są automatyczne: sekwencje emoji, encje HTML, zasady interpunkcji i odstępów, mieszane ciągi językowe oraz przełączanie z lewej na prawą / z prawej na lewą. Przerabia również bloki skryptów specyficznych dla języka — w tymi inne tagi danych strukturalnych — zapewniając, że każdy język ma poprawne, niezależne, buforowane metadane dla wyszukiwarek i systemów AI. -
Zachowanie klienta.
Renderuje flagi językowe, respektuje niebezpieczne korzenie i działa tak bezpiecznie, jak to możliwe z aplikacjami jednostronicowymi i frameworkami.
To wszystko już działa na stronach Jit-TR dzisiaj. Jit-Browser po prostu ponownie wykorzystuje to w kontrolowanym środowisku headless.
Co jest nadal potrzebne do natywnej funkcji przeglądarki
Co jest nadal potrzebne do natywnej funkcji przeglądarki
Aby przekształcić Jit-Browser w wbudowaną funkcję przeglądarki, nikt nie potrzebuje cudu - tylko zdolności do wprowadzenia małego, dobrze zdefiniowanego zestawu zmian, które silniki przeglądarek już rozumieją.
Aby przekształcić Jit=-Browser w wbudowaną funkcję przeglądarki. To nie jest cud, tylko mały zestaw zmian, które przeglądarki już rozumieją.
-
Natywne złącze w silniku.
Dziś symulujemy to, wstrzykując skrypt z headless Chrome. Prawdziwa integracja dałaby Jit-TR dedykowane miejsce na tłumaczenie, aby mogło odczytywać i zapisywać tekst DOM w odpowiednim punkcie w potoku renderowania. -
Standardowy sposób wyrażania intencji językowej.
Już używamy?jittr=LANGi ciasteczek. Rozwiązanie na poziomie przeglądarki mogłoby respektować ustawienia językowe przeglądarki i wybory użytkownika, takie jak "zawsze tłumacz tę stronę na ES-419". -
Jasna ramy bezpieczeństwa i prywatności.
Zasady dotyczące tego, jaki tekst może opuścić urządzenie, jak długo może być buforowany i jak strony lub użytkownicy mogą zrezygnować, powinny być jasne i udokumentowane. Natywna implementacja wewnątrz przeglądarki może być faktycznie bezpieczniejsza niż ad-hoc skrypty.
Przykład: HarmonyOS w ES-419
Oto konkretny przykład działania potoku.
Nazywamy:
getpageJtrBrowser \
"https://www.harmonyos.com/" \
"jittr=ES-419" \
null \
"ES-419/index.php"
Jit-Browser:
- Uruchamia headless Chrome wewnątrz Dockera.
- Ładuje
https://www.harmonyos.com/. - Wstrzykuje fragment Jit-TR z parametrem ES-419.
- Pozwala Jit-TR przetłumaczyć widoczny chiński tekst na hiszpański (Ameryka Łacińska).
- Zapisuje wynik jako
ES-419/index.php.
Strona HarmonyOS nie musi się zmieniać. Z perspektywy użytkownika wygląda na to, że strona po prostu wspiera ich język.
Dlaczego ta strona istnieje
HeadlessChrome101 to podsumowanie, które pokazuje:
- Używamy prawdziwych silników przeglądarek i prawdziwych zasad CSP.
- Mamy już działające, zastrzeżone środowisko wykonawcze tłumaczenia.
- Pozostała luka do natywnej funkcji przeglądarki jest mała i dobrze zdefiniowana.
Jeśli budujesz przeglądarki, systemy operacyjne lub duże platformy i chcesz uniwersalnej, wielojęzycznej warstwy, która szanuje Twój model bezpieczeństwa, jesteśmy gotowi do rozmowy. Kod istnieje. Zachowanie jest mierzalne. Następnym krokiem jest partnerstwo.