According to http://www.w3.org/TR/html5/video.html#media-playback, media elements that are not in the document should not be collected while not paused: Media elements that are potentially playing while not in a Document must not play any video, but should play any audio component. Media elements must not stop playing just because all references to them have been removed; only once a media element is in a state where no further audio could ever be played by that element may the element be garbage collected. JSNodeCustom.cpp is supposed to do this, but it only considers <audio> elements.