Monday, November 14th, 2011
You knew that Mozilla has an office in Taipei now, right? We’ve got a great engineering manager and three great engineers working out of Taipei, so far mostly on Boot2Gecko. I want to briefly call out what they’ve been working on lately. They’ve all just started within the last couple of months and are already [...]
Last Friday, pdf.js reached the state we wanted to it to be in before announcing it loudly: it renders the Tracemonkey paper perfectly*. So, we’re announcing it! Try out version 0.2. We’re very excited about the progress since the cat was let out of the bag two weeks ago. Below is a comparison of some [...]
Wednesday, June 15th, 2011
Andreas posted a general overview of pdf.js. I’d like to briefly cover some more-technical parts of the renderer. pdf.js (currently) parses raw arrays of bytes into streams of PDF “bytecode”, compiles the bytecode into JavaScript programs, then executes the programs. (Yes, it’s a sort of PDF JIT . The side effect of those programs is [...]
Thursday, August 12th, 2010
I made a mistake in not hosting this script from an hg repository; it’s already changed a few times since I originally posted. So, I fixed that. Now one can hg clone http://hg.mozilla.org/users/cjones_mozilla.com/tryselect cd $repo ../tryselect/tryselect Permissions and so forth should be set correctly. (Protip: I symlinked tryselect/tryselect into a directory in my $PATH.) If [...]
Tuesday, August 10th, 2010
(Next in my series of posts designed to make this the most boring blog on p.m.o .) The new tryserver has the (awesome!) ability to customize builds for each platform, using mozconfig-extra-$platform scripts. For me (and most others?), the common case will be to use the extra files to disable builds for platforms I don’t [...]
This code was shamelessly stolen and modified from the pvector command from Dan Marinescu’s et al. gdb-stl-views. ## ## nsTArray ## define ptarray if $argc == 0 help ptarray else set $size = $arg0.mHdr->mLength set $capacity = $arg0.mHdr->mCapacity set $size_max = $size – 1 set $elts = $arg0.Elements() end if $argc == 1 set $i [...]
Wednesday, March 24th, 2010
Add this to your .emacs (defun insert-mpl-tri-license () (interactive) (insert “/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*-\n” ” * vim: sw=2 ts=8 et :\n” ” */\n” “/* ***** BEGIN LICENSE BLOCK *****\n” ” * Version: MPL 1.1/GPL 2.0/LGPL 2.1\n” ” *\n” ” * The contents of this file are subject to [...]
Wednesday, November 25th, 2009
I used to do most of my development in a Linux virtual machine with 1.5GB of RAM. There, –enable-libxul builds were … painful: linking libxul itself took about 2 minutes and 30 seconds. Ideally, ld or gold would know how to re-link incrementally, and the problem would vanish. But until then, you can help ld [...]
Tuesday, August 4th, 2009
Porky.py (pronounced “porky pie”) is a simple C++ rewriting tool built on top of pork. Porky.py aims to make pork usable for a larger class of code rewriting problems by lowering pork’s high learning curve and making it easier to code up rewrite passes. If you want to skip the exposition and play with the [...]
Benjamin Smedberg recently discussed the motivation for splitting Firefox into multiple process, so I won’t recap that here. Instead, I want to demonstrate what we’ve accomplished so far. The video below shows our nearly Phase I-complete browser. (Back and Forward don’t work yet, but are relatively easy to add.) Sorry, your browser doesn’t support the [...]