hello.js

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

Friday, 6 April, 2018 UTC

MDN Changelog for March 2018

MDN Changelog for March 2018

Editor’s note: A changelog is “a log or record of all notable changes made to a project. [It] usually includes records of changes such as bug fixes, new features, etc.” Publishing a changelog is kind of a tradition in open source, and a long-time practice ... more


Thursday, 5 April, 2018 UTC

What Makes a Great Extension?

What Makes a Great Extension?

We’re in the middle of our Firefox Quantum Extensions Challenge and we’ve been asking ourselves: What makes a great extension? Great extensions add functionality and fun to Firefox, but there’s more to it than that. They’re easy to use, easy to understand, ... more


Thursday, 5 April, 2018 UTC

JavaScript to Rust and Back Again: A wasm-bindgen Tale

JavaScript to Rust and Back Again: A wasm-bindgen Tale

Recently we’ve seen how WebAssembly is incredibly fast to compile, speeding up JS libraries, and generating even smaller binaries. We’ve even got a high-level plan for better interoperability between the Rust and JavaScript communities, as well as other ... more


Thursday, 29 March, 2018 UTC

Hack on MDN: Building useful tools with browser compatibility data

Hack on MDN: Building useful tools with browser compatibility data

From Friday, March 16 to Sunday, March 18, 2018, thirty-four people met in Mozilla’s Paris office to work on improving MDN’s Browser Compat Data. The amazing results included 221 pull requests that improved the quality of our data and created, prototyped, ... more


Wednesday, 28 March, 2018 UTC

ES modules: A cartoon deep-dive

ES modules: A cartoon deep-dive

ES modules bring an official, standardized module system to JavaScript. It took a while to get here, though — nearly 10 years of standardization work. But the wait is almost over. With the release of Firefox 60 in May (currently in beta), all major browsers ... more


Tuesday, 20 March, 2018 UTC

Bringing interactive examples to MDN

Bringing interactive examples to MDN

“This is scoped to be a pretty small change.” – me, January 2017. Over the last year and a bit, the MDN Web Docs team has been designing, building, and implementing interactive examples for our reference pages. The motivation for this was the idea that ... more


Thursday, 15 March, 2018 UTC

Firefox Quantum Extensions Challenge

Firefox Quantum Extensions Challenge

Firefox users love using extensions to personalize their browsing experience. Now, it’s easier than ever for developers with working knowledge of JavaScript, HTML, and CSS to create extensions for Firefox using the WebExtensions API . New and improved ... more


Thursday, 15 March, 2018 UTC

Making WebAssembly better for Rust & for all languages

Making WebAssembly better for Rust & for all languages

One big 2018 goal for the Rust community is to become a web language. By targeting WebAssembly, Rust can run on the web just like JavaScript. But what does this mean? Does it mean that Rust is trying to replace JavaScript? The answer to that question ... more


Friday, 9 March, 2018 UTC

Hands-On Web Security: Capture the Flag with OWASP Juice Shop

Hands-On Web Security: Capture the Flag with OWASP Juice Shop

As a developer, are you confident that you know what you need to know about web security? Wait, maybe you work in infosec. As a security specialist, are you confident that the developers you work with know enough to do the right thing? Often, these aren’t ... more


Wednesday, 7 March, 2018 UTC

Building an Immersive Game with A-Frame and Low Poly Models

Building an Immersive Game with A-Frame and Low Poly Models

Note: This is Part 1 of a two-part tutorial. There is a big difference between immersion and realism . A high-end computer game with detailed models and a powerful GPU can feel realistic, but still not feel immersive. There’s more to creating a feeling ... more


Thursday, 22 February, 2018 UTC

Making a Clap-Sensing Web Thing

Making a Clap-Sensing Web Thing

The Project Things Gateway exists as a platform to bring all of your IoT devices together under a unified umbrella, using a standardized HTTP-based API. We recently announced the Things Gateway and we’ve started a series of hands-on project posts for ... more


Wednesday, 14 February, 2018 UTC

CSS Grid for UI Layouts

CSS Grid for UI Layouts

CSS Grid is a great layout tool for content-driven websites that include long passages of text, and it has tremendous value for a variety of traditional UI layouts as well. In this article I’ll show you how to use CSS Grid to improve application layouts ... more


Friday, 9 February, 2018 UTC

Creating an Add-on for the Project Things Gateway

Creating an Add-on for the Project Things Gateway

The Project Things Gateway exists as a platform to bring all of your IoT devices together under a unified umbrella, using a standardized HTTP-based API. Currently, the platform only has support for a limited number of devices, and we need your help expanding ... more


Thursday, 8 February, 2018 UTC

Forging Better Tools for the Web

Forging Better Tools for the Web

A Firefox DevTools Retrospective 2017 was a big year for Firefox DevTools. We updated and refined the UI, refactored three of the panels, squashed countless bugs, and shipped several new features. This work not only provides a faster and better DevTools ... more


Wednesday, 7 February, 2018 UTC

How to build your own private smart home with a Raspberry Pi and Mozilla’s Things Gateway

How to build your own private smart home with a Raspberry Pi and Mozilla’s Things Gateway

Last year we announced Project Things by Mozilla. Project Things is a framework of software and services that can bridge the communication gap between connected devices by giving “things” URLs on the web. Today I’m excited to tell you about the latest ... more


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