LEFT | RIGHT |
(no file at all) | |
1 Adblock Plus for Chrome, Opera and Safari | 1 Adblock Plus for Chrome, Opera and Safari |
2 ========================================= | 2 ========================================= |
3 | 3 |
4 This repository contains the platform-specific Adblock Plus source code for | 4 This repository contains the platform-specific Adblock Plus source code for |
5 Chrome, Opera and Safari. It can be used to build Adblock Plus for these | 5 Chrome, Opera and Safari. It can be used to build Adblock Plus for these |
6 platforms, generic Adblock Plus code will be extracted from other repositories | 6 platforms, generic Adblock Plus code will be extracted from other repositories |
7 automatically (see _dependencies_ file). | 7 automatically (see _dependencies_ file). |
8 | 8 |
9 Building | 9 Building |
10 --------- | 10 --------- |
11 | 11 |
12 ### Requirements | 12 ### Requirements |
13 | 13 |
14 - [Python 2.7](https://www.python.org) | 14 - [Python 2.7](https://www.python.org) |
15 - [The Jinja2 module](http://jinja.pocoo.org/docs) | 15 - [The Jinja2 module](http://jinja.pocoo.org/docs) |
16 - [The PIL module](http://www.pythonware.com/products/pil/) | 16 - [The PIL module](http://www.pythonware.com/products/pil/) |
17 - For signed Chrome and Opera builds: [M2Crypto module](https://github.com/marti
npaljak/M2Crypto) | 17 - For signed Chrome builds: [M2Crypto module](https://github.com/martinpaljak/M2
Crypto) |
18 - For signed Safari builds: A [patched version of the xar command line tool](htt
ps://github.com/mackyle/xar/) | 18 - For signed Safari builds: A [patched version of the xar command line tool](htt
ps://github.com/mackyle/xar/) |
19 | 19 |
20 ### Building the extension | 20 ### Building the extension |
21 | 21 |
22 Run one of the following commands in the project directory, depending on your | 22 Run one of the following commands in the project directory, depending on your |
23 target platform: | 23 target platform: |
24 | 24 |
25 ./build.py -t chrome build -k adblockpluschrome.pem | 25 ./build.py -t chrome build -k adblockpluschrome.pem |
26 ./build.py -t opera build -k adblockplusopera.pem | |
27 ./build.py -t safari build -k adblockplussafari.pem | 26 ./build.py -t safari build -k adblockplussafari.pem |
28 | 27 |
29 This will create a build with a name in the form | 28 This will create a build with a name in the form |
30 _adblockpluschrome-1.2.3.nnnn.crx_ or _adblockplussafari-1.2.3.nnnn.safariextz_. | 29 _adblockpluschrome-1.2.3.nnnn.crx_ or _adblockplussafari-1.2.3.nnnn.safariextz_. |
31 Note that you don't need an existing signing key for Chrome or Opera, a new key | 30 Note that you don't need an existing signing key for Chrome, a new key |
32 will be created automatically if the file doesn't exist. Safari on the other | 31 will be created automatically if the file doesn't exist. Safari on the other |
33 hand always requires a valid developer certificate, you need to get one in the | 32 hand always requires a valid developer certificate, you need to get one in the |
34 Apple Developer Center first. _adblockplussafari.pem_ should contain the private | 33 Apple Developer Center first. _adblockplussafari.pem_ should contain the private |
35 key for your developer certificate, the developer certificate itself as well as | 34 key for your developer certificate, the developer certificate itself as well as |
36 all the certificates it was signed with (Apple's root certificate and | 35 all the certificates it was signed with (Apple's root certificate and |
37 intermediate certificates) in PEM format - in that order. | 36 intermediate certificates) in PEM format - in that order. |
38 | 37 |
39 ### Development environment | 38 ### Development environment |
40 | 39 |
41 To simplify the process of testing your changes you can create an unpacked | 40 To simplify the process of testing your changes you can create an unpacked |
42 development environment. For that run one of the following commands: | 41 development environment. For that run one of the following commands: |
43 | 42 |
44 ./build.py -t chrome devenv | 43 ./build.py -t chrome devenv |
45 ./build.py -t opera devenv | |
46 ./build.py -t safari devenv | 44 ./build.py -t safari devenv |
47 | 45 |
48 This will create a _devenv.platform_ directory in the repository. In Chrome and | 46 This will create a _devenv.platform_ directory in the repository. In Chrome you |
49 Opera you should load _devenv.chrome_ or _devenv.opera_ as an unpacked extension | 47 should load _devenv.chrome_ as an unpacked extension directory. After making |
50 directory. After making changes to the source code re-run the command to update | 48 changes to the source code re-run the command to update the development |
51 the development environment, the extension should reload automatically after a | 49 environment, the extension should reload automatically after a few seconds. |
52 few seconds. | |
53 | 50 |
54 In Safari you should load _devenv.safari/adblockplussafari.safariextension_ as | 51 In Safari you should load _devenv.safari/adblockplussafari.safariextension_ as |
55 unpacked extension directory. After making changes to the source code re-run the | 52 unpacked extension directory. After making changes to the source code re-run the |
56 command to update the development environment. You will still need to reload the | 53 command to update the development environment. You will still need to reload the |
57 extension explicitly in the Extension Builder, Safari currently doesn't allow | 54 extension explicitly in the Extension Builder, Safari currently doesn't allow |
58 automating this action. | 55 automating this action. |
59 | 56 |
60 Running the unit tests | 57 Running the unit tests |
61 ---------------------- | 58 ---------------------- |
62 | 59 |
63 To verify your changes you can use the unit test suite located in the _qunit_ | 60 To verify your changes you can use the unit test suite located in the _qunit_ |
64 directory of the repository. In order to run the unit tests go to the | 61 directory of the repository. In order to run the unit tests go to the |
65 extension's Options page, open the JavaScript Console and type in: | 62 extension's Options page, open the JavaScript Console and type in: |
66 | 63 |
67 location.href = "qunit/index.html"; | 64 location.href = "qunit/index.html"; |
68 | 65 |
69 The unit tests will run automatically once the page loads. | 66 The unit tests will run automatically once the page loads. |
LEFT | RIGHT |