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