Лаборатория 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-страниц.


Источник: http://www.opennet.ru/opennews/art.shtml?num=29036