Chromium Code Reviews| Index: chrome/test/data/media/html/benchmark.js |
| diff --git a/chrome/test/data/media/html/benchmark.js b/chrome/test/data/media/html/benchmark.js |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..7a0e9d436d5045e46690a7ba1a72c37639bd2770 |
| --- /dev/null |
| +++ b/chrome/test/data/media/html/benchmark.js |
| @@ -0,0 +1,130 @@ |
| + |
|
DaleCurtis
2012/04/10 23:00:06
Header w/ details on where this is from?
Will thi
|
| +// The purpose of generateSrc() is to return a URL that is not cached. |
| +function generateSrc(src) { |
| + return src; |
|
DaleCurtis
2012/04/10 23:00:06
Dead code?
|
| + var ch = src.indexOf('?') >= 0 ? '&' : '?'; |
| + return src + ch + 't=' + (new Date()).getTime(); |
| +} |
| + |
| +function Timer() { |
| + this.start_ = 0; |
| + this.times_ = []; |
| + new Date().getTime(); |
|
DaleCurtis
2012/04/10 23:00:06
Why?
|
| +} |
| + |
| +Timer.prototype = { |
| + start: function() { |
| + this.start_ = new Date().getTime(); |
| + }, |
| + |
| + stop: function() { |
| + this.times_.push((new Date().getTime()) - this.start_); |
|
DaleCurtis
2012/04/10 23:00:06
Extra parens seem unnecessary?
|
| + // console.log(this.times_[this.times_.length - 1]); |
|
DaleCurtis
2012/04/10 23:00:06
Comment?
|
| + }, |
| + |
| + average: function() { |
| + var sum = 0; |
| + for (var i in this.times_) { |
|
DaleCurtis
2012/04/10 23:00:06
In w/ arrays can get messy.
http://stackoverflow.
|
| + sum += this.times_[i]; |
| + } |
| + return sum / this.times_.length; |
| + }, |
| + |
| + reset: function() { |
| + this.start_ = 0; |
| + this.times_ = []; |
| + } |
| +} |
| + |
| +function Benchmark(video, src) { |
| + this.video_ = video; |
| + this.src_ = src; |
| + this.cached_src_ = generateSrc(src); |
| + this.timer_ = new Timer; |
|
DaleCurtis
2012/04/10 23:00:06
Timer() ?
|
| + |
| + var me = this; |
| + this.video_.addEventListener('playing', function() { me.playing(); }); |
| + this.video_.addEventListener('seeked', function() { me.seeked(); }); |
| + this.video_.addEventListener('suspend', function() { me.suspend(); }); |
| + this.video_.addEventListener('error', function() { me.error(); }); |
| +}; |
| + |
| +Benchmark.prototype = { |
| + reset: function() { |
| + this.playing = function() {}; |
| + this.seeked = function() {}; |
| + this.suspend = function() {}; |
| + this.error = function() {}; |
| + |
| + this.video_.src = ''; |
| + this.video_.load(); |
| + }, |
| + |
| + testShortSeek: function(iterations, done_cb) { |
| + console.log('Starting short seek tests...'); |
| + this.reset(); |
| + this.error = function() { done_cb(false, "Error loading media"); } |
|
DaleCurtis
2012/04/10 23:00:06
s/"/'/
|
| + |
| + var times = 0; |
| + var timer = new Timer; |
| + var firstPlaying = function() { |
| + this.playing = function() {} |
| + |
| + timer.start(); |
| + this.video_.currentTime = 1; |
| + }; |
| + |
| + this.seeked = function() { |
| + timer.stop(); |
| + times++; |
| + |
| + if (times == iterations) { |
| + this.reset(); |
| + done_cb(true, timer.times_); |
| + return; |
| + } |
| + |
| + this.playing = firstPlaying; |
| + this.video_.src = generateSrc(this.src_); |
| + this.video_.load(); |
| + }; |
| + |
| + this.playing = firstPlaying; |
| + this.video_.src = generateSrc(this.src_); |
| + this.video_.load(); |
| + }, |
| + |
| + testLongSeek: function(iterations, done_cb) { |
|
DaleCurtis
2012/04/10 23:00:06
Both these functions seem do exactly the same thin
|
| + console.log('Starting long seek tests...'); |
| + this.reset(); |
| + this.error = function() { done_cb(false, "Error loading media"); } |
| + var times = 0; |
| + var timer = new Timer; |
| + |
| + var firstPlaying = function() { |
| + this.playing = function() {} |
| + |
| + timer.start(); |
| + this.video_.currentTime = this.video_.duration - 1; |
| + }; |
| + |
| + this.seeked = function() { |
| + timer.stop(); |
| + times++; |
| + |
| + if (times == iterations) { |
| + this.reset(); |
| + done_cb(true, timer.times_); |
| + return; |
| + } |
| + |
| + this.playing = firstPlaying; |
| + this.video_.src = generateSrc(this.src_); |
| + this.video_.load(); |
| + }; |
| + |
| + this.playing = firstPlaying; |
| + this.video_.src = generateSrc(this.src_); |
| + this.video_.load(); |
| + } |
| +}; |