A CCNx enabled Firefox browser. The current version support all file formats (including pure text, html, image and video) to be transmitted into the browser and rendered by the browser. All modification are inside the netwerk module, so it is still possible to strip all code out as a standalone plugin.
Tested on:
Mac OS X 10.7 Arch Linux CURRENT
Make sure that you can build Firefox out of box. The following links might be useful:
- Build documentation for Mozilla
https://developer.mozilla.org/en/Build_Documentation
Inside this document, you might want to look into the build prerequisities according to the system your are working on.
- Simple Firefox build tutorial
https://developer.mozilla.org/En/Simple_Firefox_build
- Get the source code for ffccnx
Merge the git repository into the current Firefox code base:
cd mozilla_central
git clone --no-checkout git://github.com/goodcjw/ffccnx.git
mv ffccnx/.git .
rm -rf ffccnx
git reset --hard HEAD
NOTE: mozilla_central is the home directory of your Firefox repository
- Apply patches
Run the following shell script to apply all CCNx patch automatically
./applyccnx.sh
- Library denpendency
Liking against libccn.a and libcrypto.a
cd obj-fx-dbg/dist/lib
ln -s /usr/local/lib/libccn.a libccn.a
ln -s /usr/lib/libcrypto.a libcrypto.a
NOTE:
obj-fx-dbg
is your Firefox building output directory you set in
.mozconfig
.
The actual location of your libccn.a
and libcrypto.a
file may vary in
different systems.
- Got some error related to 'moz_free' in some Linux distribution
The problem might come from the crashreport. A simple walkaround is to disable
crashreport. Add a line ac_add_options --disable-crashreporter
into the
.mozconfig
file.
- Got some error related to -fPIC while linking against libcrypto.a
It is probably that the libcrypto.a file you are using was not compiled
with -fPIC
option. Download openssl source code from www.openssl.org
and
configure, make and install it with
./config --prefix=/usr --shared -fPIC
make
sudo make install
You may need to recompile libccn.a
afterwords to make sure that it's static
link towards libcrypto.a
is consistent with the new one.