Prior to this change, Chromium only exposed `navigator.webdriver` when the browser was being automated. However, other browsers expose it unconditionally per the spec (https://w3c.github.io/webdriver/#interface), with the value `false` in case the browser is not being automated. We propose changing Chromium to align with other browsers and the spec. This is a potentially breaking change since web pages could in theory rely on the old `navigator.webdriver === undefined` behavior.
There is a conflict between implementation and specification of the `navigator.webdriver` API. According to spec https://w3c.github.io/webdriver/#interface and other browser implementations, it should be `navigator.webdriver === false`, while current implementation is `navigator.webdriver === undefined`.
Status in Chromium
Enabled by default (tracking bug) in:
- Chrome for desktop release 89
- Chrome for Android release 89
- Chrome for iOS release 89
- Android WebView release 89
Consensus & Standardization
- No signals
Search tagsnavigator, webdriver, automation,
Last updated on 2021-04-13