Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(515)

Side by Side Diff: tools/perf/measurements/media.py

Issue 714273004: mac: Expose keychain access frequency to Telemetry. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@mock_keychain_sleep
Patch Set: Add a common subclass to measurements. Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 # Copyright 2013 The Chromium Authors. All rights reserved. 1 # Copyright 2013 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 from measurements import PageTestMeasurement
5 from metrics import cpu 6 from metrics import cpu
6 from metrics import media 7 from metrics import media
7 from metrics import system_memory 8 from metrics import system_memory
8 from metrics import power 9 from metrics import power
9 from telemetry.page import page_test
10 10
11 11
12 class Media(page_test.PageTest): 12 class Media(PageTestMeasurement):
13 """The MediaMeasurement class gathers media-related metrics on a page set. 13 """The MediaMeasurement class gathers media-related metrics on a page set.
14 14
15 Media metrics recorded are controlled by metrics/media.js. At the end of the 15 Media metrics recorded are controlled by metrics/media.js. At the end of the
16 test each metric for every media element in the page are reported. 16 test each metric for every media element in the page are reported.
17 """ 17 """
18 18
19 def __init__(self): 19 def __init__(self):
20 super(Media, self).__init__('RunPageInteractions') 20 super(Media, self).__init__('RunPageInteractions')
21 self._media_metric = None 21 self._media_metric = None
22 # Used to add browser power and CPU metrics to results per test. 22 # Used to add browser power and CPU metrics to results per test.
23 self._add_browser_metrics = False 23 self._add_browser_metrics = False
24 self._cpu_metric = None 24 self._cpu_metric = None
25 self._memory_metric = None 25 self._memory_metric = None
26 self._power_metric = None 26 self._power_metric = None
27 27
28 def WillStartBrowser(self, platform): 28 def WillStartBrowser(self, platform):
29 self._power_metric = power.PowerMetric(platform) 29 self._power_metric = power.PowerMetric(platform)
30 30
31 def CustomizeBrowserOptions(self, options): 31 def CustomizeBrowserOptions(self, options):
32 # Needed to run media actions in JS on touch-based devices as on Android. 32 # Needed to run media actions in JS on touch-based devices as on Android.
33 super(Media, self).CustomizeBrowserOptions(options)
33 options.AppendExtraBrowserArgs( 34 options.AppendExtraBrowserArgs(
34 '--disable-gesture-requirement-for-media-playback') 35 '--disable-gesture-requirement-for-media-playback')
35 power.PowerMetric.CustomizeBrowserOptions(options) 36 power.PowerMetric.CustomizeBrowserOptions(options)
36 37
37 def DidNavigateToPage(self, page, tab): 38 def DidNavigateToPage(self, page, tab):
38 """Override to do operations right after the page is navigated.""" 39 """Override to do operations right after the page is navigated."""
39 self._media_metric = media.MediaMetric(tab) 40 self._media_metric = media.MediaMetric(tab)
40 self._media_metric.Start(page, tab) 41 self._media_metric.Start(page, tab)
41 42
42 # Reset to false for every page. 43 # Reset to false for every page.
43 self._add_browser_metrics = (page.add_browser_metrics 44 self._add_browser_metrics = (page.add_browser_metrics
44 if hasattr(page, 'add_browser_metrics') else False) 45 if hasattr(page, 'add_browser_metrics') else False)
45 46
46 if self._add_browser_metrics: 47 if self._add_browser_metrics:
47 self._cpu_metric = cpu.CpuMetric(tab.browser) 48 self._cpu_metric = cpu.CpuMetric(tab.browser)
48 self._cpu_metric.Start(page, tab) 49 self._cpu_metric.Start(page, tab)
49 self._memory_metric = system_memory.SystemMemoryMetric(tab.browser) 50 self._memory_metric = system_memory.SystemMemoryMetric(tab.browser)
50 self._memory_metric.Start(page, tab) 51 self._memory_metric.Start(page, tab)
51 self._power_metric.Start(page, tab) 52 self._power_metric.Start(page, tab)
52 53
53 def ValidateAndMeasurePage(self, page, tab, results): 54 def ValidateAndMeasurePage(self, page, tab, results):
54 """Measure the page's performance.""" 55 """Measure the page's performance."""
56 super(Media, self).ValidateAndMeasurePage(page, tab, results)
55 self._media_metric.Stop(page, tab) 57 self._media_metric.Stop(page, tab)
56 trace_name = self._media_metric.AddResults(tab, results) 58 trace_name = self._media_metric.AddResults(tab, results)
57 59
58 if self._add_browser_metrics: 60 if self._add_browser_metrics:
59 self._cpu_metric.Stop(page, tab) 61 self._cpu_metric.Stop(page, tab)
60 self._memory_metric.Stop(page, tab) 62 self._memory_metric.Stop(page, tab)
61 self._power_metric.Stop(page, tab) 63 self._power_metric.Stop(page, tab)
62 self._cpu_metric.AddResults(tab, results, trace_name=trace_name) 64 self._cpu_metric.AddResults(tab, results, trace_name=trace_name)
63 exclude_metrics = ['WorkingSetSizePeak', 'SystemCommitCharge', 'VMPeak', 65 exclude_metrics = ['WorkingSetSizePeak', 'SystemCommitCharge', 'VMPeak',
64 'VM'] 66 'VM']
65 self._memory_metric.AddResults(tab, results, 67 self._memory_metric.AddResults(tab, results,
66 trace_name=trace_name, 68 trace_name=trace_name,
67 exclude_metrics=exclude_metrics) 69 exclude_metrics=exclude_metrics)
68 self._power_metric.AddResults(tab, results) 70 self._power_metric.AddResults(tab, results)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698