NoScript 10 Goes WebExtensions for Firefox 57+

Subject: General Tech | November 24, 2017 - 08:39 PM |
Tagged: noscript, mozilla

While I like the flexibility that JavaScript brings to the web, I also like that tools exist to control it. NoScript is a relatively popular Firefox extension that does just that. When Mozilla shifted away from their own extension framework and opted for WebExtensions API, which is supported by both Microsoft and Google, a lot of browser features became immediately unavailable.

NoScript.png

It turns out that Mozilla has enough hooks for a new version of NoScript, however. As such, NoScript 10.x has been released earlier this week. It allows you to disable scripts on a domain by domain basis until they are added to a white list, or given access via the add-on button.

I also don’t really think it’s all the useful as a security tool outside of special use cases – JavaScript doesn’t really have a whole lot of room for malicious use – but its presence does allow things like heuristically tracking individuals and loading content into the handful of plug-ins that still exist. So, like, if you’re the Tor browser, then it makes sense. For the public? I doubt it. I would be more interested in an add-on that lets you just shutdown JavaScript on a tab-by-tab basis, so you can make particularly heavy sites act read-only once they are loaded.

Still, it’s available now.

Source: NoScript

A Chunk of Servo Comes to Firefox: Quantum CSS

Subject: General Tech | August 22, 2017 - 10:12 PM |
Tagged: mozilla, firefox, servo, Rust

If you’re on Firefox Nightly, you are able to enable their new CSS engine with an about:config flag, called layout.css.servo.enabled. For a few years now, Mozilla has been working on a separate rendering engine, aided by Samsung, which was called Servo. Browsers are very single-threaded, so there was a lot of room for improvement, especially on devices that can afford more cores than per-core performance, like mobile. It is also more secure, as its programming language, Rust, is more strict with data accesses than C/C++, which is also great for a web browser.

mozilla-rust.png

Eventually, Mozilla decided to, instead of replacing Gecko, replace chunks of it with tech derived from Servo. Up to now, it’s been mostly security-related components, like the parsing of untrusted media headers. This one is about speed. I'm curious to see how it feels to our readers. I know that, personally, going from Firefox 54 to Firefox 55 was a significant difference, although that was due to other changes.

If you’re interested, download Firefox Nightly. I mean, it’s free.

Source: Mozilla

Valve and Mozilla Announce SteamVR and WebVR for macOS

Subject: General Tech | June 5, 2017 - 04:58 PM |
Tagged: mozilla, valve, steamvr, webvr, apple, macos

At WWDC, Valve and HTC announced that their SteamVR platform would be arriving for macOS. This means that the HTC Vive can now be targeted by games that ship for that operating system, which probably means that game engines, like Unreal Engine 4 and Unity, will add support soon. One of the first out of the gate, however, is Mozilla with WebVR for Firefox Nightly on macOS. Combine the two announcements, and you can use the HTC Vive to create and browse WebVR content on Apple desktops and laptops that have high-enough performance, without rebooting into a different OS.

webvr-logo.png

Speaking of which, Apple also announced a Thunderbolt 3 enclosure with an AMD Radeon RX 580 and a USB-C hub. Alternatively, some of the new iMacs have Radeon graphics in them, with the new 27-inch having up to an RX 580. You can check out all of these announcements in Jim’s post.

Source: HTC

Epic Games Releases Zen Garden Demo for WebAssembly

Subject: General Tech | March 13, 2017 - 08:02 PM |
Tagged: webassembly, ue4, mozilla, epic games

HTML5 was a compile target for Unreal Engine since Unreal Engine 3, but it was supposed to be a bigger push for Unreal Engine 4 then it has been. At the time, Mozilla was pushing for web browsers to be the main source of games. Thanks to Flash, users are even already accustomed to that use case; it’s just a matter of getting performance and functionality close enough to competing platforms, and supporting content that will show it off.

epic-2017-zengardenwebassembly.jpg

That brings us to Zen Garden. This demo was originally designed to show off the Metal API for iOS, but Epic has re-purposed it for the recently released web browser features, WebAssembly and WebGL 2.0. Personally, I find it slightly less impressive than the Firefox demo of Unreal Tournament 3 that I played at Mozilla Summit 2013, but it’s a promising example that big-name engines are taking Web standards seriously again. You don’t get much bigger than Unreal Engine 4.

So yeah... if you have Firefox 52, then play around with it. It’s free.

Source: Mozilla

Firefox 52 Adds WebAssembly

Subject: General Tech | March 8, 2017 - 04:00 PM |
Tagged: mozilla, webassembly, javascript, firefox

Mozilla’s latest browser version, Firefox 52, was just released to the public on Tuesday. I wasn’t planning on putting up a post about it, but I just found out that it includes the ability to ingest applications written in WebAssembly. This is client-side language for browsers to be a compile target for C, C++, and other human-facing languages (such as Rust). Previously, these applications needed to transpile into JavaScript, which has several limitations.

Honestly, I haven’t heard much from WebAssembly in several months, so I was figured they were still quite a ways off. Several big engines, like Unreal Engine 4, not really putting their weight behind HTML5 as much as they were about three years ago, during the Windows 8- and iOS-era. Now I see the above video, which starts with Tim Sweeney and goes on to include others from Mozilla, Autodesk, and Unity, and I am starting to assume that I just wasn’t looking in the right areas.

Some features of WebAssembly include native 64-bit integer types and actual memory management. In JavaScript, the "number" type basically exists in a quazi-state between int32 and FP64. WebGL added a few containers for smaller data types, but it couldn't go larger than what "number" allowed, so int64 and uint64 couldn't be represented. Also, JavaScript requires garbage collection to be run on the browser's schedule, which limits the developer's control to "don't generate garbage and hope the GC keeps sleeping".

According to the video, though, it sounds like application startup time is the primary reason for shipping WebAssembly. That could just be what they feel the consumer-facing message should convey, though. I should probably poke around and see what some web and game developer contacts think about WebAssembly.

Firefox 52 is now available.

Source: Mozilla

Mozilla to Require Rust (and Dependencies) for Firefox

Subject: General Tech | February 7, 2017 - 02:47 AM |
Tagged: mozilla, firefox, web browser, Rust, llvm

Firefox 52 will be the company’s next Extended Support Release (ESR) branch of their popular web browser. After this release, Mozilla is planning a few changes that will break compatibility, especially if you’re building the browser from source. If you’re an end-user, the major one to look out for is Mozilla disabling NPAPI-based plugins (except Flash) unless you are using Firefox 52 ESR. This change will land in the consumer version of Firefox 52, though. It’s not really clear why they didn’t just wait until Firefox 53, rather than add a soft-kill in Firefox 52 and hard-code it the next version, but that’s their decision. It really does not affect me in the slightest.

mozilla-rust.png

The more interesting change, however, is that Mozilla will begin requiring Rust (and LLVM) in an upcoming version. I’ve seen multiple sources claim Firefox 53, Firefox 54, and Firefox 55 as possible targets for this, but, at some point around those versions, critical components of the browser will be written in Rust. As more of the browser is migrated to this language, it should be progressively faster and more secure, as this language is designed to enforce memory safety and task concurrency.

Firefox 52 is expected in March.

Firefox 51 and Chrome 56 Launch with WebGL 2.0

Subject: General Tech | January 27, 2017 - 03:55 PM |
Tagged: webgl, webgl2, firefox, chrome, google, mozilla, Opera

After quite a bit of anticipation, both Mozilla and Google have just shipped compatible implementations of WebGL 2. This feature was unlocked to the public in Firefox 51 and Chrome 56 for the desktop, both released this week, while Opera will push it out to desktop and mobile on their next version, Opera 43. Microsoft currently has the API “under consideration” for Edge.

As we’ve highlighted in the past, this new version of the graphics API pushes the platform up to OpenGL ES 3.0, with a few exceptions that are typically made for security reasons. This update allows quite a few new features like off-screen render targets, which is useful for deferred rendering. The shading language is also significantly larger, and can now operate natively on integer types and 3D textures.

WebGL 2.0 does not include compute shaders, however, which is a bit unfortunate. That said, it is (at least last I checked) a highly-requested feature and the browser vendors are interested in providing it.

Adobe Releases Another Flash Player Update for Linux

Subject: General Tech | November 1, 2016 - 12:49 PM |
Tagged: Adobe, linux, mozilla

Apparently I missed this the first time around, but Adobe has decided to continue supporting the NPAPI version of Flash Player on Linux. They have just released their second update, Flash Player 24 Beta, on October 28th for both 32- and 64-bit platforms. Before September, Adobe was maintaining Flash Player 11.2 with security updates. Adobe has also extended NPAPI support beyond 2017, which was supposed to be the original cut-off for that plug-in architecture on Linux, and pledge to keep “major version numbers in sync”.

homestar-smoothmoves.png

This took me by surprise. Browser vendors, even Mozilla, have been deprecating NPAPI for a while. Plug-ins are unruly from a security and performance standpoint, and they would much rather promote the Web standards that they work so hard to implement, rather than being a window frame around someone else's proprietary platform.

So what are Adobe thinking? Well, they claim that this “is primarily a security initiative”. As such, it would make sense that, possibly, and again I'm an outsider musing here, the gap between now and 11.2 was large enough that it would be easier to just maintain two branches.

Still, this seems a little... late... for that to be the reason, unless Adobe, then, expected Flash to die off and, now, see it hanging around a little while longer. Meanwhile, on the tools side of things, Adobe has pivoted Flash Professional into Animate CC, with the ability to export to HTML and JavaScript, so they don't really need to keep Flash on life support. It's not at feature parity, but it's getting there. Granted, a lot of the game and animation hosting sites are set up to just accept a packaged Flash file, so maybe that market is holding them back?

Whatever the reason, Flash on Linux is continuing to be supported for all browsers. If you find yourself at the intersection of Linux, Firefox, and hobbyist-developed Tower Defense games, you can pick up the latest plug-in at Adobe Labs.

Source: Adobe Labs

Mozilla Unveils Quantum Project

Subject: General Tech | October 30, 2016 - 01:09 AM |
Tagged: mozilla, servo, gecko, firefox

One of the big announcements at Mozilla Summit 2013, despite Firefox OS being the focus of the event, was their research (with Samsung) into a new rendering engine, Servo. Rendering HTML5 is horrifically complex, so creating a new rendering engine from scratch is a big “nope!” for basically all organizations. Mozilla saw this as a big potential, because current engines are very difficult to scale to multiple cores, so they went in to this as a no-assumptions experiment.

mozilla-architecture.jpg

At the time, they didn't know whether Servo would be built up into a full rendering engine, or whether it would be picked apart and pulled back into their current engine, Gecko. Mozilla has now unveiled Quantum, and the first sentence of its MozillaWiki entry is “Quantum is not a new web browser.” They go on to say that they will be “building on the Gecko engine as a solid foundation”. So it seems pretty clear that, like they've recently done with their media file parser in Firefox 48.

While this will likely not have the major impact that “boom, new engine” would, in terms of performance, this piece-wise method should be quicker than bulking up Servo. Mozilla expects that big changes will begin to land next year.

Source: Mozilla

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.

mozilla-2016-donothurt.png

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.