5 ms·
Some context that might help people understand this email... There are two high-level components which make up Firefox. The first is Gecko, the rendering engin
by joshmoz 11y ago
Some context that might help people understand this email...
There are two high-level components which make up Firefox. The first is Gecko, the rendering engine. The second is Firefox, the application itself, which uses Gecko to render Web pages and itself.
Firefox, built on top of Gecko, is written primarily in XUL and XBL (and JS).
https://en.wikipedia.org/wiki/XUL https://en.wikipedia.org/wiki/XUL
https://en.wikipedia.org/wiki/XBL https://en.wikipedia.org/wiki/XBL
What's going on here is that Mozilla is considering getting rid of XUL and XBL and building Firefox with the same technologies that people use to build Web content.
There are at least three big advantages to doing this:
1. Eliminate the need to support XUL and XBL in Gecko.
2. Contributing to Firefox gets easier because there is no need to learn what are essentially Mozilla-specific languages.
3. Mozilla learns more about what it takes to build complex applications like Firefox itself using Web technologies.
The only real downside is the amount of work involved.
- simcop2387 11y agoAnother advantage that's not immediately apparent is that it would also open up changing the rendering engine. I think the firefox mobile browser is actually using this to do the main UI on android at least. Along with that there's the browser.html that Servo is using as a base for the browser chrome.
- kbrosnan 11y agoFirefox for Android is Gecko. Firefox for iOS which is in the works is playing inside the Apple ecosystem, using WebKit.
- simcop2387 11y agoI can't imagine that Firefox on iOS will actually be that useful. Half the usefulness of Firefox is the extensions which I think would violate the store rules on iOS wouldn't they?
- danudey 11y agoThe primary usefulness I would see is syncing your browser history, bookmarks, etc. across devices. I use Safari and I have pretty much every extension I feel like I need.
- malkia 11y agoI wonder if there could be some collaboration where firefox, chrome, safari, IE, opera, etc. can exchange and sync - possibly too much to deal with, and might hurt innovation.
- JadeNB 11y agoCan this be done? The last time I checked, Firefox Sync was only available on iOS via some hacky workaround with an extra (ToS-bending) app.
- rfk 11y agoYes, proper syncing with Desktop Firefox is a core part of the new Firefox for iOS initiative.
- JadeNB 11y agoOK, but (sorry if I'm misunderstanding!) can it be done now?
- rfk 11y agoNot sure I understand your question, but the thing I'm talking about is a new "Firefox for iOS" product being worked on right now, due for release pretty soon IIUC, that will include syncing among its core capabilities: https://github.com/mozilla/firefox-ios
- addicted44 11y agoFirefox is my primary browser everywhere but on iOS. It would be nice if I could have the passwords, history and bookmarks available to me on all my other OSes on iOS as well. This is a huge gap for Firefox IMO.
- ykl 11y agoCould this potentially be a first step towards eventually replacing Gecko with Servo? If Firefox (the application itself) eventually resembles browser.html [1], swapping out Gecko for Servo would be much easier. [1] https://github.com/mozilla/browser.html https://github.com/mozilla/browser.html
- campd 11y agoIt's not not the first step. That's not the primary driver of this plan. But it might be a happy side effect. Servo is still in early stages, we aren't making product plans around it.
- Roodgorf 11y agoIf that were to happen, how big an impact would that have on Firefox OS development? I admittedly don't understand the project too well, but they had to port Gecko to work in Gonk right? Would there be significant overhead getting Servo working under Gonk?
- fabrice_d 11y agoA few things: - currently browser.html runs on top of a gecko runtime (called graphene) which is based on the one we use for FirefoxOS. - getting gecko to work on gonk is not different from adding support for other platforms like linux/mac/windows/android. Basically you need to provide implementation for low level windowing and input events. On non-posix systems there's a bit more to do in the nspr library, but that's not the case for gonk. - we already have a port of servo that runs on gonk. FirefoxOS has been using a 100% html UI since about 4 years, so it has been leading the way here.
- Roodgorf 11y agoVery cool, thanks for the information. I'm obviously more ignorant of Mozilla projects than I even thought.
- Manishearth 11y ago
- piyush_soni 11y agoThe only thing I'm worried about is how would it affect performance. Does it mean the UI itself would be rendered using Gecko Engine?
- pcwalton 11y agoIt already is.
- mburns 11y agoXUL is already rendered using Gecko.
- brandonwamboldt 11y agoIt already is. XUL is rendered via Gecko.
- campd 11y agoLike pcwalton said, we already use Gecko to render the UI. But we're using a less well-optimized, less well-maintained corner of Gecko. Improving performance is an explicit goal of this work.
- M2Ys4U 11y agoIt already is, only the UI is written in XUL.
- toyg 11y agoI believe that's already the case, although it uses XUL-specific code paths in Gecko. In terms of performance -- there is no deep reason for it being slower, but of course the code might end up being a bit less optimized compared to stuff that has been battle-tested for 15 years. On the other hand, getting rid of XUL could deliver dramatic results. It's all speculation really, but there is no real technical reason for "XUL-less FF" to be incredibly slower than current offering.
- joshmoz 11y agoThe Firefox (Desktop) UI is already rendered using Gecko. It has been that way since the beginning. Mozilla spends much more time optimizing HTML and other Web content tech than it does optimizing XUL and XBL. I wouldn't worry too much about this project slowing down Firefox. It might even speed it up a bit.
- skybrian 11y agoWouldn't all Firefox plugins need to be rewritten?
- clarkbw 11y agoFirefox add-ons that use the XUL overlay system would need to be written as SDK style add-ons.
- nightpool 11y agoa lot of modern firefox plugins are already written this way, but there are probably a significant amount of legacy addons that would need to be rewritten
- JoshTriplett 11y agoAddons that use XUL would need a rewrite, but they already did, as Firefox Mobile doesn't support XUL. (Plugins need to just go away, and they mostly have.)
- Larrikin 11y agoPlugins are the only reason I use Firefox over any other browser. Can you explain to me why Firefox would be better off if I didn't have Rikaisama for my Japanese studying or one of a number of Youtube plugins that make the site bearable again by forcing annotations off and 1080p on.
- masklinn 11y ago> Rikaisama This is most likely an addon, a Firefox extension written in (mostly) JS and XUL. Plugins are the external runtimes embedded in browsers with NSAPI &al: Flash, Java, Silverlight, etc...
- brobinson 11y ago>forcing annotations off Please share this miracle you speak of.
- Larrikin 11y ago
- nextos 11y agoWill this lead to loosing any of the flexibility in configuring Firefox (all variables you can find in about:config) that is so useful when using e.g. vimperator or pentadactyl?
- rockdoe 11y agoI don't see any relation between the two.
- at-fates-hands 11y agoThis sounds a lot like what Adobe did with Brackets by building it with HTML, CSS and JS. The advantages are numerous, so I can understand why they're going this route.
- ocdtrekkie 11y agoHat tip and an upvote for making this super easy to understand.