Why was it working before bug 846218 ? we did insertBefore all the time and this worked without redoing the object URL. Or did we call displayRenderedIcon at each insertion too ? (just still trying to fully understand the problem)

really, the 2 methods `displayRenderedIcon` and `regenerateObjectURL` are quite the same (and I'm quite sure you copy/pasted this, right ? :) ). So let's move this in displayRenderedIcon and call the callback (if there is one) just before revoking.