@ncalexander

Tofino, data storage, and how we got to Mentat

Project Tofino was an attempt by Mozilla to develop a new web browser. Richard Newman and I were responsible for designing and implementing a data storage layer to back Tofino. To meet Tofino’s needs we built Project Mentat, a data store designed for embedded client applications. This blog post explains the forces that resulted in us proposing Mentat to meet Tofino’s data storage needs.

Firefox "artifact builds" for Mac OS X

Right now, a Mac OS X Desktop Firefox builds takes about 20 minutes on fast hardware. By downloading pre-built binary artifacts, we get a functioning Mac OS X build in about 2 minutes. The resulting "artifact build" allows to quickly develop the JavaScript, XHTML, and CSS parts of the browser (but not the compiled C++ parts of the browser).

Never build libxul again!

Thu 31 December 2015 / tagged: firefox, desktop, build system, artifacts, mac os x

nalexander:community update, part the second

The part of my job that is special — the part I wouldn’t get working away from Mozilla — is enabling community contributors to participate in and own the direction of Fennec (Firefox for Android). Recently I’ve had success attracting and retaining high-value contributors by offering medium-sized projects that let me and a contributor collaborate on an area of the code base over time. In part the first I talked about my motivation and discussed my approach. This post is a companion post: first a status update and then an offer of projects to the community.

Wed 15 July 2015 / tagged: android, fennec, community

nalexander:community update, part the first

The part of my job that is special — the part I wouldn’t get working away from Mozilla — is enabling community code contributors to participate in and own the direction of Fennec (Firefox for Android). Recently I’ve had success attracting and retaining high-value code contributors by offering medium-sized projects that let me and a contributor collaborate on an area of the code base over time. I want to write a few words about why I’m doing this and what I’m doing. In part the second, I give a status update and advertise a variety of new projects to the community. If you’re interested, contact me!

Sun 05 July 2015 / tagged: android, fennec, community

Build Fennec frontend fast with mach artifact!

A Fennec (Firefox for Android) build can take about 20 minutes on modern hardware. By downloading pre-built C++ binaries and only building the Fennec frontend Java and JavaScript, we can build and deploy to device in about 5 minutes. The new mach artifact command landed in Bug 1162191 makes managing those pre-built binaries easy. Here’s how to get set up.

This post supercedes Build Fennec frontend fast!

Thu 02 July 2015 / tagged: android, build system, fennec, mach, artifact

Build Fennec frontend fast!

A complete Fennec (Firefox for Android) build takes around 20 minutes on modern hardware. By downloading pre-built C++ binaries and only building the Fennec frontend Java and JavaScript, we can build and deploy to device in under 5 minutes. This is tracked in Bug 11621914.

This post has been superceded Build Fennec frontend fast with mach artifact!

Wed 06 May 2015 / tagged: android, build system, fennec

Smoother Landings: How to update and test Fennec feature build flags

Fennec (Firefox for Android) features are staged and ride the trains (Nightly, Aurora, and Beta) before reaching the Release audience. In an earlier blog post, I detailed how to land a feature behind a build flag. In this post, I’ll detail how to quickly update and test features behind such a build flag without clobber building.

Fri 13 February 2015 / tagged: android, build system, fennec

Building Firefox for Android: I want my IDE!

I found writing my goals for the Firefox 36 cycle personally helpful, so I thought decided to repeat the exercise. Then I thought, "Why not share what I’m doing more widely?" In that spirit, here’s what I intend to work on during the Firefox 38 cycle.

Thu 08 January 2015 / tagged: mozilla, android, build system, buck, gradle, firefox, fennec

What I intend to work on for the Firefox 38 cycle

I found writing my goals for the Firefox 36 cycle personally helpful, so I thought decided to repeat the exercise. Then I thought, "Why not share what I’m doing more widely?" In that spirit, here’s what I intend to work on during the Firefox 38 cycle.

Tue 06 January 2015 / tagged: mozilla, android, ios, build system, gradle, firefox, account, fennec

We should build Firefox for Android with an external build system

For some time, I have been advocating for building Fennec with a full-featured Android build system. Here’s why.

Mon 05 January 2015 / tagged: mozilla, android, build system, gradle, buck, intellij

The Firefox for Android build system in 2015

2014 was an exciting year of improvements to the Firefox for Android front-end engineering build chain. 2015 is going to be even better. We’re going to improve the Firefox for Android development experience in three main ways: making your first build easier; making your next builds faster; and letting you use the Android tools you know and love.

Mon 08 December 2014 / tagged: mozilla, android, build system, gradle, intellij

Building Fennec with Gradle and IntelliJ: first steps

Developing Fennec with Eclipse has been working well for quite some time now, but Eclipse is officially no longer supported by Google and the new standard is to build with Gradle and to edit in Android Studio or IntelliJ. I recently landed Bug 1041395 and friends, which makes it easy to build Fennec with Gradle. Here is a companion demonstration screencast.

Thu 23 October 2014 / tagged: android, build system, fennec, gradle, intellij

Build your own browser: A Maven repository for GeckoView

GeckoView is a project that lets you embed the Gecko rendering engine into your Android App. Slowly but surely, we’ve making this process easier. It’s now really easy to include GeckoView in your Gradle-based application, thanks to a new Maven repository hosting Nightly GeckoView builds.

Thu 10 July 2014 / tagged: android, build system, fennec, geckoview, maven, gradle

Bumpy landings: How to land a Fennec feature behind a build flag

Fennec (Firefox for Android) features are staged and ride the trains (Nightly, Aurora, and Beta) before reaching the Release audience. Features that land on Nightly may — or may not — continue to Aurora. To support rapid Nightly development, while letting code mature before it reaches Aurora, you should land your new feature behind a runtime preference or a build flag. Here’s a guide to landing behind such a flag.

Wed 09 July 2014 / tagged: android, build system, fennec

How the Android Eclipse build system integration works

Firefox for Android (Fennec) can be built with Eclipse, but it’s a delicate dance. This post runs through the technical details of what happens, and when, during an Eclipse build.

Tue 08 July 2014 / tagged: android, build system, eclipse

DEPRECATED: How to connect Firefox for Android to self-hosted Firefox Account and Firefox Sync servers

Firefox for Android version 33 and above support connecting to self-hosted services. Firefox for Android 44 and above no longer require an addon to connect to custom Firefox Account and Firefox Sync servers. The documentation at https://docs.services.mozilla.com/howtos/run-sync-1.5.html and https://docs.services.mozilla.com/howtos/run-fxa.html has been updated and is now the canonical documentation for configuring custom servers in Firefox for Android.

This deprecated post includes background and a detailed step-by-step guide showing how to connect Firefox for Android 43 and below to self-hosted Firefox Account and Firefox Sync servers.

Sat 05 July 2014 / tagged: android, sync

Adding assets to the Fennec APK file

The Fennec Android package file includes static assets in the APK root, and in the assets directory. Learn how to add new static assets to both locations in the Fennec Android package.

Wed 02 July 2014 / tagged: android, build system

Better Fennec builds with an Eclipse plugin

Building Fennec with Eclipse just got better, thanks to a new Eclipse plugin that streamlines the build process.

Tue 24 June 2014 / tagged: android, build system

Developing Fennec with Eclipse mini-tutorials

Using Eclipse to develop Fennec is pretty great, but some folks need even more convincing. Here are ten mini-tutorials — videos less than two minutes long each — showing some handy navigation techniques and editing tips.

Mon 24 March 2014 / tagged: android, build system, eclipse

Getting started with the Android Eclipse build backend for Fennec

Support for building Firefox for Android with the Eclipse IDE has landed.

Fri 14 February 2014 / tagged: android, build system, eclipse

Building Fennec with Eclipse — instructions

Here are terse instructions for getting my work in progress for building Fennec with Eclipse running on your local developer machine. This is a companion to my screencast about building Fennec with Eclipse.

Thu 07 November 2013 / tagged: android, build system, eclipse

Building Fennec with Eclipse — IDE demo

I’ve recorded a screencast demo of some of the work me bnicholson have been doing on building Fennec with Eclipse.

Tue 05 November 2013 / tagged: android, build system, eclipse

hg booklog: log changesets not yet merged to mainline

hg booklog lets you see what changesets a feature bookmark contains that have not been merged to mainline.

Mon 28 October 2013

My vision for building mobile/android

Gregory Szorc (gps) just blogged about Mozilla’s 2013 Q3 build system progress and started a conversation about the 2013 Q4 build system goals. This is my vision for one of those goals: Generate IDE project files for Fennec.

Thu 17 October 2013 / tagged: android, build system