child.html (814B)
1 <!DOCTYPE html> 2 <meta charset=utf-8> 3 <script src="imgutils.js"></script> 4 <img id="img" src="animated1.gif"> 5 <script> 6 let observer = new ImageDecoderObserverStub(); 7 observer.decodeComplete = () => { 8 parent.postMessage("decodeComplete", "*"); 9 }; 10 observer.loadComplete = () => { 11 parent.postMessage("loadComplete", "*"); 12 }; 13 observer = SpecialPowers.wrapCallbackObject(observer); 14 const gObserver = SpecialPowers.Cc["@mozilla.org/image/tools;1"] 15 .getService(SpecialPowers.Ci.imgITools) 16 .createScriptedObserver(observer); 17 const img = document.getElementById("img"); 18 SpecialPowers.wrap(img).addObserver(gObserver); 19 window.addEventListener("unload", () => { 20 SpecialPowers.wrap(img).removeObserver(gObserver); 21 }); 22 </script>