Make FUEL work with Firefox 2

From CDOT Wiki
Jump to: navigation, search

Introduction

FUEL (Firefox User Extension Library) is a JavaScript Library designed to help developers build extensions using terminology and interfaces that are familiar to them. It will be usable in Firefox 1.5-3.0. FUEL is about making it easier for extension developers to be productive, by minimizing some of the XPCOM formality and adding some "modern" JavaScript ideas. We want to start with areas that will provide the most benefit. source

The People

TODO

  • At the moment FUEL is manually added to the build (see below). It will be much easier if the build script did it for us :)

Project Details

At the moment FUEL only works on Firefox3. This project is dedicated in back porting FUEL to make it work with Firefox2

fuelApplication.js

fuelApplication.js is located in mozilla/browser/fuel/src and will be the main file that will undergo the changes. You can get the latest update of it here. It's just a plain text file, it doesn't have the fancy change revision.

Below are the list of the functions I tested with and what did and didn't work.

Working:

  • Console

Not Working:

  • Bookmarks

Build Instructions

We need to create a directory to throw the mozilla source in.

mkdir mozilla-1.8-branch
cd mozilla-1.8-branch

This will fetch the client.mk file from mozilla. client.mk contains info on how to configure the build tree to configure any product the -r MOZILLA_1_8_BRANCH specifies to the server that we want the client.mk file from the 1.8 branch

cvs -d :pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot co -r MOZILLA_1_8_BRANCH mozilla/client.mk


Now we need to create the .mozconfig file. It contains parameters for client.mk on how to checkout and build. The last ac_add_options line is not needed for non Mac machines.

cd mozilla
cat > .mozconfig << MOZCONFIG
# Options for client.mk.
mk_add_options MOZ_CO_PROJECT=browser
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/objdir
mk_add_options MOZ_MAKE_FLAGS="-s -j4"

# Options for 'configure' (same as command-line options).
ac_add_options --enable-application=browser
ac_add_options --enable-debug
ac_add_options --enable-tests
ac_add_options --with-macos-sdk=/Developer/SDKs/MacOSX10.4u.sdk
MOZCONFIG

After creating the MozConfig file we can begin downloading the source. (around 220mb)

make -f client.mk checkout

Now we can start building firefox.

make -f client.mk build

When finished the firefox executable is found in the following directories

  • xp/*nix: mozilla/dist/bin/firefox
  • mac: mozilla/dist/bin/Something.app/Contents/MacOs/firefox

To download FUEL navigate to ../mozilla

cd ..
cvs -d :pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot co mozilla/browser/fuel

Now that we have acquired the fuel source we need to modify the browser/Makefile.in to let the build know about the addition

cd mozilla/browser
vi Makefile.in
  • Go to the line starting with DIRS
  • Append fuel to the end of it
DIRS = base components locales extensions themes app fuel

The build script doesn't generate the fuel part automatically, which is why fuel is fetched after the build is done. The following steps will force the generation of the makefiles manually, and then rebuild fuel and app

cd ../objdir
../build/autoconf/make-makefiles browser/fuel
make -C browser/fuel
make -C browser/app

and there you have it, FUEL is now built into ff2

Links