Skip to content

Commit eb4c44b

Browse files
committed
Merge remote-tracking branch 'upstream/3.0' into fennec-take-2
Conflicts: src/components/https-everywhere.js src/install.rdf
2 parents bc66f96 + 4fe21a5 commit eb4c44b

27 files changed

+943
-421
lines changed

LICENSE.txt

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,26 @@ Incorporating code from Convergence
1212
Copyright © Moxie Marlinspike
1313
Licensed GPL v3+
1414

15+
Incorporating code from URI.js
16+
Copyright © Rodney Rehm
17+
Licensed MIT, GPL V3
18+
19+
Incorporating code from js-lru
20+
Copyright © 2010 Rasmus Andersson
21+
Licensed MIT
22+
1523
The build system incorporates code from Python 2.6,
1624
Copyright © 2001-2006 Python Software Foundation
17-
Python Software Foundation License Version 2
25+
Python Software Foundation License Version 2
1826

1927
Net License: GPL v3+ (complete tree)
2028
GPL v2+ (if Moxie's NSS.js is absent)
2129

30+
31+
Text of MIT License:
32+
====================
33+
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
34+
35+
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
36+
37+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

README.md

Lines changed: 59 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,25 @@
11
HTTPS Everywhere
22
================
33

4+
Source Tree
5+
-----------
6+
7+
This is the source tree for HTTPS Everywhere for Firefox and Chrome.
8+
9+
Important directories you might want to know about
10+
11+
src/ The Firefox source
12+
13+
chromium/ The Chromium/Chrome source
14+
(not to be confused with Firefox browser "chrome" or UI)
15+
16+
src/components |
17+
src/chrome/content | Firefox JavaScript and XUL code
18+
src/chrome/content/code |
19+
20+
src/chrome/content/rules The rulesets live here
21+
22+
423
Installing Dependencies in Debian or Ubuntu
524
-------------------------------------------
625

@@ -14,16 +33,45 @@ http://mxcl.github.io/homebrew/
1433

1534
Once you have Homebrew and Xcode installed, run this to install HTTPS Everywhere dependencies.
1635

17-
brew install python libxml2 gnu-sed
36+
brew install python libxml2 gnu-sed
1837

19-
Homebrew puts python in /usr/local/bin, but the python that comes with OS X is in /usr/bin. In order to use homebrew's version of python and pip you must change the order of your path so that /usr/local/bin comes before /usr/bin. This command will force your path to start with /usr/local/bin:
38+
Homebrew puts python in /usr/local/bin, but the python that comes with OS X is in /usr/bin. In order to use homebrew's version of python and pip you must change the order of your path so that /usr/local/bin comes before /usr/bin. This command will force your path to start with /usr/local/bin:
2039

2140
echo PATH=/usr/local/bin:$PATH >> ~/.profile
2241

2342
After running this close your terminal and then open it again. Then install lxml using pip.
2443

2544
pip install lxml
2645

46+
Hacking on the Source Code
47+
--------------------------
48+
49+
Please work off of the "3.0" branch if you're submitting changes to the latest stable release and use "master" if you're submitting changes to the latest development release.
50+
51+
### Writing rulesets
52+
53+
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
54+
55+
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
56+
57+
sh ./make-trivial-rule example.com
58+
59+
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 could then run
60+
61+
python ../../../../utils/trivial-validate.py
62+
63+
to make sure that your rule is free of common mistakes.
64+
65+
### Writing translations
66+
67+
If you would like to help translate HTTPS Everywhere into another language, you can do that through Transifex: https://www.transifex.com/projects/p/torproject/resources/.
68+
69+
### Bug trackers and mailing lists
70+
71+
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" or "writecode" account. (Note that you won't see replies unless you put an email address in the CC field.)
72+
73+
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.
74+
2775
Build Instructions
2876
------------------
2977

@@ -37,20 +85,17 @@ To build the Chrome version go to the git repository root and run:
3785

3886
After building the extension the xpi files (for Firefox) and crx files (for Chrome) get created in the pkg directory. You can open those files within your browser to install the browser extension.
3987

40-
Source Tree
41-
-----------
88+
Ruleset Tests
89+
-------------
4290

43-
This is the source tree for HTTPS Everywhere for Firefox and Chrome.
91+
You can run ruleset tests by opening `about:config` and changing `extensions.https_everywhere.show_ruleset_tests` to true. Now when you open the HTTPS Everywhere context menu there will be a "Run HTTPS Everywhere Ruleset Tests" menu item.
4492

45-
Important directories you might want to know about
93+
When you run the tests, be prepared to let your computer run them for a really long time.
4694

47-
src/ The Firefox source
95+
Precommit Testing
96+
-----------------
4897

49-
chromium/ The Chromium/Chrome source
50-
(not to be confused with Firefox browser "chrome" or UI)
51-
52-
src/components |
53-
src/chrome/content | Firefox JavaScript and XUL code
54-
src/chrome/content/code |
98+
One can run the available test suites automatically by enabling the precommit
99+
hook provided with:
55100

56-
src/chrome/content/rules The rulesets live here
101+
ln -s ../../hooks/precommit .git/hooks/pre-commit

0 commit comments

Comments
 (0)