Wednesday, September 26, 2012

TenFourFox 17.0a2 is now available (read release notes; download from Downloads tab). As I threatened promised, there will be no 16 because I want people banging on this version hard -- it's going to be the new stable branch, after all. There will be only two more 10.0.x releases, 10.0.8 in a week or two, and then 10.0.9 simultaneously as the last legacy release together with 17.0.

17 is really very nice. Graphics performance is significantly better and I also took the liberty of pulling a couple low risk bugs from 18 to speed up the URL bar completer (bug 781588 and bug 794520). There is also an integrated debugger and lots of new development tools, and quite a number of bug fixes, though pdf.js is still not ready for prime time.

On our side of the fence, 17.0a2 repairs bookmarks search, which was an endian problem since 13.0 (issue 177) and a long-running nuisance with the manual update window not properly handling No Thanks, which sounds like a feature but actually isn't (issue 130) and which will be backported to 10.0.8.

We also have a mitigation (issue 171) for people who were bitten by Tenderapp problem 2 and fonts just corrupt enough to still be useable by the OS but fail in Harfbuzz, which is the OpenType shaper used in TenFourFox (ATSUI, which was used in Firefox 3.6, is not suitable for Firefox 4+, and the secret CoreText in Tiger does not support enough features to be useable for this either). Ordinarily corrupt fonts should be simply disabled in Font Book and the font cache cleaned out, as they could be problematic for other apps. This is hard to do with common fonts like Arial, Helvetica and Times, so now you can set a pref in about:config to tell TenFourFox to find another font (tenfourfox.gfx.badfont.arial, tenfourfox.gfx.badfont.helvetica and tenfourfox.gfx.badfont.times, respectively). You can combine them into a set if you like, or disable all three of them. Please note I can't predict what font it will pick because that depends on what you have installed; it will find something it thinks is similar, which might occasionally be totally wrong, but should at least be legible. Please note that most users will not need this and in fact I have never been able to reproduce this on any of my machines, but there are enough people with this issue in some manner that hopefully this mitigation will help them if they cannot disable the font otherwise. After setting one or more of these preferences to a new value, please restart the browser. I will consider adding other fonts to this list, but they should be ones that people cannot disable easily -- I do not want a whole string of font exceptions in the code.

There is at least one major bug in 17.0a2, but we do have some time to rectify it; apps that do a lot of canvas painting and animation don't update properly. This is really a Mozilla bug (bug 794337) but I am concerned that now that Mozilla has dropped 10.5 for 17+, they may not fix the problem since every supported Mac now is capable of hardware acceleration and this is only a problem for systems that are not hardware accelerated -- like us. So we might be going it alone on this one, although I did find a regression range to help speed up finding a fix.

As threatened, 17.0.x will be the final version to support building with gcc 4.0.1. The fixes required to get the browser to build and link with it are now voluminous, and I even discovered at least one miscompilation which was totally wrong and had to be rewritten. While 17.x will be built with 4.0.1 for the remainder of its life, this is the end of our use of Xcode-based gcc. Mozilla, in fact, is now requiring clang to build at all on OS X, but we will short-circuit this, of course.

In other Mozilla news, the IonMonkey has landed in Firefox 18, the new JavaScript engine for long-running apps. I wish I could be more positive about this, but the numbers being posted are not as impressive as I would like even on the core Tier-1 platforms, especially given the large amount of work that will be required to port IonMonkey to PowerPC. IonMonkey really only significantly runs, and benefits, apps with relatively long runtimes; "old" JaegerMonkey with type inference handles most of the rest. Nevertheless, it's going to be an important part of future versions of Firefox and I am exploring what work needs to be done for our port to be successful. The silver lining is that it does offer additional optimization opportunities that JM+TI do not, and like JaegerMonkey during the TraceMonkey days, we don't need to implement it yet.

Mozilla is also putting the final touches on 16.0, the last version of Firefox to run on 10.5, and this will probably also be the end of SeaMonkey-PPC unless hikerxbiker starts doing his own local changesets to deal with that (right now the browser is more or less built "vanilla", and the ESR as written will not run on 10.5 unless it is modified). Given the pattern of dropping support before an ESR, it seems probable that Fx23 will be the last version to support 10.6 and "real" Mac OS X since 24 is prospectively the next ESR after 17. When Mozilla requires 10.7 as a minimum, we're going to be in hot water because every system will not only be hardware accelerated, but also 64-bit, and 64-bit builds on G5 have not worked out very well (and would exclude our many G4/7450 users). That's a very likely time to think seriously about dropping to feature parity.

If you are interested in localizing 17, now is the time to get started. Chris continues to head our localization efforts in issue 42.

I will be releasing a 17 beta to general audiences next month, after 10.0.8 comes out for stable-branch users. Watch for it then. Please test 17 carefully against any tier-1 platform, since there are still some significant Mozilla-general bugs present that they need to repair, as is typical for Aurora. Enjoy.

Wednesday, September 5, 2012

We will be chemspilling 15.0.1 for a serious issue found after release that basically makes private browsing mode useless (Mozilla bug 787743). This also affects those of you on AuroraFox, since both 16 and 17 are also vulnerable; that's Tobias' call whether to rebuild. I expect to have builds available probably on Friday or Saturday. This issue does not affect 10.0.7.