http://www.w3.org/TR/html5/video.html#dom-media-have_current_data readyState stays at HAVE_ENOUGH_DATA when playback ends, but the spec says " The user agent cannot be in [HAVE_FUTURE_DATA] if playback has ended, as the current playback position can never advance in this case." Instead, readyState should be HAVE_CURRENT_DATA when playback has ended.