API webNavigation также сообщает о iframes, поэтому вы должны проверить, если frameId
равно 0
:
chrome.webNavigation.onDOMContentLoaded.addListener(data => {
if (!data.frameId) {
chrome.tabs.remove(data.tabId);
}
}, {
url: [
{ hostContains: '.youtube' },
{ hostContains: '.twitter' },
{ hostContains: '.reddit' },
{ hostContains: '.facebook' },
],
});
Кстати, возможно, имеет смысл использовать событие chrome .webNavigation.onCommitted, как сообщалось ранее. когда вкладка только начинает загружаться.