Tuesday, May 30, 2017

Feature Parity Release Finally Preview Ready For Persistent Readers

This blog has been pretty quiet because I've been pretty busy, but now you get to play with the first TenFourFox Feature Parity Release beta (downloads, release notes, hashes).

Internally, TenFourFox FPR1 is versioned as 45.10.0 to maintain add-on compatibility (but read on for an important caveat), and all FPRs will be based on our fork of Firefox ESR 45, though the About box and the user agent show the current parity release level. This release primarily concentrated on performance and I liberally stole backported changes from Mozilla's Quantum Flow Engineering project as many of its changes touch relatively old code, so it's still applicable to us, and if the issues they're fixing are minor but noticeable on modern systems they would certainly be more noteworthy on our older machines. Most of the speed changes occur in the user interface, layout and DOM; there are some minor improvements to JavaScript as well, but that wasn't the major focus for this iteration (another big JavaScript JIT performance initiative is planned for FPR2 or FPR3, though). The overall functionality of the UI hasn't changed, however, so it should still work the way it did before. Not every enhancement I wanted to make has made it to FPR1, including one nice speedup that unfortunately also made the browser unstable, so there will be more to come in future versions. The speed difference isn't dramatic but I hope you'll agree it's a positive improvement.

Also new in FPR1 is official support for Brotli, a more efficient compression mechanism than the gzip and DEFLATE methods we currently support. Mozilla disabled this in 45 due to bugs; I secretly backported the version from ESR52 with the bugs fixed and made the (small number of) necessary changes to the browser for 45.9, which this version now enables by default. It only operates over HTTPS and on those sites that support it, but this number is expected to grow as Chrome, Firefox, Microsoft Edge and Opera all accept it.

In addition, this release introduces several new ECMAScript 6 (ES6) features to our JavaScript implementation, including Unicode regexes and block function scoping, and the ES7 exponentiation operator. Websites are already beginning to use these features, so it was essential we implement them (eventually I would like full ES6 compatibility and as much ES7 compatibility as we can reasonably achieve), but it is possible some poorly coded add-ons may barf with these changes. The syntactic changes can't really be reversed or preffed off, and add-on support in TenFourFox was always "best effort" anyhow, but please do report any changes in site and add-on compatibility that you notice between 45.9 and FPR1 so I can evaluate them. In the next couple updates I will add more ES6/ES7 features as well as some additional HTML5 and CSS3 functions that sites are beginning to adopt in keeping with the whole "feature parity" thing.

I've also been backporting relevant security patches from 52ESR to 45ESR, and our tree is now able to accept updated TLS root certificates, pinned certificates and HSTS data from 52ESR more or less directly. Eventually I still plan to update to the NSS library in 52ESR so that we can get additional cipher and encryption support, but this suffices for now. Please note that, as threatened promised, all SHA-1-only certificates are now untrusted. Most of the ESR security patches to date have been applied to the version you will be trying out except for a couple of very large changesets that need a bit more evaluation. We will be at full security parity for all known issues by the date of release.

Speaking of release date, FPR1 will be a bit delayed as I will be taking a brief vacation and I won't be at my G5 for a little while. Mozilla's release schedule has 54/52.2 coming out on June 13, which won't give me enough time to complete my work and do internal testing (hey, I'm entitled to some time off), so my current plan is to release FPR1 on or before June 27 and then catch up for FPR2 with the release of 55/52.3 on August 8. It is possible that I may delay future FPR releases until a couple days after the main ESR is released for testing and backporting reasons, but let's see how close I can adhere to the schedule still.

For builders, now that our Github is off and running, there's no need to continue distributing changesets; future releases at SourceForge will have just a placeholder instead of a zip file for source. Instead, please kindly refer to the updated build instructions.

Oh, one more thing: it looks like someone is working on an Intel version of TenFourFox again (compatible with at least 10.6 and possibly even 10.5). I won't say whom because it may be some time before anything is available, and as I've always said, this is not a release I can personally maintain even though I am happy to support and advise someone willing to, but their early work looks promising and they appear to have sufficient expertise to make it happen. Once their changes make it back into the TenFourFox github we can consider it "officially a thing." Meanwhile, although the development is occurring more or less in the open and you can probably find it without much effort, please don't pester me or them about it since it hasn't gotten off the ground yet.

Post observations in the comments and feel free to star or watch the Github repo for updates.

26 comments:

  1. Everything works flawlessly so far, including add-ons and the Locale Installer. The UI is very snappy, and together with having mSATA SSDs now in both the G4 PowerBook and G3 iBook this breathes new life into my Macs. Great.

    ReplyDelete
  2. Thanks a lot. Happy days on your vacations.
    Also I like the news of having hopefully soon a better browsing alternative for my Intel macbook pro so I can use only snow leopard for all my needs and don't have to install also another more recent version of osx only to browse the internet with it.

    ReplyDelete
  3. Hey, so far, so good too.

    Seems to fix the search bar persistence issue, as older versions kept reverting to Yahoo.

    I notice some sites feel a bit snappier, but I also upgraded my internet speed and network setup a bit. Maybe that helped too.

    ReplyDelete
  4. This is probably nothing, but I happened to have the Console open and got some error messages, probably just due to something wrong in my setup:

    ATSUI font failure

    ERROR Failed to clean updated system add-ons directories.: Unix error 2 during operation DirectoryIterator.prototype.next (on Profile?)

    WARN Update manifest

    And finally, some kind of NSAutoReleaseNoPool failure or error or something.

    Probably nothing... but just in case, I can give more details.

    ReplyDelete
    Replies
    1. Those are all typical messages; they don't seem unusual, though I'd like to get rid of the autorelease pool spamming eventually.

      Delete
  5. So does your busy-ness indicate Classilla 9.3.4 is just around the corner?

    ReplyDelete
    Replies
    1. Unfortunately somewhat the opposite right now.

      Delete
  6. The possibility of a TenSixFox browser for OS X Snow Leopard 32/64 bit is very encouraging :), as I can only use OS X Snow Leopard as my main OS system and not later OS X versions due to requiring Rosetta for backwards software compatibility with my PPC G5s, G4s and G3s running PPC-only apps with OS X Leopard and OS X Tiger as appropriate.

    ReplyDelete
    Replies
    1. Agreed... nobody (Chrome, Mozilla, or Apple) supports 10.6 anymore, so a TenSixFox would be terrific.

      Especially since I can't get TenFourFox to work in Rosetta. (And I know I'm not suppose to complain about that... and I'm not! Just sayin' : )

      Delete
  7. Just a heads-up that I see this bug again in FPR1 (10.5 only)
    https://code.google.com/archive/p/tenfourfox/issues/72
    STR:
    https://bugzilla.mozilla.org/show_bug.cgi?id=641597#c58

    ReplyDelete
    Replies
    1. And it didn't happen in 45.9? There shouldn't be any widget changes.

      Delete
    2. I'm unable to trigger the bug in 45.9. If it exists in 45.9, it takes so long to trigger that even using my STR extensively for several minutes doesn't make it show up. Whereas it takes about 5 seconds to trigger it in FPR1. Maybe it's the more efficient UI code?

      Delete
    3. Maybe. It might enable whatever triggering state is necessary to trip the bug to be triggered faster. You still can't make it happen on 10.4, though? That would definitely make debugging it a lot easier if I could do it on the G5 (otherwise I'll have to truck builds to and from my 10.5 DLSD).

      Delete
    4. Inconveniently I can't trigger it on 10.4.

      Delete
    5. I'm actually typing this in FPR1 on my DLSD PowerBook G4 under 10.5.8, but I can't trigger this with your instructions. Do you have any subfolders actually open? How many subfolders are in your bookmarks toolbar?

      Delete
    6. I also just tried it with the bookmarks file you attached to old issue 72 and I can't replicate it with that either, though going straight across and back 14 folders is kind of hard with a trackpad. :P

      Delete
    7. I'll try to re-formulate the STR for clarity:

      In a new profile, create five folders in the Bookmarks Toolbar with one subfolder each. Click on the first folder, it will open and stay open when you release the mouse button. Then hover right and left about ten times (maybe more with slower Macs?) so that the folders open successively as you hover over them.
      https://s30.postimg.org/s4h7n4b4h/Picture_1.png

      Delete
    8. I've got it just as you do and I still can't trigger this. About how many "popups" are needed to make it happen on yours? This is a 1.67MHz G4, so I can't imagine speed is the problem. This is a vanilla install of 10.5.8, too. Could it be a haxie or system extension interfering?

      Delete
    9. I took a spare Firewire HD and made a completely new installation of 10.5.0 on my 1.67 PowerBook G4, English as the main language, region US, then all Apple updates to 10.5.8 including Java and security that Software Update will find. No additional software except I installed G4FanControl as early as possible in the install/update process since I didn't want to melt my PowerBook in the summer heat. All settings left to Apple defaults.

      I can still reproduce the bug using the latest FPR1 on this 10.5.8 installation. There must be some difference between our Macs we haven't figured out yet.

      Delete
    10. Oh, and I only need to hover about six times right and left, that's 49
      'popups' when you have five folders in the Bookmarks bar.

      Delete
    11. I got a mouse out and went back and forth with this for about an hour. I was finally able to trigger it once, so I can confirm it, but it's really hard to reproduce somewhere I can work with it. I'll reopen issue 72. See that issue for a speculative fix I'm considering.

      Delete
  8. On my laptop it says unsecure connection. Did i do something wrong? I have an internet connection.

    ReplyDelete
    Replies
    1. Is this with FPR1? Is this on a particular site?

      Delete
  9. I will contradict myself from earlier - and maybe this has been solved - but the Yahoo/search bug comes back. I went ahead and event tried to delete Yahoo as an option for search and choose Google as default. And it didn't stick after all - Yahoo still defaults as the preferred search.

    ReplyDelete
    Replies
    1. You might have to do a profile reset for this to stick, since it might still have the tainted search setting. Try it on a new profile first before, though.

      Delete

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