duanyao / xulrunner-stub

Maintain xulrunner sources extracted from mozilla's repository
Other
16 stars 6 forks source link

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

  1. 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.

  2. Clone this project, and checkout a tag/branch. Current trees build with VS 2015 and FF 52.

  3. 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.

  4. 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 get msvc/Release/xulrunner-stub.exe.

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
  ...

Notes

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 .

Build for other platforms

Patches are welcome!

Source files' origin

Portable profile

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.