The current implementation of <video> and <audio> elements is out of sync with the HTML5 spec. Fix it.
Created attachment 28600 [details]
I believe the changes to HTMLMediaElement, MediaPlayer, MediaPlayerPrivateQTKit, and LayoutTests match the 26 February 2009 spec and are complete with the exception of Cue Ranges. Still need to change all of the other media engines.
Created attachment 28620 [details]
This includes changes for all media engines. I have only built and tested on the Mac, but the review might as well happen while I work on getting my Windows machine working.
Created attachment 28644 [details]
Fix a couple of minor typos.
Created attachment 28645 [details]
Oops, attached the wrong version last time.
Comment on attachment 28645 [details]
Looks pretty good. Minor comments below. I found a problem with this patch and the load event on Windows. Eric's going to diagnose tomorrow, so I'll r- this for now, but I expect this will be ready to check in fairly soon once that issue is figured out.
> Index: WebCore/ChangeLog
> Index: WebCore/html/HTMLMediaElement.cpp
I think it would be cleaner here to remove the commented out code, and stick it in a bug. Then you can just reference the bug here.
> + // FIXME: don't schedule timeupdate or progress events unless there are registered listeners
> + if (eventType == eventNames().progressEvent && !document()->hasListenerType(Document::xxxxxx_LISTENER))
> + return;
> + if (eventType == eventNames().timeupdateEvent && !document()->hasListenerType(Document::xxxxxx_LISTENER))
> + return;
Created attachment 28751 [details]
+ don't stop timeupdate event timer when reach loaded state.
+ minor efficiency fix on Windows, don't call setRate(0) when rate is already 0.
Committed revision 41907.