Chromixer
Chrome extension that provides comprehensive browser fingerprint protection by defending against various tracking techniques used across the internet.
Install / Use
/learn @arman-bd/ChromixerREADME
Chromixer
<div align="center"> <img src="res/icon-large.png" alt="Chromixer" width="96" height="96">Browser Fingerprint Protection Extension
Preview • Features • Installation • Usage • Architecture • Testing
</div>Overview
Chromixer is a Chrome extension that provides comprehensive browser fingerprint protection by defending against various tracking techniques used across the internet. It adds session-based noise to fingerprinting vectors and blocks tracking APIs, helping maintain your online privacy without breaking website functionality.
⚠️ This project is under active development.
Preview
Extension Interface
<div align="center"> <img src="res/extension-screenshot.png" alt="Chromixer Extension Popup" width="400"> <p><em>Extension popup showing real-time fingerprinting detection and statistics</em></p> </div>Protection in Action
<div align="center"> <img src="res/fingerprint-screenshot.png" alt="Fingerprint Detection" width="700"> <p><em>Popular fingerprinting library detecting each session as a new visitor - protection working as intended</em></p> </div>Features
Protection Techniques
Chromixer implements 12 fingerprint protection techniques with session-based randomization, ensuring your fingerprint changes with every page load.
Canvas & WebGL Rendering
Intercepts canvas methods (toDataURL, toBlob) and adds imperceptible noise to image data. WebGL rendering is protected by spoofing vendor/renderer strings with subtle buffer data variations, maintaining visual quality while preventing GPU-based fingerprinting.
Audio Context
Monitors Audio API calls and adds imperceptible noise to buffer data, disrupting fingerprinting without affecting legitimate audio processing.
Font Enumeration
Detects mass font enumeration attempts (300+ checks threshold) and adds subtle noise to element measurements, preventing font-based tracking.
Hardware & System Information
- Hardware Concurrency: Randomizes CPU core count (2, 4, or 8)
- Screen Dimensions: Subtle variations to screen properties
- Battery API: Completely blocked
- Plugins: Returns empty list
- Media Devices: Returns minimal information only
Network & APIs
- WebRTC: Monitors peer connections to prevent IP leaks
- Client Rects: Imperceptible noise to
getBoundingClientRect() - Gamepad API: Returns empty list
User Interface
Extension Popup
- Toggle protection globally
- View blocked attempts and tracked sites
- Monitor fingerprinting techniques in real-time
- One-click whitelist management
Badge Indicators
- No badge → Protection active, no detections
- Red
!→ Fingerprinting blocked - Red
✕→ Site whitelisted - Grey
✕→ Protection disabled
Installation
git clone https://github.com/arman-bd/chromixer.git
cd chromixer
npm install # Optional, for testing only
Load in Chrome:
- Open
chrome://extensions/ - Enable "Developer mode"
- Click "Load unpacked"
- Select the
extensiondirectory
Usage
Toggle Protection Click the Chromixer icon and use the toggle switch.
Whitelist Sites If a site breaks, click "Add to Whitelist" in the popup. The page will reload without protection.
View Statistics Open the popup to see blocked attempts and fingerprinting activity.
Development Status
Version 1.0.0
✅ Completed
- 12 fingerprinting protection techniques
- Real-time statistics and detection reporting
- Extension popup with badge indicators
- Whitelist management system
- Comprehensive Playwright test suite
🔄 In Progress
- Per-protection type toggles
- Advanced whitelist patterns (wildcards, regex)
- Settings export/import
- Detailed detection logs
📋 Planned
- Timezone and language spoofing
- Custom noise intensity controls
- Fingerprint consistency profiles
- Enhanced statistics dashboard
⚠️ Known Limitations
Design tools with heavy canvas usage may require whitelisting. Canvas-intensive applications might show minor visual artifacts.
Architecture
Structure
extension/
├── background/
│ └── service-worker.js # State management, storage, badges
├── content-scripts/
│ ├── injector.js # ISOLATED world - messaging
│ └── spoofing.js # MAIN world - protection
├── popup/ # UI
├── options/ # Settings
└── utils/config.js # Configuration
tests/
├── fingerprint-protection.test.js
├── extension-tracking-evasion.test.js
└── test-server/
How It Works
Dual-World Injection
Content scripts use dual-world architecture: injector.js (ISOLATED world) handles messaging, while spoofing.js (MAIN world) applies protection before page scripts load.
Protection Mechanisms
- Early Injection - Executes at
document_start - Proxy Interception - JavaScript Proxy objects intercept APIs
- Native Appearance - Custom
toString()maintains function appearance - Session Randomization - Consistent per page, different per navigation
- Calibrated Noise - Imperceptible to users, disruptive to trackers
Testing
npm test # Run all tests
npm run test:headed # Visible browser
npm run test:ui # Playwright UI
npm run test:evasion # Tracking evasion tests
Coverage: Extension injection • Canvas • WebGL • Hardware concurrency • Battery • Plugins • Media devices • Gamepad • Screen • Client rects • Fonts
Contributing
Areas of Interest:
- New protection techniques
- Bug reports and fixes
- Documentation improvements
- Additional test cases
- UI/UX enhancements
Workflow:
- Fork and create feature branch
- Install dependencies:
npm install - Make changes and run tests
- Submit pull request
License
MIT License • Copyright (c) 2025 Arman Hossain
See LICENSE for details.
Disclaimer
⚠️ Educational Purpose Only
This extension is provided for educational and research purposes only. It demonstrates browser fingerprinting techniques and protection mechanisms.
No Liability
The developer is not liable for any misuse or consequences arising from the use of this software.
By using Chromixer:
- You use this extension entirely at your own risk
- The developer assumes no responsibility for damage, loss, compatibility issues, terms of service violations, or legal implications
- This extension may break websites or interfere with functionality
User Responsibility
You are responsible for:
- Understanding how the extension works
- Complying with laws and regulations
- Respecting website terms of service
- Accepting all consequences of use
No Warranty
Provided "AS IS" without warranty of any kind, express or implied.
<div align="center">
⭐ Star this project if you find it useful
</div>Related Skills
node-connect
339.3kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
83.9kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
339.3kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
83.9kCommit, push, and open a PR
