205 comments

[ 2.8 ms ] story [ 231 ms ] thread
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.
This looks really good!

Not sure if this is worth opening an issue over, but are you planning on supporting search engines other than google?

+1

Seems like Duck Duck Go would fit well with what seems to be your mission with this project.

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?
Why having a separate application with these features instead of adding them to Firefox for iOS ?

Is it planned to have content blockers support in Firefox for iOS ?

(comment deleted)
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.

Stuck between a rock and a private API.

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.

For example: https://developer.apple.com/reference/networkextension/neapp...

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.

Is either able to use JIT for JavaScript engine or is it only enabled for Apple's "blessed-process" iOS Safari?
Only the WKWebView gets fast JavaScript. Any app that uses it will inherit that functionality.

For example, Firefox for iOS ranks exactly the same as Safari in speed benchmarks.

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).
Thanks for explaining this in simple terms. I have been curious about this for a while.
The submission describes an app, yet the readme here describes a content blocker. Is this the correct repo?
The app works as both, providing a blocker for Safari, and a browser when you open it directly.
Yes, we did not update the README yet. Our focus (ha ha) was on code. Will do soon. You got the right repo though. Contributions are always welcome.
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.

Great work!

What he said.

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. (=

Certainly less clunky than iCab, which is also pretty good when you're "looking for an engagement ring" and other such sensitive browsing.
Yes, I'd never heard it called that before
On android, you can enjoy better experience with Firefox + ublock origin.
Is this targeted at Brendan Eich's https://brave.com?
Thanks for the info, didn't know that one, will check it out.
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.

Brave performs better in terms of blocking ads - I tried it today vs Focus and have switched to it now.
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.

Edit: I'm not being facetious or sarcastic.

"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."

Goes beyond just a browser.

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?
I'm sure it is measurably faster. I doubt it is noticeably faster.
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).
I wonder if it's possible to use this as a content blocker for Chrome on iOS.
i think only safari allows that. google lives on ads
Private Browsing (regardless of browser) does not prevent online tracking. By removing trackers and ads, web pages may require less data and load faster.
It helps with preventing online tracking, since private browsing windows/tabs do not have access to your cookies.
You can use a separate Safari content blocker to prevent online tracking.
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?

Not (yet?) available in Germany, it seems.
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.
Rather weird name. Would 'Firefox Fokus' have caused conflicts as well?
"Klar" in German translates to "Clear" in English. Sounds like a good name to me. Maybe even better than Focus.
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.
Awesome work over at the Mozilla team! This is way better than what I would expect after using Opera, Brave, and others on iOS.
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.
Can you confirm that? If true, is it at least opt-out?
Since this user's response to their own comment was killed (not sure why) I'll repeat: this is incorrect. Domains are chosen from a hard-coded list:

https://github.com/mozilla-mobile/focus/blob/master/Blockzil...

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.
Yes, yes, yes. Even if this doesn't work out in the long-run. This is what I want Mozilla to be focusing on: privacy-first browsing experiences.
It seems like too small of a market segment though, especially since it's hard to make money from browsers altogether.
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?
(comment deleted)
"Cannot download. This app is not compatible with your device."

Um…what? I'm on an iPhone 5! Not that ancient!

Content blockers require a 64 bit CPU. This is an Apple requirement
I expected that, but that's an unfortunate side effect of coupling the new browser app with the previous content blocker app.

(Just found out that it's not compatible with my iPad 4)

Content blockers require a 64 bit CPU. This is an Apple requirement
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.

Is there any word on this being released for Android at some point?
Why not use Private Browsing in Firefox for Android?
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.
Scratch that.

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.

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" :/

There a bunch of places where we take feedback:

  * https://input.mozilla.org/feedback/focus
  * https://github.com/mozilla-mobile/focus/issues
  * https://mzl.la/2g23JeE (Bugzilla)
(You can login to Bugzilla with a Github account.)

We have a bug on file for swiping:

https://bugzilla.mozilla.org/show_bug.cgi?id=1316949

Does it still use the Safari engine, or is it allowed to use a different one?
Any reason why this is incompatible with the iPhone 5c?
It requires a 64-bit CPU, which was introduced with the iPhone 5s.
Add prevention/detection for those annoying modals to collect emails after 15 seconds on a page and I'll marry you.
He might do it if you don't threaten him. :)
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!
Is there a good reason the app is not compatible with the iPhone 5C but it is with the 5S?

I was really looking forward to trying this browser and wonder what the hardware limitation is.

(comment deleted)
(comment deleted)