Kenneth McDonald | 25 Jul 2006 22:24
Picon
Favicon

Checking on some basic concepts...

First, looks like Jed and I are coming from a similar place. Jed, are 
you interested on working together to try to get nsdom/pyxpcom compiled, 
and then figuring out how to actually use it?

Previous posts and responses have let me to believe I should check my 
understanding of some basic concepts. Here are some things I _think_ I 
know (and don't know). If I'm wrong, please correct me.

1) pyxpcom is what allows Python to call xpcom components. nsdom, on the 
other hand, is what allows Python to manipulate the DOM directly (and is 
what I'm interested in--I only want to be able to manipulate the DOM and 
catch and process mouse and keyboard events from python.) nsdom requires 
pyxpcom, but makes pyxpcom invisible to the nsdom programmer.

2) nsdom  presumably has a Pythonic version of the same API that JS uses 
to manipulate the DOM. nsdom is currently at a point where it is "pretty 
good" for actual use.

3) In order to build a version of FF with both pyxpcom and nsdom 
support, I need to download a current "trunk" release of Moz, do the 
mozconfig file thing adding whatever flags are needed to include 
pyxpcom/nsdom support into the build. The current trunk does not appear 
to be available as a tarball, according to the Moz site, so I'll need 
CVS to grab it. Can anyone direct me to a page giving CVS instructions 
for DLing Moz? Also, should I download the absolute most recent trunk, 
or is there a presumably more stable version I should DL instead?

4) Mark has provided a script that seems to aim at building 
pyxpcom/nsdom support against an already existing binary. But I don't 
know if it'll work against FF2, or if I need a build that already has 
pyxpcom built.

My immediate goal pretty similar to Jed's. I just want to get a 
reasonably stable version of nsdom up and running against a reasonably 
stable version of FF, and then do Python stuff. (Actually, all I really 
need is the DOM+DOM display/rendering+event processing, but so far as I 
know, Gecko can't be built standalone and doesn't necessarily do 
anything other than layout.) My end goals are simply:

- Learn and use nsdom for some stuff I want to try.
- Write up how to use nsdom, for use by other people.
- Probably write some Python libraries to add functionality to nsdom, 
again to be made public.

I'll be building on OS X, and anything I learn, I'll post. Feel free to 
suggest the "best path" to my end goal of simply programming the DOM/DOM 
events in Python :-)

Trust me, if you beat me over the head enough with this stuff, it _will_ 
sink in. :-)
Ken

Gmane