Last summer, I led a session at the Mozilla summit to discuss whether
and how we ought to continue supporting our various embedding efforts
(gtkmozembed, javaxpcom, the ActiveX control, the NSView embedding
widget, etc) given the effort involved in preserving their various
degrees of code and binary compatibility with Mozilla core. We came the
following conclusions:
* Embedding Mozilla rendering into other processes is a tough
problem. We never solved it fully, and each embedder has had to
spend lots of time tweaking things.
* Firefox is the key product of the Mozilla project; to the extent
that supporting embedding takes away from Firefox, we should
strongly prioritize Firefox.
* Binary compatibility of our embedding bindings is a high cost
which is not worth the benefits.
* As we move Firefox into a multiple-process model, the embedding
solution we really want is very different from the one we
currently have: we really want embedders to be simple containers
for a separate Firefox process which would do the actual web
rendering.
Because of this, I'm planning on making the following changes in our code:
* Remove gtkmozembed and its supporting code. The promise of
gtkmozembed was a binary-compatible wrapper that GTK applications
could use to easily get web rendering into their application.
Without significant supporting code to deal with profiles,
certificates, prompts, and other details, this code doesn't work
correctly, and is unmaintained.
* Remove javaxpcom and its supporting code.
* Remove the ActiveX control and plugin, and the IDispatch code
which was created to support interconnecting the ActiveX code with
our DOM.
Various people have expressed interest in taking of maintenance of these
embedding solutions, but I lost their email addresses in a recent
computer crash. Anyone with interest should please email me, and I will
happily work with you to set up a Mozilla repository for the continued
maintenance of these projects.
As a project, we aren't going to spend effort trying to solve the
problems associated with in-process embedding. Once separate-process
rendering is implemented in Firefox, we may consider ways to make really
simple multi-process embedding a possibility. If you are interested in
helping to begin implementation of this multiprocess embedding solution,
please let me know, and I will help guide you in the right direction.
--BDS
Module Owner, Embedding
_______________________________________________
dev-embedding mailing list
dev-embedding@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-embedding