Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
});
}
function incrementBlockedCounter(request: Request, blockingResponse: BlockingResponse): void {
updateBlockedCounter(request.tabId, {
incr: Boolean(blockingResponse.match),
reset: request.isMainFrame(),
});
}
// Whenever the active tab changes, then we update the count of blocked request
chrome.tabs.onActivated.addListener(({ tabId }: chrome.tabs.TabActiveInfo) =>
updateBlockedCounter(tabId),
);
WebExtensionBlocker.fromLists(fetch, fullLists, {
enableCompression: true,
enableHtmlFiltering: true,
}).then((blocker: WebExtensionBlocker) => {
blocker.enableBlockingInBrowser();
blocker.on('request-blocked', incrementBlockedCounter);
blocker.on('request-redirected', incrementBlockedCounter);
blocker.on('csp-injected', (request: Request) => {
console.log('csp', request.url);
});
blocker.on('script-injected', (script: string, url: string) => {
console.log('script', script.length, url);
});
blocker.on('style-injected', (style: string, url: string) => {
// Whenever the active tab changes, then we update the count of blocked request
chrome.tabs.onActivated.addListener(({ tabId }: chrome.tabs.TabActiveInfo) =>
updateBlockedCounter(tabId),
);
// Reset counter if tab is reloaded
chrome.tabs.onUpdated.addListener((tabId, { status }) => {
if (status === 'loading') {
updateBlockedCounter(tabId, {
incr: false,
reset: true,
});
}
});
WebExtensionBlocker.fromPrebuiltAdsAndTracking().then((blocker: WebExtensionBlocker) => {
blocker.enableBlockingInBrowser();
blocker.on('request-blocked', incrementBlockedCounter);
blocker.on('request-redirected', incrementBlockedCounter);
blocker.on('csp-injected', (directives, request: Request) => {
console.log('csp', directives, request.url);
});
console.log('Ready to roll!');
});