the URL parser follows the specification exactly
Every one of the spec-fixed parses returns exactly the specified result, on any platform.
What a detector infers
The URL specification pins the exact result of a handful of awkward parses, and it pins them for every engine and every operating system alike: dot segments are removed, hosts are lowercased, and percent-encoded dot segments must be decoded BEFORE removal rather than after — the last of which a naive re-implementation characteristically skips.
Because the answers are fixed by specification rather than by population data, there is no per-platform table to drift and no corpus required: a different answer means the code handling these strings is not the browser's own parser.
That is the same reasoning the collection-outcome row rests on, applied to returned values rather than thrown exceptions, and it is a separate row precisely because a returned value and a raised exception travel different code paths, so a substitute can be faithful in one and not the other.
How to resolve it
Do not replace or polyfill the URL parser. Its behaviour on awkward inputs is specified in detail and is identical across conformant browsers, so a substitute shows up in a single call.
Nearby checks in Navigator identity
- a second browser target resolves the same timezone as the window
timezone-shared-worker-vs-windowThis audit already compares the window's timezone against a dedicated worker. - the keyboard layout maps the OEM keys the way one real Windows layout would
keyboard-layout-single-originA keyboard layout is not a set of independent key mappings — it is one artifact the operating system hands over whole. - navigator.appVersion is the user agent minus its leading token
appversion-vs-useragentnavigator.appVersion is not an independent fact. In Blink and WebKit it is computed from the User-Agent at read time — literally the UA with… - in-app browser bridge objects agree with the browser being claimed
webview-wrapper-markers-vs-uaA deployed commercial agent enumerates a short list of window globals that are not web platform features at all. - Trusted Types hands back the branded object its own type demands
trusted-types-value-invariantTrusted Types is a typed API, not a boolean feature flag, and that is the whole of the check. - the user agent on the wire and the one JavaScript reports describe the same browser
ua-wire-vs-navigatorYour user agent is asserted on two channels built by different layers: the network stack writes the header, and the renderer answers… - a Date's own text agrees with the Date's own offset
date-tostring-coherenceA Date's text is not opaque. ECMA-262 defines toString() as toDateString() + " " + toTimeString(), fixes the weekday and month tables to… - Origin-scoped storage and browsing state
origin-storage-historyCookies, storage, IndexedDB, and same-tab history reveal only this origin's state.
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 Navigator identity 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 Navigator identity — the family url-parser-spec-conformance belongs to.
