Commit Graph
23 Commits
Author SHA1 Message Date
daijro 0583c3ec94 ci: Avoid oom 2026-07-18 23:49:16 -05:00
daijro 6266d707a0 Mark new releases as prerelease by default 2026-07-15 17:58:18 -05:00
daijro fb6d475fd3 Drop Linux i686 support for future releases
Firefox 32-bit Linux Support ended in 2026. This change removes it from the workflow
https://blog.mozilla.org/futurereleases/2025/09/05/firefox-32-bit-linux-support-to-end-in-2026/
2026-07-15 14:20:46 -05:00
daijro 9839eb9cd7 Add workflow to publish to pypi 2026-07-15 14:06:03 -05:00
daijro c4711282e6 Save on storage in workflow
- Reverted make setup-minimal in workflow since a fix had already been implemented to build without initializing a git repo
- Reverted swap space to 16GB (to test if it works)
2026-07-15 11:55:00 -05:00
Neuregex d577d7fe0f ci: fix build.yml on GitHub-hosted runners (source wipe, ccache, OOM) 2026-07-07 18:11:02 -06:00
icepaq 5219a40849 build test fixes (#586)
* build test fixes

* fix wrong references

* Update PULL_REQUEST_TEMPLATE.md
2026-04-25 23:47:31 -04:00
e4528a296f Disable Canvas Noise (#528)
* feat: update timezone, geolocation, and locale spoofing patches

- timezone-spoofing.patch: per-context timezone via per-realm DateTimeInfo
- geolocation-spoofing.patch: CAMOU_CONFIG backwards compatibility for geolocation
- locale-spoofing.patch: add camoucfg LOCAL_INCLUDES
- anti-font-fingerprinting.patch: add RoverfoxStorageManager exports to moz.build

* feat: per-context audio fingerprinting and screen spoofing patches

- audio-fingerprint-manager.patch: per-context audio fingerprinting (all 6 API methods)
- screen-spoofing.patch: per-context screen dimensions with global MaskConfig fallback
- Disable webrtc-ip-spoofing.patch (will re-enable after fixing)
- Remove screen-hijacker.patch (superseded by screen-spoofing.patch)

* fix: add global MaskConfig hooks for navigator.platform, hardwareConcurrency, and timezone (#443)

Fixes issue where global CAMOU_CONFIG settings for navigator.platform,
navigator.hardwareConcurrency, and timezone were not applied in the main
window Navigator (only WorkerNavigator was patched via fingerprint-injection.patch).

* fix: run nsJSUtils::SetTimeZoneOverride() after SpiderMonkey has Initialized to prevent SIGSEGV

* Add fingerprint improvements for PR #3

- navigator-spoofing.patch: Global config fixes for platform/hardwareConcurrency/timezone
- timezone-spoofing.patch: Persistence across page navigation via SetNewDocument hook
- audio-fingerprint-manager.patch: Full 6-method coverage with self-destruct pattern
- screen-spoofing.patch: Per-context dimensions with self-destruct pattern
- webrtc-ip-spoofing.patch: Re-enabled with getStats() sanitization + comprehensive IPv6 regex

* fix: simplify userContextId to BrowsingContext + add per-context docs

* feat(navigator): Add per-context spoofing (platform, oscpu, hardwareConcurrency) with global fallback + docs update.

* fix(navigator): use 2-arg GetUint(key, value) for RoverfoxStorageManager

* fix(navigator): header line count build error

* fix(navigator): move NavigatorManager.cpp into SOURCES for leakage error

* fix(navigator): more line count build errors

* fix(navigator): include nsTHashMap and nsHashKeys.h before RoverfoxStorageManager

* feat(webgl): per-context spoofing patch

* fix(webgl): changed GetCanvasElement() to mCanvasElement() for firefox version

* fix(webgl): remove coupled self-destruct

* feat(canvas): per-context spoofing

* feat(font-list): per-context spoofing

* fix(font-list): use GetOwnerWindow() instead of GetOwner()

* feat(speech): per-context spoofing

* fix(speech): add /dom/base inside local_includes

* fix(speech): changed context to avoid conflicts

* feat(navigator): add WorkerNavigator hooks for per-context platform and hardwareConcurrency in workers

* feat(timezone): add per-context timezone override to workers

* fix(canvas): add OffscreenCanvas userContextId support and skip zero pixels in canvas noise

* fix(screen): hook nsMediaFeatures GetDeviceSize for per-context matchMedia device-width/height

* fix(webgl): add OffscreenCanvas userContextId fallback in WebGL GetUserContextId

* fix(canvas): make canvas noise use proper format for BGRA toDataURL path

* fix(canvas): line count fixes

* docs: updated hardware per-context documentation

* Final Per-Context Hardware Fingerprint Spoofing (#9)

* feat(navigator): Add per-context spoofing (platform, oscpu, hardwareConcurrency) with global fallback + docs update.

* fix(navigator): use 2-arg GetUint(key, value) for RoverfoxStorageManager

* fix(navigator): header line count build error

* fix(navigator): move NavigatorManager.cpp into SOURCES for leakage error

* fix(navigator): more line count build errors

* fix(navigator): include nsTHashMap and nsHashKeys.h before RoverfoxStorageManager

* feat(webgl): per-context spoofing patch

* fix(webgl): changed GetCanvasElement() to mCanvasElement() for firefox version

* fix(webgl): remove coupled self-destruct

* feat(canvas): per-context spoofing

* feat(font-list): per-context spoofing

* fix(font-list): use GetOwnerWindow() instead of GetOwner()

* feat(speech): per-context spoofing

* fix(speech): add /dom/base inside local_includes

* fix(speech): changed context to avoid conflicts

* feat(navigator): add WorkerNavigator hooks for per-context platform and hardwareConcurrency in workers

* feat(timezone): add per-context timezone override to workers

* fix(canvas): add OffscreenCanvas userContextId support and skip zero pixels in canvas noise

* fix(screen): hook nsMediaFeatures GetDeviceSize for per-context matchMedia device-width/height

* fix(webgl): add OffscreenCanvas userContextId fallback in WebGL GetUserContextId

* fix(canvas): make canvas noise use proper format for BGRA toDataURL path

* fix(canvas): line count fixes

* docs: updated hardware per-context documentation

* feat(screen): screen avail per context

* fix(font): align userContextId resolution to BrowsingContext

* fix(audio): align userContextId resolution to BrowsingContext

* Avoid macos caching (#11)

* the property to undefined before deleting

* undo webrtc undefined

* feat: userContextId added to WordCacheKey

* fix: hunk line counts for macos cache changes

* fix: add WorkerPrivate fallback in OffscreenCanvas

* fix(audio): transformation added to mSharedChannels path to ensure consistency

* fix(webgl): added WorkerPrivate to ucid

* fix(timezone): add ucid=0 fallback for worker timezone resolution

* fix(audio): move seed lookup outside window guard for all 6 hooks

* fix(canvas): add ucid=0 fallback and WorkerPrivate resolution for workers

* fix(navigator): add setNavigatorUserAgent and ucid=0 fallback and WorkerNavigator for UA spoofing fix

* fix(webgl): add ucid=0 fallback and WorkerPrivate resolution

* fix(webgl): decouple vendor/renderer self-destruct

* fix(navigator): add main-thread navigator.userAgent getter hook

* fix(navigator): add MaskConfig hook for navigator.appVersion in main window

* feat: Add Chakra Petch font for macOS to solidify detection on CreepJS

* fix(fontconfig): rename to match Go launcher, add TTC aliases and update .gitignore

* fix(navigator): oscpu missing MaskConfig global fallback

* feat: add real fingerprint presets (65 firefox profiles) - mainly to test with, more will come when tested.

* feat: use real fingerprint presets as default with BrowserForge as fallback

* feat: add audio:seed and canvas:seed to property schema and validation

* feat: add MaskConfig fallback to seed managers for cross-process worker consistency - don't need to disable fission

* fix(font): moved mUserContextId declaration before mRounding in WordCacheKey so init order matches

* fix(audio): line count correction

* fix(canvas): line count fix

* feat: add per-context fingerprinting API (NewContext/AsyncNewContext) + merge upstream

- fix seed range
- add oscpu derivation from platform, and timezone mapping in from_preset()
- new real fingerprints preset support

* feat: new presets + en-US only, stripped fonts/language, clamp DPR

* feat: random 30-78% font subset generation for NewBrowser and NewContext

* fix: add fission.autostart=true to camoufox.cfg - will be changing this soon with new update so processCount is not 1, so it will be undetectable

* fix: update macos fonts.conf rendering settings

* feat: cross-process fingerprint storage via Firefox Preferences API

Replace RoverfoxStorageManager's per-process static HashMap with Firefox's
built-in Preferences system. Values stored as CString prefs under
"roverfox.s." namespace, auto-synced to all content processes by Firefox.

Content processes can't set prefs directly (ENSURE_PARENT_PROCESS), so a
single IPDL message (RoverfoxStoragePut) routes writes through the parent.
Same public API — all 10 dependent patches require zero changes.

Removes dom.ipc.processCount=1 from camoufox.cfg. Firefox now uses
Playwright's default multi-process model (fresh process per page) with
fission enabled, while fingerprint values remain accessible everywhere.

* fix(cross-process): hunk headers and build fixes

* fix(storage): add local write-through cache to RoverfoxStorageManager

* fix(storage): add sync IPC read fallback for cross-process fingerprint propagation

* fix(storage): add NS_IsMainThread guard to sync IPC fallback - prevent crashes

* fix(storage): sync IPC + pref whitelist for cross-process fingerprint sync

* feat: full documentation update, speech voices generated per context and BrowserForge primary fingerprint generation method for global and per context.

* fix: Direct3D NVIDIA GTX 980 renderers incorrectly appearing on mac because of duplicates

* Update .gitignore

* example files

* contributing guides

* simple service test

* run tests in sync

* update pr template

* pip updates

* Update README.md

* typo fixes

* undo pip package update lol

* upgraded service test

* undo injections

* test with proxies

* auto set timezone and proxy url

* delete checks bundle

* split up service tests

* split up build tests

* rename service tests to service tester

* Update CONTRIBUTING.md

* fix entry vs exit ip

* allow alpha versions

* fix patch issues on macos

* bidirectional patch

* Add note on experimental pip package

* remove canvas spoofer

* remove canvas spoofer

* Update .gitignore

* disable canvas noise

* Update PULL_REQUEST_TEMPLATE.md

---------

Co-authored-by: PopcornDev1 <e.coiley@icloud.com>
Co-authored-by: Build <build@local>
Co-authored-by: Elliot Coiley <153072396+PopcornDev1@users.noreply.github.com>
2026-04-14 21:54:07 -04:00
icepaq d6540b52ce Service Test and Contributing Guides (#521)
* example files

* contributing guides

* simple service test

* run tests in sync

* update pr template

* pip updates

* Update README.md

* typo fixes

* undo pip package update lol

* upgraded service test

* undo injections

* test with proxies

* auto set timezone and proxy url

* delete checks bundle

* split up service tests

* split up build tests

* rename service tests to service tester

* Update CONTRIBUTING.md

* fix entry vs exit ip

* allow alpha versions

* fix patch issues on macos

* bidirectional patch

* Add note on experimental pip package
2026-03-15 21:31:49 -04:00
daijro 64180472e2 README: Move funding button, add GH trending 2025-02-12 11:01:06 -06:00
daijro 3b235c5a21 CI/CD: Pass secret to fetch command 2024-12-09 05:29:16 -06:00
daijro 6ed2a63379 CI/CD: LLVM & rust version mismatch bugfix 2024-11-19 23:30:01 -06:00
daijro 147885431a CI/CD: Downgrade LLVM to 18 2024-11-19 06:43:50 -06:00
daijro 8196a6e361 Add additional questions in issue template 2024-11-18 02:31:33 -06:00
daijro 2101330754 Add issue template for reporting leaks 2024-10-09 20:28:26 -05:00
daijro b371928d43 CI/CD: Remove .mozbuild caching 2024-09-30 03:01:19 -05:00
daijro 598a8566e2 CI/CD: Fix outdated libstdc++ on i686 2024-09-11 05:03:55 -05:00
daijro 9bb17f5947 CI/CD: Bump upload/download artifact to v4 2024-09-11 04:20:47 -05:00
daijro 73386d6b9f CI/CD: Add target arch matrix 2024-08-16 19:06:49 -05:00
daijro 1d31bad14e Merge gh-actions branch into main
main..gh-actions:
- CI/CD: Fix release permissions
- Fix macos packaging on debian
- CI/CD: Remove unwanted tools
- CI/CD: Attempt to fix OOM killing GH runner during LTO
- CI/CD: Fix glibc errors
- CI/CD: Downgrade to ubuntu-20.04
- CI/CD: Use target os matrix & fix release
- CI/CD: Remove Windows (temporarily)
- CI/CD: Move to AdityaGarg8/remove-unwanted-software@v4.1
- CI/CD: Limit CPU as well
- CI/CD: Create cgroup with 80% mem limit
- CI/CD: Revert "Remove .mozbuild caching"
- CI/CD: Expand root & swap build space
- CI/CD: Remove .mozbuild caching
- CI/CD: Check disk space after checkout
- CI/CD: Use easimon/maximize-build-space
- CI/CD: Add workflow dispatch trigger
- CI/CD: Experimental fix for clang, add swap space
- CI/CD: Save .mozbuid cache after Build
2024-08-16 07:34:54 -05:00
daijro 33137af06e CI/CD: Add workflow dispatch trigger 2024-08-14 21:39:14 -05:00
daijro 726fcb66db CI/CD: Fix .mozbuild caching 2024-08-14 05:29:32 -05:00
daijro 40bcdc6def CI/CD: Migrate from Appveyor to Github Actions
Migrated to GH Actions to avoid 60 minute time quota, local storage limit, and cache limit.
2024-08-14 05:16:42 -05:00