-
Notifications
You must be signed in to change notification settings - Fork 84
Any reasons not to remove built-in ABP filtering and asks users to install µBlock? #367
Comments
It's been my secret wish that HTTPSB would basically be without the "Adblock" + premade lists portion, but mine is the block-all-allow-exceptionally use case which I realise is not for everyone. So consider this a vote for splitting. |
👍 |
Split them! |
Does this mean that
and the functionality in the background is removed but everything else will stay as it is? |
Am I correct to assume that means µBlock will act as a ABP replacement. And httpsb will act as a no-script replacement for chrome/chromium browsers? I love this idea if that is the case. |
I must say I wouldn't like to see them splitted at all... -µBlock not available in Opera Web Store -> You have Opera and you haven't heard of this new addon? Too bad, you won't find it! :S Some months ago, I was "dreaming" about a tool close to HTTPSB which would be adapted to beginners, I wasn't really thinking of "just another" adblocker like µBlock (don't take it wrong, I also appreciate his work on it! ^^)... |
Interesting idea! Some thoughts/remarks to consider:
In sum, this idea has its benefits but there are also serious concerns |
I am one of those who does use ABP filtering and I am most concerned about the added overhead of another separate extension, as well as another button in my toolbar. I'm very averse to both. |
@tlu1024 "Which features are you thinking about?" Interactively creating filters with the mouse, disabling specific filters without disabling a whole list, having a choice of (say 4) filtering levels (instead of just on/off all) per site, etc.. There are many features specific to a blocker we can think of which would bloat HTTPSB, that would be just too much code and UI to fit in. To all: many users will never install HTTPSB, too technical, so I do not have choice to keep uBlock going separately (it has already almost twice more users than HTTPSB). The only way at this point to minimize workload is to try to create a core shared by both. Porting some code to fix #360 was not fun. So in the end on my side this is hard work I have to deal with, not feelings. And that is aside being asked to port to Firefox and to add even more features to both. I have no intention whatsoever to make these projects more than a hobby, and as such the benefit to users is that these projects will never be tainted by any other agenda. Is that such a downside to have to install two extensions instead of one (which is already the case anyway for whoever doesn't use HTTPSB or uBlock). Anyway, for now I will try to create a core which I could import as is in HTTPSB, and see how it goes. |
OK, already issues. What follows is technical but this is the reality of what I have to deal with. uBlock is able to hide blocked element on a page. To implement this, uBlock injects a content script in the web page. The content script works as follow: once the web page is loaded, or once a change occurs on the web page, the content script will ask the main uBlock process a list of all requests which were blocked, so that it can look-up which DOM elements have to be hidden. What that does mean, is that the main HTTPSB process will also have to be able to send a list of blocked requests when asked. However, for reason of efficiency, HTTPSB does not keep of usable copy of all requests blocked (these are reduced to a two-character token), so it cannot return such a list. This means two options: get rid of HTTPSB code which was written with reducing memory footprint in mind, or to not have element hiding in HTTPSB (issue #355, #298). See this is the kind of complications I have to deal with when trying to fit a lot of features in one package. That forces me to make choices which have negative side-effects, and which these are choices I would not have to make if it fitting all in one was not automatically perceived as a virtue. (Actually I am now second-guessing whether it is worth tokenizing the request URLs in HTTPSB.. Sigh) |
What is the best way to test out using µblock along side HTTPSB? Should I get µblock and keep using HTTPSB in |
Anyway you want, except that you would have to completely disable ABP filtering in HTTPSB (from the Ubiquitous rules tab) to get a real sense of how it would work as a complement to HTTPSB. |
Typically, a user using HTTPSB and uBlock would not enable redundant lists in uBlock. In such case, I expect that each extension's log of blocked requests won't overlap as a rule. |
No, one extension will not disable parts of the other. There is a limit to what any piece of software can do to try to be "convenient", it can easily become annoying (Clippy syndrom). A user installing HTTPSB is a technical user, I expect them to quickly configure their extensions to avoid overlaps -- so for uBlock, that would mean unchecking Peter Lowe's and Malware domain lists. HTTPSB would stop supporting EasyList and such to extract domain names. The way it's currently done doesn't even follow the semantic of the ABP filters, which is to not block the root document of whatever hostname is being filtered, and anyways the count of hostnames used in the matrix is rather low compared to other hosts lists, 1,357 for EasyList + EasyPrivacy. |
@tailHey "µBlock not available in Opera Web Store" I've just submitted a version complying with their requirements. |
Okay, what I meant: Say, a site contains the script
which is blocked in HTTPSB by default as it is in one of the hosts
If that website is one of the (rare) sites where you have to whitelist Of course, it would be presumably easier to disable all ubiquituous |
Ok, I won't split (not because I agree with exactly everything above, I just don't have the energy to debate endlessly: I still think it was the way to go to keep the code base sane). |
I definitely see where you're coming from - could this issue alone be solved by having both of them use a common library? |
Looks like there is no other way. Aside code complication, I just didn't see ABP-filtering fitting with HTTPSB's core. In HTTPSB the ABP-filtering engine is really separate from matrix filtering engine, they do not fit together at all, and if the ABP filtering engine was taken out and installed as another extension, overall results would be just the same, because both engines are connected serially inside HTTPSB. Add to this that cosmetic filtering is completely unrelated to security/privacy, which I want as core mission of HTTPSB. Whatever little details of "what-if" appeared kind of irrelevant to me when looking at the big picture: HTTPSB security/privacy, uBlock highly efficient mainstream blocker. So a library I have no choice, but this doesn't mean less work, whenever I make change to the library, I have to test both extensions, and so far I am the only tester before releasing to stores. |
Yeah, but it seems likely that a lot of people interested in the pure security/privacy part of HTTPSB will also be interested in blocking ads. And aside from the cosmetic filtering, the two aren't that far removed from a user perspective - for the most part, they both involve blocking network requests based on domains. The ABP filtering just tackles it a different way from the more control-oriented matrix style. Making it a library would also make it very easy to leverage in a Firefox extension without having to make a separate proxy. Also, I'd be happy to help out with anything I can. Maybe I can help with abstracting ublock into a library. |
Actually the more complicated one to "librarize" are the cosmetic filtering, because it needs separate scripts (two injected scripts, messaging back/forth with library in app). I've started looking at what needs to be done for ABP net filtering, this one is not too difficult. What scares me down the road is feature creep: start to support one thing, then users are going to expect a few more things to make that one thing better. Than whatever you add will lead to more. Etc. Feature creep is an excellent way to destroy a good product. I personally see focused and simpler as a virtue in software. Anyways, for now I will focus to librarize the parts. Moving on. |
Is there any way that I can help with one or the other libraries (net/cosmetic)? Or would you rather focus on it without distraction? |
Thanks for the offer, I think I am more productive when I just plow without distraction. I wouldn't refuse any offer to port uBlock to Firefox though ;-) |
Hm - this makes me almost feel bad.... I really hope that you don't have the impression that I was trying to outtalk you! I presented some issues which I regard as problems from a user's perspective. If you think that you can solve these problems or prove those arguments invalid or nonsense, please do so. I surely don't want you to feel bad, either. Besides, HTTPSB and µBlock are your babies, not ours. |
If you are going to make the individual parts into libraries anyway, I'll wait till that's done, then I'd be happy to based on those. |
I think that mental and code sanity for the developer should come first, as the current "I don't want to install another extension" argument seems like a weak reason to void both of those things. However, I see the appeal in avoiding an endless argument as well. Thanks for putting up with us @gorhill |
I use both the matrix filtering engine and ABP-style blocking to remove adverts that are loaded as part of the CSS or as images. If you can ensure both extensions function together without considerable overhead, you have my backing. I'd rather the code stay sane and maintainable myself. |
I can't agree with @maxrmp enough. I've been using HTTPSB with ublock for a while now and I don't see any slow-downs or glitches. This is how I see it, does I can see the reason why people may be upset about Though I can see why some users may want things to stay the way it is. I would say that using Again thank you @gorhill for your hard work. |
Discuss.
Here are my pros:
The text was updated successfully, but these errors were encountered: