Знакомство с форками Firefox

в 9:01, , рубрики: chrome, Debian, Firefox, GNU, linux, lwn, mozilla, ruvds_перевод, опенсорс, форки firefox

Знакомство с форками Firefox - 1


В последнее время действия разработчиков Mozilla озадачивали многих сторонников Firefox, склоняя их к поиску альтернатив. На рынке есть много решений для тех, кому нужен браузер, который бы не являлся частью монокультуры Chrome, но при этом был полноценен и удобен для постоянного использования. Для тех же, кто желает остаться в «семье» Firefox, есть ряд хороших вариантов, идущих своим путём. К ним можно отнести GNU IceCat, Floorp, LibreWolf и Zen.

▍ Как до этого дошло

Разработчики Mozilla огорчают своих пользователей уже не первый год, но в последнее время поводов для огорчения становится всё больше. Сделанное компанией 19 февраля заявление о планах «диверсифицировать» свою деятельность не вызвало особого одобрения. Оно обеспокоило многих, кто предпочёл бы видеть, как Mozilla делает ставку на развитие браузера (и увеличение охвата рынка), а не погоню за ИИ или развитие рекламных инициатив. Но вместо этого из последнего мы наблюдаем внедрение условий использования браузера и отказ от обещания не продавать пользовательские данные. И хотя с того момента компания слегка одумалась в реализации этих замыслов и переписала условия использования, удар по репутации был нанесён.

Создание форков Firefox далеко не новый феномен. В Debian уже давно из-за расхождения между принципами разработки свободного ПО и политикой использования торговой марки Mozilla начали создавать форки приложений Mozilla с минимальными изменениями, но под другими именами. (На LWN об этом писали ещё в 2005 году.) Эпоха Iceweasel, альтернативы Firefox под разработкой Debian, закончилась в 2016 году. Обратите внимание, что название Iceweasel (ледяной хорёк) — это не просто обыгрывание имени «Firefox» (огненная лиса). Оно происходит из комикса «Life in Hell» (вот), в котором присутствовала вымышленная цитата, приписанная Фридриху Ницше.

Любовь — это когда ты мчишь на снегоходе по тундре, и вдруг он внезапно переворачивается, накрывая тебя. Ночью вылазят ледяные хорьки.

Проект GNU также перенёс имя IceWeasel на свой проект GNUzilla — по сути, представляющий исходный код Mozilla, откуда были вырезаны все несвободные элементы вроде Adobe Flash Player. В 2007 году Карл Берри заявил, что GNUzilla назовёт свою версию браузера IceCat, «не потому, что мы имеем что-то против хорьков», а для избежания путаницы с его версией от Debian.

▍ GNU IceCat

IceCat отличает то, что он является самым старым форком Firefox, до сих пор находящимся в разработке. Рэй Драйден подал заявку на регистрацию GNUzilla как части проекта GNU в августе 2005 года, и в конце того же года уже были доступны тестовые релизы на базе Firefox 1.5.0. IceCat, как и все форки, о которых пойдёт речь в статье, доступен под лицензией Mozilla Public License (MPL) 2.0. Однако скрипты и прочие инструменты, использованные для его создания, лицензированы под GPLv3.

GNUzilla не распространяет бинарные файлы IceCat. Проект рекомендует использовать для установки браузера в системах Linux x86_64 менеджер GNU Guix, а также предоставляет свои скрипты в репозитории Git, позволяя компилировать IceCat из релизов Firefox с расширенной поддержкой (extended-support releases, ESR). Хотя его также можно упаковать для любого желаемого дистрибутива. Например, в Fedora 41 сейчас используется IceCat 115.20.0esr основанный на Firefox 115.20.0. И тот и другой были выпущены 4 февраля.

Сегодняшний IceCat отличается от Firefox несколькими деталями. Самая очевидная — это использование в нём аддона LibreJS для блокировки «несвободного и нетипичного JavaScript-кода». На практике это означает, что значительная часть сайтов не будет работать, пока пользователь не добавит в исключения используемый на них JS-код. Причём добавлять в исключения можно отдельные скрипты или сайт целиком. Даже LWN, где используется минимум JS, содержит скрипты, блокируемые LibreJS.

IceCat включает расширение JShelter, которое стремится блокировать не только вредоносное ПО, но также снятие цифровых отпечатков браузеров и отслеживание действий пользователя. Оно изменяет среду JS, которая доступна для веб-страниц, сбивая с толку программы отслеживания цифровых отпечатков и усложняя реализацию атак с использованием JS. Для их пресечения расширение может блокировать API или возвращать фейковые значения. Как и LibreJS, его можно настроить или полностью отключить для конкретных сайтов. В 2022 году была опубликована работа, подробно объясняющая механизм работы JShelter, а также обширный FAQ, которые будет полезен для решения проблем при взаимодействии расширения с сайтами.

Кроме того, IceCat содержит форк похожего по своей сути расширения Third-party Request Blocker, которое, как и предполагает его имя, блокирует подключения к сторонним ресурсам, пока не будет получено одобрение пользователя. Вот только описание этого расширения вызывает некоторое беспокойство, так как гласит, что оно «вроде бы обслуживается sw», и последний раз обновлялось в марте 2020 года. Указанная домашняя страница уже недоступна.

Несмотря на задержку в разработке, работает расширение исправно и блокирует множество запросов к сторонним ресурсам. Например, при посещении The Guardian сообщается о блокировке семи сайтов. Как показано на скриншоте ниже, структура сайта и изображения часто отображаются в соответствии с предустановками IceCat. Как правило, это не мешает использовать сайты, но сильно портит их эстетический вид.

Знакомство с форками Firefox - 2

Лично мне помогло простое включение достаточной функциональности для просмотра текста, после чего я использовал режим чтения. (К сожалению, ни один из форков не предоставляет опцию «по умолчанию просматривать всё в режиме чтения»).

Всего IceCat содержит восемь расширений, которые либо пытаются дополнительно защитить пользователя, либо блокируют несвободное ПО, либо разблокируют сайты, которые страдают от других его расширений. В нём есть плагин «LibreJS/USPS compatibility», дающий возможность использовать альтернативный калькулятор расчёта стоимости доставки на сайте почтовой службы США, а также расширение для замены JS-кода, блокируемого LibreJS на сайтах Library Genesis.

У проекта есть сервис для поиска расширений под названием Mozzarella, который, естественно, выдаёт только свободное ПО. Тем не менее такие расширения могут быть устаревшими в сравнении со своими альтернативами из каталога Firefox. Например, Privacy Badger в каталоге Mozzarella последний раз обновлялся в июне 2023 года, а версия в каталоге Firefox — 29 января 2025.

Сейчас в качестве мейнтейнеров GNUzilla числятся три человека: Рубен Родригез, Амин Бандали и Марк Х. Вивер. В списках рассылки для разработчиков особой активности не наблюдается. Последний архив дискуссии в gnuzilla-dev отмечен августом 2024 года. Список bug-gnuzilla чуть более живой — в нём последний диалог состоялся в декабре 2024.

Думаю, IceCat станет хорошим выбором для тех, кого больше интересует концепция свободного ПО и конфиденциальность, нежели реальная функциональность.

▍ Floorp

Проект Floorp намного моложе. Его разрабатывает сообщество японских студентов под названием Ablaze. Размещается код проекта на GitHub и там же собирает пожертвования на развитие.

Согласно соответствующей странице, спонсоры, вложившие $100, могут присылать свою рекламу для размещения на новой вкладке — правда, такую рекламу, отображаемую в виде ярлыков с пометкой «sponsored», можно отключить в настройках. Я не смог найти информацию о руководстве проекта или юридической структуре Ablaze.

На странице контрибьюторов проекта указано семь основных мейнтейнеров и 39 программистов, а также много людей, которые принимали участие в создании языковых пакетов, переводе или обслуживании. Floorp не предлагает нативных пакетов для дистрибутивов Linux, зато предлагает утилиту Flatpak, которую можно использовать через Flathub, а также предкомпилированные релизы для платформ x86_64 и ARM64.

Знакомство с форками Firefox - 3

Изначально Floorp развивался на базе Chromium, но в 2022 году перешёл на Firefox. Первой обновлённой версией уже на базе Firefox стала Floorp v7 (вот анонс о выходе). Эта версия основывалась на модели частых релизов (rapid release), но затем в v8 проект перешёл на релизы по системе ESR. Последняя версия 11.23.1 была анонсирована 15 февраля и основывается на (согласно about:config) релизе Firefox ESR 128.8.0, который вышел 4 марта. Было бы здорово, если бы проект более открыто указывал в описании к релизу, на какой конкретно версии Firefox он основан. Это нужно не просто ради утоления любопытства, а чтобы пользователи могли отслеживать, получает ли Floorp последние обновления безопасности Firefox. Разработчики браузера заявили, что с выходом v12, которая сейчас находится на стадии беты, планируют вернуться к модели частых релизов.

Они обещают «хорошую защиту от слежки», что не будут отслеживать действия пользователей и сотрудничать с рекламными компаниями, только не уточняют, чем конкретно их защита отличается от используемой в Firefox. В качестве штатного поисковика браузер также использует Google и имеет функцию синхронизации «Firefox browser sync». Кроме того, он подключён к репозиторию аддонов Firefox и должен поддерживать большинство аддонов, совместимых с соответствующей версией Firefox.

У Floorp имеется ряд интересных функций и доработок, способных заинтересовать пользователей. В нём есть двухсторонняя боковая панель, левая сторона которой даёт доступ к закладкам, истории и прочим инструментам, а правая — к веб-приложениям. Пользователи могут добавлять в панель приложений сайты и затем открывать их оттуда, что весьма удобно.

Помимо панели «Apps», во Floorp есть функциональность разделения окна, которая позволяет открывать две страницы рядом, выбрав вкладку и кликнув «Split this Tab». У каждого из полученных окон ведётся своя история и есть собственная адресная строка. Схема Floorp отлично подходит для широкоэкранных мониторов, плюс мне нравится возможность открывать сайты с разделением окон, чтобы меньше переключаться между вкладками браузера.

Есть во Floorp и ещё одна интересная функция — Workspace. Она позволяет группировать вкладки по категориям вроде «работа», «комиксы», «покупки» и любым другим, отражающим привычную схему работы пользователя в браузере. Мне она пригодилась при работе над проектами и историями для LWN — я могу открыть для одной истории с десяток вкладок, которые группирую в одно рабочее пространство. Подобные пространства также можно приписывать к контейнерам мультиаккаунтов Firefox (расширение Multi-Account Containers). Это даст пользователю возможность входить на один сайт с разных аккаунтов без необходимости каждый раз заново авторизовываться. Совмещение рабочих пространств с функцией мультиаккаунтов оказывается очень удобным в разных сценариях.

За последние пару лет функциональность вкладок Firefox не особо расширилась. И Floorp по этой части привносит некоторые очень нужные доработки, позволяя пользователям перемещать панель вкладок в нижнюю часть окна, делать её многострочной и даже вертикальной. Правда, во Floorp v12 собственную реализацию вертикального размещения уберут, так как в Firefox 136.0, наконец, добавили вертикальные вкладки.

В целом, Floorp — это интересный проект, предоставляющий ряд приятных доработок Firefox UI. Вот только разработка этого браузера происходит, на мой взгляд, излишне хаотично — например, модель релизов меняют то на rapid release, то на ESR. Хотя это нюансы, которые для других могут быть не столь значимы.

▍ LibreWolf

Проект LibreWolf был запущен в 2020 году. В нём акцент делается на безопасности, конфиденциальности и очистки Firefox от любых попирающих свободу функций вроде телеметрии и DRM. На главной странице проекта числится семь основных контрибьюторов, а также указана ссылка на «Matrix room», где обсуждаются детали разработки. Размещается база кода LibreWolf на Codeberg.

Пользователи Arch Linux могут скачать этот браузер с Arch User Repository (AUR), плюс проект предлагает собственные репозитории пакетов для дистрибутивов на базе Debian и Fedora. Для большинства других дистрибутивов разработчики предлагают пакеты Flatpak. Последней версией браузера на момент публикации статьи является 135.0.1, основанная на Firefox 135. Версия LibreWolf 135.0 вышла 9 февраля, примерно через пять дней после родительской версии Firefox.

В LibreWolf присутствуют стандартные опции конфигурации, которые можно ожидать от форка Firefox. Но он также позволяет использовать отдельный файл librewolf.overrides.cfg для установки параметров, которые могут влиять сразу на несколько профилей, избавляя вас от необходимости корректировать конфигурацию для каждого. Кроме того, в нём можно легко делать бэкап настроек для переноса на другую машину. В документации описано, где искать упомянутый файл в зависимости от способа установки браузера, а также даётся несколько подсказок по возможным изменениям настроек.

Выделяет LibreWolf, скорее, отсутствие каких-то вещей, нежели наличие чего-то особенного. Под этим я имею в виду, что в нём удалены те функции Firefox, которые были негативно восприняты многими пользователями — например, интеграция Pocket, телеметрия и прочее. Firefox Sync в нём по умолчанию отключена, но в настройках эту функцию можно включить.

Штатная сборка LibreWolf включает блокировщик рекламы uBlock Origin. Важно отметить, что этот аддон постепенно отключают в Chrome, так как Google прекращает поддержку WebExtension API V2, переходя на V3, в которой отсутствуют функции, необходимые для работы uBlock Origin и прочих аддонов. Mozilla же здесь можно похвалить, так как его разработчики решили продолжить поддерживать Manifest V2 и V3. На LWN в 2021 году писали о Manifest V3 и его влиянии на инструменты блокировки контента.

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

▍ Zen

Проект Zen самый молодой. Его разработка началась в прошлом году с объявления на Reddit. Сейчас этот браузер находится на стадии беты, и 25 февраля вышла его последняя версия, 1.8.2b, основанная на Firefox 135.0.1.

Кстати, хвала и почёт проекту Zen за то, что гордо указали в диалоговом окне «About» лежащую в основе их браузера версию Firefox — а то все остальные форки стараются эту информацию скрывать. Судя по основной странице проекта, основная его команда состоит из 12 человек, и ещё около 90 числятся в котрибьюторах. Кодовая база браузера размещается на GitHub, а обсуждение разработки ведётся в Discord (ссылка пригласительная).

Как и Floorp, этот проект просит на своё развитие пожертвования, но никакой конкретной информации о его структуре или схеме управления, которая бы позволила отслеживать расходы, не предоставляется.

В отличие от других форков, по Zen сложно сходу понять, что он является производным от Firefox. Его интерфейс сильно отличается и без дополнительной кастомизации. Даже Floorp, который предлагает широкие возможности настроек, всё равно изначально имеет некоторое сходство с Firefox. В левой части окна Zen доступна боковая панель, которая совмещает в себе принцип Workspace из Floorp и функциональность вертикальных вкладок. В качестве штатных иконок в ней сверху присутствуют закладки (Essentials). Для входа в меню в верхнем левом углу есть кнопка в виде трёх точек. Заголовок окна скрыт и появляется, только при удержании курсора мыши на верхней части окна в течение пары секунд.

Знакомство с форками Firefox - 4

Несмотря на то, что Zen смотрится современно и интересно, за его модный интерфейс и гибкость настройки порой приходится платить интуитивностью. Например, можно предположить, что установка светлого режима в настройках «Language and Appearance» также приведёт к его включению в интерфейсе. Но, как мы видим по скриншоту, это не так. Для выбора светлой темы пользователю нужно перейти в настройки. Хорошо бы разработчикам расширить руководство пользователя, которое пока содержит довольно скудную документацию. Честно говоря, проект ещё находится на стадии беты, так что к моменту первого стабильного релиза браузер могут существенно доработать. Пока же пользователям нужно быть готовыми к поиску помощи на Reddit и прочих форумах.

Функции вроде glance, которая показывает превью ссылки, прежде чем открывать её в новой вкладке или окне, весьма полезны, вот только не всегда понятно, как эти функции использовать, даже когда о них знаешь. (В Linux glance активируется нажатием Alt+ЛКМ.) То же касается режима разделения окна, для включения которого сначала нужно выбрать несколько вкладок, после чего через ПКМ выбрать «Split Tab». Перестановка разделённых окон тоже выполняется не интуитивно. Тем не менее, если заморочиться и разобраться, то такие дополнительные функции весьма интересны.

Интерфейс Zen можно всячески кастомизировать под собственные нужды. Если этих настроек будет недостаточно, в Zen есть собственный набор аддонов и расширений под названием Mods, позволяющих изменять интерфейс или добавлять нужные функции, начиная с использования темы в зелёных тонах под названием Matcha и заканчивая минимизацией боковой панели. Большинство аддонов Firefox также должны работать с Zen, хотя некоторые могут конфликтовать с пользовательскими настройками.

Пока Zen ещё недостаточно доработан, чтобы я задумался о переходе на него, но есть немало и более смелых первооткрывателей. Он определённо стал гораздо стабильнее с момента, когда я только познакомился с его первым открытым релизом. Так что этот проект определённо заслуживает пристального внимания, и команде Mozilla стоило бы позаимствовать некоторые идеи (да и код), над которыми экспериментируют в Zen.

▍ Прочие форки

Кроличья нора форков Firefox на удивление глубока. Некоторые из них я решил просто не тестировать, но здесь упомяну для полноты картины. Наверняка есть и такие, которые я упустил.

Начну с Basilisk, проекта в стиле ретро-Firefox, старающегося сохранить технологии, которые из этого браузера были удалены. Сюда относится больше не поддерживаемый плагин Netscape Plugin Application Programming Interface (NPAPI), поддержка ALSA в Linux, расширения XUL, и прочее.

Ещё есть браузер Waterfox, запущенный в 2011 году студентом Алексом Контосом в виде независимого проекта. Его сначала приобрела, а затем вернула компания System1, занимающаяся интернет-рекламой. Я не смог найти на их сайте каких-либо значимых функций или отличий, которые бы побудили меня потестировать этот браузер.

Стоит упомянуть и о проекте Pale Moon — ещё одном ответвлении Firefox, которое больше не связано с ним напрямую. Этот браузер использует форк Goanna движка отрисовки Gecko и до сих пор поддерживает плагины NPAPI, а также расширения XUL. Разработчики Pale Moon обещают отсутствие телеметрии и сбора данных. Их браузер несёт в себе некий ностальгический вайб, напоминающий Firefox в середине 2000-х.

Для тех, кто скорбит по временам пакета Netscape, включавшего браузер, почтового клиента, HTML-редактор, IRC-чат и прочее, есть SeaMonkey. Этот браузер опирается на код Firefox и Thunderbird, хотя в качестве основы не использует напрямую последние версии. Если верить их сайту, проект бэкпортирует применимые к SeaMonkey исправления безопасности из Firefox и Thunderbird ESR. Этот браузер также продолжает поддержку редактора Composer HTML и ChatZilla IRC, от которых в Mozilla отказались. SeaMonkey по-прежнему поставляется в пакетах для разных дистрибутивов Linux, а также в бинарниках, доступных для Linux на платформах x86_64, и в виде архива tar. Он станет хорошим выбором для тех, кто всё ещё сидит на 32-битных системах Linux.

▍ Зависимость от Mozilla

Какой бы форк кто ни выбрал, важно не забывать об обратной стороне медали. Самое главное в том, что все они в значительной степени опираются на Mozilla. Основная часть разработки лежит на Mozilla, направление движения Firefox определяется Mozilla, к тому же выбор в сторону форка на шаг отодвигает пользователя от актуальных обновлений безопасности и исправлений багов. Это не означает, что форков следует избегать, но нужно иметь в виду и их потенциальные недостатки.

Известны прецеденты, когда форк какого-то ПО замещал собой родительский проект. Например, форк OpenOffice.org в виде Go-oo после поглощения Sun компанией Oracle стал LibreOffice. Этот форк явно занял в сообществе Linux поприще OpenOffice.org, став базовым офисным пакетом, и обойдя своего конкурента Apache OpenOffice. Естественно, у Go-oo была корпоративная поддержка, а также поддержка сообщества. Так что и форку Firefox для получения реальной независимости с сохранением стабильности потребуется аналогичная. Пока что подобных инициатив не наблюдается.

Недавний вопрос в системе отслеживания ошибок LibreWolf хорошо раскрывает этот момент. Пользователь «kallisti5» спросил, готов ли LibreWolf стать полноценным форком Firefox «если Mozilla продолжит двигаться в том же направлении?» На это один из контрибюторов, «ohfp», ответил, что проект «абсолютно к этому не готов» ввиду дефицита времени и сил даже в условиях текущей работы.

«Мы даже близко не сможем сделать полноценный форк браузера и поддерживать его, не говоря уже о непрерывной разработке и улучшении».

Ещё один недостаток форков в том, что за ними наблюдает гораздо меньше людей, и сообщества их значительно уже. Когда в Mozilla делают какой-то важный шаг, будь то хороший или неудачный, пользователи узнают об этом почти сразу. За форками же пока особо никто не следит.

Для тех, кто хочет окончательно уйти из экосистемы Mozilla, придерживаясь опенсорса, есть некоторые решения. Например, Ladybird, о котором на LWN писали в июне того года, представляет попытку создать новый целостный браузер. Это интересная затея, но пока что для большинства пользователей в качестве основного такой браузер не пойдёт. Ещё внимания заслуживают Qutebrowser, Nyxt и NetSurf — хотя в плане повседневной работы у них есть некоторые пробелы, касающиеся совместимости и доступных функций. В ближайшем будущем мы уделим более пристальное внимание некоторым из этих решений.

Автор: Bright_Translate

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js