| Index: tools/perf/metrics/media.js
|
| diff --git a/tools/perf/metrics/media.js b/tools/perf/metrics/media.js
|
| index 7cef7cd0c74ce2794cc298b611dd176a6b397d07..8cd3dc23e0048820f5b3ad950aeeabb374fb95fe 100644
|
| --- a/tools/perf/metrics/media.js
|
| +++ b/tools/perf/metrics/media.js
|
| @@ -54,6 +54,9 @@
|
| this.element.addEventListener('willSeek', function (e) {
|
| metric.onWillSeek(e);
|
| }, false);
|
| + this.element.addEventListener('willLoop', function (e) {
|
| + metric.onWillLoop(e);
|
| + }, false);
|
| }
|
|
|
| HTMLMediaMetric.prototype = new MediaMetricBase();
|
| @@ -85,6 +88,20 @@
|
| this.element.addEventListener('seeked', onSeeked);
|
| };
|
|
|
| + HTMLMediaMetric.prototype.onWillLoop = function(e) {
|
| + var loopTimer = new Timer();
|
| + var metric = this;
|
| + var loopCount = e.loopCount;
|
| + var onEndLoop = function(e) {
|
| + var actualDuration = loopTimer.stop();
|
| + var idealDuration = metric.element.duration * loopCount;
|
| + var avg_loop_time = (actualDuration - idealDuration) / loopCount;
|
| + metric.metrics['avg_loop_time'] = avg_loop_time.toFixed(3);
|
| + e.target.removeEventListener('endLoop', onEndLoop);
|
| + };
|
| + this.element.addEventListener('endLoop', onEndLoop);
|
| + };
|
| +
|
| HTMLMediaMetric.prototype.appendMetric = function(metric, value) {
|
| if (!this.metrics[metric])
|
| this.metrics[metric] = [];
|
|
|