Skip to content

Chrome extension that provides comprehensive browser fingerprint protection by defending against various tracking techniques used across the internet.

License

Notifications You must be signed in to change notification settings

arman-bd/chromixer

Repository files navigation

Chromixer

Chromixer

Browser Fingerprint Protection Extension

License: MIT Chrome Extension Manifest V3

PreviewFeaturesInstallationUsageArchitectureTesting


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

Chromixer Extension Popup

Extension popup showing real-time fingerprinting detection and statistics

Protection in Action

Fingerprint Detection

Popular fingerprinting library detecting each session as a new visitor - protection working as intended


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:

  1. Open chrome://extensions/
  2. Enable "Developer mode"
  3. Click "Load unpacked"
  4. Select the extension directory

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

  1. Early Injection - Executes at document_start
  2. Proxy Interception - JavaScript Proxy objects intercept APIs
  3. Native Appearance - Custom toString() maintains function appearance
  4. Session Randomization - Consistent per page, different per navigation
  5. 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:

  1. Fork and create feature branch
  2. Install dependencies: npm install
  3. Make changes and run tests
  4. 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.


RepositoryIssues

⭐ Star this project if you find it useful

About

Chrome extension that provides comprehensive browser fingerprint protection by defending against various tracking techniques used across the internet.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published