hello.js

var please = require('share');
console.log('thank you');

Thursday, 1 February, 2018 UTC

MDN browser compatibility data: Taking the guesswork out of web compatibility

MDN browser compatibility data: Taking the guesswork out of web compatibility

Building the web is hard The most powerful aspect of the web is also what makes it so challenging to build for: its universality. When you create a website, you’re writing code that needs to be understood by a plethora of browsers on different devices ... more


Tuesday, 30 January, 2018 UTC

Shrinking WebAssembly and JavaScript code sizes in Emscripten

Shrinking WebAssembly and JavaScript code sizes in Emscripten

Emscripten is a compiler toolchain for asm.js and WebAssembly which lets you run C and C++ on the web at near-native speed. Emscripten output sizes have decreased a lot recently, especially for smaller programs. For example, here’s a little C code: #include ... more


Monday, 29 January, 2018 UTC

A rule-based framework to create dynamic themes

A rule-based framework to create dynamic themes

In December, I gave an introduction to the theming API in Firefox. While it allows you to do many things like animated themes, macOS-style overscroll or interactive theme editors, the API has some limitations. One issue with dynamic theming API compared ... more


Thursday, 25 January, 2018 UTC

Lessons learned from the A-Frame category in the js13kGames competition

Lessons learned from the A-Frame category in the js13kGames competition

It’s been a while since the js13kGames 2017 competition ended in September last year, but it’s worth recalling as it was the first time with a brand new category – A-Frame. Let’s see what some of the competition participants have to say about the challenges ... more


Thursday, 25 January, 2018 UTC

Firefox 58: The Quantum Era Continues

Firefox 58: The Quantum Era Continues

2017 was a big year for Mozilla, culminating in the release of Firefox Quantum, a massive multi-year retooling of the browser focused on speed, and laying the groundwork for the years to come. In 2018, we’ll build on that incredible foundation, and in ... more


Thursday, 25 January, 2018 UTC

Introducing the MDN Product Advisory Board: actions and impressions from our first meeting

Introducing the MDN Product Advisory Board: actions and impressions from our first meeting

Introducing the MDN Board On January 11th, 2018, Mozilla held the first in-person meeting of the MDN Product Advisory Board (PAB) in London. The goal of the MDN Product Advisory Board, in collaboration with Microsoft, Google, and other industry leaders, ... more


Thursday, 18 January, 2018 UTC

Oxidizing Source Maps with Rust and WebAssembly

Oxidizing Source Maps with Rust and WebAssembly

Tom Tromey and I have replaced the most performance-sensitive portions of the source-map JavaScript Library’s source map parser with Rust code that is compiled to WebAssembly. The WebAssembly is up to 5.89 times faster than the JavaScript implementation ... more


Thursday, 18 January, 2018 UTC

Making WebAssembly even faster: Firefox’s new streaming and tiering compiler

Making WebAssembly even faster: Firefox’s new streaming and tiering compiler

People call WebAssembly a game changer because it makes it possible to run code on the web faster. Some of these speedups are already present, and some are yet to come. One of these speedups is streaming compilation, where the browser compiles the code ... more


Tuesday, 16 January, 2018 UTC

Using Hardware Token-based 2FA with the WebAuthn API

Using Hardware Token-based 2FA with the WebAuthn API

To provide higher security for logins, websites are deploying two-factor authentication (2FA), often using a smartphone application or text messages. Those mechanisms make phishing harder but fail to prevent it entirely — users can still be tricked into ... more


Thursday, 14 December, 2017 UTC

Actual Input Latency: cross-browser measurement and the Hasal testing framework

Actual Input Latency: cross-browser measurement and the Hasal testing framework

Editor’s Note: This post is also featured on the 2017 Performance Calendar. This is a story about an engineering team at Mozilla, based in Taipei, that was tasked with measuring performance and solving some specific performance bottlenecks in Firefox. ... more


Thursday, 7 December, 2017 UTC

A Classic Extension Reborn: Tree Style Tab

A Classic Extension Reborn: Tree Style Tab

Yuki “Piro” Hiroshi is a trailblazer and a true do-it-yourselfer. Whenever the Tokyo-based programmer gets irritated with any aspect of his browsing experience, he builds a workaround for himself and shares it with others. After authoring nearly 100 ... more


Monday, 4 December, 2017 UTC

Using the new theming API in Firefox

Using the new theming API in Firefox

From powerful extensions like Stratiform or FT Deep Dark to simple lightweight themes, theming has been quite popular within Firefox. Now that Firefox Quantum (57) has launched with many performance improvements and a sparkling new interface, we want ... more


Wednesday, 22 November, 2017 UTC

New in Firefox 58: Developer Edition

New in Firefox 58: Developer Edition

Firefox Quantum made Firefox fast again, but speed is only part of the story. A ton of work has gone into making Firefox an exceptional tool for creating on the Web. Let’s dive into the changes coming in Firefox 58, currently available to preview in ... more


Wednesday, 8 November, 2017 UTC

Go beyond console.log with the Firefox Debugger

Go beyond console.log with the Firefox Debugger

console.log is no debugger. It’s great for figuring out what your JavaScript app is up to, but it’s limited to spitting out a minimal amount of information. If your code is complex, you’ll need a proper debugger. That’s why we’ve added a new section ... more


Monday, 6 November, 2017 UTC

Async Pan/Zoom (APZ) lands in Firefox Quantum

Async Pan/Zoom (APZ) lands in Firefox Quantum

Asynchronous pan and zoom (APZ) is landing in Firefox Quantum, which means jank-free, smooth scrolling for all! We talked about APZ in this earlier article, but here’s a recap of how it works: Until now, scrolling was part of the main JavaScript thread. ... more


Tuesday, 24 October, 2017 UTC

Saying Goodbye to Firebug

Saying Goodbye to Firebug

The most popular and powerful web development tool. Firebug has been a phenomenal success. Over its 12-year lifespan, the open source tool developed a near cult following among web developers. When it came out in 2005, Firebug was the first tool to let ... more


Thursday, 19 October, 2017 UTC

How we rebuilt the viewsourceconf.org website

How we rebuilt the viewsourceconf.org website

As a front-end developer at Mozilla, I end up working on big sites that have been around for a long time. There are a lot of interesting challenges when working with legacy code at a large scale, but rebuilding from scratch usually isn’t an option. The ... more


Thursday, 12 October, 2017 UTC

Remaking Lightbeam as a browser extension

Remaking Lightbeam as a browser extension

Browser extensions: a new frontier You may have heard of browser extensions — perhaps you have even written one yourself. The technology for building extensions in Firefox has been modernized to support Web standards, and is one of the reasons why Firefox ... more


Tuesday, 10 October, 2017 UTC

The whole web at maximum FPS: How WebRender gets rid of jank

The whole web at maximum FPS: How WebRender gets rid of jank

The Firefox Quantum release is getting close. It brings many performance improvements, including the super fast CSS engine that we brought over from Servo. But there’s another big piece of Servo technology that’s not in Firefox Quantum quite yet, though ... more


Thursday, 5 October, 2017 UTC

An overview of Containers for add-on developers

An overview of Containers for add-on developers

Containers enable users to log in to multiple accounts on the same site simultaneously, and give users the ability to segregate site data for improved privacy and security. At Firefox, we have been working on Containers for quite some time. We started ... more


Thursday, 5 October, 2017 UTC

Firefox 56: Last Stop before Quantum

Firefox 56: Last Stop before Quantum

Here at Mozilla, we’re extremely excited about next month’s release of Firefox Quantum (preview it today in Developer Edition!) which brings massive speed improvements, a brand new UI, and several new or improved Developer Tools. But that’s next month. ... more


Monday, 2 October, 2017 UTC

Multi-user experiences with A-Frame

Multi-user experiences with A-Frame

Multi-user experiences on the Internet have come a long way since the emergence of online chat and the rise of social networks. Advances in virtual reality are making the Web a more immersive and interactive environment. Neal Stephenson envisioned this ... more


Thursday, 28 September, 2017 UTC

RNNoise: Using Deep Learning for Noise Suppression

RNNoise: Using Deep Learning for Noise Suppression

The Mozilla Research RRNoise project shows how to apply deep learning to noise suppression. It combines classic signal processing with deep learning, but it’s small and fast . No expensive GPUs required — it runs easily on a Raspberry Pi. The result ... more


Thursday, 21 September, 2017 UTC

Always Right – An Extension Migration Story

Always Right – An Extension Migration Story

I’ve been building extensions for Firefox since 2005. I’ve integrated bookmark services (which got me a job at Mozilla!), fixed the default theme, enhanced the developer tools, tweaked Github, optimized performance, eased tagging, bookmarked all Etherpads, ... more


Thursday, 14 September, 2017 UTC

Building the DOM faster: speculative parsing, async, defer and preload

Building the DOM faster: speculative parsing, async, defer and preload

In 2017, the toolbox for making sure your web page loads fast includes everything from minification and asset optimization to caching, CDNs, code splitting and tree shaking. However, you can get big performance boosts with just a few keywords and mindful ... more


Thursday, 14 September, 2017 UTC

Experimenting with WebAssembly and Computer Vision

Experimenting with WebAssembly and Computer Vision

This past summer, four time-crunched engineers with no prior WebAssembly experience began experimenting. The result after six weeks of exploration was WebSight: a real-time face detection demo based on OpenCV. By compiling OpenCV to WebAssembly, the ... more


Saturday, 9 September, 2017 UTC

Meta 2 AR Headset with Firefox

Meta 2 AR Headset with Firefox

One of the biggest challenges in developing immersive WebVR experiences today is that immersion takes you away from your developer tools. With Meta’s new augmented reality headset, you can work on and experience WebVR content today without ever taking ... more


Tuesday, 29 August, 2017 UTC

Flash, In Memoriam

Flash, In Memoriam

Adobe will drop Flash by 2020. Firefox no longer supports Flash out of the box, and neither does Chrome. The multimedia platform is being replaced with open internet technologies like HTML5, CSS3, and JavaScript. But at one time, Flash was cutting edge. ... more


Tuesday, 29 August, 2017 UTC

Life After Flash: Multimedia for the Open Web

Life After Flash: Multimedia for the Open Web

Flash delivered video, animation, interactive sites and, yes, ads to billions of users for more than a decade, but now it’s going away. Adobe will drop support for Flash by 2020. Firefox no longer supports Flash out of the box, and neither does Chrome. ... more


Tuesday, 15 August, 2017 UTC

Essential WebVR resources

Essential WebVR resources

The general release of Firefox 55 brought a number of cool new features to the Gecko platform, one of which is the WebVR API v1.1. This allows developers to create immersive VR experiences inside web apps, compatible with popular hardware such as HTC ... more