Test case here: https://staging-connect.circleanywhere.com/public/ios/local-video-copy-display-bug/ Steps to reproduce: 1. Load the page, notice that the local MediaStream-backed video properly autoplays. 2. Click the 'Toggle local' button to hide the video, click again to redisplay. Notice that the video continues to properly autoplay. 3. Click the 'Copy local' button. This uses the MediaStream.clone() method to copy the stream, remove the audio track, and display the cloned stream in another video element. Notice that both the original MediaStream-backed video and the cloned MediaStream-backed video properly autoplay. 4. Click the 'Toggle local' video button, notice that the cloned MediaStream-backed video continues to properly autoplay. 5. Click the 'Toggle local' video button, notice that the original MediaStream-backed video autoplays, but the cloned MediaStream-backed video does NOT. According to https://webkit.org/blog/7763/a-closer-look-into-webrtc/, "MediaStream-backed media will autoplay if the web page is already capturing", so the fact that the cloned stream stops playing violates this policy. This bug is troublesome in more complex video applications, where it's cleaner design to display different copies of the same MediaStream than to move video elements around in the DOM.
<rdar://problem/42205888>