Лаборатория Mozilla объявила о доступности первой тестовой версии проекта Chromeless, нацеленного на упрощение разработки альтернативных пользовательских интерфейсов для web-браузера. Chromeless представляет собой лишь основной костяк надстроек над браузерным движком Gecko, лишенный подсистемы "сhrome" (не путать с браузером Chrome), ответственной за формирование пользовательской оболочки для вывода web-страницы на экран (набор XUL-виджетов в Firefox).
Вместо пользовательского интерфейса в Chromeless представлен специальный API для быстрого создания собственных интерфейсов, используя стандартные web-технологии - HTML, CSS и JavaScript. Цель проекта именно создание макетов и эксперименты, удачные идеи из которых впоследствии могут быть перенесены в базовый интерфейс Firefox, в котором пока не планируется уходить от использования XUL.
Проект распространяется в двух формах: в виде набора JavaScript-библиотек, позволяющих организовать контроль над приложением через манипуляции с DOM, и коллекции рабочих примеров, реализующих определенные браузерные элементы, например, прототип наглядного представления эскизов вкладок.
Код Chromeless базируется на комбинации XULRunner с Jetpack SDK. Вместо загрузки XUL осуществляется запуск HTML-файла, которому предоставляются дополнительные привилегии, такие как доступ к модулю CommonJS из состава платформы Jetpack. CommonJS позволяет добраться до элементов в самом верху DOM-дерева, устанавливать обработчики для специфичных для операционной системы меню или обращаться к функциям системы нотификации. В будущем будет обеспечен режим изоляции подсистем обработки web-контента и прорисовки интерфейса.
Для создания более содержательных браузерных конструкций разрабатывается отдельный API. В частности, Chromeless 0.1 включает в себя новые API-вызовы, позволяющие реализовать следующие функции:
- Отслеживание процесса загрузки страницы;
- Получение уведомлений о состоянии безопасности web-страницы (статус использования SSL);
- Доступ к изображениям, сформированным из фрагментов DOM;
- Инициирование перехода в полноэкранный режим;
- Вывод лог-сообщений на консоль;
- Сохранение данных в пользовательский профайл;
- Преобразование пользовательского ввода и корректный URL;
- Экспериментальный API с поддержкой фоновой загрузки web-страниц.
|