Code at https://github.com/mozilla-mobile/focus - feel free to file issues/bugs/questions on Github. We primarily use Bugzilla for this project, but happy to move bugs around.
I only see it supporting yahoo. I didn't try very hard but in the settings there is no way to change it from yahoo, which is really frustrating. Did I overlook something?
Due to time constraints we could not go beyond the defaults that we currently have. We have a bug open to allow people to select an alternative search engine: https://bugzilla.mozilla.org/show_bug.cgi?id=1318359
It is complicated. Here is the story of two WebView implementations in iOS:
Firefox is based on the WKWebView. Modern and Fast, but has a very poor (thin) API. It has zero options for interacting with the network stack, which is a requirement for content blocking. Bugs have been open since iOS 8, Apple does not seem to be interested or does not have the resources to surface more API. All the APIs are in WKWebView, just private.
Focus uses the older UIWebView. Slow, but better ability to interact with the network layer. Not ideal, but at least it is possible.
So to answer your question: We would have to replace WKWebView in Firefox for UIWebView. We've been very close to doing this in some form. But it is is big compromise in terms of functionality and stability. So I am not sure when and in what form that will happen.
That's pretty ridiculous for Apple, I understand they make it for safety purposes but they can't deny it also gives them an unfair software advantage. Kind of like old Microsoft and it's private undocumented APIs.
There is a way to interact with the network latyer even when using WKWebView. Since iOS9 there are the Network Extension APIs which allow you to access (and modify/filter) raw packet data.
Yeah we know these things exist. I just don't think using a VPN or a global Network Extension or a global HTTP interception is a good solution. It would be a workaround.
We need a real solution. We need better WKWebView APIs. The requests are known. The bugs have been open since iOS 8. Two years.
WKWebView executes out-of-process just like Safari and so it performs just as well. In fact, that's the whole reason that WKWebView exists (instead of just using UIWebView).
Works really well! First I joked about how it's the perfect browser for watching adult content on the go (which it is :P) but it's rather impressive. The execution is really smooth, there's just enough options and it's really fast; there's even an option for blocking web fonts.
I came expecting to be disappointed in the feature set or performance (hello, Brave I'm talking to you), and instead it's got everything I can think of and it all seems to work perfectly.
Well, I mean... it doesn't integrate with my password manager... yet. (=
Speaking of Brave, how does it perform in terms of web standards compliance, amount of trackers and ads blocked, and RAM and CPU usage compared to Firefox + uBlock Origin and/or uMatrix?
---
Edit: I decided to do a quick test using panopticlick. Here are the results.
- Firefox with uBlock Origin and uMatrix: fingerprint appears to be unique. fingerprint conveys at least 17.47 bits of identifying information.
- Brave: fingerprint appears to be unique. fingerprint conveys at least 17.47 bits of identifying information.
- Chromium (plain): fingerprint appears to be unique. fingerprint conveys at least 17.47 bits of identifying information.
- Tor Browser Bundle: one in 77.02 browsers have the same fingerprint. fingerprint conveys 6.27 bits of identifying information.
Would you please elaborate how this is different from using Safari in Private Browsing mode? If I am not mistaken Firefox Focus on iOS would still use WebKit under the hood.
"Firefox Focus continues to operate as a Safari content blocker on iOS, and users will be able to take advantage of Tracking Protection on both Safari and Firefox Focus."
I have not used these APIs but I wonder whether it is faster to use Safari in private mode with Focus as a blocker, or using focus directly. Afaik Safari compiles the blocker rules into some binary representation and is thus able to apply them really fast. Do Webkit applications have access to similar functionality?
Safari will be faster. Focus uses UIWebView, which is markedly slower than WKWebView (UIWebView executes in-process and cannot JIT, WKWebView executes out-of-process and can JIT and is as fast as Safari).
Private Browsing (regardless of browser) does not prevent online tracking. By removing trackers and ads, web pages may require less data and load faster.
I'm not an iPhone user, so I can't give this a hands-on test, but it looks rather nice.
One omission that jumps out though is that this doesn't look like it has TOR integration/support, unless it comes with it's own onion routing and I'm missing it.
I'm not advocating for TOR by the way, it just strikes me that the instances where you would want a private browser are very likely the same instances where you don't want network intermediaries viewing your communications, no?
It's called "Klar by Firefox" in Germany due to the naming conflict with Focus, the magazine. I haven't seen the update in the app store yet, though. Probably still rolling out.
It kinda makes sense in German, probably meant to refer to something like "klarer Blick auf die Dinge". But yeah, it's still slightly odd. Then again, naming things is really hard :)
Update: I can see the Update to "Focus by Firefox" in the App Store (the logo changed), but due to the rebranding in Germany I can no longer access the details page of that in the App Store. The German version, "Klar by Firefox", hasn't updated yet. Likely someone needs to build the rebranded version explicitly and just hasn't done so yet.
The opposite of privacy: every address you type in Firefox Focus gets sent, live, to Yahoo/Verizon, complete with a User-Agent identifying the request as coming from Focus, indicating an unusual desire for privacy.
Thanks for that. Not sure why my original reply was killed.
Further info:
1) Appears the Brave browser uses the same hardcoded suggestions list. Why have such a list?!
2) If you are really concerned about privacy this is still a bad option because accidental hit of Go/Search/Enter sends an incomplete address to Verizon/Yahoo -- with no choices to disable this or chose another destination.
Looks awesome, can't wait to play around with this. On a separate note, I'm a sucker for great UI. I love the waveform on the landing page. Browsing through the repo, I had no clue this was available in the form of a pod. Needed something like this for a current project.
Is there a whitelist? For some reason they're blocking API access to reddit entirely which is annoying as I want to browse certain sites that rely on this API. Why would the reddit API be on these lists?
Yes this is unfortunate. I will check if we can somehow release the app for all devices. But I am afraid that will result in a difficult to message situation.
Sorry to burst your bubble, but this is Apple's ecosystem. 2 years is the very real artificial lifespan of "current" whether we like it or not.
Fun fact: I still have an iPad Mini 1 running some very ancient version of iOS that I use once in a while for single-page browsing. It gets the job done for very short sessions. I'm amazed the battery is still good.
This appears to be an update to a content blocker that has existed for quite some time. I've had this app installed for a long time, but the integrated browser is new.
Yeah; it's frustrating. Perviously, I only opened the app to turn it off if a website was broken. Now I have to tap another button before I can toggle the settings.
Some Google AMP sites don't load with all the privacy toggles on.
That was my first thought (and what I think the path would be for getting this browser experience on Android). It's basically Firefox for Android, private browsing mode with tracking protection enabled, but it doesn't seem to be possible to set private browsing as the default. Thus any link from other applications will automatically open in a tracking friendly context first.
I was looking for the wrong about:config value. While you can't have private browsing mode be the default, it is in fact possible to enable tracking protection outside private browsing mode, so you can get these same benefits (privacy.trackingprotection.enabled in about:config).
It says we look forward to your feedback - anyone know where I should send feedback?
They the button in the bottom right opens the current URL immediately in Firefox (separate app) without a prompt or warning seems against the private browsing expectation I have.
Edit: also it appears swiping doesn't go "back" :/
It is interesting that they're making it seem like a new app, when they're actually augmenting an existing (and seemingly forgotten) app. I was a little confused about the app/update at first, given that I'd had Mozilla Focus installed already. It was an adblocker/privacy plugin for Safari only, though.
It appears they just took the Private Browsing component of Firefox for iOS and integrated it into the old privacy plugin Focus app, and renamed it Firefox Focus.
In any case, it has the same features it did before, so I'm okay with it. It does duplicates my Firefox app's functionality some, but oh well.
Well, the key here is that the functionality of the extension 'Firefox Focus' only works for Safari in iOS. They weren't able to make it work for Firefox for iOS. So this is a way to use it outside of Safari.
Test driving it now with this comment. This is perfect for my "search and browse" needs where I need to use Google (because neither Startpage nor DuckDuckGo are adequate for that query).
I can also use this without worrying about mix ups that I sometimes end up with in other browsers where I use both private and non-private tabs.
Edit: Seems a bit slow. Need to use it more to get better measurements.
Good to see Mozilla making so much progress lately. Earlier I gave up on Firefox as the Chrome was faster and better, but now its shiny and solid again! Kudos to the team!
205 comments
[ 2.8 ms ] story [ 231 ms ] threadNot sure if this is worth opening an issue over, but are you planning on supporting search engines other than google?
Seems like Duck Duck Go would fit well with what seems to be your mission with this project.
https://github.com/mozilla-mobile/focus/blob/49bda35aa3b9b9b...
Is it planned to have content blockers support in Firefox for iOS ?
Firefox is based on the WKWebView. Modern and Fast, but has a very poor (thin) API. It has zero options for interacting with the network stack, which is a requirement for content blocking. Bugs have been open since iOS 8, Apple does not seem to be interested or does not have the resources to surface more API. All the APIs are in WKWebView, just private.
Focus uses the older UIWebView. Slow, but better ability to interact with the network layer. Not ideal, but at least it is possible.
So to answer your question: We would have to replace WKWebView in Firefox for UIWebView. We've been very close to doing this in some form. But it is is big compromise in terms of functionality and stability. So I am not sure when and in what form that will happen.
Stuck between a rock and a private API.
For example: https://developer.apple.com/reference/networkextension/neapp...
We need a real solution. We need better WKWebView APIs. The requests are known. The bugs have been open since iOS 8. Two years.
For example, Firefox for iOS ranks exactly the same as Safari in speed benchmarks.
Great work!
I came expecting to be disappointed in the feature set or performance (hello, Brave I'm talking to you), and instead it's got everything I can think of and it all seems to work perfectly.
Well, I mean... it doesn't integrate with my password manager... yet. (=
---
Edit: I decided to do a quick test using panopticlick. Here are the results.
- Firefox with uBlock Origin and uMatrix: fingerprint appears to be unique. fingerprint conveys at least 17.47 bits of identifying information.
- Brave: fingerprint appears to be unique. fingerprint conveys at least 17.47 bits of identifying information.
- Chromium (plain): fingerprint appears to be unique. fingerprint conveys at least 17.47 bits of identifying information.
- Tor Browser Bundle: one in 77.02 browsers have the same fingerprint. fingerprint conveys 6.27 bits of identifying information.
Edit: I'm not being facetious or sarcastic.
Goes beyond just a browser.
One omission that jumps out though is that this doesn't look like it has TOR integration/support, unless it comes with it's own onion routing and I'm missing it.
I'm not advocating for TOR by the way, it just strikes me that the instances where you would want a private browser are very likely the same instances where you don't want network intermediaries viewing your communications, no?
https://github.com/mozilla-mobile/focus/blob/master/Blockzil...
Gee, thanks for assistance in getting to breitbart.com. WTF???
But if you accidentally press search, yeah, Yahoo/Verizon get it. And there's no opt-out or alternative search engines.
https://github.com/mozilla-mobile/focus/blob/master/Blockzil...
Further info:
1) Appears the Brave browser uses the same hardcoded suggestions list. Why have such a list?!
2) If you are really concerned about privacy this is still a bad option because accidental hit of Go/Search/Enter sends an incomplete address to Verizon/Yahoo -- with no choices to disable this or chose another destination.
https://services.disconnect.me/disconnect-plaintext.json
Let us know if the Reddit API is incorrectly on a list. We can investigate if we have a little more info.
https://bugzilla.mozilla.org/show_bug.cgi?id=1318377
Um…what? I'm on an iPhone 5! Not that ancient!
(Just found out that it's not compatible with my iPad 4)
https://bugzilla.mozilla.org/show_bug.cgi?id=1318363
Fun fact: I still have an iPad Mini 1 running some very ancient version of iOS that I use once in a while for single-page browsing. It gets the job done for very short sessions. I'm amazed the battery is still good.
Some Google AMP sites don't load with all the privacy toggles on.
I was looking for the wrong about:config value. While you can't have private browsing mode be the default, it is in fact possible to enable tracking protection outside private browsing mode, so you can get these same benefits (privacy.trackingprotection.enabled in about:config).
Wish this would be exposed in the UI settings.
They the button in the bottom right opens the current URL immediately in Firefox (separate app) without a prompt or warning seems against the private browsing expectation I have.
Edit: also it appears swiping doesn't go "back" :/
We have a bug on file for swiping:
https://bugzilla.mozilla.org/show_bug.cgi?id=1316949
It appears they just took the Private Browsing component of Firefox for iOS and integrated it into the old privacy plugin Focus app, and renamed it Firefox Focus.
In any case, it has the same features it did before, so I'm okay with it. It does duplicates my Firefox app's functionality some, but oh well.
I can also use this without worrying about mix ups that I sometimes end up with in other browsers where I use both private and non-private tabs.
Edit: Seems a bit slow. Need to use it more to get better measurements.
I was really looking forward to trying this browser and wonder what the hardware limitation is.