Публикуван е първият тестов вариант на уеб браузъра FixBrowser, проектиран да консумира малко ресурси и да осигурява поверителност. Браузърът се развива от нулата и принципно не поддържа изпълнението на JavaScript, но позволява работа с уебсайтове, зависещи от JavaScript. Кодът е написан на езиците C и FixScript и се разпространява под лиценцията ZLIB. Готовите сборки са оформени за Linux (GTK2) и Windows. Планира се създаването на версии за Haiku и macOS 10.6+, както и формирането на версии за Linux, използващи GTK3/4.
За работа с уебсайтове, зависещи от JavaScript, в FixBrowser е внедрена прослойка FixProxy, която в реално време преобразува такива сайтове в представяне, с което може да се работи без JavaScript. Замените се извършват както по типови шаблони, така и с помощта на fix-обработчици, отчитащи спецификата на конкретни сайтове (в пакет са включени fix-обработчици за над 1200 сайта). FixProxy се развива под формата на отделен прокси процес, който не е свързан с FixBrowser и е подходящ за използване с други браузъри.
Забелязва се, че за показването на повечето сайтове без JavaScript са необходими само незначителни промени. Освен това, на много сайтове се използват однотипни технологии за динамично генериране на съдържание, което позволява да се прилагат стандартни fix-обработчици за тяхното рендиране. Например, може да се използват универсални fix-обработчици за сайтове на база WordPress и форуми на платформата Disqus. Възможно е също така създаването на обработчици и за сайтове, които динамично рендират съдържание — например, за извеждане на списъка с коментари, които първоначално се зареждат динамично с JavaScript, fix-обработчикът директно зарежда данните във формат JSON и самостоятелно формира HTML на тяхна база.
За обработка на CAPTCHA и JavaScript компоненти, като проверки на CloudFlare, без които е невъзможно влизането на някои сайтове, се планира да бъде подготвена прослойка на базата на фреймуърка CEF (Chromium Embedded Framework), която ще може селективно да изпълнява само необходимия JavaScript код. Прослойката за JavaScript ще бъде реализирана под формата на отделна услуга (може да се стартира както на собствената система, така и да се използва обществен облачен сервис).
За да се блокира проследяването на потребителската активност, изтеглянето на ресурси от трети хостове е забранено, а за разрешаване на зареждането на изображения чрез мрежи за доставка на съдържание се използват бели списъци. Поддържа се HTTPS. Възможно е свързване на разширения, написани на езика FixScript.
Проектът се развива от Мартин Дворжак от Чехия, който по време е създал програмния език FixScript. Голямата част от кода на FixBrowser е написана на FixScript, с изключение на критични операции за производителността и основната структура. Кодът на FixScript се вгражда в кода на C, а за компилация се използва компилатор, предоставен в един файл, включващ около 27 хиляди реда код на C (800 Кб). Езикът прилича на C, но използва динамична типизация, сборщик на боклук и JIT-компилация. FixBrowser осигурява безопасна работа с паметта и потоковете, а също така има вградена защита от преливане на цели числа.
Реализацията на браузерния двигател успя значително да се опрости, тъй като FixBrowser извършва само първичното визуализиране и не поддържа динамично обновяване на съдържанието. След като страницата се визуализира, тя вече не се променя, съответно може да се заобиколи без такива абстракции като DOM (Document Object Model). В момента работата е съсредоточена върху създаването на HTML парсер, който поддържа спецификациите на HTML5. Предложената в първото тестово издание реализация все още покрива само 30% от тестовете на HTML5. Реализирана е основна поддръжка на CSS.

Източник: opennet.ru
