This was caused by bug 792199.
There are two parts to this fix:
1. Always decode during StartDecoding even if we already have a Decoder
(hopefully this is safe) This was a bug in the original patch.
2. After calling StartDecoding() we recheck if we're complete and abort if
we're not doing a SYNC_DECODE. Before this regression we would usually be done
decoding the image because of the decoding we did when we Locked all of the
images on tab switch.
--HG--
extra : rebase_source : 9db93075aad2f45c6cc70d27ef67468b4507642c