увелич базу поиска вдвое
// content.js

// Функция для удаления элементов рекламы
function removeAds(adSelectors) {
  let removed = 0;
  adSelectors.forEach(selector => {
    const ads = document.querySelectorAll(selector);
    ads.forEach(ad => {
      ad.remove();
      removed++;
      console.log(`Удалён элемент рекламы: ${selector}`);
    });
  });
  return removed;
}

// Список стандартных селекторов рекламных блоков
const defaultAdSelectors = [
  'iframe[src*="ads"]',
  'div[class*="ad-"]',
  'div[id*="ad-"]',
  'div[class*="ads-"]',
  'div[id*="ads-"]',
  'span[class*="ad-"]',
  'span[id*="ad-"]',
  '.banner-ad',
  '.advertisement',
  '.adsbygoogle',
  '.ad-container',
  '.ad-slot',
  '.adbox',
  '[aria-label="advertisement"]',
  '[data-ad]',
  '[data-ad-client]',
  '[data-google-query-id]',
  'div[class*="video-ad"]',
  'div[class*="pre-roll"]',
  'div[id*="video-ad"]',
  'div[id*="pre-roll"]',
  'div[class*="vpaid-ad"]',
  'div[class*="ad-overlay"]',
  '.ytp-ad-player-overlay',
  '.video-ads',
  '.pre-roll-ad-container',
  '.include',
  '.includeWrapper',
  '.block',
  '.service',
  '.section',
  '.switcher',
  '.heading',
  '.text-small',
  '.toggler',
  '.badge',
  '.status',
  '.buttons',
  '[data-unit="freezer"]',
  '[data-unit="after_topline"]',
  '.banner:not(.important-banner)',
  'div.fox-tail[data-role="fox-tail"]',
  '.accept',
  '.reject',
  '.description',
  '.warning',
  '.check-list',
  '.result',
  '.name',
    '.fox-tail',
  '.fox-fallback',
  '.js-fox-tail-fallback',
  '.banner__container__link',
  '.adfox',
  '.banner',
  '[data-role="fox-tail"]',
  '[data-unit]',
];

let customAdSelectors = [];
let adsEnabled = true;
let totalAdsBlocked = 0;

// Загрузка пользовательских настроек
chrome.storage.sync.get(['adsEnabled', 'customSelectors'], (data) => {
  adsEnabled = data.adsEnabled !== undefined ? data.adsEnabled : true;
  if (data.customSelectors) {
    customAdSelectors = data.customSelectors.split(',').map(s => s.trim()).filter(s => s);
  }

  if (adsEnabled) {
    applyAdBlocking();
  }
});

// Функция применения блокировки рекламы
function applyAdBlocking() {
  const allSelectors = [...defaultAdSelectors, ...customAdSelectors];
  totalAdsBlocked += removeAds(allSelectors);

  // Постоянный мониторинг изменений в DOM для удаления новых рекламных блоков
  const observer = new MutationObserver((mutations) => {
    totalAdsBlocked += removeAds(allSelectors);
  });

  observer.observe(document.body, { childList: true, subtree: true });
}

// Обработка сообщений от popup.js
chrome.runtime.onMessage.addListener((request, sender, sendResponse) => {
  if (request.type === 'getAdsBlocked') {
    sendResponse({ count: totalAdsBlocked });
  }
});

// Функция для удаления pre-roll рекламы в видеоплеерах
function removeVideoPreRollAds() {
  // Пример для YouTube
  const youtubeAdOverlay = document.querySelector('.ytp-ad-player-overlay');
  if (youtubeAdOverlay) {
    youtubeAdOverlay.remove();
    console.log('Удалён YouTube pre-roll ad overlay');
    totalAdsBlocked++;
  }

  // Общий подход: ищем видеоплееры и пытаемся обнаружить рекламу
  const videos = document.querySelectorAll('video');
  videos.forEach(video => {
    // Проверяем, воспроизводится ли реклама
    // Этот подход может потребовать доработки под конкретные сайты
    // Например, проверяем источник видео или свойства элемента
    // Ниже примерный код, который может работать не во всех случаях

    // Пример: остановка видео, если оно воспроизводит рекламу
    video.addEventListener('play', () => {
      setTimeout(() => {
        // Логика определения рекламы
        // Например, пауза видео через несколько секунд воспроизведения
        if (video.currentTime < 5 && video.duration > 300) { // Условие примерное
          video.pause();
          console.log('Остановлено воспроизведение pre-roll рекламы');
          totalAdsBlocked++;
        }
      }, 5); // Проверяем через 5 секунд после начала воспроизведения
    });
  });
}

// Вы можете вызвать эту функцию здесь или добавить её в другую часть логики
// removeVideoPreRollAds();