Between two customer projects, I'm working on Etna. The future version, Etna 0.4, will be based on Gecko 1.9/Xulrunner 1.9. Each day, I synchronize the source code of Etna with the Mozilla trunk. Here are some bug fixes and improvements since few months:

  • Almost all the regression bugs which appeared during the gecko 1.9 port, are fixed. This port is a hard work because
    1. The source code of Etna 0.3.1 is based on Gecko 1.7. Many things have changed between Gecko 1.7 and 1.9. Last year I produced an experimental version based on Gecko 1.8/XulRunner 1.8, but I decided to migrate to gecko 1.9, because of all big changes in the Mozilla trunk.
    2. the DOM implementation of Gecko 1.9 has improved and it respects now the DOM Level 3 specification. So I had to find and modify all code which use old behaviors of the DOM Level 2 implementation. For example, see bug 140, bug 141..
    3. the build strategy has changed in gecko 1.9 : I tried to build my components as external components, not into the new big library "libxul". But my code uses too many internal API of Gecko, and it seems that the libxul exports less and less internal API. However, I had to change many things (headers, makefile options etc..) to build my components into the libxul (and when you see that the documentation about the build system is closed to nothingness or is deprecated..).
    4. Fortunately, the source code of the mozilla editor (libeditor) have not been improved very much (just bug fixes, improvements about accessibility, or IME), so I didn't have much work on parts related to this libeditor.
  • I fixed other bugs on the RelaxNG parser, the validator and the UI :
    • bug 146 : the validation of time datatype was wrong
    • bug 155 : problem during the namespace setting on a new document
    • bug 151 : there wasn't dialog when we closed the window and the document was modified.

Now the gecko 1.9 port is almost finished, I will try to fix old bugs before doing improvements into the UI or the API. I think the 0.4 version will be only a maintenance release with few improvements and of course a better rendering engine (gecko 1.9). The 0.5 version will have new editing features and a better validator. For example, I plan to use the new sax parser API of gecko to read relaxNG schema, instead of loading a DOM : so the relaxNG parser will be faster and will use less memory. And finally, the 0.6 version will have many improvements on the user interface.

No date for all this release. I will publish a zip of my current source code.

I will try also to publish such post more often :-).