/https-everywhere

A browser extension that encrypts your communications with many websites that offer HTTPS but still allow unencrypted connections.

Primary LanguagePythonOtherNOASSERTION

Getting Started

Get the packages you need and install a git hook to run tests before push:

bash install-dev-dependencies.sh

Run the ruleset validations and browser tests:

bash test.sh

Run the latest code and rulesets in a standalone Firefox profile:

bash test/firefox.sh --justrun

Run the latest code and rulesets in a standalone profile for a specific version of Firefox:

FIREFOX=/path/to/firefox bash test/firefox.sh --justrun

Run the latest code and rulesets in a standalone Chromium profile:

bash test/chromium.sh --justrun

Run the latest code and rulesets in a standalone Tor Browser profile:

bash test/tor-browser.sh path_to_tor_browser.tar.xz

Build the Firefox (.xpi) & Chromium (.crx) extensions:

bash make.sh

Both of the build commands store their output under pkg/.

Precommit Testing

One can run the available test suites automatically by enabling the precommit hook provided with:

ln -s ../../hooks/precommit .git/hooks/pre-commit

Source Tree

This is the source tree for HTTPS Everywhere for Firefox and Chrome.

Important directories you might want to know about

chromium/                 WebExtension source code (for Firefox & Chromium/chrome)
chromium/external         External dependencies
chromium/test             Unit tests

rules/                    Symbolic link to src/chrome/content/rules

src/chrome/content/rules  Ruleset files live here

test/                     Travis unit test source code live here

utils/                    Various utilities (includes some Travis test source)

Hacking on the Source Code

Please refer to our contributing document to contribute to the project.