[whatwg] <video> ... <script> race condition

Glenn Maynard glenn at zewt.org
Tue May 17 10:52:10 PDT 2011

On Tue, May 17, 2011 at 5:09 AM, Philip Jägenstedt <philipj at opera.com>wrote:

> To target this specific pattern, one hypothetical solution would be to
> special-case the first script that attaches event handlers to a <video>
> element. After it has run, all events that were already fired before the
> script are fired again. However, this seems awfully messy if the script also
> observes readyState or networkState. It might also interfere with browsers
> that use scripts behind the scenes to implement the native controls.
> Although a kludge, another solution might be to block events from being
> fired until x more bytes of the document have been parsed

Masking the bug harder seems risky.  The problem would still exist, it would
just be a bit more obscure and even less understood.

or it has finished loading.

I imagine anything done here should be done for all load-related events,
like <img onload>.  It's probably not good to effectively disable
asynchronous load events for images.

These events could be split into two parts: one which is deferred until the
document is finished loading ("load", "canplay") and less obviously-named
ones which are fired normally ("asyncload", "asynccanplay"), which people
are unlikely to use without at least looking at documentation to know they
exist.  That would give a "safe", less-racy event by default, and give a
somewhat less obviously-named event for people who know what they're doing
and really don't want these events deferred.

That would regress performance for existing pages, though.

Glenn Maynard

More information about the whatwg mailing list