A few people have been noticing how good our support on Linux has gotten during the Firefox 3 development cycle and I thought I would post to try and point out some of the good stuff that we have coming down the pipe.
Native Widget Support
Thanks to the awesome work of a pile of contributors, the native theme support on Linux has gotten much better. The guys doing this work include Ian Spence, Julien Rivaud, Michael Ventnor, Matthew Gregan, Teune van Steeg and Ian McKellar.
Mixed with the new native form controls that we have for all platforms coming up for Firefox 3, the results make the web so much more pleasant to use. Here’s an example of how much nicer forms will look with Firefox 3 on Linux:
| Firefox 2 | Firefox 3 |
|---|---|
![]() |
![]() |
Desktop and Icon Integration
The Tango guys have been doing a lot of work on building an icon set for Firefox 3. But they aren’t just making new icons. It’s more than that. It’s also making sure that we use the native icons wherever we can. You can see screenshots of the various themes in this arstechnica article and in an Icon sheet that Alex put together. The guys doing the heavy lifting for the Tango icons are Andreas Nilsson, Kalle Persson, Ulisse Perusin, Jakub Steiner, and Lapo Calamandrei. Michael Ventnor and Michael Monreal have been doing work to make sure that native Icons are used whenever it’s possible.
I made some images that show some differences between Firefox 2 and Firefox 3. I suggest that you look at the full image with notes for the Firefox 3 image. It will show you some of the more subtle things that the native theme code does today to create a really good experience.
We’ve started to explore deeper desktop integration as well. For example, we have a service that can connect to DBus and we listen for NetworkManager changes to determine when we should be online or offline. Since this is a service I’m pretty sure we can extend this to other places as well, including from XUL chrome and Firefox Extensions. (Maybe it’s time to move away from the horror of XRemote and move to a DBus service for activating a browser instance at last?) Robert also landed patches that he did when he was still at Novell to do proper startup notification.
Cairo and Pango are first class citizens (and then some!)
Way back in the day I did the original patches to start using Pango in Firefox as another font backend. Since then that work has been migrated into the core of the rendering engine and is used as the native font backend for Linux.
Cairo has gotten an even deeper integration into our engine. Vlad did a great post on the rendering infrastructure that’s coming in Firefox 3 and if you look you’ll notice that Cairo is our base rendering engine for all of our platforms. Vlad and other contributors did a lot of work to improve Cairo for Linux, Windows and the Mac. This is a great example of where we needed a library for all of our platforms and our investment to make sure it worked everywhere really benefitted Linux.
Other Platform Improvements
There are a staggering number of platform improvements coming in Firefox 3. In the area of memory use and performance we’re making good strides. One example that affects Linux is the use of Pixmap memory by Firefox. Federico originally wrote a patch that ditched pixmap memory from the image decoders. Stuart did a lot of work to get that into our tree and we now throw away pixmaps after 60 seconds or so. This should keep a good balance between performance and memory use and will improve the perceived memory consumption of the browser. (Note: this still needs to be ported to the GIF decoder – looking for someone awesome to volunteer to do it!)
Stuart has been doing a huge number of blog posts about the work that he’s been doing in looking at memory fragmentation. Part of mitigating fragmentation as an issue (we can’t eliminate it completely) is removing allocations entirely or moving allocations into their own pools. Stuart posted the results (including a pretty graph) of what it looks like when we remove 100,000 allocations from the startup path of the browser. We’ve also been looking at using per-document memory pools as a way to mitigate some of the effects of fragmentation. Connecting allocation pools to the lifetime of objects seems to be the right way to think about the problem, and documents have a well-known lifetime.
That’s just one area in which we’ve invested in Firefox 3′s platform. You should take the time to walk over and look at the list of new features we’ve got coming up in Firefox 3. You should go look at it. Right now. No, really, I’ll wait.
Did you look yet? No? No, really. I’m fine. I can wait. I have the time. Go look.
It’s an impressive list, isn’t it? I certainly thought so the first time that I looked at it.
Investing in GNOME
I thought it would be worth it to talk about some of the more general investments that the Mozilla Foundation has been making in GNOME. Mozilla has joined the GNOME Advisory Board (although we’re not listed on the web page for some reason) and we’ve been funding a fair bit of work on Accessibility. Behdad posted about it and it was mentioned in Frank’s overview of 2007 grants that were done. It amounts to around $150k in investments to date and we’re trying to figure out how to direct money along with GNOME on some more accessibility efforts as well. So we’ll continue to see investments from Mozilla to GNOME and hopefully see a closer relationship come together as we continue to work together on open source, open format issues and continue sharing technology.
Overall I think that things on Linux are pretty healthy. We’re going to be able to deliver a top-notch product on top of Linux, we’re working well with other projects and our technology works really well on the platform. What we’re going to deliver is better integrated, faster and smaller and brings all the work that we’re doing to improve the web to Linux and we’re doing it at parity with the other two major platforms. I’m very excited to see how people react to the new browser on Linux. I think they will be very happy with it.




If I could think of an area where mozilla could really investigate in the platform, gtkmozembed comes into mind. While this widget has a real great rendering core it simply lacks to many gtk+ features and is thus not completely stable to use.
I would really appreciate if someone would code a new mozilla rendering widget which maybe implements a common gtk+ interface with webkit so that they could be used on users preference.
Other than that – keep up the great work on firefox!
Yeah, I left out a pile of stuff on the app embedding story. Partially because I’m not entirely sure what’s going to happen in the Firefox 3 time frame and also because I know that things are in flux right now. But they are also improving. We want to make sure that people can embed the engine from Firefox very easily and until now that hasn’t been that easy.
I’m looking to see if we can integrate the work that Marco did on the OLPC browser and make it easy to use Firefox from a python app, for example. Cleaning up file locations and extending the embedding api to support reasonable functionality seems fine, too. There are some bugs open on that and discussions are underway. Once we have a better sense of what the next steps are I’ll certainly post about it.
Hi Chris, I’lll assign myself some actions to announce the MoFo/Advisory Board stuff :-)
Sounds good. Let me know if you need any help from us.
Has any work by chance been done to integrate Firefox’s awesome session restore feature with Gnome’s “Save Current Session”?
Firefox is one of two apps (the other being rdesktop) that I have to deal with the “does not support ‘save current session’” dialog for every time I log off. Which is perhaps forgivable for rdesktop as it’s not a Gnome app at all, but not so much for a Gnome app that HAS a session restore feature…
If you want to be much more precise just substitute the word “Linux” for “Linux with GNOME” in the whole post. That would be much much better and much precise. Saying that FF has a good KDE integration based on the fact that now it uses the default icon set and has a cleaner and bit more neutral theme is, in the better case, shameless.
Oh, and, when you say “we [Mozilla & Gnome]]’ll continue to see investments from Mozilla to GNOME and hopefully see a closer relationship come together as we continue to work together on open source, OPEN FORMAT ISSUES and continue sharing technology”, looks like and irony, according to the actual position of Gnome regarding some big “issues”.
Yeah, a big thank you from here. FF2 ate memory happily on my system, but FF3b2 is sitting now at a comfortable (but improvable) 100MB RSS… a welcome change from FF3b1 which somehow sometimes decided to eat gazilions of RAM which brought my system to its knees…
It’s true that we’re closer to GNOME on a lot of issues. There’s a pretty natural alignment there, at least partially because we don’t have to compete with a browser or a default toolkit on GNOME. And it’s a function of history as well. Licensing, the people involved, etc. For the record, lots of people who use KDE also use Firefox. I would love to see more engagement from the KDE community. But I’m not sure how to make that possible.
What is it that you’re referring to about open format issues, specifically?
Stuart, regarding session saving, I don’t know if anyone has done that work to date. The session save/restore stuff is a great place to start from and I seem to remember someone working on session saving integrated with X recently. But I’m not sure if anyone has completely closed the gap.
Those screenshots look extremely delicious! I am itching to install that goodness… Although people won’t necessarily consciously notice it those are great steps for the usability of Firefox on Linux.
Stuart,
On the latest FF3 I can load a bunch of tabs, log out of GNOME, log back in, launch FF, and the tabs I had loaded before come back automatically. FF2 would always complain with a dialog about “blah blah restore session?” but I haven’t seen this in FF3 yet, so there has been some improvement there.
Saving the desktop session and stuff still seems broken though.
* Note: anectdotal evidence from someone who always logs out without closing firefox.
Just picking up on the KDE issue, given that from what I have seen before “no-one volunteered to maintain it”, and given that Mozilla now has somewhere over 100 developers, couldn’t just one of them be given the leadership of KDE integration and hence try to make at least some way into getting a team together?
As far as I can see it, there’s *no* information on what would need to be done to start supporting KDE better in the Mozilla codebase, except for find the GNOME code and copy it for KDE. If there were some useful pointers as to what needs doing, which bits of KDE need to be hooked in etc, useful docs, and someone who’s willing to review it all, then you may start getting folks interested in helping.
In the meantime, it’d be nice to have some real commitment from Mozilla rather than just a we’ll support you if you do all the work.
I hope it’s true the part where is said:
“What we’re going to deliver is faster and smaller and brings all the work that we’re doing to improve the web to Linux”
Firefox in Linux is a shame!
(and I’m not talking about theme stuff, i’m talking about performance).
Gnome’s (official and non-official ) position on OOXML.
Miguel Branco: GNOME supports open formats. Don’t state otherwise, it is not correct. Yes, one person spends a part of his time on adding OOXML support, that doesn’t mean GNOME doesn’t support e.g. ODF.
Attributing OOXML as ‘against open formats’ is not a logical conclusion.
It looks so much nicer than FF2! One thing you neglected to mention is that it also takes colour from the OS for highlighting text areas, etc; as I type this, there’s a nice Ubuntu orange glow around the box!
If I was being a little more greedy, I would ask for an icon to appear in the notification area so we could hide/display FF, but that’s really not essential…
Anyway, good work; it looks great.
Nice to see such a great new feautures in FF3! And GUI improvements are nice too!
To be fair, your exact look now will depend on the theme engine, and some of the themes out there are pretty broken (e.g. the ClearLooks over here on FC4 doesn’t distinguish between enabled and disabled checkboxes and radio buttons). The native widget code also has a noticeable peformance cost.
For that matter, cairo and pango have a very noticeable performance cost as well, partly as a result of cairo relying on Render. A number of “easy” cases (e.g. scaling an image with no alpha channel) end up taking the slow path in Render; scaling such images with Render using the “fast” algorithm is noticeably slower than scaling them with Xlib.
We’re getting a number of interesting graphics features, but we’re paying a nontrivial performance price on common already-worked-before-the-switch-to-cairo things. It would be nice if some perfomance work on Render happened and got backported, but given my (admittedly limited) interactions with Xorg developers, I just don’t see the latter happening, even if the former does. The former doesn’t look like it’ll happen in time for Fx3, and possibly not in time for Fx4 if things go as planned on the Mozilla side…
Apparently, there’s also (finally!) some progress on a native gtk print dialog:
https://bugzilla.mozilla.org/show_bug.cgi?id=193001
In one of the blogs you linked above, (allegedly) Asa Dotzler pulled out some numbers about Firefox platforms usage, 95% windos, 5% osx, less than 1% linux. I’m curios from where these figures come from and if you can back them up.
He wrote a couple of things about (linux) vendors lock-in and WM fragmentations, but i’m not interested about those… ^__^
No, bkor, I’m not suggesting that Gnome does not support open formats. Gnome is absolutely GNU compliant and I won’t say otherwise.
Other is thing is politics. And Gnome is badly playing to politics, in such a dramatic matter (for FLOSS) as OOXML is. I suggest reading this statement very carefully http://www.gnome.org/press/releases/ecma-tc45-statement.html. Note first that, Gnome has decided to participate in the “ECMA” and “in TC45-M — the technical committee reviewing Microsoft Office Open XML, or “OOXML”", Second, they are there “to make sure that OOXML was documented enough such that FLOSS implementations were possible without a huge amount of pain”. Third, they (Jody) are there to raise “hundreds of issues with the documentation of the format, which will demonstrate a significant, material, on-going benefit to FLOSS implementations of OOXML and as a result, to users of FLOSS products that require such interoperability”. Four, they even state that “Both ODF and OOXML are very heavily influenced by their implementation heritage, neither are likely to deliver the “one true office format”, and both communities have — in their own way — played a role in this erosion of trust.”. Wow, I can’t understand why SHOULD be made and effort (PRESENT OR FUTURE) on having interoperability with OOXML as it is a closed standard which isn’t really used massively. OOXML is a vitiated format, thought to combact ODF as a standar. OOXML should never be passed as an ISO standart (there’s already ODF aproved for the same function and it is badly implemented) and no FLOSS organization should waste not even a second of its time in improving it as and standard (which is what Gnome says its doing at that committees) or may be doing in a future (as an organization or by individuals related to Gnome). Romans said: “divide and you’ll win”. Gnome can’t see that OOXML just serves that purpose. The point is, I can’t see what Mozilla has to learn from Gnome about “open formats issues”. Is Mozilla too planning future support of OOXML too?.
Oh, l absolutely agree with Standar8.
Great Post!
One more issue that still needs to be enhanced with Gnome is Firefox taking the Gnome’s Proxy Settings (or at least having the option to).
Regards
Marcelo
On Windows, Firefox uses native File Save/Open dialog box. Why are we forced to use GNOME’s horribly deficient File Save/Open dialog box if we are using KDE? If Mozilla wants to help GNOME, I recommend they start by offering some help on this front:
http://ubuntuforums.org/archive/index.php/t-413457.html
Nothing at all was said about font rendering quality. Is there any development on that front.
Font display in FF2 on Linux was pretty horrific and used to hurt my eyes so badly that it gave me headaches.
I do hope that things have improved for FF3.
I have been using Linux for several years. I have NEVER cared for Gnome. Yes, there are several very nice applications but Gnome itself, as a window/desktop manager, is awful. Unfortunately many well known companies and organizations continue to give their support to it. I’m all for each person having their personal choice of windows managers but puhleeeease! At least give equal effort to KDE as you would to Gnome.
I personally can’t stand Gnome. Over the years I have numerous times read some glowing review of yet another “outstanding” Gnome release and rushed off to give it a try only to find, in less than 10 minutes, its just as bad as it always was. I don’t even bother looking at it anymore.
(BTW, I use Kubuntu currently)
Lisa J. – yes, the rendering on Linux (I got Gutsy) is now A LOT better, in fact as in windows. That’s why I’m using only the Firefox 3 beta version, can’t wait for the final release.
@MIguel Branco
“Other is thing is politics. And Gnome is badly playing to politics, ”
The rest of your statement doesn’t clarify above. GNOME is doing something you don’t like. Too bad. Further, nitpicking some statement into meaning something else doesn’t help (Microsoft gets slapped around enough in the statement to make GNOME’s position clear).
@lpbbear: No software is released without bugs. However, unlike some software we do accept bugreports. I don’t understand why supporting either KDE, GNOME or some other desktop environment can be seen as ‘unfortunate’. Shouldn’t you complain as well about e.g. Mac OS X support?
Note that GNOME is a desktop environment. Metacity is the window manager and that can be replaced as long as the new window manager follows EWMH standards.
Regarding looking good on KDE: Adding support for the icon specification means that Firefox can more easily use the KDE icons (by determining KDE’s icon theme.. far easier than a total lack for icon theme support). IIRC some distributions ensure the same icon theme is used for GNOME and KDE, ensuring that Firefox will look the same in both desktops.
@Johannes: there’s an – unfinished – attempt to rewrite the embedding widget, see: http://www.gnome.org/~chpe/git/gnome-gecko-embed.git/
Overall I’m happy with the improvements, especially in those cases where Epiphany will benefit from them! ;-)
Pingback: Richard Spindler’s Weblog » Blog Archive » Making the web so much more pleasant to use!
I’m working on DBUS bindings for javascript which will hopefully make additional linux desktop integration easier in the future.
http://groups.google.com/group/mozilla.dev.platforms.linux/msg/988927e098b7b38c
And what about printing support for linux?
That seems to be a major issue for me. Often, I resort to konq to print things, because it is integrated with cups in a way that allows printing niceties like 2-up, print to PDF, etc that are old-news kind of tricks on alternate platforms like Mac OS X. In addition, the page rendering for printing seems all mushed and, well: icko. Often icky.
Any word on when linux will have parity with printing?
(Warning: long and detailed)
Justin had a good point (about the dumbed-down-too-far GTK FileChooser). GTK already has RFE bugs, with code attached, to make a couple of enhancements, and Firefox/Thunderbird really should expose them after assisting Gnome to implement the improvements.
(1) Context menu (at least), or a Preference (active all the time when set) to display and thus allow sorting by last-changed TIME, not just DATE; and
(2) Similarly, display and allow sorting of the selected directory by file SIZE.
But GtkFileChooser() has allowed allow selection of multiple files for years (Boolean gtk_file_chooser_get_select_multiple.) Firefox should allow File…Open File… to select and open multiple files of supported types in separate tabs, BY DEFAULT. You don’t even need a pref for this– just allow it! If the User wants to open only one file (jpg, or html, whatever) and clicks “OK” after selecting it, he is not FORCED TO select more files.
It’s even more important for the common occurrence of attaching multiple files to Thunderbird Emails– without going all the way back to the toolbar and re-clicking to get back to the PLACE YOU WERE to attach the next file.
- – - – -
Yeah, GtkFileChooser looks like a TRS-80 screen next to Microsoft’s “Windows Explorer” double-paneled tree. But, you could AT LEAST allow selecting multiple files (with no GUI involvement at all). And, if you really care to work with Gnome, help them/encourage them to implement those needed optional columns and have the column selection under Gnome’s control– just add options to “show files sizes” and “show exact time last changed” to the already implemented “show hidden files” context pop-up.
Yes, there have been bugs on Bugzilla. You point at Gnome, and Gnome has done nothing. I hope your increased involvement improves this. Right now, I often have to pop up a Nautilus (or Krusader :)) to see which file I really want to select. And, of course, leaving the selection of multiple files, for “open” or TB “attach file”, as an impossibility is almost purely Mozilla’s neglect.
Thanks for blogging, thanks even more for reading. It would be nice to bring this butt-ugly FileChooser a bit closer to the usefulness of the Chooser which Microsoft has been suing for over a dozen years….
Rick,
That is good to hear. But, how about allowing one to rename files and folders from that same dialog box? It is so frustrating to have to open a separate program and navigate again to the same folder just to do that.
Pingback: tecosystems » links for 2008-01-06
Pingback: Steve Wills Weblog » Blog Archive » Firefox 2 and Firefox 3 on Mac Compared
I agree with earlier posters that definitely more effort should be put in better integration with KDE. I don’t like that whole Mozilla bias towards Gnome. I really think FF is the best browser, but the really pitiful File Save/Open dialog box called by FF has made me consider ditching it for Konqueror (which is a superb File Manager, but not as good as Internet browser).
The remark that cooperating with KDE is more difficult because it has a competing browser is really the Open Source spirit unworthy.
Pingback: Christopher Blizzard » Blog Archive » michael ventor’s work
I see Firefox 3 now has a native gtk print dialog: http://ventnorsblog.blogspot.com/2008/01/print-me-print-me-print-me-man-after.html
Yes, it’s very hot!
Just read about the formal linkage of GNOME and FF. As a KDE user feeling more than a little betrayed but not too surprised, I must admit.
While I’m late to this little party I feel the need to remind you, as others have that GNOME != Linux and never has.
Sad, really. To link up with a desktop so deeply ingrained with Mono, Moonlight and OOXML.
Not to mention writing off approximately half of the Linux desktop users out here.