Upstream version 11.40.277.0
[platform/framework/web/crosswalk.git] / src / tools / perf / measurements / webrtc.py
1 # Copyright 2014 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 from metrics import cpu
6 from metrics import memory
7 from metrics import power
8 from metrics import webrtc_stats
9 from telemetry.page import page_test
10
11
12 class WebRTC(page_test.PageTest):
13   """Gathers WebRTC-related metrics on a page set."""
14
15   def __init__(self):
16     super(WebRTC, self).__init__('RunPageInteractions')
17     self._cpu_metric = None
18     self._memory_metric = None
19     self._power_metric = None
20     self._webrtc_stats_metric = None
21
22   def WillStartBrowser(self, platform):
23     self._power_metric = power.PowerMetric(platform)
24
25   def DidStartBrowser(self, browser):
26     self._cpu_metric = cpu.CpuMetric(browser)
27     self._memory_metric = memory.MemoryMetric(browser)
28     self._webrtc_stats_metric = webrtc_stats.WebRtcStatisticsMetric()
29
30   def DidNavigateToPage(self, page, tab):
31     self._cpu_metric.Start(page, tab)
32     self._memory_metric.Start(page, tab)
33     self._power_metric.Start(page, tab)
34     self._webrtc_stats_metric.Start(page, tab)
35
36   def CustomizeBrowserOptions(self, options):
37     memory.MemoryMetric.CustomizeBrowserOptions(options)
38     options.AppendExtraBrowserArgs('--use-fake-device-for-media-stream')
39     options.AppendExtraBrowserArgs('--use-fake-ui-for-media-stream')
40     power.PowerMetric.CustomizeBrowserOptions(options)
41
42   def ValidateAndMeasurePage(self, page, tab, results):
43     """Measure the page's performance."""
44     self._memory_metric.Stop(page, tab)
45     self._memory_metric.AddResults(tab, results)
46
47     self._cpu_metric.Stop(page, tab)
48     self._cpu_metric.AddResults(tab, results)
49
50     self._power_metric.Stop(page, tab)
51     self._power_metric.AddResults(tab, results)
52
53     self._webrtc_stats_metric.Stop(page, tab)
54     self._webrtc_stats_metric.AddResults(tab, results)