This is completely up to them of course, and it probably let them move firefox forward faster, due to not having to care about APIs. However, it also means that chrome completely took over the entire market with electron and similar things.
This is completely up to them of course, and it probably let them move firefox forward faster, due to not having to care about APIs. However, it also means that chrome completely took over the entire market with electron and similar things.
As you said, this is too little, too late. I'm a Firefox user, but Chrome has pretty much won the browser wars. The only thing preventing it from achieving complete market dominance is the existence of Mobile Safari.
What made it extra unappealing for Mozilla was that we knew the Firefox/Gecko architecture needed lots of work that would destabilize an embedding API. Not much point in supporting an API that assumes single-process while you're moving to multi-process, or that exposes XUL which you know is a dead end, or that isn't compatible with off-main-thread rendering or GPU rendering, etc. Things are much better now that a lot of that debt has been paid off.
That said, I'm not sure what the point is. I believe (but could be wrong) that Chromium has more features that Gecko doesn't? So if you're choosing one over the other I'm only guessing most people would choose Electron
-- Chromium was faster. (For Electron apps you don't really care about Web compat, where Firefox was ahead of Chromium for a while, but you do care about performance.)
-- Chromium was already multiprocess and had some other architectural advantages where Gecko was still catching up. So, less upcoming architectural churn.
-- Chromium had Google's resources committed to it. (Google's shine has worn off a bit since then but it's still a powerful effect.)
Yeah, sure, imitating your competition is the right way to handle that. /s
References:
1. https://www.dedoimedo.com/computers/firefox-addons-future.ht...
2. https://www.dedoimedo.com/computers/firefox-disable-australi...
3. https://www.dedoimedo.com/computers/firefox-29-sucks.html
4. https://www.dedoimedo.com/computers/firefox-suckfest.html
People coding specifically to Chrome when writing Electron apps is way less harmful to the web than people doing the same with web pages. The latter case specifically hurts other browsers, because people who don't use Chrome can't use the site.
Additionally, each Electron app represents a (smallish group of) developers. They're a very small number compared to all the developers writing public-facing websites that (should!) work in all commonly used browsers.
Brave is run by ex-Mozilla folks and started with Gecko, but switched to Blink very early on. [1] Their reasons didn't include Electron, so Microsoft's may not have either.
[1] Collection of tweets, and a response from someone at Brave: https://www.reddit.com/r/BATProject/comments/9jpqde/brave_br...
(Disclosure: I work for Google, though not on Chrome. Speaking only for myself.)
What evidence do you have for this?
AFAIK the main reason why Microsoft picked Chromium is that Web sites are pretty much guaranteed to work well in Chromium without Microsoft having to do any work.
they stated that their experience with CEF (Chromium Embedded Framework) was instrumental in their decision.
VSCode (built on electron) was probably the main PoC for them.
https://docs.microsoft.com/en-us/microsoft-edge/hosting/webv...
What I mean by this - I can recognize a non-Elector vs Electron app by the amount of RAM it consumes. Is your simple color picker/text editor/REST caller/mouse config/ToDo app taking 1GB+ of RAM? It's an Electron app.
For the record, I doubt FF based app would face much better.
At this point, I could almost tolerate the wasted RAM and CPU if interaction latency wasn't that bad.
This is for example why Chrome decided to fork WebKit.
(I do believe that people messed around with Electron drop-in replacements, but it's probably hard to sell if it doesn't bring anything new to the table.)
Probably the same could have been said about IE ~20 years ago.
This is less of a war, more of a never-ending race. Currently (temporarily?) Chrome is ahead.
On desktop Mozilla did that: https://en.wikipedia.org/wiki/XULRunner
It was quite successful und I never understodd what happend for them to abonded it and let mozilla run down so deep into s* as it is now.
https://en.wikipedia.org/wiki/Category:Software_that_uses_XU...
Your comment reminds me of a 15 or 20 year old remark from Feeddemon and Topstyle author (Nick Bradbury) about how he gave up baking firefox preview into his CSS editor.
https://nick.typepad.com/blog/2008/03/can-mozilla-be.html
I loved Topstyle. It was the first editor I invested time into (after Visual Basic for windows 3.11 in the 90's but I was a kid, not a professional or a student).
I think it's at least 45 ESR, as mentioned in release notes ~year ago: https://blog.jolla.com/hossa/
There is an issue tracking the Gecko update on the community discussion/bug reporting tool used for Sailfish OS: https://together.jolla.com/question/133621/update-gecko-in-t...
The source of the Sailfish OS browser lives here: https://github.com/sailfishos/sailfish-browser
(Even though Sailfish OS is sadly not fully open source, the browser is as are other core applications and frameworks.)
This has been in the works since at least 2016. I believe conversations around improving the embedding story were happening before that, too.
> the licence made it very simple for us to decide - WebKit was MIT, Gecko wasn't.
...So what? If it runs on your server, it could be just about anything and it wouldn't matter so long as it's not AGPL. Or was the server meant to belong to the customer?
An embeddable Gecko would've created a wonderful ecosystem around it, produced headless browsers, a much wider range of browser alternatives, and had much more leverage when it comes to standard. They had... 8 years? 5 years? on Chomium and now have one hell of a task to correct that error.
Looking at the code of their new layout engine written in Rust, making it embeddable wasn't even remotely on their minds either. A real pity.
..for the 90s. There was very little about XUL that would survive today other than its layout model
Ignoring that XUL has a single implementation and for the most part a single application suite actually using it (not 100% true but very close), I'm not sure what there was to blow.
OTOH I remember some custom XUL apps of yesteryear, and they were always pretty nice to use. Does Firefox have any XUL left? I know there have been ideas to rip it out for a very long time.
What's the issue with that? GTK, WPF Qt, Flutter ... all have a single major implementation.
> for the most part a single application suite actually using it
That is now, but it could've been a lot different.
I'm not that familiar with XUL (I'm just old enough to experience it being phased out) but it appears like a great idea to me: XML is not exactly bad for a UI, but XAML is Microsoft-specific (and not exactly great) and HTML is made for documents (leading to problems with worries about semantic tags, lack of layout features ...).
I also quite like how well Firefox integrates with all kinds of platforms. But who knows, maybe that's not in XUL, but specific to FF.
Yes, recently there's been a big rewrite of lots of things as web components, but some XUL leftovers are still there.
Given more resources, Mozilla absolutely could have done a better job of transitioning faster from XUL to standards-friendly equivalents, and popularizing the latter in an Electron-like framework. But there was never a time when Mozilla had excess resources floating around, and other things took priority. (Also see my comment above about how architectural churn made it unattractive to support a stable embedding API.) As was pointed out in other comments, the benefits of regular Web market share tend to outweigh the benefits of embedding popularity.
Unfortunately, there were strategic decisions to basically never maintain it :(
I remember trying it on my Nexus One, back when that phone was hot shit. Constant full-screen checkerboarding.
Mozilla literally had to rewrite Firefox for Android and eliminate XUL from the Android version before it became a usable product.
Now that I think about it Winamp 3 had its own interesting application framework (https://en.wikipedia.org/wiki/Wasabi_(software)).
I am investigating a way to use FF on system as is though by providing a custom profile, a user.css to remove everything but the browser window itself (i.e. no tabs, toolbar, etc), capturing it as a native window (e.g. via QWindow::fromWinId and QWidget::createWindowContainer), and communicating with it via marionette or other remote approach. So far it seems to be ok, but it's a bit of a hack.
There was an equivalent Gecko one for Firefox but I could never get it working correctly so deferred to CEF under Visual Studio (think there's a nuget package for it, conveniently).
Also wxWidgets under C++ offers ability to host a local WebView instance or Trident with wxWebView.