Оверлеи и Chrome
В этой лекции описывается инфраструктура оверлеев и каталога chrome платформы Mozilla. Данная инфраструктура предоставляет механизмы для модульной разработки XUL-приложений. И оверлеи, и chrome сильно зависят от файлов данных в формате RDF.
Система оверлеев позволяет единому, финальному XUL-документу быть сконструированным из одного или нескольких XUL-документов. Процесс слияния документов можно организовать несколькими разными способами. Система оверлеев - это компонентная технология, разработанная для больших приложений Mozilla. Она позволяет разбить большие файлы кода на части.
Пример документа, использующего оверлеи, приведен в листинге 12.1
<?xml version="1.0"?> <?xul-overlay href="chrome://test/content/overlayA.xul"?> <?xul-overlay href="chrome://test/content/overlayB.xul"?> <window xmlns="http://www.mozilla.org/keymaster/ gatekeeper/there.is.only.xul"> <description id="start">Anything</description> </window>Листинг 12.1. Простой XUL документ с двумя оверлеями
Этот документ забирает контент из двух файлов: overlayA.xul и overlayB.xul. Эти два файла также содержат XUL-код. Этот совокупный контент добавляется к содержимому исходного файла. Мы видим результат. Ни один из исходных файлов при этом не изменяется.
Регистр chrome - также компонентная технология. Он отслеживает и содержит данные о компонентах, таких как пакеты, скины и локализация. Эти компоненты - просто группы файлов в директории chrome. Здесь они полностью доступны для платформы в виде URL специального типа. Регистр chrome можно использовать, чтобы управлять информацией об этих файлах. Этот механизм связан с инсталляционной системой, описываемой в "Система распространения и установки - XPInstall" , "Установка".
Разрабатываемый нами пример, NoteTaker, использовал структуру директории chrome, начиная с "Основные концепции" , "Основные Концепции", но многое из этой системы было оставлено за скобками в процессе описания. В этой лекции мы опишем модель RDF, лежащую в основе chrome, более тщательно.
На диаграмме в начале этой лекции показана небольшая часть платформы, связанная с chrome и оверлеями. Обработка оверлеев начинается на ранней стадии загрузки документа. Она располагается между обработкой URLs и сборкой контента в финальную иерархию DOM. Регистр chrome почти всегда невидим для нас, за исключением автоматического выбора скинов, зависящих от тем и DTD, зависящих от локализации. Регистр chrome реализуется XPCOM-компонентами, так что большинство оверлеев и chrome-процессов автоматизированы.
Оверлеи и регистр chrome вдобавок предоставляют нам шанс поупражняться в RDF. В этой лекции описываются база данных оверлеев overlayinfo и база данных chrome chrome.rdf. Кроме того, мы рассмотрим сохранение данных между сессиями.