This repository holds the build tools needed to build the XFII desktop browser for macOS, Windows, and Linux. In particular, it fetches and syncs code from the projects like xfii-core and chromium
- Chromium
- Fetches code via
depot_tools. - sets the branch for Chromium (ex: 65.0.3325.181).
- Fetches code via
- xfii-core
- Mounted at
src/brave. - Maintains patches for 3rd party Chromium code.
- Mounted at
- adblock-rust
- Implements XFII's ad-block engine.
- Linked through brave/adblock-rust-ffi
You can visit our website to get the latest stable release.
Please see the contributing guidelines
Follow the instructions for your platform:
Once you have the prerequisites installed, you can get the code and initialize the build environment.
git clone https://github.com/SoftwarePrince/xfii-browser.git
cd xfii-browser
npm install
# all these steps take 12-24 hous to run
# the Chromium source is downloaded which has a large history
npm run init
You can also set the target_os and target_arch for init and build using
The default build type is component.
# start the component build compile
npm run build
To do a release build:
# start the release compile
npm run build Release
Running a release build with npm run build Release can be very slow and use a lot of RAM especially on Linux with the Gold LLVM plugin.
To run a statically linked build (takes longer to build, but starts faster)
npm run build -- StaticTo run a debug build (Component build with is_debug=true)
npm run build -- DebugYou may also want to try [[using sccache|sccache-for-faster-builds]].
To start the build:
npm start [Release|Component|Static|Debug]
npm run sync -- [--force] [--init] [--create] [xfii_core_ref]
This will attempt to stash your local changes in xfii-core, but it's safer to commit local changes before running this
npm run sync will (depending on the below flags):
- 📥 Update sub-projects (chromium, xfii-core) to latest commit of a git ref (e.g. tag or branch)
- 🤕 Apply patches
- 🔄 Update gclient DEPS dependencies
- ⏩ Run hooks (e.g. to perform
npm installon child projects)
xfii-core> git checkout -b branch_nameor
xfii-browser> npm run sync -- --create branch_namexfii-core> git fetch origin
xfii-core> git checkout [-b] branch_name
xfii-core> npm run sync
...Updating 2 patches...
...Updating child dependencies...
...Running hooks...or
xfii-browser> npm run sync --create branch_name
...Updating 2 patches...
...Updating child dependencies...
...Running hooks...xfii-core> git pull
xfii-core> npm run sync
...Updating 2 patches...
...Updating child dependencies...
...Running hooks...xfii-browser> git checkout master
xfii-browser> git pull
xfii-browser> npm run sync -- --initxfii-core> git checkout featureB
xfii-core> git pull
xfii-browser> npm run apply_patches
...Applying 2 patches...- Google Safe Browsing: Get an API key with SafeBrowsing API enabled from https://console.developers.google.com/. Update the
GOOGLE_API_KEYenvironment variable with your key as per https://www.chromium.org/developers/how-tos/api-keys to enable Google SafeBrowsing.
this browser was made by Software Prince Company