move video GC workaround into VideoElement

This commit is contained in:
j 2014-02-09 06:06:43 +00:00
parent 96cbf49579
commit 9da1540653
2 changed files with 11 additions and 3 deletions

View file

@ -20,9 +20,6 @@ Ox.GarbageCollection = (function() {
Object.keys(Ox.UI.elements).forEach(function(id) {
var $element = Ox.UI.elements[id];
if ($element && Ox.isUndefined($element.$element.data('oxid'))) {
//Chrome does not properly release resources, reset manually
//http://code.google.com/p/chromium/issues/detail?id=31014
$element.find('video').attr({src: ''});
$element.remove();
delete Ox.UI.elements[id];
}

View file

@ -151,6 +151,7 @@ Ox.VideoElement = function(options, self) {
}
},
timeupdate: function() {
//fixme: use setInterval(...,30); to be more accurate
if (self.video == this) {
if (self.items[self.currentItem]
&& self.items[self.currentItem].out
@ -443,6 +444,16 @@ Ox.VideoElement = function(options, self) {
return that;
};
that.superRemove = that.remove;
that.remove = function() {
//Chrome does not properly release resources, reset manually
//http://code.google.com/p/chromium/issues/detail?id=31014
self.$videos.forEach(function($video) {
$video.attr({src: ''});
});
return that.superRemove.apply(that, arguments);
}
/*@
videoHeight <f> get videoHeight
@*/