mozilla

Základy prostředí Mozilly

Standardní distribuce Mozilly má několik částí, které zhruba odpovídají adresářové struktuře z kořenového adresáře instalace mozilly (dále <tt>%MOZILLA%</tt>). Zde bude řeč hlavně o komponentách (<tt>%MOZILLA%/components</tt> dále jako <tt>%COMPONENTS%</tt>) a chrome (<tt>%MOZILLA%/chrome</tt> dále jako <tt>%CHROME%</tt>). Komponenty jsou samostatné kusy kódu, obvykle přeložené do DLL, které využívají Gecko. Dále viz sekci XPCOM.

Chrome

Chrome je část okna aplikace (prohlížeče), která leží mimo plochu, na které se zobrazuje obsah HTML stránky (content area). Jde tedy např. o toolbary, menu bary, progress bary atd.

Jsou čtyři části chrome a každá má jiného správce (provider):

  • skin provider spravuje soubory určující vzhled chrome – typicky CSS, obrázky
  • content provider spravuje struktury GUI komponent chrome (obsah menu, toolbaru, ...) – typicky XUL
  • platform provider rozlišuje platformu (co do vzhledu i struktury)
  • localization provider spravuje všechny textové řetězce, které se v chrome vyskytují (např. texty menu, popisky ikon, ...)

Správci chrome můžou být uloženy lokálně, ale lze je také dynamicky nahrávat třeba z webového serveru (downloadable chrome). To umožňuje měnit vzhled chrome (a tedy celého browseru) podle serveru, ke kterému je klientský prohlížeč připojen.

V pojmenovávání se používá následující konvence:

Pokud máme typ okna foo, pak "Foo" je window_type_name (tj. textový indentifikátor, který se zapisuje do registračního souboru a také název balíku), <tt>foo.xul</tt> je inicializační soubor GUI, <tt>foo.css</tt> je hlavní CSS soubor a <tt>fooSkin.jar</tt>, <tt>fooContent.jar</tt>, <tt>fooPlatform.jar</tt>, <tt>fooLocale.jar</tt> jsou archivy souborů jednotlivých správců.

Chrome registry

Chrome registry je obdoba windows registrů. Je to databáze (tabulka) na straně klienta, která poskytuje mapování mezi Gecko-embedded aplikací a použitým souborem správců. Protože je Gecko platformně nezávislé, je i tato DB abstraktní vůči OS a jeho registrům.

Každý správce musí mít unikátní název, v tabulce je pak odkaz na jeho hlavní (popisný) soubor (buď jako lokální cesta, nebo URL adresa na JAR archiv se správci).

Chrome registry jsou uloženy v souboru <tt>%CHROME%/chrome.rdf</tt> nebo <tt>%CHROME%/registry.rdf</tt>, který se generuje při startu Mozilly z textového souboru <tt>%CHROME%/installed-chrome.txt</tt>.

Řádek souboru <tt>%CHROME%/installed-chrome.txt</tt> má tvar: <tt>typ_balíčku,jak_instalovat,typ_URL,URL_balíčku</tt> – s následujícím významem:

  • <tt>typ_balíčku</tt>: <tt>content</tt>, <tt>skin</tt> nebo <tt>locale</tt>
  • <tt>jak_instalovat</tt>: <tt>install</tt> (k Mozille) nebo <tt>profile</t> (balíčky typu <tt>skin</tt> nebo <tt>locale</tt> lze instalovat do user profile adresáře)
  • <tt>typ_URL</tt>: <tt>URL</tt> (mozilla) nebo <tt>path</tt> (nativní)
  • <tt>URL_balíčku</tt>: cesta k balíčku, musí končit znakem '/', <tt>resource:/</tt> označuje kořenový adresář Mozilly (tj. %MOZILLA%)

Pokud je balíček zapakován v JAR souboru, tak je URL ve tvaru: <tt>cesta_k_balíčku/jméno_balíčku.jar!/cesta_v_balíčku</tt>.

Soubor <tt>%CHROME%/installed-chrome.txt</tt> se v praxi needituje ručně, ale mění se při instalaci komponenty pomocí JavaScriptového instalačního systému XPInstall.

Chrome URL

Na GUI soubory se neodkazuje pomocí nativního (na OS závislého) zápisu cesty, ale pomocí chrome URL. To má základní tvar: <tt>chrome://WindowTypeName/ProviderName/název_souboru</tt>, přičemž nativní adresa je: <tt>%chrome%/WindowTypeName/ProviderName/WindowTypeName/název_souboru</tt>.

Při startu aplikace z browseru stačí do pole URL adresy zadat <tt>chrome://WindowTypeName/content</tt>, cesta k defaultnímu XUL souboru aplikace se pak vyhledá v registrech.

RDF

RDF je XML-based formát pro uložení informací. Není spravován organizací Mozilla.org, ale konsorciem W3C. V Mozille se pomocí něj definuje, které soubory (<tt>.xul</tt>, <tt>.css</tt>) použít a jak. Každý registrovaný adresář s GUI soubory musí obsahovat popisný soubor <tt>contents.rdf</tt>.

XPConnect a JavaScript

XPConnect je technologie umožňující jednoduchou interakci mezi JavaScriptem a XPCOM komponentami. JavaScript je základní jazyk, který se používá k odchytávání všech událostí vzniklých při interakci uživatele s GUI, jako je např. výběr položky menu, kliknutí na tlačítko apod., a následné volání XPCOM komponenty přes rozhraní definované XPIDLem (XPIDL - Cross-Platform Interface Definition Language).

Schopnosti JavaScriptu jsou poměrně rozsáhlé (např. i přístup k souborům apod.) a na spoustu operací zřejmě stačí samotný, ale pro náročnější úkony (přístup k databázím, ...) je třeba použít mocnější jazyky jako C++ nebo Java.

Informace o původním dokumentu

  • Autor: Jan Ditrich

Document Tags and Contributors

Contributors to this page: Pawell, Majda
Last updated by: Pawell,