Skip to content
All fingerprint checks
Screen & display

An element that went fullscreen gets the screen and the fullscreen display mode

Pim· Clearcote Research 2 min readCheck id fullscreen-is-real-fullscreen

After requestFullscreen() resolves, display-mode is 'fullscreen' and the outer window covers the screen to within a pixel. N/A when the request is rejected, on Brave and on non-Chromium engines (severity: warn).

What a detector infers

When a page calls requestFullscreen() during a click, Chrome normally makes the whole window fullscreen: document.fullscreenElement is set, the window grows to cover the screen, and the display-mode media query switches to 'fullscreen'. There is one deliberate exception.

If the tab is being visibly captured — shared in a video call, say — Chrome keeps the fullscreen inside the tab so the shared picture keeps its size: fullscreenElement is set, but the window does not change and display-mode stays 'browser'. Playwright's focus emulation registers itself with Chrome as exactly such a visible capture, so under Playwright, headed or headless, every requestFullscreen goes into the tab.

Measured: genuine headed Chrome, clicked through the DevTools protocol directly, reached display-mode 'fullscreen' with the outer window equal to the screen; Playwright got fullscreenElement with display-mode 'browser' and the window unchanged. The audit requests fullscreen inside the Run click and exits at once. A rejected request is N/A, as are non-Chromium engines and Brave, which varies screen geometry as a privacy feature.

The one ordinary way to produce the failing shape is to run the audit in a tab that is being shared at that moment.

How to resolve it

The within-tab routing comes from a capture that the automation client's focus emulation registers, not from the page. Drive the browser through a client that does not enable focus emulation, or expect fullscreen requests to stay inside the tab under one that does.

How automation gets caught, layer by layer

Nearby checks in Screen & display

See all 24 checks in Screen & display
Who builds this test

Clearcote is a browser built for fingerprint coherence

It is a Chromium fork, maintained by the same people who wrote this reference. It ships as a compiled browser rather than as a stealth script injected into someone else's — which is a description of how it is built, and is not an argument about how it behaves on this check.

This audit takes no position on how Clearcote scores on Screen & display checks, on this one, or anywhere else. It has no baseline corpus of other people's fingerprints to rank you against and no vendor scoreboard — nearly every check is self-referential, asking one browser the same question through two independent APIs and reporting whether both answers can be true at once. It runs identically on any browser, including ours. Run it on yours and read the result yourself.

See the other checks in Screen & display — the family fullscreen-is-real-fullscreen belongs to.