Skip to content

Conversation

@PopcornDev1
Copy link

Summary

Updates the timezone and geolocation patches for per-context support, and improvements to the locale spoofing patch.

Changes

timezone-spoofing.patch (major update)

  • Implements true per-context timezone isolation via per-realm DateTimeInfo in SpiderMonkey
  • Restores Realm::getDateTimeInfo() that Playwright disabled, enabling each browser context to have its own timezone
  • Adds window.setTimezone() WebIDL binding with TimezoneManager C++ class for per-context storage
  • nsGlobalWindowInner::SetTimezone() calls both per-realm (JS::SetRealmTimeZoneOverride) and global (nsJSUtils::SetTimeZoneOverride) APIs
  • Validates timezone strings before applying (throws TypeError for invalid)
  • DateTimeInfo constructor uses delegation pattern (: DateTimeInfo()) for proper member initialization

geolocation-spoofing.patch (restored + fixed)

  • Restores CAMOU_CONFIG backwards compatibility for global geolocation spoofing
  • Geolocation.cpp: Auto-approves geolocation permission when lat/lon are configured in MaskConfig
  • GeolocationPosition.cpp: Returns spoofed coordinates from geolocation:latitude / geolocation:longitude config
  • NetworkGeolocationProvider.sys.mjs: Returns spoofed location at the network provider level
  • Fixed moz.build hunk line numbers and trailing newline issues from earlier version

locale-spoofing.patch (minor fix)

  • Adds LOCAL_INCLUDES += ["/camoucfg"] to dom/base/moz.build for MaskConfig.hpp access
  • Required for other patches that need MaskConfig in the dom/base directory

anti-font-fingerprinting.patch (build dependency)

  • Adds RoverfoxStorageManager.h to EXPORTS and RoverfoxStorageManager.cpp to UNIFIED_SOURCES in dom/base/moz.build
  • Required because WebRTC patch (which previously exported RoverfoxStorageManager) is now disabled
  • Other per-context managers (AudioFingerprintManager, ScreenDimensionManager) depend on RoverfoxStorageManager

- 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
@PopcornDev1 PopcornDev1 requested a review from icepaq February 3, 2026 07:05
@coderabbitai
Copy link

coderabbitai bot commented Feb 3, 2026

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

  • 🔍 Trigger a full review
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch timezone-geolocation-spoofing

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@PopcornDev1 PopcornDev1 changed the title feat: update timezone, geolocation, and locale spoofing patches #1 feat: update timezone, geolocation, and locale spoofing patches Feb 3, 2026
@PopcornDev1 PopcornDev1 changed the title #1 feat: update timezone, geolocation, and locale spoofing patches #1 feat: timezone, geolocation, and locale spoofing patches Feb 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants