Firefox 4 gets a clue, plus Bonus Track

Apparently the people at Mozilla finally decided to give their last Firefox release a try on a Linux/Gtk+ configuration other than Ubuntu 10.10’s default, or some diligent user reported to them how awful the new interface looks to the rest of the world who’s not using Windows. In any case, I seem to be receiving new builds through their beta channel, and a few hours ago I got my hands on Firefox 4.0.1 “beta” build 1, whatever that means.

The following picture should speak by itself: (Hint: look between the Firefox button and the toolbar.)

Firefox 4.0.1 toolbar comparison

Before switching to Mozilla Firefox 4’s builds from the Nightly (Minefield) channel some time around mid-2010, I used to follow closely the blog of one of the Debian Iceweasel maintainers, from which I got goodness such as updates on the status of Iceweasel 3.6 for Debian Sid/Squeeze in Experimental, that I used for a while.

There’s a little piece of customization advice for Iceweasel/Firefox 4.0 users posted around January that I overlooked until now.

Turns out that this night after Firefox 4.0.1’s update, I decided that the “Firefox button” should match the Oxygen window decoration in style — because I’m that crazy. I took the ~/.mozilla/firefox/<session>/chrome/userChrome.css modifications from the blog post and played around with various combinations until I produced something marginally uniquer.

Firefox 4.0.1 customization screenshot
#appmenu-toolbar-button > .toolbarbutton-text {
/* oxygen "carved" effect */
text-shadow: 0px 1px 0px white;
/* bold */
font-weight: bold;
}

I am actually afraid of messing around with the many possibilities of XUL/CSS styling further, lest I spend the rest of the month producing my own full-fledged Firefox theme. The fact that I can handle CSS makes this all the more worrisome.

Web browsers and UI design divergence

Web browsers break any established GUI design molds and this is no news for us. It was a necessity to create new controls (also known as widgets) in the ’90s when the Web was still a new, unknown thing and no common consensus on how users should interact with it existed. However, with time this practice has lost some of its technical grounds to become more of a profitable marketing strategy used by giants such as Mozilla and Microsoft to create distinct looks for their products.

Opera 11 screenshot Google Chrome screenshot
Firefox 4 screenshot Konqueror screenshot

Above we can see four browsers I personally consider major players in the GNU/Linux ecosystem in particular. From left to right, top to bottom in descending order of wheel reinvention and UI differentiation, we have: Opera 11 (???), Google Chrome 10 (GTK+), Mozilla Firefox 4.0 (XUL/GTK+) and Konqueror (KDE/Qt4) from KDE SC 4.4.

At the lower end, we have Konqueror, which has been designed to blend in with its parent application suite, the KDE desktop environment, so it uses a common visual design instead of inventing its own. At the top there’s Opera, a cross-platform browser that is not part of any specific suite and attempts to keep a consistent internal look between different operating systems, resulting in various reimplemented controls with different, custom functionality and a visual design unique to this software product.

In the middle we have Google Chrome and Mozilla Firefox, which have chosen to use the GTK+ toolkit to avoid reimplementing too much and concentrate on their actual business, that is, web browsing. But something’s horribly off about these two.

In Google Chrome’s case, we have a default, “Classic” theme that presents the user with the distinctive Chromium look and feel but keeps the standard GTK+ application design for modal dialogs. Embedded input controls in web pages such as checkboxes and unstyled command buttons appear to be rendered by a custom engine using Chrome’s own ideas of what a widget should look like. As Chrome belongs in the GTK+ territory like all of the GNOME desktop environment, this makes it really stand out as an individual application that behaves and looks like nothing native to GNOME or other GTK+-based environments. As an alternative, we can choose to use the “GTK+ theme” in the application’s preferences, which does nothing but switch the color scheme to respect the user’s desktop preferences a bit and fallback to GTK+’s icon paths for some (not all!) toolbar buttons.

This so-called “GTK+ theme” keeps the hideous low-contrast, Chrome-style scrollbar in the web page view area as well, basically mocking users who would hope for some desktop consistency and accessibility by choosing this option.

Mozilla Firefox provides an interesting case. Powered by the XULRunner framework, it aims to blend in with every one of its target platforms, using native Windows controls on Windows and GTK+ as a backend on Linux. However, someone didn’t get the memo with the main window’s tab bar, and instead of native GTK+ versions we get awful customized tabs that do not respect the user’s chosen GTK+ engine. It seems that in Firefox 4’s particular case the developers intended to achieve something closer to Opera in design, which worked in Windows, but didn’t get completed for Linux — probably due to time constraints and lack of volunteers to do the grunt work required in the coding area. Firefox 4 in Linux currently barely resembles the original mock-ups. (To their credit, those mock-ups showcase a really elegant — if somewhat unoriginal — design that is too unfortunately missing in the RTM builds.)

The current strategy appears to be all too profitable right now for these people to abandon it. We’ll probably just see more development in the GUI design department from web browser vendors than operating systems and desktop environments in the near future.

Whatever happened to my hatred of Firefox

My collaborators know well that I often refer to Mozilla’s current flagship browser as “Failfox”. Many have read what I’ve got to say about several versions of Mozilla Firefox before. A few also know my stance on the foundation’s trademark policies and their sole existence.

Yet I can’t bring myself to hate this awesome browser that’s still superior to Google Chrome in user interface design as far as I am concerned.

After switching to Iceweasel/Firefox 3.6 from Debian experimental a couple of months ago — after learning of its status at the website of one of the maintainers — I have had a pleasing and stable experience with Firefox that I’d not had since 3.0 was released. Now I’m also beta-testing Firefox 4 for Windows on my XP SP3 virtual machine, and awaiting the future stable release.

I thought I’d clarify this for those who might have thought I was yet another Firefox-hater, based on my previous rants. Of course, it’s a bit jarring that it took Mozilla and/or Debian so long to stabilize Firefox on amd64 systems, but I guess you can’t ask for more — it mostly is, after all, a volunteer-driven effort, and amd64 builds had not appeared before in the official FTP server until the Firefox 4 betas, for some reason.

Wesnoth.org and the Prosilver transition, Part II

Wesnoth forum - prosilver style (preview)

After some hesitation, I have deployed Prosilver Special Edition on the Wesnoth.org forums, with multiple changes meant to make it more similar to mainline Prosilver in terms of layout. Wesnoth’s custom Prosilver changes have also been applied on our copy of Prosilver SE.

In fact, Prosilver SE as used in Wesnoth.org depends completely on the main Prosilver template rather than its own partial template set, and it also replaces the default Prosilver theme/stylesheets and imagesets, since otherwise very few people would choose to use it. Besides, OAB.

Of course, further changes are not unlikely to occur, depending both on the users’ feedback and my own testing experiences.

Wesnoth.org and the Prosilver transition

Most people who frequented phpBB 2 forums have met the Subsilver theme at some point. Wesnoth’s community is not the exception, and the phpBB 3 switch completed by cycholka/Mist in March 2008 during the third-to-last host migration involved switching everyone to Subsilver2, which is the last incarnation of the good old Subsilver. Most of us Wesnoth forumers have become accustomed to the cleanness, quirks and old-school feel of Subsilver2.

However, that will eventually change.

Maintaining patches for mods affecting the forum user and moderator front-ends involves editing three template sets, which are Prosilver (phpBB 3’s new built-in and default style), Subsilver2 and AcidTech, which is Subsilver2-based with some essential layout differences. There are even some mods that don’t provide MODX instructions for Subsilver2, since it’s not essential for approval in the official modifications database to include support for this style that’s most likely going to be dropped in future phpBB release series.

If you take a look at my Projects section you’ll also notice that I’ve needed to write a couple of Subsilver2 hacks in the past to add minor functionality that’s present in the official phpBB 3 “Olympus” forum theme by default. There’s a third custom change in my tree, corresponding to the Quick Reply editor toggle button.

Continue reading

Google Chrome and a conspiracy theory

I just found out that Chromium (browser) has been in Debian experimental and Sid for a while.

I'm currently tracking Squeeze and pulling some packages from Experimental, in particular Iceweasel 3.6, which feels much more stable to me than its counterpart in Testing, version 3.5 — which will probably have to remain in the upcoming Stable release as explained by one of the package maintainers.

(Granted, I'm a fool who doesn't care about security because I don't visit unknown odd sites at all. If it weren't for this, you'd say I should not be pulling packages from Experimental, but I am, fully understanding the risks!)

Despite I can see other packages from Experimental in my package manager, including a localization package for Chromium, I can't see Chromium itself, which is really odd. I have Google Chrome installed and I pull it from Google's repository because…because it added itself to apt's sources after I installed it for trying it out last year — which unfortunately reeks of Internet Explorer's old “integration” thing that started with IE 4, frankly. I mean, why didn't it even ask me about adding the source? Is it modifying other parts of my system's configuration without my consent? What the hell, Google?

Rant aside, this is a strange coincidence, which could be related to a mirroring issue in any case, but I don't rule out the possibility that Chrome is somehow banning Chromium from my package manager. Alternatively my laptop might be possessed by some evil spirit that wants me to leave Debian's free-as-in-freedom packages for evil “Big Brother” software suites. Uncanny?

*(For the Google lovers and haters in the audience: I'm perfectly fine with using Google stuff, mind you. My main email account is from Gmail, my preferred search engine is Google's, I also use Google Maps, Google Earth, and this memory/method call profiling suite of sorts that Sirp recommended to me. I also use Google Translate and reCAPTCHA. So, no, I'm not really bothered by Google Chrome's additions, but I'm really mildly pissed off at their decision to change my package manager's sources without asking me through debconf or something.)

Mozilla Firefox 3.5

Long, long ago, I talked about several issues I had with Mozilla Failfox Firefox 3.0 and openSUSE 10.3 for the AMD64/EM64T architecture.

Ever since then, I have learned several things:

  1. Debian's Iceweasel fork doesn't seem to be much ahead of mainline Firefox in terms of bugfixes, as far as I can see. This might be not true for security fixes and such; I admit I haven't done any actual research on this and I'm basing this statement on my user experience.
  2. The Download Day was a trap.
  3. Other people who I have talked to regarding Firefox's stability on Linux claim that is never/rarely crashes, but all of them use x86 kernels and userspace.
  4. Iceweasel 3.0 taints the Debian GNU/Linux 5.0 Lenny distribution on the AMD64/EM64T architecture, with no differences in either of my laptops. This Linux distribution is remarkably stable otherwise, and lived up to my expectatives since I originally switched to it when it was the Testing distribution — this is, comparing it to the released openSUSE 10.3.
  5. Off-line browsing is truly, horribly underestimated, to the point that one of the major web browsers does not support it at all; probably in favor of simplicity and ease of use, and “permanently connected people”. But, STILL... 😕
  6. It's not a good idea to leave a chainsaw and a newspaper near the reach of a cow.

I recently switched to Debian Squeeze, which is still under development (e.g. Testing) as of this writing. Originally, I just got a newer revision of Iceweasel 3.0 with the set. Some weeks ago, I got upgraded to 3.5.

As I mentioned in my previous post in this series, the status bar does still glitch a lot — no, wait — the status bar glitches even more than in 3.0. Scrolling is less laggy but only with smooth scrolling disabled, although I am not exactly using a well-supported video configuration at the moment and I probably should not complain about performance issues with any 2D application unless I'm willing to use the unaccelerated X.org VESA driver for benchmarking or shut up.

The Live Bookmarks feature stopped working after the upgrade until I went and manually reloaded every single Atom/RSS feed I had linked in a neat folder in the bookmarks toolbar. It took me a while to realize that nobody posting anything near Christmas was a bad sign — I didn't miss much anyway, since my feed sources aren't really chatty. Yes, I know I'd be better using an actual feeds reader, but I'm just that lazy, which is also why I don't use Opera as much as I want.

However, this version of Firefox is much, much more stable than 3.0 — as far as this AMD64/EM64T architecture user is concerned, that is. Firefox just got better, really. But it's still rather odd because I've heard comments on IRC of people claiming that it got more unstable instead. Hmm... Well, maybe Windows or x86 Linux users are less lucky this time?

Firefox 3.5 also supports the CSS text-shadow property, which was introduced in the CSS level 2 specification, removed in revision 1 (CSS 2.1), and seems to have been picked up again for CSS 3. No version of Internet Explorer before and including 8.0 supports this (although ISTR that they support a shadow filter using a custom extension to CSS that didn't even follow the specification for naming vendor-specific properties), and current Opera, Safari and Chrome support this property well. That means that I must make more use of it in this site's stylesheets from now on. 😉

Google Chrome, Mozilla Firefox 3.5

Some days ago, I was told that Google had released a beta version of their Chrome browser for the GNU/Linux operating systems, all in middle of a discussion about how much Failbox sucked — er, I mean Firefox.

So, I downloaded a Debian package, installed, ran the application, and it crashed on my face right after trying to show the first-run page. That's not a very good start; not even Firefox does that. Then I try to run it again, it worked, okay.

Google Chrome seems to be rather nice, and reminds me of Apple's Safari in appearance. It's fairly quick to start compared to Firefox/Iceweasel 3.0 and 3.5 (which I now got from the Debian testing distribution), and its simplicity feels generally comfortable. I could quickly find an extension for hiding ads and browse some web pages afterwards.

It's pretty nice for testing web pages and even has some neat web development features. However, I'm probably not using it for regular browsing since it lacks an off-line browsing mode option as far as I can see. I have very good reasons for requiring that feature that Opera, Firefox and even Internet Explorer provide. Also, it doesn't respect some fontconfig settings in Debian Squeeze for some reason.

Besides that, I got switched to Iceweasel 3.5 as a consequence of running aptitude full-upgrade blindly. It does appear to be more stable than Iceweasel and Mozilla Firefox 3.0, although I should wait some more time before assuming this to be true; the 3.0 bugs on amd64 Linux were pretty random and sometimes I could run the browser for days without crashing, and in other occasions it would crash after running for a few seconds, while trying to contact a web server for the first time in the session.

There are no visible UI changes in 3.5 as far as I'm concerned (besides the tab bar, and some menu icons which got some hue changes), and some glitches remain — for example, scrolling pages is less laggy now, but only if smooth scrolling is disabled; and the status bar still glitches for the current web site if one clicks on a single link a lot. However, I've heard rumors that many security vulnerabilities were fixed in this version, so I guess it's a reasonable trade-off; not that I'd visit suspicious websites, or worse, run a web browser on Windows.

So, for now, I still use Opera when I need reliability, and Firefox when I forget that I'm supposed to use Opera.

Mozilla Firefox 3.0

openSUSE 10.3 ships with Firefox 2. I switched to Firefox 3 from the "Mozilla" repository a few weeks after it came out (missed the download day/party). So far so good. Most user interface changes are nifty, except for the change of the History menu layout - the history sidebar cannot be enabled from there unlike in previous versions. CTRL-H or the View menu must be used instead. Awkward, but I can live with it thanks to keyboard shortcuts.

Flash-embedding pages (YouTube amongst others) good. No crashes when watching Flash videos although I use a crashy X.org display adapter driver ('radeon'... don't even ask about 'fglrx').

The problem goes when I use seemingly simpler features that I have known since at least Firefox 1.0. I am a laptop user, and I'm often disconnected from the Internet. I use the browser's cache to read pages that I had already skimmed since I can't be bothered to keep zillions of HTML downloads in my home dir. Then problems arise.

Seemingly this version Firefox crashes at random, specially when its session has run for long (t > 30 min.) time and one does stuff in the page view area such as scrolling or clicking on text while the sidebar is active. What a pity, because I like the history sidebar much better than this new separate "Full History" window. More pity is that the cache gets invalidated after a session crash and its contents get wiped out. Of course... I'm not the best person to judge whether this is a bug or a feature, since I don't know much computer security; but I can tell it annoys me to the point I have to be doing backups of the cache et al after closing Firefox successfully:

$ rm -rf ~/.mozilla2 && cp -rf ~/.mozilla ~/.mozilla2

Then if Firefox 3 crashes, I restart it, close it again, and restore the Cache directory from .mozilla2/firefox/SeeminglyHashedSessionId so I can continue reading from it when I'm offline.

By the way, the offline cache (for any browser) seems to be often underestimated. Some time ago, after the www.wesnoth.org server crash, I got some forum pages from Firefox's cache and uploaded them to this website in a hidden directory to serve as a partial, temporary mirror for people for having a guide to get back to work after the 2-months roll back of the forum's database.

The cache issues apart, the fact that Firefox gets crashy for nothing disturbs me. Wasn't this version supposed to be more stable than 2.0 according to the announcements? The rendering also got some performance regressions. Some pages take longer to be rendered than downloaded, specially those with heavy use of scripts. Those affected pages usually are also sluggish to scroll up/down, no matter if I disable "smooth" scrolling. I never experienced anything of this with the same pages on the same OS (openSUSE 10.3), the same architecture (x86_64) and earlier version (2.0.0.x) of Firefox.

Perhaps this whole download-day thing was just a trap. Or they put more attention to the Windows and MacOS X ports rather than the GNU/Linux one. Or I am cursed to have bad luck for the rest of my life. Whatever it is, I don't like it, and I'm seriously considering switching to a better open source browser for Linux; IceWeasel may be it if it is a fork that is being developed on its own. I have yet to do the switch to Debian.