I just got asked why Firefox doesn’t do the same thing as Chrome does when you copy a GIF into a canvas element using drawImage(). The short answer is: Chrome’s behaviour is not according to the spec. Chrome copies the currently visible frame of the GIF whereas Firefox copies the first frame. The latter is consistent with the spec.
You can see the behaviour at this demo page:
The only way to make this work across browsers seems to be to convert the GIF into its frames and play them in a canvas, much like jsGIF does.