hello.js

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

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


Monday, 14 August, 2017 UTC

A-Frame comes to js13kGames: build a game in WebVR

A-Frame comes to js13kGames: build a game in WebVR

It’s that time of the year again – the latest edition of the js13kGames competition opened yesterday, on Sunday, August 13th. Just like last year, and going back to 2012 when I started this competition. Every year the contest has a new theme, but his ... more


Tuesday, 8 August, 2017 UTC

Firefox 55: first desktop browser to support WebVR

Firefox 55: first desktop browser to support WebVR

WebVR Support on Desktop Firefox on Windows is the first desktop browser to support the new WebVR standard (and macOS support is in Nightly!). As the originators of WebVR, Mozilla wanted it to embody the same principles of standardization, openness, ... more


Monday, 7 August, 2017 UTC

WebVR for All Windows Users

WebVR for All Windows Users

With the release of Firefox 55 on August 8, Mozilla is pleased to make WebVR available for all 64-bit Windows users with an Oculus Rift or HTC VIVE headset. Since we first announced this feature two months ago, we’ve seen tremendous growth in the tooling, ... more


Wednesday, 26 July, 2017 UTC

Inspect, Modify, and Debug React and Redux in Firefox with Add-ons

Inspect, Modify, and Debug React and Redux in Firefox with Add-ons

React, along with Redux, is one of the fastest and most flexible UI frameworks on the web. It’s easy to write, easy to use and is great for teams. In fact, the Mozilla community uses React to build a lot of the Firefox DevTools UI and, famously, the ... more


Tuesday, 25 July, 2017 UTC

The MDN Redesign “Behind the Scenes”

The MDN Redesign “Behind the Scenes”

The MDN redesign will go live after noon Pacific Time today! Kuma, the code that produces the MDN site, is a weird mix of the old and the new. MDN turned ten in 2015 and there’s still code and content around from those very first days. When I sat down ... more


Tuesday, 25 July, 2017 UTC

Optimizing Performance of A-Frame Scenes for Mobile Devices

Optimizing Performance of A-Frame Scenes for Mobile Devices

A-Frame makes building 3D and VR web applications easy, so developers of all skill levels can create rich and interactive virtual worlds – and help make the web the best and largest deployment surface for VR content. For an Oregon State University capstone ... more


Friday, 21 July, 2017 UTC

WebAssembly for Native Games on the Web

WebAssembly for Native Games on the Web

The biggest improvement this year to web performance has been the introduction of WebAssembly. Now available in Firefox and Chrome, and coming soon in Edge and WebKit, WebAssembly enables the execution of code at a low assembly-like level in the browser. ... more


Friday, 21 July, 2017 UTC

The Next Generation of Web Gaming

The Next Generation of Web Gaming

Over the last few years, Mozilla has worked closely with other browsers and the industry to advance the state of games on the Web. Together, we have enabled developers to deploy native code on the web, first via asm.js, and then with its successor WebAssembly. ... more


Wednesday, 19 July, 2017 UTC

Creating a WebAssembly module instance with JavaScript

Creating a WebAssembly module instance with JavaScript

This is the 1st article in a 3-part series: Creating a WebAssembly module instance with JavaScript Memory in WebAssembly (and why it’s safer than you think) WebAssembly table imports… what are they? WebAssembly is a new way of running code on the web. ... more


Wednesday, 19 July, 2017 UTC

Memory in WebAssembly (and why it’s safer than you think)

Memory in WebAssembly (and why it’s safer than you think)

This is the 2nd article in a 3-part series: Creating a WebAssembly module instance with JavaScript Memory in WebAssembly (and why it’s safer than you think) WebAssembly table imports… what are they? Memory in WebAssembly works a little differently than ... more


Wednesday, 19 July, 2017 UTC

WebAssembly table imports… what are they?

WebAssembly table imports… what are they?

This is the 3rd article in a 3-part series: Creating a WebAssembly module instance with JavaScript Memory in WebAssembly (and why it’s safer than you think) WebAssembly table imports… what are they? In the first article, I introduced the four different ... more


Tuesday, 18 July, 2017 UTC

Picasso Tower 360º tour with A-Frame

Picasso Tower 360º tour with A-Frame

A 360º tour refers to an experience that simulates an in-person visit through the surrounding space. This “walkthrough” visit is composed of scenes in which you can look around at any point, similar to how you can look around in Google Street View. In ... more


Friday, 14 July, 2017 UTC

Introducing sphinx-js, a better way to document large JavaScript projects

Introducing sphinx-js, a better way to document large JavaScript projects

Until now, there has been no good tool for documenting large JavaScript projects. JSDoc, long the sole contender, has some nice properties: A well-defined set of tags for describing common structures Tooling like the Closure Compiler which hooks into ... more


Thursday, 29 June, 2017 UTC

Introducing HumbleNet: a cross-platform networking library that works in the browser

Introducing HumbleNet: a cross-platform networking library that works in the browser

HumbleNet started out as a project at Humble Bundle in 2015 to support an initiative to port peer-to-peer multiplayer games at first to asm.js and now to WebAssembly. In 2016, Mozilla’s web games program identified the need to enable UDP (User Datagram ... more


Thursday, 29 June, 2017 UTC

Building the Web of Things

Building the Web of Things

Mozilla is working to create a Web of Things framework of software and services that can bridge the communication gap between connected devices. By providing these devices with web URLs and a standardized data model and API, we are moving towards a more ... more


Wednesday, 21 June, 2017 UTC

Designing for performance: A data-informed approach for Quantum development

Designing for performance: A data-informed approach for Quantum development

When we announced Project Quantum last October, we talked about how users would benefit from our focus on “performance gains…that will be so noticeable that your entire web experience will feel different.” We shipped the first significant part of this ... more


Thursday, 15 June, 2017 UTC

Hacking on the Network Monitor Developer Tool (Part 2)

Hacking on the Network Monitor Developer Tool (Part 2)

In the previous post, Network Monitor Reloaded, we walked through the reasoning for refactoring the Network Monitor tool. We also learned that using web standards for building Dev Tools enables us to running them in different environments – loaded either ... more


Thursday, 15 June, 2017 UTC

Avoiding race conditions in SharedArrayBuffers with Atomics

Avoiding race conditions in SharedArrayBuffers with Atomics

This is the 3rd article in a 3-part series: A crash course in memory management A cartoon intro to ArrayBuffers and SharedArrayBuffers Avoiding race conditions in SharedArrayBuffers with Atomics In the last article, I talked about how using SharedArrayBuffers ... more


Thursday, 15 June, 2017 UTC

A cartoon intro to ArrayBuffers and SharedArrayBuffers

A cartoon intro to ArrayBuffers and SharedArrayBuffers

This is the 2nd article in a 3-part series: A crash course in memory management A cartoon intro to ArrayBuffers and SharedArrayBuffers Avoiding race conditions in SharedArrayBuffers with Atomics In the last article, I explained how memory-managed languages ... more


Thursday, 15 June, 2017 UTC

Firefox 54: E10S-Multi, WebExtension APIs, CSS clip-path

Firefox 54: E10S-Multi, WebExtension APIs, CSS clip-path

“E10S-Multi:” A new multi-process model for Firefox Today’s release completes Firefox’s transformation into a fully multi-process browser, running many simultaneous content processes in addition to a UI process and, on Windows, a special GPU process. ... more


Thursday, 15 June, 2017 UTC

A crash course in memory management

A crash course in memory management

This is the 1st article in a 3-part series: A crash course in memory management A cartoon intro to ArrayBuffers and SharedArrayBuffers Avoiding race conditions in SharedArrayBuffers with Atomics To understand why ArrayBuffer and SharedArrayBuffer were ... more


Friday, 9 June, 2017 UTC

CSS Shapes, clipping and masking – and how to use them

CSS Shapes, clipping and masking – and how to use them

The release of Firefox 54 is just around the corner and it will introduce new features into an already cool CSS property: clip-path . clip-path is a property that allows us to clip (i.e., cut away) parts of an element. Up until now, in Firefox you could ... more


Friday, 9 June, 2017 UTC

Cross-browser extensions, available now in Firefox

Cross-browser extensions, available now in Firefox

We’re modernizing the way developers build extensions for Firefox! We call the new APIs WebExtensions , because they’re written using the technologies of the Web: HTML, CSS, and JavaScript. And just like the technologies of the Web, you can write one ... more