Wednesday, August 3, 2016

45.3 beta 1 available

For better or worse, I bring you fire TenFourFox 45.3 beta 1 (downloads, hashes, release notes).

Like pretty much every major ESR jump from before, some sites will be faster and some sites will be slower. The biggest new change is that we are now building the full Intl API with ICU support (issue 304). We were able to get away without it in 31 and 38 due to various hacked-in stubs but now too much in the browser (let alone add-ons) requires it. To avoid issue 266 we build a shared ICU and shared data file which will degrade startup time while they get searched and loaded along with all the others. There are also new UI features in the browser such as search suggestions (which you can disable) that add overhead, and certain layout and rendering operations are more heavyweight than they were in earlier releases. I've tried to load in some later performance updates to counter this last issue, but they don't erase the delta completely. On the plus side, however, as mentioned previously JavaScript JIT performance jumped 20% between 38 and 45, and low-level graphics performance and software pixel pushing is faster which manifests in better animation performance and smoother scrolling.

Remaining issues include Amazon Music failing to advance tracks in playlists (the JIT has been exonerated, so I'm still spinning my wheels here), disabling the last remnants of signed extensions (which I philosophically disagree with) and changing the update notification source. Otherwise it seems to function very well once it's loaded everything and got most of the browser chrome in the JIT. The browser is tested on my usual lab machines, the 16GB monster Quad G5, a 1.5GB 1.33GHz iBook G4, a 1.25GB 1GHz iMac G4 15" and a 2GB 450MHz Sawtooth G4, all running Tiger. TenFourFoxBox appears to work with no changes needed but you may want to keep 38.10 around for right now if you are using foxboxes heavily, just in case (please report issues as you find them).

On the build side, pretty much the process is the same as 38 except that gcc 4.8 is now required. The MacPorts build of gcc is what I use, and I'd like to hear if other builds from our other unofficial package maintainers also work. The hacked strip7 unfortunately is still needed for stripping release binaries to handle the variant N_SECTs in the object files. One irregularity is that gcc 4.8 can't distinguish Objective-C messages from C++11 lambdas, or rather, that Objective-C++ has priority over lambdas, so that you can't reliably use both language features in the same file. This occurs in exactly one place in the entire code base, in code we don't support anyway, so it's #ifdefed off. If your local changes run afoul of this, try adding #define GCC_SUCKS_MOOSE_WANG (yes, really, I was a bit peeved that day) and see if it builds with that, or put the C++11 lambdas into another file and have your Objective-C++ call it instead. The build instructions are updated and available now, and with luck our esteemed colleague in the Land of the Rising Sun will be able to build Tenfourbird on the 45 base as well. Also, as you will see, the G3 version built just fine and will still be supported in 45 and thereafter.

Localizers should be aware of two new files, TenFourFox.dtd and TenFourFox.properties, which will be the locale basis for features I am considering or planning to release. I'd rather have translations for features I decide against implementing than not having strings for features I do implement, so almost nothing in those two files (which are roughly the same strings in different places) is being used right this second; that said, however, the idea is to roll out features using these strings during 45's lifetime as we move from source parity to feature parity and this will enable me to do so more quickly. If you would like to contribute to the localization effort (we really appreciate it), Chris T wrangles the cats in issue 42. The aim is to have substantially the same languages available for 38 available for 45 at or near the time of release in about six weeks. Your help is invaluable in this effort.

Finally, let's give 38 a rousing round of applause for being a solid, long lived branch release as it rides off into the ESR sunset. Its end also means the end of one of the oddest chapters in Firefox history, Debian Iceweasel, which has now reverted to being "just" Firefox as of 45ESR. Although both we and they rebranded ourselves because of various changes to Firefox we were making, we'll still be keeping our name because we really do change the feature set and make various platform-specific changes Mozilla would probably find unacceptable otherwise. Plus it gives you guys something to still complain about, along with the icon. :)

Don't file Github tickets on beta issues; post them in the comments. Please be kind. This was literally months of work. Thanks and let's start banging the bugs out.

24 comments:

  1. Can I ask what's the exact behaviour of amazon music when you advance tracks? I can't seem to reproduce it on 45.3. Is it on amazon digital music ?

    By the way, it is very fluid on a dual 7447A@1.53ghz.

    ReplyDelete
    Replies
    1. It's in the Cloud Player. It doesn't advance from track to track in playlists automatically at the end of tracks or sometimes at all. If you're seeing something different, please advise.

      Delete
  2. Feels solid on 10.5 (1.67 GHz G4). The UI is quick, pages load fine so far. Heavyweight stuff like Facebook and the Wordpress editor seem a lot more responsive than in 38, even after the browser has been up for some time. Thanks for your hard work on this.

    Interestingly, Youtube offers to switch the video resolution in TFF 45 instead of 360p only. 240p is a good compromise of quality and playback performance. On higher resolutions, though, frame dropping doesn't seem to work right, so audio and video are quickly out of sync.

    I'll try to produce a German test localization this weekend. Since we can't see (yet) where and how the strings for new TFF features will be displayed in the browser: There may not be enough space in UI elemts to fit them in; most language strings run longer that the English ones. This long-standing problem was mitigated a lot when preferences were moved to the main window in 38, however we should still try and keep translated strings as short as possible.

    ReplyDelete
    Replies
    1. Did frame dropping work fine in 38?

      Delete
    2. Yes, I've never seen audio/video sync issues in 38.

      Delete
    3. Interesting. It might be a long shot, but maybe the two issues are related.

      Delete
  3. I have to agree with chtrusch and Raphaël that 45.3 has been a surprisingly smooth ride so far on a dual 1.42 GHz G4 running 10.5.8. Raphaël's use of fluid was on the money. No issues so far. The FireFTP add-on feels more responsive. pdf.js feels darn near usable for smaller PDFs. Thanks for all of your work on this, Cameron!

    ReplyDelete
  4. Thanks for your continued efforts! The beta works well for me. The only problem I've seen so far is wundergroud doesn't load all the way anymore:

    http://www.wunderground.com/cgi-bin/findweather/hdfForecast?query=90210

    ReplyDelete
    Replies
    1. Security settings changed between 38 and 45 and this appears to have affected addons. On my TenFourFox 45 systems, everything loads, including the map and 10-day forecast, but they use uBlock. On my MacBook Air, it indeed did not load all the way - I had to disable Bluhell Firewall.

      Delete
  5. Chase banking/credit services are still inaccessible from TenFourFox 45.3b1, as well as 38.10. Their website demands a newer version of Firefox without specifying a minimum supported version. What is the compatibility issue with their website?

    ReplyDelete
    Replies
    1. Their site doesn't know how to handle the TenFourFox token we add so that sites can detect us that want to display specific content -- and some actually do look for us now and give plugin-free versions. The simplest solution is to use a useragent switcher add-on, or run Chase within a foxbox with "Prevent the web site from detecting it’s not in a normal browser" checked. I've notified them several times and it doesn't seem they're inclined to fix their user agent sniffer. (I'm also a Chase customer.)

      Delete
  6. I have a couple accounts on different boot volumes with TFF profiles where the default search engine hasn't been modified. I discovered that I can't get a change to Google via Preferences->Search to stick over restarts of TFF. The default engine flips back to Yahoo each time. I tried creating a fresh profile, but the result was the same. I fired up 38.10 and the change to Google persisted over multiple restarts and also stuck when I switched back to 45.3

    ReplyDelete
    Replies
    1. Once Google is set as the default search engine using 38.10, further changes to the default search engine in 45.3 still fail to stick after TFF is restarted.

      Delete
    2. I can't reproduce this. I was able to switch from Google -> Yahoo, restart, search (Yahoo), switch from Yahoo -> Google, restart, search (Google), within 45.3.

      Delete
    3. I'm not surprised. After reading your comment, I was convinced briefly that Adblock Plus was the culprit. I disabled it and was able to modify the default search engine in 45.3 for one user. Seemed a little suspicious that I was still able to modify the default search engine after re-enabling Adblock, so I tried the same approach for another user and wasn't able to modify the default search engine after disabling Adblock. Strange. This is obviously a minor problem.

      Delete
    4. The browser sometimes (but not always) resets itself to the default search engines at restart.

      There is some weird interaction between

      browser.search.countryCode
      browser.search.region
      browser.search.defaultenginename
      browser.search.defaultenginename.US
      browser.search.order.xxx
      browser.search.searchEnginesURL
      browser.search.geoSpecificDefaults.url
      browser.search.geoip.url

      Depending on what region you set manually (or disabling region autodetection by clearing the URLs for the last two keys) the browser resets itself to different values. In some configurations you can change the search engine several times and it will stick, but eventually it resets itself to the defaults (including the list of one-click search engines).

      There are too many settings to trouble-shoot this completely. I would say this is Mozilla's problem.

      Delete
    5. Yeah, sounds like a Mozilla issue. Thanks for the info.

      Delete
  7. This comment has been removed by the author.

    ReplyDelete
  8. Are system.log entries like the following anything to be concerned about? I've suffered through a few kernel panics in the last week or so, which is fairly unusual. This morning, a few messages like this were added to system.log before the kernel panic. I dug through system.log files from the week previous to the release of TFF 45.3b and haven't run across any entries like this.

    firefox[159]: *** _NSAutoreleaseNoPool(): Object 0x215350 of class NSCFNumber autoreleased with no pool in place - just leaking\nStack: (0x929efdac 0x9291ce14 0x9291f59c )

    ReplyDelete
    Replies
    1. Sorry, I completely missed your question. Those messages are generally innocuous (in TenFourFox, not necessarily other apps, due to the way libxul interacts with the OS) but technically they are bugs and do indicate a possible memory leak, however small. These are caused by some OS-dependent routines running before main startup, which works fine on later OS X versions, but not apps using the 10.4 SDK. I've tried to stamp most of these out and I'm looking for others. Unfortunately it's generally determined by specifics of your system which parts of those aberrant code blocks get hit, but they shouldn't affect you unless you're seeing them frequently during your use of the browser instead of simply when the browser starts up.

      Delete
  9. Everything seems to work fine for me except the frame dropping/non sync'd video in Youtube. Using a 2.5GHz Quad Core G5 w/8Gb of Ram. Thank you so much for your efforts!...your my hero!

    ReplyDelete
  10. Note on that last post, the operating system is 10.58

    ReplyDelete
  11. Thank you for the continued work you do to keep PowerPCs capable.

    ReplyDelete

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