
Why we Forked Firefox and Not Chromium - nikbackm
https://0x65.dev/blog/2019-12-17/why-we-forked-firefox-and-not-chromium.html
======
evmar
I have liked the other posts in this series, but I find the reasoning in this
one confusing. (Disclaimer: Perhaps it is because I am familiar with the
Chrome code.)

In the context of a browser fork, these statements make no sense: "Firefox has
open APIs for everything the browser does [...] Chromium on the other hand
does not expose certain areas that are sensitive to Google’s business." In the
context of changing the source code, how are some APIs "open" and others not?
How can the Chrome code possibly "protect" (their words) the address bar from
modification relative to any other code?

I think what they're instead talking about is the available extension APIs
from JavaScript maybe? But in that case, why call the project a fork, instead
of a browser extension or something?

~~~
zamadatix
The statements make a lot more sense if you put back the parts you excluded:

"Firefox has open APIs for everything the browser does—a majority of Firefox
“application” code is written in JavaScript. Chromium on the other hand does
not expose certain areas that are sensitive to Google’s business. The most
notable example is the address bar (where Cliqz search lives). Google has no
interest in making it easy for others to take control of the address bar; the
flow to the default search engine (Google) is protected. Of course one could
create new APIs, but that would imply creating them on top of the source-code.
This is not a big issue, we have already created a prototype, but then there
is the problem of maintaining it."

For the question of "why not call it a browser extension or something" because
"browser extension" already means something completely different. It's also a
bit wonky to think choice of language should decide if you call something a
fork or not in the first place, doubly so considering significant portions of
the browser are already written in that language.

~~~
evmar
So I think they are defining whether a given API as "open" or not as whether
it is callable from JavaScript? So they're only willing to edit the JavaScript
code, but not the C++ code alongside it? (I am genuinely confused by the
reasoning, questions are not rhetorical.)

~~~
jamoes
My interpretation is they're saying that Chromium's address bar code is
complex deeply integrated with many other parts of the code-base (including
many parts that interact with Google's search APIs). On the other hand,
Firefox's address bar code exposes a simple javascript API. This means that
making and maintaining custom modifications to the address bar is easier with
Firefox.

~~~
bagacrap
Ever since Chrome Beta users have been able to change the search engine that
powers the omnibox (to include autocomplete suggestions, not just search
results).

~~~
xemdetia
Changing the search engine that powers the omnibox is different than changing
the behaviour of the omnibox, which is kind of a lot when it comes to
predictive search, predictive completion and a bucket of other things that I
wish you could turn off (or can be turned off for a while before Google
decides you shouldn't ever need or want to turn it off). It's a target with a
huge amount of churn. I agree that Firefox is a more sane target as a
developer.

~~~
bagacrap
The gp's parenthetical addresses what you call "predictive completion", only
it uses the term "autocomplete".

~~~
Dylan16807
It addresses changing the site that feeds it. It does not address changing the
behavior.

------
tyingq
Does Google still provide a "significantly worse" experience if the user agent
is Firefox? I recall that was true on Gmail and Youtube for a while.

~~~
whelming_wave
It is very different on mobile. I just took some screenshots of Google search
on Firefox on Android before and after enabling an addon that sets my user
agent to Chrome on Google sites:
[https://imgur.com/a/P9zDn7B](https://imgur.com/a/P9zDn7B)

~~~
tyingq
Oh wow. That seems very deliberate.

~~~
notatoad
It looks deliberate but it's also not clear to me which is the "better"
version. It doesn't look like one has more features or is obviously newer or
better. (i personally like the second screenshot better, but i _think_ the
rounded boxes in the first screenshot is actually google's latest design fad)

You can sometimes trigger similar changes in appearance to the search results
view by switching to incognito or clearing your cookies - Google often A/B
tests or performs slow rollouts of changes like this, a difference in
appearance could just be because a new user agent string got you placed into a
different release group.

~~~
tyingq
I was reacting to "just today's stock price" versus "today's price plus some
history".

~~~
bagacrap
In the first screenshot you see third party news stories above the fold and in
the second story there's nothing but knowledge cards above the fold. Both are
presenting relevant information (and no ads) but which format is preferable?
My guess is that certain knowledge cards (like stock price history) are subtly
less functional on FF so they are omitted.

~~~
emn13
I'm seriously skeptical of that. It's plausible they didn't bother trying to
get it to work in FF, and just thought "screw that". But judging by de
screenshot of the stock price history alone, clearly FF has no trouble
rendering that history - both screenshots are FF, right? It's only the UA
header that was changed.

Incidentally, this is far from the first time google has been caught heavily
optimizing exclusively for their own browsers, which, to be clear, is quite
probably not explicit policy - but is monopolistic abuse nonetheless. Remember
the youtube polymer redesign? The Edge HW acceleration-breaking invisible
layers? I get the feeling they just don't test in other browsers nearly as
well.

~~~
bagacrap
A static screenshot does not fully capture the functionality of a web element,
hence my use of the term "subtly".

~~~
emn13
Occam's Razor suggests you're looking for ghosts, and just to be sure I tried
this on my phone: as far as I can tell behaviour using FF + chrome UA addon
(which I specifically installed to test this) is indistinguishable from chrome
as far as google search's stock ticker display goes. focusing points, time
spans, toggle modes, clicking the extra-info chevron... all no difference.

Given google's history here you really shouldn't be giving them the benefit of
the doubt in this matter; at best they're consistently, repeatedly negligent;
but it's at least conceivable there's culture of giving additional other
google teams; which is a form of monopolistic power abuse.

------
yellowapple
The unstated motivating factor here is that Mozilla made a minority investment
in Cliqz back in 2016:
[https://en.wikipedia.org/wiki/Cliqz#History](https://en.wikipedia.org/wiki/Cliqz#History)

~~~
slipheen
Isn't this article about stuff that happened in 2015 though?

It seems like the investment followed from using FF, not the otherway around.

------
djsumdog
> EdgeHTML

Why doesn't Microsoft open source their engine if they're not using it any
more? It can't possibly still have any of the NSCA code in it.

Microsoft is still a scumbag, claiming to support open source, releasing some
of their middle-wear and buying GitHub, yet refusing to release something that
could actually make our web community more diverse.

~~~
babypuncher
They are abandoning it outright. I'm not sure what good open sourcing a failed
browser renderer would accomplish. Between Gecko, Webkit, Blink, KHTML, and
others, there are already plenty of FOSS options out there.

~~~
microcolonel
> _Between Gecko, Webkit, Blink, KHTML_

That's kinda just two browser engines. Blink is a fork of WebKit, and WebKit
is a fork of KHTML.

Though I'm partial to the argument that provided the main options are at least
FOSS, diversity of implementations is of minimal concern.

------
jaggirs
I never heard of Clikz, so I checked out their website, and their mayor sales
pitch seems to be that it is european? I mean, as an european I suppose I
would rather use european products, but I'm not going to use a different
search engine just because of that.

(Just talking about the sales pitch here, I haven't used it so I don't know if
it offers anything more)

------
mikece
"Firefox has open APIs for everything the browser does—a majority of Firefox
“application” code is written in JavaScript."

While it makes hacking on Firefox easier, isn't this a liability for
performance? Is this, perhaps, partly why WASM is such a focus for Mozilla?

~~~
jraph
My intuition is that most of the code for which performance really matters is
written in Rust and C++ (the web engine, Gecko, and the Javascript engine,
SpiderMonkey).

~~~
kllrnohj
I personally consider UI responsiveness to also be something that really
matters.

It's great that part of the UI handling code is fast, but that doesn't mean
_all_ of it shouldn't be fast.

~~~
kevingadd
When it comes to responsiveness, raw compute throughput (the thing you get
most out of say, vectorized C++) is not especially important. You care about
latency and JavaScript can provide good latency if it's been JITted. If part
of your flow is already in JavaScript, porting more to JS can actually improve
latency because it cuts native<->JS transitions out of the call stack, so
you're running less code in total even if the code you run is a bit slower
(due to being JS instead of C++).

In general Chrome and Firefox have both moved a lot of stuff from C++ to JS
(this is referred to as 'self-hosting') because it allows inlining across more
calls and eliminates native<->JS transition overhead.

------
rasvj
I urge the mods to take a look at how often the "0x65.dev" domain, which is
just Cliqz, ends up on the front page.

Of special note (and I bow to them) is how they've used such a domain name to
spam their services. If they had used "cliqz.com" or whatever their actual
domain is, fewer people would click, but when I see this I'm inclined to think
this is some personal blog of a fellow software developer, and not blogspam of
a shady ads company.

~~~
pythux
Hi,

I work at Cliqz in the engineering team and have been involved with this
advent project. I'd like to provide some background.

For a while, we have been thinking internally about having a tech blog for
Cliqz engineering teams. It is fairly common for tech companies to have a
separate blog for technical content, separated from the main website. We
picked a name: 0x65.dev (0x65 being the hexadecimal representation of 101, the
idea was that we would write about the tech at Cliqz in an accessible way).

To make sure we'd commit to writing on this new blog, we thought of organizing
an "advent" for Christmas, where we would publish one article per day digging
on one of the aspects of what we do: search, privacy, browsers. When creating
the list of topics, we did not optimize for Hacker News (or any other
community for that matter, we also post and twitter and Reddit equally), as
this was suggested by some other comment. We really wanted to create a
coherent schedule to explain why and how we do things, to have a logical
progression in the topics (looking at the posts from first to last, it should
hopefully make some kind of sense!). We started on day one with "Why the world
needs more search engines", to motivate our efforts in this area, and started
detailing on following days the way we built our engine from scratch.

One thing we wanted especially, was for engineers to write about the projects
they work on, to get their perspective, without any filter. So far, many
different people have contributed. If some of the technologies or keywords we
use seem "trendy", it's because we are ourselves hyped about those, and we use
them internally to build our products.

Before the event we never anticipated this would resonate so much with the HN
community, and while very pleasant, it was not the goal. We were of course
extremely enthusiastic when we saw the great feedback from the community. If
anything, this proves that the topics which we are passionate about are also
of interest for a part of the HN community (many of us at Cliqz read HN every
day; in fact we all used our personal accounts to submit, comment or discuss
about the posts). It also shows that what we do is not disconnected from
reality, and that there is real interest around the topics of search,
independence, privacy; a good validation for us!

~~~
ocdtrekkie
In case anyone thinks the advent thing is super weird, FastMail is known for
doing advent blog series: [https://fastmail.blog/2017/12/01/fastmail-
advent-2017/](https://fastmail.blog/2017/12/01/fastmail-advent-2017/)

------
mrtweetyhack
I don't want to read anything about Cliqz and their shitty products

~~~
jasonvorhe
Then don't. It's really that easy.

------
tommywiseausmom
but why???

