Mozilla::DOM ------------ This module wraps the Mozilla DOM interface in Perl. In conjuction with an embedded Gecko widget (e.g. Gtk2::MozEmbed), you can use Perl to manipulate the browser DOM, handle DOM signals, and create events such as mouse clicks -- all within a Mozilla-like browser (so it also does JavaScript). See `perldoc Mozilla::DOM` for more details. There are examples in the `examples' directory showing how to use this module with Gtk2::MozEmbed. See the README file in that directory. `perldoc Mozilla::DOM::index` for a list of all the POD distributed with this module. Dependencies ------------ You might have to manually install ExtUtils::Depends and ExtUtils::PkgConfig before anything else. Sorry about that. You'll also have to install Mozilla with its development headers (I think you can also just install an SDK). Mozilla::DOM depends on: ExtUtils::Depends ExtUtils::PkgConfig `pkg-config --modversion mozilla-xpcom` >= 1.7 I hope to add the equivalent of mozilla-xpcom for Firefox. Installation ------------ Note: I've only built this on Debian Linux with Mozilla 1.7.5. People running Gentoo with Mozilla 1.7.6 have reported being able to build it. To install Mozilla::DOM, run the following commands: perl Makefile.PL make make test (not really any tests yet) make install (as root) (See dependencies below.) For this module to be useful, you'll probably also want to build and install Gtk2::MozEmbed (> 0.03) _after_ you install this. That module includes Mozilla::DOM (through the magic of ExtUtils::Depends) if it's already installed. Similarly, if you upgrade Mozilla::DOM, you'll also want to rebuild and reinstall Gtk2::MozEmbed. Experimental features --------------------- Some features are added "experimentally". These are generally ones that are either known not to be completely working, or I'm not sure if they're really done right. I'll try to mark these clearly in the documentation as experimental. To enable an experimental feature, you pass an argument on the command line, for example perl Makefile.PL DEFINE="-DMDEXP_EVENT_LISTENER" where "MDEXP" is just a (presumably) unique prefix and the rest of the name identifies which feature is being enabled. Currently only the following features are experimental: EVENT_LISTENER. Troubleshooting --------------- A common problem seems to be that header files are put in different directories. If so, you'll get an error like mozilladom2perl.h:37:27: nsIWebBrowser.h: No such file or directory mozilladom2perl.h:38:26: nsISelection.h: No such file or directory If this happens, do find . -name 'nsIWebBrowser.h' from within the Mozilla include directory (e.g. /usr/include/mozilla). It will probably be under some directory of /usr/include/mozilla/. Try adding that directory to the set_inc method in Makefile.PL, and please report it to me. Bugs ---- You can send bugs to me directly, or through RT at http://rt.cpan.org/NoAuth/Bugs.html?Dist=Mozilla-DOM . Contact ------- Scott Lanning lannings at who dot int You can also use the CPAN Forum at http://www.cpanforum.com/dist/Mozilla-DOM . I (slanning) am usually on IRC at irc.perl.org, where we could create a channel.