Navigator properties can be fully spoofed to other Firefox fingerprints, and it is **completely safe**!

---

## Properties

| Property                         | Type  | Description                                         |
| -------------------------------- | ----- | --------------------------------------------------- |
| `navigator.userAgent`            | str   | Browser and system information                      |
| `navigator.doNotTrack`           | str   | User's tracking preference                          |
| `navigator.appCodeName`          | str   | Browser's code name                                 |
| `navigator.appName`              | str   | Browser's name                                      |
| `navigator.appVersion`           | str   | Browser's version                                   |
| `navigator.oscpu`                | str   | Operating system and CPU information                |
| `navigator.language`             | str   | Preferred language of the user                      |
| `navigator.languages`            | array | User's preferred languages                          |
| `navigator.platform`             | str   | Platform the browser is running on                  |
| `navigator.hardwareConcurrency`  | uint  | Number of logical processors                        |
| `navigator.product`              | str   | Product name of the browser                         |
| `navigator.productSub`           | str   | Build number of the browser                         |
| `navigator.maxTouchPoints`       | uint  | Maximum number of simultaneous touch contact points |
| `navigator.cookieEnabled`        | bool  | Whether cookies are enabled                         |
| `navigator.globalPrivacyControl` | bool  | User's global privacy control preference            |
| `navigator.buildID`              | str   | Build identifier of the browser                     |
| `navigator.onLine`               | bool  | Whether the browser is online                       |

---

> [!NOTE]
> - **navigator.webdriver** is set to false at all times.
> - `navigator.language` & `navigator.languages` will fall back to the `locale:language`/`locale:region` values if not set.
> - When spoofing Chrome fingerprints, the following may leak:
>   - navigator.userAgentData missing.
>   - navigator.deviceMemory missing.
> - Changing the presented Firefox version can be detected by some testing websites, but typically will not flag production WAFs.
