Skip to content

Latest commit

 

History

History
191 lines (104 loc) · 6.89 KB

README.md

File metadata and controls

191 lines (104 loc) · 6.89 KB

Build Status

Brave Browser

Desktop browser for macOS, Windows, and Linux.

Follow @brave on Twitter for important news and announcements.

For other versions of our browser, please see:

Downloads

To download the latest release, see our releases page.

For a more user-friendly download page, please visit our website.

Useful documentation

Build prerequisites

You'll need certain packages installed before you can build and run Brave locally.

Windows

Please see the Building on Windows wiki entry

All other platforms

  1. nodejs >= 6.1

    Install from your package manager or download from https://nodejs.org

  2. node-gyp 3.3.1

     sudo npm install -g [email protected]
    

Linux

  • apt-get install libgnome-keyring-dev build-essential

OR

  • dnf install libgnome-keyring-devel rpm-build

Installation

After installing the prerequisites:

  1. Clone the git repository from GitHub:

     # For beta testers:
     git clone --depth 1 https://github.com/brave/browser-laptop
    
     # For devs over HTTPS:
     git clone https://github.com/brave/browser-laptop
    
     # For devs over SSH:
     git clone [email protected]:brave/browser-laptop.git
    
  2. Open the working directory:

     cd browser-laptop
    
  3. Install the Node (v5+) dependencies:

     npm install
    

If this fails on Linux with an error related to abp-filter-parser-cpp, try updating to Node 6.1 and node-gyp 3.3.1 (see discussion at brave#214)

Troubleshooting

Additional notes on troubleshooting installation issues are in the Troubleshooting page in the Wiki.

Preconfigured VMs

Some platforms are available as pre-configured VMs. See the readme for details.

Development

To run a development version of the browser requires a few steps. The easiest way is just to use two terminals. One terminal can be used just to watch for changes to the code

npm run watch

Now actually run Brave in another terminal

npm start

To run the tests:

npm run watch-test  or  npm run watch-all

npm test

Some errors related to brave/electron update can be fixed by doing a clean install:

rm -rf node_modules/
npm install

If this does not work, please clear out your ~/.electron first and try again.

Port

Brave uses port 8080 to communicate between its client and server sides by default. If you are using port 8080 for something else (e.g. a web proxy) then you can set the node config to make it use a different one.

e.g. npm config set brave:port 9001

Additional notes on troubleshooting development issues are in the Troubleshooting page in the Wiki.

Running inside of a development version of Brave's Electron fork

We are using a fork of Electron with some minor modifications. We try to upstream everything to electron/electron but forking allows us to take patches before upstreaming.

By default, we provide pre-built binaries when you npm install with our own fork of electron-prebuilt.

If you want to modify the code to Electron itself, then you'll need to build it. An example of why you might do that would be exposing a new event to the webview from Electron.

Build instructions:

Once you're happy with the changes you've made in the electron fork, you can test the changes locally by building and then copying the output files over the node_modules/electron-prebuilt for browser-laptop.

Assuming you have your directories in a structure such as this:

projects/
    electron/
    browser-laptop/

You can simply run an npm task to build and install your local electron instance:

npm run install

If your directory structure isn't side by side, you can run the following (altering the rsync as needed):

npm run build
rsync -avz --delete out/D/Brave.app {{path-to-browser-laptop}}/node_modules/electron-prebuilt/dist/

Packaging for bundles, installers, and updates

In order do run any build commands, you'll need an environment variable set for CHANNEL (set to 'dev', 'beta', or 'stable').

For more information, see docs/buildingReleases.md which has a more detailed overview of our release process.

macOS:

From within brave-browser you can create a .app file for distribution:

CHANNEL=dev npm run build-package

After the .app file is built you can create a dmg and update zip with:

IDENTIFIER=XYZ npm run build-installer

Where XYZ is your signing identifier.

Windows 7,8,10 x64:

You'll also need to set the CERT and CERT_PASSWORD environment variables with your authenticode signing cert and password if you want to build an installer.

To set these values, you can either set the environment on a per-session basis ($env:CHANNEL="dev") or update your system/user environment variables.

You must also have NSIS 3.0rc2 or later installed and makensis's folder must be in your PATH.

To create a folder with the app .exe and all dependencies you can run:

CHANNEL=dev npm run build-package

After the above folder is created, you can create a setup (exe, msi, RELEASES file and update nupkg) with:

npm run build-installer

Linux:

To create a package:

CHANNEL=dev npm run build-package

To create a dev package:

CHANNEL=dev npm run build-package