Stop Pub est une extension anti-publicité (Manifest V3) pour Chrome, Edge, Brave, Opera et Firefox.
Elle bloque les publicités et les traqueurs grâce aux listes EasyList, EasyList FR et EasyPrivacy (anti-traqueurs), intégrées à l'extension au moment du build (aucun téléchargement à l'exécution).
- Blocage réseau basé sur EasyList + EasyList FR + EasyPrivacy, converties en règles
declarativeNetRequestau moment du build ; - Masquage cosmétique des emplacements publicitaires résiduels (sélecteurs CSS
##) ; - Règles personnalisées : ajoutez vos propres filtres de blocage, d'exception ou de masquage ;
- Pause par site : désactivez le blocage sur un site précis en un clic depuis le popup ;
- Pause globale : suspendez tout le blocage temporairement ;
- Compteur de requêtes bloquées — Chromium uniquement : Firefox n'expose pas l'API de comptage (
getMatchedRules/ feedback des règles), le compteur y est donc indisponible.
- Node.js ≥ 18
npm install
npm run buildnpm run build :
- télécharge EasyList, EasyList FR et EasyPrivacy (cache dans
build/.cache/) ; - convertit les filtres en règles
declarativeNetRequestet en listes de sélecteurs cosmétiques ; - assemble les deux versions de l'extension dans
dist/chromium/etdist/firefox/.
Autres commandes :
| Commande | Description |
|---|---|
npm run build:test |
Build rapide avec une mini-liste de test intégrée, sans aucun téléchargement (pratique hors ligne ou pour le développement). |
npm run zip |
Build complet puis création des archives stop-pub-chromium.zip et stop-pub-firefox.zip dans dist/. |
- Ouvrir
chrome://extensions(ouedge://extensions,brave://extensions,opera://extensions) ; - Activer le Mode développeur (interrupteur en haut à droite) ;
- Cliquer sur « Charger l'extension non empaquetée » ;
- Sélectionner le dossier
dist/chromium.
- Ouvrir
about:debugging#/runtime/this-firefox; - Cliquer sur « Charger un module complémentaire temporaire » ;
- Sélectionner le fichier
dist/firefox/manifest.json.
Notes Firefox :
- Le module chargé de cette façon est temporaire : il disparaît au redémarrage de Firefox. Pour une installation permanente, l'extension doit être signée via addons.mozilla.org ;
- À l'installation, autorisez l'accès à tous les sites (bouton « Autoriser » dans le popup de l'extension) : c'est nécessaire pour activer le masquage cosmétique ;
- L'avertissement « Bloquer du contenu sur n'importe quelle page » est normal : il correspond à la permission
declarativeNetRequestutilisée pour le blocage réseau ; - Pas de compteur de blocages : limitation de l'API Firefox (voir plus haut).
Cliquez sur l'icône de l'extension pour ouvrir le popup :
- Compteur de requêtes bloquées sur l'onglet courant et au total (Chromium uniquement) ;
- Pause sur ce site : désactive le blocage pour le site affiché ;
- Pause globale : suspend tout le blocage.
-
Règles personnalisées — une règle par ligne, syntaxe supportée :
Syntaxe Effet ||domaine.com^Bloque les requêtes vers domaine.comet ses sous-domaines@@||domaine.com^Exception : ne jamais bloquer domaine.comdomaine.comBloque les URL contenant ce motif ##.selecteurMasque les éléments correspondant au sélecteur CSS, sur tous les sites site.com##.selecteurMasque le sélecteur uniquement sur site.com! commentaireLigne de commentaire, ignorée Les options de filtre
$...(par ex.$script,$third-party) ne sont pas supportées. -
Sites en pause : liste des sites où le blocage est désactivé, modifiable à tout moment.
Relancez simplement :
npm run buildLes listes EasyList, EasyList FR et EasyPrivacy sont re-téléchargées (le cache se trouve dans build/.cache/), reconverties, et les dossiers dist/ sont régénérés. Rechargez ensuite l'extension dans le navigateur.
stop-pub/
├── build/ # Scripts de build
│ ├── build.js # Build principal : téléchargement, conversion, assemblage
│ ├── gen-icons.js # Génération des icônes PNG (sans dépendance image)
│ ├── manifest.base.json # Manifest commun
│ ├── manifest.chromium.json
│ ├── manifest.firefox.json
│ └── .cache/ # Cache des listes téléchargées
├── src/ # Code source de l'extension
│ ├── common/ # Constantes et utilitaires partagés
│ └── icons/ # Icônes générées (icon16/32/48/128.png)
└── dist/ # Sorties du build
├── chromium/ # Extension pour Chrome/Edge/Brave/Opera
├── firefox/ # Extension pour Firefox
├── stop-pub-chromium.zip
└── stop-pub-firefox.zip
Les listes de filtres utilisées proviennent du projet EasyList :
- EasyList, EasyList FR et EasyPrivacy sont distribuées sous double licence GPLv3 / CC BY-SA 3.0.
Le code de l'extension est distinct des listes ; l'utilisation des listes dans le build est soumise à leurs licences respectives.