Firefox для Android прекращает использование XUL

17/10/2011 18:15

Разработчики проекта Mozilla решили отказаться от использования языка XUL при создании интерфейса пользователя в Firefox для платформы Android. Вместо XUL будут использованы стандартные механизмы построения интерфейса, предоставляемые платформой Android. В качестве веб-движка по прежнему остаётся Mozilla Gecko, который используется и в версии Firefox для настольных систем. Загрузить код прототипа переработанной версии Firefox для платформы Android можно из специально созданного hg-репозитория. Пока неизвестно, когда работа будет доведена до готовности для конечных пользователей, но разработчики уверены, что проект не повлияет на развиваемые параллельно будущие выпуски Firefox для Android, которые находятся на этапе тестирования в ветках Beta и Aurora. Как минимум, Firefox 8 и 9 для Android по прежнему будут базироваться на технологии XUL, включая недавно созданный новый интерфейс для планшетов. В качестве трёх ключевых мотивов отказа от XUL в пользу NativeUI называется: уменьшение времени запуска - использование штатного Android API для построения интерфейса позволит заметно увеличить скорость запуска приложения, в основном за счёт возможности параллельной загрузки части, ответственной за интерфейс, и движка Gecko, собранного при помощи Android NDK (Native Development Kit) в виде библиотеки. В итоге запуск браузера будет происходить за доли секунды, а не за несколько секунд; значительное уменьшение потребление памяти за счёт исключения фазы интерпретации XUL-кода (сам интерпретатор XUL основан на JavaScript и остаётся в Gecko) и использования стандартных виджетов; увеличение отзывчивости интерфейса, так как родной API позволяет без лишних манипуляций выполнять такие операции как панорамирование и масштабирование. Кроме того, исчезает дополнительный интерпретируемый уровень, приводящий к большим накладным расходам. Отказ от дополнительной прослойки в виде языка разметки XUL позволит существенно сократить потребление ресурсов, но сделает невозможным установку классических дополнений на базе XUL. Для создания дополнений можно будет использовать только систему Jetpack, которая, в отличие от XUL, не требует изучения особенностей внутреннего устройства браузера и базируется на стандартных веб-технологиях HTML, CSS и JavaScript. Среди других проблемных моментов ухода от XUL называются потеря переносимости реализации интерфейса и необходимость внедрения новых методов локализации (в настоящее время процесс локализации достаточно плотно завязан на XUL). Что касается переносимости, то основной задачей XUL является обеспечение возможности создания интерфейса, который без изменения может работать на принципиально разных платформах. Интерфейс определяется на универсальном интерпретируемом языке, абстрагированном от особенностей какой-либо платформы. Переход на API Android сделает продукт специфичным для Android и не даст использовать связанные с интерфейсом наработки при создании версий Firefox для других мобильных платформ. Уход от XUL потребует переработки самой концепции формирования интерфейса - вместо самобытного оформления, браузер будет более плотно вписываться в программное окружение, станет походить на другие приложения для Android. Тем не менее, в новой версии планируется сохранить такие особенности, как интеллектуальная адресная строка Awesome Bar, сервис синхронизации Firefox Sync и поддержка навигации на основе вкладок, включая режим вывода эскизов открытых вкладок.
Источник