You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This is the source tree for HTTPS Everywhere for Firefox and Chrome.
7
+
Get the packages you need and install a git hook to run tests before push:
8
8
9
-
Important directories you might want to know about
9
+
bash install-dev-dependencies.sh
10
10
11
-
src/ The Firefox source
11
+
Run the tests for the Firefox version:
12
12
13
-
chromium/ The Chromium/Chrome source
14
-
(not to be confused with Firefox browser "chrome" or UI)
13
+
bash test.sh
15
14
16
-
src/components |
17
-
src/chrome/content | Firefox JavaScript and XUL code
18
-
src/chrome/content/code |
15
+
Run the latest code and rulesets in a standalone Firefox profile:
19
16
20
-
src/chrome/content/rules The rulesets live here
17
+
bash test.sh --justrun
18
+
19
+
Run the latest code and rulesets in a standalone Chromium profile:
20
+
21
+
bash run-chromium.sh
21
22
23
+
Build the Firefox extension as a .xpi package:
22
24
23
-
Installing Dependencies in Debian or Ubuntu
24
-
-------------------------------------------
25
+
bash makexpi.sh
25
26
26
-
sudo apt-get install python-lxml python-libxml2 libxml2-utils sqlite3 zip
27
+
Build the Chromium extension as a .crx package:
27
28
28
-
Installing Dependencies in Mac OS X
29
-
-----------------------------------
29
+
bash makecrx.sh
30
30
31
-
We recommend Mac users install dependencies using Homebrew:
32
-
http://brew.sh/
31
+
Both of the build commands store their output under pkg/.
33
32
34
-
Once you have Homebrew and Xcode installed, run this to install HTTPS Everywhere dependencies.
33
+
Precommit Testing
34
+
-----------------
35
+
36
+
One can run the available test suites automatically by enabling the precommit
37
+
hook provided with:
38
+
39
+
ln -s ../../hooks/precommit .git/hooks/pre-commit
35
40
36
-
brew install python libxml2 gnu-sed
41
+
Source Tree
42
+
-----------
43
+
44
+
This is the source tree for HTTPS Everywhere for Firefox and Chrome.
45
+
46
+
Important directories you might want to know about
37
47
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:
48
+
src/ The Firefox source
39
49
40
-
echo PATH=/usr/local/bin:$PATH >> ~/.profile
50
+
chromium/ The Chromium/Chrome source
51
+
(not to be confused with Firefox browser "chrome" or UI)
41
52
42
-
After running this close your terminal and then open it again. Then install lxml using pip.
53
+
src/components |
54
+
src/chrome/content | Firefox JavaScript and XUL code
55
+
src/chrome/content/code |
43
56
44
-
pip install lxml
57
+
src/chrome/content/rules The rulesets live here
45
58
46
59
Hacking on the Source Code
47
60
--------------------------
48
61
49
-
Please work off of the "3.5" branch if you're submitting changes to the latest stable release and use "master" if you're submitting changes to the latest development release.
62
+
The current stable release series is 4.0. The current development release series
63
+
is 5.0. Each release series is represented by a branch with the major and minor
64
+
version numbers, e.g. 4.0 or 5.0. This branch is updated during the lifecycle of
65
+
the release series. Specific releases are represented as tags with the full
66
+
version number, e.g. 4.0.0 or 5.0development.0.
67
+
68
+
If you are making a bug fix to the current stable release, you should
69
+
work off of the stable branch, 4.0. If you are adding features or improving
70
+
functionality, work off of master. The maintainers will merge master into the
71
+
development series branch periodically. We will also occasionally merge ruleset
72
+
fixes from master into the stable branch if the ruleset is important (i.e. a
73
+
popular or high-security site), or if the version in stable is clearly broken.
74
+
75
+
To submit changes, either use pull requests on GitHub or email patches to
76
+
https-everywhere-rulesets@lists.eff.org (rulesets) or
77
+
https-everywhere@lists.eff.org (code).
50
78
51
79
### Writing rulesets
52
80
@@ -56,9 +84,9 @@ If you want to create new rules to submit to us, we expect them to be in the src
56
84
57
85
sh ./make-trivial-rule example.com
58
86
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
87
+
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
60
88
61
-
python ../../../../utils/trivial-validate.py
89
+
bash test.sh
62
90
63
91
to make sure that your rule is free of common mistakes.
64
92
@@ -68,41 +96,24 @@ If you would like to help translate HTTPS Everywhere into another language, you
68
96
69
97
### Bug trackers and mailing lists
70
98
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.)
99
+
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.)
72
100
73
101
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
102
75
-
Build Instructions
76
-
------------------
77
-
78
-
To build the Firefox version go to the git repository root and run:
79
-
80
-
./makexpi.sh
81
-
82
-
To build the Chrome version go to the git repository root and run:
83
-
84
-
./makecrx.sh
85
-
86
-
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.
87
-
88
-
To construct ruleset file in Windows use `./utils/merge-rulesets.js`
89
-
90
-
Running Extension Tests
103
+
Tests
91
104
-------------
92
105
93
-
See [this README](https-everywhere-tests/README.md).
106
+
There are some very basic unittests under https-everywhere-tests/. These are run with
94
107
95
-
Ruleset Tests
96
-
-------------
108
+
bash test.sh
97
109
98
-
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.
110
+
We need a lot more tests and welcome additions.
99
111
100
-
When you run the tests, be prepared to let your computer run them for a really long time.
112
+
There are also ruleset tests, which aim to find broken rulesets by actually
113
+
loading URLs in a browser and watching for Mixed Content Blocking to fire.
114
+
You can run ruleset tests by opening [about:config](about:config) and changing
115
+
`extensions.https_everywhere.show_ruleset_tests` to true. Now when you open
116
+
the HTTPS Everywhere context menu there will be a "Run HTTPS Everywhere Ruleset Tests"
117
+
menu item.
101
118
102
-
Precommit Testing
103
-
-----------------
104
-
105
-
One can run the available test suites automatically by enabling the precommit
106
-
hook provided with:
107
-
108
-
ln -s ../../hooks/precommit .git/hooks/pre-commit
119
+
When you run the tests, be prepared to let your computer run them for a really long time.
0 commit comments