Standalone xulrunner-stub project
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).
Pre build binaries
You can download them from the project page.
Build for Win32
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
msvc/xulrunner-stub.slnwith Visual Studio, and build in release mode (debug mode doesn't work currently). If all is OK, you'll get
Run your xulrunner app & runtime dependencies
You may layout your xulrunner app like this:
<your_app_dir> xulrunner/ mozglue.dll msvcrXXX.dll msvcpXXX.dll xulrunner-stub.exe application.ini ...
- You may copy firefox's files (
xulrunner/to act as xulrunner.
- I'm not able to remove the stub's hard dependency on
msvcpXXX.dll, so you have to copy them from firefox to the same directory of the stub.
Alternatively, you may "flatten"
<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
"Flatten xulrunner" is a new feature introduced by commit
Build for other platforms
Patches are welcome!
Source files' origin
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.
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.