John J. Lee
jjl at pobox.com
Sun Jul 20 19:20:52 CEST 2003
"Aurélien Géron" <ageron at videotron.ca> writes:
> I'd like to write a simple portable browser plugin for Internet Explorer,
> Netscape and if possible other navigators too. Is there a way to do that
> using Python? For now I'd like to develop something like the GoogleBar, but
> I'd also like to know how to develop "in-frame" plugins such as Flash or
I *think* Netscape plugins are quite simple, and it's not possible to
do things like toolbars without taking over the whole window. I may
be completely wrong there -- I've never written one. The Mozilla
documentation is no doubt the place to start (Netscape Navigator is
now a flavour of Mozilla, in case you don't know). I'm sure Mozilla
will have lots of more sophisticated ways of doing things, but maybe
not ones that make it possible to write cross-browser code -- unless
you write a framework yourself, of course.
> Any ideas? Any links to documentation for browser plugins development? Any
> code examples or open source project I could check out?
It might not be as bad as it first appears, since XPCOM is heavily
modelled on MS COM, and was designed to interoperate with it to an
extent, I believe. PyXPCOM exists (written by Mark Hammond, of
PythonCOM (etc.) fame). Other starting points:
-ActiveX Control for Netscape plugins +
Netscape plugin for ActiveX controls +
Mozilla ActiveX control (not relevant to your question, but
I think both Opera and Konqueror support Netscape plugins.
-Codeweavers sells a product that uses a hacked version of wine to
allow ActiveX plugins to work in Mozilla, Konqueror, etc. Called
'Crossover Plugin', or something.
-Qt has classes for implementing Netscape plugins. At least, it did
-- can't find it in Qt 3. Not sure if that's accessible from PyQt,
either. Qt for Windows is not free (but there is a weird
noncommercial license for a single release of Qt/win 2.x). Qt/win 3
includes some COM support, so there's a chance that might help you do
a cross-platform plugin, if you can afford the licence.
There may well be other ways of doing this, I haven't looked hard.
More information about the Python-list