12 ms·
Revisiting how we build Firefox
- madez 11y agoDoes this imply that It wouldn't possible anymore to use Firefox to browse without Javascript?
- gcp 11y agoFirefox already uses a ton of JavaScript internally. The setting for web content has nothing to do with the internals of the browser.
- JoshTriplett 11y agoMozilla has been doing experiments in building browser UI in HTML for a long time. For instance, see Chromeless ( https://blog.mozilla.org/labs/2010/10/chromeless-build-your-own-browser-ui-using-html-css-js/ https://blog.mozilla.org/labs/2010/10/chromeless-build-your-... ). Current HTML is capable enough. It's nice to see them talking about adopting that in mainline Firefox.
- agumonkey 11y agoAccidental downvote. I thought it was https://github.com/mozilla/browser.html https://github.com/mozilla/browser.html , I never heard of this chromeless effort.
- joshmoz 11y agoSome 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.
- anon3_ 11y agoEvery time Mozilla makes a post - I feel salt in the wound. An elephant in the room. Please pardon me: When are you going to get around that your organizations acts on the whims of professional agitators on twitter? You think PA care about these liberal causes? They're bitter people who get a rise out using their iphone to wreck careers. All you needed to do was come up with a generic phrase that what happens off work hours is no one's business. Instead, now you have a reputation for being spineless and cowering to trolls. What will you do next? As for caring about "LGBT" or whatever the newest political landmine on twitter is - no minority needs to be patronized. Adults can take care of themselves.
- clarkbw 11y agoThis email represents an intention to start investigating moving away from XUL/XBL. There are a number of areas to explore here like how to properly handle L10N, add-on overlays, and where to go native vs markup. At the same time we're actively moving over to e10s (electrolysis / per process tabs). There will be followup communication about who is doing the work and what work is being done but now is the time to add your concerns and comments or offer support.
- smacktoward 11y agoIt's probably time (past time, actually) for Mozilla to start looking into putting XUL/XBL to pasture for Firefox UI and using HTML/CSS/JS instead, since the Web platform has become sufficiently capable that the arguments for having a separate stack of technologies for building UI don't really hold anymore. Still makes me a bit sad to see it go, though; I'm old enough to remember when XUL seemed like an exciting potential platform for general-purpose app development. Which never really panned out, alas, but was fascinating at the time.
- simcop2387 11y agoYep, I remember actually building a toy 2d tilemapped RPG engine with it maybe a decade ago. It definitely wasn't capable of anything fancy then so I didn't do much more than have it let you move around the map with a simple UI around it . Now HTML/CSS/JS can completely blow it out the water with what you can do.
- deleted 11y ago[deleted]
- asadotzler 11y agoIMO, it did pan out. XUL and XBL provided the inspiration for much of what's come to real Web standards over the last decade or so. Thanks to XUL, we had a web-like model for front end dev that over time was usurped by a real Web model for front end dev. If we can re-implement Firefox using real Web standards, XUL will have been be a big part of the reason that became possible.
- gsnedders 11y agoAnd Web Components owe a clear legacy to XBL2 (an abandoned W3C draft, the immediate forerunner to Web Components), which obviously had clear links to XBL (though was backwards incompatible).
- smacktoward 11y agoThat's great for FF and Mozilla, but it doesn't feel like a win for those of us who were interested in XUL/XBL as a platform for building our own apps, independent of those Mozilla ships. I put a little bit of time into trying to build stuff on top of XUL before giving up on it, and that time ended up being more or less wasted -- it's not like there was an easy glidepath to take stuff built in XUL and move it to Web standards, because back then Web standards weren't up to the task. Combine that with the platform itself being a bit of a moving target as MozSuite/FF evolved and the end result was work I basically had to throw out. I'm not mad at Mozilla for all that, lots of platforms are complicated to build on, especially ones that are new and still evolving (which XUL definitely was, at the time). It's just not an experience that I feel like I can put into the "win" category. It was a dead end, at least for my needs.
- glorien 11y agoThe correct thing to use is AppKit on OS X, WPF on Windows, GTK+ on Gnome, and Qt on KDE. Yes, this requires more code, but it results in a much, much better experience. As an OS X user, it's so obvious when an app isn't properly using AppKit.
- rockdoe 11y agoYou're just describing what sits underneath the XUL or HTML.
- IshKebab 11y agoNo he isn't?
- reubenmorais 11y agoWell, most of it isn't, but some things are. Radio buttons and checkboxes on Gtk for example: https://mxr.mozilla.org/mozilla-central/source/widget/gtk/gtk2drawing.c https://mxr.mozilla.org/mozilla-central/source/widget/gtk/gt...
- basch 11y agoCamino was discontinued 3 years ago. https://en.wikipedia.org/wiki/Camino_(web_browser) https://en.wikipedia.org/wiki/Camino_(web_browser) k-melon for windows http://kmeleonbrowser.org/ http://kmeleonbrowser.org/
- phkahler 11y agoI'm used to agree. That's how you get a native look and feel, but I don't think that's necessarily what people want. I find the use of tabs in the browser to be very telling - it means the way OSes have handled multiple instances of an application are not satisfactory, so people want the browser to handle that. Once it's in the browser people will want it to be the same on all platforms.
- kaolinite 11y ago
- rockdoe 11y agoThe faster deployment thing seems pretty vague and free of actual content.
- azakai 11y agoA few more bits of info from Laura Thompson's presentation, that was mentioned: shipping features can be done even faster if they are done in a modular way, as addons. Firefox supports restartless addons, which means the browser could download an addon and enable it immediately. Together with work on improving addon APIs (APIs for CSS features were discussed, for example) this could be very interesting.
- kazagistar 11y agoIf this means that I could easily uninstall all the bits of firefox I don't use, like bookmarks, that would be pretty cool.
- ZenoArrow 11y agoHere's how I read it... they're looking at ways to move towards rolling release for A/B testing. Think about it like this, you're using Firefox and you get a notification... "Feature X is ready to test, would you like to try it out? Yes/No" If you select Yes, the feature is rolled out to you and other volunteers immediately (potentially without restarting, depending on the feature), and you can then feedback your experience to Mozilla on how well the new feature works out for you. The feedback from this control group then informs whether Feature X is ready for prime time. In some ways it seems like it's a restructuring of the Firefox development channels, a mix of beta and stable releases in the same channel.
- lxt 11y agoThis is kind of what we have in mind. The model is that we want to make Firefox itself more webby in the way it ships. Features should be independently updatable from the core browser, and we should be able to do phased rollouts to help us watch for issues, control for load, and so on. We are looking at offering very experimental stuff in a purely opt-in process, and updates to regular features as if they were third party add-ons (with some twists in how they have to be implemented).
- shmerl 11y ago> Is there space for a native-code main-window on desktop like we have on Android? Sailfish browser did it as well (using native UI). Desktop Firefox also can benefit from IPCembedlite. But the question will be, what should be used to write the UI. Qt as well? I'm a bit torn on that, since switching away from "Webby" interface basically killed Fennec for Meego, and only Android started getting UI improvements (that's what triggered a separate browser for Sailfish to begin with).
- abhv 11y agoCan XUL/XBL just be ``compiled-down" to proper HTML, or is there also a security issue in that Gecko allows XUL/XBL to break rules needed to securely render HTML?
- ZenoArrow 11y agoThat's a good question. I don't know the answer, but I'm curious as well. If it is an option, might be a good interim solution, perhaps not for the main UI (where performance is one of the main goals) but it could be useful to help the plugin ecosystem transition over.
- ris 11y agoI'd rather they'd spend more time making their rendering engine e.g. implement the SVG spec properly[0] than fanny about with this, but, y'know, I'm not in change. [0] https://bugzilla.mozilla.org/show_bug.cgi?id=437554 https://bugzilla.mozilla.org/show_bug.cgi?id=437554
- drapper 11y agoThat reminds me of what Vivaldi is trying to do (https://vivaldi.com/ https://vivaldi.com/)
- therealmarv 11y agoKeep XUL, XBL. Mark it deprecated. Make plugin development as easy as in Chrome for the new API. Would be awesome and so appreciated!
- millstone 11y agoI hate the trend of building native UIs in HTML, because the result never feels right. For example, Firefox does not use OS X native context menus, and it shows in how they look, position themselves, animate, respond to keyboard and mouse events, etc. But Firefox devs have clearly spent a great deal of effort to make these faux-context menus look native. What an enormous waste of development energy to emulate what the platform already provides! Rather than pushing forward with a layer that provides even less access to platform UI elements, I wish they would recommit themselves to keeping the native elements native.
- DaveWalk 11y agoIs there an official line that Firefox is taking on this? As a novice to their development decisions, I've always wondered this myself. I sometimes feel like I can sense when a UI is not native; it's completely useable, and I have no functional complaint, but it might just seem...off. I felt a small bit of delight when I switched back to Firefox on my Windows machine and saw the snappy animations for new tabs and its menus. It made a kind of subconscious difference.
- ianbicking 11y agoThere's broadly two directions Firefox could go: do everything in HTML, or use native widgets. Firefox for Android initially used XUL just like Firefox desktop, but switched to native. They've had a lot of success with that. This email is the start of a discussion that will include that option.
- frozenport 11y agoA lot of people agreed with you and built Camino and K-Meleon.
- drethemadrapper 11y agoI can't agree more. Where does this plan leave desktop app dev. with Mozilla technologies? There are tonnes of projects (desktop apps) using XUL, XPCOM, e.t.c. SUre, the future is the Web (like Web OS, Unity, i.e. UI in HTML). Why can't they improve on XUL/XBL by releasing a new version with the desired features while they try to simplify building extensions/apps with XPCOMs? They should standardize apps dev. for FFOS (gonk{+necko}/gecko/gaia) & FF(gecko+necko/xul). This effort does not necessarily mean spending much time on enhancing the UI for FF but rather ensuring seamless app. portability between FF and FFOS.
- gesman 11y agoPlease keep these little icons unchanged, i don't care about it. Do not make tabs cuter, I don't care about it. But PLEASE - do something to stop Firefox from being such a bloated memory hog - I deeply care about it.
- chuckharmston 11y agoFirefox itself is quite fast [1]; if you're having issues, there's a good chance that it's due to an add-on [2]. A (historically; I'm unsure if this is still the case) particularly egregious offender [3] is AdBlock Plus, but µBlock [4] does come highly recommended. [1] http://arewefastyet.com http://arewefastyet.com [2] https://support.mozilla.org/en-US/kb/firefox-uses-too-much-memory-ram#w_disabling-memory-consuming-extensions-and-themes https://support.mozilla.org/en-US/kb/firefox-uses-too-much-m... [3] https://blog.mozilla.org/nnethercote/2014/05/14/adblock-pluss-effect-on-firefoxs-memory-usage/ https://blog.mozilla.org/nnethercote/2014/05/14/adblock-plus... [4] https://addons.mozilla.org/en-us/firefox/addon/ublock/ https://addons.mozilla.org/en-us/firefox/addon/ublock/
- gesman 11y agoI didn't say it slow. It is indeed fast. Thank you for that! Until suddenly the show stops and I have to kill it via Taskmgr to inject new life into it due to memory suffocation.
- chuckharmston 11y agoHmm...that doesn't sound like normal behavior; my uneducated guess would be that there's a specific webpage or extension with a leak. Next time it happens, it'd be fantastic if you could go to about:memory, save the reports, and file a bug with them attached: https://bugzilla.mozilla.org/enter_bug.cgi?product=Firefox https://bugzilla.mozilla.org/enter_bug.cgi?product=Firefox
- sp332 11y agoFirefox is not a bloated memory hog (anymore).
- chovy 11y agoIt would be cool if they took something like NWjs or Electron and made it better. So we could build other apps besides a browser with a cross platform framework.
- hitlin37 11y agoGood thing is servo team is supporting API compatibilty with chromium CEF project. That mean, if you write an html5 app using CEF, it will just work so with servo engine as well.
- ShalokShalom 11y agoPlease please please :D Use this chance and port Firefox to Qt: There are a lot pro`s, who speak for that, front in the row the huge community, the portability, the performance, and the fact that many devs rewrite there existing GUI to Qt, like Musesore, Frescobaldi, Wireshark, Subsurface, VLC, Gcompris, Mkvtoolnix, Dropbox, Megaglest`s Map editor, OpenShot, ufw-frontends, Dolphin-Emu and even two DEs: LXDE and Unity. Please do that and i am Firefox user for my lifetime. :)
- ShalokShalom 11y agoPlease please please :D Use this chance and port Firefox to Qt: There are a lot pro`s, who speak for that, front in the row the huge community, the portability, the performance, and the fact that many devs rewrite there existing GUI to Qt, like Musesore, Frescobaldi, Wireshark, Subsurface, VLC, Gcompris, Mkvtoolnix, Dropbox, Megaglest`s Map editor, OpenShot, ufw-frontends, Dolphin-Emu and even two DEs: LXDE and Unity. Please do that and i am Firefox user for my lifetime. :)
- ShalokShalom 11y agoPlease please please :D Use this chance and port Firefox to Qt: There are a lot pro`s, who speak for that, front in the row the huge community, the portability, the performance, and the fact that many devs rewrite there existing GUI to Qt, like Musesore, Frescobaldi, Wireshark, Subsurface, VLC, Gcompris, Mkvtoolnix, Dropbox, Megaglest`s Map editor, OpenShot, ufw-frontends, Dolphin-Emu and even two DEs: LXDE and Unity. Please do that and i am Firefox user for my lifetime. :)