ВЫБИРАТЬ
Парадигма | Декларативный ( язык разметки ) |
---|---|
Разработчик | Фонд Мозиллы |
Язык реализации | С++ |
Платформа | Геккон |
ТЫ | Кросс-платформенный |
Лицензия | МПЛ |
Расширения имен файлов | .xul MIME-тип : application/vnd.mozilla.xul+xml |
Веб-сайт | https://wiki.mozilla.org/XUL:Home_Page |
Основные реализации | |
Мозилла | |
Под влиянием | |
HTML , XML |
XUL ( / ˈ z uː l / ZOOL ), что означает XML User Interface Language , — это язык разметки пользовательского интерфейса, разработанный Mozilla . XUL — это диалект XML для написания графических пользовательских интерфейсов , позволяющий разработчикам писать элементы пользовательского интерфейса аналогично веб-страницам .
XUL Приложения Mozilla полагаются на кодовую базу или ответвление ее . Наиболее ярким примером является веб-браузер Firefox . Однако Mozilla значительно сократила использование XUL в Firefox после переписывания движка браузера в версии 57. [ 1 ] [ 2 ] Это привело к удалению устаревшей системы надстроек , которая опиралась на XUL и XPCOM , еще одну кроссплатформенную технологию, которую Mozilla решила объявить устаревшей незадолго до выпуска Firefox 57. Первоначально Firefox позволял надстройкам значительно изменять свой пользовательский интерфейс. но эта возможность была удалена в 2017 году и заменена менее разрешительным API WebExtensions . [ 3 ] [ 4 ] Некоторые версии Firefox сохраняют поддержку надстроек на основе XUL и XPCOM. Waterfox поддерживает ответвление устаревшей кодовой базы Mozilla для браузера Waterfox Classic . [ 5 ] Браузер Pale Moon , [ 6 ] василиск Браузер, [ 7 ] Гипербола , Операционная система [ 8 ] и множество небольших проектов коллективно используют и поддерживают реализацию Unified XUL Platform (UXP).
История
[ редактировать ]
XUL был разработан в Netscape в 1997 году как часть усилий по разработке, которые в конечном итоге стали Mozilla кодовой базой . [ 9 ] XUL похож на веб-технологии, реализованные в механизме рендеринга Gecko . Когда был представлен XUL, он добавил функции, выходящие за рамки тогдашнего стандарта HTML 4 . Он был разработан как расширение HTML для использования с приложениями, а не с документами. [ 10 ]
XUL использовался различными проектами Mozilla, ответвлениями проектов Mozilla и проектами, тесно связанными с Mozilla. Некоторые программные проекты, такие как Songbird , Komodo IDE и Zotero , начинались как настольные приложения, которые использовали XULRunner для рендеринга и создания своего пользовательского интерфейса. В начале 2000-х был некоторый интерес к использованию XUL со стороны других сторон, включая Amazon . [ 11 ] но они перешли на HTML5 . [ 1 ] [ 2 ] Многие функции современных веб-технологий, таких как HTML5, CSS3, ECMAScript 5+, WebGL и WebAssembly, которые сделали возможными многофункциональные и современные веб-приложения без необходимости использования устаревших NPAPI / PPAPI / ActiveX технологий подключаемых модулей браузера , таких как Adobe Flash. , Silverlight , Java или Shockwave также сделали большую часть XUL ненужной. [ 10 ]
Mozilla выпустила Firefox 57, также известный как Firefox Quantum, в ноябре 2017 года. В рамках этого Firefox завершил переход на многопроцессную архитектуру. Хотя надстройки XUL могли работать в этой архитектуре, они часто создавали серьезные проблемы с производительностью. Из-за этого Mozilla удалила поддержку устаревших надстроек , включая использование пользовательского кода XUL. [ 3 ] [ 4 ] Mozilla переключила свою систему расширений браузера на кроссбраузерный API WebExtensions, который во многом основан на API расширений Chrome. В конце 2017 года Firefox по-прежнему включал 289 XUL-привязок для собственных компонентов браузера. К концу 2019 года Mozilla удалила все файлы XUL из своей папки. mozilla-central
хранилище. [ 12 ] [ 1 ] [ 2 ]
Когда Mozilla прекратила поддержку Firefox, несколько приложений все еще использовали XUL. Mozilla начала постепенно удалять поддержку XUL из своего почтового клиента Thunderbird . В 2020 году они выпустили Thunderbird 78 без поддержки расширений на основе XUL. [ 13 ] Интернет- пакет SeaMonkey решил повторно реализовать XUL для кодовой базы Firefox Quantum, и впоследствии разработка пакета замедлилась. Разработчики Pale Moon разделили всю кодовую базу Mozilla Firefox 52 ESR, чтобы создать унифицированную платформу XUL (UXP) для своего движка рендеринга Goanna . UXP поддерживает традиционные возможности XUL. [ 14 ] В результате Pale Moon и другие UXP-приложения остались однопроцессными, но более расширяемыми по сравнению с современными версиями Firefox и Thunderbird. [ 15 ]
Использование
[ редактировать ]XUL можно использовать только с Mozilla кодовой базой (или ответвлением ее Gecko (или Goanna ) ), поскольку движок выполняет рендеринг XUL. [ 16 ]
Программистам приложений необходимо определить интерфейс XUL как три отдельных набора компонентов:
- Содержимое: документ(ы) XUL, элементы которого определяют макет пользовательского интерфейса.
- Оболочка: файлы CSS и изображений, определяющие внешний вид приложения.
- Локаль: файлы, содержащие видимые пользователю строки для упрощения локализации программного обеспечения.
XUL определяет широкий спектр элементов, которые примерно принадлежат к следующим типам:
- Элементы верхнего уровня: окно , страница, диалог , мастер и т. д.
- Виджеты : метка, кнопка , текстовое поле , окно списка, поле со списком , переключатель , флажок , дерево , меню , панель инструментов , групповое поле, поле вкладок , средство выбора цвета, разделитель, разделитель и т. д.
- Коробчатая модель: коробка, сетка, стопка, колода и т. д.
- События и скрипты: скрипт, команда, ключ, вещатель, наблюдатель и т.д.
- Источник данных: шаблон, правило и т. д.
- Прочее: оверлей, iframe, браузер, редактор и т. д.
Поведение виджетов XUL по умолчанию можно изменить с помощью привязок XBL .
XBL
[ редактировать ]Язык привязки XML ( XBL ) — это XML на основе язык разметки , предназначенный для изменения поведения виджета , XUL например полосы прокрутки . [ 17 ] [ 18 ] Файл XBL содержит привязки , каждая из которых описывает поведение виджета XUL. Корневым элементом файла XBL является <bindings>
элемент, который содержит один или несколько <binding>
элементы. Каждый <binding>
element объявляет одну привязку, которую можно прикрепить к любому элементу XUL. Он также может обладать id
атрибут. Привязка назначается элементу путем установки свойства CSS -moz-binding
на URL-адрес файла привязки. [ 19 ] Например:
scrollbar {
-moz-binding: url('somefile.xml#binding1');
}
Пример
[ редактировать ]В этом примере показаны три кнопки, расположенные друг над другом в вертикальном блоке-контейнере: [ 20 ]

<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
<window id="vbox example" title="Example 3...."
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<layout>
<button id="yes1" label="Yes"/>
<button id="no1" label="No"/>
<button id="maybe1" label="Maybe"/>
</layout>
</window>
охотникам за привидениями Отсылка к
[ редактировать ]XUL содержит отсылку к фильму «Охотники за привидениями» 1984 года . [ 21 ] Антагонист фильма — вымышленное божество Зуул, Привратник. [ 22 ] Зуул обладает персонажем Даны Барретт и заявляет: «Даны нет. Есть только Зуул». [ 23 ] [ 21 ] Создатели XUL произносятся так же, как Zuul, [ 24 ] сделал слоган: «Нет данных. Есть только XUL!». [ 25 ] Слоган и Zuul как привратник упоминаются в пространства имен XML URI XUL и ранее присутствовали во всех надстройках Firefox: [ 21 ]
http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul
— Мозилла [ 21 ]
Ссылки
[ редактировать ]- ^ Jump up to: а б с Хирш, Джаред (2 сентября 2018 г.). «Жизнь после XUL» . Сеть разработчиков Mozilla (MDN) . Мозилла. Архивировано из оригинала 29 ноября 2018 года . Проверено 28 ноября 2018 г.
- ^ Jump up to: а б с «Проблемы с XUL» . mozilla.github.io . Проверено 7 июня 2019 г.
- ^ Jump up to: а б «Firefox 57.0: все новые функции, обновления и исправления» . Мозилла . 14 ноября 2017 г. Проверено 27 сентября 2022 г.
- ^ Jump up to: а б Кев Нидэм (21 августа 2015 г.). «Будущее разработки дополнений Firefox» . blog.mozilla.org . Проверено 2 апреля 2018 г.
- ^ Контос, Алекс (28 апреля 2018 г.). «Уотерфокс, его наследие и взгляд в будущее» . Блог Waterfox . Проверено 20 июня 2018 г.
- ^ «Дорожная карта будущего Pale Moon» . Палемун.орг . Мунчайлд Продакшнс. 23 марта 2022 г. . Проверено 2 апреля 2018 г.
- ^ Бринкманн, Мартин (17 ноября 2017 г.). «Команда Pale Moon выпускает первую версию браузера Basilisk» . Новости технологий Ghacks . Проверено 2 апреля 2018 г.
- ↑ Страница проекта Iceweasel-UXP. Архивировано 29 декабря 2021 г. на Wayback Machine.
- ^ Хорхе О. Кастро (15 июня 2004 г.). «Ars Technica беседует со Скоттом Коллинзом из Mozilla.org» . Арс Техника . Проверено 28 ноября 2018 г.
- ^ Jump up to: а б Теллер, Дэвид (20 августа 2020 г.). «Почему Mozilla удалила надстройки XUL?» .
- ^ Кинг, Брайан (5 февраля 2003 г.). «Удаленная разработка приложений с помощью Mozilla, часть 2: пример использования браузера Mozilla Amazon (MAB)» . Орейлиннет . Архивировано из оригинала 18 февраля 2012 года.
Браузер Mozilla Amazon представляет собой интересный пример по ряду причин. Во-первых, это работающий прототип приложения, а не пример, созданный исключительно с целью демонстрации технологии. Во-вторых, он реализует многие области поддержки удаленной разработки со стороны Mozilla и, таким образом, демонстрирует возможности, потенциал и ограничения удаленных XUL-приложений. Наконец, он демонстрирует поддержку Mozilla веб-сервисов — важной новой технологии разработки веб-приложений.
- ^ Гринстед, Брайан (16 декабря 2019 г.). «Замена Firefox/XUL и XBL» . Проверено 27 сентября 2022 г.
- ^ «Адаптация к изменениям в Thunderbird 69-78» . разработчик.thunderbird.net . 2022 . Проверено 27 сентября 2022 г.
- ^ Стравер, Маркус (2 ноября 2017 г.). «UXP против Гоанны» . Проверено 27 сентября 2022 г.
План состоит в том, чтобы переключить Pale Moon с нашей текущей платформы на UXP (долгосрочные планы), поскольку разработанная и поддерживаемая платформа на основе XUL — это единственный способ, с помощью которого приложение XUL (например, Pale Moon) имеет хоть какой-то шанс выжить, не устаревая. , поскольку Mozilla отказалась от этой технологии. Это была основная причина, по которой я решил начать с этой платформы! Тем не менее, платформа не будет разрабатываться исключительно для потенциального будущего использования Pale Moon, она разрабатывается для любого будущего XUL-приложения, которое в противном случае будет мертво. По сути, мы перенимаем эстафету Mozilla в разработке и поддержке платформы для XUL-приложений любого типа; Mozilla не следует рассматривать как «верхнюю версию», потому что это не так.
- ^ Тобин, Мэтт. «Есть только XUL» . Архивировано из оригинала 17 сентября 2018 года . Проверено 18 сентября 2018 г.
- ^ «Часто задаваемые вопросы о гекконах | MDN» . http://developer.mozilla.org . Архивировано из оригинала 8 октября 2019 года . Проверено 5 января 2021 г.
- ^ Кастро, Хорхе О. (15 июня 2004 г.). «Ars Technica беседует со Скоттом Коллинзом из Mozilla.org» . Арс Техника . п. 2. Архивировано из оригинала 22 февраля 2018 года . Проверено 28 ноября 2018 г.
- ^ «Благодарность XBL 2.0» . www.w3.org .
- ^ «ХБЛ 2.0» . www.w3.org .
- ^ «Коробочная модель — Mozilla | MDN» . 9 декабря 2017 года. Архивировано из оригинала 9 декабря 2017 года . Проверено 5 января 2021 г.
- ^ Jump up to: а б с д Фредерик, Гейл; Лал, Раджеш (15 апреля 2010 г.). Начало веб-разработки для смартфонов: создание приложений на основе JavaScript, CSS, HTML и Ajax для iPhone, Android, Palm Pre, BlackBerry, Windows Mobile и Nokia S60 . Апресс. п. 23. ISBN 978-1-4302-2621-5 .
- ^ Гарсиа-Вентура, Агнес; Вердераме, Лоренцо (1 марта 2020 г.). Рецепции Древнего Ближнего Востока в массовой культуре и за ее пределами . Локвуд Пресс. п. 109. ИСБН 978-1-948488-25-9 .
- ^ Куинлан, Эрин (6 июня 2014 г.). « Охотникам за привидениями» исполняется 30 лет: вернемся к сверхъестественной мудрости фильма . Сегодня . Проверено 25 мая 2024 г.
- ^ Хольцнер, Стивен (2001). Внутри XML . Новые гонщики. п. 47. ИСБН 978-0-7357-1020-7 .
- ^ «Пространство имен XML Mozilla» . www.mozilla.org .