/https-everywhere

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

Primary LanguageJavaScriptOtherNOASSERTION

HTTPS Everywhere Build Status

Getting Started

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

bash install-dev-dependencies.sh

Run all the 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 path_to_tor_browser.tar.xz

Build the Firefox extension as a .xpi package:

bash makexpi.sh

Build the Chromium extension as a .crx package:

bash makecrx.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

src/                      The Firefox source

chromium/                 The Chromium/Chrome source
                          (not to be confused with Firefox browser "chrome" or UI)

src/components            |
src/chrome/content        | Firefox JavaScript and XUL code
src/chrome/content/code   |

src/chrome/content/rules  The rulesets live here

test/                     The tests live here

utils/                    Various utilities

Hacking on the Source Code

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