Enfin ! Ça y est ! C'est arrivé dans le trunk samedi ! Mon super gros patch sur le serializer ! Il y a 10 mois j'avais commencé son développement. Je vous rassure, je n'ai pas travaillé pendant ces 10 mois régulièrement sur cette amélioration. Il y a eu beaucoup de temps morts (la faute à pas le temps), et beaucoup d'attente pour les reviews et super-review.

Qu'est ce que cela apporte ? Le support des mêmes flags de l'interface nsIDocumentEncoder pour XHTML/XML que pour HTML. Donc principalement, la possibilité d'avoir enfin du "pretty printing" (indentation, passage à la ligne au bout de X caractères etc..) lors de la serialisation d'un DOM XHTML et XML. Seul un document HTML profitait de cette possibilité. Bien sur, pour XHTML, le pretty printing tient compte de la spécificité de XHTML. Par exemple, pas de pretty printing dans les balises <pre> ou <script>.

Au passage, puisque maintenant le code du pretty printing est commun à HTML/XHTML/XML, j'ai amélioré le pretty printing du HTML. L'indentation n'est plus boguée, les sauts à la ligne se font au bon endroit etc... Ce patch corrige donc d'emblée deux bugs de longues dates, et va en permettre de fermer quelques autres assez rapidement, en espérant ne pas avoir introduit de régression (mais bien sûr j'ai ajouté plein de tests unitaires pour limiter les régressions potentielles).

Et concrètement, ce patch va permettre d'avoir un meilleur enregistrement des pages web éditée dans BlueGriffon, Kompozer, ou tout autre application qui sera basée sur XulRunner 1.9.2 minimum (dont Firefox 4)..