This project continues to maintain xulrunner-stub sources extracted from mozilla's repository and makes it built against Firefox SDK. Background: mozilla had removed xulrunner sources from their repository (issue).
You can download them from the project page.
-
Install MS Visual Studio (Express for Desktop or Community Editions are OK). Version of your VS should match the one with which Firefox SDK was built. E.g. VS 2013 for FF 42-47, and VS 2015 for FF 52.
-
Clone this project, and checkout a tag/branch. Current trees build with VS 2015 and FF 52.
-
Download Firefox SDK. e.g. http://ftp.mozilla.org/pub/firefox/nightly/latest-mozilla-aurora/firefox-47.0a2.en-US.win32.sdk.zip or https://ftp.mozilla.org/pub/firefox/releases/52.6.0esr/firefox-52.6.0esr.win32.sdk.zip . Unzip it in the project directory, and make sure the directory name is
firefox-sdk
. -
Open
msvc/xulrunner-stub.sln
with Visual Studio, and build in release mode (debug mode doesn't work currently). If all is OK, you'll getmsvc/Release/xulrunner-stub.exe
.
You may layout your xulrunner app like this:
<your_app_dir>
xulrunner/
mozglue.dll
msvcrXXX.dll
msvcpXXX.dll
xulrunner-stub.exe
application.ini
...
Notes
- You may copy firefox's files (
xul.dll
,omni.ja
etc.) toxulrunner/
to act as xulrunner. - I'm not able to remove the stub's hard dependency on
mozglue.dll
,msvcrXXX.dll
andmsvcpXXX.dll
, so you have to copy them from firefox to the same directory of the stub.
Alternatively, you may "flatten" xulrunner/
into <your_app_dir>
:
<your_app_dir>
xul.dll
omni.ja
...
mozglue.dll
msvcrXXX.dll
msvcpXXX.dll
xulrunner-stub.exe
application.ini
...
In this way, you don't have to duplicate mozglue.dll
, msvcrXXX.dll
and msvcpXXX.dll
.
"Flatten xulrunner" is a new feature introduced by commit 5bb9c7f4addab9b745b9186da4dcade8720378c8
.
Patches are welcome!
xulrunner/stub/nsXULStub.cpp
: The main source file, was removed from mozilla's repository.xpcom/build/nsXPCOMPrivate.h
: Missing from firefox sdk, so copied to this project.toolkit/xre/nsWindowsWMain.cpp
: Ditto.
This a new feature which makes it possible to store user's profile inside <your_app_dir>
: If a directory named PortableProfile
exits in <your_app_dir>
, it will be used as the profile directory (implementation details). Note that command line option -profile
can still override this behaviour. This feature currently lives in branch PortableProfile
, and there are binaries with this feature in the project page.