This document discusses how to create your first application using XULrunner. It explains that XULrunner is Firefox without the browser chrome and provides the Gecko rendering engine and toolkit. It outlines downloading and extracting XULrunner, describes the basic structure and files needed for a XULrunner application including the application.ini, chrome.manifest and main window file. It also covers running the application, packaging it, and points to additional resources.
2. Your first XULrunner-based application
What is XULrunner
• in short, Firefox without all its chrome
• more correctly, a runtime for Gecko and
the toolkit
MAOW Berlin 28-mar-2009 -- Daniel Glazman
2
3. Your first XULrunner-based application
Downloads
• You don’t need to build XULrunner if you
already have Firefox 3 and limit yourself to
chrome
firefox -app path/to/application.ini
• or download and unzip XULrunner from
ftp://ftp.mozilla.org/pub/xulrunner/releases/
MAOW Berlin 28-mar-2009 -- Daniel Glazman
3
4. Your first XULrunner-based application
Structure
Top dir
chrome
content
main.xul
chrome.manifest
defaults
preferences
prefs.js
application.ini
MAOW Berlin 28-mar-2009 -- Daniel Glazman
4
5. Your first XULrunner-based application
application.ini
• very simple file declaring your app’s
metadata
[App]
Name=MyFirstApp
Vendor=My Own Organization
Version=0.1
BuildID=20090328
ID=myfirstapp@myownorg.org
Copyright= Copyright 2009 My Own Organization
[Gecko]
MinVersion=1.9
MaxVersion=1.9.0.*
MAOW Berlin 28-mar-2009 -- Daniel Glazman
5
6. Your first XULrunner-based application
Basic chrome.manifest
• basically a mapping between chrome:// URLs
and the filesystem
content myfirstapp file:content/
• you can also package and compress the files
creating a jar
content myfirstapp jar:myfirstapp.jar!/content/
MAOW Berlin 28-mar-2009 -- Daniel Glazman
6
7. Your first XULrunner-based application
More chrome.manifest
• add a skin
skin myfirstapp classic/1.0 jar:myfirstapp.jar!/skin/
• add a locale
locale myfirstapp en-US jar:myfirstapp.jar!/locale/en-US/
MAOW Berlin 28-mar-2009 -- Daniel Glazman
7
8. Your first XULrunner-based application
app’s preferences
pref(quot;toolkit.defaultChromeURLquot;,
quot;chrome://myfirstapp/content/main.xulquot;);
• prefs for debugging
• prefs for user-agent or cache
• prefs for extension manager and XPInstall
• prefs for protocol handlers
• prefs for preferences window :-)
MAOW Berlin 28-mar-2009 -- Daniel Glazman
8
9. Your first XULrunner-based application
Your main window
<?xml version=quot;1.0quot;?>
<?xml-stylesheet href=quot;chrome://global/skin/quot;
type=quot;text/cssquot;?>
<?xml-stylesheet href=quot;chrome://myfirstapp/skin/main.cssquot;
type=quot;text/cssquot;?>
<!DOCTYPE window SYSTEM quot;chrome://myfirstapp/locale/main.dtdquot;>
<window id=quot;mainquot;
title=quot;&window.title;quot;
width=quot;600quot; height=quot;400quot;
xmlns=quot;http://www.mozilla.org/keymaster/gatekeeper/
there.is.only.xulquot;>
<label value=quot;Guten Tag Berlin !quot;/>
<button label=quot;Dankequot;
oncommand=quot;window.close();quot;/>
</window>
MAOW Berlin 28-mar-2009 -- Daniel Glazman
9
10. Your first XULrunner-based application
Running your app
• Windows
xulrunner.exe application.ini
• Mac (with restrictions)
/Library/Frameworks/XUL.framework/xulrunner-bin
`pwd`/application.ini
• Linux
xulrunner application.ini
MAOW Berlin 28-mar-2009 -- Daniel Glazman
10
11. Your first XULrunner-based application
Package your app
• Zip it into a *.app file
• call
xulrunner -install-app `pwd`/myfirstapp.zip
• Installs inside c:Program Files or /Library
on Mac
MAOW Berlin 28-mar-2009 -- Daniel Glazman
11
12. Your first XULrunner-based application
More complex stuff
• Add jsm modules
• Add icon to application.ini
• Add Venkman and Document Inspector
• Build a single executable with xulrunner...
• Update your app like Firefox...
• Extensions management
MAOW Berlin 28-mar-2009 -- Daniel Glazman
12
13. Your first XULrunner-based application
Links
• https://developer.mozilla.org/en/XULRunner
• https://developer.mozilla.org/en/XULRunner_tips
• https://developer.mozilla.org/en/XULRunner/Deploying_XULRunner_1.8
• http://zenit.senecac.on.ca/wiki/index.php/XULRunner_Guide_Outline
MAOW Berlin 28-mar-2009 -- Daniel Glazman
13