Safari Web Extensions: чего ожидать пользователям блокировщиков контента в Safari от новой инициативы Apple

Суть коротко: Safari перенял наиболее популярный и широко используемый API браузерных расширений, но лишь после того, как убрал оттуда кучу возможностей, связанных с блокировкой контента. В его текущей форме этот API бесполезен для разработчиков блокировщиков рекламы, и только время покажет, поменяется ли ситуация к лучшему.

В данный момент Apple активно разрабатывает следующую версию Safari, которая появится в macOS Big Sur. Большинство изменений уже можно увидеть и протестировать в официальной бете Safari 14, а для пользователей блокировщиков рекламы наибольший интерес представляет поддержка WebExtensions.

Но что же такое WebExtensions? Это API (т.е. application programming interface — интерфейс прикладного программирования) для разработки браузерных расширений, которые могут менять поведение и внешний облик вашего браузера. Многие популярные браузеры, такие как Chrome, Mozilla, Edge, поддерживают WebExtensions API, но Safari всегда стоял особняком и требовал от разработчиков использовать другой набор API. Из-за этого портирование браузерного расширения из, Chrome в Safari, например, требует больших усилий, и многие разработчики не располагают ресурсами для этого. В результате, Safari недосчитывается множества расширений, которые доступны для пользователей других браузеров.

В этом июне на Всемирной Конференции Разработчиков (Worldwide Developers Conference, WWDC2020) Apple заявили, что Safari 14 будет поддерживать WebExtensions. Для многих разработчиков это стало приятных сюрпризом. Мы поддерживаем это решение, как и все остальные; однако, в отношении блокировщиков в Safari поменяется очень немного, и вот почему.

В 2015-м году Safari представил так называемый Safari Content Blocking API. Из названия понятно, что его предназначение — помогать разработчикам создавать расширения для блокировки контента в Safari. AdGuard тоже использует этот API: в AdGuard для iOS, AdGuard Pro для iOS и AdGuard для Safari. В сравнении с WebExtensions этот API имеет ряд серьёзных недостатков: он ограничен в возможностях и практически не развивается. Тем не менее, его всё же хватает для обеспечения приемлемого уровня блокировки.

Так, но ведь теперь всё будет иначе, верно? И мы, конечно же, портируем наше расширение для Chrome/Firefox в Safari? К сожалению, нет. Этому препятствует несколько серьёзных проблем. Дело в том, что разработчики Safari не просто скопировали WebExtensions API. Часть функционала, предполагаемая WebExtensions, не будет доступна в Safari 14. К примеру, вы не найдёте там возможности блокировать веб-запросы. Можете попытаться: откройте официальную документацию и поищите термин "webRequest". Вот что вы найдёте:

webRequest
BlockingResponse not supported.
Blocking requests not supported.

Даже без технических знаний понятно, что это значит.

Так что же будет дальше? Есть ли шанс, что всё со временем поменяется к лучшему? Что ждёт блокировщики контента для Safari в будущем? Честно говоря, мы не имеем понятия.

С одной стороны, есть старый стагнирующий Safari Content Blocking API. Мы обращали внимание на огромное количество багов и сделали больше всяческих предложений по его улучшению, чем вы найдёте яблок под яблоней осенью. Все они игнорируются уже на протяжении многих лет. Из наших разговоров с разработчиками Apple мы сделали вывод, что они, в принципе, не против идеи рассмотреть нашу реализацию Safari Content Blocking API, если мы такую предложим. Но, разумеется, они не дают никаких обещаний на этот счёт, так что мы не особо торопимся; это очень много работы без какой-либо гарантии результата.

С другой стороны, теоретически они могут серьёзно отнестись к дальнейшей разработке WebExtensions API и со временем добавить возможность блокировать веб-запросы. Говоря откровенно, такой сценарий не кажется нам особенно вероятным. Но в то же время, никто изначально не ожидал объявления о поддержке WebExtensions на WWDC, так что всё возможно. Нам остаётся только ждать и верить.

А на данный момент у вас есть пара доступных вариантов:

  • Установить AdGuard для Safari. Он выжимает максимум из того, что Safari Content Blocking API может предложить в плане блокировки контента.
  • Установить AdGuard для Mac. Это премиум-продукт, и после истечения бесплатного пробного периода потребуется приобрести лицензию, но зато он просто смеётся в лицо любым ограничениям со стороны браузера. Он блокирует рекламу и трекинг лучше, чем любое браузерное расширение когда-либо сможет.
Vasily Bagirov для AdGuard for Safari AdGuard for iOS Новости индустрии
1 сентября 2020 г.
Загружая комментарии, вы соглашаетесь с условиями использования и политикой конфиденциальности.
AdGuard для iOS и браузерные расширения: обзор релизов
Этот пост объединяет три небольших релиза. Нам показалось разумным совместить обзор этих версий, поскольку каждая из них недостаточно велика, чтобы говорить о ней отдельно.
AdGuard 3.5 для Android: добавлена совместимость с AdGuard VPN
Наступила осень: дни стали короче, а погода прохладнее. Самое время досать плед и заварить горячего чаю. Кстати, у нас есть согревающая новость: большое обновление AdGuard для Android!
Загрузка AdGuard началась! Нажмите на кнопку, на которую указывает стрелка, чтобы начать установку программы. Спасибо за выбор AdGuard! Выберите «Открыть», нажмите «OK» и дождитесь загрузки файла. В открывшемся окне перетащите значок AdGuard в папку «Приложения». Спасибо за выбор AdGuard! Выберите «Открыть», нажмите «OK» и дождитесь загрузки файла. В открывшемся окне нажмите «Установить». Спасибо за выбор AdGuard!