background.ts:
// TODO: background script
chrome.runtime.onInstalled.addListener(() => {
console.log("onInstalled...");
});
chrome.webRequest.onBeforeRequest.addListener(
(details) => {
const url = details.url;
const filters = ["googleadservices", "googlesyndication", "g.doubleclick"];
const isAd = filters.some((filter) => url.includes(filter));
if (isAd) {
return { cancel: true };
}
return { cancel: false };
},
{
urls: [
"<all_urls>",
"*://*.googleadservices.com/*",
"*://*.tpc.googlesyndication.com/*",
"*://*.g.doubleclick.net/*",
],
},
["blocking"]
);
mainifest.json
{
"name": "AdBlock Extension",
"description": "AdBlock extension in TypeScript!",
"version": "1.0.0",
"manifest_version": 2,
"icons": {
"16": "icon.png",
"48": "icon.png",
"128": "icon.png"
},
"permissions": [
"webRequestBlocking",
"webRequest",
"<all_urls>",
"*://*.googleadservices.com/*",
"*://*.tpc.googlesyndication.com/*",
"*://*.g.doubleclick.net/*"
],
"background": {
"service_worker": "background.js"
},
"content_scripts": [
{
"matches": ["<all_urls>"],
"js": ["contentScript.js"]
}
]
}