NAME

XUL::App - Nifty XUL apps in a XUL::App

VERSION

This document describes XUL::App 0.09 released on August 13, 2008.

SYNOPSIS

$ xulapp app --name YSearchAll

$ cd YSearchAll

$ xulapp view --name Overlay --type overlay

        # Edit lib/YSearchAll/App.pm to add the following lines:
        package YSearchAll::App; our $VERSION = '0.09';

        use XUL::App::Schema;
        use XUL::App schema {
        +     xulfile 'overlay.xul' =>
        +         generated from 'YSearchAll::View::Overlay',
        +         includes qw( xulapp/jquery.js overlay.js ),
        +         overlays 'chrome://browser/content/browser.xul';
        +
            xpifile 'ysearchall.xpi' =>
                name is 'YSearchAll',
                id is 'ysearchall@agentz.agentz-office',
                version is '0.0.1',
                targets {
                    Firefox => ['2.0' => '3.0.*'],  # FIXME
                    Mozilla => ['1.5' => '1.8'],  # FIXME
                },
                creator is 'The YSearchAll development team',
                developers are ['agentz'],
                contributors are [],
                homepageURL is 'http://searchall.agentz.org', # FIXME
                iconURL is '',  # like 'chrome://helloworld/content/logo.png'
                updateURL is ''; # This should not set for AMO extensions.
        };
        1;

        # Add and edit js/ysearchall.js manually
        $ xulapp overlay -p dev11
        $ xulapp bundle .  # generate XPI ready for deployment

DESCRIPTION

XUL::App is a nifty Firefox extension development framework based on Perl. It has a lot of parallels with Jifty. In particular, this framework allows you to build real-world modern Firefox extensions using Perl. But the resulting XPI installation file is completely portable and contains *0* Perl.

This framework has the following highlights:

Currently the module is still in alpha stage and we're in severe lack of documentation and tests. (Although a real-world fully-fledged Firefox extension named SearchAll
(<https://addons.mozilla.org/en-US/firefox/addon/5712>) is already developed atop it.

You can get a lot of information from the slides that I used in the following talk:

<http://agentzh.org/misc/slides/xulapp/xulapp.xul> (a JS-enabled Firefox is required to view these slides)

If you're having problems in displaying the slides given above, please try out the PowerPoint (PPT) version below:

<http://agentzh.org/misc/slides/xulapp.ppt>

or the PDF version:

<http://agentzh.org/misc/slides/xulapp.pdf>

CAVEATS

SOURCE CONTROL

You can always get the latest source of XUL::App from the following SVN

repository

<http://svn.openfoundry.org/xulapp/trunk/>

I really need help in improving this module's docs, tests, and implementation. If you find this thing useful and feel like contributing to it, please write to me and get a commit bit! ;)

SAMPLES

<http://svn.openfoundry.org/searchall/trunk/>

And it's already on the mozilla official site AMO:

<https://addons.mozilla.org/en-US/firefox/addon/5712>

INSTALLATION

        perl Makefile.PL
        make
        sudo make install

BUGS

Sadly XUL::App does not run on Win32 yet. I've only tested it on Ubuntu Linux so far. If you have any problems or would love to help, please let me know ;)

AUTHOR

Agent Zhang <agentzh@yahoo.cn>

COPYRIGHT AND LICENSE

Copyright 2007, 2008 by Yahoo! China EEEE Works, Alibaba Inc. (<http://www.eeeeworks.org>)

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Artistic or GPL.

SEE ALSO

xulapp, Locale::Maketext::Lexicon, Template::Declare, Jifty.