Closed brampitoyo closed 5 years ago
Some early UI concepts:
After conversation with Amin, I’ve revised the UI:
This issue is just about the UI, but I’m particularly curious to hear from @pocmo @ekager @boek about:
Note that this simplified UI will become necessary only after we build more blocking features.
Some of these features are things that we’re already considering in other products:
Some of these features may not ship in other products, but is highly relevant for a privacy-centred, distraction-less product like Firefox Focus:
@bbinto @ekager @boek what do you think about opening a separate issue to discuss these blocking features? Some we can already build today, some may not be possible at all, and some may only be possible after we ship GeckoView.
I think that's a great idea, @brampitoyo - please go ahead and file those issues and leave them un-labeled so we can discuss in triage etc.
As for this ticket, I'll put a blocked label on it and move it to the backlog again.
Great ideas/work, Bram!
Filed #2768 to discuss developing more blocking features.
Note that this simplified UI will become necessary only after we build more blocking features.
@bbinto With that and #2768 not being in 7.0 I think this here doesn't need to be either?
Oops, I just saw you removed the 7.0 milestone and not added it.
The UI has been updated to account for the fact that Tracking Protection has been renamed to “Content Blocking” on desktop, and that we want it to be really inclusive and cover a lot of things (which includes autoplay, cookies, webfonts, javascript, etc.)
IMO there should be "Fanboy Ultimate List" + option to use custom filters (URL to filters .txt)
@runboy93 Agreed on both points!
Having the ultimate list means that the user doesn’t need to turn on a bunch of other lists.
Having the ability to add custom filters means that the user can customise Content Blocking to their hearts content.
However, the really big questions are:
Updated UI slightly. See notes for details.
Some notable features:
Updated UI to include some icons from Firefox for Desktop Content Blocking, and some newly designed/adapted icons for Ads, Autoplay, Webfonts, JavaScript and Unencrypted Pages.
Updated UI based on earlier directions that was never explored thoroughly.
The idea is to separate all of our Content Blocking settings into three “big categories” that are easy to comprehend and control.
Under it, there are few sub-categories:
It contains two options:
It contains an ON/OFF toggle.
This control hides a section that you don’t need to worry about most of the time.
When you tap it, it expands into:
Forgoing the simplistic “Recommended vs. Manual Control” model has a few benefits:
CC @vesta0
Updated the mockup to:
This brings us to parity with desktop, and makes ad-blocking easier to turn on (less hidden).
We will almost certainly block more things in the future. When we do that, we should re-evaluate how these sections are organised. The aim is to keep the Setting simple, minimal, and able to function well without any customisation (turning it on is all you need to get a good level of blocking).
Just to clarify our Content Blocking policy:
I think the major problem with blocklists is that even those from "reputable" sources can potentially cause fasle-positives (especially aggressive ones like fanboy's enhanced tracking list). And (at least) non-experienced adblock users can't usually do much about it, since it might be hard for them to figure out which particular rules cause the false-positives. That's why I think it would be great to add an UI to see which network requests are blocked on the website you visit by blocklist's rules, so you can whitelist those rules if they case problems.
@dimqua Do you have any recommendation of blocklists that we should enable by default once you turn on the “Ads” subcategory?
For “enhanced” protection, we can try adding Adblock Warning Removal List and Malware Domains, but I’m not sure if they will create more false positives than we can afford?
So, to be on the safe side, we should use EasyList, EasyPrivacy and locale-specific lists.
As for the rest of the lists that are more aggressive (Fanboy’s Enhanced Tracking List, Fanboy’s Annoyance List, Fanboy’s Cookiemonster, etc.), I’m pretty sure that we shouldn’t enable them by default.
I’m hoping that, if users know “When the site looks wrong, turn off Content Blocking”, it would be enough to solve the problem. It’s not perfect, of course. There’s no network request info available. But it’s simple, and it fixes the problem without too much fuss.
Thoughts?
Disconnect’s Cryptomining list
What is it?
For “enhanced” protection, we can try adding Adblock Warning Removal List
I'm not sure whether anti-adblock filter lists (as well as any other anti-annoyances lists) should be enabled by default, but you may also consider ABP Anti-CV and Fanboy's problematic-sites filter lists as an options.
So, to be on the safe side, we should use EasyList, EasyPrivacy and locale-specific lists.
You may also want to enable some of the Adguard's lists, such as English filter, Spyware filter or Mobile ads filter (sadly, I don't know any other mobile and browser -specific blocklists, but there're more general ones though, like MobileAdTrackers). There is also Disconnect ad filter list (isn't it currently uses by default?).
it would be enough to solve the problem
Another available solution is using additional whitelist filter lists, such as uBlock Origin Unbreak, Brave Unblock or/and you can maintain your own. :-) See also this list of commonly white listed domains.
Updated the ad blocking mockups with two separate proposals (I’ll update the rest of the flow accordingly, after we agree on a proposal for ad blocking):
Is there a possibility to use custom filter lists?
It's probably better to not combine EasyList and EasyPrivacy filters, and move the latter one to Trackers category. Since EasyPrivacy is not focus on blocking ads (advertisements), it blocks tracking, see their policy.
Hi @dimqua,
Unfortunately, ad blocking will not be able to be implemented the way we would’ve liked it.
We all know how ad blocking work, but here’s a short refresher primer just in case (and for anybody else who’s reading this issue).
We believe that ad blocking is going to improve so many lives, that we want it to be implemented straight away.
In order for this to happen, we can only use the same method that’s already implemented by Tracking Protection: we can block network requests (number 3), but we cannot hide elements (number 4 and 5).
It’s not perfect, but it’s still going to make pages load faster and save bandwidth/battery. And most importantly, it can be improved when we have time to implement element hiding using future technology currently unavailable to us.
To do this, we have to take each filter list in raw/text format, strip-off all the element hiding parts, and adapt the list of network requests that are left to a format that Focus can understand. Unfortunately, this process cannot happen on each individual device. We will have to do it from our end.
Because we have to process each filter list that we choose to ship with Firefox Focus, we have to be judicious. We want to ship filters that will be most useful, but we cannot ship too many filters because it would also be too many for us to maintain.
When our future ad blocking technology is able to understand both blocking network requests and element hiding rules, then we don’t have to process each file on our end. The user’s device can do it. When that’s the case, then using any arbitrary custom filter list becomes possible.
Until then, we can only implement a subset of any filter. And in that case, we can’t even say “EasyList”. We can only say “Based on EasyList”.
Hope this is a good explanation of our situation!
@dimqua One additional question for you: if we already implement Disconnect.me’s lists by default, do we still need EasyPrivacy – assuming the two does similar things, which is to block trackers?
My thinking is that we still want EasyPrivacy, just in case Disconnect.me misses aything. But it would be confusing for EasyPrivacy to be combined with other lists inside “Tracking Protection”. This was why I thought that maybe it should just be bundled together with EasyPrivacy. Thoughts?
@boek @ekager After discussion with @vesta0, I’ve updated the ad blocking UI to further simplify it. Feel free to disregard my two proposals up above.
It looks like this:
it can be improved when we have time to implement element hiding
Good to hear that!
we have to take each filter list in raw/text format, strip-off all the element hiding parts, and adapt the list of network requests that are left
But it can be done by someone else too, in theory. It means, you can provide a possibility to load custom lists in supported format. However, I'm not sure if it would be useful even for advanced users.
This was why I thought that maybe it should just be bundled together with EasyPrivacy. Thoughts?
EasyPrivacy probably contains too much entities to be bundled with other "Tracking Protection" lists, e.g. this pre-processed version of EasyPrivacy contains more than 6k domains. You may want to use a version of EasyPrivacy without international filters, but I think it's still bigger than all Disconnect.me’s lists combined.
Do you have any plans to add and maintain any language-specific blocklists? There are plenty of them.
@dimqua wrote:
Do you have any plans to add and maintain any language-specific blocklists? There are plenty of them.
If we get the ability to not only block network requests but also hide elements, then shipping more blocklists (including language-specific ones) will be possible.
For starters, we’ll no longer have to ship our own version of blocklists without element hiding rules. This will make including new lists easy.
Why/User Benefit/User Problem
With the settings re-org, we will gather all of our Privacy and Security settings in one section.
As we build more blocking settings – block autoplaying audio/video, ads/banners, pre/interstitials, third-party cookies, etc. – it becomes harder and harder to know:
The aim for this UI is to:
By making Focus more secure and making its security options more accessible to more users, we will increase the product’s usage (average time spent, MAU/DAU, ratings, etc.) as well as usability.
What / Requirements
Acceptance Criteria (how do I know when I’m done?)
The user has a rough understanding of what each option means, and which one is right to select for their use case.