GBrowser masks the full set of automation tells by default, on every path a page can reach.
- Layer C stealth is always on and carries a per-install hardware identity that survives the toString depth-3 trick
- GBrowser's headless and headed Chromium now ship Layer C anti-detection by default with no opt-in flag
- buildGStackLaunchArgs per-install cmdline switches
- Real-Chromium runtime coverage
- Browser now restores the full window.chrome.* shape in addition to masking navigator.webdriver
- Notification.permission is aligned with the Permissions API
- Per-install hardwareConcurrency and deviceMemory are reported from the host profile
- Known Selenium, Phantom, Nightmare, and Playwright globals are swept
- Function.prototype.toString proxy installed so every patched getter reports [native code] even under depth-3 recursion check
- GSTACK_STEALTH=extended mode now layers on top of Layer C rather than replacing it
- Stealth applies on all four context-creation paths including useragent change, viewport --scale, and headless-to-headed handoff
Layer C stealth is always on, carries a per-install hardware identity, and survives the toString depth-3 trick.
GBrowser's headless and headed Chromium now ship "Layer C" anti-detection by default, with no opt-in flag.
Where the old default masked only navigator.webdriver, the browser now also restores the full window.chrome.* shape, aligns Notification.permission with the Permissions API, reports a per-install hardwareConcurrency/deviceMemory from the host profile, sweeps the known Selenium/Phantom/Nightmare/Playwright globals, and installs a Function.prototype.toString proxy so every patched getter reports [native code] even under the depth-3 recursion check.
The aggressive GSTACK_STEALTH=extended mode still exists, now layered on top of Layer C rather than replacing it.
Stealth applies on all four context-creation paths, so a useragent change, a viewport --scale, or a headless-to-headed handoff hands a site a fully masked page every time.
Added: Always-on Layer C stealth.
Added: buildGStackLaunchArgs per-install cmdline switches.
Added: Real-Chromium runtime coverage.
Changed: Stealth applies on every context-creation path.
The cdc_/__webdriver cleanup and the Permissions notifications shim live in applyStealth.
GSTACK_STEALTH=extended layers on top of Layer C.
--gstack-suppress-prepare-stack-trace is opt-in via GSTACK_CDP_STEALTH=on.
--disable-blink-features=AutomationControlled comes from one shared STEALTH_LAUNCH_ARGS constant.