В конце декабря 2024 года состоялся первый тестовый выпуск минималистичного веб‑браузера FixBrowser 0.1 для Linux и Windows (2000/XP/Vista/7/8/8.1/10/11). Этот открытый проект рассчитан на низкое потребление ресурсов и обеспечение конфиденциальности.
Браузер FixBrowser развивается с нуля и принципиально не поддерживает выполнение JavaScript, но при этом позволяет работать сайтами, завязанными на JavaScript. Код написан на языках Си и FixScript, и распространяется под лицензией ZLIB. Готовые сборки проекта сформированы для Linux (GTK2) и Windows. Намечено создание сборок для Haiku и macOS 10.6+, а также формирование сборок для Linux, использующих GTK3/4.
По информации OpenNET, для работы с сайтами, завязанными на JavaScript, в FixBrowser задействована прослойка FixProxy, на лету преобразующая подобные сайты в представление, c которым можно работать без JavaScript. Замена осуществляется как по типовыми шаблонам, так и при помощи fix‑обработчиков, учитывающих специфику конкретных сайтов (в комплект включены fix‑обработчики для более чем 1200 сайтов). FixProxy развивается в форме отдельного прокси‑процесса, не привязанного к FixBrowser и пригодного для использования с другими браузерами.
Отмечается, что для отображения большинства сайтов без JavaScript требуются лишь незначительные изменения. Кроме того, на многих сайтах используются однотипные технологии для динамической генерации контента, что позволяет применять для их отрисовки типовые fix‑обработчики. Например, можно использовать универсальные fix‑обработчики для сайтов на базе движка WordPress и форумов на платформе Disqus. Возможно создание обработчиков и для сайтов динамически отрисовывающих контент — например, для вывода списка комментариев, изначально загружаемых динамически при помощи JavaScript, fix‑обработчик напрямую загружает данные в формате JSON и своими силами формирует HTML на их основе.
Для обработки капчи и JavaScript‑компонентов, таких как проверки CloudFlare, без которых невозможен вход на некоторые сайты, разработчики проекта планируют подготовить прослойку на базе фреймворка CEF (Chromium Embedded Framework), которая сможет выборочно выполнять только необходимый JavaScript‑код. Прослойка для JavaScript будет реализована в виде отдельного сервиса (можно запустить как на своей системе, так воспользоваться общедоступным облачным сервисом).
В FixBrowser для блокировки отслеживания активности пользователя загрузка ресурсов со сторонних хостов запрещена, а для разрешения загрузки изображений через сети доставки контента применяются белые списки. Имеется поддержка HTTPS. Возможно подключение расширений, написанных на языке FixScript.
Проект развивает Мартин Дворжак (Martin Dvorak) из Чехии, в своё время создавший язык программирования FixScript. Большая часть кода FixBrowser написана на языке FixScript, за исключением критичных к производительности операций и базового каркаса. Код на FixScript встраивается в код на C, а для сборки используется компилятор, поставляемый в одном файле, включающем примерно 27 тыс. строк кода на языке C (800 Кб). Язык напоминает С, но использует динамическую типизацию, сборщик мусора и JIT‑компиляцию. FixBrowser обеспечивает безопасную работу с памятью и потоками, а также имеет встроенную защиту от целочисленных переполнений.
Команде проекта удалось упростить реализацию браузерного движка, так как FixBrowser выполняет только первичную отрисовку и не поддерживает динамическое обновление содержимого. После того как страница отображена, она больше не меняется, соответственно, можно обойтись без таких абстракций как DOM (Document Object Model). В настоящее время работа по проекту сосредоточена на создании HTML‑парсера, поддерживающего спецификации HTML5. Предложенная в первом тестовом выпуске реализация пока охватывает лишь 30% тестов HTML5. Также в браузере реализована базовая поддержка CSS.
ссылка на оригинал статьи https://habr.com/ru/articles/869672/
Добавить комментарий