Xulrunner en action
Par Laurentj le mardi, avril 19 2005, 09:51 - Technologies Web - Lien permanent
Il est possible depuis quelques temps de télécharger des executables de XulRunner, la plateforme "standalone" d'éxecution d'application XUL. En clair, XulRunner permet de se passer de Mozilla ou Firefox pour éxecuter du XUL. Il existe même des petites démos dont mybrowser.
Voici donc ce que ça donne en tapant dans la ligne de commande :
# xulrunner/xulrunner mybrowser/application.ini

Réaliser ce mini navigateur est d'une simplicité enfantine. Voici le fichier xul :
<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
<!DOCTYPE window SYSTEM "chrome://mybrowser/locale/mybrowser.dtd">
<window
id = "mybrowser"
title = "&mybrowser.title;"
width = "800"
height = "600"
xmlns = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<script src="mybrowser.js"/>
<hbox>
<button id="back" label="&mybrowser.back;" oncommand="back();" disabled="true"/>
<button id="forward" label="&mybrowser.forward;" oncommand="forward();" disabled="true"/>
<button id="reload" label="&mybrowser.reload;" oncommand="reload();"/>
<button id="stop" label="&mybrowser.stop;" oncommand="stop();" disabled="true"/>
<textbox id="urlbar" value="" flex="1" onchange="go();"/>
<button id="go" label="&mybrowser.go;" oncommand="go();"/>
</hbox>
<browser flex="1" id="browser" src="" type="content-primary"/>
<statusbar>
<statusbarpanel id="status" label="" crop="end" flex="1"/>
<progressmeter id="progress" mode="determined" value="0%" style="display: none"/>
<statusbarpanel id="security" label="" style="display: none"/>
</statusbar>
</window>
Agrémenté de quelques lignes javascript pour réagir aux boutons :
function go() {
var urlbar = document.getElementById("urlbar");
var browser = document.getElementById("browser");
browser.loadURI(urlbar.value, null, null);
}
function back() {
var browser = document.getElementById("browser");
browser.stop();
browser.goBack();
}
function forward() {
var browser = document.getElementById("browser");
browser.stop();
browser.goForward();
}
function reload() {
var browser = document.getElementById("browser");
browser.reload();
}
function stop() {
var browser = document.getElementById("browser");
browser.stop();
}
function onload() {
var urlbar = document.getElementById("urlbar");
urlbar.value = "http://www.mozilla.org/";
go();
}
(Dans le code source original, il y a plus de Javascript que ça, mais ce que je presente ici est le minimum requis pour que tout fonctionne correctement)
Génial le xul hein ? :-)
Pour en savoir plus, n'hesitez pas à consulter la rubrique XulRunner sur xulfr.org
Commentaires
Tout simplement excellent, c'est encore plus facile que le très classique navigateur en GTK#.
A mon avis, XULRunner va etre une petite revolution en lui meme ... L'aspect developement d'applications cross-platform de bureau (utilisant XULRunner) + d'applications web (XUL + browser) tout ca avec une technologie ouverte, elegante et relativement legere laisse reveur ... 'nous manquerait plus qu'un IDE, non ? ...
un petit IDE écrit en XUl lui-même ? "eat your own food"
Sympa l'exemple !
J'ai de plus en plus envie de "Xuler"...
Trés prometteur ce standalone pour démocratisé Xul... Un IDE ? Non, on veut un RAD... et oui la feignantise est une qualité !
ça serait pas trop difficile, on pourrait forker Glade pour lui faire cracher du XUL au lieu de son XML sans trop de difficulté, puis de créer un plugin pour Eclipse ou plus simple, un mode pour emacs, ainsi on aurait relativement rapidement un RAD dispo sous Unices et sous win.
C'est trés difficile de faire un RAD pour du XUL, disons d'en faire hein qui permettrait de profiter de toutes les spécificités de XUL. Xul, c'est pas seulement un tas de balises, mais c'est aussi des mécanismes difficiles à mettre en oeuvre en RAD : overlay, templates, entities+DTD pour la localisation, XBL etc...
Merci pour les détails, en effet, ça semble problématique. :(
C'est bluffant. Faut vraiment que je m'y mette.
J'ai aussi essayé mybrowser et j'ai été bluffé, surtout par le peu de code et sa simplicité. Comme déjà dit dans d'autres commentaires : il ne manque plus qu'un IDE bien fait pour que XUL décolle...
Pour ce qui est des IDE et autre RAD, il existe quelques projet à suivre de pret (et enventuellement à y contribuer) :
Ce projet me semble mort dans l'oeuf. Aucune activité ni sur le site ni sur le CVS depuis 3 mois (sorti de la version alpha 1).
Alors à moins que les devellopeurs ne sachent pas se servir de CVS, je pense qu'on peut dire que le projet est mort.
Aucun projet de collaboration/intégration/etc avec glade ?
Une XSLT pour Glade, ça ce serait élégant!