Przejdź do treści

Tej strony nie ma jeszcze w Twoim języku. Czytasz tekst angielski.

Glossary

Headless browser

Running without a window saves memory and lets a scenario work through the night. It also changes what the browser says about itself, and a bot check reads that line before anything else.

A headless browser is a real browser that runs with no window on screen and is driven by code instead of a person.

What running without a window means

The engine still loads pages, lays them out and runs their scripts. Nothing is drawn to a screen, so the machine spends nothing on pixels no one looks at.

That is why scheduled runs and long scenarios use it. It is also the first thing a bot check looks for.

  • The same engine without a surface

    Pages load and scripts run exactly as they do in a window you can see.

  • Driven by code

    A schedule or a scenario says where to go and what to do when it gets there.

  • Cheap to run in numbers

    Memory goes to the pages, so a server holds more sessions than a desktop can show.

Why a check looks here first

Chromium names the mode in its own browser string. Measured on our built engine in both modes: the mark is there in the newer mode too.

Two more lines usually travel with it. A browser under automation can announce that in one boolean, and switching graphics off removes WebGL altogether.

  • The word in the browser string

    The default string carries a word that says no window is attached to this browser.

  • The automation flag

    Opening a debugging channel sets a boolean that a bot check reads on its first line.

  • Graphics switched off

    A browser with no WebGL at all stands out more sharply than one with no window.

  • An empty list of plugins

    The older mode answered with none of them, and a page still counts them because it costs nothing.

What our profile answers with no window

A hidden profile carries the same browser string as a visible one, because that string comes from the profile seed and is always set on the launch line.

Graphics stay on, the debugging channel leaves no flag behind, and the seed is the very one the daytime session uses.

What a page readsWith a windowWith no window
Browser stringfrom the profile seedfrom the profile seed
WebGLTakTak
Automation flaghiddenhidden
Fingerprint seedthe profile's ownbyte for byte the same
Addresses opened at startthe start page and the targetone, the rest follow as tabs

Your browser right now

These three lines are what a bot check reads first. Here they describe the browser you are reading this page in.

Twoje urządzenie, w tej chwili

Browser string
pomiar na Twoim urządzeniu
Automation flag
pomiar na Twoim urządzeniu
Plugins counted
pomiar na Twoim urządzeniu

Odczytane w Twojej przeglądarce i pokazane tutaj. Nic nie jest nigdzie wysyłane.

Where a hidden run is asked for

It is a property of the profile, so every road into a launch honours the same decision. The button in the window, the schedule and a scenario run all read it once.

A single run can ask for something else. Another program on this machine can request a hidden run without changing what the profile does tomorrow.

  1. 1

    Set once on the profile

    The choice is saved with the profile and is still there after a restart.

  2. 2

    Read by every road in

    One decision is taken at the start of a launch and handed to everything that needs it.

  3. 3

    Overridden for one run

    A request from another program applies to that run and leaves the profile alone.

Often confused with

  • Incognito mode

    A window you can see, with storage cleared when it closes. Nothing about the window itself is hidden.

  • A virtual machine

    A whole second computer. Here it is one browser process on the computer you already have.

  • A minimised window

    Still drawn, still known to the window manager, and still throttled by the system when it is out of sight.

What this does not do

  • Running with no window does not hide automation on its own. What is typed, how fast it is typed and where the pointer goes are read the same way.
  • It does not take more than one address at the start. Chromium in this mode accepts a single target, so the rest are opened as tabs once the browser is up.
  • It does not change the address you come from or the reputation that address already carries.
  • It is not a second machine. A hidden profile and a visible one on the same computer still share a disk and a network.

Check it

Each line above is a file you can open or a stand that keeps it honest.

A hidden launch carries the profile's own browser string
apps/desktop/test/скрытый-режим.js
One address goes to the engine and the rest are not lost
apps/desktop/test/скрытый-запуск-одним-адресом.js
One profile opened both ways is compared field by field
apps/desktop/test/скрытый-режим-живьём.js
The debugging channel leaves no automation flag behind
apps/desktop/test/webdriver-flag.js · apps/desktop/test/cdp-port-only-when-needed.js

Questions

Can a site tell there is no window?
It looks for the usual marks: the word in the browser string, the automation flag and an empty plugin list. Each of them is one line of script.
Does a hidden profile look different from the same profile with a window?
It should not, and that is measured rather than assumed. One profile is opened both ways on the built engine and the two machines are compared field by field.
Does it use less memory?
Yes, and that is the point. Nothing is drawn, so a machine holds more sessions at once than a screen could ever show.
Is this the same as incognito?
No. Incognito is a visible window that forgets its storage on close. This is a browser with no window at all.
Can I turn it on for a single run?
Yes. A request from another program applies to that run only, and the profile keeps whatever you chose in its editor.

Run a profile with no window on screen

The choice lives on the profile, so a schedule and a scenario both honour it without a second setting.