OtterBrowser / otter-browser

Otter Browser aims to recreate the best aspects of the classic Opera (12.x) UI using Qt5
https://otter-browser.org
GNU General Public License v3.0
1.83k stars 277 forks source link

Content blocking #206

Closed manushanga closed 10 years ago

manushanga commented 10 years ago

The browser is lacking ad block support, if included will add massive value to the browser since it's lean and featureful.

jasonliul commented 10 years ago

i think adblock plus has very open mind now, they made adblock for IE, Safari, Android, K-Meleon[even its beta build]...

When otter beta released, maybe we can just ask Wladimir to do this.

hauru commented 10 years ago

What i'd like best, personally, is simple integrated pattern-based blocking. It was almost perfect in old Opera, with only shortcoming being the lack of regex support. Would be very nice if no plugins were required for this task.

Decme commented 10 years ago

"High priority / ASAP:

Medium priority / soon:

There's something wrong with this roadmap. Content blocking should be right at the top of the highest priority list. Start page by comparison is negligible. Sure it's something most of us want eventually, but it's not really so important. I don't even use password managers (don't trust 'em)

At least delaying flash objects is in the highest priority list, as it should be as flash is a security risk and increases chance of browser crashes (at least going by Firefox's experience)

Edit: as far as content blocking goes, we need some means (built in or extension, I'm not too fussed) of subscribing to lists like EasyList and FanBoy's list. It's much easier for most people to use predetermined lists. In fact something I'd like to see is for Otter to have EasyList enabled by default. Other browsers don't have adblocking enabled by default and I cannot fathom why. Legal reasons? You're open source, you can do whatever the hell you like.

Emdek commented 10 years ago

@jasonliul, I would like to have basic support before beta, main blocker is efficient way to store rules (SQLite? custom?).

@hauru, the problem with full support for regular expressions is that it slows down matching, that could become visible (as slowing down, higher CPU usage) when there would lots of rules using them.

@Decme, it could be done earlier, especially if someone would help with that (efficient storage and fast matching of URLs). ;-) Subscriptions support could be added later. By default there should be no rules enabled or only these that block really broken or annoying ads.

manushanga commented 10 years ago

I'd like if you guys are not going to use SQLite, I do not have an alternative in my mind either. SQLite is the reason for Firefox and Chrome's (not that visible) slownesses after you get a long enough history list. Either you'll have to add auto vaccuming or use another db system to get around it. I do recommend going custom.

        - Madura A.

On Sat, Mar 8, 2014 at 2:01 AM, Michał notifications@github.com wrote:

@jasonliul https://github.com/jasonliul, I would like to have basic support before beta, main blocker is efficient way to store rules (SQLite? custom?).

@hauru https://github.com/hauru, the problem with full support for regular expressions is that it slows down matching, that could become visible (as slowing down, higher CPU usage) when there would lots of rules using them.

@Decme https://github.com/Decme, it could be done earlier, especially if someone would help with that (efficient storage and fast matching of URLs). ;-) Subscriptions support could be added later. By default there should be no rules enabled or only these that block really broken or annoying ads.

— Reply to this email directly or view it on GitHubhttps://github.com/Emdek/otter/issues/206#issuecomment-37064619 .

vlad-ivanov-name commented 10 years ago

@manushanga

Do you have any performance comparison tests? Also, it's a bit pointless saying «do not use sqlite» while you can't suggest any usable alternative.

manushanga commented 10 years ago

@resetnow I searched now and found these, http://stackoverflow.com/questions/417917/alternatives-to-sqlite http://www.oracle.com/technetwork/database/berkeleydb/bdb-sqlite-comparison-wp-176431.pdf

        - Madura A.

On Sat, Mar 8, 2014 at 1:41 PM, resetnow notifications@github.com wrote:

@manushanga https://github.com/manushanga

Do you have any performance comparison tests? Also, it's a bit pointless saying <> while you can't suggest any usable alternative.

Reply to this email directly or view it on GitHubhttps://github.com/Emdek/otter/issues/206#issuecomment-37092175 .

vlad-ivanov-name commented 10 years ago

@manushanga

Oracle B2B is a key-value storage, and therefore this is not a correct comparison. Note that using non-relational database will require a different approach to the development process.

Also, SQLite is widely used even in embedded applications, Android and iOS.

SQLite is the reason for Firefox and Chrome's (not that visible) slownesses after you get a long enough history list

Can you provide any profiling results? There are thousands of reasons why browser slows down; to say «SQLite is slow», you have to be sure that SQLite is the performance bottleneck.

manushanga commented 10 years ago

https://bugzilla.mozilla.org/show_bug.cgi?id=395020 https://bugzilla.mozilla.org/show_bug.cgi?id=512854 https://bugzilla.mozilla.org/show_bug.cgi?id=750781

        - Madura A.

On Sat, Mar 8, 2014 at 3:29 PM, resetnow notifications@github.com wrote:

@manushanga https://github.com/manushanga

Oracle B2B is a key-value storage, and therefore this is not a correct comparison. Note that using non-relational database will require a different approach to the development process.

Also, SQLite is widely used even in embedded applications, Android and iOS.

SQLite is the reason for Firefox and Chrome's (not that visible) slownesses after you get a long enough history list

Can you provide any profiling results? There are thousands of reasons why browser slows down; to say <>, you have to be sure that SQLite is the performance bottleneck.

Reply to this email directly or view it on GitHubhttps://github.com/Emdek/otter/issues/206#issuecomment-37093926 .

lollox commented 10 years ago

Only an hint: can't the adblock feature integrated in QupZilla be used without the need to rewrite it from scratch? ... If possible this job could be really less time waster I suppose

Decme commented 10 years ago

"By default there should be no rules enabled or only these that block really broken or annoying ads."

Erm... why? Does anyone actually enjoy viewing ads? On Firefox I have adblock edge with EasyList, EasyPrivacy, Fanboy's annoyances, Fanboy's social blocking, Malware domains, and my own custom rules. Ads are the bane of the Internet and I feel you'd go a long way by going armageddon on ads by default.

Every "casual" Internet user who tries Otter will then remember Otter without all those pesky ads they see in other browsers.

Piter432 commented 10 years ago
By default there should be no rules enabled or only these that block really broken or annoying ads.

Erm... why? Does anyone actually enjoy viewing ads?

I enjoy viewing ads only for YouTube or sites like bechnmark.pl (polish site about technology) ;)

lollox commented 10 years ago

@Decme: enabling a list by default is wrong... having adblock feature integrated is yet enough but you can't change the web of other users without their explicit agreement

and, however, using a behavior so aggressive like your is the worst thing AB and its clones have done in their life... lot of sites live (and give you contents) because of the ads.... block annoying ones is OK but block all is simply the end of Internet (or you'll have to pay for every site you visit)

Emdek commented 10 years ago

@manushanga, while SQLite is not perfect there are no real and readily available alternatives.

@lollox, it is not so hard to implement it, but it is harder to decide in which way it should be done (storage). ;-)

@Decme, it should be up to the user to make that decision, after all it is kind of censorship. ;-) And incorrect or outdated rules can lead to valuable content being blocked too.

hauru commented 10 years ago

@Emdek. Yeah, you're probably right. If there are hundreds of rules, scanning each URL against even a half of them would slow things down noticeably. Basically rules would have to be evaluated one by one in such case. Besides, Opera-style expressions, with just plain wildcards, will probably suffice for most cases. What can be considered though is adding a setting for each rule that would optionally make it interpreted as a regex.

Regarding storage of the rules, why not do it with simple text files? The list has to be loaded into memory anyway, i imagine. Simpler format means quicker loading. SQLite may be fast but it's probably still slower than plain text.

And i agree that there should be no rules enabled by default.

Emdek commented 10 years ago

@hauru, if we would go for SQLite then it would be used for matching too (not just storage), in theory it should be optimized for that. ;-) And yes, some kind of flag would be sufficient to mark rules relying on full regular expressions but these had to be handled separately (SQLite doesn't support regular expressions matching by default).

vermaden commented 10 years ago

I would also add NoScript like functionality.

AdBlock is one great thing, NoScript is another one.

ghost commented 9 years ago

For (southpark) videos to watch, I have to disable EasyList globally. The context menu disbles it globally. Why not per-site content blocking selection?

Emdek commented 9 years ago

@fguzm, it's already available, but no exposed in UI yet. You need to add custom entry to override.ini in profile directory, something like this:

[southpark.cc.com]
Content\BlockingProfiles=list,of,profiles

Just copy value from otter.conf and remove easylist.

Yodzeity commented 6 years ago

What's the state of this?

Emdek commented 6 years ago

@Yodzeity, done, but still missing support for few more complex rules, see #1221.