OLD | NEW |
1 Adblock Plus for Chrome, Opera and Safari | 1 Adblock Plus for Chrome and Opera |
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 and Opera. It can be used to build Adblock Plus for these platforms, |
6 platforms, generic Adblock Plus code will be extracted from other repositories | 6 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 - [Mercurial](https://www.mercurial-scm.org/) or [Git](https://git-scm.com/) (wh
ichever you used to clone this repository) | 14 - [Mercurial](https://www.mercurial-scm.org/) or [Git](https://git-scm.com/) (wh
ichever you used to clone this repository) |
15 - [Python 2.7](https://www.python.org) | 15 - [Python 2.7](https://www.python.org) |
16 - [The Jinja2 module](http://jinja.pocoo.org/docs) | 16 - [The Jinja2 module](http://jinja.pocoo.org/docs) |
17 - [The PIL module](http://www.pythonware.com/products/pil/) | 17 - [The PIL module](http://www.pythonware.com/products/pil/) |
18 - For signed builds: [PyCrypto module](https://www.dlitz.net/software/pycrypto/) | 18 - For signed builds: [PyCrypto module](https://www.dlitz.net/software/pycrypto/) |
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 the following command in the project directory: |
23 target platform: | |
24 | 23 |
25 ./build.py -t chrome build -k adblockpluschrome.pem | 24 ./build.py -t chrome build -k adblockpluschrome.pem |
26 ./build.py -t safari build -k adblockplussafari.pem | |
27 | 25 |
28 This will create a build with a name in the form | 26 This will create a build with a name in the form |
29 _adblockpluschrome-1.2.3.nnnn.crx_ or _adblockplussafari-1.2.3.nnnn.safariextz_. | 27 _adblockpluschrome-1.2.3.nnnn.crx_ |
30 Note that you don't need an existing signing key for Chrome, a new key | 28 Note that you don't need an existing signing key for Chrome, a new key |
31 will be created automatically if the file doesn't exist. Safari on the other | 29 will be created automatically if the file doesn't exist. |
32 hand always requires a valid developer certificate, you need to get one in the | |
33 Apple Developer Center first. _adblockplussafari.pem_ should contain the private | |
34 key for your developer certificate, the developer certificate itself as well as | |
35 all the certificates it was signed with (Apple's root certificate and | |
36 intermediate certificates) in PEM format - in that order. | |
37 | 30 |
38 ### Development environment | 31 ### Development environment |
39 | 32 |
40 To simplify the process of testing your changes you can create an unpacked | 33 To simplify the process of testing your changes you can create an unpacked |
41 development environment. For that run one of the following commands: | 34 development environment. For that run the following command: |
42 | 35 |
43 ./build.py -t chrome devenv | 36 ./build.py -t chrome devenv |
44 ./build.py -t safari devenv | |
45 | 37 |
46 This will create a _devenv.platform_ directory in the repository. In Chrome you | 38 This will create a _devenv.chrome_ directory in the repository. In Chrome you |
47 should load _devenv.chrome_ as an unpacked extension directory. After making | 39 should load the directory as an unpacked extension. After making changes to the |
48 changes to the source code re-run the command to update the development | 40 source code re-run the command to update the development environment, the |
49 environment, the extension should reload automatically after a few seconds. | 41 extension should reload automatically after a few seconds. |
50 | |
51 In Safari you should load _devenv.safari/adblockplussafari.safariextension_ as | |
52 unpacked extension directory. After making changes to the source code re-run the | |
53 command to update the development environment. You will still need to reload the | |
54 extension explicitly in the Extension Builder, Safari currently doesn't allow | |
55 automating this action. | |
56 | 42 |
57 Running the unit tests | 43 Running the unit tests |
58 ---------------------- | 44 ---------------------- |
59 | 45 |
60 To verify your changes you can use the unit test suite located in the _qunit_ | 46 To verify your changes you can use the unit test suite located in the _qunit_ |
61 directory of the repository. In order to run the unit tests go to the | 47 directory of the repository. In order to run the unit tests go to the |
62 extension's Options page, open the JavaScript Console and type in: | 48 extension's Options page, open the JavaScript Console and type in: |
63 | 49 |
64 location.href = "qunit/index.html"; | 50 location.href = "qunit/index.html"; |
65 | 51 |
66 The unit tests will run automatically once the page loads. | 52 The unit tests will run automatically once the page loads. |
OLD | NEW |