adblock-rust
uBlock-issues
adblock-rust | uBlock-issues | |
---|---|---|
53 | 454 | |
1,280 | 862 | |
2.0% | 0.5% | |
8.2 | 4.6 | |
2 days ago | 25 days ago | |
Rust | ||
Mozilla Public License 2.0 | - |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
adblock-rust
-
In June 2024, ad blockers such as uBlock Origin will be disabled in Chrome 127
Brave has written their own (open source) adblock engine (in rust) that is directly integrated into the browser (ie. not an extension, so is not affected by Manifest V3).
https://github.com/brave/adblock-rust
Here is a (somewhat dated) article describing it by the authors:
https://brave.com/improved-ad-blocker-performance/
- Brave's Rust-based adblock engine
-
uBlock Origin 1.50.0
Brave has its own Rust implementation of an adblocker embedded in the browser: https://github.com/brave/adblock-rust; so it does not embed uBlock Origin (but the filters are mostly compatible)
Disclaimer: I work at Brave but not on the browser.
-
Does Brave now fully support Procedural Filtering or is uBlock still needed?
We support :has currently, which impacts many filters in EL and uBO. Some non-supported filters such as upward() can be manually converted over to use :has instead. The other unsupported procedual filters are a WIP will depend how easy/hard they are implement. No ETA, but have opened a ticket https://github.com/brave/adblock-rust/issues/293
-
Firefox extends its anti-tracking protection to Android
ublock on chromium and brave itself can't use all of the filters in that list: https://github.com/brave/adblock-rust/issues/4
-
take your daily medicine guys
It's open source https://github.com/brave/adblock-rust
-
$removeparam not working in filter lists
I've fixed this in the adblock engine as of https://github.com/brave/adblock-rust/commit/8a755bdb190bb55a3a3acee1e6507085051bdeec, and I'll push to get this patched in 1.47 soon. Thanks for the reports!
- How bad will the scope of *privacy* on the web be if firefox dies?
- Release Channel 1.47.171
uBlock-issues
-
:matches-path with pseudo-elements
There is an open issue for this: https://github.com/uBlockOrigin/uBlock-issues/issues/2786 uBO should report such filter as en error in Firefox, so that is the thing to fix.
-
Youtube ad block on pc (ublock origin)
This would be the price of one of the four CDNs (6000$ per month): https://github.com/uBlockOrigin/uBlock-issues/discussions/2958
-
Latest Dev build reset all settings and removed all custom filers lists
opened a bug report https://github.com/uBlockOrigin/uBlock-issues/issues/3003
- Disable "uBlock Origin has prevented the following page from loading:" page
-
📌 YouTube Anti-Adblock and Ads - November 12, 2023 (Mega Thread)
Current estimated cost for just ONE of uBO's CDNs: HERE. This is with other lists updating every few days. uBO's not a company, it's a volunteer project using free services, which have limits that we cannot cross.
-
How to block YT ads like a champ
The extension with the best success rate seems to be **uBlock Origin**. It is a community driven project with a team of volunteers, you can review the source code [here](https://github.com/gorhill/uBlock). You will need to update your filter lists regularly, this because Youtube changes detection methods daily. Here is how you do that:
-
Show HN: Bedframe – open-source Browser Extension Development framework
Definitely a much-needed area for development. However, having gone down the browser extension rabbit hole, I've largely shifted my focus to user scripts. Granted, there will always be a need for specialized browser extensions like ad blockers (uBlock[1]), keyboard shortcuts (Vimium-C[2]), and password managers (Bitwarden[3]).
That said, I find user scripts superior for most tasks, despite some lacking UI niceties. They are easier to share, use, and crucially, audit—be it in terms of scope, permissions, or code updates. Plus if Manifest V3 is any indicator, the future for browser extensions looks bleak. While I don't agree with this direction, it's probably for the best for the majority of users, like my mom.
Your effort is commendable; however, should you find yourself looking for a viable pivot in the future, I believe the user script space is primed for innovation and could offer a good alternative.
[1] https://github.com/gorhill/uBlock
-
Help me understand this code!
const defineProperty = function(chain, cValue, middleware = undefined) { let aborted = false; const mustAbort = function(v) { if ( aborted ) { return true; } aborted = (v !== undefined && v !== null) && (cValue !== undefined && cValue !== null) && (typeof v !== typeof cValue); return aborted; }; // https://github.com/uBlockOrigin/uBlock-issues/issues/156 // Support multiple trappers for the same property. // // trapProp is used to trap a single property within an object. const trapProp = function(owner, prop, configurable, handler) { if ( handler.init(owner[prop]) === false ) { return; } const odesc = Object.getOwnPropertyDescriptor(owner, prop); let prevGetter, prevSetter; if ( odesc instanceof Object ) { if ( odesc.configurable === false ) { return; } if ( odesc.get instanceof Function ) { prevGetter = odesc.get; } if ( odesc.set instanceof Function ) { prevSetter = odesc.set; } } Object.defineProperty(owner, prop, { configurable, //When a property is accessed (get), the custom getter function is called. get() { if ( prevGetter !== undefined ) { prevGetter(); } return handler.getter(); // cValue }, // When a property is modified (set), the custom setter function is called. set(a) { if ( prevSetter !== undefined ) { prevSetter(a); } handler.setter(a); } }); }; // trapChain is used to recursively trap properties along a chain of properties (e.g., object1.object2.property). const trapChain = function(owner, chain) { const pos = chain.indexOf('.'); if ( pos === -1 ) { trapProp(owner, chain, true, { v: undefined, init: function(v) { if ( mustAbort(v) ) { return false; } this.v = v; return true; }, getter: function() { return cValue; }, setter: function(a) { // Middleware is called when a property is set, allowing additional processing or validation of the new value. if (middleware instanceof Function) { cValue = a; middleware(a); } else { if ( mustAbort(a) === false ) { return; } cValue = a; } } }); return; } const prop = chain.slice(0, pos); const v = owner[prop]; chain = chain.slice(pos + 1); if ( v instanceof Object || typeof v === 'object' && v !== null ) { trapChain(v, chain); return; } trapProp(owner, prop, true, { v: undefined, init: function(v) { this.v = v; return true; }, getter: function() { return this.v; }, setter: function(a) { this.v = a; if ( a instanceof Object ) { trapChain(a, chain); } } }); }; trapChain(window, chain); }
- Firefox 115 can silently remotely disable my extension on any site
-
Why do my settings keep getting reverted?
Maybe https://github.com/uBlockOrigin/uBlock-issues/issues/2725 ?
What are some alternatives?
brave-browser - Brave browser for Android, iOS, Linux, macOS, Windows.
SponsorBlock - Skip YouTube video sponsors (browser extension)
uBlock - uBlock Origin - An efficient blocker for Chromium and Firefox. Fast and lean.
brave-core - Core engine for the Brave browser for mobile and desktop. For issues https://github.com/brave/brave-browser/issues
ungoogled-chromium - Google Chromium, sans integration with Google
ClearUrls
qutebrowser - A keyboard-driven, vim-like browser based on Python and Qt.
ClearURLs-Addon - ClearURLs is an add-on based on the new WebExtensions technology and will automatically remove tracking elements from URLs to help protect your privacy.
qtwebkit - Code in this repository is obsolete. Use this fork: https://github.com/movableink/webkit
icecat-win64
bypass-paywalls-chrome-clean-magnolia1234 - Bypass Paywalls Clean for Chrome (no Google Analytics, lot of updates/bug-fixes and custom sites)