Tenes razon con lo de la compatibilidad, me imagino que si para alguien el desempeño de la función nativa llegara a ser necesaria y a la vez fuera prioridad mantener la portabilidad siempre podría hacer un if( !window.XMLSerializer) y usar una u otra alternativa
Esta interesante este código y me cae en buen momento ya que tengo pendiente en un proyecto poder guardar los graficos que produce el API de Google Chart Tools
Yo ya había usado Google Charts en otras ocasiones. Lo que no me gusta es que Google de un dia para a otro saca una nueva versión de las APIs y toca migrar todo. Lo bonito de d3js es que simplemente descargas el JS y ya
sin preocupaciones de que luego Google cambie de parecer y decida no seguir apoyando una versión específica de una biblioteca.
La otra razón es pq se pueden hacer cosas bien fumadas jajajaja nada mas hay que ver la página de ejemplos que tienen
Modificado:
Ya logré actualizar el python del server, les dejo el "demo"
Este tiene un pequeño sistema de "prevención de abuso" hahahaaha Yo se que aquí se lo pueden saltar facilmente
http://dev.teubi.co/d3js-examples/svg2png/Pueden ver como el PNG resultante las fuentes aparecen un poco más grandes que en la página. Realmente no hay mucho que se pueda hacer más que trabajar el estilo de las etiquetas SVG antes de realizar el proceso de conversión.