Added undetectable Canvas shape & line fingerprint rotation by modifying the Skia rendering pipeline. This bypasses all known Canvas pixel integrity tests.
Note: Due to this repository being monitored, the source for this patch is closed. All GitHub releases will still have this patch included in it. However, this patch will not be included in local builds of Camoufox.
Experimental support to execute in the main world. Usage: `page.evaluate("mw:<script>")`
Has only been implemented to pass JSON serializable objects to/from the main world (Isolated worlds are still the default, and should be used unless necessary).
- Added `voices` parameter, which takes a list maps for each voice to add. Example:
`[ {"isLocalService": true, "isDefault": true, "voiceUri": "Ting-Ting", "name": "Ting-Ting", "lang": "zh-CN" } ... ]`
- Added `voices:blockIfNotDefined` has been added to block system voices
- Added `voices:fakeCompletion: bool` and `voices:fakeCompletion:charsPerSecond: double` to set a fake playback speed.
- Update upstream Firefox version to 132.0.
- Updated Playwright patches and Juggler to FF132 (+1 version above current parent Playwright branch)
- Removed upstream DNS leak patch (has been added natively)
- Added WebGL context attribute "forceSoftwareRendering"
- Fixed some memory enhancement prefs not setting correctly.
- Bfcache is now completely disabled. This should improve memory, but kills Playwright's page.go_back() and page.go_forward(). To re-enable this, set `browser.sessionhistory.max_entries` to the amount of pages you want to remember.
- Moved SanitizeOnShutdown policy to preferences instead. This unlocks clearOnShutdown preferences. #47
- Added experimental memorysaver property that clears all of the memory after each page.goto navigation. Helpful for datacenters running Camoufox, but could potentially break things.
- Cursor now starts in a random position on the screen
- Fixed screenshots not capturing the full window when a viewport is set by window.innerWidth and window.innerHeight.
- Added ability to spoof webgl2 supported extensions
- Added ability to block parameters that aren't defined in config
- Passing null in config will block the value
- Added more parameters to the demo site
Experimental WebGL fingerprint injection.
- Allows the ability to set all WebGL parameters, supported extension list, shader precision formats, & context attributes.
- Added a demo website under scripts/examples/webgl.html that can be used to generate Camoufox config data
- Add back frame execution contexts. Fixes leaks by using an isolated context. #3#6
- Fixed other small errors in Juggler (viewport size & error message stack)
- Add debugging functionality to Juggler
- Add launcher argument to write stderr to a log file
- Bumped to v130.0-beta.5
- Merged new July 25th changes into Juggler
- Retrofit playwright patches to the latest version
- Removed Nvidia Wayland fix backport
- Updated bootstrap patch from LibreWolf
Juggler will no longer notify content-document-global-created.
This patch also reverses the _Runtime domain rename fix due to Playwright breakage.
This was causing leaks with some WAFs.
- Use GetEnvironmentVariableW to get CAMOU_CONFIG in UTF-16 instead of ANSI on Windows. Prevents data loss.
- Added ability to pass in CAMOU_CONFIG in multiple environment variables
- Split environment variables into 2047 character chunks on Windows
- Use github.com/goccy/go-json for faster JSON encoding
- Fix Windows not finding relative camoufox.exe file
- Heavy changes to Makefile. Now uses aria2c to download the Firefox release tarball
- New features in developer UI to make patch editing much easier
- Modified Playwright's Juggler patches to run on Firefox release v128.0.3
- Bump Playwright Juggler module to June 2th patches
- Fix viewport-hijacker and xmas-modified patches for new Firefox release