Consider the following page: ``` <html> <script> async function init() { let canvas = document.getElementsByTagName('canvas')[0]; let ms = new MediaSource(); let v = document.createElement("video"); v.src = URL.createObjectURL(ms); await once(ms, 'sourceopen'); let videosb = ms.addSourceBuffer("video/webm; codecs=vp8"); v.currentTime = 1.0; await Promise.all([fetchAndLoad(videosb, 'content/test-vp8-hiddenframes', [''], '.webm') , once(v, 'loadedmetadata'), once(v, 'seeked')]); canvas.width = v.videoWidth; canvas.height = v.videoHeight; let ctx = canvas.getContext("2d"); ctx.drawImage(v, 0, 0); } </script> <body onload="init();"> <canvas/> </body> ``` This will create a video element, attach media source, seek to 1s and wait for the seek to complete to then copy the video frame to the canvas. With Firefox and Chrome, the frame display in the canvas is the video frame at t=1s as expected However, in Safari, the frame displayed is of t=0s. This makes it difficult to create reftest for checking bug 236754 as you can't ever guarantee which frame is currently displayed on screen.
<rdar://problem/89070387>