Представлен бэкенд для формирования вывода Gtk+ через web-браузер
Александр Ларсон (Alexander Larsson), активный разработчик GNOME и мантейнер таких проектов, как Nautilus, Gnome-vfs и Dia, представил экспериментальный GDK-бэкенд (GIMP Drawing Kit), позволяющий отрисовывать вывод библиотеки GTK+ 3 в окне web-браузера. Бэкенд находится на начальной стадии развития, поэтому исходные тексты пока недоступны, но судя по представленной демонстрации возможности проекта уже позволяют транслировать вывод почти всех тестовых приложений GNOME.Положительным качеством разработки является то, что для работы не требуется модификация кода GTK+ и приложений. Отрицательная черта - для работы требуется web-браузер с поддержкой последних HTML5-технологий, таких как web-сокеты и canvas (например, Firefox 4). В перспективе web-бэкенд может быть использован для организации служб для удаленной работы с приложениями через web-браузер (например, можно сделать что-то похожее на утилиту screen, позволяющее получить доступ к своим программам из любого места) или даже для создания публичных web-сервисов, приложениями в которых выступают Gtk-программы (например, web-сервис редактирования изображений на базе Gimp).
С технической стороны, каждое окно сопоставляется с элементом canvas и для обновления содержимого окна организуется передача потока команд через "multipart/x-mixed-replace"-запросы XMLHttpRequest, использующие gzip-сжатие для сокращения объема передаваемых данных. Содержимое окон передается клиенту в виде копий слоев (для скроллинга) и блоков, описывающих изменения между изображениями. Изображения отправляются в виде несжатых данных в PNG-формате. Пользовательский ввод перехватывается через DOM-события и затем транслируется на сервер через WebSocket API, позволяющий организовать двунаправленный обмен данными с сервером.
© OpenNet