| OLD | NEW |
| 1 <head> | 1 <head> |
| 2 <style> | 2 <style> |
| 3 tr { | 3 tr { |
| 4 white-space: nowrap; | 4 white-space: nowrap; |
| 5 } | 5 } |
| 6 .results { | 6 .results { |
| 7 text-align: right; | 7 text-align: right; |
| 8 min-width: 6em; | 8 min-width: 6em; |
| 9 color: black; | 9 color: black; |
| 10 } | 10 } |
| 11 </style> | 11 </style> |
| 12 <script> | 12 <script src="popup.js"></script> |
| 13 if (!chrome.benchmarking) { | |
| 14 alert("Warning: Looks like you forgot to run chrome with " + | |
| 15 " --enable-benchmarking set."); | |
| 16 return; | |
| 17 } | |
| 18 | |
| 19 function setChildTextNode(elementId, text) { | |
| 20 document.getElementById(elementId).innerText = text; | |
| 21 } | |
| 22 | |
| 23 // Tests the roundtrip time of sendRequest(). | |
| 24 function testRequest() { | |
| 25 setChildTextNode("resultsRequest", "running..."); | |
| 26 | |
| 27 chrome.tabs.getSelected(null, function(tab) { | |
| 28 var timer = new chrome.Interval(); | |
| 29 timer.start(); | |
| 30 | |
| 31 chrome.tabs.sendRequest(tab.id, {counter: 1}, function handler(response) { | |
| 32 if (response.counter < 1000) { | |
| 33 chrome.tabs.sendRequest(tab.id, {counter: response.counter}, handler); | |
| 34 } else { | |
| 35 timer.stop(); | |
| 36 var usec = Math.round(timer.microseconds() / response.counter); | |
| 37 setChildTextNode("resultsRequest", usec + "usec"); | |
| 38 } | |
| 39 }); | |
| 40 }); | |
| 41 } | |
| 42 | |
| 43 // Tests the roundtrip time of Port.postMessage() after opening a channel. | |
| 44 function testConnect() { | |
| 45 setChildTextNode("resultsConnect", "running..."); | |
| 46 | |
| 47 chrome.tabs.getSelected(null, function(tab) { | |
| 48 var timer = new chrome.Interval(); | |
| 49 timer.start(); | |
| 50 | |
| 51 var port = chrome.tabs.connect(tab.id); | |
| 52 port.postMessage({counter: 1}); | |
| 53 port.onMessage.addListener(function getResp(response) { | |
| 54 if (response.counter < 1000) { | |
| 55 port.postMessage({counter: response.counter}); | |
| 56 } else { | |
| 57 timer.stop(); | |
| 58 var usec = Math.round(timer.microseconds() / response.counter); | |
| 59 setChildTextNode("resultsConnect", usec + "usec"); | |
| 60 } | |
| 61 }); | |
| 62 }); | |
| 63 } | |
| 64 </script> | |
| 65 </head> | 13 </head> |
| 66 <body> | 14 <body> |
| 67 <table> | 15 <table> |
| 68 <tr> | 16 <tr> |
| 69 <td><button onclick="testRequest()">Measure sendRequest</button></td> | 17 <td><button id="testRequest">Measure sendRequest</button></td> |
| 70 <td id="resultsRequest" class="results">(results)</td> | 18 <td id="resultsRequest" class="results">(results)</td> |
| 71 </tr> | 19 </tr> |
| 72 <tr> | 20 <tr> |
| 73 <td><button onclick="testConnect()">Measure postMessage</button></td> | 21 <td><button id="testConnect">Measure postMessage</button></td> |
| 74 <td id="resultsConnect" class="results">(results)</td> | 22 <td id="resultsConnect" class="results">(results)</td> |
| 75 </tr> | 23 </tr> |
| 76 </table> | 24 </table> |
| 77 </body> | 25 </body> |
| OLD | NEW |