Level 1 of 5
The honest tell
Five passive flags that real Chrome sets and most automation contexts get wrong.
What's measured on this page
-
navigator.webdriver β must be false or undefined.
- navigator.plugins.length β non-zero in real Chrome.
- navigator.languages β non-empty.
- User-Agent β does not contain HeadlessChrome.
- Notification.permission vs permissions.query({name:"notifications"}) β should agree.