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"]') |