SlideShare une entreprise Scribd logo
1  sur  14
Télécharger pour lire hors ligne
Your first XULrunner-based
        application
        Daniel Glazman
     Disruptive Innovations




    MAOW Berlin 28-mar-2009
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
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
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
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
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
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
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
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
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
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
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
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
Your first XULrunner-based application




• Questions ?


        MAOW Berlin 28-mar-2009 -- Daniel Glazman
                             14

Contenu connexe

Similaire à Your First Xulrunner-based application

Grilo: Easing integration of multimedia content in applications (LinuxTag 2010)
Grilo: Easing integration of multimedia content in applications (LinuxTag 2010)Grilo: Easing integration of multimedia content in applications (LinuxTag 2010)
Grilo: Easing integration of multimedia content in applications (LinuxTag 2010)
Igalia
 

Similaire à Your First Xulrunner-based application (20)

OpenStack Murano introduction
OpenStack Murano introductionOpenStack Murano introduction
OpenStack Murano introduction
 
How to run_moses 2
How to run_moses 2How to run_moses 2
How to run_moses 2
 
Getting started with open mobile development on the Openmoko platform
Getting started with open mobile development on the Openmoko platformGetting started with open mobile development on the Openmoko platform
Getting started with open mobile development on the Openmoko platform
 
Xdebug, KCacheGrind and Webgrind with WampServer
Xdebug, KCacheGrind and Webgrind with WampServer  Xdebug, KCacheGrind and Webgrind with WampServer
Xdebug, KCacheGrind and Webgrind with WampServer
 
JavaFX Uni Parthenope
JavaFX Uni ParthenopeJavaFX Uni Parthenope
JavaFX Uni Parthenope
 
How to Turn New Recruits Into Oracle EPM Infrastructure Gurus
How to Turn New Recruits Into Oracle EPM Infrastructure GurusHow to Turn New Recruits Into Oracle EPM Infrastructure Gurus
How to Turn New Recruits Into Oracle EPM Infrastructure Gurus
 
Using Docker For Development
Using Docker For DevelopmentUsing Docker For Development
Using Docker For Development
 
Windows Debugging Tools - JavaOne 2013
Windows Debugging Tools - JavaOne 2013Windows Debugging Tools - JavaOne 2013
Windows Debugging Tools - JavaOne 2013
 
The Green Lab - [04 B] [PWA] Experiment setup
The Green Lab - [04 B] [PWA] Experiment setupThe Green Lab - [04 B] [PWA] Experiment setup
The Green Lab - [04 B] [PWA] Experiment setup
 
Android Platform Debugging and Development
Android Platform Debugging and DevelopmentAndroid Platform Debugging and Development
Android Platform Debugging and Development
 
The GNOME way - What can we learn from and within the Open Documentation World
The GNOME way - What can we learn from and within the Open Documentation WorldThe GNOME way - What can we learn from and within the Open Documentation World
The GNOME way - What can we learn from and within the Open Documentation World
 
Mobile apps development companies in india |#Mobileappsdevelopmentcompaniesin...
Mobile apps development companies in india |#Mobileappsdevelopmentcompaniesin...Mobile apps development companies in india |#Mobileappsdevelopmentcompaniesin...
Mobile apps development companies in india |#Mobileappsdevelopmentcompaniesin...
 
Grilo: Easing integration of multimedia content in applications (LinuxTag 2010)
Grilo: Easing integration of multimedia content in applications (LinuxTag 2010)Grilo: Easing integration of multimedia content in applications (LinuxTag 2010)
Grilo: Easing integration of multimedia content in applications (LinuxTag 2010)
 
Phonegap Development & Debugging
Phonegap Development & DebuggingPhonegap Development & Debugging
Phonegap Development & Debugging
 
Tek13 - Creating Mobile Apps with PHP and Symfony
Tek13 - Creating Mobile Apps with PHP and SymfonyTek13 - Creating Mobile Apps with PHP and Symfony
Tek13 - Creating Mobile Apps with PHP and Symfony
 
Apache cordova
Apache cordovaApache cordova
Apache cordova
 
An Introduction of Node Package Manager (NPM)
An Introduction of Node Package Manager (NPM)An Introduction of Node Package Manager (NPM)
An Introduction of Node Package Manager (NPM)
 
Prizm Installation Guide
Prizm Installation GuidePrizm Installation Guide
Prizm Installation Guide
 
Orangescrum In App Chat Add-on User Manual
Orangescrum In App Chat Add-on User ManualOrangescrum In App Chat Add-on User Manual
Orangescrum In App Chat Add-on User Manual
 
Docman - The swiss army knife for Drupal multisite docroot management and dep...
Docman - The swiss army knife for Drupal multisite docroot management and dep...Docman - The swiss army knife for Drupal multisite docroot management and dep...
Docman - The swiss army knife for Drupal multisite docroot management and dep...
 

Dernier

Dernier (20)

GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 

Your First Xulrunner-based application

  • 1. Your first XULrunner-based application Daniel Glazman Disruptive Innovations MAOW Berlin 28-mar-2009
  • 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
  • 14. Your first XULrunner-based application • Questions ? MAOW Berlin 28-mar-2009 -- Daniel Glazman 14