Sees every image
A canvas pipeline reads pixels in two color spaces, scoring skin tones with YCbCr and HSV thresholds — even across cross-origin walls.
Open source · Manifest V3 · On-device
FitnaFilter blurs explicit imagery the instant it loads, blocks harmful domains at the gateway, and gently redirects you toward something better — all processed privately, on your own machine.
⟡ The Filter Engine ⟡
Every pixel and every link passes through a pipeline built for restraint — fast enough to feel invisible, strict enough to matter.
A canvas pipeline reads pixels in two color spaces, scoring skin tones with YCbCr and HSV thresholds — even across cross-origin walls.
Flagged imagery is repainted in your chosen tone before it ever fully renders. Harmful domains are stopped at onBeforeNavigate.
Instead of a cold block page, a blocked site sends you to a contextual verse of the Qur'an — a pause, not just a wall.
⟡ Try it live ⟡
No install needed. Flip protection on, pick a tone, dial the sensitivity — watch a mock feed transform exactly like the real thing. Click any covered tile to reveal it on purpose.
3 of 9 images flagged · click a covered tile to reveal
⟡ Real-time, in the page ⟡
Drag the handle. The left is the open web; the right is the web through FitnaFilter. The hover-eye lets you reveal anything on purpose — never by accident.
⟡ Everything in one shield ⟡
A dual color-space detector (YCbCr + HSV) finds explicit imagery and repaints it in white, black, or grey — your call. Optional facial-feature handling and a max-safe size keep it fast.
Harmful sites are stopped before the first byte loads via webNavigation. 500,000+ domains across 27 lists.
Blocked navigations land on a Qur'an verse matched to the moment.
Uncover any filtered element with a click — re-apply with one more.
Tune how images load site-by-site, with temporary or permanent exclusions.
No servers, no accounts, no telemetry. Every pixel is analysed on your device and never leaves it. There's no backend to leak — because there's no backend at all.
⟡ One click from the toolbar ⟡
The popup is for the moment you're in: pause protection, reveal filtered images, show background media, exclude a trusted site, or switch the cover tone without leaving the page.
The options page handles the calmer, permanent decisions: image-filter behavior, hover-eye controls, face-feature removal, safe-size thresholds, auto-unpause timing, saved exclusions, and which hazard or distraction blocklists should stay active.
Fast session controls, tab exclusions, reveal actions, and filter color.
Persistent defaults, blocklist toggles, exclusions, sensitivity, and auto-unpause.
⟡ 27 community blocklists ⟡
Sourced from The Block List Project and grouped by intent. Vice is always on; the rest is yours to shape.
The hard line. Non-negotiable categories that stay enabled by default.
Threats to your security and your data. Toggle what fits your threat model.
The attention economy. Mute the feeds and time-sinks you'd rather not visit.
⟡ Under the hood ⟡
Instead of a wall, a window
FitnaFilter does more than refuse a page. It gives the stop a reason: purity, restraint, accountability, and the quiet discipline of guarding what the eye is allowed to dwell on.
An-Nur 24:30
قُل لِّلْمُؤْمِنِينَ يَغُضُّوا مِنْ أَبْصَارِهِمْ وَيَحْفَظُوا فُرُوجَهُمْ ذَٰلِكَ أَزْكَىٰ لَهُمْ
The core command is direct: lower the gaze. The product exists to make that command easier before the moment becomes a struggle.
An-Nur 24:31
وَقُل لِّلْمُؤْمِنَاتِ يَغْضُضْنَ مِنْ أَبْصَارِهِنَّ وَيَحْفَظْنَ فُرُوجَهُنَّ
Guarding the gaze is not gendered as a burden. Everyone deserves tools that make modesty practical.
Al-Isra 17:32
وَلَا تَقْرَبُوا الزِّنَىٰ إِنَّهُ كَانَ فَاحِشَةً وَسَاءَ سَبِيلًا
The warning is about approach, not only arrival. Blocking near occasions of harm is part of the design.
Ghafir 40:19
يَعْلَمُ خَائِنَةَ الْأَعْيُنِ وَمَا تُخْفِي الصُّدُورُ
The eye can betray before the hand ever moves. Private browsing still deserves private accountability.
Al-Mu'minun 23:5
وَالَّذِينَ هُمْ لِفُرُوجِهِمْ حَافِظُونَ
Protection is an active habit. The extension helps turn intention into a default environment.
An-Nur 24:21
يَا أَيُّهَا الَّذِينَ آمَنُوا لَا تَتَّبِعُوا خُطُوَاتِ الشَّيْطَانِ
Harm often arrives as steps. FitnaFilter interrupts the trail early: ads, feeds, redirects, and sites that pull the gaze away.
⟡ Privacy is the architecture ⟡
FitnaFilter has no backend. Settings live in chrome.storage.sync, image analysis runs on a local canvas, and the only network calls are the ones the page already makes. Nothing about you is collected, stored, or sold — because there's nowhere for it to go.
⟡ Up and running in a minute ⟡
No web store yet — and that's fine. Loading unpacked keeps you on the bleeding edge and fully in control.
Clone or download the repository from GitHub.
git clone https://github.com/azidancorp/FitnaFilter.git
Visit chrome://extensions and switch on Developer mode (top-right).
Click Load unpacked and select the extension/ folder. The shield appears in your toolbar.
⟡ Questions ⟡
No. There is no backend and no telemetry. Image analysis runs on a local canvas in your browser and settings sync only through your own Chrome account via chrome.storage.sync.
Each image is drawn to a hidden canvas and scored pixel-by-pixel in two color spaces — YCbCr (Cb 85–128, Cr 142–180) and HSV (hue 0–32°, saturation >15%). Flagged regions are repainted in your chosen tone before the image fully renders.
It's open source and currently distributed via GitHub. You install it unpacked in Developer mode — see the steps above. A store listing may come later.
Yes. Use the popup to pause globally (Alt+P) or add per-site exclusions — temporary or permanent. Per-site image modes let you fine-tune individual domains.
Instead of a blank block page, you're redirected to a contextually chosen verse of the Qur'an — a moment to reset rather than just a closed door.
Free, open, and on-device. Add FitnaFilter to your browser and pass everything through the gate.
Works in any Chromium browser · Manifest V3 · MIT-spirited open source