The m_userDrivenSeekTimer is causing unwanted repeats of short media such as sound effects because it is causing the current time to not reflect that the media has finished playing. This problem only affects media whose duration is close to or less than the SeekSubmissionDelay, which is currently set to 100ms. My fix is to ignore the userDrivenSeekTimer in MediaPlayerPrivate::currentTime() if the duration of the media is within twice the SeekSubmissionDelay. Seek drag smoothness (the original reason for the timer) is a non-issue for such short media. I discovered this problem on the BrickBreakerRevolution game. The sound of the ball hitting the paddle or bricks would repeat. I have written an automated test using a sound effect from the game.
Created attachment 146906 [details] Patch
Comment on attachment 146906 [details] Patch Clearing flags on attachment: 146906 Committed r120018: <http://trac.webkit.org/changeset/120018>
All reviewed patches have been landed. Closing bug.