AdGuard Browser Assistant extension: https://adguard.com/en/adguard-assistant/overview.html
This is a replacement for the legacy assistant userscript we were using before that.
pnpm installpnpm dev/pnpm beta/pnpm release(specify chrome | firefox | edge | all by default)- add
--watchif you want to watch for changes
- add
Builds will be located in the build directory.
pnpm lint
pnpm test
setup your project locales, directories in the file scripts/translations/config.jsonpnpm locales uploadused to upload baseenlocalepnpm locales downloadrun to download and save all locales
- Put the repository with the
certificate-beta.pem,certificate-release.pemfiles to the project root directory. pnpm crx:betaandpnpm crx:releasecreate web extension files for Chromium and Google Chrome browsers — build, zipped build, and update manifest XML document. You must have thecertificate-beta.pemorcertificate-release.pemto run the corresponding command.
- Put the repository with the
mozilla_credentials.jsonfile containingapiKeyandapiSecretproperties with the values of type string to the project root directory. pnpm xpicreate web extension files for Mozilla Firefox browser — build, zipped build and update manifest JSON document. You must have themozilla_credentials.jsonto run this commands.
CREDENTIALS_PASSWORD=<password> pnpm artifacts:betaCREDENTIALS_PASSWORD=<password> pnpm artifacts:release
Respectively creates Chrome and Firefox beta and release builds, zipped builds, documents for update and text file containing current version, signs the Firefox build.
-
Go to file
src/background/api/index.jsand read instructions -
Whenever you need to change the API state, do it via the browser console from the background page (e.g.,
hostData.appState.isProtectionEnabled = falsedisables AdGuard protection). -
Structure of the
hostDataobject:
{
result: 'ok',
version: '7.3.2496',
apiVersion: '3',
isValidatedOnHost: true,
reportUrl: 'https://link.adtidy.org/forward.html?action=report&from=popup&app=browser_assistant&url=http://example.org',
appState: {
isRunning: true,
isProtectionEnabled: true,
isLicenseExpired: false,
isInstalled: true,
isAuthorized: true,
locale: 'ru',
},
currentFilteringState: {
isFilteringEnabled: true,
isHttpsFilteringEnabled: true,
isPageFilteredByUserFilter: false,
blockedAdsCount: 180,
totalBlockedCount: 1234,
originalCertIssuer: 'RapidSSL RSA CA',
originalCertStatus: 'valid',
},
}- AdGuard installed and launched.
- Browser Assistant build installed.
Step 1:
- In Browser Assistant extension settings copy extension ID.
- Paste it in
devConfig.jsonfile:- for Chrome or Edge add to
chrome_extension_idas array (see example below); - for Firefox add to
firefox_extension_idas array (see example below).
- for Chrome or Edge add to
- Save file in AdGuard folder
/Library/Application Support/com.adguard.mac.adguard/or/Library/Application Support/com.adguard.mac.adguard.debug/depends on build configuration.
Step 2:
- Open Terminal.
- Type
cd /Library/Application\ Support/AdGuard\ Software/com.adguard.mac.adguard/. - Type
sudo chown root devConfig.json. - Type
sudo chmod 444 devConfig.json. - Type your Mac password.
- Type
ls -la /Library/Application\ Support/AdGuard\ Software/com.adguard.mac.adguard/.
Result:
devConfig.jsonfile received root rights.
Step 3:
- Restart AdGuard.
- Tap on the Browser Assistant icon in a browser.
Step 1:
- In Browser Assistant extension settings copy extension ID.
- Paste it in
devConfig.jsonfile:- for Chrome or Edge add to
chrome_extension_idas array (see example below); - for Firefox add to
firefox_extension_idas array (see example below).
- for Chrome or Edge add to
- Save file in AdGuard folder
C:\Program Files (x86)\Adguard.
Step 2:
- Restart AdGuard.
- Tap on the Browser Assistant icon in a browser.
Example of devConfig.json
{
"chrome_extension_id": [
"biolhaiicomblcmahaljilbdppdnvyib",
"dfkjnvdkfvkvdjfnkddksjsdjnfjfdfj"
],
"firefox_extension_id": [
"[email protected]"
]
}where values in chrome_extension_id are:
biolhaiicomblcmahaljilbdppdnvyib— extension ID for Chrome;dfkjnvdkfvkvdjfnkddksjsdjnfjfdfj— extension ID for Edge.
- Permission
tabsallows to indicate the status of websites by changing the icon color. - Permission
activeTabsallows to inject script of adguard-assistant into the content page. - Permission
nativeMessagingallows to communicate with the native host.
This software wouldn't have been possible without:
For a full list of all npm packages in use, please take a look at package.json file.
| Browser | Version |
|---|---|
| Chromium-based browsers | ✅ 88 |
| Firefox | ✅ 109 |
| Opera | ✅ 74 |