OLD | NEW |
1 # Copyright 2014 The Chromium Authors. All rights reserved. | 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 | 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 from measurements import timeline_controller | 4 from measurements import timeline_controller |
5 from metrics import timeline | 5 from metrics import timeline |
6 from telemetry.core.platform import tracing_category_filter | 6 from telemetry.core.platform import tracing_category_filter |
7 from telemetry.page import page_test | 7 from telemetry.page import page_test |
8 | 8 |
9 class ThreadTimes(page_test.PageTest): | 9 class ThreadTimes(page_test.PageTest): |
10 def __init__(self): | 10 def __init__(self, report_silk_details=False, |
11 super(ThreadTimes, self).__init__('RunSmoothness') | 11 action_name_to_run='RunSmoothness'): |
| 12 super(ThreadTimes, self).__init__(action_name_to_run=action_name_to_run) |
12 self._timeline_controller = None | 13 self._timeline_controller = None |
13 | 14 self._report_silk_details = report_silk_details |
14 @classmethod | |
15 def AddCommandLineArgs(cls, parser): | |
16 parser.add_option('--report-silk-details', action='store_true', | |
17 help='Report details relevant to silk.') | |
18 | 15 |
19 def WillNavigateToPage(self, page, tab): | 16 def WillNavigateToPage(self, page, tab): |
20 self._timeline_controller = timeline_controller.TimelineController() | 17 self._timeline_controller = timeline_controller.TimelineController() |
21 if self.options.report_silk_details: | 18 if self._report_silk_details: |
22 # We need the other traces in order to have any details to report. | 19 # We need the other traces in order to have any details to report. |
23 self._timeline_controller.trace_categories = None | 20 self._timeline_controller.trace_categories = None |
24 else: | 21 else: |
25 self._timeline_controller.trace_categories = \ | 22 self._timeline_controller.trace_categories = \ |
26 tracing_category_filter.CreateNoOverheadFilter().filter_string | 23 tracing_category_filter.CreateNoOverheadFilter().filter_string |
27 self._timeline_controller.SetUp(page, tab) | 24 self._timeline_controller.SetUp(page, tab) |
28 | 25 |
29 def WillRunActions(self, page, tab): | 26 def WillRunActions(self, page, tab): |
30 self._timeline_controller.Start(tab) | 27 self._timeline_controller.Start(tab) |
31 | 28 |
32 def DidRunActions(self, page, tab): | 29 def DidRunActions(self, page, tab): |
33 self._timeline_controller.Stop(tab) | 30 self._timeline_controller.Stop(tab) |
34 | 31 |
35 def ValidateAndMeasurePage(self, page, tab, results): | 32 def ValidateAndMeasurePage(self, page, tab, results): |
36 metric = timeline.ThreadTimesTimelineMetric() | 33 metric = timeline.ThreadTimesTimelineMetric() |
37 renderer_thread = \ | 34 renderer_thread = \ |
38 self._timeline_controller.model.GetRendererThreadFromTabId(tab.id) | 35 self._timeline_controller.model.GetRendererThreadFromTabId(tab.id) |
39 if self.options.report_silk_details: | 36 if self._report_silk_details: |
40 metric.details_to_report = timeline.ReportSilkDetails | 37 metric.details_to_report = timeline.ReportSilkDetails |
41 metric.AddResults(self._timeline_controller.model, renderer_thread, | 38 metric.AddResults(self._timeline_controller.model, renderer_thread, |
42 self._timeline_controller.smooth_records, results) | 39 self._timeline_controller.smooth_records, results) |
43 | 40 |
44 def CleanUpAfterPage(self, _, tab): | 41 def CleanUpAfterPage(self, _, tab): |
45 self._timeline_controller.CleanUp(tab) | 42 self._timeline_controller.CleanUp(tab) |
OLD | NEW |