alexdelorenzo
Making moves
Status: In review

This would allow for Electron-like frameworks that work on top of Gecko and SpiderMonkey instead of Chromium via CEF.

It would also be good for embedding webpages in desktop applications. As it stands, CEF is the go to for this along with some WebKit-based options like WPE.

Comments
Strollin' around

Oh god yes. That could be worked on with Tauri.

Making moves

I tried in the past with a FFOS emulator: https://discourse.mozilla.org/t/g-ene-one-day-experiment-gecko-alternative-to-electron-nw-js/7106

But mozilla tried years ago with positron: https://github.com/mozilla/positron

Maybe today with Servo it is possible and avoid to use Gecko that is so integrate in Firefox that is idficult to separate it

Strollin' around

I would absolutely love to see this happen. One of the easiest things I would love to see was better documentation and examples for using embedded gecko in your own application. Thunderbird currently does this, I presume using browser.chromeURL or toolkit.defaultChromeURI. I would absolute love to see better documentation of the process of using these and the surrounding file structure.

I would avoid using Servo as it is less actively developed then Gecko and no longer associated with Mozilla.

Making moves

It could help in wider adoption of Gecko, plus many app developers could prefer Gecko over Blink due to lower average memory consumption, which is especially important in gaming.

Community Manager
Community Manager
Status changed to: In review

Hey all,

Here with another exciting update…

This idea has been upgraded to "In review" which means it will be brought to our internal teams for review—learn more about The Idea Journey. As soon as we have another update on its status, we’ll let you know right here in the comment section.

Stay tuned 😃

-The Community Team

Strollin' around

So, this has been bugging me, and after some messing around, I have an example application that works. There are some technical problems with it, like a lack of windows support and the browser toolbox not working, but it proves that it is possible.

I believe that Mozilla could make this practical for larger applications that could benefit from the more powerful parts of gecko, like web browsers. Gecko, in its current state is fairly close, all that is missing is:

  • Something similar to Firefox artifact builds for all projects to reduce compile time
  • Decent docs and examples (everything I have done so far is just based on reverse engineering)
Strollin' around

I have been experimenting and I think this is fairly close to reality. I have a functional "Hello World" gecko app that I have been working on. There are bugs, like browser toolbox refusing to work, but I think better documentation could fix it. I think that the following would make it practical (and maybe even better than chromium) to use Gecko for large apps, like web browsers, outside of Mozilla:

  • Decent docs and examples: It would be nice to not have to try and guess what things do and learn via trial and error. Better documentation surrounding bootstrapping gecko and custom xul elements like `<browser />`

  • Some form of artifact builds: Firefox artifact builds are great and it would be amazing if there was some way of using them within custom applications if we aren't modifying parts of Gecko
  • Allow third party developers into the build tool: The build tool assumes you are building Mozilla products, it would be nice if it was a bit smarter
Strollin' around

Very important since Servo days

Strollin' around

I feel like detaching Gecko (& SpiderMonkey) from Firefox UI is the necessary for Mozilla. No Doubt.

That way:

  • other browsers could base their engine on Firefox's

  • it would be possible to make NodeJS applications based on Gecko rather than Blink (similar to what @Mte90 mentioned with Positron)

  • other companies could join and help having an engine that is truly free and open source. A common ground where everybody can contribute and assure that the web standards are respected

  • extracting Gecko from Firefox would also decrease code coupling and probably help greatly cleaning up the code (due to the introduction of a clean external interface to Gecko).

Anonymous

Why is it that Webkit and Chromium technologies are actively used outside of the browser, but Gecko is not?

Strollin' around

Let me just say this once:

Mozilla NEEDS THIS BADLY!!!

Strollin' around

This is likely the reason Firefox is the only major browser that is not based on Chromium right now. The CEF and other tools like Electron provide an easy to use framework for Blink, which makes Chromium compatibility the standard, and competitors don't even question it.

If there was a Gecko based CEF equivalent, Chromium would no longer be the de-facto embedded browser of virtually everything except iOS, and it would allow developers to have an actual choice, putting Firefox back on the map.

This idea was put "in review" a year ago, I hope that the Mozilla team has had the opportunity to have a look at it and consider it.

Making moves

Offer alternatives to Chromium and Electron so that browsers and apps don’t have all to be Chrome

Chrome being by far the most used browser is only one part of the issue with this browser quasi-monopoly, with all the lack of ecosystem diversity and dominant position abuse that it can create.

There are two other tenants to it:

— Chromium: most browsers nowadays are based on Chromium (Edge, Opera, Vivaldi, Arc, Brave, …)
— Electron: most major standalone desktop of web apps are based on Electron, which is itself based on Chromium (Slack, Figma, Discord, Notion, Skype, Visual Studio Code, Whatsapp, …)

Mozilla, with its platform and the Gecko engine, is maybe the only major alternative.

But what Mozilla does with it is almost only one browser. Even if open source and freely licensed, the platform is not really ready to pick up by other developers.

I think it’s time and crucial to start turning the tech behind Firefox into an easy-to-tinker-with platform to develop new apps. And have two solutions (which could be one in some ways) to provide viable alternatives to the two points mentioned above:

— Gecko Browser Kit, a good base to easily build a browser from, with everything that is needed for creating a new web browsing app using Mozilla and Web technologies. This would be an alternative to Chromium.
— Gecko App Kit, a solid way to embed a web app into a standalone desktop app (or even mobile app). This would be an alternative to Electron.

* Names here are obviously placeholders.

New browsers and new standalone web apps would now have two choices to base themselves on: the Google one and the Mozilla one. Some existing browsers and standalone web apps might even switch from Chromium and Electron to the Gecko-based solutions, if what Mozilla provides has some advantages or if they believe enough in web diversity.

I feel only this would bring back some choice and cracks some of Google’s monopoly. Operating on the user-facing browser front alone is not enough.

And this might bring more hands to help with developing Gecko and Mozilla technologies: if some companies or organisations that make Gecko-backed browsers and apps start contributing back to the project, this would improve things for everyone and release some stress from Mozilla.

Eventually, Firefox itself could be based on this “Gecko Browser Kit”, becoming only one of the browsers based on this, and the reference implementation.

I see two precedents in Mozilla history:
— In the mid-2000s, I remember apps based on Gecko/XUL being released, probably as it was a good platform to make cross-platform apps. There was for instance Songbird, a music player.
— More recently, Mozilla released GeckoView, an alternative to WebView on Android. This is excellent, and exactly along the lines of what I’m proposing here: identifying where Google/Chromium/Blink is used outside of simply Chrome, and offering a Mozilla alternative there.

This is crucial and it would help preserving the open web as much as making Firefox.

Community Manager
Community Manager

(Note: a similar idea has been merged into this thread)

Strollin' around

I really want something like this. Please.

New member

If this idea is considered, I think the objective should be to implement it how Webview2 is in terms of functionality instead of CEF because the later is much more heavy on resources usage compared to the former.

Making moves

I hope this happens.  It's been in review for quite a while now, have there been any changes/updates about this since?

New member

I don't think there's ever been a better time to start making major pushes for this given all the current hype around the ECMA/JavaScript ecosystem; it would be great if developers had a choice over libcef.

Letting us use Gecko instead of just Chromium would mean that big companies like Google and Apple aren't the only ones deciding how the web works. It's about giving developers choices and keeping the web open for everyone.

Anonymous

Hey, guys,

I would like to comment on this if this feature is developed here, perhaps a commercial advantage for Mozilla Firefox. Because most programs I use the structure called "electron" (which chromium - which is the open source alternative to google chrome browser) with html/css/js. Perhaps with these features, developers can use the gecko in the application development environment (Electron) or have an alternative with this - chromium and gecko options.

New member

is there an update? since chrome is getting more garbage from time to time, and google is ruining it even more. gecko could make an perfect replacement for embedded browser engines. im really looking forward to see some impact.

Strollin' around

This is pure speculation, but I think Mozilla isn't allowed (by the big players maybe?!) to implement this, in order to stop Firefox from being way too popular!
Why else wouldn't Mozilla give this issue a high priority?

New member

For anyone not old enough to remember the days when Gecko embedding was a thing:

And when it was abandoned:

The reasons were described back then, question is if such limitations are still limiting today.