Preserve the state of m_muted and m_volume across MediaPlayerPrivate instances during load.
Created attachment 173421 [details] Patch
Comment on attachment 173421 [details] Patch Is there a good way to regression-test this?
It would be a mac specific test, as it would require loading a piece of media which AVFoundation cannot load but QuickTime can. To my knowledge, no other port has multiple MediaPlayerPrivate implementations. I can see what I can come up with.
After making a test case, it looks like the breakage is more significant. It doesn't require two media engines in order to trigger. (Though that helps.) With the regressing changeset in place, the following test fails: video.volume = 0; video.src = foo.mov; video.load(); /* wait for loadedmetadata */ assert(video.volume == 0) // Fails, volume is 1.
Regressed in http://trac.webkit.org/changeset/126157.
Drat. My testcase will fail, because it can only test what HTMLMediaElement thinks the volume is, not what the volume on the MediaPlayerPrivate actually is. However, I have verified that on WebKit Mac ToT, setting the video.volume = 0 before load() is ignored, and the video plays at full volume.
Looks like it's not going to be possible to write a testcase for this, as there's no way to query the actual volume of the media engine from JavaScript.
Regressing revision rolled out by bug #101954. *** This bug has been marked as a duplicate of bug 101954 ***