| LEFT | RIGHT |
| 1 Adblock Plus for Chrome, Opera, Microsoft Edge and Firefox | 1 Adblock Plus for Chrome, Opera, Microsoft Edge and Firefox |
| 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, Microsoft Edge and Firefox. It can be used to build | 5 Chrome, Opera, Microsoft Edge and Firefox. It can be used to build |
| 6 Adblock Plus for these platforms, generic Adblock Plus code will be extracted | 6 Adblock Plus for these platforms, generic Adblock Plus code will be extracted |
| 7 from other repositories automatically (see _dependencies_ file). | 7 from other repositories automatically (see _dependencies_ file). |
| 8 | 8 |
| 9 Note that the Firefox extension built from this repository is the new | 9 Note that the Firefox extension built from this repository is the new |
| 10 [WebExtension](https://developer.mozilla.org/en-US/Add-ons/WebExtensions). | 10 [WebExtension](https://developer.mozilla.org/en-US/Add-ons/WebExtensions). |
| (...skipping 14 matching lines...) Expand all Loading... |
| 25 ### Building the extension | 25 ### Building the extension |
| 26 | 26 |
| 27 Run one of the following commands in the project directory, depending on your | 27 Run one of the following commands in the project directory, depending on your |
| 28 target platform: | 28 target platform: |
| 29 | 29 |
| 30 ./build.py -t chrome build -k adblockpluschrome.pem | 30 ./build.py -t chrome build -k adblockpluschrome.pem |
| 31 ./build.py -t edge build | 31 ./build.py -t edge build |
| 32 ./build.py -t gecko-webext build | 32 ./build.py -t gecko-webext build |
| 33 | 33 |
| 34 This will create a build with a name in the form | 34 This will create a build with a name in the form |
| 35 _adblockpluschrome-1.2.3.nnnn.crx_, _adblockplusedge-1.2.3.nnnn.appx_ or _adbloc
kplusfirefox-1.2.3.nnnn.xpi_. | 35 _adblockpluschrome-1.2.3.nnnn.crx_, _adblockplusedge-1.2.3.nnnn.appx_ or |
| 36 _adblockplusfirefox-1.2.3.nnnn.xpi_. |
| 36 | 37 |
| 37 Note that you don't need an existing signing key for Chrome, a new key | 38 Note that you don't need an existing signing key for Chrome, a new key |
| 38 will be created automatically if the file doesn't exist. | 39 will be created automatically if the file doesn't exist. |
| 39 | 40 |
| 40 The Microsoft Edge build _adblockplusedge-1.2.3.nnnn.appx_ is unsigned and | 41 The Microsoft Edge build _adblockplusedge-1.2.3.nnnn.appx_ is unsigned and |
| 41 is only useful for uploading into Windows Store, where it will be signed. For | 42 is only useful for uploading into Windows Store, where it will be signed. For |
| 42 testing use the devenv build. | 43 testing use the devenv build. |
| 43 | 44 |
| 44 The Firefox extension will be unsigned, and therefore is mostly only useful for | 45 The Firefox extension will be unsigned, and therefore is mostly only useful for |
| 45 upload to Mozilla Add-ons. You can also also load it for testing purposes under | 46 upload to Mozilla Add-ons. You can also also load it for testing purposes under |
| 46 _about:debugging_ or by disabling signature enforcement in Firefox Nightly. | 47 _about:debugging_ or by disabling signature enforcement in Firefox Nightly. |
| 47 | 48 |
| 48 ### Development environment | 49 ### Development environment |
| 49 | 50 |
| 50 To simplify the process of testing your changes you can create an unpacked | 51 To simplify the process of testing your changes you can create an unpacked |
| 51 development environment. For that run one of the following commands: | 52 development environment. For that run one of the following commands: |
| 52 | 53 |
| 53 ./build.py -t chrome devenv | 54 ./build.py -t chrome devenv |
| 54 ./build.py -t edge devenv | 55 ./build.py -t edge devenv |
| 55 ./build.py -t gecko-webext devenv | 56 ./build.py -t gecko-webext devenv |
| 56 | 57 |
| 57 This will create a _devenv.*_ directory in the repository. You can load the | 58 This will create a _devenv.*_ directory in the repository. You can load the |
| 58 directory as an unpacked extension, under _chrome://extensions_ in Chrome, | 59 directory as an unpacked extension, under _chrome://extensions_ in Chrome, |
| 59 under _about:debugging_ in Firefox or in _Extensions_ menu in Microsoft Edge, | 60 under _about:debugging_ in Firefox or in _Extensions_ menu in Microsoft Edge, |
| 60 after enabling extension development features in _about:flags_. | 61 after enabling extension development features in _about:flags_. |
| 61 After making changes to the source code re-run the command to update the | 62 After making changes to the source code re-run the command to update the |
| 62 development environment. In Chrome and Firefox the extension should reload | 63 development environment. In Chrome and Firefox the extension should reload |
| 63 automatically after a few seconds. | 64 automatically after a few seconds. |
| 64 | 65 |
| 65 Builds for Microsoft Edge do not automatically detect changes, so after | 66 Builds for Microsoft Edge do not automatically detect changes, so after |
| 66 rebuilding the extension you should manually force reloading it in Edge by | 67 rebuilding the extension you should manually force reloading it in Edge by |
| 67 hitting the _Reload Extension_ button. | 68 hitting the _Reload Extension_ button. |
| 68 | 69 |
| 69 Running the unit tests | 70 Running the unit tests |
| 70 ---------------------- | 71 ---------------------- |
| 71 | 72 |
| 72 To verify your changes you can use the unit test suite located in the _qunit_ | 73 To verify your changes you can use the unit test suite located in the _qunit_ |
| 73 directory of the repository. In order to run the unit tests go to the | 74 directory of the repository. In order to run the unit tests go to the |
| 74 extension's Options page, open the JavaScript Console and type in: | 75 extension's Options page, open the JavaScript Console and type in: |
| 75 | 76 |
| 76 location.href = "qunit/index.html"; | 77 location.href = "qunit/index.html"; |
| 77 | 78 |
| 78 The unit tests will run automatically once the page loads. | 79 The unit tests will run automatically once the page loads. |
| 79 | 80 |
| 80 Linting | 81 Linting |
| 81 ------- | 82 ------- |
| 82 | 83 |
| 83 You can lint the code using [ESLint](http://eslint.org). | 84 You can lint the code using [ESLint](http://eslint.org). |
| 84 | 85 |
| 85 eslint *.js lib/ qunit/ ext/ chrome/ | 86 eslint *.js lib/ qunit/ ext/ chrome/ |
| 86 | 87 |
| 87 You will need to set up ESLint and our configuration first, see | 88 You will need to set up ESLint and our configuration first, see |
| 88 [eslint-config-eyeo](https://hg.adblockplus.org/codingtools/file/tip/eslint-conf
ig-eyeo) | 89 [eslint-config-eyeo](https://hg.adblockplus.org/codingtools/file/tip/eslint-conf
ig-eyeo) |
| 89 for more information. | 90 for more information. |
| LEFT | RIGHT |