Friday, November 28, 2014

Looking for music to test with?

A couple people asked about some "known working" sites to play with. So here's one: Matt Gray's Kickstarter for Reformation, his remix album of his greatest SID compositions for the Commodore 64 (of which the inferior AY chips can only dream, he says elbowing Martin). The Soundcloud snippets work on that page, as long as you don't seek within the track. Try them. They play great on my 1GHz iMac G4. If you love chiptune remixes like I do, back the project! I'm level 3, and if we hit the next stretch goal, everybody gets another disc!

Also, Amazon Music (FKA Amazon Cloud Player) works with MP3 TenFourFox, but you still can't seek within the track (my bug), there's a quick snatch of music when switching tracks because of a race condition in the HTML5 audio stream (Amazon's bug), certain tracks are not properly detected as MP3 (Mozilla's bug), and if you skip to the next track if the current one is still streaming, it has to stream all the way before the next track will play (also Mozilla's bug). I used it to listen to Pink Floyd's new and allegedly final album The Endless River, which doesn't have much posthumous Richard Wright content after all and is overall weak and meandering even considering the general gestalt of the band's post-Waters incarnation and David Gilmour's avowed goal of an ambient album. Basically, it's a slower and even less adventurous On An Island, and it's kind of a letdown after the big pre-release buildup.

If these don't work for you, something's wrong, but it won't be fixed until the 38 betas. Sorry.

Thursday, November 27, 2014

31.3.0 available

31.3.0 is available (downloads, release notes). Happy Thanksgiving.

This version includes the partial work on MP3 support I completed before halting it due to various streaming bugs in Firefox 31. It is not enabled by default, and because of all the people who didn't read that plugins were unsupported, I'm not including the pref name here (and I'll delete it out of the comments if I see it, so don't even bother). The support is good enough to play Amazon Music if you don't jump around tracks, Soundcloud, and a number of other services. However, seeking within an MP3 file only works for playing from the beginning (if you seek within a track otherwise, it will cause an error and you may need to reload the page), and sites like Amazon may have delays switching tracks due to a bug in how 31ESR manages network streams. These bugs will not be fixed in 31. Do not file reports. If you tell people about this support but fail to tell them that it's unsupported and they open trouble tickets, not only will the tickets be closed on sight, but I will find you and kill you. Please don't make my life more difficult. Enjoy it to the extent that it works, and expect a better implementation in Fx38.

The MP3 support, however, does not make MPEG-4 support any easier really; that probably will require some interfacing to QuickTime or GStreamer and therefore substantially more work. In the short term, I'm altering the browser to pretend that it supports MPEG-4 so that sites will try to present it as an option for HTML5 video which the QTE can then play. This "fake MP4" support is also in this version and works well enough to fool YouTube -- to the point where YouTube doesn't even offer the WebM stream! -- but doesn't yet fool Vimeo. It's also disabled by default. Don't bother reporting bugs in it either until 38.

Now, eat turkey and watch football unless you're not in the United States, in which case you should download the browser and get back to work. It will become official Monday PM Pacific.

Monday, November 24, 2014

Electrolysis means splitsville

Mozilla continues their work towards multi-process Firefox ("Electrolysis" or e10s), and recently enabled it by default for nightly builds. It is still incredibly buggy and Mozilla is not porting the change forward to aurora or beta builds ... yet. However, it is probably the highest priority project at Mozilla and e10s as the default for release builds is going to happen sooner or later; I'm projecting early after Firefox 38, possibly as early as Firefox 39. Once this occurs, single-process Firefox will likely persist as a backup for one or two versions at most. When single-process no longer takes place even in safe mode, that's the end of the transition.

10.4 will not build Electrolysis without writing support for issue 66, and based on some code I've been reviewing, possibly not even then. There are lots of workarounds for threading problems in 10.6 which will almost certainly plague 10.4 and 10.5, quite probably other problems with the older operating systems, and then potential endian issues with serializing data over IPC. If Mozilla had gotten e10s working for Firefox 4 as originally planned, there was a good chance we could have made it work then since Mozilla still supported 10.5 and most of the code was still appropriately endian-agnostic, but they didn't, and we won't. 10.6 support is likely to end in the very near future as well, which dooms us further.

As a result, I'm declaring now that in its current state, Electrolysis will not be supported by TenFourFox. I don't think it can be done on our older OSes in a satisfactory fashion, let alone by one guy, so if and when Mozilla makes it mandatory that's where source parity will end. Assuming no breathtaking technical breakthrough on my part, if it appears to be imminent after the 38ESR diversion (which is my current estimate), we go to feature parity at the end of 38ESR.

Remember, feature parity does not mean the browser stops developing -- it just stops mirroring an official branch of Firefox. By 38 we will have the strongest suite of HTML5 and ECMA6 support available for OS X on PowerPC, including <picture> support and WOFF2 webfonts, and I'm still working on getting IonMonkey PowerPC complete as well as our MP3 playback module. Should I cut support there, I also intend to continue backporting relevant security and stability fixes to the extent they apply, as well as necessary updates to our encryption suite so that HTTP/2 and TLSv1.3 are fully supported. Suitably maintained, we should still have a top-tier layout engine for at least one to two years after the end of ESR38, and a functional one for some time after that. Watch this space.

The release of 31.3.0 got delayed to December 2, which is annoying, because I spent the weekend building it instead of watching the calendar. Fortunately, no patches relevant to us so far have landed afterward, so these already-built versions will be uploaded later this week assuming there are no last minute changes. Happy Thanksgiving.

Thursday, November 20, 2014

Google's not the default ... yahoo?

Mozilla announced today that they are no longer using Google as the search engine default, changing the agreement that's been in place since 2004, and switching to Bing Yahoo!. I've observed on this blog the conflict of interest that Mozilla has, receiving nearly 85% of their income from what is now their largest market competitor (Google, of course, offering Chrome), so this move really only makes sense. Google will still be available as an option, and you can make it your default like it was before, just not the default default. Erm, by default. In return, Mozilla gets the payola and a guarantee that Yahoo! will honour the Do-Not-Track header over their five year deal; we don't know how much payola, but Google paid Mozilla somewhere north of a $100 million a year, so we must assume it's in a similar ballpark to keep them solvent.

(Speaking of Bing, I've switched from Google Maps to Bing Maps. It's much faster because it's prerendered like Google Maps used to be. Also, in the not-so-coincidental category, Google's new Inbox service doesn't work on Firefox.)

This change is going down in December, probably for Fx35, but it's not clear if this will land on the 31ESR branch. That said, I have no good reason not to honour the change whether it lands on 31 or (from our perspective) 38; I don't get paid by either one of them and they don't care whether we use one or the other, so I've got no dog in this fight. If you don't like this, set your default appropriately. As always, if you want to donate, the best way is to click on the ads on this very blog and let Google pay me on your behalf.

Wednesday, November 19, 2014

I deplore my Chromeadore 64

As expected, Chrome 39 dawned and ended 32-bit support on OS X. While it still supports 64-bit on 10.6, expect Snow Leopard support to end entirely as just a matter of time. Blink-cum-Chromium still works on 32 bit systems, because Windows still has a 32-bit Chrome, but I can't imagine Google will keep it around much longer either.

Some of you have inquired about why there is no TenFourFox 31.2.1, and the reason is the issue it fixed (incomplete pave-over installation) doesn't apply to us. I'm waiting for build tags to land and then we'll pull and build 31.3 for the weekend. I've gotten most of the new assembler for IonMonkey PPC completed, and once I get 36 aurora to work, then I will turn my attention to the macroassembler.

Finally, from the world of the Web, a primer on booting Leopard from a USB stick. This probably works for Tiger too. Note the interesting limitation he discovered that 10.7+'s Disk Utility cannot create Apple Partition Maps anymore, meaning they can no longer create bootable volumes for Power Macs. Keep your Snow Leopard Intel Macs humming. :( Seems to work on Mavericks and (reported) Yosemite, so maybe it's just Lion?

Sunday, November 9, 2014

Happy birthday to us

Celebrating the fourth anniversary of our first release, 4.0b7, on November 8, 2010. Here's hoping for another!

Thursday, November 6, 2014

35 up

Typing this in TenFourFox 35. There's a couple of intermittent glitchy things with web fonts I haven't figured out and can't reproduce reliably, but the browser builds and as you can see, basically works. The next step will be to try an opt build once I've finished banging the debug build around to make sure our libvpx hacks stick, and then if I have time start on the Ion-MIPS port to carry this along to Aurora 36.

Sunday, November 2, 2014

Let's get a big bowl of hashes

The hashes document is now up at Google Code, as previously promised. In addition, the changesets for 34 are available from SourceForge, and I just finished landing them on 35 this weekend. We'll see if that build gets off the ground and depending on the time left whether to attack 36 early or start in on the Ion-MIPS conversion.