Chromium Code Reviews| Index: tools/perf/page_sets/webrtc_cases.py |
| diff --git a/tools/perf/page_sets/webrtc_cases.py b/tools/perf/page_sets/webrtc_cases.py |
| index cc61f7a2d2cccfa8d88d56eb94aea0ca9e37cb34..f39bf06958a4e3eaa2b2617be9bc4fa8f6073ac5 100644 |
| --- a/tools/perf/page_sets/webrtc_cases.py |
| +++ b/tools/perf/page_sets/webrtc_cases.py |
| @@ -5,12 +5,55 @@ from telemetry.page import page as page_module |
| from telemetry.page import page_set as page_set_module |
| +TRACK_CREATED_PEER_CONNECTIONS = ''' |
|
tonyg
2014/09/29 16:45:22
This looks significant enough to warrant pulling o
phoglund_chromium
2014/09/30 13:37:48
Done.
|
| + function getReportsAsDicts(getStatsResult) { |
| + var result = []; |
| + getStatsResult.forEach(function(report) { |
| + var values = {}; |
| + report.names().forEach(function(name) { |
| + values[name] = report.stat(name); |
| + }); |
| + result.push(values); |
| + }); |
| + return result; |
| + } |
| + |
| + window.peerConnectionReports = []; |
|
tonyg
2014/09/29 16:45:22
Looks like everything besides this should go into
phoglund_chromium
2014/09/30 13:37:48
Done.
|
| + function gatherStatsFromOneConnection(peerConnection) { |
| + var connectionId = window.peerConnectionReports.length; |
| + window.peerConnectionReports.push([]); |
| + var pollIntervalMs = 1000; |
| + |
| + setInterval(function() { |
| + peerConnection.getStats(function(response) { |
| + var reports = getReportsAsDicts(response.result()); |
| + window.peerConnectionReports[connectionId].push(reports); |
| + }); |
| + }, pollIntervalMs); |
| + } |
| + |
| + webkitRTCPeerConnection = (function() { |
| + var originalConstructor = webkitRTCPeerConnection; |
| + return function() { |
| + // Bind the incoming arguments to the original constructor. |
| + var args = [null].concat(Array.prototype.slice.call(arguments)); |
| + var factoryFunction = originalConstructor.bind.apply( |
| + originalConstructor, args); |
| + |
| + // Create the object and track it. |
| + var peerConnection = new factoryFunction(); |
| + gatherStatsFromOneConnection(peerConnection); |
| + return peerConnection; |
| + } |
| + })(); |
| +''' |
| + |
| + |
| class WebrtcCasesPage(page_module.Page): |
| def __init__(self, url, page_set): |
| super(WebrtcCasesPage, self).__init__(url=url, page_set=page_set) |
| - |
| class Page1(WebrtcCasesPage): |
| """ Why: Simple test page only showing a local video stream """ |
| @@ -34,6 +77,7 @@ class Page2(WebrtcCasesPage): |
| super(Page2, self).__init__( |
| url='file://third_party/webrtc/samples/js/demos/html/pc1.html', |
| page_set=page_set) |
| + self.script_to_evaluate_on_commit = TRACK_CREATED_PEER_CONNECTIONS |
|
tonyg
2014/09/29 16:45:22
Why is this on page2 but not page1? If that's a mi
phoglund_chromium
2014/09/30 13:37:48
The first test page only does a getUserMedia and p
|
| def RunEndure(self, action_runner): |
|
tonyg
2014/09/29 16:45:22
Unrelated: Endure is gone. I think this can be rem
phoglund_chromium
2014/09/30 13:37:48
Done.
|
| action_runner.ClickElement('button[id="btn1"]') |