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!
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.
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!
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!
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!
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Getting started with the Android Eclipse build backend for Fennec
Support for building Firefox for Android with the Eclipse IDE has landed.
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.
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.
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.
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.