| Index: tools/telemetry/telemetry/web_perf/metrics/timeline_based_metric.py
|
| diff --git a/tools/telemetry/telemetry/web_perf/metrics/timeline_based_metric.py b/tools/telemetry/telemetry/web_perf/metrics/timeline_based_metric.py
|
| deleted file mode 100644
|
| index d1307e9a162a0c54622fa28846943df813e04a54..0000000000000000000000000000000000000000
|
| --- a/tools/telemetry/telemetry/web_perf/metrics/timeline_based_metric.py
|
| +++ /dev/null
|
| @@ -1,87 +0,0 @@
|
| -# 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.
|
| -
|
| -
|
| -class TimelineBasedMetricException(Exception):
|
| - """Exception that can be thrown from metrics that implements
|
| - TimelineBasedMetric to indicate a problem arose when computing the metric.
|
| - """
|
| -
|
| -
|
| -def _TimeRangesHasOverlap(iterable_time_ranges):
|
| - """ Returns True if there is are overlapped ranges in time ranges.
|
| - iterable_time_ranges: an iterable of time ranges. Each time range is a
|
| - tuple (start time, end time).
|
| - """
|
| - # Sort the ranges by the start time
|
| - sorted_time_ranges = sorted(iterable_time_ranges)
|
| - last_range = sorted_time_ranges[0]
|
| - for current_range in sorted_time_ranges[1:]:
|
| - start_current_range = current_range[0]
|
| - end_last_range = last_range[1]
|
| - if start_current_range < end_last_range:
|
| - return True
|
| - last_range = current_range
|
| - return False
|
| -
|
| -
|
| -def IsEventInInteractions(event, interaction_records):
|
| - """ Return True if event is in any of the interaction records' time range.
|
| -
|
| - Args:
|
| - event: an instance of telemetry.timeline.event.TimelineEvent.
|
| - interaction_records: a list of interaction records, whereas each record is
|
| - an instance of
|
| - telemetry.web_perf.timeline_interaction_record.TimelineInteractionRecord.
|
| -
|
| - Returns:
|
| - True if |event|'s start & end time is in any of the |interaction_records|'s
|
| - time range.
|
| - """
|
| - return any(ir.start <= event.start and ir.end >= event.end for ir
|
| - in interaction_records)
|
| -
|
| -
|
| -class TimelineBasedMetric(object):
|
| -
|
| - def __init__(self):
|
| - """Computes metrics from a telemetry.timeline Model and a range
|
| -
|
| - """
|
| - super(TimelineBasedMetric, self).__init__()
|
| -
|
| - def AddResults(self, model, renderer_thread, interaction_records, results):
|
| - """Computes and adds metrics for the interaction_records' time ranges.
|
| -
|
| - The override of this method should compute results on the data **only**
|
| - within the interaction_records' start and end time ranges.
|
| -
|
| - Args:
|
| - model: An instance of telemetry.timeline.model.TimelineModel.
|
| - interaction_records: A list of instances of TimelineInteractionRecord. If
|
| - the override of this method doesn't support overlapped ranges, use
|
| - VerifyNonOverlappedRecords to check that no records are overlapped.
|
| - results: An instance of page.PageTestResults.
|
| -
|
| - """
|
| - raise NotImplementedError()
|
| -
|
| - def AddWholeTraceResults(self, model, results):
|
| - """Computes and adds metrics corresponding to the entire trace.
|
| -
|
| - Override this method to compute results that correspond to the whole trace.
|
| -
|
| - Args:
|
| - model: An instance of telemetry.timeline.model.TimelineModel.
|
| - results: An instance of page.PageTestResults.
|
| - """
|
| - pass
|
| -
|
| - def VerifyNonOverlappedRecords(self, interaction_records):
|
| - """This raises exceptions if interaction_records contain overlapped ranges.
|
| - """
|
| - if _TimeRangesHasOverlap(((r.start, r.end) for r in interaction_records)):
|
| - raise TimelineBasedMetricException(
|
| - 'This metric does not support interaction records with overlapped '
|
| - 'time range.')
|
|
|