Cross compiling Firefox for Windows ARM64

My napkin notes on cross compiling Firefox for Windows ARM64 (aarch64) on a x86 Windows host. Likely to be superseded by official instructions at some point (I'll add a note and a link when this happens), but for my and others reference in the mean time. These notes extend upon…

Read this article

Setting up Arcanist for Mozilla development on Windows

Note: Since I first published this, Mozilla have created a Windows specific guide to address this same topic. I encourage people to use Mozilla's guide -- my original guide was intended to provide a stop gap while waiting for something like the above. Mozilla is rolling out Phabricator as part…

Read this article

Tips and tricks for eslint-ing mozilla-central

eslint is a great tool when dealing with JavaScript. Using eslint in mozilla-central helps save time by catching issues before review and aids in keeping the codebase consistent. Clever people have already setup eslint in various ways in mozilla-central, see here and here to get started! This post is a…

Read this article

Why Does Firefox Use e4 and e5 Values to Fill Memory?

I was once talking to some colleagues about a Firefox crash bug. As we gazed at the crash report, one leaned over and pointed at the value in one of the CPU registers: 0xe5e5e5e9. “Freed memory,” he sagely indicated: “e5”. Magic debug numbers Using special numbers to indicate something in…

Read this article

Debug Rust on Windows with Visual Studio Code and the MSVC Debugger

Debugging support for Rust when using the Microsoft Visual C++ (MSVC) toolchain is something that a lot of people (myself included) would really benefit from. There have been some improvements in this area that enable better debugging in Visual Studio Code (with a bit of tweaking)! Let's take a look…

Read this article

Migrating From LastPass to KeePass

I've recently been trying out KeePass 2 as an alternative to LastPass, in this post I'm going to go briefly into why I made the switch, and detail how you can do so with a fairly minimal amount of pain. If you're just interested in how to migrate, you can…

Read this article

Dissecting Firefox's -no-remote option

Starting multiple instances of Firefox is something I've done countless times, in order to test different versions and use different profiles. In order to do so I use the handy-dandy -no-remote option. However, the documentation on -no-remote is a little sparse. So let's looks at what the option really does,…

Read this article

Of Too Long File Names (in Windows) and Git

I was recently involved in a restructure of git repositories for a moderate sized Java code base. As it's a Java code base you end up with impossibly long paths due to package structure, e.g.: ~/src/main/java/com/brycecorp/documenthandling/xml/server/rest/util/mock/MockDocumentResourceLoader.java In…

Read this article

Null is Bollocks

This is a blog post I wrote while working on a Java heavy project. It was spurred by adoption of Java 8 being on the horizon, as well as some frustrating code dives to figure out which code paths in a document handling pipeline could lead to null values. Null…

Read this article