Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / tools / perf / measurements / media.py
index 867a9b9..c0d5047 100644 (file)
@@ -5,6 +5,7 @@
 from metrics import cpu
 from metrics import media
 from metrics import memory
+from metrics import power
 from telemetry.page import page_measurement
 
 
@@ -22,18 +23,25 @@ class Media(page_measurement.PageMeasurement):
     self._add_browser_metrics = False
     self._cpu_metric = None
     self._memory_metric = None
+    self._power_metric = power.PowerMetric()
 
   def results_are_the_same_on_every_page(self):
     """Results can vary from page to page based on media events taking place."""
     return False
 
   def CustomizeBrowserOptions(self, options):
+    # Needed to run media actions in JS on touch-based devices as on Android.
+    options.AppendExtraBrowserArgs(
+        '--disable-gesture-requirement-for-media-playback')
     memory.MemoryMetric.CustomizeBrowserOptions(options)
+    power.PowerMetric.CustomizeBrowserOptions(options)
 
   def DidNavigateToPage(self, page, tab):
     """Override to do operations right after the page is navigated."""
     self._media_metric = media.MediaMetric(tab)
     self._media_metric.Start(page, tab)
+    self._power_metric.Start(page, tab)
+
     # Reset to false for every page.
     self._add_browser_metrics = False
     if hasattr(page, 'add_browser_metrics'):
@@ -48,8 +56,10 @@ class Media(page_measurement.PageMeasurement):
 
   def MeasurePage(self, page, tab, results):
     """Measure the page's performance."""
+    self._power_metric.Stop(page, tab)
     self._media_metric.Stop(page, tab)
     trace_name = self._media_metric.AddResults(tab, results)
+    self._power_metric.AddResults(tab, results)
     if self._add_browser_metrics:
       self._cpu_metric.Stop(page, tab)
       self._cpu_metric.AddResults(tab, results, trace_name=trace_name)