Index: tools/telemetry/telemetry/web_perf/metrics/smoothness.py |
diff --git a/tools/telemetry/telemetry/web_perf/metrics/smoothness.py b/tools/telemetry/telemetry/web_perf/metrics/smoothness.py |
index d795194d4da5671612a846d4e875eddbe5923457..7f10c71839c25e35dec924c7b2f903ace1130133 100644 |
--- a/tools/telemetry/telemetry/web_perf/metrics/smoothness.py |
+++ b/tools/telemetry/telemetry/web_perf/metrics/smoothness.py |
@@ -55,15 +55,15 @@ class SmoothnessMetric(timeline_based_metric.TimelineBasedMetric): |
def _PopulateResultsFromStats(self, results, stats): |
page = results.current_page |
values = [ |
- self._ComputeFirstGestureScrollUpdateLatency(page, stats), |
self._ComputeQueueingDuration(page, stats), |
self._ComputeFrameTimeDiscrepancy(page, stats), |
self._ComputeMeanPixelsApproximated(page, stats) |
] |
values += self._ComputeLatencyMetric(page, stats, 'input_event_latency', |
- stats.input_event_latency) |
+ stats.input_event_latency) |
values += self._ComputeLatencyMetric(page, stats, 'scroll_update_latency', |
- stats.scroll_update_latency) |
+ stats.scroll_update_latency) |
+ values += self._ComputeFirstGestureScrollUpdateLatency(page, stats) |
values += self._ComputeFrameTimeMetric(page, stats) |
for v in values: |
results.AddValue(v) |
@@ -79,12 +79,11 @@ class SmoothnessMetric(timeline_based_metric.TimelineBasedMetric): |
none_value_reason = None |
if self._HasEnoughFrames(stats.frame_timestamps): |
latency_list = FlattenList(list_of_latency_lists) |
- if len(latency_list) > 0: |
- mean_latency = round(statistics.ArithmeticMean(latency_list), 3) |
- latency_discrepancy = ( |
- round(statistics.DurationsDiscrepancy(latency_list), 4)) |
- else: |
- none_value_reason = 'No latency values recorded.' |
+ if len(latency_list) == 0: |
+ return () |
+ mean_latency = round(statistics.ArithmeticMean(latency_list), 3) |
+ latency_discrepancy = ( |
+ round(statistics.DurationsDiscrepancy(latency_list), 4)) |
else: |
none_value_reason = NOT_ENOUGH_FRAMES_MESSAGE |
return ( |
@@ -104,20 +103,21 @@ class SmoothnessMetric(timeline_based_metric.TimelineBasedMetric): |
none_value_reason = None |
if self._HasEnoughFrames(stats.frame_timestamps): |
latency_list = FlattenList(stats.gesture_scroll_update_latency) |
- if len(latency_list) > 0: |
- first_gesture_scroll_update_latency = round(latency_list[0], 4) |
- else: |
- none_value_reason = 'No gesture scroll update latency values recorded.' |
+ if len(latency_list) == 0: |
+ return () |
+ first_gesture_scroll_update_latency = round(latency_list[0], 4) |
else: |
none_value_reason = NOT_ENOUGH_FRAMES_MESSAGE |
- return scalar.ScalarValue( |
+ return ( |
+ scalar.ScalarValue( |
page, 'first_gesture_scroll_update_latency', 'ms', |
first_gesture_scroll_update_latency, |
description='First gesture scroll update latency measures the time it ' |
'takes to process the very first gesture scroll update ' |
'input event. The first scroll gesture can often get ' |
'delayed by work related to page loading.', |
- none_value_reason=none_value_reason) |
+ none_value_reason=none_value_reason), |
+ ) |
def _ComputeQueueingDuration(self, page, stats): |
"""Returns a Value for the frame queueing durations.""" |