/blok

Web Extension implementation of Firefox tracking protection for experimental development

Primary LanguageJavaScriptMozilla Public License 2.0MPL-2.0

Tracking Protection: Test Pilot Experiment

AKA Blok

Build Status Coverage Status Available on Test Pilot

Web Extension re-implementation of Tracking Protection for Firefox.

We will run this add-on thru Test Pilot experimentation to:

  • Measure web content breakage
  • Collect user feedback

When we have breakage data and user feedback, we will change the tracking protection implementation, so users get better web experience with tracking protection.

Requirements

  • Firefox 48+

Run it

  1. Download the latest .xpi
  2. In Firefox, "Open File" and select the .xpi

When the add-on blocks tracker requests, you will see a Tracking Protection pageAction icon:

pageAction Screenshot

When you click the icon, you will see a pop-up, so you can report broken/working pages, or toggle Tracking Protection on or off:

Pop-up Screenshot

Development

  1. Clone this repo locally
  2. cd blok
  3. npm install
  4. npm run bundle

Running the Code

This add-on depends on web-ext. Using web-ext, start a version of Firefox running the add-on like so:

./node_modules/.bin/web-ext run --source-dir=src --firefox-binary {path to Firefox 49+ binary}

Development Environment

Add-on development is better with a particular environment. One simple way to get that environment set up is to install the DevPrefs add-on. You can make a custom Firefox profile that includes the DevPrefs add-on, and use that profile when you run the code in this repository.

profileEditor Screenshot

  1. Make a new profile by running {path to Firefox binary} -no-remote -P {new_profile_name}, which launches the profile editor. "Create Profile" -- name it whatever you wish (e.g. 'blok_dev') and store it in the default location. It's probably best to deselect the option to "Use without asking," since you probably don't want to use this as your default profile.

  2. Once you've created your profile, click "Start Firefox". A new instance of Firefox should launch. Go to Tools->Add-ons and search for "DevPrefs". Install it. Quit Firefox.

  3. Now you have a new, vanilla Firefox profile with the DevPrefs add-on installed. You can use your new profile with the code in this repository like so:

./node_modules/.bin/web-ext run --source-dir=src --firefox-binary {path to Firefox 49+ binary} --firefox-profile {new_profile_name}

Check out the Browser Toolbox for more information about debugging add-on code.

Testing

Requires node 6+

npm test

Distributing

To distribute, you will need AMO access credentials. See the web-ext docs.

  1. Use web-ext sign

FAQ, Footnotes, Appendices, etc.

How does this compare with ublock, privacy badger, ghostery, etc.

The primary goal of this add-on experiment is to create a feedback loop for tracking protection users to provide data on problems & breakage, so we (Mozilla) can learn how to improve tracking protection technologies in ways that maximize user privacy AND minimize web breakage.

The other privacy add-ons are great tools as well. The focus on reporting website problems & breakages is the key difference here. In fact, we deferred a number of other features in favor of simplicity and to make the feedback mechanism the primary focus of the add-on.

Read more on the discourse forum.

How do I run the add-on without web-ext

  1. Go to about:config and set xpinstall.signatures.required to false
  2. Go to about:debugging
  3. Click "Load Temporary Add-on"
  4. Select this repo's src/manifest.json file