About the "Firefox Is Eating Your SSD" Story

Subject: Storage | October 5, 2016 - 07:57 PM |
Tagged: ssd, mozilla, google, firefox, endurance, chrome

A couple of weeks ago, I saw a post pop up on Twitter a few times about Firefox performing excessive writes to SSDs, which total up to 32GBs in a single day. The author attributes it mostly to a fast-updating session restore feature, although cookies were also resource hogs in their findings. In an update, they also tested Google Chrome, which, itself, clocked in over 24GB of writes in a day.


This, of course, seemed weird to me. I would have thought that at least one browser vendor might notice an issue like this. Still, I passed the link to Allyn because he would be much more capable in terms of being able to replicate these results. In our internal chat at the time, he was less skeptical than I was. I've since followed up with him, and he said that his initial results “wasn't nearly as bad as their case”. He'll apparently elaborate on tonight's podcast, and I'll update this post with his findings.

Mozilla Discontinues Firefox OS for All Devices

Subject: General Tech, Mobile | September 29, 2016 - 02:15 AM |
Tagged: mozilla, Firefox OS, firefox

Update: There has been a little confusion. The web browser, Firefox, is still going strong. In fact, they're focusing their engineering efforts more on it, by cutting back on these secondary projects.

Less than a year after their decision to stop developing and selling smartphones through carriers, Mozilla has decided to end all commercial development of Firefox OS. Releases after Firefox OS 2.6 will be handled by third parties, such as Panasonic, should they wish to continue using it for their smart TV platform. Further, source code for the underlying operating system, Boot-to-Gecko (B2G), will be removed from their repository, mozilla-central, so it doesn't hinder development of their other products.


Obviously, this is quite disappointing from a platform standpoint. Many applications, especially for mobile and similar devices, can be created in Web standards. At this point, we usually get comments about how web browsers shouldn't be app platforms, and that JavaScript is too inefficient. The thing is, Web is about the best, ubiquitous platform we have, and it will only get better with initiatives such as WebAssembly. Also, native applications don't necessarily perform better than Web-based ones, especially if the latter are packaged standalone (versus sharing resources with other tabs in a browser).

Regardless, Mozilla needs to consider their long-term financial stability, and throwing resources at Firefox OS apparently doesn't return enough value for them, both directly and for its impact on society.

Source: Mozilla

Mozilla Launches Firefox 49

Subject: General Tech | September 20, 2016 - 04:51 PM |
Tagged: mozilla, firefox

While it was originally scheduled for last week, some last-minute issues preventing the software non-profit organization from releasing it until today. Also, for some reason, Firefox for Android doesn't want to update from within itself, but triggering an update from the Google Play store works. This might be temporary and/or happens with every Firefox for Android update; I'm new to this platform.


This version is expected to expand their multi-process support, which separates UI updates from site updates. Typically, Firefox disables the feature with add-ons, because they are given the tools to make decoupling these two spaces... glitchy. Under typical situations, JavaScript and other tasks that run in the page shouldn't affect the browser's interface. You can see how this could be a problem if, for instance, an add-on loops between tasks on both at the same time. As such, Mozilla is pulling access to a few APIs when multi-process is enabled.

With Firefox 49, VentureBeat is reporting that Mozilla is allowing a “small initial set of compatible add-ons” to be enabled alongside multi-process. If you don't have any non-compatible add-ons installed, then you should see Multiprocess Windows enabled in about:support. Otherwise, it will be disabled and you won't see any difference.

Interestingly, Mozilla is promoting "Refresh Firefox" at their site if you have the latest version. This basically cleans all the add-ons out of your user profile, but maintains browsing history, bookmarks, and the like. It might have been around for a while, but, if it's new, it times nicely with the multi-process rollout. On top of cleaning out old, crufty add-ons, a user should see a bigger jump when Mozilla's enhancements are (I'm guessing) enabled.

Mozilla has also changed a few things here and there, too. While many of our readers will probably have hardware acceleration for video, they have just added in SSSE3 enhancements if GPU support isn't available. I'm not sure all of the use cases for this, but I'd expect it would help in virtualized environments and certain, older PCs (ex: Intel Atom and Via Nano). I'm just speculating, though.

Source: Mozilla

Mozilla Publishes WebVR 1.0 to Nightly Releases

Subject: General Tech | August 20, 2016 - 05:36 PM |
Tagged: mozilla, webvr, Oculus

Earlier this month, the W3C published an Editor's Draft for WebVR 1.0. The specification has not yet been ratified, but the proposal is backed by engineers from Mozilla and Google. It enables the use of VR headsets in the web browser, including all the security required, such as isolating input to a single tab (in case you need to input a password while the HMD is on your face).


Firefox Nightly, as of August 16th, now supports the draft 1.0 specification.

The browser currently supports Oculus CV1 and DK2 on Windows. It does not work with DK1, although Oculus provided backers of that KickStarter with a CV1 anyway, and it does not (yet) support the HTC Vive. It also only deals with the headset itself, not any motion controllers. I guess, if your application requires this functionality, you will need to keep working on native applications for a little while longer.

Source: Mozilla

Mozilla to Publish First Rust-based Module in Firefox 48

Subject: General Tech | July 16, 2016 - 05:41 PM |
Tagged: mozilla, Rust, firefox

Mozilla has been working on the Rust language for several years now. It is designed to be extremely fast, memory-safe, and easy to parallelize on multi-core processors, doing so by having a compiler that's not afraid to tell you “Nope.” Mozilla (and others, like Samsung) want a language with those characteristics because it will make an extremely fast, yet secure, web browser (although there's a lot of single-threaded design choices tangled in the Web specifications).


The first example will arrive next month for Windows, though (64-bit OSX and Linux already had it). Firefox 48 will replace a small portion of the code, originally written in C++, with a Rust-based equivalent. The affected component parses media files, getting values like track id, duration, resolution, and so forth. Because it's written in Rust, this ingestion should be resilient to memory-based vulnerabilities.

This probably will not be noticeable to end-users, but it's a few thousand less lines of code that Mozilla should need to worry about hijacking the browser. Mozilla is also planning on bringing URL parsing to Rust, and has already done so with Servo. You would think that the C++ code has been battle-hardened by now, but, I mean, 15-year-old open-source bugs do exist, hiding in plain sight.

Source: Mozilla

Mozilla Publishes Servo Nightly (for Mac and Linux)

Subject: General Tech | July 1, 2016 - 07:12 PM |
Tagged: web browser, gecko, servo, Rust, mozilla, Samsung

No love for Windows at the moment, but Mozilla is showing previews of their new browser rendering engine, Servo. This one is developed in Rust, which is a highly parallel yet very memory safe language, which are two great features for a web browser, especially on mobile and multi-core desktops. You are currently able to pick it up on Mac and Linux, although it is not ready to be your primary browser yet. Windows and Android builds “should be available soon”.

Basically, Mozilla has been spending the last few years re-thinking how to design a web browser. Most Web standards are based on assumptions that the browser is going through a main loop, and that these items will occur in sequence. Back in 2013, most of the research was to see far a browser could travel into parallelization before compatibility just stops following. Samsung, who is obviously interested in smartphone technology, partnered with them, because it's easier to add more cores onto a mobile SoC than it is to make existing ones faster.


At the time, they weren't sure whether this research would be used to improve Gecko, the current rendering engine that has been around since Netscape 6, or create a suitable replacement for it. As far as I know, that decision has still not been made, but they also haven't bailed on it yet.

Perhaps we'll see a new wave of Web technology coming soon? Maybe even break up the Webkit monopoly that seems to be forming, led by iOS and Android devices?

Source: Mozilla

Mozilla Will Begin Electrolysis with Firefox 48

Subject: General Tech | June 9, 2016 - 01:08 AM |
Tagged: mozilla, firefox

Electrolysis (e10s) is Mozilla's codename for their multi-process initiative in Firefox. The main goal of this is to separate the content of the website from the user interface. This means that, if a site has long-running JavaScript or layout, Firefox will not lock up. This seems like a simple idea, except that it undoes over a decade of assumptions that were made during Firefox's development. Imagine, for instance, that you have an extensions which modifies both the browser UI as well as the page content -- that's a single script that needs to be run across multiple threads. Whoops!


This roll-out won't necessarily be immediate, though. You can install Firefox 48 and, only some weeks later, get Electrolysis turned on retroactively. They are starting with about 1% of eligible users, which will ramp up to all eligible users over time or even be disabled if alarm bells start to ring.

Speaking of eligible users, there are quite a few conditions that will prevent you from getting Electrolysis. Namely, if you use extensions (it's unclear if they're talking about all extensions, or just ones that use certain APIs) then you will be kept on single-process. They don't specify why, but it could very well be the situation that I mentioned in the first paragraph.

Firefox 48 is scheduled to be released in six weeks (the first week of August).

Mozilla to Preview Servo in June

Subject: General Tech | March 18, 2016 - 09:26 PM |
Tagged: mozilla, servo, Rust

Mozilla, the open-source creators of Firefox and Thunderbird, have announced that their Servo project will reach public alpha in June. Nightly builds will be available, presumably around that time, for Linux, OSX, Windows, and Android. Servo is a browser engine that is built in Rust, which emphasizes security and high performance (especially in multi-threaded scenarios).


The technology is really interesting, although it is still quite early. Web browsers are massively single-threaded by design, which limits their potential performance as CPUs widen in core count but stagnate in per-thread performance. This is especially true in mobile, which is why Samsung has been collaborating on Servo for almost all of its life.

Rust, being so strict about memory access, also has the advantage of security and memory management. It is designed in such a way that it's easier for the compiler to know, at compile time, whether you will be trying to access data that is no longer available. The trade-off is that it's harder to program, because if your code isn't robust enough, the compiler just won't accept it. This is beneficial for web browsers, though, because basically everything they access is untrusted, third-party data. It's better to fight your compiler than to fight people trying to exploit your users.

Again, it's still a way off, though. It might be good for web developers to keep an eye on, though, in case any of their optimizations implement standards either correctly, but differently from other browsers and highlights a bug in your website, or incorrectly, which exposes a bug in Servo. Making a web browser is immensely difficult.

Source: Mozilla

WebGL2 Is On Its Way

Subject: General Tech | December 31, 2015 - 10:25 PM |
Tagged: webgl2, webgl, mozilla, firefox

The Khronos Group created WebGL to bring a GPU-accelerated platform to web browsers. With a few minor differences, it is basically JavaScript bindings for OpenGL ES 2.0. It also created a few standards in JavaScript itself to support things like raw buffers of data that could be assigned types in an unmanaged way. Basically every latest-version web browser supports it these days, and we're starting to see it used in interesting ways.


The next step is WebGL2. OpenGL ES 3.0 adds a bunch of new features that are sorely needed for modern games and applications. For instance, it allows drawing to multiple render targets, which is very useful for virtual cameras in video games (although the original WebGL software could access this as an optional extension when supported). The addition of “Uniform Buffer Objects” is a better example. This allows you to store a bunch of data, like view transformation matrices, as a single buffer that can be bound to multiple applications, rather than binding them one at a time to every draw that needs them.

It's hard to describe, but demos speak a thousand words.

The news today is that Mozilla Nightly now ships with WebGL2 enabled by default. It was previously hidden, disabled by default, behind an option in the browser. This doesn't seem like a big deal, but one of the largest hurdles to WebGL2 is how the browsers actually implement it. The shading language in WebGL was simple enough that most browsers convert it to DirectX HLSL on Windows. This is said to have the added advantage of obfuscating the ability to write malicious code, since developers never directly writes what's executed. GLSL in OpenGL ES 3.0 is much more difficult. I'm not sure whether the browsers will begin to trust OpenGL ES 3.0 drivers directly, or if they finally updated the GLSL translator, but supported implementations means that something was fixed.

Unfortunately, OpenGL compute shaders are not supported in WebGL2. That said, the biggest hurdle is, again, to get WebGL2 working at all. From my talks with browser vendors over the last year or so, it sounds like features (including compute shaders) should start flying in easily once this hurdle is cleared. From there, GPGPU in a website should be much more straightforward.

Mozilla Abandons Firefox OS Smartphones

Subject: Editorial, Mobile, Shows and Expos | December 9, 2015 - 07:04 AM |
Tagged: yahoo, mozilla, google, Firefox OS, Android

Author's Disclosure: I volunteer for Mozilla, unpaid. I've been to one of their events in 2013, but otherwise have no financial ties with them. They actually weren't aware that I was a journalist. Still, our readers should know my background when reading my editorial.

Mozilla has announced that, while Firefox OS will still be developed for “many connected devices,” the organization will stop developing and selling smartphones through carriers. Mozilla claims that the reason is because they “weren't able to offer the best user experience possible.” While the statement is generic enough to apply in a lot of contexts, I'm not sure how close to the center of that region it is.

This all occurred at the “Mozlando” conference in Florida.


Firefox OS was born when stakeholders asked Mozilla to get involved in the iOS and Android duopoly. Unlike Windows, Blackberry, and other competitors, Mozilla has a history of leveraging Web standards to topple industry giants. Rather than trying to fight the industry leaders with a better platform, and hoping that developers create enough apps to draw users over, they expanded what Web could do to dig the ground out of their competitors.

This makes sense. Mobile apps were still in their infancy themselves, so Firefox OS wouldn't need to defeat decades of lock-in or orders of magnitude performance deltas. JavaScript is getting quite fast anyway, especially when transpiled from an unmanaged language like C, so apps could exist to show developers that the phones are just as capable as their competitors.


The issue is that being able to achieve high performance is different from actually achieving it. The Web, as a platform, is getting panned as slow and “memory hungry” (even though free memory doesn't make a system faster -- it's all about the overhead required to manage it). Likewise, the first few phones landed at the low end, due in part to Mozilla, the non-profit organization remember, wanting to use Firefox OS to bring computing to new areas of the world. A few hiccups here and there added another coat of paint to the Web's perception of low performance.

Granted, they couldn't compete on the high end without a successful app ecosystem if they tried. Only the most hardcore of fans would purchase a several-hundred dollar smartphone, and intend to put up with just Web apps. Likewise, when I've told people that phones run on the Web, they didn't realize we mean “primarily localhost” until it's explicitly stated. People are afraid for their data caps, even though offline experiences are actually offline and stored locally.

The Dinosaur in the Room

Then there's the last question that I have. I am a bit concerned about the organization as a whole. They seem to be trying to shed several products lately, and narrow their focus. Granted, all of these announcements occur because of the event, so there's plenty of room for coincidence. They have announced that they will drop ad tiles, which I've heard praised.


The problem is, why would they do that? Was it for good will, aligning with their non-profit values? (Update: Fixed double-negative typo) Or was it bringing in much less money than projected? If it's the latter, then how far do they need to shrink their influence, and how? Did they already over-extend, and will they need to compensate for that? Looking at their other decisions, they've downsized Firefox OS, they are thinking about spinning out Thunderbird again, and they have quietly shuttered several internal projects, like their division for skunkworks projects, called “Mozilla Labs.” Mozilla also has a division called "Mozilla Research," although that is going strong. They are continually hiring for projects like "Servo," a potential new browser engine, and "Rust," a programming language that is used for Servo and other projects.

While Mozilla is definitely stable enough, financially, to thrive in their core products, I'm concerned about how much they can do beyond that. I'm genuinely concerned that Mozilla is trying to restructure while looking like a warrior for both human rights and platforms of free expression. We will not see the books until a few months from now, so we can only speculate until then. The organization is pulling inward, though. I don't know how much of this is refocusing on the problems they can solve, or the problems they can afford. We will see.

Source: Techcrunch