GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - r2ality/core: Chromium MV3 extension (Chrome/Chromium 120+).

BranchesTags
Open more actions menu

Latest commit

 

History

22 Commits
22 Commits

Folders and files

NameName
Last commit message
Last commit date
android
android
 
 
pics
pics
 
 
INSTALLATION.md
INSTALLATION.md
 
 
LICENSE
LICENSE
 
 
README.md
README.md
 
 
background.js
background.js
 
 
canvas.js
canvas.js
 
 
inject.js
inject.js
 
 
manifest.json
manifest.json
 
 
relay.js
relay.js
 
 
rules.json
rules.json
 
 

Repository files navigation

Core

Chromium MV3 extension (Chrome/Chromium 120+).

Status

Working on Windows, Linux and FreeBSD, running any kind of chromium browser. Tested in Ungoogled Chromium.

Works on Android, support has been added on version 1.2.0. Tested in Ungoogled Chromium, LineageOS (Android port).

See:

PC Demo Android Demo

Install

  1. Open chrome://extensions
  2. Enable Developer mode
  3. Load unpacked and select this fingerprint-shield folder (after updating files, press the reload icon on the extension card)

Read the installation guide in case you're having issues.

What it does

  • Canvas (Tor Browser style): reading canvas pixels (toDataURL, toBlob, getImageData, OffscreenCanvas.convertToBlob, WebGL readPixels) returns a blank white image of the same size. Drawing and on-screen rendering are unaffected.
    • When a page tries to read, the toolbar icon shows an orange C (Tor's permission prompt).
    • Click the icon to allow canvas reads on that site; it reloads and shows a green OK. Click again to block it again. Allowed sites are stored in chrome.storage.local.
  • WebGL: spoofed unmasked vendor/renderer. Set CONFIG.webgl.mode = "block" in inject.js to refuse WebGL entirely
  • Timezone: offset 0, all local Date getters/setters/strings behave as UTC, Intl defaults to UTC
  • Language: navigator.language(s) = en-US, ["en-US","en"]; Intl/toLocaleString default to en-US
  • Network: Accept-Language: en-US,en;q=0.9, plus DNT and Sec-GPC headers (declarativeNetRequest)
  • Hardening (chrome.privacy): WebRTC IP leak protection, no network prediction, hyperlink auditing off, Topics/FLEDGE/ad-measurement/related-website-sets off, autofill not exposed to pages

All page-side patches run in the MAIN world at document_start in every frame, before page scripts.

Files

  • inject.js - timezone, language, WebGL strings (static content script)
  • canvas.js - canvas readback blocking (registered dynamically; skipped for allowed sites)
  • relay.js - forwards "canvas read blocked" events to the background for the badge
  • background.js - allow-list, badge, chrome.privacy hardening
  • rules.json - request header rewriting

Limits (JavaScript-level spoofing)

  • Web Workers / Service Workers are not patched (extensions cannot inject into them before they start)
  • Sandboxed iframes and data: frames may not receive the scripts
  • Sites that legitimately export canvases (image editors, QR/chart "download" buttons) get a blank image until allowed
  • A determined site can detect JS-level spoofing; it reduces fingerprint entropy, not guarantees anonymity

Closing the worker gap (recommended)

Launch Chromium with the real timezone and language set at process level:

TZ=UTC chromium --lang=en-US --accept-lang=en-US

PC Demo (NixOS, Ungoogled Chromium).

Picture 1 Picture 2 Picture 3

Android Demo (LineageOS, Ungoogled Chromium, Android port).

Picture 1 Picture 2 Picture 3

About

Chromium MV3 extension (Chrome/Chromium 120+).

Topics

chrome-browserchrome-devtoolschrome-extensionchrome-extensionschromiumchromium-browserchromium-extensionchromium-extensionsextensionextension-chromeextensions-chromefingerprintfingerprintingtortor-browserungoogledungoogled-chromium

Resources

Readme
BSD-3-Clause license
Activity

Stars

1 star

Watchers

0 watching

Forks

0 forks
Report repository

Releases

Packages

Contributors

Languages

You are visitor 01402520 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.