Elim cr-checkbox
[chromium-blink-merge.git] / chrome / test / data / media / html / utils.js
blobe2f5682d7dff579a54c56e809fb4f996c377f429
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 //
5 // Miscellaneous utility functions for HTML media tests. Loading this script
6 // should not modify the page in any way.
7 //
9 var QueryString = function () {
10 // Allows access to query parameters on the URL; e.g., given a URL like:
12 // http://<url>/my.html?test=123&bob=123
14 // parameters can now be accessed via QueryString.test or QueryString.bob.
15 var params = {};
17 // RegEx to split out values by &.
18 var r = /([^&=]+)=?([^&]*)/g;
20 // Lambda function for decoding extracted match values. Replaces '+' with
21 // space so decodeURIComponent functions properly.
22 function d(s) { return decodeURIComponent(s.replace(/\+/g, ' ')); }
24 var match;
25 while (match = r.exec(window.location.search.substring(1)))
26 params[d(match[1])] = d(match[2]);
28 return params;
29 } ();
31 function getCurrentTime() {
32 if (window.performance.now)
33 return window.performance.now();
34 else
35 return new Date().getTime();
38 function Timer() {
39 this.start_ = 0;
40 this.times_ = [];
43 Timer.prototype = {
44 start: function() {
45 this.start_ = getCurrentTime();
48 stop: function() {
49 var delta = getCurrentTime() - this.start_;
50 this.times_.push(delta);
51 return delta;
54 reset: function() {
55 this.start_ = 0;
56 this.times_ = [];
60 function GenerateUniqueURL(src) {
61 var ch = src.indexOf('?') >= 0 ? '&' : '?';
62 return src + ch + 't=' + (new Date()).getTime();