Saturday, April 19, 2014

TenFourFox 29: it's almost here

When we last saw Australis (TenFourFox 29), it was in a crashy, buggy form that didn't display correctly. Since then, it has now progressed to the point where it looks almost identical to "real" Firefox Australis, and better still, this blog entry is being typed in it; all the showstopper crash bugs from before so far are fixed, including fonts, background threads, session restore and the colour and file pickers.

And here it is:

As you can see, the swoopy tabs and lines have made it, along with the staggered "traffic light" buttons, which required some hacking of the HIToolbox to work. (If anyone in the future is wondering why HIThemeDrawTitleBarWidget() is not drawing your desired widget, remember that the rect you're supposed to be passing it is the content area, i.e., the part of the window that isn't the titlebar, not the rect you actually want to draw the widget in.) While we don't use some of the gradients and still shade the upper part of the titlebar flat, mostly for reasons of performance, pretty much everything else in the user interface is the same. Most of the graphical glitches are also repaired and I was able to salvage our AltiVec WebM acceleration through the libvpx update as well with only a couple tweaks to the assembly language code. Plus, good news to those of you vehemently opposed to Australis: several of the anti-Australis add-ons I tested work perfectly in TenFourFox 29, so you'll be able to get your square tabs back right away.

Overall 29 seems somewhat quicker than 24, particularly on pages that do a lot of pixel-pushing (the unfolding fan rollover on is an excellent example -- 29 animates it substantially faster). It also generates better baseline JavaScript code, which is important because we still only have PPCBC and not a full IonMonkey implementation. And now that I've been using Australis more, even though I miss having the full title at the top, I'm finding I don't despise it nearly as much as I thought I would.

That's the good news, and here's the bad news: there are still two mild-moderate bugs and one major one I just discovered earlier today. The mild-moderate ones are that thumbnails in the new tab page still come out blue, an obvious endian problem, but I can't figure out where the fault lies (I know it's being written to disk that way, but other screen shots do work, so it must be a problem in the encoder somewhere), and that audio and video-with-audio in getUserMedia don't work (they don't hurt anything, but they don't do anything). These are annoying but neither is a showstopper, because we never fully supported tab snapshots anyway after Mozilla moved them to the background and we can just turn them off, and getUserMedia still works for video-without-audio and still image grabs, which right now is still really its only use case since we don't support WebRTC.

The major one, though, is that SVG filters are completely screwed up and pages that appear to depend on them (apparently the new Google Maps, for example) don't render properly. That's not shippable, but the change that caused it (bug 924103) is going to be a horrifically long slog to go through. In addition, I still don't know if all the interface hacks will work on 10.5, but I have no reason to doubt they will, since most of the stuff I added is in CSS/XUL and not in the widget library. However, I might need to tweak the code for drawing the traffic light buttons, since it's fragile and hacky and uses direct pixel measurements; we'll just have to see how well that works. If I can't find an obvious solution to the SVG filter problem by next week, I might still release it anyway so you can play with it, but I'd advise you use a separate profile and keep 24.x around for the time being. It might turn out to be Mozilla's bug, though.

24.5.0, meanwhile, will have a fix for an intermittent crash introduced by the webfont blacklist in 24.4.0 (issue 265), which was entirely due to me not noticing the font name gets released prematurely. Other than that, 24.4.0 has been pretty quiet for bugs. The release to you, the testing audience, might be a little late since I'll be in and out most of this week on business but should still come out formally on Monday evening or early Tuesday as usual.

Unfortunately, the same can't be said for Firefox 29 on other big-endian platforms; bug 961488 is still plaguing Firefox on 32-bit Linux/PPC and the various BSDs, as well as 32-bit SPARC. I'm trying to assist them in the bug, but as you can see, it's not reproducible on OS X and I don't have a Linux setup to build and test on. Hopefully they can pull it together or there won't be a Firefox 29 on your favourite alternative operating system.


  1. God speed, Sir! You are clearly fighting the good fight! :-)

  2. Great work! A few comments:
    - Traffic light buttons in 10.5 are indeed different, both by themselves (different color and highlight scheme), and in the way they appear to be "embedded" in the window. Dimensions seem to be exactly the same, though.
    - In your screenshot, the rounded window corner next to the traffic light looks odd. Like there are some pixels stuck or too dark, giving it a pixelated or fuzzy appearance.
    - The missing title bar (or: the tabs being drawn half-way into it) in Australis does save some screen estate, esp. compared to the default settings of TFF 24. I measured (from the window's top edge to the content area):
    76px TFF 24/Tabs on bottom/small icons (=what I prefer)
    78px TFF 29/Australis
    79px TFF 24/Tabs on top/small icons
    83px TFF 24/Tabs on bottom/big icons
    86px TFF 24/Tabs on top/big icons
    Not too bad.
    Happy Easter!

    1. - The rounded corner problem is in 10.6 as well. I think it's a general issue with software rendering. We'll see what Mozilla comes up with for that.
      - As long as the pixel dimensions of the traffic light buttons are the same, that is very encouraging for 10.5 working with little or no modifications.

      Interesting note on the title bar measurement. For better or worse, though, here we go.

  3. I don't know how you do it, but man, you are awesome. The joy of using TenFourFox is why I keep my old machines around.


Due to an increased frequency of spam, comments are now subject to moderation.