Об этом проекте
wBlock — бесплатный блокировщик контента с открытым исходным кодом для Safari на macOS, iOS, iPadOS и visionOS. Распространяется как единое приложение для всех четырёх платформ, доступен в App Store, через Homebrew cask или как DMG из релизов GitHub.
Safari ограничивает каждый блокировщик контента 150 000 правил и не позволяет блокировщикам изменять JavaScript страницы. wBlock обходит это, поставляя пять блокировщиков контента (Ads, Privacy, Security, Foreign, Custom) — всего 750 000 правил, плюс отдельное расширение для скриптов для всего, что нельзя выразить статическим правилом.
Блокировка
Списки фильтров написаны в синтаксисе AdGuard и конвертируются с помощью SafariConverterLib, затем распределяются по пяти блокировщикам. Safari сам выполняет сопоставление, поэтому код wBlock не запускается во время загрузки страницы. Приложение сообщает о простое около 40 МБ. По умолчанию включены региональные списки, выбранные на основе языка пользователя, списки раздражителей и баннеров cookie, а также поддержка добавления списков по URL, вставке или файлу. Обновления выполняются по выбранному пользователем расписанию — от ежечасного до еженедельного; списки, публикующие diff-патчи, загружают только изменения, а на macOS агент запуска может продолжать проверку, пока приложение закрыто. Параметры отслеживания, такие как utm_*, удаляются из ссылок, а сокращатели ссылок разворачиваются по умолчанию. Индикатор ёмкости и просмотрщик правил показывают, какие строки не поддерживались, дублировались или были переданы расширению скриптов.
Юзерскрипты и юзерстили
Расширение скриптов включает совместимый с Greasemonkey движок, поддерживающий как GM_*, так и GM.* API. GM_xmlhttpRequest ограничен хостами, которые скрипт объявляет в @connect; разрешены только HTTP и HTTPS, редиректы проверяются перед переходом, а запросы не несут браузерные cookie или сохранённые логины. Поддерживаются темы UserCSS (.user.css), включая Less, Sass и Stylus. Встроенный каталог предлагает Tube Cleaner, Player Cleaner, DeArrow, Dark Reader, Return YouTube Dislike, Bypass Paywalls Clean, AdGuard Extra, AdGuard Popup Blocker и TwitchAdSolutions; все поставляются отключёнными, кроме tinyShield — дефузера анти-адблока.
Нативное видео
Tube Cleaner и Player Cleaner возвращают видео сайта в Safari до отрисовки страницы, включая режим «картинка в картинке», фоновое аудио, полноэкранный режим и Now Playing. Tube Cleaner нацелен на YouTube, сохраняет собственный поток YouTube, показывает главы и субтитры в нативных меню Safari и пропускает спонсоров через SponsorBlock с настройками по категориям. Player Cleaner охватывает video.js, JW Player, Plyr, Flowplayer, MediaElement, Clappr, Media Chrome и плееры в shadow-root, такие как на Archive.org, и запоминает скорость, громкость, субтитры и позицию воспроизведения для каждого сайта. Оба обновляются независимо из репозитория wBlock-userscripts. Они сами не блокируют рекламу; это делают списки фильтров.
Управление по сайтам и синхронизация
Всплывающее окно на панели инструментов предоставляет отдельные переключатели для фильтрации, юзерскриптов и автовоспроизведения, а также элемент-заппер. Списки фильтров и юзерскрипты можно ограничить или исключить для конкретных сайтов, а правила заппера остаются редактируемыми в настройках. iCloud синхронизирует списки, пользовательские фильтры, юзерскрипты, белый список и настройки между устройствами; доступен локальный экспорт резервной копии как альтернатива.
Архитектура
Данные фильтров хранятся в Protocol Buffers со сжатием LZ4 и передаются на диск для ограничения использования памяти при больших компиляциях. Изменение одного списка перестраивает только те блокировщики, которые он питает, хотя Safari всё равно требует перезагрузки перед применением изменений.
Поддержка и лицензирование
Проект лицензирован под GPL-3.0, финансируется через Open Collective и заявляет, что не собирает данные. Проблемы отслеживаются на GitHub, обсуждения сообщества проходят на Discord. Конвертация правил и скриптлеты взяты из AdGuard; данные SponsorBlock и DeArrow принадлежат проектам Аджая Рамачандрана под CC BY-NC-SA 4.0.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.