A browser extension that encrypts your communications with many websites that offer HTTPS but don't yet enforce it.
JavaScript Python Shell ApacheConf CSS HTML Other
Latest commit df996fb Feb 24, 2017 @ivysrono ivysrono committed with J0WI Update CMBChina.com.xml (#7290)
* Update CMBChina.com.xml

* Update CMBChina.com.xml

* Update CMBChina.com.xml

* Update CMBChina.com.xml

* Update CMBChina.com.xml

* Update CMBChina.com.xml

* Update CMBChina.com.xml

* Update CMBChina.com.xml

* Update CMBChina.com.xml

* Update CMBChina.com.xml

* Update CMBChina.com.xml

* Update CMBChina.com.xml

* Update CMBChina.com.xml

* Update CMBChina.com.xml

* Update CMBChina.com.xml

* Update CMBChina.com.xml

* Update CMBChina.com.xml

* Update CMBChina.com.xml

* Update CMBChina.com.xml

* Update CMBChina.com.xml

* Update CMBChina.com.xml

* Update CMBChina.com.xml
Permalink
Failed to load latest commit information.
addon-sdk @ 12f7d53 Add semicolon. Jan 13, 2015
apache Specify the exact python version, don't just assume it's python 2.7 Oct 1, 2016
chromium Release: Firefox v. 5.2.11, Chrome v. 2017.2.13 Feb 14, 2017
common optimize png images using zopflipng Oct 10, 2016
docs faq: replace NYTimes (#8180) Jan 12, 2017
hooks Merged in 'origin/master' with changes from schoen. Nov 7, 2013
image-src Smaller jpg files Apr 20, 2013
rewriter [https-everywhere-rewriter] Rename URIjs to urijs (#5136) Aug 28, 2016
src Update CMBChina.com.xml (#7290) Feb 24, 2017
test Downgrading to the default pycurl SSL version rather than TLS 1.2 Feb 23, 2017
translations @ ae994e3 Update translations. Feb 14, 2017
utils Fixing GitHub labeller to match www and wildcard targets Feb 21, 2017
.build_exclusions Exclude another stray file Jul 13, 2011
.dockerignore Dockerizing travis tests May 24, 2016
.editorconfig Added .editorconfig (#6164) Aug 12, 2016
.gitignore Updated .gitignore Aug 16, 2016
.gitmodules Removing https-everywhere-checker as submodule and incorporating it i… Mar 22, 2016
.travis.yml Adding additional test to ensure that added targets are not HSTS prel… Jan 20, 2017
CONTRIBUTING.md add CONTRIBUTING.md (#7255) Oct 24, 2016
Dockerfile Dockerizing travis tests May 24, 2016
LICENSE.txt Add URI.js to LICENSE.txt Dec 31, 2013
Makefile Delete old ruleset databases in 'make' and 'make clean'. Mar 20, 2016
README.md Update current stable release series in README.md Aug 17, 2016
fetch-test.sh Fix fetch-test.sh Sep 20, 2015
install-dev-dependencies.sh Specify the exact python version, don't just assume it's python 2.7 Oct 1, 2016
makecrx.sh Specify the exact python version, don't just assume it's python 2.7 Oct 1, 2016
makexpi.sh Fix rules test by copying rulesets.json in extension make scripts rat… Sep 20, 2016
requirements.txt Selenium is a dev requirement Feb 2, 2016
rules Add a top-level 'rules' symlink. Feb 2, 2015
ruleset-style.md Update ruleset-style.md ruleset-testing.md (#7648) Feb 10, 2017
ruleset-testing.md Update ruleset-style.md ruleset-testing.md (#7648) Feb 10, 2017
test.sh Fix readlink errors & more properly CD to the project root. Sep 6, 2015

README.md

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 Chromium profile:

bash test/chromium.sh --justrun

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

Hacking on the Source Code

The current stable release series is 5.2. The maintainers release new versions off the current master branch about every two weeks.

To submit changes, either use pull requests on GitHub or email patches to https-everywhere-rulesets@lists.eff.org (rulesets) or https-everywhere@lists.eff.org (code).

Writing rulesets

HTTPS Everywhere consists of a large number of rules for switching sites from HTTP to HTTPS. You can read more about how to write these rules here: https://www.eff.org/https-everywhere/rulesets

If you want to create new rules to submit to us, we expect them to be in the src/chrome/content/rules directory. That directory also contains a useful script, make-trivial-rule, to create a simple rule for a specified domain. There is also a script called trivial-validate.py, to check all the pending rules for several common errors and oversights. For example, if you wanted to make a rule for the example.com domain, you could run

bash ./make-trivial-rule example.com

inside the rules directory. This would create Example.com.xml, which you could then take a look at and edit based on your knowledge of any specific URLs at example.com that do or don't work in HTTPS. You should then run

bash test.sh

to make sure that your rule is free of common mistakes.

Writing translations

If you would like to help translate HTTPS Everywhere into your language, you can do that through the Tor Project's Transifex page: https://www.transifex.com/projects/p/torproject/.

Bug trackers and mailing lists

We currently have two bug trackers. The one on GitHub (https://github.com/EFForg/https-everywhere/issues) is recommended because it gets checked more frequently and has a friendlier user interface. The one on trac.torproject.org (https://trac.torproject.org/projects/tor/report/19) has a large backlog of bugs at this point, but it has the advantage of allowing you to post bugs anonymously using the "cypherpunks" / "writecode" account. (Note that you won't see replies unless you put an email address in the CC field.)

We have two publicly-archived mailing lists: the https-everywhere list (https://lists.eff.org/mailman/listinfo/https-everywhere) is for discussing the project as a whole, and the https-everywhere-rulesets list (https://lists.eff.org/mailman/listinfo/https-everywhere-rules) is for discussing the rulesets and their contents, including patches and git pull requests.

Tests

There are some very basic unittests under test/. These are run with

bash test.sh

Please help write more unittests and integration tests!

There are also ruleset tests, which aim to find broken rulesets by actually loading URLs in a browser and watching for Mixed Content Blocking to fire. The easiest way to run ruleset tests is to load a standalone Firefox instance with the tests enabled:

bash test/firefox.sh --justrun

Then click the HTTPS Everywhere icon on the toolbar, and click "Run HTTPS Everywhere Ruleset Tests." When you run the tests, be prepared to let your computer run them for a really long time.