This document explains how BingBeGone works internally.
Or at least how it works when Chrome is behaving itself.
BingBeGone is a lightweight Manifest V3 browser extension that intercepts Bing search navigations and redirects them to a user-selected search engine.
The extension operates entirely client-side.
No backend. No cloud infrastructure. No Kubernetes cluster held together by fear. No AI microservice named βOrchestrator.β
Just browser code.
Windows / App / User
β
Opens Bing Search URL
β
Browser navigates to:
bing.com/search?q=...
β
BingBeGone detects navigation
β
Extract search query
β
Build replacement URL
β
Redirect OR show redirect page
β
Open preferred search engine
extension/
ββ assets/
ββ background.js
ββ defaults.js
ββ manifest.json
β
ββ lib/
β ββ redirectBuilder.js
β ββ storage.js
β ββ urlParser.js
β
ββ pages/
β ββ options.html
β ββ options.js
β ββ redirect.html
β ββ redirect.js
β ββ redirect.css
β
ββ popup/
ββ popup.html
ββ popup.js
ββ popup.css
background.jsMain extension service worker.
Responsibilities:
This is effectively the extensionβs brain.
Which is unfortunate because it is JavaScript.
urlParser.jsResponsible for:
Example:
Input:
https://www.bing.com/search?q=snakes
Output:
{
query: "snakes"
}
redirectBuilder.jsConstructs the final redirect destination.
Example:
google:
https://www.google.com/search?q=snakes
Supports:
storage.jsHandles settings persistence.
Uses:
chrome.storage.localchrome.storage.syncSettings include:
The popup provides:
It exists because users enjoy buttons.
The options page handles:
This is where power users become dangerous.
Optional interstitial page shown before redirecting.
Purpose:
Useful for:
Because Google said so.
Also:
Also because Manifest V2 is being slowly marched into the forest.
BingBeGone uses:
chrome.webNavigation.onBeforeNavigate
This allows the extension to:
Only Bing domains are monitored.
The extension does not inspect unrelated browsing activity.
declarativeNetRequest works best for static redirects.
BingBeGone requires:
Using navigation listeners provides more flexibility with simpler logic.
Also the debugging experience is approximately 700% less painful.
BingBeGone intentionally minimizes:
The extension:
All processing occurs locally.
Like a civilized utility.
The extension is effectively idle most of the time.
Processing only occurs when:
Typical workload:
Measured resource usage: βbasically nothingβ
Scientific.
Officially supported:
Compatible with most Chromium browsers supporting:
Including:
Potentially:
Potential future features:
Potentially NOT future features: