• Stars
    star
    102
  • Rank 323,878 (Top 7 %)
  • Language
    JavaScript
  • License
    Mozilla Public Li...
  • Created almost 4 years ago
  • Updated about 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Ghostery Desktop Browser

Ghostery Private Browser

The Ghostery Desktop Browser is a minimal fork of Firefox optimised for privacy. The main extra features are:

  • The Ghostery Privacy Blocker extension is included and enabled by default.
  • Ghostery privacy search included.
  • Firefox settings (telemetry etc) tuned for maximum privacy.

Download

The Ghostery browser is available for the following platforms:

Nightly channel

We also offer a nightly build for testing development builds. To get them:

  1. Install the standard release build from one of the links above.
  2. Open the browser and navigate to about:config.
  3. Search for the pref app.update.channel and change the value to nightly.

Build Locally

To build the browser we first need to download a copy of Firefox and patch it with our customisations. This process is handled via fern.js, which is our tool to handle the patch workflow. Set up your local workspace as follows:

git clone https://github.com/ghostery/user-agent-desktop.git
cd user-agent-desktop
npm ci # Fern.js dependencies
./fern.js use # Pull the correct Firefox and Ghostery extension sources
./fern.js import-patches # Apply patches to Firefox

Once you have Firefox source, you'll have to set up your environment to build the browser. Detailed instructions are available for Firefox, but in most cases the following will suffice:

cd mozilla-release
./mach bootstrap

Once your build toolchains are setup you can build using the Ghostery mozconfig file:

cd mozilla-release
MOZCONFIG=/path/to/user-agent-desktop/brands/ghostery/mozconfig ./mach build # start build
./mach run # to launch the browser

Cross platform builds

The local build setup will build the browser for your current platform. To build for other platforms we provide dockerised builds. These can be run using the fern.js build command:

./fern.js build -t mac

Windows and Mac builds depend on platform frameworks being included. These should be placed in the build directory:

  • Mac: MacOSX14.0.sdk.tar.xz. This can be found inside an XCode install.
  • Windows: vs.tar.zstd and Makecab.exe. See the end of this document to where to find these.

Development workflow

After cloning the repository, run the following commands to get started (Note that you will need npm and node to be installed on your system):

./fern.js use # Setup 'mozilla-release' folder using information from '.workspace'
./fern.js import-patches
cd mozilla-release # Do some stuff... and commit your changes
./fern.js export-patches # Check 'patches' folder

Upgrading Ghostery

Bumping the Ghostery extension bundled with the browser requires the following:

./fern.js use --ghostery v8.5.2
./fern.js reset
./fern.js import-patches

Upgrading Firefox

Whenever a new version is released or if you want to hack on top of another Firefox version, run the following:

./fern.js use --firefox 80.0.1
./fern.js reset # Needed if you already had this version locally.
./fern.js import-patches

Building

Building the browser in any flavor can be achived as follows:

# Prepare 'mozilla-release' folder with correct version and patches.
./fern.js use
./fern.js reset
./fern.js import-patches

# All three commands can be used from Linux and MacOS (except windows cross-build).
./fern.js build --target mac
./fern.js build --target linux
./fern.js build --target windows

Then check the content of the mozilla-release folder to find the artefacts.

Setting up a dev environment

./mach bootstrap requires a VC checkout of the gecko source to run properly. Use the gecko-dev repo to run mach bootstrap and setup your local build environment:

git clone https://github.com/mozilla/gecko-dev.git
cd gecko-dev
./mach bootstrap

Now you should be able use ./mach build in this project.

Alternatively, the build-* scripts in this repo will prepare docker images with a prepared build environment for each platform. The scripts will drop you to a command prompt in a docker container where you can run ./mach build directly.

Building on windows

Prerequisites

VS Redist

This can be built on windows after setting up a build environment as per these instructions. You will need to install the Windows 10 SDK at version 14.29.30133. Then run the following to create vs2019_14.29.30133.tar.bz2:

OUTPUT_DIR=PATH_TO_TEMP_FOLDER
./mach python --virtualenv build taskcluster/scripts/misc/get_vs.py ./build/vs/vs2019.yaml $OUTPUT_DIR
tar --zstd -cvjSf vs2019_14.29.30133.bz2 -C $OUTPUT_DIR .

Makecab.exe

This is copied from a windows install at C:\Windows\System32\makecab.exe.

Community

The User Agent projects aim to serve people's interests. We are open for communities to actively shape the future of our browsers and seek to get community feedback and opinions.

Communities are taking an active role in the project decision making:

  • Better-Fox - maintain an opinionated Firefox preferences list

If you are interested in joining User Agent Community feel free to start the discussion at Github or join our Matrix chat community.

More Repositories

1

ghostery-extension

Ghostery Browser Extension for Firefox, Chrome, Opera, Edge and Safari
JavaScript
1,299
star
2

adblocker

Efficient embeddable adblocker library
TypeScript
724
star
3

local-sheriff

Think of Local sheriff as a recon tool in your browser (WebExtension). While you normally browse the internet, Local Sheriff works in the background to empower you in identifying what data points (PII) are being shared / leaked to which all third-parties.
JavaScript
303
star
4

banshee

An iOS browser built on top of UIWebView
Objective-C
127
star
5

user-agent-ios

Ghostery iOS Browser
Swift
67
star
6

trackerdb

Ghostery Tracker Database
JavaScript
45
star
7

areweprivateyet

The crawler/analysis component of Are We Private Yet?
Java
43
star
8

GhosterySafari

Ghostery Lite app extension for Safari desktop browser
Swift
35
star
9

user-agent-android

Ghostery Android Browser
Shell
34
star
10

browser-android

Legacy Ghostery Browser for Android
24
star
11

url-parser

A fast typescript implementation of the window.URL API
TypeScript
24
star
12

autoconsent

TypeScript
21
star
13

browser-ios

Legacy Ghostery Browser for iOS
Swift
20
star
14

addon-simple-storage-editor

Firefox Add-on SDK simple storage viewer and editor
JavaScript
13
star
15

ghostery-dnr-extension

Swift
12
star
16

ghostery-browser-linux-support

Ghostery Browser on Linux (installer and Linux-specific documentation)
Ruby
8
star
17

common

Shared JS modules for Ghostery projects
JavaScript
7
star
18

ghostery-search-extension

JavaScript
6
star
19

broken-page-reports

TypeScript
6
star
20

ghostery-dawn-onboarding-extension

CSS
3
star
21

ghostery-newtab-extension

JavaScript
3
star
22

ghostery-tracker-analytics-extension

JavaScript
2
star
23

urlfilter2dnr

JavaScript
1
star
24

benchmarks

JavaScript
1
star
25

.github

1
star