Chromium Code Reviews| Index: tools/telemetry/telemetry/web_perf/metrics/rendering_stats.py |
| diff --git a/tools/telemetry/telemetry/web_perf/metrics/rendering_stats.py b/tools/telemetry/telemetry/web_perf/metrics/rendering_stats.py |
| index 6a1a8ca938cc6baeeb11b3a4ac40aba1a6aef4a1..492b4f6b7c72d3780d0db68f661bc45045db79fe 100644 |
| --- a/tools/telemetry/telemetry/web_perf/metrics/rendering_stats.py |
| +++ b/tools/telemetry/telemetry/web_perf/metrics/rendering_stats.py |
| @@ -1,10 +1,8 @@ |
| # Copyright 2014 The Chromium Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| -import logging |
| from operator import attrgetter |
| -from telemetry.page import page_test |
| from telemetry.web_perf.metrics import rendering_frame |
| # These are LatencyInfo component names indicating the various components |
| @@ -30,19 +28,6 @@ SCROLL_UPDATE_EVENT_NAME = 'InputLatency:ScrollUpdate' |
| GESTURE_SCROLL_UPDATE_EVENT_NAME = 'InputLatency:GestureScrollUpdate' |
| -class NotEnoughFramesError(page_test.MeasurementFailure): |
| - def __init__(self, frame_count): |
| - super(NotEnoughFramesError, self).__init__( |
| - 'Only %i frame timestamps were collected ' % frame_count + |
| - '(at least two are required).\n' |
| - 'Issues that have caused this in the past:\n' + |
| - '- Browser bugs that prevents the page from redrawing\n' + |
| - '- Bugs in the synthetic gesture code\n' + |
| - '- Page and benchmark out of sync (e.g. clicked element was renamed)\n' + |
| - '- Pages that render extremely slow\n' + |
| - '- Pages that can\'t be scrolled') |
| - |
| - |
| def GetInputLatencyEvents(process, timeline_range): |
| """Get input events' LatencyInfo from the process's trace buffer that are |
| within the timeline_range. |
| @@ -139,7 +124,11 @@ class RenderingStats(object): |
| if HasRenderingStats(browser_process): |
| timestamp_process = browser_process |
| else: |
| - timestamp_process = renderer_process |
| + timestamp_process = renderer_process |
| + |
| + # A lookup from list names below to any errors or exceptions encountered |
| + # in attempting to generate that list. |
| + self.errors = {} |
|
chrishenry
2014/08/27 06:00:22
+1
|
| self.frame_timestamps = [] |
| self.frame_times = [] |
| @@ -186,12 +175,6 @@ class RenderingStats(object): |
| self._InitFrameQueueingDurationsFromTimeline( |
| renderer_process, timeline_range) |
| - # Check if we have collected at least 2 frames in every range. Otherwise we |
| - # can't compute any meaningful metrics. |
| - for segment in self.frame_timestamps: |
| - if len(segment) < 2: |
| - raise NotEnoughFramesError(len(segment)) |
| - |
| def _InitInputLatencyStatsFromTimeline( |
| self, browser_process, renderer_process, timeline_range): |
| latency_events = GetInputLatencyEvents(browser_process, timeline_range) |
| @@ -271,5 +254,5 @@ class RenderingStats(object): |
| new_frame_queueing_durations = [e.queueing_duration for e in events] |
| self.frame_queueing_durations.append(new_frame_queueing_durations) |
| except rendering_frame.NoBeginFrameIdException: |
| - logging.warning('Current chrome version does not support the queueing ' |
| - 'delay metric.') |
| + self.errors['frame_queueing_durations'] = ( |
| + 'Current chrome version does not support the queueing delay metric.') |