Первый тестовый выпуск web-браузера FixBrowser

@OpenNet
Опубликован первый тестовый выпуск web-браузера FixBrowser, рассчитанного на низкое потребление ресурсов и обеспечение конфиденциальности. Браузер развивается с нуля и принципиально не поддерживает выполнение JavaScript, но при этом позволяет работать с сайтами, завязанными на JavaScript. Код написан на языках Си и FixScript, и распространяется под лицензией ZLIB. Готовые сборки сформированы для Linux (GTK2) и Windows. Намечено создание сборок для Haiku и macOS 10.6+, а также формирование сборок для Linux, использующих GTK3/4. Для работы с сайтами, завязанными на 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 будет реализована в виде отдельного сервиса (можно запустить как на своей системе, так воспользоваться общедоступным облачным сервисом). Для блокировки отслеживания активности пользователя загрузка ресурсов со сторонних хостов запрещена, а для разрешения загрузки изображений через сети доставки контента применяются белые списки. Имеется поддержка HTTPS. Возможно подключение расширений, написанных на языке FixScript. Проект развивает Мартин Дворжак (Martin Dvorak) из Чехии, в своё время создавший язык программирования FixScript. Большая часть кода FixBrowser написана на языке FixScript, за исключением критичных к производительности операций и базового каркаса. Код на FixScript встраивается в код на Си, а для сборки используется компилятор, поставляемый в одном файле, включающем примерно 27 тысяч строк кода на языке Си (800 Кб). Язык напоминает Си, но использует динамическую типизацию, сборщик мусора и JIT-компиляцию. FixBrowser обеспечивает безопасную работу с памятью и потоками, а также имеет встроенную защиту от целочисленных переполнений. Реализацию браузерного движка удалось существенно упростить, так как FixBrowser выполняет только первичную отрисовку и не поддерживает динамическое обновление содержимого. После того как страница отображена она больше не меняется, соответственно можно обойтись без таких абстракций как DOM (Document Object Model). В настоящее время работа сосредоточена на создании HTML-парсера, поддерживающего спецификации HTML5. Предложенная в первом тестовом выпуске реализация пока охватывает лишь 30% тестов HTML5. Реализована базовая поддержка CSS.

Данные о правообладателе фото и видеоматериалов взяты с сайта «OpenNet», подробнее в Правилах сервиса