XUL Tutorial:XUL Struktur
Aus MDC
Inhaltsverzeichnis |
Wir werden mit einem Blick auf die Behandlung von XUL in Mozilla starten.
[bearbeiten] Wie wird XUL behandelt
In Mozilla wird XUL genauso behandelt wie HTML oder anderer Inhalt. Wenn man die URL einer HTML-Seite in das Addressfeld des Browsers eingibt, ortet der Browser die Webseite und läd den Inhalt herunter. Die Mozilla-Rendering-Engine übersetzt den HTML-Quelltext in ein Dokumentbaum mit DOM. Anschließend wird der Baum in ein Satz Objekte konvertiert, die am Bildschirm angezeigt werden können. CSS, Bilder und andere Technologien werden verwendet, um die Anzeige zu kontrollieren. XUL funktioniert größtenteils auf die selbe Art und Weise.
In der Tat werden alle Dokumenttypen, egal ob HTML, XUL oder sogar SVG, durch den selben zugrundeliegenden Code behandelt. Das bedeutet, dass die selben CSS-Eigenschaften benutzt werden können, um sowohl HTML und XUL zu manipulieren, und so können viele Funktionen von beiden genutzt werden. Doch gibt es einige Funktionen, welche nur von HTML verwendet werden können, wie z.B. Forms, und andere, welche nur von XUL verwendet werden können, so wie Overlays. Da ja XUL und HTML auf die selbe Art und Weise behandelt werden, kann man beide sowohl vom lokalen Dateisystem, von einer Webseite oder von einer Erweiterung oder einer selbständigen XULRunner-Anwendung laden.
Inhalte aus entfernten Quellen z.B. http://localhost/~username/, unabhängig davon ob HTML, XUL oder ein anderer Dokumententyp, sind aus Sicherheitsgründen in ihrem Handlungsspielraum beschränkt. Deshalb stellt Mozilla die Methode zur Verfügung, Inhalte lokal zu installieren und registriert die installierten Dateien in sein chrome-Systems. Dies ermöglicht, dass eine spezielle URL Form genutzt werden kann, die chrome:// URL genannt wird. Durch den Zugriff auf eine Datei mittels einer chrome URL erhält die Datei höhere Rechte, um auf lokale Dateien, Eigenschaften und Bookmarks zuzugreifen, und andere privilegierte Operationen auszuführen. Webseiten erhalten diese Privilegien nicht, sei denn sie sind mit einem digitalen Zertifikat signiert, und der Benutzer hat den Zugriff auf diese Operationen gewährt.
Die chrome-Paketregistrierung ist der Weg, um es Firefox-Erweiterungen zu ermöglichen, Funktionen zum Browser hinzuzufügen. Erweiterungen sind kleine Pakete mit XUL-Dateien, JavaScript, Stylesheets und Bildern, die in einer einzigen Datei verpackt sind. Eine solche Datei kann mit einem ZIP-Programm erstellt werden. Wenn der Benutzer diese Datei herunterlädt, wird die Erweiterung auf seiner Maschine installiert. Sie hängt sich in den Browser ein, indem sie eine XUL-Eigenschaft benutzt, die man [Overlay] nennt. Sie erlaubt es, das XUL der Erweiterung mit dem XUL des Browsers zu kombinieren. Für den Benutzer scheint es, als ob die Erweiterung den Browser verändert hat, aber in Wirklichkeit ist der Quelltext separat und die Erweiterung kann leicht entfernt werden. Registrierte Pakete müssen natürlich nicht unbedingt Overlays benutzen. Wenn sie keinen Gebrauch von Overlays machen, ist die Erweiterung nicht von der Browser-Oberfläche aus erreichbar, aber man kann sie über die chrome URL erreichen, sofern das erwünscht ist.
Eigenständige XUL-Anwendungen können XUL-Code auf ähnliche Weise enthalten, er wird aber natürlich als Teil der Installation eingebunden, anstatt separat als Erweiterung eingebettet zu werden. Dennoch wird der XUL-Code im chrome System registriert, sodass die Applikation die Benutzeroberfläche darstellen kann.
Der Mozilla Browser selbst ist ebenfalls nichts weiter als eine Sammlung von Paketen, die XUL-Dateien, JavaScript und Stylesheets enthalten. Diese Dateien können über die chrome URL erreicht werden, haben erweiterte Privilegien und verhalten sich auch sonst wie andere Pakete. Natürlich ist der Browser weitaus größer und komplexer als die meisten Erweiterungen. Firefox und Thunderbird und einige andere Komponenten sind alle in XUL geschrieben und erreichbar über chrome URLs. Sie können sich diese Pakete erkunden, indem Sie die Dateien in dem chrome-Verzeichnis ansehen, wo Firefox oder die anderen XUL-Anwendungen installiert sind.
Die chrome URL beginnt immer mit 'chrome://'. Ähnlich wie eine 'http://' URL immer eine entfernte Website per HTTP addressiert und die 'file://' URL immer lokale Dateien, referenziert die 'chrome://' URL immer installierte Pakete und Erweiterungen. Wir werden uns die chrome Syntax im nächsten Kapitel genauer ansehen. Es ist wichtig zu wissen, dass der Zugriff über eine chrome URL erweitere Privilegien gegenüber den anderen Arten von URLs erlangt. Beispielsweise hat eine HTTP URL keine besonderen Rechte und es wird ein Fehler geworfen, wenn eine Website versucht, zum Beispiel lokale Dateien zu lesen. Eine Datei von einer chrome URL aus geladen hingegen hat das Recht, lokale Dateien ohne Einschränkungen zu lesen.
Diese Unterscheidung ist wichtig. Es bedeutet, dass Websites bestimmte Dinge nicht tun können, wie zum Beispiel die Lesezeichen des Benutzers zu lesen. Diese Unterscheidung basiert nicht auf dem Inhalt, sondern nur auf der URL, die benutzt wird. Sowohl HTML als auch XUL auf einer Website haben keine erweiterten Rechte, wohingegen XUL und HTML, die mit einer chrome URL geladen wurden, erweiterte Privilegien haben.
Wenn Sie XUL auf einer Website benutzen möchten, müssen Sie nur die XUL-Dateien auf die Website stellen, genau so, wie Sie es auch mit HTML-Dateien tun. Laden Sie dann die URL in den Browser: http://localhost/xul.php. Vergewissern Sie sich, dass Ihr Webserver so konfiguriert ist, dass er XUL-Dateien mit dem passenden Content-Type application/vnd.mozilla.xul+xml ausliefert. (zum Beispiel mittels PHP: header('content-type: application/vnd.mozilla.xul+xml');). Der Content-Type stellt sicher, dass Mozilla HTML und XUL unterscheiden kann. Mozilla nutzt die Dateierweiterung nur, solange die Datei vom Dateisystem gelesen wird. Sie sollten trotzdem die .xul-Dateiendung für all Ihre XUL-Dateien benutzen. Sie können XUL-Dateien in Ihren Browser laden, indem Sie sie mit dem Browser öffnen oder im Datei-Manager die Datei doppelklicken.
[bearbeiten] Arten von Dokumenten: HTML XML XUL CSS
Diese Seite ist noch nicht vollständig übersetzt.