Full MV3 port of uBlock Origin - An efficient blocker for Chromium and Firefox. Fast and lean.
See the codeuBlock Origin (uBO) is a CPU and memory-efficient wide-spectrum content blocker for Chromium and Firefox. It blocks ads, trackers, coin miners, popups, annoying anti-blockers, malware sites, etc., by default using EasyList, EasyPrivacy, Peter Lowe's Blocklist, Online Malicious URL Blocklist, and uBO filter lists. There are many other lists available to block even more. Hosts files are also supported. uBO uses the EasyList filter syntax and extends the syntax to work with custom rules and filters.
You may easily unselect any preselected filter lists if you think uBO blocks too much. For reference, Adblock Plus installs with only EasyList, ABP filters, and Acceptable Ads enabled by default.
It is important to note that using a blocker is NOT theft. Do not fall for this creepy idea. The ultimate logical consequence of blocking = theft is the criminalization of the inalienable right to privacy.
Ads, "unintrusive" or not, are just the visible portion of the privacy-invading means entering your browser when you visit most sites. uBO's primary goal is to help users neutralize these privacy-invading methods in a way that welcomes those users who do not wish to use more technical means.
| Basic Mode | Advanced Mode |
|---|---|
| The simple popup user interface for an install-it-and-forget-it type of installation that is configured optimally by default. | The advanced popup user interface includes a point-and-click firewall that is configurable on a per-site basis. |
![]() | ![]() |
Chrome 138 or newer is required. To install, add
"blockddmmcjpfkbhanlgegpmjpfpfjka;https://ublock.r58playz.dev/update.xml" to Chrome's
ExtensionInstallForcelist policy, or install manually and use the
--allowlisted-extension-id=blockddmmcjpfkbhanlgegpmjpfpfjka flag. This varies across operating systems and is
heavily restricted on Windows and macOS. The flag must be present on every launch. Unlike a policy install, the flag-based install does
not allow blocking handlers to return promises while uBO starts.
None of the restrictions described below exist on Linux, on either Chrome or Chromium.
/etc/opt/chrome/policies/managed/policy.json, or /etc/chromium/policies/managed/policy.json depending on your install.{ "ExtensionInstallForcelist": ["blockddmmcjpfkbhanlgegpmjpfpfjka;https://ublock.r58playz.dev/update.xml"] } into the file.Allow User Scripts in the extension's details page.Chrome refuses to force-install an extension from a non-Web-Store update URL unless the device has a management
authority it considers trustworthy. Merely writing the policy locally via platform policy locations like regedit or
plists does not establish that trust. Chrome shows the effective entry as [BLOCKED]... in chrome://policy.
This is the only way to get a full policy install, including promise-returning webRequestBlocking handlers.
/LDAPv3 or /Active Directory.If the device is managed through a domain or MDM, deploy the policy through that management system. A locally applied machine policy can also be used after Chrome recognises the device as managed:
HKEY_LOCAL_MACHINE\Software\Policies\Google\Chrome\ExtensionInstallForcelist,
add a string value named 1 (or the next free number), and set it to
blockddmmcjpfkbhanlgegpmjpfpfjka;https://ublock.r58playz.dev/update.xml.ExtensionInstallForcelist, as an array containing
blockddmmcjpfkbhanlgegpmjpfpfjka;https://ublock.r58playz.dev/update.xml, to
/Library/Managed Preferences/com.google.Chrome.plist.Then restart the browser and enable Allow User Scripts in the extension's details page. If chrome://policy still
shows the value with a [BLOCKED] prefix, the device is not being recognised as managed.
This works on any unmanaged Windows or macOS machine, but the extension ends up installed as an ordinary extension
rather than by policy. Promise-returning webRequestBlocking handlers are therefore unavailable. While uBO starts,
subresource requests are temporarily cancelled and affected tabs may be reloaded instead of requests being held until
the filtering engine is ready.
On branded Google Chrome, the packaged CRX must also be added to the machine-level ExtensionInstallAllowlist policy
so Chrome does not disable it after installation. This is not needed for unbranded Chromium. The allowlist does not
install the extension or replace the launch flag.
ExtensionInstallForcelist entry for this extension.blockddmmcjpfkbhanlgegpmjpfpfjka to the machine-level ExtensionInstallAllowlist policy:
HKEY_LOCAL_MACHINE\Software\Policies\Google\Chrome\ExtensionInstallAllowlist, add a string value named 1 (or the next free number), and set it to the extension ID.ExtensionInstallAllowlist, as an array containing only the extension ID, to /Library/Managed Preferences/com.google.Chrome.plist.chrome://policy.--allowlisted-extension-id=blockddmmcjpfkbhanlgegpmjpfpfjka. Chrome will show an unsupported
command-line flag warning; do not suppress it with --test-type, which changes other browser behaviour.chrome://extensions, enable Developer mode, then drag the CRX onto the page and approve the installation.Allow User Scripts in the extension's details page. Wait for the ! badge to clear; reload the extension
if it does not.The flag is what makes Chromium grant the MV3 webRequestBlocking permission to this extension. Chrome must be
started with it every time.
declarativeNetRequest. The existing engine runs in an MV3
service worker and returns blocking decisions through webRequest.webRequestBlocking to MV3 extensions only when they are installed by policy. The
--allowlisted-extension-id flag bypasses that permission check, but does not turn a manual install into a policy
install.
chrome.tabs.executeScript, chrome.tabs.insertCSS, and chrome.tabs.removeCSS are implemented with
chrome.scripting and chrome.userScripts.XMLHttpRequest shims provide the background-page APIs uBO uses, and a periodic extension API call
keeps the service worker active.Help translate uBO via Crowdin.
Free. Open-source. For users by users. No donations sought.
If you ever want to contribute something, think about the people working hard to maintain the filter lists you are using, which are available to use by all for free.
(top 30 of 111)
JavaScript
89.1%
CSS
4.7%
HTML
3.4%
WebAssembly
2.0%
Full MV3 port of uBlock Origin - An efficient blocker for Chromium and Firefox. Fast and lean.
See the codeuBlock Origin (uBO) is a CPU and memory-efficient wide-spectrum content blocker for Chromium and Firefox. It blocks ads, trackers, coin miners, popups, annoying anti-blockers, malware sites, etc., by default using EasyList, EasyPrivacy, Peter Lowe's Blocklist, Online Malicious URL Blocklist, and uBO filter lists. There are many other lists available to block even more. Hosts files are also supported. uBO uses the EasyList filter syntax and extends the syntax to work with custom rules and filters.
You may easily unselect any preselected filter lists if you think uBO blocks too much. For reference, Adblock Plus installs with only EasyList, ABP filters, and Acceptable Ads enabled by default.
It is important to note that using a blocker is NOT theft. Do not fall for this creepy idea. The ultimate logical consequence of blocking = theft is the criminalization of the inalienable right to privacy.
Ads, "unintrusive" or not, are just the visible portion of the privacy-invading means entering your browser when you visit most sites. uBO's primary goal is to help users neutralize these privacy-invading methods in a way that welcomes those users who do not wish to use more technical means.
| Basic Mode | Advanced Mode |
|---|---|
| The simple popup user interface for an install-it-and-forget-it type of installation that is configured optimally by default. | The advanced popup user interface includes a point-and-click firewall that is configurable on a per-site basis. |
![]() | ![]() |
Chrome 138 or newer is required. To install, add
"blockddmmcjpfkbhanlgegpmjpfpfjka;https://ublock.r58playz.dev/update.xml" to Chrome's
ExtensionInstallForcelist policy, or install manually and use the
--allowlisted-extension-id=blockddmmcjpfkbhanlgegpmjpfpfjka flag. This varies across operating systems and is
heavily restricted on Windows and macOS. The flag must be present on every launch. Unlike a policy install, the flag-based install does
not allow blocking handlers to return promises while uBO starts.
None of the restrictions described below exist on Linux, on either Chrome or Chromium.
/etc/opt/chrome/policies/managed/policy.json, or /etc/chromium/policies/managed/policy.json depending on your install.{ "ExtensionInstallForcelist": ["blockddmmcjpfkbhanlgegpmjpfpfjka;https://ublock.r58playz.dev/update.xml"] } into the file.Allow User Scripts in the extension's details page.Chrome refuses to force-install an extension from a non-Web-Store update URL unless the device has a management
authority it considers trustworthy. Merely writing the policy locally via platform policy locations like regedit or
plists does not establish that trust. Chrome shows the effective entry as [BLOCKED]... in chrome://policy.
This is the only way to get a full policy install, including promise-returning webRequestBlocking handlers.
/LDAPv3 or /Active Directory.If the device is managed through a domain or MDM, deploy the policy through that management system. A locally applied machine policy can also be used after Chrome recognises the device as managed:
HKEY_LOCAL_MACHINE\Software\Policies\Google\Chrome\ExtensionInstallForcelist,
add a string value named 1 (or the next free number), and set it to
blockddmmcjpfkbhanlgegpmjpfpfjka;https://ublock.r58playz.dev/update.xml.ExtensionInstallForcelist, as an array containing
blockddmmcjpfkbhanlgegpmjpfpfjka;https://ublock.r58playz.dev/update.xml, to
/Library/Managed Preferences/com.google.Chrome.plist.Then restart the browser and enable Allow User Scripts in the extension's details page. If chrome://policy still
shows the value with a [BLOCKED] prefix, the device is not being recognised as managed.
This works on any unmanaged Windows or macOS machine, but the extension ends up installed as an ordinary extension
rather than by policy. Promise-returning webRequestBlocking handlers are therefore unavailable. While uBO starts,
subresource requests are temporarily cancelled and affected tabs may be reloaded instead of requests being held until
the filtering engine is ready.
On branded Google Chrome, the packaged CRX must also be added to the machine-level ExtensionInstallAllowlist policy
so Chrome does not disable it after installation. This is not needed for unbranded Chromium. The allowlist does not
install the extension or replace the launch flag.
ExtensionInstallForcelist entry for this extension.blockddmmcjpfkbhanlgegpmjpfpfjka to the machine-level ExtensionInstallAllowlist policy:
HKEY_LOCAL_MACHINE\Software\Policies\Google\Chrome\ExtensionInstallAllowlist, add a string value named 1 (or the next free number), and set it to the extension ID.ExtensionInstallAllowlist, as an array containing only the extension ID, to /Library/Managed Preferences/com.google.Chrome.plist.chrome://policy.--allowlisted-extension-id=blockddmmcjpfkbhanlgegpmjpfpfjka. Chrome will show an unsupported
command-line flag warning; do not suppress it with --test-type, which changes other browser behaviour.chrome://extensions, enable Developer mode, then drag the CRX onto the page and approve the installation.Allow User Scripts in the extension's details page. Wait for the ! badge to clear; reload the extension
if it does not.The flag is what makes Chromium grant the MV3 webRequestBlocking permission to this extension. Chrome must be
started with it every time.
declarativeNetRequest. The existing engine runs in an MV3
service worker and returns blocking decisions through webRequest.webRequestBlocking to MV3 extensions only when they are installed by policy. The
--allowlisted-extension-id flag bypasses that permission check, but does not turn a manual install into a policy
install.
chrome.tabs.executeScript, chrome.tabs.insertCSS, and chrome.tabs.removeCSS are implemented with
chrome.scripting and chrome.userScripts.XMLHttpRequest shims provide the background-page APIs uBO uses, and a periodic extension API call
keeps the service worker active.Help translate uBO via Crowdin.
Free. Open-source. For users by users. No donations sought.
If you ever want to contribute something, think about the people working hard to maintain the filter lists you are using, which are available to use by all for free.
(top 30 of 111)
JavaScript
89.1%
CSS
4.7%
HTML
3.4%
WebAssembly
2.0%