Giter Club home page Giter Club logo

privacybadger's Introduction

Privacy Badger Build Status

Privacy Badger blocks spying ads and invisible trackers. It's there to ensure that companies can't track your browsing without your consent.

This extension is designed to automatically protect your privacy from third party trackers that load invisibly when you browse the web. We send the Do Not Track header with each request, and our extension evaluates the likelihood that you are still being tracked. If the algorithm deems the likelihood is too high, we automatically block your browser from responding to the domain. Just because a domain has been flagged by Privacy Badger's algorithm, doesn't mean that that domain is tracking you, just that it could be.

Our extension has three states. Red means Privacy Badger believes this third-party domain is a tracker, and has blocked it. Yellow means the domain is believed to be both a tracker and necessary for the functioning of the page, so Privacy Badger is allowing it but blocking its cookies to prevent it from uniquely identifying you. Green means that Privacy Badger believes this is not tracker. You can click on the Privacy Badger icon in your browser's toolbar if you wish to override the automatic blocking settings. Or, you can browse in peace as Privacy Badger starts finding and eating up web trackers one by one.

Nothing can stop the Privacy Badger from eating cookies when it's hungry!

Privacy Badger is a project of the Electronic Frontier Foundation.

Developing

Load the extension from source code

In Chrome, visit chrome://extensions, enable "Developer mode", click "Load unpacked extension..." and select the src subdirectory inside your copy of the Privacy Badger source code.

In Firefox, visit about:debugging, click "Load Temporary Add-on" and select the src subdirectory.

Get in touch

If you want to chat about Privacy Badger, please join us in the #privacybadger IRC channel on OFTC.

We have public meetings for discussing development, bugs, feature, trackers, etc. every Monday and Thursday at 11:30am PST on Jitsi video chat.

We also have a mailing list.

Testing

This project uses the QUnit, pytest, Selenium test frameworks along with Travis CI for continuous integration.

Unit tests

To run the unit tests, click on the badger icon next to the URL bar to open the popup. Then in the popup, click on the gear icon (โš™) to open the options page. Your browser should navigate to an internal URL that starts with chrome-extension:// or moz-extension:// and ends with /skin/options.html. Replace /skin/options.html with /tests/index.html and hit enter. This will open the unit tests and run them.

Functional tests

To run the Selenium functional tests, you'll need to install chromedriver (link) for Chrome or geckodriver (link) for Firefox. You also need some python packages which can be installed by running:

$ pip install -r tests/requirements.txt

Now you should be able to run the selenium tests! Try them out by running the code below. This should take several minutes.

$ BROWSER=chrome pytest -v

The BROWSER environment variable must be set. It must be one of:

  • BROWSER=/path/to/a/browser
  • the name of a browser executable that can be found like which $BROWSER
  • or simply BROWSER=chrome or BROWSER=firefox if you have them installed
Examples

Note that to use a debugger like pdb or ipdb you must pass the -s (--capture=no) flag to pytest.

# run qunit_test.py, with firefox, with verbose output (-v)
$ BROWSER=/usr/bin/firefox pytest -v tests/selenium/qunit_test.py

# run a specific test on a specific class in a specific module, on google-chrome-stable
$ BROWSER=google-chrome-stable pytest super_cookie_test.py::SuperCookieTest::test_should_detect_ls_of_third_party_frame

# run any tests whose name (including the module and class) matches the string cookie_test
# this is often useful as a less verbose way to run a single test
$ BROWSER=firefox pytest -k cookie_test

More pytest invocations can be found here (these are very useful).

If you are on Linux, you can also run the tests headlessly (without displaying a GUI). Install Xvfb with your system package manager, then set the ENABLE_XVFB=1 environment variable. Like this:

$ BROWSER=~/Downloads/firefox/firefox ENABLE_XVFB=1 pytest -s -v -k pbtest_org

Refer to the our Travis-CI scripts for more information: scripts/setup_travis.sh and scripts/run_travis.sh.

License

Privacy Badger is licensed under the GPLv3. See LICENSE for more details

privacybadger's People

Contributors

cooperq avatar ghostwords avatar cowlicks avatar pde avatar dtauerbach avatar gunesacar avatar alexristich avatar swartzcr avatar rcutmore avatar thorsten-sick avatar froeschele avatar jonathanmayer avatar pollyp avatar ynasser avatar jsha avatar hainish avatar duggiefresh avatar hansikaph avatar totalcaesar659 avatar comradekingu avatar terrorist96 avatar ishanichugh avatar jawz101 avatar rvaneijk avatar dvd2000 avatar taravancil avatar urides avatar zebesta avatar jerry-wolf avatar groovecoder avatar

Watchers

josedante avatar James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.